{"version":3,"mappings":"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CD,eAAgB,CACd,SAAU,SACX,EACD,iBAAkB,CAChB,SAAU,SACX,EACD,kBAAmB,CACjB,SAAU,SACX,EACD,gBAAiB,CACf,SAAU,SACX,EACD,QAAS,CACP,SAAU,UACV,UAAWA,EACZ,EACD,aAAc,CACZ,SAAU,SACX,EACD,aAAc,CACZ,SAAU,qBACV,MAAOc,EACR,EAED,MAAO,CACL,SAAU,UACV,UAAWa,EACZ,EACD,QAAS,CACP,SAAU,UACV,YAAa,kBACb,UAAWA,EACZ,EACD,gBAAiB,CACf,SAAU,UACV,UAAWA,EACZ,EAED,EAAG,CACD,MAAOlC,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,QAAS,CACP,MAAOA,EACR,EACD,WAAY,CACV,MAAOA,EACR,EACD,aAAc,CACZ,MAAOA,EACR,EACD,cAAe,CACb,MAAOA,EACR,EACD,YAAa,CACX,MAAOA,EACR,EACD,SAAU,CACR,MAAOA,EACR,EACD,SAAU,CACR,MAAOA,EACR,EACD,cAAe,CACb,MAAOA,EACR,EACD,mBAAoB,CAClB,MAAOA,EACR,EACD,iBAAkB,CAChB,MAAOA,EACR,EACD,aAAc,CACZ,MAAOA,EACR,EACD,kBAAmB,CACjB,MAAOA,EACR,EACD,gBAAiB,CACf,MAAOA,EACR,EACD,EAAG,CACD,MAAOD,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,GAAI,CACF,MAAOA,EACR,EACD,OAAQ,CACN,MAAOA,EACR,EACD,UAAW,CACT,MAAOA,EACR,EACD,YAAa,CACX,MAAOA,EACR,EACD,aAAc,CACZ,MAAOA,EACR,EACD,WAAY,CACV,MAAOA,EACR,EACD,QAAS,CACP,MAAOA,EACR,EACD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AS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,UAAW,QACX,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,GAAI,KACJ,GAAI,KACJ,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,UAAW,MACX,UAAW,MACX,WAAY,MACZ,WAAY,MACZ,UAAW,MACX,UAAW,MACX,WAAY,MACZ,UA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","names":["l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","nh","lh","mh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","X","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","wl","reactDom_production_min","checkDCE","err","reactDomModule","client","_extends","isPlainObject","item","prototype","deepClone","source","output","key","deepmerge","target","options","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","props","propName","componentName","location","propFullName","secret","getShim","ReactPropTypes","propTypesModule","formatMuiErrorMessage","code","url","i","reactIs_production_min","reactIsModule","fnNameMatchRegex","getFunctionName","fn","match","getFunctionComponentName","Component","fallback","getWrappedName","outerType","innerType","wrapperName","functionName","getDisplayName","ForwardRef","Memo","ponyfillGlobal","capitalize","string","_formatMuiErrorMessage","createChainedFunction","funcs","acc","func","args","debounce","wait","timeout","debounced","later","deprecatedPropType","validator","reason","isMuiElement","element","muiNames","_muiName","_element$type","React.isValidElement","ownerDocument","node","ownerWindow","requirePropFactory","componentNameInError","setRef","ref","value","useEnhancedEffect","React.useLayoutEffect","React.useEffect","globalId","useGlobalId","idOverride","defaultId","setDefaultId","React.useState","maybeReactUseId","React","useId","reactId","unsupportedProp","useControlled","controlled","defaultProp","name","state","isControlled","React.useRef","valueState","setValue","setValueIfUncontrolled","React.useCallback","newValue","useEventCallback","useForkRef","refs","React.useMemo","instance","UNINITIALIZED","useLazyRef","init","initArg","EMPTY","useOnMount","Timeout","delay","useTimeout","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","focusTriggersKeyboardModality","type","tagName","handleKeyDown","event","handlePointerDown","handleVisibilityChange","prepare","doc","isFocusVisible","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","getScrollbarSize","documentWidth","cachedType","detectScrollType","dummy","container","getNormalizedScrollLeft","direction","scrollLeft","resolveProps","defaultProps","defaultSlotProps","slotProps","slotPropName","composeClasses","slots","getUtilityClass","classes","slot","utilityClass","defaultGenerator","createClassNameGenerator","generate","generator","ClassNameGenerator","globalStateClasses","generateUtilityClass","globalStatePrefix","globalStateClass","generateUtilityClasses","result","clamp","val","min","max","LicenseInfo","licenseInfo","objectToString","isError","wat","isInstanceOf","isBuiltin","className","isErrorEvent","isDOMError","isDOMException","isString","isParameterizedString","isPrimitive","isEvent","isElement","isRegExp","isThenable","isSyntheticEvent","base","isVueViewModel","truncate","str","safeJoin","input","delimiter","isMatchingPattern","pattern","requireExactStringMatch","stringMatchesSomePattern","testString","patterns","applyAggregateErrorsToEvent","exceptionFromErrorImplementation","parser","maxValueLimit","limit","hint","originalException","truncateAggregateExceptions","aggregateExceptionsFromError","error","prevExceptions","exception","exceptionId","newExceptions","applyExceptionGroupFieldsForParentException","newException","newExceptionId","applyExceptionGroupFieldsForChildException","childError","parentId","exceptions","maxValueLength","getBreadcrumbLogLevelFromHttpStatusCode","statusCode","SDK_VERSION","GLOBAL_OBJ","getGlobalSingleton","creator","obj","gbl","__SENTRY__","versionedCarrier","WINDOW","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","elem","currentElem","MAX_TRAVERSE_HEIGHT","out","height","len","separator","sepLength","nextStr","keyAttrs","maxStringLength","_htmlElementAsString","keyAttrPairs","keyAttr","keyAttrPair","allowedAttrs","attr","getLocationHref","getDomElement","selector","getComponentName","DEBUG_BUILD","PREFIX","CONSOLE_LEVELS","originalConsoleMethods","consoleSandbox","callback","console","wrappedFuncs","wrappedLevels","level","originalConsoleMethod","makeLogger","enabled","logger","DSN_REGEX","isValidProtocol","protocol","dsnToString","dsn","withPassword","host","path","pass","port","projectId","publicKey","dsnFromString","lastPath","split","projectMatch","dsnFromComponents","components","validateDsn","component","makeDsn","from","SentryError","message","logLevel","fill","replacementFactory","original","wrapped","markFunctionWrapped","addNonEnumerableProperty","proto","getOriginalFunction","urlEncode","object","convertToPlainObject","getOwnProperties","newObj","serializeEventTarget","extractedProps","property","extractExceptionKeysForMessage","maxLength","keys","firstKey","includedKeys","serialized","dropUndefinedKeys","inputValue","_dropUndefinedKeys","memoizationMap","isPojo","memoVal","returnValue","STACKTRACE_FRAME_LIMIT","UNKNOWN_FUNCTION","WEBPACK_ERROR_REGEXP","STRIP_FRAME_REGEXP","createStackParser","parsers","sortedParsers","stack","skipFirstLines","framesToPop","frames","lines","line","cleanedLine","frame","stripSentryFramesAndReverse","stackParserFromStackParserOptions","stackParser","localStack","getLastStackFrame","arr","defaultFunctionName","getFramesFromEvent","handlers","instrumented","addHandler","handler","maybeInstrument","instrumentFn","triggerHandlers","data","typeHandlers","addConsoleInstrumentationHandler","instrumentConsole","log","supportsFetch","isNativeFunction","supportsNativeFetch","sandbox","ONE_SECOND_IN_MS","dateTimestampInSeconds","createUnixTimestampInSecondsFunc","performance","approxStartingTimeOrigin","timeOrigin","timestampInSeconds","browserPerformanceTimeOrigin","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","navigationStartDelta","navigationStartIsReliable","addFetchInstrumentationHandler","skipNativeFetchCheck","instrumentFetch","addFetchEndInstrumentationHandler","streamHandler","onFetchResolved","originalFetch","method","parseFetchArgs","handlerData","virtualStackTrace","response","resolveResponse","res","onFinishedResolving","responseReader","consumeChunks","done","clonedResponseForResolving","hasProp","prop","getUrlFromResource","resource","fetchArgs","arg","_oldOnErrorHandler","addGlobalErrorInstrumentationHandler","instrumentError","msg","column","_oldOnUnhandledRejectionHandler","addGlobalUnhandledRejectionInstrumentationHandler","instrumentUnhandledRejection","isBrowserBundle","getSDKSource","isNodeEnv","isBrowser","isElectronNodeRenderer","memoBuilder","hasWeakSet","inner","memoize","unmemoize","uuid4","crypto","getRandomByte","typedArray","getFirstException","getEventDescription","eventId","firstException","addExceptionTypeValue","values","addExceptionMechanism","newMechanism","defaultMechanism","currentMechanism","mergedData","checkOrSetAlreadyCaught","arrayify","maybeArray","normalize","depth","maxProperties","visit","normalizeToSize","maxSize","normalized","jsonSize","memo","stringified","stringifyValue","remainingDepth","valueWithToJSON","jsonValue","numAdded","visitable","visitKey","visitValue","objName","getConstructorName","utf8Length","States","RESOLVED","REJECTED","resolvedSyncPromise","SyncPromise","resolve","rejectedSyncPromise","_","reject","executor","onfulfilled","onrejected","onfinally","isRejected","cachedHandlers","makePromiseBuffer","buffer","isReady","remove","task","add","taskProducer","drain","counter","capturedSetTimeout","parseUrl","query","fragment","validSeverityLevels","severityLevelFromString","BAGGAGE_HEADER_NAME","SENTRY_BAGGAGE_KEY_PREFIX","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","MAX_BAGGAGE_STRING_LENGTH","baggageHeaderToDynamicSamplingContext","baggageHeader","baggageObject","parseBaggageHeader","dynamicSamplingContext","nonPrefixedKey","dynamicSamplingContextToSentryBaggageHeader","sentryPrefixedDSC","dscKey","dscValue","objectToBaggageHeader","curr","currBaggageObject","baggageHeaderToObject","baggageEntry","keyOrValue","objectKey","objectValue","currentIndex","newBaggageHeader","TRACEPARENT_REGEXP","extractTraceparentData","traceparent","matches","parentSampled","propagationContextFromHeaders","sentryTrace","baggage","traceparentData","traceId","parentSpanId","generateSentryTraceHeader","spanId","sampled","sampledString","createEnvelope","headers","items","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItems","envelopeItem","envelopeItemType","encodeUTF8","serializeEnvelope","envHeaders","parts","append","next","itemHeaders","payload","stringifiedPayload","concatBuffers","buffers","totalLength","buf","merged","offset","createSpanEnvelopeItem","spanJson","createAttachmentEnvelopeItem","attachment","ITEM_TYPE_TO_DATA_CATEGORY_MAP","envelopeItemTypeToDataCategory","getSdkMetadataForEnvelopeHeader","metadataOrEvent","version","createEventEnvelopeHeaders","sdkInfo","tunnel","createClientReportEnvelope","discarded_events","timestamp","clientReportItem","DEFAULT_RETRY_AFTER","parseRetryAfterHeader","header","now","headerDelay","headerDate","disabledUntil","limits","dataCategory","isRateLimited","updateRateLimits","updatedRateLimits","rateLimitHeader","retryAfterHeader","retryAfter","categories","namespaces","category","_nullishCoalesce","lhs","rhsFn","_optionalChain","ops","lastAccessLHS","op","generatePropagationContext","supportsHistory","chromeVar","isChromePackagedApp","hasHistoryApi","getMainCarrier","getSentryCarrier","carrier","makeSession","context","startingTime","session","sessionToJSON","updateSession","duration","closeSession","status","SCOPE_SPAN_FIELD","_setSpanForScope","scope","span","_getSpanForScope","DEFAULT_MAX_BREADCRUMBS","ScopeClass","newScope","lastEventId","user","requestSession","tags","extras","extra","fingerprint","captureContext","scopeToMerge","scopeInstance","Scope","contexts","propagationContext","breadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","breadcrumbs","newData","syntheticException","getDefaultCurrentScope","getDefaultIsolationScope","AsyncContextStack","isolationScope","assignedScope","assignedIsolationScope","maybePromiseResult","getAsyncContextStack","registry","sentry","withScope","withSetScope","withIsolationScope","getStackAsyncContextStrategy","_isolationScope","getAsyncContextStrategy","getCurrentScope","getIsolationScope","getGlobalScope","rest","acs","getClient","METRICS_SPAN_FIELD","getMetricSummaryJsonForSpan","storage","exportKey","summary","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE","SEMANTIC_ATTRIBUTE_PROFILE_ID","SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME","SPAN_STATUS_UNSET","SPAN_STATUS_OK","SPAN_STATUS_ERROR","getSpanStatusFromHttpCode","httpStatus","setHttpStatus","spanStatus","TRACE_FLAG_NONE","TRACE_FLAG_SAMPLED","spanToTransactionTraceContext","span_id","trace_id","parent_span_id","origin","spanToJSON","spanToTraceContext","spanToTraceHeader","spanIsSampled","spanTimeInputToSeconds","ensureTimestampInSeconds","spanIsSentrySpan","spanIsOpenTelemetrySdkTraceBaseSpan","attributes","startTime","endTime","getStatusMessage","castSpan","traceFlags","CHILD_SPANS_FIELD","ROOT_SPAN_FIELD","addChildSpanToSpan","childSpan","rootSpan","removeChildSpanFromSpan","getSpanDescendants","resultSet","addSpanChildren","childSpans","getRootSpan","getActiveSpan","errorsInstrumented","registerSpanErrorInstrumentation","errorCallback","activeSpan","SCOPE_ON_START_SPAN_FIELD","ISOLATION_SCOPE_ON_START_SPAN_FIELD","setCapturedScopesOnSpan","getCapturedScopesOnSpan","hasTracingEnabled","maybeOptions","SentryNonRecordingSpan","spanContext","_timestamp","_key","_value","_values","_status","_name","_attributesOrStartTime","_startTime","_link","_links","_exception","_time","DEFAULT_ENVIRONMENT","FROZEN_DSC_FIELD","freezeDscOnSpan","dsc","getDynamicSamplingContextFromClient","public_key","getDynamicSamplingContextFromSpan","frozenDsc","traceState","traceStateDsc","dscOnTraceState","jsonSpan","maybeSampleRate","logSpanStart","description","isRootSpan","infoParts","logSpanEnd","parseSampleRate","sampleRate","rate","sampleSpan","samplingContext","parsedSampleRate","enhanceEventWithSdkInfo","createSessionEnvelope","metadata","envelopeHeaders","createEventEnvelope","eventType","createSpanEnvelope","spans","dscHasRequiredProps","beforeSendSpan","convertToSpanJSON","setMeasurement","unit","timedEventsToMeasurements","events","measurements","MAX_SPAN_COUNT","SentrySpan","timeInput","endTimestamp","attributesOrStartTime","time","isSpanTimeInput","sendSpanEnvelope","transactionEvent","isFullFinishedSpan","capturedSpanScope","capturedSpanIsolationScope","isStandaloneSpan","transaction","spanItems","transport","SUPPRESS_TRACING_KEY","startInactiveSpan","getAcs","spanArguments","parseSentrySpanArguments","forceTransaction","customParentSpan","withActiveSpan","parentSpan","getParentSpan","createChildOrRootSpan","_startChildSpan","_startRootSpan","initialCtx","ctx","TRACING_DEFAULTS","FINISH_REASON_HEARTBEAT_FAILED","FINISH_REASON_IDLE_TIMEOUT","FINISH_REASON_FINAL_TIMEOUT","FINISH_REASON_EXTERNAL_FINISH","startIdleSpan","startSpanOptions","activities","_finished","_idleTimeoutID","_finishReason","_autoFinishAllowed","_cleanupHooks","idleTimeout","finalTimeout","childSpanTimeout","beforeSpanEnd","previousActiveSpan","_startIdleSpan","thisArg","definedEndTimestamp","spanEndTimestamp","child","onIdleSpanEnded","childEndTimestamps","latestSpanEndTimestamp","spanStartTimestamp","_cancelIdleTimeout","_restartIdleTimeout","_restartChildSpanTimeout","_pushActivity","_popActivity","cleanup","spanJSON","startTimestamp","discardedSpans","childSpanJSON","childEndTimestamp","childStartTimestamp","spanStartedBeforeIdleSpanEnd","timeoutWithMarginOfError","spanEndedBeforeFinalTimeout","stringifiedSpan","startedSpan","endedSpan","spanToAllowAutoFinish","notifyEventProcessors","processors","index","processor","final","applyScopeDataToEvent","sdkProcessingMetadata","applyDataToEvent","applySpanToEvent","applyFingerprintToEvent","applyBreadcrumbsToEvent","applySdkMetadataToEvent","mergeScopeData","mergeData","eventProcessors","attachments","transactionName","mergeAndOverwriteScopeData","mergeVal","cleanedExtra","cleanedTags","cleanedUser","cleanedContexts","mergedBreadcrumbs","prepareEvent","normalizeDepth","normalizeMaxBreadth","prepared","integrations","applyClientOptions","applyIntegrationsMetadata","applyDebugIds","finalScope","getFinalScope","clientEventProcessors","isolationData","finalScopeData","evt","applyDebugMeta","normalizeEvent","environment","release","dist","request","debugIdStackParserCache","debugIdMap","debugIdStackFramesCache","cachedDebugIdStackFrameCache","filenameDebugIdMap","debugIdStackTrace","debugIdValue","parsedStack","cachedParsedStack","stackFrame","images","filename","debug_id","integrationNames","maxBreadth","parseEventHintOrCaptureContext","hintIsScopeOrFunction","hintIsScopeContext","captureContextKeys","captureException","captureEvent","setContext","setUser","addEventProcessor","startSession","currentScope","userAgent","currentSession","endSession","_sendSessionUpdate","captureSession","end","SENTRY_API_VERSION","getBaseApiEndpoint","_getIngestEndpoint","_encodedAuth","getEnvelopeEndpointWithUrlEncodedAuth","getReportDialogEndpoint","dsnLike","dialogOptions","endpoint","encodedOptions","installedIntegrations","filterDuplicates","integrationsByName","currentInstance","existingInstance","getIntegrationsToSetup","defaultIntegrations","userIntegrations","integration","finalIntegrations","debugIndex","debugInstance","setupIntegrations","integrationIndex","setupIntegration","afterSetupIntegrations","ALREADY_SEEN_ERROR","BaseClient","hintWithEventId","eventMessage","promisedEvent","clientFinished","transportFlushed","eventProcessor","integrationName","isAlreadyInstalled","env","promise","sendResponse","eventOrCount","count","hook","hooks","cbIndex","callbacks","crashed","errored","ex","mechanism","sessionNonTerminal","ticked","tick","interval","finalEvent","sentryError","isTransaction","isTransactionEvent","beforeSendLabel","processBeforeSend","_validateBeforeSendResult","processedEvent","spanCount","spanCountBefore","spanCountAfter","droppedSpanCount","transactionInfo","outcomes","quantity","beforeSendResult","invalidValueError","beforeSend","beforeSendTransaction","processedSpans","processedSpan","initAndBind","clientClass","setCurrentClient","DEFAULT_TRANSPORT_BUFFER_SIZE","createTransport","makeRequest","rateLimits","flush","send","filteredEnvelopeItems","getEventForEnvelopeItem","filteredEnvelope","recordEnvelopeLoss","requestTask","isSentryRequestUrl","checkDsn","checkTunnel","removeTrailingSlash","applySdkMetadata","names","DEFAULT_BREADCRUMBS","addBreadcrumb","beforeBreadcrumb","finalBreadcrumb","originalFunctionToString","INTEGRATION_NAME","SETUP_CLIENTS","_functionToStringIntegration","originalFunction","functionToStringIntegration","DEFAULT_IGNORE_ERRORS","_inboundFiltersIntegration","_hint","clientOptions","mergedOptions","_mergeOptions","_shouldDropEvent","inboundFiltersIntegration","internalOptions","_isSentryError","_isIgnoredError","_isUselessError","_isIgnoredTransaction","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreErrors","_getPossibleEventMessages","ignoreTransactions","denyUrls","allowUrls","possibleMessages","lastException","_getLastValidUrl","_dedupeIntegration","previousEvent","currentEvent","dedupeIntegration","_isSameMessageEvent","_isSameExceptionEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","previousException","_getExceptionFromEvent","currentException","currentFrames","previousFrames","frameA","frameB","currentFingerprint","previousFingerprint","instrumentFetchRequest","shouldCreateSpan","shouldAttachHeaders","spanOrigin","shouldCreateSpanResult","endSpan","fullUrl","getFullURL","hasParent","addTracingHeadersToFetchRequest","sentryTraceHeader","sentryBaggageHeader","newHeaders","existingBaggageHeader","newBaggageHeaders","contentLength","contentLengthNum","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","before","wrapper","sentryWrapped","wrappedArguments","exceptionFromError","parseStackFrames","extractMessage","eventFromPlainObject","isUnhandledRejection","errorFromProp","getErrorPropertyFromObject","getNonErrorObjectExceptionValue","eventFromError","stacktrace","skipLines","getSkipFirstStackStringLines","getPopFirstTopFrames","reactMinifiedRegexp","eventFromException","attachStacktrace","eventFromUnknownInput","eventFromMessage","eventFromString","domException","__sentry_template_string__","__sentry_template_values__","captureType","getObjectClassName","createUserFeedbackEnvelope","feedback","createUserFeedbackEnvelopeItem","BrowserClient","opts","sdkSource","getRating","thresholds","bindReporter","metric","reportAllChanges","prevValue","delta","forceReport","generateUniqueID","getNavigationEntry","getActivationStart","navEntry","initMetric","navigationType","observe","po","list","onHidden","onHiddenOrPageHide","runOnce","called","firstHiddenTime","initHiddenTime","onVisibilityUpdate","addChangeListeners","getVisibilityWatcher","whenActivated","FCPThresholds","onFCP","onReport","visibilityWatcher","report","entries","entry","CLSThresholds","onCLS","sessionValue","sessionEntries","handleEntries","firstSessionEntry","lastSessionEntry","FIDThresholds","onFID","handleEntry","interactionCountEstimate","minKnownInteractionId","maxKnownInteractionId","updateEstimate","getInteractionCount","initInteractionCountPolyfill","INPThresholds","prevInteractionCount","getInteractionCountForNavigation","MAX_INTERACTIONS_TO_CONSIDER","longestInteractionList","longestInteractionMap","processEntry","minLongestInteraction","existingInteraction","interaction","estimateP98LongestInteraction","candidateInteractionIndex","onINP","prevEntry","inp","LCPThresholds","reportedMetricIDs","onLCP","lastEntry","stopListening","TTFBThresholds","whenReady","onTTFB","responseStart","_previousCls","_previousFid","_previousLcp","_previousTtfb","_previousInp","addClsInstrumentationHandler","stopOnCallback","addMetricObserver","instrumentCls","addLcpInstrumentationHandler","instrumentLcp","addFidInstrumentationHandler","instrumentFid","addTtfbInstrumentationHandler","instrumentTtfb","addInpInstrumentationHandler","instrumentInp","addPerformanceInstrumentationHandler","instrumentPerformanceObserver","getCleanupCallback","previousValue","isPerformanceEventTiming","isMeasurementValue","startAndEndSpan","startTimeInSeconds","parentStartTime","startStandaloneWebVitalSpan","passedAttributes","replay","replayId","userDisplay","profileId","getBrowserPerformanceAPI","msToSec","trackClsAsStandaloneSpan","standaloneCLsValue","standaloneClsEntry","pageloadSpanId","supportsLayoutShift","sentSpan","_collectClsOnce","sendStandaloneClsSpan","cleanupClsHandler","unsubscribeStartNavigation","_2","clsValue","_3","routeName","_4","_5","_6","_7","_8","_9","_10","_11","_12","_13","_14","MAX_INT_AS_BYTES","_performanceCursor","_measurements","_lcpEntry","_clsEntry","startTrackingWebVitals","recordClsStandaloneSpans","fidCleanupCallback","_trackFID","lcpCleanupCallback","_trackLCP","ttfbCleanupCallback","_trackTtfb","clsCleanupCallback","_trackCLS","startTrackingLongTasks","startTrackingLongAnimationFrames","initialScript","invoker","invokerType","sourceURL","sourceFunctionName","sourceCharPosition","startTrackingInteractions","spanOptions","addPerformanceEntries","performanceEntries","transactionStartTime","_addNavigationSpans","_addMeasureSpans","firstHidden","shouldRecord","_addResourceSpans","_trackNavigator","_addTtfbRequestTimeToMeasurements","fidMark","measurementName","measurement","_setWebVitalAttributes","requestTime","measureStartTimestamp","startTimeStamp","measureEndTimestamp","_addPerformanceNavigationTiming","_addRequest","eventEnd","start","requestStartTimestamp","responseEndTimestamp","responseStartTimestamp","resourceUrl","parsedUrl","setResourceEntrySizeData","navigator","connection","dataKey","entryVal","requestStart","DEBOUNCE_DURATION","debounceTimerID","lastCapturedEventType","lastCapturedEventTargetId","addClickKeypressInstrumentationHandler","instrumentDOM","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","listener","handlerForType","originalRemoveEventListener","isSimilarToLastCapturedEvent","shouldSkipDOMEvent","globalListener","getEventTarget","lastHref","addHistoryInstrumentationHandler","instrumentHistory","oldOnPopState","to","historyReplacementFunction","originalHistoryFunction","cachedImplementations","getNativeImplementation","cached","impl","document","contentWindow","clearCachedImplementation","setTimeout","SENTRY_XHR_DATA_KEY","addXhrInstrumentationHandler","instrumentXHR","xhrproto","originalOpen","xhrOpenThisArg","xhrOpenArgArray","onreadystatechangeHandler","xhrInfo","originalOnreadystatechange","onreadystatechangeThisArg","onreadystatechangeArgArray","originalSetRequestHeader","setRequestHeaderThisArg","setRequestHeaderArgArray","originalSend","sendThisArg","sendArgArray","sentryXhrData","LAST_INTERACTIONS","INTERACTIONS_SPAN_MAP","startTrackingINP","inpCallback","_trackINP","INP_ENTRY_MAP","interactionId","interactionType","spanToUse","registerInpInteractionListener","_latestRoute","activeRootSpan","last","makeFetchTransport","nativeFetch","pendingBodySize","pendingCount","requestSize","requestOptions","CHROME_PRIORITY","GECKO_PRIORITY","createFrame","lineno","colno","chromeRegexNoFnName","chromeRegex","chromeEvalRegex","chromeStackParserFn","noFnParts","col","subMatch","extractSafariExtensionDetails","chromeStackLineParser","geckoREgex","geckoEvalRegex","gecko","geckoStackLineParser","defaultStackLineParsers","defaultStackParser","isSafariExtension","isSafariWebExtension","MAX_ALLOWED_STRING_LENGTH","_breadcrumbsIntegration","_options","_getConsoleBreadcrumbHandler","_getDomBreadcrumbHandler","_getXhrBreadcrumbHandler","_getFetchBreadcrumbHandler","_getHistoryBreadcrumbHandler","_getSentryBreadcrumbHandler","breadcrumbsIntegration","dom","_isEvent","status_code","body","parsedLoc","parsedFrom","parsedTo","DEFAULT_EVENT_TARGET","_browserApiErrorsIntegration","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","browserApiErrorsIntegration","originalCallback","xhr","wrapOptions","globalObject","eventName","wrappedEventHandler","originalEventHandler","_globalHandlersIntegration","_installGlobalOnErrorHandler","globalHandlerLog","_installGlobalOnUnhandledRejectionHandler","globalHandlersIntegration","getOptions","_enhanceEventWithInitialFrame","_getUnhandledRejectionError","_eventFromRejectionWithPrimitive","ev","ev0","ev0s","ev0sf","httpContextIntegration","referrer","DEFAULT_KEY","DEFAULT_LIMIT","_linkedErrorsIntegration","linkedErrorsIntegration","getDefaultIntegrations","applyDefaultOptions","optionsArg","defaultOptions","shouldShowBrowserExtensionError","windowWithMaybeExtension","extensionKey","extensionObject","runtimeId","href","extensionProtocols","isDedicatedExtensionPage","isNWjs","browserOptions","startSessionTracking","showReportDialog","script","onClose","reportDialogClosedMessageHandler","injectionPoint","REPLAY_SESSION_KEY","REPLAY_EVENT_NAME","UNABLE_TO_SEND_REPLAY","SESSION_IDLE_PAUSE_DURATION","SESSION_IDLE_EXPIRE_DURATION","DEFAULT_FLUSH_MIN_DELAY","DEFAULT_FLUSH_MAX_DELAY","BUFFER_CHECKOUT_TIME","RETRY_BASE_INTERVAL","RETRY_MAX_COUNT","NETWORK_BODY_MAX_SIZE","CONSOLE_ARG_MAX_SIZE","SLOW_CLICK_THRESHOLD","SLOW_CLICK_SCROLL_TIMEOUT","REPLAY_MAX_EVENT_BUFFER_SIZE","MIN_REPLAY_DURATION","MIN_REPLAY_DURATION_LIMIT","MAX_REPLAY_DURATION","_nullishCoalesce$1","_optionalChain$5","NodeType$1","NodeType","isElement$1","isShadowRoot","isNativeShadowDom","shadowRoot","fixBrowserCompatibilityIssuesInCSS","cssText","escapeImportStatement","rule","statement","stringifyStylesheet","s","rules","stringifyRule","importStringified","isCSSImportRule","isCSSStyleRule","fixSafariColons","cssStringified","regex","Mirror","childNode","meta","oldNode","createMirror","shouldMaskInput","maskInputOptions","maskInputValue","isMasked","maskInputFn","text","toLowerCase","toUpperCase","ORIGINAL_ATTRIBUTE_NAME","is2DCanvasBlank","canvas","chunkSize","getImageData","originalGetImageData","pixel","getInputType","getInputValue","extractFileExtension","baseURL","cachedImplementations$1","getImplementation$1","setTimeout$2","clearTimeout$2","_id","tagNameRegex","IGNORED_NODE","genId","getValidTagName","processedTagName","extractOrigin","canvasService","canvasCtx","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","absoluteToStylesheet","quote1","path1","quote2","path2","path3","filePath","maybeQuote","part","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","getAbsoluteSrcsetString","attributeValue","pos","collectCharacters","regEx","chars","absoluteToDoc","descriptorsStr","inParens","isSVGElement","getHref","transformAttribute","maskAttributeFn","ignoreAttribute","_isBlockedElement","blockClass","blockSelector","unblockSelector","eIndex","elementClassMatchesRegex","distanceToMatch","matchPredicate","distance","createMatchPredicate","needMaskingText","maskTextClass","maskTextSelector","unmaskTextClass","unmaskTextSelector","maskAllText","autocomplete","maskDistance","unmaskDistance","onceIframeLoaded","iframeEl","iframeLoadTimeout","win","fired","readyState","timer","blankUrl","onceStylesheetLoaded","link","styleSheetLoadTimeout","styleSheetLoaded","serializeNode","mirror","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","rootId","getRootId","serializeElementNode","serializeTextNode","docId","parentTagName","textContent","isStyle","isScript","isTextarea","forceMask","isInputMasked","needBlock","stylesheet","checked","canvasDataURL","blankCanvas","blankCanvasDataURL","image","oldValue","recordInlineImage","width","isCustomElement","lowerIfExists","maybeAttr","slimDOMExcluded","sn","slimDOMOptions","serializeNodeWithId","skipChild","onSerialize","onIframeLoad","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","serializedNode","recordChild","bypassOptions","childN","serializedChildNode","iframeDoc","serializedIframeNode","serializedLinkNode","snapshot","maskAllInputs","slimDOM","_optionalChain$4","on","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","receiver","throttle$1","previous","remaining","clearTimeout$1","setTimeout$1","hookSetter","isRevoked","patch","replacement","nowTimestamp","getWindowScroll","getWindowHeight","getWindowWidth","closestElementOfNode","isBlocked","checkAncestors","blockedPredicate","isUnblocked","blockDistance","unblockDistance","isSerialized","isIgnored","isAncestorRemoved","legacy_isTouchEvent","polyfill","isSerializedIframe","isSerializedStylesheet","hasShadowRoot","_18","StyleSheetMirror","newId","getShadowHost","shadowHost","_19","_20","_21","getRootShadowHost","rootShadowHost","shadowHostInDom","inDom","getImplementation","onRequestAnimationFrame","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","_optionalChain$3","isNodeInLinkedList","DoubleLinkedList","position","current","moveKey","MutationBuffer","mutations","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","currentN","iframe","childSn","isParentRemoved","isAncestorInSet","candidate","tailNode","_node","unhandledNode","attribute","diffAsStr","unchangedAsStr","attributeName","old","pname","newPriority","nodeId","deepDelete","targetId","addsSet","removes","_isParentRemoved","parentNode","set","_isAncestorInSet","errorHandler","registerErrorHandler","unregisterErrorHandler","callbackWrapper","_optionalChain$2","mutationBuffers","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","angularZoneSymbol","observer","initMoveObserver","mousemoveCb","sampling","callbackThreshold","positions","timeBaseline","wrappedCb","totalOffset","updatePosition","clientX","clientY","initMouseInteractionObserver","mouseInteractionCb","disableMap","currentPointerType","getHandler","eventKey","pointerType","thisEventKey","initScrollObserver","scrollCb","scrollLeftTop","initViewportResizeObserver","viewportResizeCb","lastH","lastW","updateDimension","INPUT_TAGS","lastInputValueMap","initInputObserver","inputCb","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isChecked","cbWithDedup","lastInputValue","currentWindow","propertyDescriptor","hookProperties","getNestedCSSRulePositions","recurse","childRule","hasNestedCSSRule","getIdAndStyleId","sheet","styleMirror","styleId","initStyleSheetObserver","styleSheetRuleCb","stylesheetManager","insertRule","argumentsList","deleteRule","replace","replaceSync","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initAdoptedStyleSheetObserver","hostId","patchTarget","originalPropertyDescriptor","sheets","_15","_16","initStyleDeclarationObserver","styleDeclarationCb","ignoreCSSAttributes","setProperty","priority","_17","removeProperty","initMediaInteractionObserver","mediaInteractionCb","currentTime","volume","muted","playbackRate","initFontObserver","fontCb","fontMap","originalFontFace","family","descriptors","fontFace","restoreHandler","initSelectionObserver","param","selectionCb","collapsed","updateSelection","selection","ranges","range","startContainer","startOffset","endContainer","endOffset","initCustomElementObserver","customElementCb","constructor","initObservers","o","_hooks","mutationObserver","mousemoveHandler","mouseInteractionHandler","scrollHandler","viewportResizeHandler","inputHandler","mediaInteractionHandler","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","selectionObserver","customElementObserver","pluginHandlers","plugin","_22","_23","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","remoteIdToIdMap","map","ids","_optionalChain$1","IframeManagerNoop","IframeManager","crossOriginMessageEvent","transformedEvent","style","iframeMirror","ShadowDomManagerNoop","ShadowDomManager","iframeElement","manager","option","CanvasManagerNoop","StylesheetManager","linkEl","adoptedStyleSheetData","styles","ProcessedNodeManager","thisBuffer","wrappedEmit","_takeFullSnapshot","cleanFrame","record","emit","checkoutEveryNms","checkoutEveryNth","_maskInputOptions","_slimDOMOptions","maxCanvasSize","packFn","mousemoveWait","recordDOM","recordCrossOriginIframes","recordAfter","collectFonts","plugins","onMutation","getCanvasManager","inEmittingFrame","passEmitsToParent","lastFullSnapshotEvent","incrementalSnapshotCount","isCheckout","exceedCount","exceedTime","takeFullSnapshot","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","wrappedAdoptedStyleSheetEmit","iframeManager","processedNodeManager","canvasManager","_getCanvasManager","shadowDomManager","getCanvasManagerFn","_addBreadcrumb","makeReplayLogger","_capture","_trace","_logger","logger$1","ReplayEventTypeIncrementalSnapshot","ReplayEventTypeCustom","timestampToMs","timestampToS","addBreadcrumbEvent","INTERACTIVE_SELECTOR","getClosestInteractive","getClickTargetNode","getTargetNode","isEventWithTarget","onWindowOpen","monkeyPatchWindowOpen","originalWindowOpen","IncrementalMutationSources","handleClick","clickDetector","clickBreadcrumb","ClickDetector","slowClickConfig","_addBreadcrumbEvent","cleanupWindowOpen","nowInSeconds","ignoreElement","isClickBreadcrumb","newClick","click","timedOutClicks","hadScroll","hadMutation","isSlowClick","clickCount","timeAfterClickMs","endReason","setTimeout$3","SLOW_CLICK_TAGS","updateClickDetectorForRecordingEvent","isIncrementalEvent","isIncrementalMouseInteraction","createBreadcrumb","ATTRIBUTES_TO_RECORD","getAttributesToRecord","normalizedKey","handleDomListener","handleDom","isClick","getBaseDomBreadcrumb","getDomTarget","handleKeyboardEvent","getKeyboardBreadcrumb","metaKey","shiftKey","ctrlKey","altKey","isInputElement","hasModifierKey","isCharacterKey","baseBreadcrumb","ENTRY_TYPES","createResourceEntry","createPaintEntry","createNavigationEntry","webVitalHandler","getter","createPerformanceEntries","createPerformanceEntry","entryType","getAbsoluteTime","decodedBodySize","domComplete","encodedBodySize","domContentLoadedEventStart","domContentLoadedEventEnd","domInteractive","loadEventStart","loadEventEnd","redirectCount","transferSize","initiatorType","responseEnd","responseStatus","getLargestContentfulPaint","getWebVital","isLayoutShift","getCumulativeLayoutShift","layoutShifts","nodes","nodeIds","getFirstInputDelay","getInteractionToNextPaint","attributions","rating","setupPerformanceObserver","addPerformanceEntry","onEntries","clearCallbacks","clearCallback","EventBufferSizeExceededError","EventBufferArray","eventSize","eventsRet","WorkerHandler","worker","EventBufferCompressionWorker","EventBufferProxy","hasCheckout","addEventPromises","createEventBuffer","useCompression","customWorkerUrl","_loadWorker","workerUrl","_getWorkerUrl","hasSessionStorage","clearSession","deleteSession","isSampled","started","lastActivity","segmentId","previousSessionId","saveSession","getSessionSampleType","sessionSampleRate","allowBuffering","createSession","stickySession","fetchSession","sessionStringFromStorage","sessionObj","isExpired","initialTime","expiry","targetTime","isSessionExpired","maxReplayDuration","sessionIdleExpire","shouldRefreshSession","loadOrCreateSession","sessionOptions","existingSession","isCustomEvent","addEventSync","shouldAddEvent","_addEvent","addEvent","replayOptions","eventAfterPossibleCallback","maybeApplyCallback","timestampInMs","isReplayEvent","isFeedbackEvent","handleAfterSendEvent","handleTransactionEvent","handleErrorEvent","replayContext","beforeErrorSampling","handleBeforeSendEvent","handleHydrationError","exceptionValue","handleBreadcrumbs","beforeAddBreadcrumb","isBreadcrumbWithCategory","normalizeBreadcrumb","normalizeConsoleBreadcrumb","isTruncated","normalizedArgs","normalizedArg","isRrwebError","addFeedbackBreadcrumb","shouldSampleForBufferEvent","handleGlobalEventListener","createPerformanceSpans","handleHistory","handleHistorySpanListener","shouldFilterRequest","addNetworkBreadcrumb","getBodySize","textEncoder","formDataStr","_serializeFormData","parseContentLengthHeader","size","getBodyString","mergeWarning","info","warning","newMeta","existingWarnings","makeNetworkReplayBreadcrumb","buildSkippedNetworkRequestOrResponse","bodySize","buildNetworkRequestOrResponse","normalizedBody","warnings","normalizeNetworkBody","getAllowedHeaders","allowedHeaders","filteredHeaders","formData","exceedsSizeLimit","isProbablyJson","_strIsProbablyJson","truncatedBody","first","urlMatches","urls","getFullUrl","baseURI","fixedUrl","captureFetchBreadcrumbToReplay","_prepareFetchData","enrichFetchBreadcrumb","_getFetchRequestArgBody","reqSize","resSize","requestBodySize","responseBodySize","captureDetails","_getRequestInfo","_getResponseInfo","networkCaptureBodies","networkRequestHeaders","getRequestHeaders","requestBody","bodyStr","networkResponseHeaders","getAllHeaders","bodyText","_parseFetchResponseBody","getResponseData","_tryCloneResponse","_tryGetResponseText","allHeaders","getHeadersFromOptions","_getResponseText","txt","captureXhrBreadcrumbToReplay","_prepareXhrData","enrichXhrBreadcrumb","_getBodySize","getResponseHeaders","requestWarning","responseBody","responseWarning","_getXhrResponseBody","errors","_parseXhrResponse","responseType","handleNetworkBreadcrumbs","networkDetailAllowUrls","networkDetailDenyUrls","beforeAddNetworkBreadcrumb","_isXhrBreadcrumb","_isXhrHint","_isFetchBreadcrumb","_isFetchHint","addGlobalListeners","feedbackEvent","addMemoryEntry","createMemoryEntry","memoryEntry","jsHeapSizeLimit","totalJSHeapSize","usedJSHeapSize","callbackReturnValue","timerId","maxTimerId","maxWait","invokeFunc","cancelTimers","getHandleRecordingEmit","hadFirstEvent","_isCheckout","addSettingsEvent","earliestEvent","createOptionsEvent","createReplayEnvelope","replayEvent","recordingData","prepareRecordingData","payloadWithSequence","replayHeaders","sequence","prepareReplayEvent","event_id","eventHint","preparedEvent","sendReplayRequest","segment_id","eventContext","preparedRecordingData","errorIds","traceIds","initialTimestamp","baseEvent","TransportStatusCodeError","RateLimitError","sendReplay","replayData","retryConfig","onError","THROTTLED","SKIPPED","throttle","maxCount","durationSeconds","_cleanup","_getTotalCount","isThrottled","wasThrottled","ReplayContainer","recordingOptions","slowClickTimeout","slowClickIgnoreSelectors","experiments","errorSampleRate","requiresManualStart","canvasOptions","forceFlush","continueRecording","activityTime","hasStoppedRecording","cbResult","urlPath","lastActiveSpan","lastRootSpan","_lastActivity","eventBuffer","_context","dropReason","force","tooShort","tooLong","_flushInProgress","mutationLimit","mutationBreadcrumbLimit","overMutationLimit","getOption","selectors","defaultSelectors","getPrivacyOptions","mask","unmask","block","unblock","ignore","defaultBlockedElements","maskSelector","unmaskSelector","maskAttribute","maskAttributes","privacyOptions","MEDIA_SELECTORS","DEFAULT_NETWORK_HEADERS","_initialized","replayIntegration","Replay","flushMinDelay","flushMaxDelay","minReplayDuration","_experiments","blockAllMedia","maskFn","beforeAddRecordingEvent","_getMergedNetworkHeaders","finalOptions","loadReplayOptionsFromClient","canvasIntegration","initialOptions","opt","replaysSessionSampleRate","replaysOnErrorSampleRate","responseToSpanId","spanIdToEndTimestamp","defaultRequestInstrumentationOptions","instrumentOutgoingRequests","traceFetch","traceXHR","shouldCreateSpanForRequest","enableHTTPTimings","tracePropagationTargets","shouldAttachHeadersWithTargets","updatedTimestamp","createdSpan","addHTTPTimings","xhrCallback","isPerformanceResourceTiming","resourceTimingEntryToSpanData","extractNetworkProtocol","nextHopProtocol","char","resourceTiming","timingSpanData","targetUrl","resolvedUrl","currentOrigin","isSameOriginRequest","isRelativeSameOriginRequest","addTracingHeadersToXhrRequest","setHeaderOnXhr","registerBackgroundTabDetection","cancelledStatus","BROWSER_TRACING_INTEGRATION_ID","DEFAULT_BROWSER_TRACING_OPTIONS","browserTracingIntegration","enableInp","enableLongTask","enableLongAnimationFrame","enableInteractions","enableStandaloneClsSpans","beforeStartSpan","markBackgroundSpan","instrumentPageLoad","instrumentNavigation","_collectWebVitals","latestRoute","_createRouteSpan","isPageloadTransaction","finalStartSpanOptions","idleSpan","emitFinish","startingUrl","traceOptions","getMetaContent","oldPropagationContext","startBrowserTracingPageLoadSpan","startBrowserTracingNavigationSpan","registerInteractionListener","metaName","metaTag","inflightInteractionSpan","registerInteractionTransaction","currentRootSpanOp","init$1","isAtLeastReact17","reactVersion","reactMajor","setCause","cause","seenErrors","captureReactException","componentStack","errorBoundaryError","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","hoistNonReactStatics_cjs","INITIAL_STATE","ErrorBoundary","React.Component","errorInfo","passedInComponentStack","beforeCapture","showDialog","onMount","onUnmount","onReset","children","React.createElement","ldinsp","insp","getThemeProps","params","theme","_objectWithoutPropertiesLoose","_excluded","sortBreakpointsValues","breakpointsAsArray","breakpoint1","breakpoint2","createBreakpoints","breakpoints","step","other","sortedValues","up","down","between","endIndex","only","not","keyIndex","shape","merge","defaultBreakpoints","handleBreakpoints","propValue","styleFromPropValue","themeBreakpoints","breakpoint","mediaKey","cssKey","createEmptyBreakpointObject","breakpointsInput","_breakpointsInput$key","breakpointStyleKey","removeUnusedBreakpoints","breakpointKeys","breakpointOutput","mergeBreakpointsInOrder","emptyBreakpoints","mergedOutput","prev","computeBreakpointsBase","breakpointValues","breakpointsKeys","resolveBreakpointValues","customBase","getPath","checkVars","getStyleValue","themeMapping","transform","propValueFinal","userValue","cssProperty","themeKey","cache","properties","directions","aliases","getCssProperties","dir","marginKeys","paddingKeys","createUnaryUnit","defaultValue","_getPath","themeSpacing","abs","createUnarySpacing","getValue","transformer","transformed","getStyleFromPropValue","cssProperties","resolveCssProperty","margin","padding","createSpacing","spacingInput","spacing","argsInput","argument","compose","borderTransform","createBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outline","outlineColor","borderRadius","gap","columnGap","rowGap","gridColumn","gridRow","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","paletteTransform","color","bgcolor","backgroundColor","sizingTransform","maxWidth","_props$theme","_props$theme2","breakpointsValues","minWidth","maxHeight","minHeight","boxSizing","defaultSxConfig","objectsHaveSameKeys","objects","allKeys","union","callIfFn","maybeFn","unstable_createStyleFunctionSx","getThemeValue","config","styleFunctionSx","_theme$unstable_sxCon","sx","traverse","sxInput","sxObject","css","styleKey","applyStyles","createTheme","paletteInput","shapeInput","muiTheme","reactPropsRegex","isPropValid","sheetForTag","tag","createStyleElement","StyleSheet","_this","_proto","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","assign","hash","length","charat","trim","indexof","search","substr","begin","strlen","sizeof","array","combine","character","characters","root","parent","copy","peek","caret","slice","token","alloc","dealloc","delimit","whitespace","escaping","commenter","identifier","compile","parse","rulesets","pseudo","points","declarations","atrule","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","j","serialize","stringify","middleware","collection","rulesheet","identifierWithPointTracking","toRules","parsed","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefix","prefixer","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","shouldCache","getRegisteredStyles","registered","registeredStyles","classNames","rawClassName","registerStyles","isStringTag","insertStyles","murmur2","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","createStringFromObject","previousCursor","_i","interpolated","labelPattern","serializeStyles","stringMode","strings","identifierName","hashString","syncFallback","create","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","useInsertionEffectWithLayoutFallback","EmotionCacheContext","React.createContext","CacheProvider","withEmotionCache","forwardRef","useContext","ThemeContext","Global","React.useContext","sheetRef","rehydrating","sheetRefCurrent","_len","keyframes","insertable","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","Insertion","_ref","createStyled","baseTag","targetClassName","defaultShouldForwardProp","shouldUseAs","Styled","FinalTag","classInterpolations","finalShouldForwardProp","newProps","React.Fragment","nextTag","nextOptions","newStyled","StyledEngineProvider","injectFirst","_jsx","isEmpty","GlobalStyles","defaultTheme","globalStyles","themeInput","styled","emStyled","internal_processStyles","isObjectEmpty","useTheme","contextTheme","systemDefaultTheme","useThemeWithoutDefault","useThemeProps","themeId","splitProps","_props$theme$unstable","extendSxProp","inSx","systemProps","otherProps","finalSx","createMixins","mixins","_interopRequireDefault","module","colorManipulator","alpha","blend","darken","decomposeColor","emphasize","getContrastRatio","getLuminance","hexToRgb","hslToRgb","lighten","private_safeAlpha","private_safeDarken","private_safeEmphasize","private_safeLighten","recomposeColor","rgbToHex","_formatMuiErrorMessage2","_clamp","require$$2","clampWrapper","colors","intToHex","int","hex","marker","colorSpace","colorChannel","decomposedColor","idx","private_safeColorChannel","rgb","foreground","background","lumA","lumB","coefficient","overlay","opacity","gamma","blendChannel","overlayColor","common","grey","purple","red","orange","blue","lightBlue","green","light","dark","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","getDefaultPrimary","mode","getDefaultSecondary","getDefaultError","getDefaultInfo","getDefaultSuccess","getDefaultWarning","createPalette","palette","contrastThreshold","primary","secondary","success","getContrastText","augmentColor","mainShade","lightShade","darkShade","modes","round","caseAllCaps","defaultFontFamily","createTypography","typography","fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem2","coef","pxToRem","buildVariant","fontWeight","lineHeight","letterSpacing","casing","variants","shadowKeyUmbraOpacity","shadowKeyPenumbraOpacity","shadowAmbientShadowOpacity","createShadow","px","shadows","easing","formatMs","milliseconds","getAutoHeightDuration","constant","createTransitions","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","animatedProp","zIndex","mixinsInput","transitionsInput","typographyInput","systemTheme","systemCreateTheme","THEME_ID","systemUseThemeProps","upperTheme","MuiGlobalStyles","clsx","createBox","defaultClassName","generateClassName","BoxRoot","React.forwardRef","inProps","_extendSxProp","boxClasses","Box","_excluded2","_excluded3","lowercaseFirstLetter","resolveTheme","defaultOverridesResolver","processStyleArg","callableStyle","ownerState","resolvedStylesArg","resolvedStyle","variant","isMatch","rootShouldForwardProp","slotShouldForwardProp","systemSx","inputOptions","processStyles","componentSlot","inputSkipVariantsResolver","inputSkipSx","overridesResolver","skipVariantsResolver","skipSx","label","shouldForwardPropOption","defaultStyledResolver","styledEngineStyled","transformStyleArg","stylesArg","muiStyledResolver","styleArg","expressions","transformedStyleArg","expressionsWithDefaultTheme","styleOverrides","resolvedStyleOverrides","slotKey","slotStyle","_theme$components","themeVariants","numOfCustomFnsApplied","placeholders","hasSymbol","nested","mergeOuterLocalTheme","outerTheme","localTheme","ThemeProvider","RtlContext","RtlProvider","useRtl","EMPTY_THEME","useThemeScoping","isPrivate","resolvedTheme","mergedTheme","upperPrivateTheme","usePrivateTheme","engineTheme","privateTheme","rtlValue","MuiThemeProvider","StyledEngineThemeContext","defaultCreateStyledComponent","systemStyled","useThemePropsDefault","useThemePropsSystem","joinChildren","childrenArray","React.Children","React.cloneElement","getSideFromDirection","directionValues","spacingValues","previousDirectionValue","createStack","createStyledComponent","useUtilityClasses","StackRoot","themeProps","divider","useFlexGap","SystemGlobalStyles","html","enableColorScheme","colorSchemeStyles","scheme","_scheme$palette","defaultStyles","themeOverrides","CssBaseline","_jsxs","useThemeSystem","createStyled_1","_extends2","_objectWithoutPropertiesLoose2","_styledEngine","_interopRequireWildcard","require$$3","_deepmerge","require$$4","require$$5","require$$6","_createTheme","require$$7","_styleFunctionSx","require$$8","_getRequireWildcardCache","scopedTheme","SystemThemeProvider","getOverlayAlpha","elevation","alphaValue","this","$","buildWarning","gravity","alreadyWarned","cleanMessage","defaultDayjs","customParseFormatPlugin","localizedFormatPlugin","isBetweenPlugin","localeNotFoundWarning","formatTokenMap","defaultFormats","MISSING_UTC_PLUGIN","MISSING_TIMEZONE_PLUGIN","withLocale","dayjs","locale","AdapterDayjs","_locale","formats","_this$rawDayJsInstanc","expectedLocale","comparing","comparisonTemplate","comparingInValueTimezone","timezone","keepLocalTime","locales","localeObject","_fixedValue$$offset","_value$$offset","fixedValue","parsedValue","_value$$x","zone","isoString","format","localeFormats","formatBis","formatKey","formatString","numberToFormat","amount","year","month","date","hours","minutes","seconds","monthArray","prevMonth","dateParam","timeParam","diff","cleanValue","nestedWeeks","weekNumber","startDate","endDate","years","ampm","weekOfYear","MuiPickersAdapterContext","LocalizationProvider","_React$useContext","inLocaleText","otherInProps","parentUtils","parentLocaleText","DateAdapter","dateFormats","dateLibInstance","adapterLocale","themeLocaleText","localeText","utils","adapter","defaultDates","contextValue","getTypographyUtilityClass","align","gutterBottom","noWrap","paragraph","TypographyRoot","defaultVariantMapping","colorTransformations","transformDeprecatedColors","Typography","variantMapping","isHostComponent","appendOwnerState","elementType","extractEventHandlers","excludeKeys","resolveComponentProps","componentProps","slotState","omitEventHandlers","mergeSlotProps","parameters","getSlotProps","additionalProps","externalSlotProps","externalForwardedProps","joinedClasses","mergedStyle","eventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","useSlotProps","_parameters$additiona","skipResolvingSlotProps","resolvedComponentsProps","internalRef","_setPrototypeOf","_inheritsLoose","setPrototypeOf","config$1","TransitionGroupContext","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","parentGroup","appear","initialStatus","prevState","nextIn","prevProps","nextStatus","exit","enter","mounting","ReactDOM","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","_this3","nextState","_this4","active","doesNotHaveTimeoutOrListener","_ref3","maybeNextCallback","_this$props","childProps","noop","_assertThisInitialized","getChildMapping","mapFn","mapper","isValidElement","Children","mergeChildMappings","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","getProp","getInitialChildMapping","onExited","cloneElement","getNextChildMapping","nextProps","prevChildMapping","nextChildMapping","hasPrev","hasNext","prevChild","isLeaving","TransitionGroup","handleExited","firstRender","currentChildMapping","childFactory","Ripple","pulsate","rippleX","rippleY","rippleSize","inProp","leaving","setLeaving","rippleClassName","rippleStyles","childClassName","timeoutId","touchRippleClasses","_t","_t2","_t3","_t4","DURATION","DELAY_RIPPLE","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","TouchRippleRipple","TouchRipple","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","center","fakeElement","rect","sizeX","sizeY","stop","React.useImperativeHandle","getButtonBaseUtilityClass","buttonBaseClasses","disabled","focusVisible","focusVisibleClassName","composedClasses","ButtonBaseRoot","ButtonBase","action","centerRipple","disableRipple","disableTouchRipple","focusRipple","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","buttonRef","rippleRef","handleRippleRef","focusVisibleRef","setFocusVisible","mountedState","setMountedState","enableTouchRipple","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleContextMenu","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","isNonNativeButton","button","keydownRef","handleKeyUp","ComponentProp","buttonProps","handleRef","getIconButtonUtilityClass","iconButtonClasses","edge","IconButtonRoot","_palette","IconButton","disableFocusRipple","getSvgIconUtilityClass","svgIconClasses","SvgIconRoot","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_palette$ownerState$c","_palette2","_palette3","SvgIcon","htmlColor","inheritViewBox","titleAccess","viewBox","hasSvgAsChild","more","createSvgIcon","displayName","React.memo","unstable_ClassNameGenerator","ListContext","getDividerUtilityClass","dividerClasses","getListItemIconUtilityClass","listItemIconClasses","alignItems","ListItemIconRoot","ListItemIcon","getListItemTextUtilityClass","listItemTextClasses","inset","dense","ListItemTextRoot","ListItemText","disableTypography","primaryProp","primaryTypographyProps","secondaryProp","secondaryTypographyProps","getMenuItemUtilityClass","menuItemClasses","disableGutters","selected","MenuItemRoot","MenuItem","autoFocus","role","tabIndexProp","childContext","menuItemRef","getListUtilityClass","disablePadding","subheader","ListRoot","List","nextItem","disableListWrap","previousItem","textCriteriaMatches","nextFocus","textCriteria","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","MenuList","actions","autoFocusItem","listRef","textCriteriaRef","containerElement","noExplicitWidth","scrollbarSize","criteria","lowerKey","currTime","keepFocusOnCurrent","activeItemIndex","newChildProps","candidatesSelector","getTabIndex","tabindexAttr","isNonTabbableRadio","getRadio","roving","isNodeMatchingSelectorFocusable","defaultGetTabbable","regularTabNodes","orderedTabNodes","nodeTabIndex","defaultIsEnabled","FocusTrap","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","getTabbable","isEnabled","open","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","reactFocusEventTarget","activated","rootRef","lastKeydown","loopFocus","nativeEvent","contain","rootElement","tabbable","_lastKeydown$current","_lastKeydown$current2","isShiftTab","focusNext","focusPrevious","childrenPropsHandler","handleFocusSentinel","getContainer","Portal","forwardedRef","disablePortal","mountNode","setMountNode","ReactDOM.createPortal","isOverflowing","ariaHidden","show","getPaddingRight","isAriaHiddenForbiddenOnElement","isForbiddenTagName","isInputHidden","ariaHiddenSiblings","mountElement","currentElement","elementsToExclude","isNotExcludedElement","isNotForbiddenElement","findIndexOf","handleContainer","containerInfo","restoreStyle","scrollContainer","containerWindow","getHiddenSiblings","hiddenSiblings","ModalManager","modal","modalIndex","containerIndex","ariaHiddenState","nextTop","getHasTransition","defaultManager","useModal","disableEscapeKeyDown","disableScrollLock","closeAfterTransition","onTransitionEnter","onTransitionExited","mountNodeRef","modalRef","exited","setExited","hasTransition","ariaHiddenProp","getDoc","getModal","handleMounted","handleOpen","resolvedContainer","isTopModal","handlePortalRef","handleClose","createHandleKeyDown","otherHandlers","_otherHandlers$onKeyD","createHandleBackdropClick","_otherHandlers$onClic","propsEventHandlers","externalEventHandlers","handleEnter","TextareaAutosize","onChange","maxRows","minRows","inputRef","shadowRef","calculateTextareaStyles","computedStyle","inputShallow","innerHeight","singleRowHeight","outerHeight","outerHeightStyle","overflowing","syncHeight","textareaStyles","handleResize","rAF","debounceHandleResize","resizeObserver","handleChange","formControlState","states","muiFormControl","FormControlContext","useFormControl","hasValue","isFilled","SSR","isAdornedStart","getInputBaseUtilityClass","inputBaseClasses","rootOverridesResolver","inputOverridesResolver","endAdornment","focused","formControl","fullWidth","hiddenLabel","multiline","readOnly","startAdornment","InputBaseRoot","InputBaseComponent","placeholder","placeholderHidden","placeholderVisible","inputGlobalStyles","InputBase","_slotProps$input","ariaDescribedby","autoComplete","componentsProps","disableInjectingGlobalStyles","inputComponent","inputPropsProp","inputRefProp","renderSuffix","rows","valueProp","handleInputRefWarning","handleInputRef","setFocused","fcs","onFilled","onEmpty","checkDirty","InputComponent","inputProps","handleAutoFill","Root","rootProps","Input","getInputUtilityClass","inputClasses","disableUnderline","InputRoot","inputBaseRootOverridesResolver","bottomLineColor","InputInput","InputBaseInput","inputBaseInputOverridesResolver","_slots$root","_slots$input","componentsPropsProp","inputComponentsProps","RootSlot","InputSlot","getFilledInputUtilityClass","filledInputClasses","FilledInputRoot","hoverBackground","disabledBackground","FilledInputInput","FilledInput","filledInputComponentsProps","_span","NotchedOutlineRoot","NotchedOutlineLegend","NotchedOutline","notched","withLabel","getOutlinedInputUtilityClass","outlinedInputClasses","OutlinedInputRoot","OutlinedInputInput","OutlinedInput","_React$Fragment","getFormLabelUtilityClasses","formLabelClasses","filled","required","FormLabelRoot","AsteriskComponent","FormLabel","getInputLabelUtilityClasses","shrink","disableAnimation","InputLabelRoot","InputLabel","shrinkProp","getFormControlUtilityClasses","FormControlRoot","FormControl","visuallyFocused","adornedStart","setAdornedStart","initialAdornedStart","setFilled","initialFilled","focusedState","registerEffect","reflow","getTransitionProps","_style$transitionDura","_style$transitionTimi","getScale","isWebKit154","Grow","addEndListener","onEnter","onEntered","onEntering","onExit","onExiting","TransitionComponent","autoTimeout","nodeRef","normalizedTransitionCallback","maybeIsAppearing","handleEntering","isAppearing","transitionDuration","transitionTimingFunction","handleEntered","handleExiting","handleExit","handleAddEndListener","Fade","defaultTimeout","transitionProps","getBackdropUtilityClass","invisible","BackdropRoot","Backdrop","_slotProps$root","rootSlotProps","getModalUtilityClass","ModalRoot","ModalBackdrop","Modal","_slots$backdrop","_slotProps$backdrop","BackdropComponent","BackdropProps","hideBackdrop","keepMounted","onBackdropClick","propsWithDefaults","getRootProps","getBackdropProps","portalRef","BackdropSlot","backdropSlotProps","backdropProps","getPaperUtilityClass","square","PaperRoot","_theme$vars$overlays","Paper","getPopoverUtilityClass","getOffsetTop","vertical","getOffsetLeft","horizontal","getTransformOriginValue","transformOrigin","resolveAnchorEl","anchorEl","PopoverRoot","PopoverPaper","PaperBase","Popover","_slotProps$paper","_slots$paper","anchorOrigin","anchorPosition","anchorReference","containerProp","marginThreshold","PaperPropsProp","transitionDurationProp","TransitionProps","externalPaperSlotProps","paperRef","handlePaperRef","getAnchorOffset","resolvedAnchorEl","anchorRect","getTransformOrigin","elemRect","getPositioningStyle","elemTransformOrigin","anchorOffset","top","left","bottom","right","heightThreshold","widthThreshold","isPositioned","setIsPositioned","setPositioningStyles","positioning","PaperSlot","paperProps","_useSlotProps","rootSlotPropsProp","getMenuUtilityClass","RTL_ORIGIN","LTR_ORIGIN","MenuRoot","MenuPaper","MenuMenuList","Menu","disableAutoFocusItem","MenuListProps","PaperProps","PopoverClasses","isRtl","menuListActionsRef","handleListKeyDown","paperExternalSlotProps","paperSlotProps","getNativeSelectUtilityClasses","nativeSelectClasses","multiple","nativeSelectSelectStyles","NativeSelectSelect","nativeSelectIconStyles","NativeSelectIcon","NativeSelectInput","IconComponent","getSelectUtilityClasses","selectClasses","SelectSelect","SelectIcon","SelectNativeInput","areEqualValues","display","SelectInput","_MenuProps$slotProps","ariaLabel","autoWidth","defaultOpen","displayEmpty","labelId","MenuProps","onOpen","openProp","renderValue","SelectDisplayProps","setValueState","openState","setOpenState","displayRef","displayNode","setDisplayNode","isOpenControlled","menuMinWidthState","setMenuMinWidthState","handleDisplayRef","anchorElement","update","childItem","handleItemClick","itemIndex","clonedEvent","displaySingle","displayMultiple","computeDisplay","menuMinWidth","buttonId","listboxId","ArrowDropDownIcon","styledRootConfig","StyledInput","StyledOutlinedInput","StyledFilledInput","Select","classesProp","native","variantProp","restOfClasses","inputComponentRef","getDialogContentUtilityClass","getDialogTitleUtilityClass","dialogTitleClasses","dividers","DialogContentRoot","DialogContent","getDialogUtilityClass","dialogClasses","DialogContext","DialogBackdrop","scroll","fullScreen","DialogRoot","DialogContainer","DialogPaper","Dialog","defaultTransitionDuration","ariaLabelledbyProp","PaperComponent","backdropClick","handleBackdropClick","ariaLabelledby","dialogContextValue","getButtonUtilityClass","buttonClasses","ButtonGroupContext","ButtonGroupButtonContext","disableElevation","commonIconStyles","ButtonRoot","_theme$palette$getCon","_theme$palette","inheritContainedBackgroundColor","inheritContainedHoverBackgroundColor","ButtonStartIcon","ButtonEndIcon","Button","contextProps","buttonGroupButtonContextPositionClassName","resolvedProps","endIconProp","startIconProp","startIcon","endIcon","positionClassName","getDialogActionsUtilityClass","disableSpacing","DialogActionsRoot","DialogActions","getListItemButtonUtilityClass","listItemButtonClasses","ListItemButtonRoot","ListItemButton","listItemRef","getTabUtilityClass","tabClasses","textColor","icon","TabRoot","Tab","iconProp","iconPosition","indicator","selectionFollowsFocus","easeInOutSin","animate","ease","cancelled","cancel","ScrollbarSize","scrollbarHeight","setMeasurements","prevHeight","KeyboardArrowLeft","KeyboardArrowRight","getTabScrollButtonUtilityClass","tabScrollButtonClasses","orientation","TabScrollButtonRoot","TabScrollButton","_slots$StartScrollBut","_slots$EndScrollButto","StartButtonIcon","EndButtonIcon","startButtonIconProps","endButtonIconProps","getTabsUtilityClass","tabsClasses","fixed","hideScrollbar","scrollableX","scrollableY","centered","scrollButtonsHideMobile","TabsRoot","TabsScroller","FlexContainer","TabsIndicator","TabsScrollbarSize","defaultIndicatorStyle","Tabs","ariaLabelledBy","childrenProp","allowScrollButtonsMobile","indicatorColor","ScrollButtonComponent","scrollButtons","TabIndicatorProps","TabScrollButtonProps","visibleScrollbar","scrollable","scrollStart","clientSize","startScrollButtonIconProps","endScrollButtonIconProps","mounted","setMounted","indicatorStyle","setIndicatorStyle","displayStartScroll","setDisplayStartScroll","displayEndScroll","setDisplayEndScroll","updateScrollObserver","setUpdateScrollObserver","scrollerStyle","setScrollerStyle","valueToIndex","tabsRef","tabListRef","getTabsMeta","tabsNode","tabsMeta","tabMeta","tab","updateIndicatorState","startValue","startIndicator","correction","newIndicatorStyle","dStart","dSize","scrollValue","animation","moveTabsScroll","getScrollSize","containerSize","totalSize","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollbarWidth","getConditionalElements","conditionalElements","showScrollButtons","scrollSelectedIntoView","nextScrollStart","updateScrollButtonState","handleMutation","records","_resizeObserver","_resizeObserver2","_mutationObserver","_resizeObserver3","tabListChildren","firstTab","lastTab","observerOptions","handleScrollButtonStart","firstObserver","handleScrollButtonEnd","lastObserver","childIndex","childValue","previousItemKey","nextItemKey","Stack","is","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","useSyncExternalStoreShim_production","shimModule","useSyncExternalStore","useRef","useMemo","withSelector_production","getServerSnapshot","isEqual","instRef","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","withSelectorModule","defaultNoopBatch","batch","setBatch","newBatch","getBatch","ContextKey","gT","getContext","_gT$ContextKey","contextMap","realContext","ReactReduxContext","createReduxContextHook","useReduxContext","notInitialized","useSyncExternalStoreWithSelector","initializeUseSelector","refEquality","createSelectorHook","useDefaultReduxContext","equalityFnOrOptions","equalityFn","stabilityCheck","noopCheck","store","subscription","getServerState","globalStabilityCheck","globalNoopCheck","wrappedSelector","useCallback","selectedState","useSelector","pureFinalPropsSelectorFactory","mapStateToProps","mapDispatchToProps","mergeProps","dispatch","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","ownProps","stateProps","dispatchProps","handleFirstCall","firstState","firstOwnProps","handleNewPropsAndNewState","handleNewProps","handleNewState","nextStateProps","statePropsChanged","handleSubsequentCalls","nextOwnProps","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","bindActionCreators","actionCreators","boundActionCreators","actionCreator","wrapMapToPropsConstant","getConstant","constantSelector","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","methodName","proxy","stateOrDispatch","createInvalidArgFactory","mapDispatchToPropsFactory","mapStateToPropsFactory","defaultMergeProps","mergePropsFactory","createListenerCollection","listeners","isSubscribed","nullListeners","createSubscription","parentSub","unsubscribe","subscriptionsAmount","selfSubscribed","addNestedSub","trySubscribe","cleanupListener","removed","tryUnsubscribe","notifyNestedSubs","handleChangeWrapper","trySubscribeSelf","tryUnsubscribeSelf","canUseDOM","useIsomorphicLayoutEffect","shallowEqual","objA","objB","keysA","keysB","initializeConnect","NO_SUBSCRIPTION_ARRAY","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","childPropsFromStoreUpdate","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","isMounted","additionalSubscribeListener","didUnsubscribe","lastThrownError","checkForUpdates","latestStoreState","strictEqual","connect","pure","areMergedPropsEqual","Context","WrappedComponent","wrappedComponentName","selectorFactoryOptions","ConnectFunction","propsContext","reactReduxForwardedRef","ContextToUse","isContextConsumer","didStoreComeFromProps","didStoreComeFromContext","defaultSelectorFactory","overriddenContextValue","latestSubscriptionCallbackError","actualChildPropsSelector","subscribeForReact","reactListener","actualChildProps","renderedWrappedComponent","Connect","forwarded","hoistStatics","Provider","serverState","previousState","createStoreHook","useStore","createDispatchHook","useDefaultStore","useDispatch","_defineProperties","_createClass","Constructor","protoProps","staticProps","subClass","superClass","excluded","sourceKeys","self","noOp","SnackbarContext","capitalise","originKeyExtractor","anchor","isDefined","_this$props$nodeRef","React__default","refA","refB","refValue","_props$style","defaultEasing","createTransition","_ref$duration","_ref$easing","_ref$delay","formattedDuration","formattedDelay","getTranslateValue","offsetX","offsetY","transformValues","setTranslateValue","Slide","_props$direction","_props$timeout","handleRefIntermediary","createElement","CheckIcon","WarningIcon","ErrorIcon","InfoIcon","defaultIconVariants","defaults","getAutoHideDuration","optionsDuration","propsDuration","isNumberOrNull","numberish","getTransitionDuration","types","shouldObjectMerge","makeStyles","ComponentClasses","collapsedSize","Collapse","wrapperRef","getWrapperSize","wrapperSize","_getTransitionProps","_getTransitionProps2","getSlideDirection","toSnackbarAnchorOrigin","keepSnackbarClassKeys","containerClasses","noOp$1","snackbarId","argums","Snackbar","autoHideDuration","_props$disableWindowB","disableWindowBlurListener","_props$SnackbarProps","SnackbarProps","timerAutoHide","setAutoHideTimer","autoHideDurationParam","handlePause","handleResume","handleMouseEnter","_root","classes$1","SnackbarContent","classes$2","MaterialDesignContent","componentOrFunctionAction","iconVariant","hideIconVariant","MaterialDesignContent$1","SnackbarItem","setCollapsed","handleExitedScreen","snack","allClasses","_props$Component","componentOrFunctionContent","otherSnack","content","cbName","_root$1","_rootDense","_left","_right","_center","indents","collapseWrapper","xsWidthMargin","styles$1","SnackbarContainer","_props$classes","combinedClassname","SnackbarContainer$1","isOptions","messageOrOptions","isMessage","SnackbarProvider","_Component","optsOrUndefined","preventDuplicate","hasSpecifiedKey","merger","compareFunction","inQueue","inView","snacks","queue","popped","persistentCount","shouldCloseAll","toBeClosed","newState","domRoot","_this$props$dense","_this$props$Component","Components","categ","existingOfCategory","snackbars","nomineeSnack","createPortal","useSnackbar","isAbsolute","pathname","spliceOne","resolvePathname","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","hasTrailingSlash","valueOf","valueEqual","aValue","bValue","invariant","condition","addLeadingSlash","stripLeadingSlash","hasBasename","stripBasename","stripTrailingSlash","parsePath","hashIndex","searchIndex","createPath","createLocation","currentLocation","locationsAreEqual","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","notifyListeners","getConfirmation","supportsPopStateOnHashChange","supportsGoWithoutReloadUsingHash","isExtraneousPopstateEvent","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","setState","history","handlePopState","handlePop","handleHashChange","forceNextPop","revertPop","fromLocation","toLocation","toIndex","fromIndex","go","initialLocation","createHref","push","prevIndex","nextKeys","goBack","goForward","listenerCount","checkDOMListeners","listen","unlisten","HashChangeEvent$1","HashPathCoders","stripHash","getHashPath","pushHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","encodePath","decodePath","ignorePath","locationsAreEqual$$1","encodedPath","prevLocation","allPaths","hashChanged","nextPaths","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","isarray","pathToRegexpModule","pathToRegexp","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","escaped","capture","group","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","flags","encode","segment","attachKeys","regexpToRegexp","groups","arrayToRegexp","regexp","stringToRegexp","strict","route","endsWithDelimiter","MAX_SIGNED_31_BIT_INT","commonjsGlobal","getUniqueId","createEventEmitter","changedBits","onlyChild","createReactContext","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","PropTypes","Consumer","_React$Component2","_len2","_key2","observedBits","_proto2","createContext","createNamedContext","historyContext","Router","Lifecycle","cacheLimit","cacheCount","compilePath","generatePath","Redirect","computedMatch","_ref$push","staticContext","cache$1","cacheLimit$1","cacheCount$1","compilePath$1","cacheKey","pathCache","matchPath","_options$exact","exact","_options$strict","_options$sensitive","sensitive","paths","matched","_compilePath","isExact","isEmptyChildren","Route","context$1","render","addBasename","createURL","staticHandler","Switch","withRouter","wrappedComponentRef","remainingProps","useHistory","useLocation","useParams","__extends","extendStatics","__","JL","loggerName","initialValue","accumulatedLoggerName","currentLogger","copyProperty","propertyName","allow","filters","allowMessage","stringifyLogObjectFunction","logObject","StringifiedLogObject","finalString","stringifyLogObject","actualLogObject","setOptions","getAllLevel","getTraceLevel","getDebugLevel","getInfoLevel","getWarnLevel","getErrorLevel","getFatalLevel","getOffLevel","levelToString","Exception","LogItem","newLogItem","levelNbr","clearTimer","setTimer","timeoutMs","that","Appender","appenderName","sendLogItems","emptyNameErrorMessage","logItems","messageAgeMs","logItem","AjaxAppender","_super","successCallback","ajaxUrl","json","finalmsg","ConsoleAppender","logEntry","Logger","excObject","compositeMessage","createAjaxAppender","createConsoleAppender","defaultAppender","errorMsg","lineNumber","errorObj","_interopDefault","_defineProperty","withSideEffect","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","lib","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","it","reactFastCompare","hasOwnProperty","propIsEnumerable","toObject","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","symbols","ATTRIBUTE_NAMES","TAG_NAMES","TAG_PROPERTIES","REACT_TAG_MAP","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","classCallCheck","createClass","defineProperties","inherits","objectWithoutProperties","possibleConstructorReturn","call","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","attributeKey","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","warn","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","tagUnion","rafPolyfill","clock","cafPolyfill","requestAnimationFrame","cancelAnimationFrame","_helmetCallback","handleClientStateChange","commitTagChanges","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","tagNodes","indexToDelete","newElement","existingTag","generateElementAttributesAsString","generateTitleAsString","attributeString","flattenedTitle","generateTagsAsString","attributeHtml","tagContent","isSelfClosing","convertElementAttributestoReactProps","initProps","convertReactPropstoHtmlAttributes","initAttributes","generateTitleAsReactComponent","_initProps","generateTagsAsReactComponent","_mappedTag","mappedTag","mappedAttribute","getMethodsForTag","_ref$title","Helmet","_class","_temp","HelmetWrapper","nestedChildren","_babelHelpers$extends","arrayTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newFlattenedProps","arrayChildName","_babelHelpers$extends4","_child$props","mappedState","NullComponent","HelmetSideEffects","HelmetExport","bind","toString","kindOf","thing","kindOfTest","typeOfTest","isArray","isUndefined","isBuffer","isFunction","isArrayBuffer","isArrayBufferView","isNumber","isObject","isBoolean","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","forEach","allOwnKeys","findKey","_global","isContextDefined","caseless","assignValue","targetKey","extend","stripBOM","superConstructor","toFlatObject","sourceObj","destObj","filter","propFilter","endsWith","searchString","lastIndex","toArray","isTypedArray","TypedArray","forEachEntry","iterator","pair","matchAll","regExp","isHTMLForm","toCamelCase","reduceDescriptors","reducer","reducedDescriptors","ret","freezeMethods","toObjectSet","arrayOrString","define","toFiniteNumber","ALPHA","DIGIT","ALPHABET","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","isAsyncFn","utils$2","AxiosError","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","ignoreDuplicateOf","parseHeaders","rawHeaders","$internals","normalizeHeader","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","buildAccessors","accessorName","arg1","arg2","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","matcher","deleted","deleteHeader","targets","asStrings","computed","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","transformData","fns","isCancel","CanceledError","settle","validateStatus","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","relativeURL","buildFullPath","requestedURL","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","parseProtocol","speedometer","samplesCount","bytes","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","inRange","isXHRAdapterSupported","xhrAdapter","requestData","requestHeaders","withXSRFToken","onCanceled","username","password","fullPath","onloadend","responseHeaders","timeoutErrorMessage","xsrfValue","knownAdapters","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","formatMessage","desc","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","resolvePromise","_resolve","spread","isAxiosError","HttpStatusCode","createInstance","defaultConfig","axios","promises","all","Cancel","formToJSON","getAdapter","urlAlphabet","nanoid","setJwtToken","constants","getJwtToken","removeJwtToken","clear","setCompanyId","conum","getCompanyId","companyIdStr","setEmployeeNumber","empnum","setVersion","getVersion","setDownloadCount","downloadCount","getDownloadCount","incrementDownloadCount","currentValue","checkVersion","serverVersion","lastReloadTime","define_process_env_default","prevVersion","logErrorsService","setGuid","getGuid","removeGuid","setDontShowReportConfirm","getDontShowReportConfirm","setRememberBrowserGuid","guid","getRememberBrowserGuid","removeRememberBrowserGuid","getOrSetBfp","bfp","setEmployeesTableColumnModel","model","getEmployeesTableColumnModel","getLiveReportsColumns","reportId","setLiveReportsColumns","columns","getLiveReportsGridLayout","setLiveReportsGridLayout","localStorageSyncApi","setJwtGuid","jwtGuid","getJwtGuid","getEmployeeId","setEmployeeId","removeEmployeeId","getOrSetSfp","sfp","setIsNative","getIsNative","sessionStorageSyncApi","formatProdErrorMessage","$$observable","symbol_observable_default","randomString","ActionTypes","actionTypes_default","createStore","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","getState","listenerId","replaceReducer","nextReducer","observable","outerSubscribe","observeState","observerAsObserver","assertReducerShape","reducers","combineReducers","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","hasChanged","previousStateForKey","nextStateForKey","applyMiddleware","middlewares","createStore2","middlewareAPI","isAction","createSymbol","CANCEL","CHANNEL_END_TYPE","IO","MATCH","MULTICAST","SAGA_ACTION","SELF_CANCELLATION","TASK","TASK_CANCEL","TERMINATE","SAGA_LOCATION","undef","notUndef","stringableFunc","symbol","sym","konst","kTrue","identity","assignWithSymbols","flatMap","once","kThrow","kReturn","makeIterator","thro","logError","sagaStack","createEmptyArray","wrapSagaDispatch","shouldTerminate","shouldCancel","shouldComplete","createAllStyleChildCallbacks","parentCallback","totalCount","completedCount","completed","results","childCallbacks","checkEnd","chCbAtKey","isErr","getMetaInfo","getLocation","BUFFER_OVERFLOW","ON_OVERFLOW_THROW","ON_OVERFLOW_SLIDE","ON_OVERFLOW_EXPAND","ringBuffer","overflowAction","pushIndex","popIndex","take","doubledLimit","expanding","initialSize","TAKE","PUT","ALL","RACE","CALL","CPS","FORK","JOIN","SELECT","ACTION_CHANNEL","CANCELLED","FLUSH","GET_CONTEXT","SET_CONTEXT","deferred","def","semaphore","exec","suspend","asap","immediately","predicate","_predicate","wildcard","matcherCreator","string$1","array$1","symbol$1","END","isEnd","channel","buffer$1","closed","takers","put","close","taker","multicastChannel","currentTakers","nextTakers","ensureCanMutateNextTakers","stdChannel","chan","RUNNING","ABORTED","DONE","cancelPromise","nextSagaId","_effectRunnerMap","getIteratorMetaInfo","createTaskIterator","resolved","runPutEffect","runTakeEffect","_ref3$channel","maybe","takeCb","runCallEffect","_ref4","_ref5","proc","runCPSEffect","_ref6","cpsCb","runForkEffect","_ref7","_ref8","detached","taskIterator","runJoinEffect","taskOrTasks","_ref9","joinSingleTask","taskToJoin","joiner","cancelSingleTask","taskToCancel","runCancelEffect","_ref10","runAllEffect","effects","_ref11","digestEffect","effectId","runRaceEffect","_ref12","childCbs","runSelectEffect","_ref13","runChannelEffect","_ref14","runCancelledEffect","_ref15","runFlushEffect","runGetContextEffect","_ref16","runSetContextEffect","_ref17","effectRunnerMap","CANCEL$1","CANCELLED$1","forkQueue","mainTask","onAbort","cont","tasks","addTask","getTasks","abort","cancelAll","formatLocation","fileName","effectLocationAsString","effect","sagaLocationAsString","sagaMeta","cancelledTasksAsString","cancelledTasks","crashedEffect","addSagaFrame","setCrashedEffect","firstSaga","otherSagas","crashedEffectLocation","errorMessage","newTask","parentContext","parentEffectId","isRoot","_task","taskResult","taskError","deferredEnd","cancelledDueToErrorTasks","toPromise","iterator$1","finalRunEffect","runEffect","cancelMain","executingContext","currCb","effectRunner","effectSettled","runSaga","saga","_ref$channel","_ref$context","sagaMonitor","effectMiddlewares","_ref$onError","finalizeRunEffect","plainRunEffect","eff","sagaMiddlewareFactory","boundRunSaga","sagaMiddleware","companyIcon","dashboardIcon","cpaDashboard","feedbackIcon","reportsIcon","settingsIcon","helpCenterIcon","manageHrIcon","manageIcon","payrollFinancingIcon","employeesIcon","powerImportIcon","reportsIconV2","swipeClockIcon","settings","servicesIcon","addCpaIcon","payrollIcon","PAGES","jsx","getPageIdByPath","pagesValues","page","TYPES","loadingStartAC","loadingFinishAC","setHelpCenterLinkAC","helpCenterLink","setIsBannerVisible","isBannerVisible","setBannerHeight","bannerHeight","setMainDrawerOpenAC","isDrawerOpen","setCpaClient","cpaClient","setPowerImportDownload","powerImportDownload","updatProfile","profile","toggleIsIframeLoaded","isIFrameLoaded","initialState","appReducer","selectIsLoading","selectReportsSubnavbarTab","selectEmployeesSubnavbarTab","selectHelpCenterLink","selectSubMenuTabs","selectIsBannerVisible","selectBannerHeight","selectIsMainDrawerOpen","selectCpaClient","selectIsIFrameLoaded","dashboardReducer","selectTopPanelData","setSortModel","setRowsPerPageAC","rowsPerPage","setValuesV2AC","setTablePageAC","setEmployeeIds","employeeIds","setQuery","setEmployees","employees","employeesReducer","selectSortModel","selectFilterModel","selectRowsPerPage","selectValuesV2","selectPage","selectEmployeeIds","selectQuery","selectEmployees","setEmpNum","setEmployee","setStateTax","setDeductionAndPays","setTimeAndLabor","setEmployeeDeck","setDropdowEmployeePersonalInfo","setDropdownEmployeePay","setDropdownEmployeeJob","setDropdownDivisions","setDropdownDepartments","setDropdownDirectDeposit","setDropdownDeductions","updateProfile","field","updateStateTax","updateTimeAndLabor","updateScrollDirection","updateVisibleSections","employeeReducer","_a","_b","selectEmpnum","selectEmployee","selectStateTax","selectDeductionAndPays","selectTimeAndLabor","selectDropdownEmployeePersonalInfo","selectDropdownEmployeePay","selectDropdownEmployeeJob","selectDropdownDivisions","selectDropdownDepartments","selectDropDownDirectDeposit","selectDropdownDeductions","selectSections","essReducer","invite","setOnboardingStageStatusAC","stages","onboardingReducer","selectOnboardingStages","CALENDAR_PERIODS","CALENDAR_PERIODS_DICT","formatToDateString","formatToDateTimeString","date2","getFirstDayOfYear","getLastDayOfYear","getFirstDayOfQuarter","quarterStartMonth","newDate","getLastDayOfQuarter","quarterEndMonth","getHumanizeDate","dateTime","humanizeDateText","today","meridiem","updateFilterCalendarPeriods","fromDate","toDate","restFilter","fromDateNew","toDateNew","setCustomPeriodAC","period","setCalendarPeriodAC","currentCalendarPeriod","payhistoryReducer","selectPeriod","selectCalendarPeriod","showSnackbar","hideSnackbar","snackbarReducer","selectSnackbar","widgetEssReducer","openFeedbackModalAC","closeFeedbackModalAC","feedbackIsSentAC","widgetFeedbackReducer","selectIsModalOpened","selectIsFeedbackSent","openManageProfileAC","closeManageProfileAC","widgetManageProfile","selectIsManageProfileOpened","selectProfileMenuAnchorEl","openNewDownloadModalAC","closeNewDownloadModalAC","widgetNewDownloadReducer","selectReports","openSelectCompanyModal","closeSelectCompanyModal","widgetSelectCompanyReducer","openGlobalSearchAC","closeGlobalSearchAC","widgetGlobalSearch","selectIsGlobalSearchOpen","setList","setInputFormat","inputFormat","setChecksFilter","checksFilter","setDisplayOptions","setDebugMode","debug","setFocusViewList","setPayrollSummary","setPayrollImportBatches","importBatches","clearSelectedChecks","setShowPayrollDataLoading","loading","setDisableChecklineUpdates","setAssistantMode","stickyAssistant","payrollsReducer","selectList","selectInputFormat","selectChecksFilter","selectDisplayOptions","selectDebug","selectFocusViewList","selectPayrollSummary","selectPayrollImportBatches","selectSelectedChecks","selectShowPayrollDataLoading","selectDisableChecklineUpdates","selectStickyAssistant","setPayrollId","payrollId","setCalendarFrequencies","calendarFrequencies","setSelectedFrequencies","selectedFrequencies","setPeriodId","periodId","setRowSelectionModel","rowSelectionModel","setSelectedCalendars","selectedCalendars","setPayFrequency","payFrequency","setPayPeriods","payPeriods","setCheckDate","checkDate","setPayFrequencies","payFrequencies","setCalendarIds","calendarIds","setPayees","payees","setEmployeesIds","employeesIds","setTimeAndLaborPeriod","setEmployeeFilters","employeeFilters","payrollReducer","selectPayrollId","selectCalendarFrequencies","selectSelectedFrequencies","selectPeriodId","selectRowSelectionModel","selectSelectedCalendars","selectPayFrequency","selectPayPeriods","selectCheckDate","selectPayFrequencies","selectCalendarIds","selectPayees","selectEmployeesIds","selectOptions","selectTimeAndLaborPeriod","selectPayroll","skip","calendars","parsedCheckDate","importFromTimeAndLabor","importFromEmployeeFilter","allActiveEmployees","employeeFilterId","frequencyId","_c","_e","_d","_g","_f","_h","_k","_j","_l","employeeFilter","_m","_n","composeEnhancers","configureStore","initState","createSagaMiddleware","sleep","ms","authService","errorDataObject","apiService","urlHelpers","reCAPTCHAToken","actionName","useApiFilename","apiFilename","clickToDownloadFile","rej","fileUrl","InvalidTokenError","b64DecodeUnicode","base64UrlDecode","jwtDecode","decoded","UserAuthorizationResultsSchemaRedirectTo","decodedToken","expirationTime","serverTime","expired","claimName","currentTimeMs","expirationTimeMs","userId","isUserAuthenticated","redirectTo","cpaFirmId","essProfileId","essOnboardingProfileId","currentHistory","impersonatingUser","impersonatingCompany","IS_PRODUCTION","consoleError","AUTH_ERROR_MSG","errorDescription","checkIsAuthError","handleError","logErrorsApi","ErrorBoundaryComponentPropTypes","ErrorFallback","resetError","isPage","noFallback","handleClickDashboard","handleClickLogout","jsxs","Fragment","StyledErrorFallback","myErrorHandler","ErrorBoundaryComponent","Sentry.ErrorBoundary","getToken","createStoreImpl","createState","api","createImpl","useBoundStore","getErrorMessage","showLoadingTimeout","useAppState","app","ZENDESK_KEY","setting","WidgetZendesk","setLoaded","currentCompanyId","companyName","conumRef","coNameRef","loadedRef","setChatCoInfo","handleScriptLoaded","WrappedWidgetZendesk","InternalServerErrorPage","SentryUserManager","WrappedSentryUserManager","_utils","ExpandMore","_createSvgIcon","_jsxRuntime","CheckedIcon","UncheckedIcon","RadioButtonIcon","RadioButtonCheckedIcon","CheckMarkIcon","basePaletteTheme","ExpandMoreIcon","ArrowForwardIosIcon","singleMatcher","multiMatcher","decodeComponents","decode","customDecodeURIComponent","replaceMap","decodeUriComponent","encodedURI","splitOnFirst","separatorIndex","includeKeys","isNullOrUndefined","strictUriEncode","encodeFragmentIdentifier","encoderForArrayFormat","keyValueSep","parserForArrayFormat","accumulator","isEncodedArray","arrayValue","validateArrayFormatSeparator","decodeComponent","keysSorter","removeHash","hashStart","getHash","parseValue","extract","queryStart","formatter","parameter","parameter_","key2","value2","shouldFilter","objectCopy","url_","stringifyUrl","queryFromUrl","queryString","urlObjectForFragmentEncode","pick","fragmentIdentifier","exclude","exclusionFilter","HttpError","trueProto","TimeoutError","AbortError","UnsupportedTransportError","DisabledTransportError","FailedToStartTransportError","FailedToNegotiateWithServerError","AggregateErrors","innerErrors","HttpResponse","statusText","HttpClient","LogLevel","NullLogger","_logLevel","_message","Arg","Platform","getDataDetail","includeContent","detail","formatArrayBuffer","view","num","pad","sendMessage","transportName","httpClient","getUserAgentHeader","createLogger","ConsoleLogger","SubjectSubscription","subject","minimumLogLevel","userAgentHeaderName","constructUserAgent","getOsName","getRuntime","getRuntimeVersion","os","runtime","runtimeVersion","majorAndMinor","getErrorString","getGlobalThis","configureFetch","configureAbortController","getWS","getEventSource","FetchHttpClient","fetchObj","abortObj","abortController","msTimeout","deserializeContent","XhrHttpClient","DefaultHttpClient","TextMessageFormat","messages","HandshakeProtocol","handshakeRequest","messageData","remainingData","binaryData","responseLength","textData","MessageType","Subject","MessageBuffer","bufferSize","serializedMessage","backpressurePromise","backpressurePromiseResolver","backpressurePromiseRejector","BufferedItem","ackMessage","newestAckedMessage","currentId","sequenceId","resolver","rejector","DEFAULT_TIMEOUT_IN_MS","DEFAULT_PING_INTERVAL_IN_MS","DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE","HubConnectionState","HubConnection","reconnectPolicy","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","statefulReconnectBufferSize","handshakePromise","startPromise","streams","streamIds","invocationDescriptor","promiseQueue","cancelInvocation","invocationEvent","sendPromise","newMethod","removeIdx","responseMessage","nextPing","invocationMessage","methods","methodsCopy","expectsResponse","completionMessage","prevRes","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","previousRetryCount","elapsedMilliseconds","retryReason","nonblocking","invocationId","streamId","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","retryContext","HeaderNames","AccessTokenHttpClient","innerClient","accessTokenFactory","allowRetry","HttpTransportType","TransferFormat","AbortController$1","LongPollingTransport","AbortController","transferFormat","pollOptions","pollUrl","deleteOptions","logMessage","ServerSentEventsTransport","accessToken","opened","eventSource","WebSocketTransport","logMessageContent","webSocketConstructor","webSocket","_event","MAX_REDIRECTS","HttpConnection","webSocketModule","eventSourceModule","TransportSendQueue","negotiateResponse","redirects","negotiateUrl","connectionToken","requestedTransport","requestedTransferFormat","connectUrl","transportExceptions","transports","negotiate","transportOrError","callStop","useStatefulReconnect","transportMatches","aTag","searchParams","actualTransport","_transport","PromiseSource","transportResult","arrayBuffers","JSON_HUB_PROTOCOL_NAME","JsonHubProtocol","hubMessages","parsedMessage","LogLevelNameMapping","parseLogLevel","mapping","HubConnectionBuilder","logging","isLogger","transportTypeOrOptions","retryDelaysOrReconnectPolicy","httpConnectionOptions","signalRAutoStartAndCleanUp","shouldAutoStart","SignalRContext","SignalRProvider","selectedCpaClientId","signalRConnection","setSignalRConnection","companyId","employeeCompanyNumber","employeeNumber","conumOrCpa","qsData","qs","querystring","WrappedSignalRProvider","createUseThemeProps","useSlot","initialElementType","getSlotOwnerState","internalForwardedProps","useSlotPropsParams","rootComponent","_mergeSlotProps","slotComponent","slotOwnerState","finalOwnerState","LeafComponent","getAlertUtilityClass","alertClasses","SuccessOutlinedIcon","ReportProblemOutlinedIcon","ErrorOutlineIcon","InfoOutlinedIcon","ClearIcon","severity","AlertRoot","getColor","getBackgroundColor","AlertIcon","AlertMessage","AlertAction","defaultIconMapping","Alert","closeText","iconMapping","CloseButtonSlot","closeButtonProps","CloseIconSlot","closeIconProps","CloseIcon","getAlertTitleUtilityClass","AlertTitleRoot","AlertTitle","getAppBarUtilityClass","joinVars","var1","var2","AppBarRoot","backgroundColorDefault","AppBar","enableColorOnDark","getAutocompleteUtilityClass","autocompleteClasses","Person","getAvatarUtilityClass","colorDefault","AvatarRoot","AvatarImg","AvatarFallback","useLoaded","crossOrigin","referrerPolicy","src","srcSet","Avatar","alt","imgProps","sizes","hasImg","hasImgNotFailing","ImgSlot","imgSlotProps","getSwitchBaseUtilityClass","SwitchBaseRoot","SwitchBaseInput","SwitchBase","checkedProp","checkedIcon","defaultChecked","disabledProp","setCheckedState","handleInputChange","newChecked","hasLabelFor","getCircularProgressUtilityClass","SIZE","circularRotateKeyframe","circularDashKeyframe","disableShrink","CircularProgressRoot","CircularProgressSVG","CircularProgressCircle","CircularProgress","thickness","circleStyle","rootStyle","circumference","DialogTitleRoot","DialogTitle","idProp","titleId","containerRect","resolveContainer","containerPropProp","easingProp","childrenRef","getDrawerUtilityClass","DrawerRoot","DrawerDockedRoot","DrawerPaper","oppositeDirection","isHorizontal","getAnchor","Drawer","anchorProp","BackdropPropsProp","SlideProps","ModalProps","anchorInvariant","drawer","slidingDrawer","getFormControlLabelUtilityClasses","formControlLabelClasses","labelPlacement","FormControlLabelRoot","FormControlLabel","_slotProps$typography","control","labelProp","requiredProp","controlProps","typographySlotProps","GridContext","getGridUtilityClass","SPACINGS","DIRECTIONS","WRAPS","GRID_SIZES","gridClasses","getOffset","generateGrid","columnsBreakpointValues","columnValue","generateDirection","extractZeroValueBreakpointKeys","nonZeroKey","sortedBreakpointKeysByValue","generateRowGap","rowSpacing","rowSpacingValues","zeroValueBreakpointKeys","_zeroValueBreakpointK","generateColumnGap","columnSpacing","columnSpacingValues","_zeroValueBreakpointK2","resolveSpacingStyles","spacingStyles","GridRoot","zeroMinWidth","breakpointsStyles","resolveSpacingClasses","spacingClasses","breakpointsClasses","Grid","columnsProp","columnSpacingProp","rowSpacingProp","columnsContext","otherFiltered","getSwitchUtilityClass","switchClasses","SwitchRoot","SwitchSwitchBase","SwitchTrack","SwitchThumb","getToolbarUtilityClass","ToolbarRoot","Toolbar","Close","SnackbarNotificationsClose","Type","createAction","closeSnackbar","getErrorSnackbarOptions","getSuccessSnackbarOptions","AppUiContext","customContent","AppUiProvider","enqueueSnackbar","showConfirmationModal","setShowConfirmationModal","setData","handleShowLoading","handleHideLoading","handleShowErrorSnackbar","handleShowErrorStringSnackbar","handleShow","keyDownHandler","handleOk","confirm","yesBtn","noBtn","showCustomConfirm","showCustomDialog","handleCancel","WrappedAppUiProvider","useAppUiContext","ProtectedRoute","userOnlyAuthenticated","permission","initiated","permissions","locationName","routeProps","setRouteProps","profileRef","defaultPath","validatePathPermission","_profile","pushLog","AccountCircle","Dashboard","GridOn","drawerWidth","SuperAdminLayout","drawerOpen","setDrawerOpen","setAnchorEl","handleMenu","listItemButtonClick","isSelected","MenuIcon","DashboardIcon","GridOnIcon","typeOfObject","isExponential","isNumeric","isEmptyObject","ctor","isWindow","isRenderer","isPromise","isDeferred","extendFromObject","overrideExistingValues","deep","targetValue","sourceValue","sourceValueIsArray","clone","each","reverseEach","getConsoleMethod","encodeHtml","encodeRegExp","splitQuad","raw","quadToObject","quad","template","placeholderReg","SPACE_REGEXP","ERROR_URL","errorUtils","baseErrors","makeError","combineMessage","formatDetails","details","getErrorUrl","errors$2","wrapOverridden","baseProto","prevCallBase","clonePrototype","redefine","members","overridden","memberName","member","include","classObj","hasClassObjOwnProperty","isES6Class","subclassOf","parentClass","hasParentProperty","baseClass","abstract","copyStatic","hasOwn","destination","classImpl","inheritor","includedCtors","includedPostCtors","injector","BaseClass","Class","InjectedClass","initialFields","injectFields","injectionObject","initial","optionsString","normalizeToJSONString","deprecatedFields","configMethod","deprecatedField","Guid","Callback","firingIndexes","stopOnFalse","memory","Callbacks","deferredConfig","_DeferredObj","callbackResult","fromPromise","whenFunc","resolvedCount","updateState","setStrategy","Deferred","when","variableWrapper","dependencyInjector","Clone","orderEach","isNumberX","isNumberY","assignValueToProperty","assignByReference","deepExtendArraySafe","changes","extendComplexObject","goDeeper","unwrapVariable","isWrapped","bracketsToDots","expr","getPathParts","readPropValue","unwrap","assignPropValue","prepareOptions","compileGetter","functionAsIs","hasDefaultValue","pathPart","combineGetters","getters","compiledGetters","pathItem","ensurePropValueDefined","compileSetter","lastLevelIndex","levelIndex","propertyValue","isPropertyFunc","toComparable","caseSensitive","_options$collatorOpti","_options$locale","REMOVE_DIACRITICAL_MARKS_REGEXP","useUpperCase","ensureDefined","executeAsync","normalizedContext","delayedFuncs","delayedNames","delayedDeferreds","executingName","deferExecute","oldExecutingName","currentDelayedCount","deferRender","deferUpdate","deferRenderer","deferUpdater","findBestMatches","targetFilter","bestMatches","maxMatchCount","itemSrc","matchCount","paramName","mismatch","valueItem","splitPair","_raw$x","_raw$y","pairToObject","preventRound","getKeyHash","keyHash","escapeRegExp","applyServerDecimalSeparator","asyncNoop","grep","elements","checkFunction","invert","check","expectedCheck","compareArrays","array1","array2","compareByValue","compareObjects","object1","object2","keys1","keys2","keys2Set","DEFAULT_EQUAL_BY_VALUE_OPTS","value1","maxDepth","comparable1","comparable2","comparisonResult","equalByValue","compareOptions","DX_RULE_PREFIX","ownerDocumentStyleSheet","createConstructedStyleSheet","rootNode","styleElement","processRules","targetStyleSheet","styleSheets","needApplyAllStyles","_rule$selectorText","_rule$cssRules","_rule$cssRules$","_rule$cssRules$$selec","_rule$name","_rule$style","isDxRule","addShadowDomStyles","$element","_el$getRootNode","currentShadowDomStyleSheet","isPositionInElementRectangle","createQueue","shiftIndex","getShadowElementsFromPoint","elementQueue","ELEMENT_NODE","TEXT_NODE","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","nativeDOMAdapterStrategy","parentElement","nextSiblingElement","isAdd","activeElementHolder","_element$getRootNode","_element$getRootNode2","domAdapter","MemorizedCallbacks","callbacks$2","hasWindowValue","hasWindow","windowObject","getWindow","hasProperty","defaultScreenFactorFunc","getCurrentScreenFactor","screenFactorCallback","screenFactorFunc","windowWidth","getNavigator","touchPropsToHook","touchPropHook","touches","hookTouchProps","callOnce","_wrappedHandler","window","EMPTY_EVENT_NAME","NATIVE_EVENTS_TO_SUBSCRIBE","NATIVE_EVENTS_TO_TRIGGER","NO_BUBBLE_EVENTS","forcePassiveFalseEventNames","EVENT_PROPERTIES","matchesSafe","elementDataMap","skipEvent","special","specialData","registerEventCallbacks","eventObject","eventsEngine","normalizeOnArguments","iterate","handlersController","getHandlersController","oneTimeHandler","normalizeOffArguments","normalizeTriggerArguments","extraParameters","noBubble","parents","getParents","_element$parentNode","parentDataByEvent","callNativeMethod","applyForEach","itemArgs","itemElement","detectPassiveEventHandlersSupport","isSupported","passiveEventHandlersSupported","contains","elementData","eventNameParts","eventNameIsDefined","eventData","callHandler","handlerArgs","relatedTarget","secondaryTargetIsInside","handleObject","currentTarget","firstHandlerForTheType","shouldAddNativeListener","nativeListenerOptions","getNativeHandler","removeByEventName","removedHandler","isSubset","lastHandlerForTheType","shouldRemoveNativeListener","elementDataIsEmpty","forceStop","handleCallback","subscribeName","normalizeEventArguments","iterateEventNames","nativeMethodName","calculateWhich","initEvent","EventClass","_src$view","srcIsEvent","addProperty","eventInstance","beforeSetStrategy","afterSetStrategy","engine","offArgs","dataMap","strategy","strategyChanging","beforeCleanDataFunc","setDataStrategy","cleanData","beforeCleanData","removeData","cleanDataRecursive","cleanSelf","childElements","_normalize","_upperCaseFirst","_chop","dasherize","camelize","upperFirst","humanize","titleize","DIGIT_CHARS","captionize","captionList","isPrevCharNewWord","isNewWord","jsPrefixes","cssPrefixes","getStyles","forEachPrefixes","callBack","cssPrefixesCount","jsPrefix","prefixedProp","lowerPrefixedProp","styleProp","originalName","stylePropPrefix","specific","pxExceptions","normalizeStyleProp","setDimensionProperty","setWidth","setHeight","setStyle","styleString","resetStyle","styleList","stylePart","SPECIAL_HEIGHT_VALUES","getSizeByStyles","elementStyles","getElementBoxParams","beforeName","afterName","getElementComputedStyle","_element$ownerDocumen","getCSSProperty","_element$style","boxIndices","dimensionComponents","getComponentThickness","dimension","get","suffix","getSize","box","offsetFieldName","currentBox","targetBox","targetBoxIndex","currentBoxIndex","coeff","scrollThickness","boxPart","paddingAndBorder","getContainerHeight","parseHeight","getHeightWithOffset","operationString","addOffsetToMaxHeight","addOffsetToMinHeight","getVerticalOffsets","withMargins","boxParams","getVisibleHeight","boundingClientRect","implementationsMap","elementSizeHelper","_len3","_key3","_len4","_key4","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","_len11","_key11","_len12","_key12","sizeProperty","elementSize","getWidth","getHeight","getOuterWidth","includeMargin","setOuterWidth","getOuterHeight","setOuterHeight","getInnerWidth","getInnerHeight","partialName","isOuter","isInner","isGetter","documentElement","sizeAdjustment","isBorderBox","getWindowByElement","docElem","isTagName","tagWrappers","parseHTML","firstRootTag","tagWrapper","isTablePart","renderer","initRender","repeatMethod","setAttributeValue","attrName","_className","appendElements","nextSibling","wrapTR","setCss","contents","elementId","queryId","querySelector","isVisible","_element$host","parentChildNodes","emptyArray","offsetParent","marginTop","marginLeft","parentOffset","directionStrategy","rendererWrapper","rendererBase","parentLocales","PARENT_LOCALE_SEPARATOR","getParentLocale","parentLocale","DEFAULT_LOCALE","localizationCoreUtils","currentLocale","isRootLocale","defaultMessages","baseDictionary","getDataByLocale","localeData","_Object$entries$find","newMessages","messageLocalization","localizablePrefix","localizationKey","defaultResult","onlyNew","coreLocalization","stringFormat","addNamespace","eventNames","namespace","focusableFn","visible","nodeName","isTabIndexNotNaN","isDisabled","isDefaultFocus","isHyperlink","isFocusable","isContentEditable","focusable","KEY_MAP","LEGACY_KEY_CODES","EVENT_SOURCES_REGEX","fixMethod","copyEvent","originalEvent","isDxEvent","isNativeMouseEvent","isNativeTouchEvent","isPointerEvent","isMouseEvent","isDxMouseWheelEvent","isTouchEvent","pageX","pageY","timeStamp","eventDelta","hasTouches","pointers","needSkipEvent","$target","touchInEditable","isTextArea","isInputFocused","createEvent","fireEvent","delegateTarget","normalizeKeyName","which","normalizedKeyFromWhich","getChar","mappedAddNamespace","isCommandKeyPressed","FOCUS_STATE_CLASS","FOCUS_DISABLED_CLASS","FOCUSED_ROW_SELECTOR","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","viewName","$mainElement","executeKeyDown","isHandled","fireKeyDownEvent","keyName","saveFocusedElementInfo","selectView","$activeElements","getActiveAccessibleElements","targetIndex","viewElement","$viewElement","findFocusedViewElement","viewSelectors","$focusViewElement","executeAction","onDocumentVisibilityChange","subscribeVisibilityChange","unsubscribeVisibilityChange","hiddenFocus","preventScroll","registerKeyboardAction","getMainElement","mouseDownHandler","focusinHandler","needShowOverlay","restoreFocus","viewInstance","$targetElement","viewNames","viewItemIndex","_viewName","setTabIndex","keyboardController","accessibility.registerKeyboardAction","getPublicElementNonJquery","getPublicElement","webkitRegExp","mozillaRegExp","browserFromUA","browserName","browserVersion","browser","getDefaultAlignment","isRtlEnabled","rtlEnabled","getBoundingRect","subscribeReady","removeListener","readyCallbacks","windowExists","readyCallback","resizeCallbacks","prevSize","originalCallbacksAdd","originalCallbacksRemove","formatSize","changedDimension","setPrevSize","EventsStrategy","owner","eventArgs","addFn","getSessionStorage","sessionStorage","ready","changeCallback","$originalViewPort","$current","isNewViewportFound","prevViewPort","originalViewPort","KNOWN_UA_TABLE","DEFAULT_DEVICE","UA_PARSERS","isPhone","isTablet","isDesktop","isMac","isIpadOs","isAppleDevice","isIPhone4","grade","isAndroid","isWinPhone","worseThan4_4","UA_PARSERS_ARRAY","Devices","deviceOrName","forceDevice","device","realDevice","Config","deviceName","SessionStorage","shortcuts","$window","devices","viewPortElement","viewPort","prevViewport","maxTouchPoints","transitionEndEventNames","supportProp","isNativeScrollingSupported","isNativeScrollDevice","inputType","detectTouchEvents","hasWindowProperty","detectPointerEvent","touchEvents","pointerEvents","touchPointersPresent","touch","transition","transitionEndEventName","nativeScrolling","getRootNodeHost","resetActiveElement","activeElement","_activeElement$blur","clearSelection","closestCommonParent","startTarget","endTarget","$startTarget","$endTarget","$startParents","$endParents","startingParent","normalizeTemplateElement","clipboardText","clipboard","createTextElementHiddenCopy","insertBefore","replaceWith","isElementInDom","FRAME_ANIMATION_STEP_TIME","requestID","setAnimationFrameMethods","nativeRequest","nativeCancel","registerEvent","removeEvent","eventPropName","nodesByEvent","subscribeNodesDisposing","unsubscribeNodesDisposing","POINTER_EVENTS_NAMESPACE","BaseStrategy","originalEvents","_originalEvent$target","_originalEvent$path","_originalEvent$compos","handleObj","eventMap","normalizeTouchEvent","skipTouchWithSameIdentifier","pointerEvent","TouchStrategy","addEventsListener","Observer","pointerEquals","onPointerAdding","getPointerIndex","pointer","removePointer","normalizeMouseEvent","activateStrategy","MouseStrategy","MouseAndTouchStrategy","isMouse","normalizer","getStrategy","support","tablet","phone","pointerEventStrategy","getStrategyFromGlobalConfig","EventStrategy","eventStrategyName","GlobalConfig","Emitter","EVENT_NAME","EVENT_NAMESPACE","NATIVE_EVENT_NAME","PIXEL_MODE","DELTA_MUTLIPLIER","wheel","deltaMode","deltaY","deltaX","deltaZ","MANAGER_EVENT","EMITTER_DATA","EventManager","wheelEventName","activeEmitters","emitter","currentSet","previousSet","setChanged","handleEmitter","emitters","acceptedEmitter","canceledEmitter","emitterIndex","allowInterruption","closestGestureEmitter","verticalGestureDirection","eventManager","EMITTER_SUBSCRIPTION_DATA","registerEmitter","emitterConfig","emitterClass","emitterName","emitterEvents","subscriptions","disposeEmitter","CLICK_EVENT_NAME","prevented","lastFiredEvent","onNodeRemove","clickHandler","eventAlreadyFired","leftButton","ClickEmitter","desktopDevice","blurPrevented","DBLCLICK_EVENT_NAME","DBLCLICK_NAMESPACE","NAMESPACED_CLICK_EVENT","clickEventName","DBLCLICK_TIMEOUT","DblClick","timeBetweenClicks","isSimulated","isDouble","dblClick","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","ColumnStateMixin","Base","columnAlignment","isGroupPanelItem","$indicatorsContainer","$span","columnsController","indicatorAlignment","alignment","ignoreIndicatorAlignment","$cell","$indicatorContainer","$container","$indicator","indicatorName","$cells","rowOptions","errors$1","__rest","CLASSES","getFirstVisibleViewElement","columnHeadersView","rowsView","getLastVisibleViewElement","filterPanelView","footerView","getViewElementWithClass","viewsWithBorder","borderedView","shouldUpdateBorders","otherViews","updateViewsBorders","$oldFirst","$oldLast","$newFirst","$newLast","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","optionCache","containerName","$gridElement","Controller","ViewController","View","requireResize","requireReady","marginBottom","offsetHeight","$parent","MODULES_ORDER_MAX_INDEX","getExtendedTypes","moduleExtenders","extendTypes","extender","currentType","classType","registerPublicMethods","componentInstance","moduleItem","publicMethods","processModules","componentClass","modules","modulesOrder","createModuleItems","moduleTypes","moduleItems","moduleType","module1","module2","orderIndex1","orderIndex2","rootControllerTypes","rootViewTypes","moduleName","controllers","views","extenders","controllerTypes","viewTypes","callModuleItemsMethod","core","moduleNames","XHR_ERROR_UNLOAD","normalizeBinaryCriterion","crit","normalizeSortingInfo","errorMessageFromXhr","textStatusMessages","unloading","textStatus","aggregators","sum","processRequestResultLock","lockCount","lockDeferred","isDisjunctiveOperator","isConjunctiveOperator","keysEqual","keyExpr","key1","BASE64_CHARS","base64_encode","stringToByteArray","getBase64Char","octet1","octet2","octet3","isUnaryOperation","isGroupOperator","isUniformEqualsByOr","isGroupCriterion","second","trivialPromise","rejectedPromise","throttleChanges","throttled","coreErrors","_errorHandler","hasKey","keyOrKeys","findItems","keyInfo","groupCount","childItems","indexByKey","getItems","generateDataByKeyMap","dataByKeyMap","arrayLength","getCacheValue","getHasKeyCacheValue","setDataByKeyMapValue","cloneInstanceWithChangedPaths","clonedInstances","instanceWithoutPrototype","change","createObjectWithChanges","applyBatch","useInsertIndex","immutable","disableCache","skipCopying","resultItems","insert","getErrorResult","isBatch","errorCode","newTarget","keyValue","Iterator","ArrayIterator","WrappedIterator","iter","MapIterator","defaultCompare","xValue","yValue","SortIterator","compare","wrappedItem","langParams","xIndex","yIndex","rulesCount","compareResult","compileCriteria","_toComparable","compileGroup","filterValues","filterValue","useStrictComparison","isConjunctiveNextOperator","isConjunctiveOperatorChecker","_langParams","compileEquals","negate","operatorFn","getterValue","searchValue","FilterIterator","GroupIterator","SelectIterator","SliceIterator","arrayQueryImpl","queryOptions","handleDataError","aggregateCore","aggregator","seed","finalize","standardAggregate","select","chainQuery","selectProp","multiLevelGroup","groupInfo","arrayQuery","arrangeSortingInfo","sortInfo","filteredGroup","collision","sort","queryByOptions","isCountQuery","_query$setLangParams","_query","storeHelper","storeImpl","Store","optionName","extraOptions","callbackValues","callbackKey","beforePushArgs","alias","TOTAL_COUNT","LOAD","BY_KEY","INSERT","UPDATE","REMOVE","ensureRequiredFuncOption","throwInvalidUserFuncResult","createUserFuncFailureHandler","pendingDeferred","promiseArguments","errorMessageFromXhrUtility","invokeUserLoad","userFunc","userResult","invokeUserTotalCountFunc","invokeUserByKeyFunc","runRawLoad","userFuncOptions","continuation","loadPromise","rawData","_store$_errorHandler","userFuncFailureHandler","runRawLoadWithQuery","countOnly","rawDataQuery","itemsQuery","totalCountQuery","waitList","asyncResult","runRawLoadWithKey","CustomStore","serverResponse","discardPendingTasks","_tasks","_busy","removeTaskCallback","nativeXMLHttpRequest","httpRequest","SUCCESS","ERROR","TIMEOUT","NO_CONTENT","PARSER_ERROR","isStatusSuccess","hasContent","paramsConvert","createScript","removeScript","scriptNode","appendToHead","evalScript","evalCrossDomainScript","loadHandler","getAcceptHeader","dataType","scriptAccept","accepts","getContentTypeHeader","defaultContentType","getMethod","getDataFromResponse","postProcess","isCrossDomain","crossDomain","originAnchor","urlAnchor","setHttpTimeout","getJsonpOptions","random","callbackName","callbackParameter","getRequestOptions","paramsAlreadyString","sendRequest","async","needScriptEvaluation","ajax","queryAdapters","remoteQueryImpl","createTask","executorTask","_adapterFactory","_adapter","_taskQueue","_currentTask","_mergedSortArgs","rejectWithNotify","mergeSortTask","optimize","unmergedTasks","clientChain","queryImpl","ArrayStore","initialArray","Query","CANCELED_TOKEN","isPending","normalizeStoreLoadOptionAccessorArguments","originalArguments","mapGroup","restItem","mapRecursive","mapDataRespectingGrouping","normalizeLoadResult","_data","createCustomStoreFromLoadFunc","storeConfig","createStoreFromConfig","createCustomStoreFromUrl","normalizationOptions","ajaxUtils","normalizeDataSourceOptions","OperationManager","operationId","DataSource","_options$reshapeOnPus","needThrottling","throttlingTimeout","pushDeferred","lastPushWaiters","throttlingPushHandler","storePushPending","_this$_delayedLoadTas","customNames","newIndex","newFilter","argc","_this$_store","increment","oldLoading","newLoading","isEmptyArray","loadTask","loadOperation","changingArgs","groupLevel","dataSourceChanges","storeLoadOptions","searchFilter","loadOptions","handleSuccess","loadResult","resolvePendingDeferred","sign","fitIntoRange","minValue","maxValue","isMinValueUndefined","isMaxValueUndefined","getExponent","getExponentialNotation","mantissa","exponent","multiplyInExponentialForm","exponentShift","exponentialNotation","_isEdgeBug","adjust","precision","getPrecision","separatedValue","absValue","separatedAdjustedValue","isExponentValue","integerPart","positionOfDelimiter","getRoot","solveCubicEquation","D2","roots","D3","trunc","timeIntervals","toMilliseconds","DAYS_IN_WEEK","THURSDAY_WEEK_NUMBER","SUNDAY_WEEK_NUMBER","USUAL_WEEK_COUNT_IN_YEAR","dateUnitIntervals","getDatesInterval","intervalUnit","millisecondCount","getNextDateUnit","withWeeks","getDateUnitInterval","convertMillisecondsToDateUnits","dateUnitCount","dateUnitInterval","convertDateUnitToMilliseconds","dateToMilliseconds","tickInterval","dateUnit","maxInterval","tickIntervalToFormatMap","getDateFormatByTickInterval","getQuarter","getFirstQuarterMonth","correctDateWithUnitBeginning","dateInterval","withCorrection","firstDayOfWeek","oldDate","firstQuarterMonth","getFirstWeekDate","fixTimezoneGap","trimTime","setToDayEnd","getDatesDifferences","date1","differences","getTimezonesDifference","addDateInterval","intervalObject","getDateIntervalByString","addInterval","isNegative","getSequenceByInterval","intervals","cur","getViewFirstCellDate","viewType","createDateWithFullYear","getFirstYearInDecade","getFirstDecadeInCentury","getViewLastCellDate","getLastMonthDay","getViewMinBoundaryDate","resultDate","getViewMaxBoundaryDate","getViewUp","typeView","getViewDown","getDifferenceInMonth","difference","getDifferenceInMonthForCells","intervalString","sameDate","sameMonthAndYear","sameYear","sameHoursAndMinutes","sameDecade","startDecadeDate1","startDecadeDate2","sameCentury","startCenturyDate1","startCenturyDate2","getShortDateFormat","getFirstMonthDate","getLastMonthDate","getUTCTime","getDayNumber","getFirstDateInYear","getLastDateInYear","getDayWeekNumber","day","getWeekNumber","firstWeekDayInYear","lastWeekDayInYear","daysInFirstWeek","lastDateInPreviousYear","isSunday","isThursday","_lastDateInPreviousYear","normalizeDateByWeek","currentDate","differenceInDays","dateUtils","dateInRange","normalizeDate","intervalsOverlap","firstMin","firstMax","secondMin","secondMax","dateTimeFromDecimal","number","roundDateByStartDayHour","startDayHour","normalizedDate","trial","roundToHour","makeDate","getDatesOfInterval","getMachineTimezoneName","hasIntl","DECIMAL_BASE","roundByAbs","valueSign","adjustValue","precisionMultiplier","intermediateValue","toFixed","valuePrecision","adjustedValue","DEFAULT_CONFIG","ESCAPING_CHAR","MAXIMUM_NUMBER_LENGTH","PERCENT_EXPONENT_SHIFT","getGroupSizes","singleQuotesLeft","isDigit","isInStub","getSignParts","signParts","reverseString","isPercentFormat","removeStubs","getNonRequiredDigitCount","floatFormat","getRequiredDigitCount","normalizeValueString","valuePart","minDigitCount","maxDigitCount","applyGroups","valueString","groupSizes","thousandsSeparator","groupSize","formatNumberPart","formatPart","escapeIndex","isEscape","getFloatPointIndex","getFormatter","signFormatParts","isPositiveZero","isPositive","numberFormat","floatPointIndex","floatFormatParts","minFloatPrecision","maxFloatPrecision","minIntegerPrecision","maxIntegerPrecision","integerLength","floatPrecision","valueParts","valueIntegerPart","valueFloatPart","integerString","floatString","isPercent","prepareValueText","valueText","isIntegerPart","nextValueText","nextText","hasGroups","getFormatByValueText","valueTextParts","valueTextWithModifiedFloat","valueWithModifiedFloat","decimalSeparatorIndex","getFormat","positiveFormat","negativeFormat","currencyLocalization","formatConfig","currencyPart","openXmlCurrencyFormat","currencySymbol","accountingFormat","encodedCurrencySymbol","encodeSymbols","accountingFormats","CURRENCY_STYLES","MAX_FRACTION_DIGITS","detectCurrencySymbolRegex","formattersCache","getCurrencyFormatter","currency","intlNumberLocalization","fractionDigits","_formatConfig$useCurr","useAccountingStyle","dxConfig","_format","currencyValueString","symbolInfo","targetCurrency","closestAccountingFormat","MAX_LARGE_NUMBER_POWER","NUMERIC_FORMATS","LargeNumberFormatPostfixes","LargeNumberFormatPowers","numberLocalization","formatType","formatObject","formatList","minPower","maxPower","power","powerPostfix","powString","multiplier","toStandard","digits","fromFirstDigit","toFirstDigit","fromLastDigit","separators","digitalRegExp","negativeEtalon","numberConfig","formatterConfig","decimalSeparator","cleanedText","integer","fractional","calcDigitsAfterLeadingZeros","leftPad","FORMAT_TYPES","LDML_FORMATTERS","useUtc","dateParts","quarter","timezoneOffset","signPart","timezoneOffsetAbs","hoursPart","minutesPart","charIndex","charCount","isEscaping","isCurrentCharEqualsNext","ARABIC_COMMA","FORMAT_SEPARATORS","AM_PM_PATTERN","checkDigit","zeroCode","checkPatternContinue","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","getDifference","processedIndexes","patternsFilter","replaceCharsCore","patternPositions","baseCharIndex","patternIndex","replaceChars","letterCount","formatValue","ESCAPE_CHARS_REGEXP","escapeChars","escapeIndexes","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","replacedPatterns","datePatterns","test","monthRegExpGenerator","PATTERN_REGEXPS","countSuffix","timeSeparator","parseNumber","caseInsensitiveIndexOf","monthPatternParser","monthNames","PATTERN_PARSERS","dayNames","periodNames","ORDERED_PATTERNS","PATTERN_SETTERS","datePartValues","hourPartValue","getSameCharCount","createPattern","getRegExpInfo","regexpText","stubText","addPreviousStub","isEscapeChar","regexpPart","isPossibleForParsingFormat","digitFieldSymbols","isDigitPattern","possibleForParsing","ambiguousDigitPatternsCount","getPatternSetters","setPatternPart","patternChar","partSetter","partParser","setPatternPartFromNow","setterName","getterName","getShortPatterns","fullPatterns","getMaxOrderedPatternIndex","getOrderedFormatPatterns","formatPatterns","otherPatterns","getParser","regExpInfo","regExpResult","maxPatternIndex","orderedFormatPatterns","regExpPattern","regExpText","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","caption","defaultDateNames","firstDayOfWeekData","SYMBOLS_TO_REMOVE_REGEX","NARROW_NO_BREAK_SPACE_REGEX","getIntlFormatter","recognizableAsTwentyCentury","temporaryYearValue","utcDate","utcFormat","formatDateTime","formatNumber","getAlternativeNumeralsMap","numeralsMapCache","normalizeNumerals","dateString","alternativeNumeralsMap","removeLeadingZeroes","dateStringEquals","actual","expected","normalizeMonth","intlFormats","getIntlFormat","monthNameStrategies","monthIndex","monthFormat","intlDateLocalization","dayIndex","hour12Formatter","hourNumberText","timeParts","biggerPart","intlFormat","formatParts","dateArgs","constructValidDate","ampmShift","parsedDate","hoursShift","datePart","formattedDate","DEFAULT_DAY_OF_WEEK_INDEX","FORMATS_TO_PATTERN_MAP","possiblePartPatterns","dateLocalization","partName","possiblePatterns","amTime","pmTime","amTimeFormatted","pmTimeFormatted","getLDMLDateFormatter","ldmlFormat","getLDMLDateFormat","getLDMLDateParser","localizationCore","formatHelper","formatIsValid","valueIsValid","showSecond","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","ticks","maxDiff","currentDiff","endValue","correctDateDifferences","minDate","maxDate","COMPONENT_NAMES_DATA_KEY","ANONYMOUS_COMPONENT_DATA_KEY","componentNames","nextAnonymousComponent","getName","newName","generatedName","attachInstanceToElement","disposeFn","getInstanceByElement","registerComponent","publicComponentName","registerRendererComponent","isMemberInvoke","memberArgs","memberValue","themeReadyCallback","viewPortValue","viewPortChanged","initDeferred","DX_LINK_SELECTOR","THEME_ATTR","ACTIVE_ATTR","DX_HAIRLINES_CLASS","ANY_THEME","$activeThemeLink","knownThemes","currentThemeName","pendingThemeName","THEME_MARKER_PREFIX","readThemeMarker","waitForThemeLoad","themeName","waitStartTime","intervalCleared","handleLoaded","isPendingThemeLoaded","isLoaded","isTimeout","anyThemePending","themeMarker","processMarkup","$allThemeLinks","fullThemeName","resolveFullThemeName","desiredThemeName","desiredThemeParts","knownThemeName","themeData","knownThemeParts","initContext","newContext","detachCssClasses","isAutoInit","loadCallback","currentThemeData","attachCssClasses","getCssClasses","themeNameParts","isMaterialBased","themeClasses","pixelRatio","$tester","isTheme","themeRegExp","isMaterial","isFluent","isGeneric","isCompact","isWebFontLoaded","testElement","etalonFontWidth","testedFontWidth","waitWebFont","intervalId","autoInit","Action","excludeValidators","beforeExecute","afterExecute","argsBag","executors","_executor$validate","_executor$execute","createValidatorByTargetElement","hasNegation","equals","oldValueIsNaN","newValueIsNaN","cachedGetters","convertRulesToOptions","currentDevice","ruleOptions","deviceFilter","deviceMatch","normalizeOptions","getFieldName","fullName","getParentName","getNestedOptionValue","optionsObject","createDefaultOptionRules","cachedSetters","OptionManager","optionsByReference","rulesOptions","fieldName","silent","valueName","unwrapObservables","Options","deprecatedOptions","normalizedName","fieldObject","previousFieldName","deprecate","areFunctions","aliasName","PostponedOperations","postponedPromise","completePromise","operation","getEventName","isInnerOption","_optionChangedCallbacks","_disposingCallbacks","since","optionNames","actionSource","actionFunc","beforeActionExecute","wrappedAction","onActionCreated","triggerVisibilityChangeEvent","changeHandlers","triggerShownEvent","triggerHidingEvent","triggerResizeEvent","renderedCallbacks","TemplateBase","onRendered","$result","resultInContainer","resultInBody","FunctionTemplate","EmptyTemplate","ChildDefaultTemplate","templateEngines","currentTemplateEngine","registerTemplateEngine","templateEngine","setTemplateEngine","getCurrentTemplateEngine","transclude","createOccurrenceMap","_map$get","wrapToArray","getUniqueValues","removeDuplicates","toRemove","toRemoveMap","occurrencesCount","normalizeIndexes","indexPropName","currentItem","needIndexCallback","indexedItems","useLegacyVisibleIndex","shouldUpdateIndex","groupBy","getGroupName","groupedResult","_groupedResult$groupN","groupName","findTemplates","templates","suitableTemplatesByName","rawTemplates","templatesMap","Errors","_findBestMatches$","suitableTemplate","addOneRenderedCall","templateResult","addPublicElementNormalization","getNormalizedTemplateArgs","validateTemplateSource","templateSource","templateKey","defaultCreateElement","Template","acquireIntegrationTemplate","isAsyncTemplate","skipTemplates","integrationTemplate","acquireTemplate","createTemplate","defaultTemplates","ANONYMOUS_TEMPLATE_NAME","TEMPLATE_OPTIONS_NAME","TEMPLATE_WRAPPER_CLASS","DX_POLYMORPH_WIDGET_TEMPLATE","widgetName","widgetElement","widgetOptions","TemplateManager$1","anonymousTemplateName","tempTemplate","$el","anonymousTemplateMeta","suitableTemplates","$anonymousTemplate","$notJunkTemplateContent","isTextNode","isEmptyText","cachedTemplate","templateSourceResult","dispose","COMPOSITION_START_EVENT","COMPOSITION_END_EVENT","KEYDOWN_EVENT","NAMESPACE","createKeyDownOptions","KeyboardProcessor","focusTargets","isNotFocusTarget","shouldSkipProcessing","pureAddNamespace","inactive","showTimeout","hideTimeout","resize","hover","visibility","shown","hiding","focus","focusIn","focusOut","dxClick","keyboardProcessors","generateListenerId","keyboard","focusTarget","assertedVersions","VERSION_SPLITTER","stringifyVersion","major","minor","parseVersion","stringifyVersionList","assertedVersionList","assertedVersion","versionsEqual","versionA","versionB","assertedVersionsCompatible","currentVersion","mismatchingVersions","base64ToBytes","base64","hexToBytes","byte","stringToBytes","wordsToBytes","words","bytesToWords","leftRotate","concatBytes","PUBLIC_KEY","INTERNAL_USAGE_ID","ASN1_SHA1","dataLength","compareSignatures","zero","one","eight","bigIntFromBytes","signature","modulus","preprocess","sha1","_j2","temp","TokenKind","SPLITTER","FORMAT","RTM_MIN_PATCH_VERSION","GENERAL_ERROR","VERIFICATION_ERROR","DECODING_ERROR","DESERIALIZATION_ERROR","PAYLOAD_ERROR","VERSION_ERROR","validationPerformed","verifySignature","encodedSignature","isPreview","parseLicenseKey","encodedKey","decodedPayload","customerId","maxVersionAllowed","internalUsageId","getLicenseCheckParams","licenseKey","preview","license","validateLicense","versionStr","packageVersion","versionsCompatible","internal","peekValidationPerformed","DOMComponent","TemplateManager","validationAlreadyPerformed","instanceCustomRules","isCustomOption","windowResizeCallBack","windowResizeCallbacks","elementAttr","resizeEvent","visibilityEvents","modelByElement","rtl","synchronizableOptions","integrationOptions","nestedComponentOptions","nestedComponentConfig","optionChangedHandler","extendConfig","attrs","cssClass","renderRequired","initialOption","anonymousTemplate","maxLevel","normalizeArg","xItem","yItem","ACTIVE_EVENT_NAME","INACTIVE_EVENT_NAME","ACTIVE_TIMEOUT","INACTIVE_TIMEOUT","FeedbackEvent","fire","activeFeedback","FeedbackEmitter","activeChildExists","childJustActivated","eventTarget","mouseEvent","isSimulator","deferFeedback","activeTimeout","inactiveTimeout","skipTimers","lockInactive","lock","HOVERSTART_NAMESPACE","HOVERSTART","POINTERENTER_NAMESPACED_EVENT_NAME","HOVEREND_NAMESPACE","HOVEREND","POINTERLEAVE_NAMESPACED_EVENT_NAME","Hover","HoverStart","HoverEnd","setAttribute","Widget","compareVersions","innerWidget","optionsContainer","syncOptions","accessKey","focusStateEnabled","isFocused","$focusTarget","onKeyboardHandled","hasChildListeners","hasKeyboardEventHandler","shouldAttach","onlyChildProcessing","keyboardListeners","hoverStateEnabled","activeStateEnabled","focusableSelector","hoveredElement","$previous","newHoveredElement","widgetOptionMap","currentKeys","LOADINDICATOR_CLASS","LOADINDICATOR_WRAPPER_CLASS","LOADINDICATOR_CONTENT_CLASS","LOADINDICATOR_ICON_CLASS","LOADINDICATOR_SEGMENT_CLASS","LOADINDICATOR_SEGMENT_INNER_CLASS","LOADINDICATOR_IMAGE_CLASS","LoadIndicator","obsoleteAndroid","viaImage","indicatorSrc","animatingSegmentInner","$segment","minDimension","TRANSLATOR_DATA_KEY","TRANSFORM_MATRIX_REGEX","TRANSLATE_REGEX","locate","translate","getTranslate","isPercentValue","cacheTranslate","clearCache","getTranslateCss","xValueString","yValueString","transformValue","matrix","is3D","move","resetPosition","finishTransition","originalTransition","stylesConfig","parseTranslate","translateString","CSS_TRANSITION_EASING_REGEX","TransitionTimingFuncMap","polynomBezier","x1","y1","x2","y2","Cx","Bx","Ax","Cy","By","Ay","bezierX","derivativeX","convertTransitionTimingFuncToEasing","cssTransitionEasing","coeffs","forceName","easingName","getEasing","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","normalizeAlign","normalizeOffset","normalizeCollision","getAlignFactor","inverseAlign","calculateOversize","bounds","oversize","collisionSide","initMyLocation","collisionResolvers","inverseData","calculateScrollbarWidth","$scrollDiv","defaultPositionResult","calculatePosition","what","$what","currentOffset","my","at","boundary","boundaryOffset","ofRect","getOffsetWithoutScale","windowHeight","hZoomLevel","vZoomLevel","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","setScaleProperty","scale","styleAttr","stylePropIsValid","newStyleValue","styleAttributeNode","$startElement","_currentElement$getAt","_style$match","$currentElement","targetPosition","positionUtils","removeEventName","RELATIVE_VALUE_REGEX","ANIM_DATA_KEY","ANIM_QUEUE_KEY","TRANSFORM_PROP","TransitionAnimationStrategy","setProps","cleanupWhen","transitionEndFired","simulatedTransitionEndFired","simulatedEndEventTimer","transitionEndEventFullName","waitForJSCompleteTimer","fx","jumpToEnd","FrameAnimationStrategy","transformString","translateData","scaleData","rotateData","frameAnimation","currentDuration","calcValueRecursively","endPropValue","numericValue","FallbackToNoAnimationStrategy","getAnimationStrategy","animationStrategies","baseConfigValidator","animationType","validate","typeMessage","isObjectConfigValidator","isStringConfigValidator","CustomAnimationConfigurator","CssAnimationConfigurator","positionAliases","SlideAnimationConfigurator","positioningConfig","setupPosition","relativeValue","FadeAnimationConfigurator","_from$opacity","_to$opacity","defaultFromOpacity","defaultToOpacity","fromOpacity","toOpacity","PopAnimationConfigurator","fromScale","toScale","animationConfigurators","getAnimationConfigurator","defaultJSConfig","defaultCssConfig","setupAnimationOnElement","onElementAnimationComplete","startAnimationOnElement","stopAnimationOnElement","scopedRemoveEvent","subscribeToRemoveEvent","createAnimation","initialConfig","configurator","pushInAnimationQueue","queueData","getAnimQueueData","writeAnimQueueData","isAnimating","shiftFromAnimationQueue","destroyAnimQueueData","executeAnimation","currentPosition","SLEEP","INITED","STARTED","TOUCH_BOUNDARY","IMMEDIATE_TOUCH_BOUNDARY","IMMEDIATE_TIMEOUT","supportPointerEvents","setGestureCover","$cover","toggle","gestureCover","gestureCoverStrategy","GestureEmitter","_this$immediateTimeou","touchBoundary","horizontalMove","verticalMove","bothAccepted","horizontalAccepted","verticalAccepted","mainAxis","crossAxis","isStarted","newBoundary","DRAG_START_EVENT","DRAG_EVENT","DRAG_END_EVENT","DRAG_ENTER_EVENT","DRAG_LEAVE_EVENT","DROP_EVENT","DX_DRAG_EVENTS_COUNT_KEY","knownDropTargets","knownDropTargetSelectors","knownDropTargetConfigs","dropTargetRegistration","knownDropTarget","eventsCount","handlersCount","getItemDelegatedTargets","dropTargetIndex","dropTargetSelectors","$delegatedTargets","getItemConfig","getItemPosition","dropTargetConfig","getItemSize","DragEmitter","dropTargets","iteratorUtils.map","eData","dragOffset","minOffset","maxOffset","sameTarget","iteratorUtils.each","delegatedTarget","$delegatedTarget","activeTarget","$prevTarget","isDraggingElement","targetSize","hideCallback","indexOfCallback","SWATCH_CONTAINER_CLASS_PREFIX","getSwatchContainer","swatchContainer","viewport","swatchClassRegex","swatchClass","viewportSwatchContainer","OVERLAY_POSITION_ALIASES","OVERLAY_DEFAULT_BOUNDARY_OFFSET","OverlayPositionController","visualContainer","$root","$content","$wrapper","onPositioned","onVisualPositionChanged","restorePosition","_fixWrapperPosition","_skipContentPositioning","fixWrapperPosition","shouldRestorePosition","positionProp","swatch","useFixed","positionStyle","wrapperOverflow","resultPosition","previousPosition","newPosition","isVisualPositionChanged","visualContainerProp","positionOf","defaultPositionConfig","baseZIndex","zIndexStack","ZIndex","baseIndex","isLastZIndexInStack","OVERLAY_CLASS","OVERLAY_WRAPPER_CLASS","OVERLAY_CONTENT_CLASS","OVERLAY_SHADER_CLASS","INNER_OVERLAY_CLASS","INVISIBLE_STATE_CLASS","RTL_DIRECTION_CLASS","OVERLAY_STACK","PREVENT_SAFARI_SCROLLING_CLASS","TAB_KEY","Overlay","isAttachedTarget","isInnerOverlay","outsideClick","hideOnOutsideClick","overlayStack","tabbableElements","wrapperAttr","showAnimation","startShowAnimation","completeShowAnimation","cancelArg","applyFunction","cancelFunction","showingArgs","showHideConfig","hideAnimation","startHideAnimation","completeHideAnimation","hidingArgs","shouldResetActiveElement","completeCallback","startCallback","pushToStack","zIndexPool.create","zIndexPool.remove","_this5","$elements","elementsCount","$firstTabbable","$lastTabbable","isTabOnLast","isShiftTabOnFirst","isEmptyTabList","isOutsideTarget","$focusElement","hideTopOverlayCallback","needSubscribe","scrollEvent","prevTargets","hideOnScroll","$parents","hideHandled","$hideOnParentScrollTarget","shouldDeferRendering","isParentHidden","isHidden","whenContentRendered","contentTemplateOption","contentTemplate","dragEventMove","isWheel","isMouseMove","isScrollByWheel","$wrapperContainer","containerExists","uiErrors","$body","isIosSafari","isAllWindowCovered","isScrollingPrevented","shouldPreventScrolling","shouldEnableScrolling","$visualContainer","isVisualContainerWindow","wrapperWidth","wrapperHeight","showing","animateDeferred","zIndexPool.base","LOADPANEL_CLASS","LOADPANEL_WRAPPER_CLASS","LOADPANEL_INDICATOR_CLASS","LOADPANEL_MESSAGE_CLASS","LOADPANEL_CONTENT_CLASS","LOADPANEL_CONTENT_WRAPPER_CLASS","LOADPANEL_PANE_HIDDEN_CLASS","LoadPanel","defaultLabel","aria","callBase","$message","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","isDateType","getGroupInterval","dateIntervals","groupInterval","filterUtils","getFilterSelector","getFilterExpressionByRange","endFilterValue","startFilterExpression","endFilterExpression","getFilterExpressionForDate","selectedFilterOperation","dateStart","dateEnd","dateValue","getFilterExpressionForNumber","startFilterValue","isSearchByDisplayValue","DATAGRID_SELECTION_DISABLED_CLASS","DATAGRID_GROUP_OPENED_CLASS","DATAGRID_GROUP_CLOSED_CLASS","DATAGRID_EXPAND_CLASS","NO_DATA_CLASS","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","LEGACY_SCROLLING_MODE","SCROLLING_MODE_OPTION","ROW_RENDERING_MODE_OPTION","DATE_INTERVAL_SELECTORS","getIntervalSelector","nameIntervalSelector","equalSelectors","selector1","selector2","setEmptyText","normalizeSortingInfoUtility","getSummaryText","summaryItem","summaryTexts","displayFormat","getWidgetInstance","editorData","dxComponents","equalFilterParameters","filter1","filter2","normalizeGroupingLoadOptions","gridCoreUtils","noDataClass","noDataElement","isLoading","isLocalStore","loadPanelOptions","resultFilter","changeNames","changesWithChangeNamesCount","dataSource","rowType","summaryItems","remoteGrouping","dataField","sharedFiltering","sortParameters1","sortParameters2","ignoreIsExpanded","pointCreated","isVertical","startColumnIndex","cellsLength","notCreatePoint","columnIndex","point","prevItemOffset","focusedElement","selectionRange","isSelectTextOnEditingStart","editor","resultWidths","hasResizableColumns","lastColumnIndex","allowResizing","controller","$grid","rowRenderingMode","isVirtualMode","isAppendMode","lookup","lookupDataSourceOptions","hasGroupPaging","hasLookupOptimization","cachedUniqueRelevantItems","previousTake","previousSkip","sliceItems","lookupDataSource","canUseCache","newDataSource","logWarning","specificName","logSpecificDeprecatedWarningIfNeed","headerFilter","SCROLL_CONTAINER_CLASS","SCROLLABLE_SIMULATED_CLASS","GROUP_SPACE_CLASS","CONTENT_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","CONTENT_FIXED_CLASS","ROW_CLASS","GROUP_ROW_CLASS","GROUP_CELL_CLASS","DETAIL_ROW_CLASS","FILTER_ROW_CLASS","ERROR_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","HIDDEN_COLUMNS_WIDTH","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","subscribeToRowEvents","$table","touchTarget","touchCurrentTarget","clearTouchTargets","dblclickEvent","getWidthStyle","setCellWidth","cell","copyAttributes","oldAttributes","newAttributes","removeHandler","templateDeferred","normalizeWidth","ColumnsView","templateTimeout","scrollingOptions","useNativeScrolling","needToSetCellWidths","rowObject","row","isAppend","$row","visibleColumns","cellOptions","isHeaderRow","isDataRow","isMasterDetailRow","isGroupRow","isFilterRow","isDataRowWithTemplate","isEditorShown","isHeaderRowWithTemplate","isGroupCellWithTemplate","shouldShowHint","$fieldItemContent","resultOptions","formItemOptions","colgroupElement","colspan","delayedTemplates","syncTemplates","asyncTemplates","isAsync","templateParameters","needWaitAsyncTemplates","renderingTemplate","renderedTemplate","templateID","allowRenderToDetachedContainer","templateOptions","columnAsync","tableElement","$tableElement","hasRowTemplate","isRefreshing","needWrapRow","$tbody","appendTemplate","changeType","columnIndices","changeTypes","$wrappedRow","$rowElement","$newRowElement","$newCells","highlightChanges","cellUpdatedClass","$newCell","columnIndexOffset","ariaColIndex","cellIndex","renderOptions","watchers","updateValueFunc","updateRowFunc","watcher","keepRow","widths","rowIndex","isFixedTableRendering","$scrollContainer","useNative","forceWaiting","waitTemplatesRecursion","$newTableElement","$cellElements","cellElements","$rows","isDetailRow","isErrorRow","isRowVisible","isRelevantRow","$cols","visibleIndex","colWidth","columnIdentifier","columnVisibleIndex","$tableElements","cellPosition","cells","tBodies","CELL_CONTENT_CLASS","HEADERS_CLASS","NOWRAP_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","COLUMN_LINES_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","CELL_FOCUS_DISABLED_CLASS","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","SORT_INDICATOR_CLASS","SORT_INDEX_INDICATOR_CLASS","HEADER_FILTER_CLASS_SELECTOR","HEADER_FILTER_INDICATOR_CLASS","MULTI_ROW_HEADER_CLASS","LINK","createCellContent","$cellContent","addCssClassesToCellContent","showColumnLines","contentAlignment","$indicatorElements","$visibleIndicatorElements","indicatorCount","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndicator","$sortIndexIndicator","ColumnHeadersView","needCellContent","textEmpty","needSplit","leftPart","rightPart","columnChooserTitle","columnChooserView","$link","hasHiddenColumns","hasGroupedColumns","resultTemplate","headerFilterController","$column","$cellElement","rowCount","elementOptions","$indicatorElement","returnAll","$headerRows","headerRow","columnElements","bandColumnIndex","$columnElements","isReorderingEnabled","sortingOptions","onItemClick","columnID","setColumnOpacity","rowColumns","columnHeadersModule","gridCore","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","COMMAND_EXPAND_CLASS","MAX_SAFE_INTEGER","GROUP_COMMAND_COLUMN_NAME","DETAIL_COMMAND_COLUMN_NAME","COLUMN_OPTION_REGEXP","DEFAULT_COLUMN_OPTIONS","DATATYPE_OPERATIONS","COLUMN_INDEX_OPTIONS","GROUP_LOCATION","COLUMN_CHOOSER_LOCATION","NUMBER_SERIALIZATION_FORMAT","DATE_SERIALIZATION_FORMAT","DATETIME_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","MILLISECOND_LENGHT","dateParser","skipISO8601Parsing","parseISO8601String","parseDate","getTimePart","isDefaultSerializationFormat","getDateSerializationFormat","timeZoneHour","timeZoneMinute","correctYear","hour","minute","millisecond","getIso8601Format","deserializeDate","serializeDate","serializationFormat","getLDMLFormatter","dateSerialization","setFilterOperationsAsDefaultValues","globalColumnId","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","calculatedColumnOptions","createColumnsFromOptions","columnsOptions","createdColumnCount","checkUserStateColumn","getParentBandColumns","columnParentByIndex","getChildrenByBandColumn","columnChildrenByIndex","recursive","getColumnByIndexes","columnIndexes","bandColumnsCache","callbackFilter","ownerBand","getColumnFullPath","calculateColspan","processBandColumns","rowspan","getValueDataType","getSerializationFormat","updateSerializers","getAlignmentByDataType","isRTL","customizeTextForBooleanDataType","getCustomizeTextByDataType","createColumnsFromDataSource","firstItems","processedFields","updateColumnIndexes","updateColumnGroupIndexes","currentColumn","grouped","updateColumnSortIndexes","isSortOrderValid","updateColumnVisibleIndexes","bandedColumns","parentBandColumns","getColumnIndexByVisibleIndex","moveColumnToGroup","groupIndex","groupColumns","userStateColumn","applyUserState","columnsUserState","ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","userStateColumnIndex","applyFieldsState","findUserStateColumn","hasAddedBands","columnUserState","assignColumns","updateIndexes","resetBandColumnsCache","resetColumnsCache","updateColumnChanges","columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","sortMode","sortOrder","sortedByAnotherColumn","fireOptionChanged","fullOptionName","fullOptionPath","columnOptionCore","notFireEvent","optionGetter","initialColumn","optionSetter","addExpandColumn","defaultSetCellValue","dotCount","getDataColumns","bandColumnID","getRowCount","invisibleParents","isCustomCommandColumn","commandColumn","customCommandColumns","getFixedPosition","processExpandColumns","expandColumns","customColumnIndex","expandColumnsByType","expandColumn","digitsCount","numberToString","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","isColumnFixed","convertOwnerBandToColumnReference","findColumn","identifierOptionName","sortColumns","column1","column2","caption1","caption2","strictParseNumber","formattedValue","formattedValueWithDefaultFormat","ColumnsController","isApplyingUserState","groupsCount","getFirstItemsCore","needUpdateRequireResize","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","columnsFromDataSource","commonColumnSettings","groupingOptions","groupPanelOptions","checkSerializers","isBase","transparentColumn","transparentColspan","notFixedColumnCount","transparentColumnIndex","lastFixedPosition","prevColumn","newColumn","firstGroupColumn","isFixedFirstGroupColumn","isPlain","parentIndex","isInGroupPanel","isCommand","indexedColumns","isDataColumnsInvisible","columnDigitsCount","positiveIndexedColumns","negativeIndexedColumns","isDefaultCommandColumn","isFixedToEnd","rowspanGroupColumns","rowspanExpandColumns","_loop","firstPositiveIndexColumn","positiveIndexedRowColumns","columnsByFixing","columnsByVisibleIndex","hiddenColumnsByBand","getAllColumns","columnChooserColumns","fromVisibleIndex","toVisibleIndex","sourceLocation","targetLocation","sourceColumn","targetGroupIndex","targetColumn","sortingMode","needResetSorting","allowSorting","useLocalSelector","sortItem","groupItem","updateNewLookupsOnly","deferreds","shouldTakeOriginalCallbackFromPrevious","calculateCallbackName","calculateCallback","dateSerializationFormat","isColumnDataTypesUpdated","lookupDataType","valueDataType","customizeColumns","hasOwnerBand","sortParameters","groupParameters","filterParameters","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","isExpanded","columnsGroupParameters","columnsSortParameters","groupingChanged","groupExpandingChanged","remoteFiltering","columnCount","visibleColumn","childIndexes","handleStateField","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","isBand","isEditable","skipDeserialization","calculateValue","calculateDisplayValue","displayValue","dataSourceOptions","defaultOptionName","alwaysGetRowIndex","onlyVisibleDirectChildren","bandColumns","columnsControllerModule","getKeyWrapper","getKey","getSameNewByOld","oldItem","newItems","newIndexByKey","isKeysEqual","oldKeys","newKeys","findChanges","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","oldNextIndex","nextOldItem","isRemoved","oldIndex","DataControllerMock","DataController$1","pageIndex","DATA_SOURCE_OPTIONS_METHOD","DATA_SOURCE_CHANGED_METHOD","DATA_SOURCE_LOAD_ERROR_METHOD","DATA_SOURCE_LOADING_CHANGED_METHOD","DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD","SPECIFIC_DATA_SOURCE_OPTION","NORMALIZE_DATA_SOURCE","DataHelperMixin","widgetDataSourceOptions","dataSourceType","dataController","DataController","changePaging","isValueChanged","changedPagingOptions","handled","returnDataField","combined","isColumnsTypesDefined","additionalFilter","isRemoteFiltering","repaintChangesOnly","filterApplied","updateItemsHandler","isAsyncDataSourceApplying","needApplyFilter","pageSize","pagingEnabled","scrollingMode","appendMode","virtualMode","paginate","isPaginateChanged","isPageSizeChanged","isPageIndexChanged","oldDataSource","visibleItems","lastVisibleItem","rowIndexDelta","dataIndex","dataItem","isModified","rowIndices","correctedRowIndex","rowIndexCorrection","equalItems","item1","item2","oldNextItem","newNextItem","oldRow","newRow","visibleRowIndex","isLiveUpdate","isCellModified","isRowStateEquals","changedColumnIndices","isCellChanged","expandedMatch","summaryCellsMatch","continuationMatch","getRowKey","currentItems","oldRowIndexOffset","rowIndexOffset","newVisibleRowIndex","cachedProcessedItems","isDataChanged","operationTypes","filterExpr","filterName","clearColumnOption","changedHandler","remoteOperations","dataSourceAdapterProvider","dataSourceAdapter","enabledRemoteOperations","byLoaded","skipFilter","byLoadedRows","rowKeys","keyData","messageText","changesOnly","customizeLoadResult","rowIndexes","pageCount","reload","dataControllerModule","cloneItems","calculateOperationTypes","lastLoadOptions","isFullReload","executeTask","createEmptyCachedData","getPageDataFromCache","updatePaging","fillItemsFromCache","updatePagingOptionsByCache","fromEnd","cachedItems","localIndex","cacheItemIndex","cacheItem","getItemFromCache","skips","takes","getGroupItemFromCache","childCacheItem","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","cacheItemEndCount","setPageDataToCache","globalIndex","cacheItems","getCacheItem","loadedItem","childSkips","DataSourceAdapter","isSharedDataSource","isLocalOperations","operationName","fromStore","storeData","isCacheUpdated","isReshapeMode","getItemCount","oldItemCount","needUpdateTotalCountCorrection","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","cachedStoreData","cachedPagingData","cachedData","cachedExtra","localLoadOptionNames","optionValue","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","currentTotalCount","isDataLoading","itemsCount","dataSourceLoadOptions","full","DataSourceAdapterType","DataGridDataController","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","sortingMixin","ariaSortState","isSortingAllowed","hasSeveralSortIndexes","$rootElement","ariaColumnHeader","ariaSortIndex","_description","COLUMN_HEADERS_VIEW_NAMESPACE","$cellElementFromEvent","editingController","editingMode","isCellEditing","headerPanel","groupColumn","$item","groupColumnIndex","sortingModule","SCROLL_EVENT","SCROLL_INIT_EVENT","SCROLL_START_EVENT","SCROLL_MOVE_EVENT","SCROLL_END_EVENT","SCROLL_STOP_EVENT","SCROLL_CANCEL_EVENT","Locker","NAMESPACED_SCROLL_EVENT","TimeoutLocker","WheelLocker","directionChange","PointerLocker","isIos","ScrollEmitter","FRAME_DURATION","skipCheck","currentEventData","endEventDelta","velocity","velocityMultiplier","scrollEvents","getRelativeOffset","targetElementClass","sourceElement","_element","elementRect","parentElementRect","DIRECTION_VERTICAL","DIRECTION_HORIZONTAL","DIRECTION_BOTH","SCROLLABLE_CONTENT_CLASS","getElementLocationInternal","targetElement","scrollOffset","additionalOffset","inverseProp","containerOffsetSize","containerClientSize","relativeElementOffset","containerScrollOffset","relativeStartOffset","relativeEndOffset","deviceDependentOptions","SCROLLBAR","SCROLLABLE_SCROLLBAR_CLASS","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","SCROLLABLE_SCROLL_CLASS","SCROLLABLE_SCROLL_CONTENT_CLASS","HOVER_ENABLED_STATE","HORIZONTAL","THUMB_MIN_SIZE","SCROLLBAR_VISIBLE","activeScrollbar","Scrollbar","visibilityMode","scrollBarLocation","contentSize","baseContainerSize","baseContentSize","thumbSize","SCROLLABLE_NATIVE","SCROLLABLE_NATIVE_CLASS","SCROLLABLE_SCROLLBAR_SIMULATED","SCROLLABLE_SCROLLBARS_HIDDEN","VERTICAL","HIDE_SCROLLBAR_TIMEOUT","NativeStrategy","deviceType","isFirstRender","scrollbar","showScrollbar","scrollableNativeRegexp","Animator","SCROLLABLE_SIMULATED","SCROLLABLE_STRATEGY","SCROLLABLE_SIMULATED_CURSOR","SCROLLABLE_SIMULATED_KEYBOARD","SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE","ACCELERATION","OUT_BOUNDS_ACCELERATION","MIN_VELOCITY_LIMIT","SCROLL_LINE_HEIGHT","VALIDATE_WHEEL_TIMEOUT","BOUNCE_MIN_VELOCITY_LIMIT","BOUNCE_DURATION","BOUNCE_FRAMES","BOUNCE_ACCELERATION_SUM","KEY_CODES","InertiaAnimator","scroller","BounceAnimator","Scroller","realDimension","baseDimension","dimensionName","translateOffset","boundLocation","bounceDistance","nextLocation","scrollbarClicked","mouseLocation","locationChanged","isOverflowHidden","containerScrollSize","hoveredScrollable","activeScrollable","SimulatedStrategy","isThumbScrollingVertical","isThumbScrollingHorizontal","isValid","devicePixelRatio","addEventNamespace","actionHandler","scrollerX","scrollerY","$scrollable","targetScrollable","allowedDirections","touchDirection","bounceEnabled","verticalScroller","horizontalScroller","needInitializeRtlConfig","clientWidth","windowPixelRatio","reachedMin","reachedMax","contentGreaterThanContainer","locatedNotAtBound","scrollFromMin","scrollFromMax","validated","SCROLLABLE","SCROLLABLE_CLASS","SCROLLABLE_DISABLED_CLASS","SCROLLABLE_CONTAINER_CLASS","SCROLLABLE_WRAPPER_CLASS","BOTH","Scrollable","scrollWidth","scrollHeight","clientHeight","initEventData","inactiveProp","elementInsideContent","elementIsInsideContent","scrollPosition","ROWS_VIEW_CLASS","DATA_ROW_CLASS","FREE_SPACE_CLASS","ROW_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","setWatcher","watch","defaultCellTemplate","isDataTextEmpty","getScrollableBottomPadding","RowsView","isGroup","isPagerMode","allColumnsHasWidth","isNativeScrolling","dxScrollableOptions","contentElement","newTableElement","contentChanges","rowInsertedClass","dataChangeType","$rowElements","hasData","gridRoleName","isFixed","$emptyRow","$tBodies","isTableContainer","$colgroup","$freeSpaceRowElement","rowsHeight","tableElements","columnsCountBeforeGroups","groupCellOptions","groupColumnAlignment","dataRowTemplate","rowTemplate","resizeCompletedHandler","scrollableInstance","summaryCells","groupingTextsOptions","freeSpaceRowElements","isFreeSpaceRowVisible","elementHeightWithoutScrollbar","contentHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","resultHeight","freeSpaceRowCount","isZoomedWebkit","isChromeLatest","hasExtraBorderTop","scrollableContainer","lastColumnWidths","columnWidths","maxHorizontalScrollOffset","scrollRight","dxScrollable","hasHeight","loadPanel","visibilityOptions","groupCellIndex","isTop","isFloor","prevOffset","viewportBoundary","$contentElement","contentElementOffsetTop","rowElements","headerTableId","footerTableId","vScrollbarWidth","hScrollbarWidth","fixedContentClass","contentTable","$rowsViewElement","rowsModule","HOLD_EVENT_NAME","HOLD_TIMEOUT","HoldEmitter","holdTimeout","holdEvent","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","CONTEXTMENU_EVENT_NAME","ContextMenu","INKRIPPLE_CLASS","INKRIPPLE_WAVE_CLASS","INKRIPPLE_SHOWING_CLASS","INKRIPPLE_HIDING_CLASS","DEFAULT_WAVE_SIZE_COEFFICIENT","MAX_WAVE_SIZE","ANIMATION_DURATION","HOLD_ANIMATION_DURATION","DEFAULT_WAVE_INDEX","initConfig","useHoldAnimation","waveSizeCoefficient","isCentered","wavesNumber","getDurations","showWave","hideWave","getInkRipple","getWaves","inkRipple","$currentWave","getWaveStyleConfig","elementWidth","elementHeight","elementDiagonal","waveSize","$wave","hideSelectedWave","showingWaveHandler","durationCss","durations","animationDuration","watchChanges","watchMethod","fields","fieldsMap","fieldsDispose","globalDispose","dataWithRawFields","resolvedData","missedFields","watchHandlers","fieldGetter","BindableTemplate","ICON_CLASS","SVG_ICON_CLASS","getImageSourceType","getImageContainer","SelectionStrategy","addedItemKeys","removedItemKeys","addedItems","removedItems","selectedItems","selectedItemKeys","onSelectionChanged","preserve","isDeselect","isSelectAll","remoteFilter","localFilter","filterLength","needLoadAllData","filteredItems","dataQuery","keyIndices","dataFilter","selectedItemsLength","disabledItemsLength","hasSelectedItems","hasUnselectedItems","itemData","DeferredStrategy","needResetSelectionFilter","selectionFilter","keyField","filterString","subFilter","filterOperator","filterItem","currentFilter","currentOperation","needAddFilter","removedIndex","filterIndex","shouldCleanFilter","isKeyOperatorsAfterRemoved","inverted","_filterIndex","componentFilter","SelectionFilterCreator","keyGetter","equalKeys","equalByReference","functionFilter","filterExprPart","getFilterForPlainKey","itemKeyValue","currentKeyExpr","keyValueGetter","currentKeyValue","dataSourceFilter","forceCombinedFilter","combinedFilter","selectedItemKeyHashesMap","normalizeKeys","keyOf","selectedKeyHashesMap","normalizedKeys","StandardStrategy","keyIndicesToRemoveMap","isBatchDeselect","selectionFilterCreator","deselectedItems","internalKeys","allowNullValue","oldRequestItems","updatedKeys","isDeselectAll","multiSelectEnabled","lastRequestData","ignoreIndicesMap","indices","selectedIndex","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","oldSelectedKeys","oldSelectedItems","checkPending","shouldCheckPending","visibleOnly","Selection$1","deferredStrategy","standardStrategy","filterIsChanged","setFocusOnly","isSelectedItemsChanged","isVirtualPaging","allowLoadByRange","alwaysSelectByShift","indexOffset","focusedItemNotInLoadedRange","shiftFocusedItemNotInLoadedRange","itemIsNotInLoadedRange","itemKey","allowSelectByShift","loadIndex","itemIndexStep","indexOffsetDefined","focusedItem","focusedData","focusedKey","isFocusedItemSelected","startIndex","isOnePage","_this$option","DISABLED_STATE_CLASS","ITEM_CONTENT_PLACEHOLDER_CLASS","forcibleWatcher","filteredCallback","CollectionItem","$placeholder","exprGetter","ownerComponent","COLLECTION_CLASS","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_DATA_KEY","ITEM_INDEX_KEY","ITEM_TEMPLATE_ID_PREFIX","ITEMS_OPTIONS_NAME","SELECTED_ITEM_CLASS","ITEM_RESPONSE_WAIT_CLASS","EMPTY_COLLECTION","ITEM_PATH_REGEX","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_PAGE_UP","FOCUS_PAGE_DOWN","FOCUS_LAST","FOCUS_FIRST","CollectionWidget","$itemElement","displayExpr","rawItems","isTemplateRequired","templateId","$template","$focusedElement","$activeItem","activeElements","$items","$newTarget","$itemElements","$last","loop","$first","needCleanItemId","selectOnFocus","isTargetDisabled","isDisabling","itemPath","itemSelector","clickEventNamespace","pointerEventNamespace","pointerAction","$closestItem","$closestFocusable","$itemContainer","contextMenuEventName","customClassValue","currentClassValue","$itemToReplace","$itemFrame","$itemContent","renderContentPromise","itemTemplateName","itemTemplate","$templateResult","$node","templateProperty","renderArgs","noDataText","hideNoData","dxEvent","handlerOptionName","actionArgs","actionConfig","initiator","CollectionWidgetItem","EditStrategy","collectionWidget","resultIndex","normalizedItemIndex","movingIndex","destinationIndex","PlainEditStrategy","movedItemData","ITEM_DELETING_DATA_KEY","NOT_EXISTING_INDEX","indexExists","BaseCollectionWidget","itemsGetter","Selection","Strategy","byOption","selectedItem","selectedItemIndex","isOptionDefined","newSelection","normalizedSelection","itemSelectPromise","isItemSelected","selectionChangePromise","addedSelection","normalizedIndex","removedSelection","deletingActionArgs","deletePromise","deletePromiseExists","deletePromiseResolved","argumentsSpecified","shouldDelete","disabledState","dataStore","itemElements","deletedActionArgs","changingOption","itemResponseWaitClass","toItemElement","$movingItem","$destinationItem","canMoveItems","ResizeObserverMock","ResizeObserverSingleton","_this$_callbacksMap$g","resizeObserverSingleton","EMAIL_VALIDATION_REGEX","STATUS","BaseRuleValidator","rulesValidators","valueArray","itemValue","RequiredRuleValidator","NumericRuleValidator","RangeRuleValidator","validNumber","validValue","StringLengthRuleValidator","CustomRuleValidator","dataGetter","extraParams","AsyncRuleValidator","CompareRuleValidator","otherValue","PatternRuleValidator","EmailRuleValidator","GroupConfig","isRemovable","validatorResult","foundValidator","brokenRules","orderedRules","foundRules","ValidationEngine","hasValidationGroup","validationGroup","$dxGroup","asyncRuleItems","ruleValidator","ruleValidationResult","groupConfig","asyncResults","validateResult","ruleResult","validatorsInGroup","shouldRemoveGroup","initedOptions","validationStatus","newStatus","validationError","validationErrors","INVALID_MESSAGE","INVALID_MESSAGE_AUTO","INVALID_MESSAGE_ALWAYS","INVALID_MESSAGE_CONTENT","VALIDATION_MESSAGE_MIN_WIDTH","ValidationMessage","shouldShowMessage","contentId","validationErrorMessage","targetWidth","positionSide","rtlSide","componentOffset","READONLY_STATE_CLASS","INVALID_CLASS","DX_INVALID_BADGE_CLASS","VALIDATION_TARGET","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","READONLY_NAMESPACE","ALLOWED_STYLING_MODES","VALIDATION_MESSAGE_KEYS_MAP","Editor","isValidationMessageShownOnFocus","$validationMessageWrapper","allowedStylingClasses","stylingModeClass","defaultOptionValue","platformOptionValue","isInvalid","validationMessageMode","validationMessageOffset","validationBoundary","validationMessageContentId","isReadOnly","$eventTarget","EventsEngine","$submitElement","optionKey","TextEditorButton","$placeMarker","pointerDown","STATE_INVISIBLE_CLASS","TEXTEDITOR_CLEAR_BUTTON_CLASS","TEXTEDITOR_CLEAR_ICON_CLASS","TEXTEDITOR_ICON_CLASS","TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS","ClearButton","$button","editorName","$editor","rendered","TEXTEDITOR_LABEL_CLASS","TEXTEDITOR_WITH_LABEL_CLASS","TEXTEDITOR_LABEL_OUTSIDE_CLASS","TEXTEDITOR_WITH_FLOATING_LABEL_CLASS","TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS","LABEL_BEFORE_CLASS","LABEL_CLASS","LABEL_AFTER_CLASS","TextEditorLabel","hoverStartEventName","hoverStart","activeEventName","selectedText","labelClass","beforeButtonsClass","labelTranslateX","mark","containsButtonsBefore","beforeWidth","containerWidth","isStringOrNumber","isNullOrUndef","isNull","combineFrom","key$1","isLinkEventObject","EMPTY_OBJ","normalizeEventName","appendChild","parentDOM","insertOrAppend","newNode","nextNode","documentCreateElement","isSVG","replaceChild","newDom","lastDom","removeChild","callAll","arrayFn","findChildVNode","vNode","startEdge","findDOMfromVNode","removeVNodeDOM","moveVNodeDOM","createDerivedState","renderCheck","setTextContent","isLastValueSameLinkEvent","lastValue","mergeUnsetProperties","safeCall1","keyPrefix","childFlags","createVNode","childFlag","normalizeChildren","mergeDefaultHooks","defaultHooks","mergeDefaultProps","resolveComponentFlags","createComponentVNode","createTextVNode","createFragment","createVoidVNode","normalizeProps","cloneFragment","vNodeToClone","oldChildren","directClone","propsToClone","_normalizeVNodes","newKey","oldKey","isPrefixedKey","getFlagsForElementVnode","newChildren","newChildFlags","needsCloning","isNullKey","isPrefixed","normalizeRoot","xlinkNS","xmlNS","getDelegatedEventObject","attachedEventCounts","attachedEvents","syntheticEvents","updateOrAddSyntheticEvent","eventsObject","attachEventToDocument","unmountSyntheticEvent","handleSyntheticEvent","lastEvent","nextEvent","dispatchEvents","stopPropagation","isDefaultPrevented","isPropagationStopped","extendEventProperties","rootClickEvent","rootEvent","attachedEvent","isSameInnerHTML","innerHTML","tempdom","triggerEventListener","nativeListenerName","createWrappedFunction","applyValue","fnMethod","newVNode","attachEvent","previousKey","previousArgs","isCheckedType","onTextInputChange","applyValueInput","wrappedOnChange","emptywrapper","inputEvents","nextPropsOrEmpty","updateChildOptions","updateChildOption","onSelectChange","applyValueSelect","selectEvents","multiplePropInBoolean","onTextareaInputChange","applyValueTextArea","wrappedOnChange$1","textAreaEvents","domValue","processElement","addFormElementEventHandlers","isControlledFormElement","createRef","unmountRef","mountRef","lifecycle","unmount","unmountAllChildren","clearDOM","removeAllChildren","wrapLinkEvent","patchEvent","patchStyle","lastAttrValue","nextAttrValue","domStyle","patchDangerInnerHTML","lastVNode","lastHtml","nextHtml","patchProp","hasControlledValue","mountProps","isFormElement","renderNewInput","nextInput","createClassComponentInstance","usesNewAPI","pending","renderFunctionalComponent","mount","mountClassComponent","mountFunctionalComponent","mountFunctionalComponentCallbacks","mountText","mountFragment","mountPortal","placeHolderVNode","mountArrayChildren","childrenIsSVG","mountClassComponentCallbacks","createClassMountCallback","createOnMountCallback","replaceWithNewNode","nextVNode","nextFlags","patchElement","patchClassComponent","patchFunctionalComponent","patchText","patchFragment","patchPortal","patchSingleTextChild","lastChildren","nextChildren","patchContentEditableChildren","lastChildFlags","nextChildFlags","nextIsSingle","lastLen","patchChildren","lastContainer","nextContainer","lastProps","lastPropsOrEmpty","prop$1","nextClassName","nextRef","lastRef","replaceOneVNodeWithMultipleVNodes","parentVNode","lastLength","nextLength","patchKeyedChildren","patchNonKeyedChildren","createDidUpdate","lastState","updateClassComponent","hasSCU","shouldUpdate","nextHooksDefined","lastInput","lastChildrenLength","nextChildrenLength","commonLength","nextChild","lastChild","aLength","bLength","outerEdge","aEnd","bEnd","aNode","bNode","nextPos","outer","patchKeyedChildrenComplex","aStart","bStart","aLeft","bLeft","sources","canRemoveWholeContent","moved","patched","seq","lis_algorithm","maxLen","arrI","hasDocumentAvailable","__render","rootInput","QUEUE","nextTick","microTaskPending","queueStateChanges","stateKey","applyState","rerender","QU","callSetStateCallbacks","pendingState","_nextProps","_nextState","_nextContext","InfernoEffectHost","areObjectsEqual","firstObject","secondObject","firstObjectKeys","secondObjectKeys","BaseInfernoComponent","InfernoComponent","InfernoWrapperComponent","currentClasses","addedClasses","removedClasses","indexInRemoved","indexInAdded","contextId","InfernoEffect","dependency","currentDependency","createReRenderEffect","reRender","ERROR_MSG","throwError","findLastDOMFromVNode","isSamePropsInnerHTML","hydrateComponent","isClass","currentNode","_CI","hydrateVNode","_MCCC","_HI","_MFCC","hydrateChildren","_M","prevVNodeIsTextNode","hydrateElement","_ME","_MP","_MR","hydrateText","hydrateFragment","currentDom","hydrate","componentHooks","_children","arguments$1","childLen","renderTemplate","_component","hasTemplate","NUMBER_STYLES","getNumberStyleValue","uppercasePattern","kebabCase","normalizeStyles","_render","_createElement","vNodeAlreadyExists","shallowEquals","isDxElementWrapper","buildTemplateArgs","_model$data","renderTemplateContent","_props$model","removeDifferentElements","hasOldChild","oldElement","$oldContainerContent","$actualContainerContent","nextModel","nextTemplate","equalityComparer","nextData","cloneObjectValue","cloneObjectProp","fullNameParts","updatePropsImmutable","currentPropsValue","prevPropsValue","setDefaultOptionValue","defaultValueGetter","ComponentWrapper","supportedKeyNames","hasComponentDefaultKeyHandlers","hasComponentKeyDownMethod","_this$_viewRef","contentReadyOptions","viewDefaultProps","defaultName","unwrappedProps","_this$_templateManage","optionProxy","containerNode","_attributes$attr$name","updatedAttributes","isDomAttr","elemStyle","allowNull","twoWay","defaultWidgetPropsKeys","event_options","widgetProps","_this$elementAttr$cla","_elementAttr$class","_options$templateName","templateName","templateValue","actionToAdd","actionByOption","actArgs","TemplateWrapper","templateOption","initialHandler","ButtonWrapper","iconType","needValidate","submitInput","validationResult","$input","combineClasses","classesMap","viewFunction","iconClassName","IconTemplate","sourceType","IconProps","getTemplate","TemplateProp","Icon","generalClasses","restProps","InkRippleProps","InkRipple","subscribeToEvent","subscribeToClickEvent","clickEvent.name","subscribeToDxActiveEvent","subscribeToDxInactiveEvent","subscribeToDxHoverStartEvent","subscribeToDxHoverEndEvent","subscribeToDxFocusInEvent","subscribeToDxFocusOutEvent","BaseWidgetProps","ConfigContext","viewModel","ConfigProviderProps","ConfigProvider","resolveRtlEnabled","rtlProp","globalConfig","resolveRtlEnabledDefinition","isPropDefined","onlyGlobalDefined","DEFAULT_FEEDBACK_HIDE_TIMEOUT","DEFAULT_FEEDBACK_SHOW_TIMEOUT","getAria","widget","WidgetProps","infernoCreateRef","_this$_effects$","_this$_effects$2","_this$_effects$3","_this$_effects$4","_this$_effects$5","_this$_effects$6","_this$_effects$7","_this$_effects$8","_this$_effects$9","_this$_effects$10","_this$_effects$11","_this$_effects$12","_this$_effects$13","onRootElementRendered","rootElementRef","_feedbackShowTimeout","activeStateUnit","onActive","__state_argument","_feedbackHideTimeout","onInactive","onFocusIn","onFocusOut","onHoverStart","onHoverEnd","onDimensionChanged","onVisibilityChange","computedWidth","computedHeight","addWidgetClass","isHoverable","canBeActive","stylingModes","stylingMode","isValidStylingMode","ButtonTemplate","renderText","isIconLeft","iconComponent","ButtonProps","defaultOptionRules","onSubmit","useSubmitBehavior","useInkRipple","iconSource","isPathToImage","_titleRegexp$exec$","_titleRegexp$exec","templateData","__defaultOptionRules","BaseComponent","_this$viewRef","_this$viewRef2","_this$viewRef3","ButtonComponent","CUSTOM_BUTTON_HOVERED_CLASS","CustomButton","isUpdated","isDefinedByUser","TEXTEDITOR_BUTTONS_CONTAINER_CLASS","checkButtonInfo","buttonInfo","checkNamesUniqueness","existingNames","isPredefinedButtonName","predefinedButtonsInfo","TextEditorButtonCollection","defaultButtonsInfo","buttons","isStringButton","isDefaultButton","defaultButtonInfo","buttonsInfo","Ctor","$buttonsContainer","buttonName","TEXTEDITOR_CLASS","TEXTEDITOR_INPUT_CONTAINER_CLASS","TEXTEDITOR_INPUT_CLASS","TEXTEDITOR_INPUT_SELECTOR","TEXTEDITOR_CONTAINER_CLASS","TEXTEDITOR_PLACEHOLDER_CLASS","TEXTEDITOR_EMPTY_INPUT_CLASS","TEXTEDITOR_PENDING_INDICATOR_CLASS","TEXTEDITOR_VALIDATION_PENDING_CLASS","TEXTEDITOR_VALID_CLASS","EVENTS_LIST","CONTROL_KEYS","TextEditorLabelCreator","checkButtonsOptionType","TextEditorBase","$inputContainer","inputAttrName","customAttributes","inputAttributes","ios","mac","defaultAttributes","editorStylingMode","buttonInstance","renderInputPromise","displayValueFormatter","validity","buttonsBeforeWidth","inputAttr","labelMode","labelMark","labelConfig","placeholderAttributes","startEvent","isCtrlEnter","isNewValue","keyPressEvent","valueChangeEvent","keyDownEvent","valueChangeNamespace","textChangeNamespace","shouldPrevent","EMPTY_CHAR","BaseMaskRule","handlingProperty","isForwardDirection","EmptyMaskRule","MaskRule","acceptedChar","allowedChars","StubMaskRule","hasValueProperty","nextArgs","MASK_EVENT_NAMESPACE","BLUR_EVENT","DELETE_INPUT_TYPES","HISTORY_INPUT_TYPES","EVENT_NAMES","getEmptyString","MaskStrategy","newCaret","currentCaret","adjustedForwardCaret","hasValidChars","textLength","processedCharsCount","hasSkippedStub","getClipboardText","pastedText","restText","accepted","inputVal","handlerName","isFocusingOnCaretChange","getCaret","setCaret","caretUtils","ESCAPED_CHAR","TEXTEDITOR_MASKED_CLASS","FORWARD_DIRECTION","BACKWARD_DIRECTION","DROP_EVENT_NAME","buildInMaskRules","isLiteralChar","isSpaceChar","isNumericChar","TextEditorMask","keyHandlerMap","parentHandler","hasMouseWheelHandler","mouseWheelAction","useMaskBehavior","changeEvent","currentMaskChar","isEscapedChar","ruleConfig","rulePattern","chainArgs","textBefore","textAfter","edited","showMaskMode","submitElementValue","handledCount","keyHandler","previousText","raiseInputEvent","emptyChars","caretStart","maskRuleIndex","ignoreKeys","TEXTBOX_CLASS","SEARCHBOX_CLASS","SEARCH_ICON_CLASS","TextBox","TextEditor","$searchIcon","labelBeforeWidth","actualMaxLength","textInput","isMaskSpecified","stubComponent","EditorClass","searchBoxMixin","searchEnabled","searchBoxClassName","rootElementClassName","editorOptions","userEditorOptions","searchText","searchTimeout","searchMode","DataConverter","parentKey","isCorrectKey","publicNode","publicNodes","currentElementKey","rootValue","EXPANDED","SELECTED","DISABLED","uiSearchBoxMixin","DataAdapter","HierarchicalDataConverter","newParentState","processedKeys","nodeKey","selectedItemsCount","invisibleItemsCount","isChildInvisible","childState","dataConverter","selectRecursive","isSingleModeUnselect","selectionState","lastSelectedKey","dataStructure","lookForParents","ITEM_URL_CLASS","HierarchicalCollectionWidget","HierarchicalDataAdapter","iconContainer","textContainer","linkAttr","linkAttributes","$imageContainer","accessor","setter","optionExpr","newAccessor","TypedWidget","TypedCollectionWidget","MenuBaseEditStrategy","getMenuItems","DX_MENU_CLASS","DX_MENU_NO_ICONS_CLASS","DX_MENU_BASE_CLASS","DX_ITEM_CONTENT_CLASS","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_SEPARATOR_CLASS","DX_MENU_ITEM_LAST_GROUP_ITEM","DX_ITEM_HAS_TEXT","DX_ITEM_HAS_ICON","DX_ITEM_HAS_SUBMENU","DX_MENU_ITEM_POPOUT_CLASS","DX_MENU_ITEM_POPOUT_CONTAINER_CLASS","DX_MENU_ITEM_CAPTION_CLASS","SINGLE_SELECTION_MODE","DEFAULT_DELAY","DX_MENU_ITEM_CAPTION_URL_CLASS","DX_ICON_WITH_URL_CLASS","MenuBase","itemText","$popOutContainer","$popOutImage","nodeToSelect","selectedKeys","selectedKey","submenuContainer","$nodeContainer","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","isBeginGroup","$nodeElement","hasText","hasIcon","hasSubmenu","$itemsContainer","itemClickActionHandler","selectedItemKey","selectedNode","isSelectByClickEnabled","oldSelection","DX_MENU_ITEM_CLASS","DX_MENU_PHONE_CLASS","DX_SUBMENU_CLASS","DX_CONTEXT_MENU_CLASS","DX_HAS_CONTEXT_MENU_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_FOCUSED_CLASS","DX_STATE_HOVER_CLASS","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","showEventOption","$availableItems","$focusedItem","$hoveredItem","$hoveredItemContainer","$oldTarget","$activeItemHighlighted","$curItem","$parentItem","isItemHasSubmenu","$submenu","overlayOptions","$overlayContent","showEvent","contextMenuAction","$holder","closeOnOutsideClick","$activeItemContainer","$itemContainers","$clickedItem","$rootItem","isRootItemClicked","isInnerOverlayClicked","$activeOverlay","$allOverlays","isSame","$overlay","$submenuElements","shownSubmenus","$context","isSubmenuRendered","$expandedItems","submenuPosition","animationPosition","submenuDirection","$rootItemWrapper","shouldRenderSubmenu","notCloseMenuOnItemClick","$prevSubmenu","$curSubmenu","jQEvent","isInitialPosition","positioningAction","lastPosition","CONTEXT_MENU","VIEW_NAMES","ContextMenuController","$targetRowElement","$targetCellElement","menuItems","ContextMenuView","contextMenuInstance","contextMenuModule","treeListCore","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","$errorRow","$closeButton","$errorMessage","errorRowIndex","$popupContent","$errorMessageElement","$firstErrorRow","$columnHeaders","errorHandlingModule","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","GRIDBASE_CONTAINER_CLASS","GROUP_ROW_SELECTOR","isPercentWidth","isPixelWidth","calculateFreeWidth","contentWidth","totalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","accessibility.hiddenFocus","ResizingController","resizeDeferred","isDelayed","needFireContentReady","totalItemsCount","headersTableElement","columnId","isBestFit","$rowsTables","$viewTables","$tableBody","$rowsTable","$viewTable","$rowsFixedTable","columnAutoWidth","wordWrapEnabled","hasUndefinedColumnWidth","needBestFit","hasMinWidth","resetBestFitMode","isColumnWidthsCorrected","isFocusOutsideWindow","expandColumnWidth","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","isHiddenColumn","averageColumnsWidth","realColumnWidth","columnWidth","borderWidth","resultSizes","tableSize","unusedIndexes","diffElement","onePixelElementsCount","groupWidth","ratio","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","importantMarginClass","$groupElement","checkSize","prevResult","groupElement","isWidgetVisible","isGridSizeChanged","headerTable","footerTable","rootElementHeight","isHeightSpecified","maxHeightHappened","isMaxHeightApplied","SynchronizeScrollingController","GridView","gridViewModule","AsyncCollectionWidget","CollectionWidgetEdit","renderContentDeferred","itemDeferred","CollectionWidgetAsync","TOOLBAR_CLASS","TOOLBAR_BEFORE_CLASS","TOOLBAR_CENTER_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_MINI_CLASS","TOOLBAR_ITEM_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ITEMS_CONTAINER_CLASS","TOOLBAR_GROUP_CLASS","TOOLBAR_COMPACT_CLASS","TEXT_BUTTON_MODE","DEFAULT_BUTTON_TYPE","DEFAULT_DROPDOWNBUTTON_STYLING_MODE","TOOLBAR_ITEM_DATA_KEY","ANIMATION_TIMEOUT","ToolbarBase","rawModel","section","sectionClass","$section","beforeRect","afterRect","$label","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","sectionMaxWidth","labelPaddings","leftRect","rightRect","centerRect","$labels","labels","currentWidth","getRealLabelWidth","currentLabelWidth","labelMaxWidth","possibleLabelWidth","itemContainer","$after","itemHasText","groupItems","readyToResolve","runCheck","BUTTON_GROUP_CLASS","TOOLBAR_ITEMS","getItemInstance","toggleItemFocusableElementTabIndex","isItemNotFocusable","$widget","itemInstance","MultiLineStrategy","toolbar","RESIZABLE","RESIZABLE_CLASS","RESIZABLE_RESIZING_CLASS","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_TOP_CLASS","RESIZABLE_HANDLE_BOTTOM_CLASS","RESIZABLE_HANDLE_LEFT_CLASS","RESIZABLE_HANDLE_RIGHT_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","dragEventStart","DRAGSTART_EVENT_NAME","DRAGSTART_END_EVENT_NAME","dragEventEnd","SIDE_BORDER_WIDTH_STYLES","Resizable","handles","activeHandlesMap","handleName","$handle","handleElement","shouldAttachEvents","area","handleWidth","handleHeight","handleOffset","areaOffset","factor","proportionalY","proportionalX","axis","sides","directionName","fittedDelta","isInArea","isFittedX","isFittedY","shouldKeepAspectRatio","proportionalDelta","fittedProportionalDelta","roundedFittedDelta","offsetTop","offsetLeft","dimensions","isAbsoluteSize","isStepPrecisionStrict","elementStyle","shouldRenderWidth","shouldRenderHeight","xor","steps","xPos","yPos","newXShift","newYShift","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","roundedOffset_x","roundedOffset_y","hasCornerTopLeftClass","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","areaElement","$area","areaBorderLeft","areaBorderTop","KEYBOARD_DRAG_STEP","PopupDrag","dragEnabled","handle","draggableElement","positionController","startEventName","dragStartEvent","updateEventName","dragMoveEvent","endEventName","dragEndEvent","allowedOffsets","targetOffset","containerHeight","containerDimensions","elementDimensions","outsideDragFactor","fullDelta","outerDelta","isDragAllowed","elementPosition","containerPosition","overflowManagerMock","createBodyOverflowManager","isIosDevice","prevSettings","scrollY","scrollX","scrollBarWidth","paddingRight","computedBodyPaddingRight","propertyInKebabCase","PopupPositionController","forceApplyBindings","dragOutsideBoundary","dragAndResizeArea","isContainerDefined","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_FULL_SCREEN_CLASS","POPUP_FULL_SCREEN_WIDTH_CLASS","POPUP_NORMAL_CLASS","POPUP_CONTENT_CLASS","POPUP_CONTENT_SCROLLABLE_CLASS","POPUP_DRAGGABLE_CLASS","POPUP_TITLE_CLASS","POPUP_TITLE_CLOSEBUTTON_CLASS","POPUP_BOTTOM_CLASS","POPUP_HAS_CLOSE_BUTTON_CLASS","POPUP_CONTENT_FLEX_HEIGHT_CLASS","POPUP_CONTENT_INHERIT_HEIGHT_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","BUTTON_DEFAULT_TYPE","BUTTON_NORMAL_TYPE","BUTTON_TEXT_MODE","BUTTON_CONTAINED_MODE","BUTTON_OUTLINED_MODE","IS_OLD_SAFARI","HEIGHT_STRATEGIES","getButtonPlace","Popup","popupWrapperClassExternal","popupWrapperClasses","isFullscreen","doesShowAnimationChangeDimensions","shouldObserve","contentBox","contentRect","showTitle","$title","shouldSetAriaLabel","additionalToolbarOptions","useDefaultToolbarButtons","useFlatToolbarButtons","toolbarTemplate","toolbarOptions","$toolbar","$titleElement","toolbarItems","toolbarsItems","currentPlatform","isShortcut","isLTROrder","itemType","shortcut","itemConfig","itemClass","$toolbarItem","clickAction","$bottom","zIndexPool.isLastZIndexInStack","isNativeScrollingEnabled","useResizeObserver","isAnimated","shouldRepeatAnimation","isDimensionChange","$dragTarget","overlayContent","currentHeightStrategyClass","popupVerticalPaddings","isAutoWidth","cssStyles","contentMaxHeight","contentMinHeight","popupHeightParts","toolbarsAndVerticalOffsetsHeight","overlayHeight","maxHeightValue","minHeightValue","currentClass","excessClasses","topToolbar","bottomToolbar","setOverflow","restoreOverflow","shouldRenderGeometry","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","HorizontalStrategy","endEventData","VerticalStrategy","STRATEGIES","SwipeEmitter","moveEventData","offsetRatio","isFast","elastic","toNumber","getElementStyle","_getWindow$getCompute","_getWindow","getElementMargin","side","PRIVATE_KEY_FIELD","itemCache","isPartialRefresh","changedItem","removeIndex","removedItem","$removedItemElement","isItemsUpdated","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","SCROLLVIEW_PULLDOWN_READY_CLASS","SCROLLVIEW_PULLDOWN_IMAGE_CLASS","SCROLLVIEW_PULLDOWN_INDICATOR_CLASS","SCROLLVIEW_PULLDOWN_TEXT_CLASS","SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS","STATE_RELEASED","STATE_READY","STATE_REFRESHING","STATE_LOADING","PULLDOWN_RELEASE_TIME","PullDownNativeScrollViewStrategy","scrollView","$image","$loadContainer","$loadIndicator","$text","pullDownTextItems","contentEl","containerEl","scrollDelta","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","PULLDOWN_ICON_CLASS","STATE_TOUCHED","STATE_PULLED","SwipeDownNativeScrollViewStrategy","pullDownHeight","angle","math","ScrollViewScroller","considerPockets","SimulatedScrollViewStrategy","SCROLLVIEW_CLASS","SCROLLVIEW_CONTENT_CLASS","SCROLLVIEW_TOP_POCKET_CLASS","SCROLLVIEW_BOTTOM_POCKET_CLASS","SCROLLVIEW_PULLDOWN_CLASS","SCROLLVIEW_REACHBOTTOM_CLASS","SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS","SCROLLVIEW_REACHBOTTOM_TEXT_CLASS","SCROLLVIEW_LOADPANEL","refreshStrategies","PullDownStrategy","SwipeDownStrategy","isServerSide","scrollViewServerConfig","ScrollView","$topPocket","$pullDown","$bottomPocket","$reachBottom","$loadPanelElement","strategyName","strategyClass","preventReachBottom","showOrHide","isCorrectStructure","hasTwoFields","hasCorrectFields","DataConverterMixin","hasSimpleItems","innerItem","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_BADGE_CLASS","BADGE_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CLASS","ListItem","badge","$badge","$chevron","showChevron","$chevronContainer","LIST_CLASS","LIST_ITEMS_CLASS","LIST_ITEM_CLASS","LIST_ITEM_SELECTOR","LIST_ITEM_ICON_CONTAINER_CLASS","LIST_ITEM_ICON_CLASS","LIST_GROUP_CLASS","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_COLLAPSIBLE_GROUPS_CLASS","LIST_GROUP_COLLAPSED_CLASS","LIST_GROUP_HEADER_INDICATOR_CLASS","LIST_HAS_NEXT_CLASS","LIST_NEXT_BUTTON_CLASS","WRAP_ITEM_TEXT_CLASS","SELECT_ALL_ITEM_SELECTOR","LIST_ITEM_DATA_KEY","LIST_FEEDBACK_SHOW_TIMEOUT","groupItemsGetter","ListBase","moveFocusPerPage","getEdgeVisibleItem","isFocusedItem","scrollTop","isItemVisible","$nextItem","nextItemLocation","listContainer","scrollBottom","nextButton","scrollingEnabled","pullRefreshEnabled","autoPagingEnabled","getScrollView","$icon","$iconContainer","tryLoadMore","shouldLoadNextPage","shouldIndicateLoading","isBottomReached","isElementVisible","collapsibleGroups","$group","$groupBody","startHeight","endHeight","listArea","swipeEventEnd","groupAria","$groupHeaderElement","groupTemplateName","groupTemplate","downArguments","upArguments","$nextButton","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_CUSTOM_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenuList","sectionName","$menuContainer","$sections","menuTemplate","DROP_DOWN_MENU_CLASS","DROP_DOWN_MENU_POPUP_CLASS","DROP_DOWN_MENU_POPUP_WRAPPER_CLASS","DROP_DOWN_MENU_LIST_CLASS","DROP_DOWN_MENU_BUTTON_CLASS","POPUP_BOUNDARY_VERTICAL_OFFSET","POPUP_VERTICAL_OFFSET","DropDownMenu","extension","isOutsideClick","TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_HIDDEN_ITEM","SingleLineStrategy","$menu","itemClickAction","menuItemTemplate","isMenuVisible","$hiddenItems","overflowItems","hiddenItem","$itemMarkup","overflowGetter","itemVisible","itemOverflow","itemsWidth","TOOLBAR_MULTILINE_CLASS","TOOLBAR_AUTO_HIDE_TEXT_CLASS","showText","HEADER_PANEL_CLASS","TOOLBAR_ARIA_LABEL","DEFAULT_TOOLBAR_ITEM_NAMES","HeaderPanel","specificClass","secondClass","userToolbarOptions","itemRenderedCallback","userItems","defaultItems","defaultButtonsByNames","normalizedItems","$headerPanel","userItem","normalizedItem","resizing","headerPanelModule","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","DataGrid","DATE_REGEX","parseDates","getStorage","getUniqueStorageKey","StateStoringController","getDataState","pagerView","processLoadState","selectionController","exportController","DEFAULT_FILTER_VALUE","getFilterValue","filterSyncController","hasFilterState","stateStoring","oldState","oldStateHash","newStateHash","allowedPageSizes","selectedRowKeys","isVirtualScrollingMode","showPageSizeSelector","isDeferredSelection","stateStoringModule","EDITOR_CELL_CLASS","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","COMMAND_SELECT_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSeveralRowsSelected","isComplexKey","selectionCellTemplate","selectionHeaderTemplate","SelectionController","selectAllMode","removedKeys","updateChanges","selectionOptions","virtualPaging","allowSelectAll","legacyScrollingMode","hasGroupColumns","loadItemIndex","focusedItemIndex","shiftItemIndex","minIndex","maxIndex","isSelectColumnVisible","isDeferredMode","selectionChangedOptions","isSelectionWithCheckboxes","changedItemIndexes","visibleChangedItemIndexes","itemIndexes","oldSelectionMode","selectionMode","visibleItemIndex","loadedItemIndex","dataSelectionExtenderMixin","hasSelectColumn","hasLoadOperation","isUpdateSelection","contextMenu","columnHeadersSelectionExtenderMixin","selectAllValue","hasSelection","isEmptyData","rowsViewSelectionExtenderMixin","isSelectionDisabled","isCommandSelect","isCheckBoxesHidden","selectionModule","querySelectorInSameDocument","_el$getRootNode2","innerWidgetOptions","areValuesEmpty","_this$_valueChangeAct","prevIsEditor","OldEditor","newIsEditor","defaultNotDeepCopyArrays","propsToIgnore","getDiffItem","resultPaths","fullPropName","notDeepCopyArrays","type1","type2","diffPaths","objectDiffs","notDeepCopy","_diffPaths","objectDiffsFiltered","propsEnumerator","oldProps","processItem","reactProps","objectDiffsWithoutReactProps","getUpdatedOptions","restAttributes","widgetRef","DomComponentWrapperProps","DomComponentWrapper","updatedOptions","_this$config","normalizedProps","valueChange","LegacyValidationMessage","ValidationMessageProps","isValidationMessageVisible","validationMessagePosition","validationMessageGuid","validationMessageTarget","EditorProps","EditorPropsType","_this$validationError","isEditorValid","allValidationErrors","_this$rootElementRef","_this$props$value","_window$getComputedSt","defaultIconSizes","defaultFontSizes","getThemeType","getDefaultIconSize","isCompactTheme","isMaterialTheme","getDefaultFontSize","getFontSizeByIconSize","iconSize","defaultFontSize","defaultIconSize","fontToIconSizeRatio","elementRef","CheckBoxIconProps","CheckBoxIcon","newIconSize","newFontSize","iconComputedStyle","computedIconSize","indeterminate","editorRef","CheckBoxProps","CheckBoxPropsType","enableThreeStateBehavior","saveValueChangeEvent","__newValue","_newValue","__processTwoWayProps","twoWayProps","defaultPropName","CheckBox","CheckBoxComponent","WIDGET_CLASS","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS","CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","TOGGLE_ITEM_VISIBILITY_CLASS","CUSTOM_COLLAPSE_ICON_CLASS","CUSTOM_EXPAND_ICON_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","CHECK_BOX_CLASS","CHECK_BOX_ICON_CLASS","ROOT_NODE_CLASS","EXPANDER_ICON_STUB_CLASS","TreeViewBase","expandEventName","expandByClick","checkboxInstance","toggleExpandedNestedItems","rootItem","previousSelectAllEnabled","previousItemsContainer","selectAllExists","invocationResult","removedKey","skipContentReadyAction","hasChildNodes","showCheckBoxesMode","nodeIndex","nodeData","showCheckBox","childNodes","expanded","cachedNode","childrenNodes","$nestedNodeContainer","childNodesByChildrenKeys","firstChild","expandedEventName","itemsContainer","$treeviewItem","iconClass","$treeViewItem","expandIcon","collapseIcon","$expandIcon","$collapseIcon","isNodeExpanded","isHiddenNode","$childExpandIcons","$childCollapseIcons","nodeContainerExists","completionCallback","actualNodeData","keyOfRootItem","fullData","nodeHeight","hasNewItems","$toggleItem","selectAllText","$checkbox","checkbox","selectedNodesKeys","selectionRequired","isSingleMode","isAllSelected","needFireSelectAllChanged","nodeSelection","selectAllCheckbox","$parentNode","parentValue","pointerDownEventNamespace","nodeSelector","isSelectAllItem","$nodes","$prevItem","prevItemElement","nextItemElement","$firstItem","$lastItem","$focusedNode","nodeElement","collapsedNode","expandingPromises","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","scrollDirection","relativeOffset","keysToExpand","resultCallback","callbacksByNodes","TreeViewSearch","rootNodes","isSearchMode","selectAllEnabled","COLUMN_CHOOSER_CLASS","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_LIST_CLASS","COLUMN_CHOOSER_PLAIN_CLASS","COLUMN_CHOOSER_DRAG_CLASS","COLUMN_CHOOSER_SELECT_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","COLUMN_OPTIONS_USED_IN_ITEMS","processItems","chooserColumns","isSelectMode","isRecursive","isRecursiveWithColumns","ColumnChooserController","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","$columnChooserButton","ColumnChooserView","columnChooserClass","columnChooserOptions","popupPosition","isGenericTheme","dxPopupOptions","isBandColumnsUsed","isDragMode","columnChooser","treeViewConfig","TreeView","isUpdatingSelection","addNodesToArray","flatNodesArray","changedColumns","onlyVisibleChanged","needUpdate","isParentColumnVisible","isColumnHidden","popupContainer","hiddenColumns","hintText","toolbarItem","isMoveColumnDisallowed","isColumnChooserVisible","columnChooserModule","createGroupFilter","createOffsetFilter","lastLevelOnly","filterElement","findGroupInfoByKey","groupsInfo","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","cleanGroupsInfo","calculateItemsCount","GroupingHelper$2","totalCountCorrection","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","currentParents","pathIndex","groupInfoData","oldGroups","getContinuationGroupCount","groupOffset","pageOffset","foreachExpandedGroups","updateGroups","processGroupItems","expandedInfo","isCustomLoading","isLastGroupExpanded","updateGroupInfoItem","isLastGroupLevel","updateGroupInfos","loadedGroupCount","remotePaging","isGroupExpanded","getTotalOffset","groupInfos","applyContinuationToGroupItem","expandedItemIndex","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","fillSkipTakeInExpandedInfo","currentGroupCount","currentGroupIndex","isDataDeferred","makeDataDeferred","loadGroupItems","loadExpandedGroups","loadLastLevelGroupItems","currentGroup","expandedFilters","expandedPath","dataGridCore","isPagingLocal","expandedItems","loadGroupTotalCount","isGrouping","dataErrors","GroupingHelperCore","skipChildrenTotalCount","childrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","isLastGroup","firstItem","lastItem","maxTakeCount","handleGroup","groupCountQuery","groupOffsetQuery","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","skipFirstItem","removeLastItemsCount","needRemoveFirstItem","offsetInfo","pathEquals","updateGroupOffsets","additionalGroupInfo","removeGroupLoadOption","sorts","createNotGroupFilter","getGroupCount","GroupingHelper","collapsedGroups","collapsedItemsCount","appendCollapsedPath","collapsedGroup","pathValue","groupedData","itemsCountCorrection","beginPageIndex","dataSourceItems","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_GROUP_PANEL_CONTAINER_CLASS","DATAGRID_GROUP_ROW_CLASS","dataSourceAdapterExtender","grouping","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","CollapsedGroupingHelper","ExpandedGroupingHelper","isExpand","GroupingDataControllerExtender","groupedColumns","onGroupingMenuItemClick","isGroupPanelVisible","allowDragging","canDrag","GroupingHeaderPanelExtender","isRendered","$groupPanel","$groupPanelItem","$toolbarElement","contextMenuEnabled","$groupedColumnElement","isGroupingAllowed","isColumnGrouped","groupingTexts","GroupingRowsViewExtender","expandMode","isGroupRowStateChanged","isExpandButtonClicked","allowCollapsing","columnHeadersViewExtender","MASTER_DETAIL_CELL_CLASS","MASTER_DETAIL_ROW_CLASS","initMasterDetail","dataMasterDetailExtenderMixin","expandIndex","isEnabledChanged","isAutoExpandAllChanged","$masterDetailRow","$detailElement","masterRowOptions","masterDataGrid","masterRowIndex","$tables","rowsNotEqual","tablesNotEqual","detailElementWidth","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","isEditRow","$detailCell","masterDetailModule","SPIN_CLASS","SPIN_BUTTON_CLASS","SPIN_HOLD_DELAY","NUMBER_BOX","POINTERUP_EVENT_NAME","POINTERCANCEL_EVENT_NAME","SpinButton","SPIN_CONTAINER_CLASS","SPIN_TOUCH_FRIENDLY_CLASS","SpinButtons","$spinContainer","$spinContainerChildren","pointerDownAction","$spinUp","$spinDown","isTouchFriendly","$spinButtons","spinUp","spinDown","FIREFOX_CONTROL_KEYS","FORCE_VALUECHANGE_EVENT_NAMESPACE","NumberBoxBase","isInputCharValid","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","forceValueChangeEvent","valueHasDigits","isValueIncomplete","isValueCorrect","isNumberMode","validityState","isValueValid","getRealSeparatorIndex","quoteBalance","separatorCount","getNthOccurrence","splitByIndex","adjustPercentValue","getCaretBoundaries","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","textBeforePosition","_reverseText","_getDigitPositionByIndex","digitIndex","_trimNonNumericCharsFromEnd","getCaretWithOffset","getCaretAfterFormat","formatted","isSeparatorBasedText","isSeparatorBasedString","realSeparatorOccurrenceIndex","pointPosition","newPointPosition","textParts","formattedParts","isCaretOnFloat","relativeIndex","digitsBefore","getCaretInBoundaries","formattedIntPart","positionFromEnd","digitsFromEnd","newPositionFromEnd","newPositionFromBegin","isCaretInBoundaries","boundaries","adjustedCaret","getCaretOffset","newText","previousBoundaries","newBoundaries","NUMBER_FORMATTER_NAMESPACE","MOVE_FORWARD","MOVE_BACKWARD","MINUS","MINUS_KEY","INPUT_EVENT","NUMPAD_DOT_KEY_CODE","CARET_TIMEOUT_DURATION","NumberBoxMask","shouldHandleEvent","nextCaret","isDecimalSeparatorNext","moveToFloat","normalizedText","enteredChar","isDeleteKey","isBackspaceKey","caretPosition","canDelete","shouldTriggerInputEvent","editedText","noDigits","valueAfterRemoving","noEscapedFormat","formatOption","isCustomParser","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","customFormatter","isLDMLPattern","isExponentialFormat","shouldUseFormatAsIs","getLDMLFormat","_sign","excludeComma","stubs","prefixStubs","postfixRegex","decoratorsRegex","stub","maxPrecision","strValue","isTextSelected","isWholeTextSelected","isDecimalPointRestricted","isUselessCharRestricted","textWithoutStubs","parsedValueSign","parsedValueWithSign","pointIndex","floatLength","isPrecisionInRange","endsWithZero","isNumberType","isSpecialChar","isMinusKey","dxDblClickEvent","escapedDecimalSeparator","regExpString","stubRegExp","currentFormat","realSeparatorIndex","floatPart","minPrecision","preserveSelectedText","currentText","caretInBoundaries","isMinusPressed","textWithoutMinus","wasMinusRemoved","textWasChanged","clearedText","RADIO_BUTTON_CLASS","RADIO_BUTTON_ICON_CLASS","RADIO_BUTTON_ICON_DOT_CLASS","RADIO_BUTTON_CHECKED_CLASS","RADIO_BUTTON_ICON_CHECKED_CLASS","RadioButton","LIST_EDIT_DECORATOR","SWIPE_START_EVENT_NAME","swipeEventStart","SWIPE_UPDATE_EVENT_NAME","swipeEventSwipe","SWIPE_END_EVENT_NAME","EditDecorator","swipeConfig","register","decoratorClass","decoratorsRegistry","decoratorConfig","SELECT_DECORATOR_ENABLED_CLASS","SELECT_DECORATOR_SELECT_ALL_CLASS","SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS","SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS","SELECT_CHECKBOX_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CLASS","FOCUSED_STATE_CLASS","registerDecorator","$control","currentFocusedIndex","moveFocusUp","moveFocusDown","$selectAll","lastItemIndex","isFocusOutOfList","hasSelectAllItem","downArrowHandler","isSelectedAll","DataExpressionMixin","dataSourceKey","isObjectType","unwrapObservable","valueKey1","valueKey2","valueExpr","isValueExprField","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","LIST_ITEM_BEFORE_BAG_CLASS","LIST_ITEM_AFTER_BAG_CLASS","DECORATOR_BEFORE_BAG_CREATE_METHOD","DECORATOR_AFTER_BAG_CREATE_METHOD","DECORATOR_MODIFY_ELEMENT_METHOD","DECORATOR_AFTER_RENDER_METHOD","DECORATOR_GET_EXCLUDED_SELECTORS_METHOD","EditProvider","decorator","optionEnabled","decoratorType","decoratorSubType","subType","foundDecorator","$beforeBags","$afterBags","containerClass","$collector","decorators","excludedSelectors","SELECTION_SHIFT","SELECTION_MASK","combineIndex","splitIndex","combinedIndex","GroupedEditStrategy","itemGroup","plainItems","groupItemByKeyMap","getItemMeta","itemMeta","groupKey","selectedGroup","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","firstIndex","secondIndex","LIST_ITEM_SELECTED_CLASS","LIST_ITEM_RESPONSE_WAIT_CLASS","ListEdit","moveFocusedItem","moveUp","editStrategy","isLastIndexFocused","nextItemIndex","editProvider","isInternalMoving","privateKey","localizationMessage","_device","handledByEditProvider","changeData","flatIndex","deletingElementIndex","nextFocusedItem","ListSearch","DROP_DOWN_EDITOR_BUTTON_CLASS","DROP_DOWN_EDITOR_BUTTON_VISIBLE","BUTTON_MESSAGE","getElementWidth","getSizeValue","DROP_DOWN_EDITOR_CLASS","DROP_DOWN_EDITOR_INPUT_WRAPPER","DROP_DOWN_EDITOR_BUTTON_ICON","DROP_DOWN_EDITOR_OVERLAY","DROP_DOWN_EDITOR_OVERLAY_FLIPPED","DROP_DOWN_EDITOR_ACTIVE","DROP_DOWN_EDITOR_FIELD_CLICKABLE","DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER","isIOs","DropDownEditor","$focusableElement","DropDownButton","fieldTemplate","hasFieldTemplate","$templateWrapper","currentRenderContext","isRenderedInRoot","$inputWrapper","openOnFieldClick","isNewTargetOutside","popupWrapper","isTargetOutsidePopup","ignoreEditable","inputElement","arias","popupConfig","moveBackward","moveForward","onPopupInitialized","popupWidth","$popupOverlayContent","isOverlayFlipped","shouldIndentForLabel","myTop","popupTop","dropDownButton","$dropDownButton","isInputClicked","isDropDownButtonClicked","buttonsConfig","buttonsLocation","resultConfig","optionsKeys","DROPDOWNLIST_POPUP_WRAPPER_CLASS","SEARCH_EVENT","SEARCH_MODES","useCompositionEvents","DropDownList","availableItems","customContainer","$containerWithParents","listFocusedItemId","isElementOnDom","activedescendant","normalizedSearchMode","canListHaveFocus","$list","dataSourceProvided","isMinSearchLengthExceeded","shouldOpenPopup","resultAmount","currentPageIndex","needRepaint","$customBoundaryContainer","submitValue","DISABLED_STATE_SELECTOR","SELECTBOX_CLASS","SELECTBOX_POPUP_CLASS","SELECTBOX_CONTAINER_CLASS","SELECTBOX_POPUP_WRAPPER_CLASS","SelectBox","clearSelectBox","searchIfNeeded","isOpened","inputText","isCustomText","isSearchEnabled","acceptCustomValue","$listItems","isPaginate","dataSourceIsLoaded","hasPages","isLastPage","isLastItem","isUnknownItem","addedItem","showDataImmediately","initialSelectedItem","saveEditingValue","newSelectedItem","isOverlayTarget","shouldCancelSearch","isPopupVisible","selectedItemText","shouldRestoreValue","$listFocused","actionResult","currentSearchLength","inputHasSelection","isLastSymbolSelected","valueLength","DX_SWIPEABLE","SWIPEABLE_CLASS","ACTION_TO_EVENT_MAP","Swipeable","NAME","CalendarSelectionStrategy","isLessThanMin","isBiggerThanMax","dates","selectWeekOnClick","CalendarMultiSelectionStrategy","selectedValue","alreadySelectedIndex","rowDates","selectedDates","CALENDAR_NAVIGATOR_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS","CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS","CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS","CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS","CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS","BUTTON_TEXT_CLASS","Navigator","$prevButton","viewCaptionTexts","captionText","$caption","buttonPrefix","DAY_INTERVAL","CalendarRangeSelectionStrategy","_allowChangeSelectionOrder","_currentSelection","viewsCount","isAdditionalViewDate","firstDateInViews","lastDateInViews","rangeStartDate","rangeEndDate","isMaxZoomLevel","skipHoveredRange","CalendarSingleSelectionStrategy","CALENDAR_OTHER_VIEW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_CELL_START_CLASS","CALENDAR_CELL_END_CLASS","CALENDAR_CELL_START_IN_ROW_CLASS","CALENDAR_CELL_END_IN_ROW_CLASS","CALENDAR_WEEK_NUMBER_CELL_CLASS","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_TODAY_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CELL_IN_RANGE_CLASS","CALENDAR_CELL_RANGE_HOVER_CLASS","CALENDAR_CELL_RANGE_HOVER_START_CLASS","CALENDAR_CELL_RANGE_HOVER_END_CLASS","CALENDAR_RANGE_START_DATE_CLASS","CALENDAR_RANGE_END_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","NOT_WEEK_CELL_SELECTOR","CALENDAR_DXCLICK_EVENT_NAME","CALENDAR_DXHOVERSTART_EVENT_NAME","CALENDAR_DATE_VALUE_KEY","BaseView","localizedWidgetName","rowData","colIndex","colCount","cellDate","coreDateUtils","prevCellDate","cellTemplate","isDateCell","firstDateInRow","lastDateInRow","disabledDates","contouredDate","$oldContouredCell","$newContouredCell","allowValueSelection","hoveredRange","CALENDAR_OTHER_MONTH_CLASS","CALENDAR_WEEK_SELECTION_CLASS","Views","$headerRow","$header","fullCaption","abbrCaption","$weekNumberHeaderCell","showWeekNumbers","weekNumberRule","daysInWeek","firstDay","firstMonthDayOffset","isDisabledDate","foundDate","firstYearInDecade","decade","minDecade","maxDecade","firstDecadeInCentury","CALENDAR_CLASS","CALENDAR_BODY_CLASS","CALENDAR_FOOTER_CLASS","CALENDAR_TODAY_BUTTON_CLASS","CALENDAR_HAS_FOOTER_CLASS","CALENDAR_VIEWS_WRAPPER_CLASS","CALENDAR_VIEW_CLASS","CALENDAR_MULTIVIEW_CLASS","CALENDAR_RANGE_CLASS","GESTURE_COVER_CLASS","ANIMATION_DURATION_SHOW_VIEW","POP_ANIMATION_FROM","POP_ANIMATION_TO","CALENDAR_INPUT_STANDARD_PATTERN","CALENDAR_DXHOVEREND_EVENT_NAME","hoverEndEventName","LEVEL_COMPARE_MAP","ZOOM_LEVEL","SELECTION_STRATEGIES","CalendarMultipleSelectionStrategy","Calendar","zoomLevel","cellElement","serializedValue","reverse","baseDate","isDateForwardInNeighborView","isDateForwardInRange","dateForward","isViewDisabled","isCurrentDateAvailable","isDateForwardAvailable","isDateBackwardAvailable","isDateForwardInStartView","isDateBackwardInStartView","dateBackward","minZoomLevel","maxZoomLevel","_rangeMin","_rangeMax","zoomCorrection","yearOffset","monthOffset","currentDay","lastDay","beforeDate","afterDate","specificView","$view","rtlCorrection","nextView","newCurrentDate","additionalViewActive","shouldDoubleOffset","moveOffset","isAdditionalViewActive","isMultiView","additionalView","additionalViewCaption","showTodayButton","$todayButton","newView","offsetSign","endPosition","viewsWrapperPosition","viewOffset","viewToCreateKey","viewToRemoveKey","viewBeforeCreateKey","viewAfterRemoveKey","destinationDate","dateByOffset","captionButtonText","localizedPrevButtonLabel","localizedCaptionLabel","localizedNextButtonLabel","ariaId","DateBoxStrategy","dateBox","popup","TODAY_BUTTON_CLASS","CalendarStrategy","homeEndHandler","viewValue","lastActionElement","shouldCloseDropDown","isButtonsLocationDefault","calendarOptions","useButtons","shouldRenderTodayButton","todayButton","BOX_CLASS","BOX_FLEX_CLASS","BOX_ITEM_CLASS","BOX_ITEM_DATA_KEY","SHRINK","MINSIZE_MAP","MAXSIZE_MAP","FLEX_JUSTIFY_CONTENT_MAP","FLEX_ALIGN_ITEMS_MAP","FLEX_DIRECTION_MAP","setFlexProp","cssName","styleExpr","BoxItem","LayoutStrategy","crossAlign","flexPropPrefix","itemContent","$itemNode","boxConfig","DATE_COMPONENTS","TIME_COMPONENTS","ONE_MINUTE","ONE_DAY","ONE_YEAR","getStringFormat","standardPattern","formatInfo","componentInfo","captionArray","longestIndex","longestCaptionLength","longestDate","formatDate","TIMEVIEW_CLASS","TIMEVIEW_CLOCK_CLASS","TIMEVIEW_FIELD_CLASS","TIMEVIEW_HOURARROW_CLASS","TIMEVIEW_TIME_SEPARATOR_CLASS","TIMEVIEW_FORMAT12_CLASS","TIMEVIEW_FORMAT12_AM","TIMEVIEW_FORMAT12_PM","TIMEVIEW_MINUTEARROW_CLASS","rotateArrow","$arrow","cssRotate","TimeView","$box","hourArrowAngle","minuteArrowAngle","is12HourFormat","NumberBox","newHours","maxHoursValue","newMinutes","isPM","SHRINK_VIEW_SCREEN_WIDTH","DATEBOX_ADAPTIVITY_MODE_CLASS","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","viewDate","isAdaptiveMode","currentAdaptiveMode","preventDefaultValue","uiDateUtils","calendarPopupConfig","ScrollDirection","convertToLocation","DATEVIEW_ROLLER_CLASS","DATEVIEW_ROLLER_ACTIVE_CLASS","DATEVIEW_ROLLER_CURRENT_CLASS","DATEVIEW_ROLLER_ITEM_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS","DateViewRoller","currentSelectedIndex","locationTop","currentSelectedIndexPosition","dy","newSelectedIndex","fitIndex","DATEVIEW_CLASS","DATEVIEW_COMPACT_CLASS","DATEVIEW_WRAPPER_CLASS","DATEVIEW_ROLLER_CONTAINER_CLASS","TYPE","ROLLER_TYPE","DateView","previousFormat","$roller","roller","valueRange","curDate","currentRoller","activeRoller","correctIndex","rollerValue","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","DateViewStrategy","DATE_FORMAT","BOUNDARY_VALUES","ListStrategy","dateIndex","rangeDuration","rangeItems","boundaryValue","dropDownOptionsHeight","popupHeight","DATEBOX_CLASS","DX_AUTO_WIDTH_CLASS","DX_CLEAR_BUTTON_CLASS","DATEBOX_WRAPPER_CLASS","DROPDOWNEDITOR_OVERLAY_CLASS","PICKER_TYPE","STRATEGY_NAME","STRATEGY_CLASSES","Native","CalendarWithTime","DateBox","pickerType","isMozillaOnAndroid","isNativePickerType","showDropDownButton","isTime","clearButtonWidth","longestElementDimensions","curWidth","shouldHideValidationIcon","clearButtonElement","longestValue","$longestValueElement","isPaddingStored","storedPadding","rightPadding","leftPadding","necessaryWidth","classPostfixes","isCustomValueDisabled","submitFormat","displayedText","parsedText","isDateInRange","validationMessage","oldTime","newTime","oldText","monthGetter","monthSetter","monthLimits","getLimits","newDay","PATTERN_GETTERS","lastDayInMonth","currentYear","maxLimitLength","getPatternGetter","renderDateParts","sections","forcedPattern","getDatePartIndexByPosition","caretInGroup","FORWARD","BACKWARD","DateBoxMask","DateBoxBase","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","isNotDeletingInCalendar","originalValue","lockOtherParts","activePartPattern","isAmPmPartActive","indexOfCurrentValue","oldInputValue","isBackwardDeletion","isForwardDeletion","formatLength","isShortFormat","maxSearchLength","isLengthExceeded","isValueOverflowed","startString","endLimit","quantifierRegexp","convertedSource","sourcePart","isBoundaryIndex","limitFunction","zeroes","limitBase","limitClosest","shouldFireChangeEvent","CHECKBOX_SIZE_CLASS","EDITOR_INLINE_BLOCK","getResultConfig","checkEnterBug","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","prepareDateBox","prepareTextBox","isSearching","prepareNumberBox","prepareBooleanEditor","prepareLookupEditor","prepareCheckBox","watchLookupDataSource","selectBox","onInitialized","stopWatch","displayGetter","_options$editorType","allowClearing","createEditorCore","$editorElement","defaultEnterKeyHandler","prepareCustomEditor","prepareEditor","prepareDefaultEditor","_prepareDefaultEditor","EditorFactoryMixin","CELL_MODIFIED_CLASS","CELL_INVALID_CLASS","FOCUSED_CELL_MODIFIED_CLASS","FOCUSED_CELL_INVALID_CLASS","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","DX_HIDDEN","ViewControllerWithMixin","$dataGridElement","rowSelector","focusedElementSelector","$focus","isHideBorder","$focusCell","rowsViewElement","isRowsView","isEditing","isFocusOverlay","elemCoord","isFocusedCellInvalid","isFocusedCellModified","focusOverlayPosition","skipValidator","editorFactoryModule","EditorFactory","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","DX_BUTTON_CLASSNAME","getApplyButtonConfig","getCancelButtonConfig","custom","getViewport","isMessageDefined","isMessageHtmlDefined","messageHtml","messageId","popupToolbarItems","popupInstance","$firstButton","buttonOptions","hide","isPortrait","ROW_SELECTED_CLASS","EDIT_FORM_CLASS","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","EDITING_POPUP_OPTION_NAME","EDITING_FORM_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","TARGET_COMPONENT_NAME","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","FIRST_NEW_ROW_POSITION","LAST_NEW_ROW_POSITION","PAGE_BOTTOM_NEW_ROW_POSITION","PAGE_TOP_NEW_ROW_POSITION","VIEWPORT_BOTTOM_NEW_ROW_POSITION","VIEWPORT_TOP_NEW_ROW_POSITION","EDIT_MODES","ROW_BASED_MODES","CELL_BASED_MODES","REQUIRED_EDITOR_LABELLEDBY_MODES","MODES_WITH_DELAYED_FOCUS","READONLY_CLASS","LINK_CLASS","LINK_ICON_CLASS","ROW_SELECTED","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","INSERT_INDEX","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","DATA_EDIT_DATA_UPDATE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_LINK_CLASS","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_CHANGES_OPTION_NAME","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","ROW_REMOVED","isRenovatedScrollable","EDIT_FORM_ITEM_CLASS","EDIT_POPUP_CLASS","EDIT_POPUP_FORM_CLASS","FOCUSABLE_ELEMENT_CLASS","BUTTON_CLASS","FORM_BUTTONS_CONTAINER_CLASS","EDIT_ROW","NEW_ROW_TEMP_KEY_PREFIX","GUID_LENGTH","createFailureHandler","isEditingCell","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","getEditingTexts","editingTexts","generateNewRowTempKey","isNewRowTempKey","getButtonIndex","getButtonName","getEditorType","forEachFormItems","EditingControllerImpl","editMode","needLabel","newRowPosition","needReset","internalData","editIndex","editingOptions","allowAction","buttonIndex","haveCustomButtons","oldRowIndexCorrection","oldRowIndex","isEditRowKeyDefined","isKeyEqual","isProcessedItems","isProcessedItem","insertInfo","loadedRowIndex","insertAfterOrBeforeKey","isInsert","generateDataValues","allItems","isViewportBottom","insertKey","maxInsertIndex","editItem","insertChange","lastPageIndex","oldEditRowIndex","insertIndex","initialOldEditRowIndex","editRowIndex","pageIndexToInsertRow","navigateToRowByKey","$firstCell","editColumnName","editColumn","columnName","editRowKey","preventRendering","repaintForm","buttonConfig","removeChange","oldColumn","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","$editCell","editColumnIndex","confirmDelete","confirmDeleteMessage","allowDeleting","confirmDeleteTitle","showDialogTitle","confirmResult","onSavingParams","dataChanges","oldData","changeCopy","doneDeferred","processIfBatch","hasSavedData","changesLength","refreshMode","isFullRefresh","isEditColumnVisible","useIcons","hasChanges","isEditRowDefined","isButtonDisabled","skipCurrentRow","rowKey","setCellValueResult","forceUpdateRow","isCustomSetCellValue","isCustomCalculateCellValue","changeOptions","elementContainer","changeParams","isRowMode","isRowEditing","editingStartOptions","allowUpdating","useLegacyColumnButtonTemplate","iconUtils.getImageSourceType","iconUtils.getImageContainer","localizationName","sortIndex","titleButtonTextByClassNames","buttonItems","allowEditAction","startEditAction","needCallback","modifiedValue","visibleEditRowIndex","cellModified","dataControllerEditingExtenderMixin","isParasiteChange","dataSourceKeys","newChanges","isEditNewItem","isRowRemoved","isRowInserted","isRowModified","isEditedCell","allowEditing","isShowEditorAlways","withoutSaveEditData","isEditForm","isEditableCell","excludedOptions","shouldInvalidate","editButtonItems","editingModule","editingControllerExtender","isPopupEditMode","allowCancelEditing","hasUpdateChanges","isRowEditMode","isVisibleInRowEditMode","$editingCell","editingRowBasedModule","RESPONSIVE_BOX_CLASS","SCREEN_SIZE_CLASS_PREFIX","HD_SCREEN_WIDTH","ResponsiveBox","currentScreen","currentScreenFactor","grid","screenItemsLength","filteredRows","sizeConfig","sizeConfigs","defaultSizeConfig","screenRegExp","screen","itemInfo","itemCol","itemRow","itemCell","locations","rowEnd","colEnd","boundRowEnd","boundColEnd","itemNode","rowsCount","colsCount","rootBox","rootItems","firstCellLocation","isItemRowSpanned","isItemColSpanned","crossDirection","crossStartIndex","crossSpan","crossIndex","lineCrossSpan","lineCrossEndIndex","crossEndIndex","defaultMinSize","forceRemoveRoot","$existingRoot","FIELD_BUTTON_ITEM_CLASS","renderButtonItem","rootElementCssClassList","createComponentCallback","convertAlignmentToTextAlign","convertAlignmentToJustifyContent","horizontalAlignment","verticalAlignment","FIELD_EMPTY_ITEM_CLASS","renderEmptyItem","DefaultAdapter","VALIDATOR_CLASS","VALIDATION_STATUS_PENDING","Validator","dxStandardEditor","isRequired","bypass","currentError","currentResult","complete","validatedAction","FORM_CLASS","FORM_GROUP_CLASS","FORM_GROUP_CAPTION_CLASS","FORM_FIELD_ITEM_COL_CLASS","FIELD_ITEM_CLASS","LAYOUT_MANAGER_ONE_COLUMN","FIELD_ITEM_LABEL_CONTENT_CLASS","FORM_LAYOUT_MANAGER_CLASS","FIELD_ITEM_LABEL_CLASS","FIELD_ITEM_CONTENT_CLASS","SINGLE_COLUMN_ITEM_CONTENT","ROOT_SIMPLE_ITEM_CLASS","FORM_GROUP_CONTENT_CLASS","FIELD_ITEM_CONTENT_HAS_GROUP_CLASS","FIELD_ITEM_CONTENT_HAS_TABS_CLASS","FORM_GROUP_WITH_CAPTION_CLASS","FIELD_ITEM_TAB_CLASS","GROUP_COL_COUNT_CLASS","GROUP_COL_COUNT_ATTR","FORM_VALIDATION_SUMMARY","FORM_UNDERLINED_CLASS","SIMPLE_ITEM_TYPE","EDITORS_WITH_ARRAY_VALUE","EDITORS_WITH_SPECIFIC_LABELS","EDITORS_WITHOUT_LABELS","convertToRenderFieldItemOptions","formOrLayoutManager","labelTemplate","formLabelLocation","requiredMessageTemplate","editorValue","canAssignUndefinedValueToEditor","editorValidationBoundary","showColonAfterLabel","managerLabelLocation","itemId","managerMarkOptions","onLabelTemplateRendered","_hasRequiredRuleInSet","isSimpleItem","helpID","labelOptions","_convertToLabelOptions","needRenderLabel","labelLocation","labelID","labelNeedBaselineAlign","_convertToEditorOptions","needRenderOptionalMarkAsHelpText","helpText","getLabelMarkText","showRequiredMark","requiredMark","showOptionalMark","optionalMark","convertToLabelMarkOptions","editorType","defaultEditorName","externalEditorOptions","editorInputId","formLabelMode","labelText","editorOptionsWithValue","useSpecificLabelOptions","hasRequiredRule","isEditorWithoutLabels","FIELD_ITEM_REQUIRED_MARK_CLASS","FIELD_ITEM_LABEL_LOCATION_CLASS","FIELD_ITEM_OPTIONAL_MARK_CLASS","FIELD_ITEM_LABEL_TEXT_CLASS","renderLabel","markOptions","labelTemplateData","$labelContainer","$labelContent","_renderLabelMark","markText","setLabelWidthByMaxLabelWidth","$targetContainer","labelsSelector","labelMarkOptions","FIELD_ITEM_LABEL_CONTENT_CLASS_Selector","$FIELD_ITEM_LABEL_CONTENT_CLASS_Items","FIELD_ITEM_LABEL_CONTENT_CLASS_Length","labelWidth","getLabelWidthByHTML","labelContent","FLEX_LAYOUT_CLASS","FIELD_ITEM_OPTIONAL_CLASS","FIELD_ITEM_REQUIRED_CLASS","FIELD_ITEM_CONTENT_WRAPPER_CLASS","FIELD_ITEM_CONTENT_LOCATION_CLASS","FIELD_ITEM_LABEL_ALIGN_CLASS","FIELD_ITEM_HELP_TEXT_CLASS","LABEL_VERTICAL_ALIGNMENT_CLASS","LABEL_HORIZONTAL_ALIGNMENT_CLASS","TOGGLE_CONTROLS_PADDING_CLASS","VALIDATION_TARGET_CLASS","renderFieldItem","$fieldEditorContainer","getTemplateData","isToggleControls","labelAlignment","isLabelAlignmentLeft","hasNotTemplate","isLabelOnTop","widgetInstance","$validationTarget","getValidationTarget","validationTargetInstance","tryGetValidationTargetInstance","subscribeWrapperInvalidClassToggle","$div","isItemHaveCustomLabel","itemName","validationRules","requiredMessage","$editorParent","wrapperClass","toggleInvalidClass","FormItemsRunTimeInfo","itemsRunTimeInfo","itemRunTimeInfo","storedItem","targetPath","targetItem","filteredKeys","FORM_EDITOR_BY_DEFAULT","LAYOUT_MANAGER_FIRST_ROW_CLASS","LAYOUT_MANAGER_LAST_ROW_CLASS","LAYOUT_MANAGER_FIRST_COL_CLASS","LAYOUT_MANAGER_LAST_COL_CLASS","LayoutManager","layoutData","initialData","allowIndeterminateState","nameParts","isUserItemsExist","customizeItem","processedItems","itemField","itemA","itemB","indexA","indexB","templatesInfo","layoutItems","itemsWithLabelTemplateCount","colCountByScreen","xsColCount","onLayoutChanged","isSingleColumnMode","itemRenderedCountInPreviousRows","itemCssClassList","isLastColumn","isLastRow","screenFactor","minColWidth","maxColCount","itemsMergedByCol","generatedItem","totalItemsWithLabelTemplate","editorInstance","formOrThis","fieldValue","formInstance","readOnlyState","hasEditorReadOnly","isChangeByForm","isAutoSize","newLayoutData","valueGetter","dataValue","isValueReferenceType","responsiveBox","VALIDATION_SUMMARY_CLASS","ValidationSummary","orderedItems","foundItems","itemsChanged","foundRule","foundItem","VALIDATION_ENGINE_CLASS","ValidationGroup","validatorContainer","summaryContainer","_translator","completeAction","MULTIVIEW_CLASS","MULTIVIEW_WRAPPER_CLASS","MULTIVIEW_ITEM_CONTAINER_CLASS","MULTIVIEW_ITEM_CLASS","MULTIVIEW_ITEM_HIDDEN_CLASS","MULTIVIEW_ITEM_DATA_KEY","MULTIVIEW_ANIMATION_DURATION","MultiView","selectedItemIndices","positionSign","$selectedItem","hasItemContent","animationDirection","indexDifference","isSwipePresent","directionSignVariable","firstAvailableIndex","lastAvailableIndex","swipeDirection","firstTrueIndex","lastTrueIndex","isFirstActive","isLastActive","$selectedElement","getScrollLeftMax","getScrollTopMax","isReachedLeft","scrollOffsetLeft","epsilon","isReachedRight","isReachedTop","scrollOffsetTop","isReachedBottom","pocketHeight","TABS_EXPANDED_CLASS","TABS_ITEM_BADGE_CLASS","TabsItem","TABS_CLASS","TABS_WRAPPER_CLASS","TABS_STRETCHED_CLASS","TABS_SCROLLABLE_CLASS","TABS_NAV_BUTTONS_CLASS","OVERFLOW_HIDDEN_CLASS","TABS_ITEM_CLASS","TABS_ITEM_SELECTED_CLASS","TABS_SCROLLING_ENABLED_CLASS","TABS_NAV_BUTTON_CLASS","TABS_LEFT_NAV_BUTTON_CLASS","TABS_RIGHT_NAV_BUTTON_CLASS","TABS_ITEM_TEXT_CLASS","TABS_ITEM_TEXT_SPAN_CLASS","TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS","STATE_DISABLED_CLASS","FOCUSED_DISABLED_NEXT_TAB_CLASS","FOCUSED_DISABLED_PREV_TAB_CLASS","TABS_ORIENTATION_CLASS","INDICATOR_POSITION_CLASS","TABS_ICON_POSITION_CLASS","TABS_STYLING_MODE_CLASS","TABS_ITEM_DATA_KEY","BUTTON_NEXT_ICON","BUTTON_PREV_ICON","FEEDBACK_HIDE_TIMEOUT","FEEDBACK_DURATION_INTERVAL","FEEDBACK_SCROLL_TIMEOUT","TAB_OFFSET","ORIENTATION","INDICATOR_POSITION","SCROLLABLE_DIRECTION","ICON_POSITION","STYLING_MODE","currentTheme","indicatorPosition","$tabTextSpan","$tabTextSpanPseudo","$iconElement","$tabItem","removeClasses","maxLeftOffset","isItemsSizeExceeded","$visibleItems","tabItemTotalWidth","isItemsWidthExceeded","itemsHeight","isItemsHeightExceeded","maxTabItemWidth","requireWidth","needStretchItems","scrollableDirection","$leftButton","$rightButton","holdAction","holdEventName","pointerUpEventName","pointerOutEventName","navButton","$navButton","_indicatorPosition","newClass","classMap","isNextDisabled","isPrevDisabled","prevItemIndex","nextFocusedIndex","shouldNextClassBeSetted","shouldPrevClassBeSetted","_indicatorPosition2","TabPanelItem","TABPANEL_CLASS","TABPANEL_TABS_CLASS","TABPANEL_TABS_ITEM_CLASS","TABPANEL_CONTAINER_CLASS","DISABLED_FOCUSED_TAB_CLASS","TABPANEL_TABS_POSITION_CLASS","TABS_POSITION","TABS_INDICATOR_POSITION_BY_TABS_POSITION","TABS_ORIENTATION","TabPanel","$tabs","tabs","tabItems","$activeTab","_tabsIndicatorPosition","tabsPosition","tabsIndicatorPosition","$value","$newItem","isTabsTarget","isMultiViewTarget","selectedTabContent","ItemOptionAction","createItemPathByIndex","isTabs","concatPaths","getTextWithoutSpaces","isEqualToDataFieldOrNameOrTitleOrCaption","getFullOptionName","getOptionNameFromFullName","tryGetTabPath","pathParts","resultPathParts","isFullPathContainsTabs","getItemPath","tabOrGroupItems","convertToLayoutManagerOptions","form","$formElement","formOptions","extendedLayoutManagerOptions","onFieldDataChanged","onContentReady","onDisposing","onFieldItemRendered","baseOptions","WidgetOptionItemOptionAction","TabOptionItemOptionAction","tabPanel","SimpleItemTemplateChangedAction","GroupItemTemplateChangedAction","preparedItem","TabsOptionItemOptionAction","ValidationRulesItemOptionAction","filterRequired","oldContainsRequired","newContainsRequired","CssClassItemOptionAction","tryCreateItemOptionAction","itemActionOptions","ITEM_OPTIONS_FOR_VALIDATION_UPDATING","Form","fieldItemClass","cssExcludeTabbedSelector","excludeTabbed","inOneColumn","applyLabelsOptions","cssColCountSelector","groupSelector","$rootSimpleItems","alignItemLabelsInAllGroups","$groups","groupsColIndex","groupColIndex","$groupsByCol","groupColCount","layoutManager","formRootElement","parentIsTabbedItem","currentPath","$tabPanel","tabPanelOptions","alignItemLabels","tryUpdateTabPanelInstance","$groupContent","nestedItemsRunTimeInfo","layoutManagerOptions","baseColCountByScreen","optionFullName","splitFullName","optionNameWithoutPath","simpleOptionName","itemAction","contentReadyHandler","tabPath","tabLayoutManager","endPartIndex","_itemPath","_layoutManager","formItems","layoutManagerItems","layoutItem","fieldParts","fieldPath","resultItem","subItemsField","resultPath","isItemWithSubItems","isGroupWithName","nameWithoutSpaces","pathNode","oldScreenSize","newScreenSize","isChanged","editorSelector","editorAction","isComplexData","editorsData","allowUpdateItems","firstFormItem","$editFormElements","hasEditRow","onlyInsertChanges","popupVisible","editForm","isMobileDevice","editPopupClass","popupOptions","$popupContainer","formTemplate","defaultAnimation","editPopup","popupOptionName","detailCellOptions","formTemplateOptions","validatorOptions","detailOptions","editFormOptions","userCustomizeItem","editFormItemClass","isCustomEditorType","baseEditFormOptions","$formContainer","isPopupForm","editFormRowIndex","isPopupEditing","oldEditForm","newEditForm","editingFormBasedModule","needCreateHandlers","$pointerDownTarget","isResizing","checkEditorPopup","$dropDownEditorOverlay","$componentElement","isEditorPopup","isAnotherComponent","isAddRowButton","isCellEditMode","isCurrentComponentElement","$targetCell","isEditColumnNameDefined","oldColumnIndex","coreResult","isEditByOptionChanged","isSaving","columnsCount","isNewRow","isPageChanged","needResetIndexes","isBatchMode","callBaseResult","needEditingButtons","editRow","showEditorAlways","isUpdateInCellMode","focusPreviousEditingCell","editingCellBasedModule","INVALIDATE_CLASS","REVERT_TOOLTIP_CLASS","INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ID","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","REVERT_BUTTON_CLASS","REVERT_BUTTON_ID","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","PADDING_BETWEEN_TOOLTIPS","FORM_BASED_MODES","COMMAND_TRANSPARENT","VALIDATION_STATUS","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","validationData","isObjectKeyHash","validationResults","brokenRulesMessages","brokenRule","isGroupExpandColumn","isVisibleColumn","isFull","completeList","validateGroup","requestIsDisabled","oldDataFromState","needCreateValidator","isCellOrBatchEditingAllowed","useDefaultValidator","originBypass","defaultAdapterBypass","flag","cellParams","stateRestored","currentCellValue","validatingEditingExtender","startInsertIndex","isNotCanceled","getIndexByChange","isInserted","invisibleColumns","invisibleColumnValidators","isCellVisible","disposeValidators","isFullValid","shouldResetValidationState","columnsWithValidatingEditors","validationState","currentValidator","isValidated","needValidation","isCellInvalid","getWidthOfVisibleCells","w1","w2","getBoundaryNonFixedColumnsInfo","fixedColumns","firstNonFixedColumnIndex","lastNonFixedColumnIndex","validatingEditorFactoryExtender","$tooltipElement","$overlayContainer","revertTooltipClass","tooltipOptions","$buttonElement","$nextFixedRowElement","$groupCellElement","isFixedColumns","isFormOrPopupEditMode","nextRowOptions","isOverlayVisible","isRevertButton","normalizedPosition","editorPopup","myPosition","atPosition","hasFixedColumns","errorMessageText","invalidMessageClass","$overlayElement","validationMessages","visibleTableWidth","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","$revertContent","contentOffset","revertContentOffset","validationDescriptionValues","showValidationMessage","errorMessages","inputDescriptionValues","shouldSetValidationAriaAttributes","isDetached","validatingDataControllerExtender","oldValidationStatus","newValidationStatus","rowIsModified","validationStatusChanged","cellIsMarkedAsInvalid","hasValidationRules","rowEditStateChanged","cellValidationStateChanged","validatingRowsViewExtender","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","validatingModule","needTwoPagesLoading","getBeginPageIndex","getEndPageIndex","fireChanged","changed","processDelayChanged","getViewportPageCount","preventPreload","realViewportSize","viewportSize","virtualItemsCount","itemSize","getPreloadPageCount","preloadEnabled","getPageIndexForLoad","dataOptions","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","loadCore","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","removeItemCount","VirtualDataLoader","newPageIndex","lastPageSize","maxPageIndex","defaultPageIndex","endPageIndex","pageIndexForLoad","delayDeferred","lastCacheLength","removeInvisiblePages","beginItemsCount","endItemsCount","subscribeToExternalScrollers","scrollChangedHandler","$scrollElement","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","widgetScrollStrategy","subscribeToScrollEvents","isDocument","eventsStrategy","topOffset","scrollMethod","getScrollElementParent","scrollTo","VirtualScrollController","isVirtual","viewportParams","loadedOffset","loadedItemCount","renderAsync","scrollingTimeout","viewportItemIndex","defaultItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","prevPosition","virtualContentSize","contentHeightLimit","currentItemIndex","isRefresh","hasKnownLastPage","topIndex","bottomIndex","maxGap","isScrollingBack","minGap","topMinGap","bottomMinGap","remainedItems","BOTTOM_LOAD_PANEL_CLASS","FREESPACE_CLASS","VIRTUAL_ROW_CLASS","LOAD_TIMEOUT","VISIBLE_PAGE_INDEX","PAGING_METHOD_NAMES","correctCount","isItemCountableFunc","isItemCountableByDataSource","updateItemIndices","updateLoading","proxyDataSourceAdapterMethod","virtualScrollController","removeEmptyRows","$emptyRows","newMode","loadPageCount","takeIsDefined","rowsScrollController","baseResult","rowPageSize","isSortingOperation","rowElement","allowedTopOffset","virtualRowsRendering","isItemCountable","isNextAfterLast","countableOnly","prevCountable","prevRowType","isPrevRowNew","wasCountableItem","newRows","itemCountable","isNextGroupItem","isNextDataItem","isPrevNewRowFirst","skipForCurrentPage","isNewRowInEmptyData","isLoadIndexGreaterStart","isLoadIndexLessEnd","needGroupOffset","firstLoadIndex","preloadCount","byLoadedPage","loadedPageIndex","loadedTake","topPreloadCount","bottomPreloadCount","skipWithPreload","loadingTake","viewPortItemIndex","loadedPageParams","pageIndexIsValid","checkLoading","viewportIsFilled","changedParams","currentLoadPageCount","lastRequiredItemCount","pageIndexNotChanged","allLoadedInAppendMode","isRepaintMode","pageIndexIncreased","viewportChanging","checkLoadedParamsOnly","viewportIsNotFilled","loadingItemsStarted","needToUpdateItems","noPendingChangesInEditing","currentTake","newTake","fullReload","masterDataGridUpdated","isNewVirtualMode","updateTimeout","resizeHandler","itemSizes","startRenderTime","$virtualRow","rowHeights","correctedRowHeights","viewportHeight","visibleRows","firstCountableItem","lastLoadIndex","isRender","rowHeight","$virtualRows","prevFixed","table","hasColumnLines","$columns","$virtualColumns","isExpandColumn","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","zeroTopPosition","isScrollTopChanged","hasScrolled","isValidScrollTarget","isVirtualRowRendering","hasBottomLoadPanel","needToThrow","scrollPos","virtualScrollingModule","WINDOW_HEIGHT_PERCENT","getElementMaxHeightByWindow","startLocation","elementOffset","actualOffset","offsetBottom","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","Submenu","hoverStartAction","containerOffset","vLocation","hLocation","rootOffset","rootWidth","rootHeight","submenuWidth","submenuHeight","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_ACTIVE_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","rootMenuElements","submenuElements","currentSubmenu","isMenuHorizontal","navigationAction","navOperation","$menuItems","$menuItemsContainer","$adaptiveElements","menuOptions","$hamburger","delayType","submenu","$submenuContainer","subMenu","$submenuTarget","$currentItem","targetSubmenu","cleanAllSubmenus","isOtherItem","selectedItemData","$prevSelectedItem","prevSelectedItemData","$menuAnchorItem","$submenuOverlayContent","submenus","submenuMouseLeaveName","hoverEventEnd","$border","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","mouseMoveEventName","isSelectionActive","eventArg","OPERATION_ICONS","OPERATION_DESCRIPTORS","FILTERING_TIMEOUT","CORRECT_FILTER_RANGE_OVERLAY_WIDTH","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","FILTER_RANGE_END_CLASS","MENU_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","FILTER_MENU","APPLY_BUTTON_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","ARIA_SEARCH_BOX","isOnClickApplyFilterMode","getEditorInstance","$editorContainer","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","formatOptions","getColumnSelectedFilterOperation","isValidFilterValue","isFilterRange","isRangeStart","normalizeFilterValue","columnFilterValue","updateFilterValue","normalizedValue","isBetween","$editorRangeElements","overlayInstance","filterRangeOverlayClass","$prevElement","accessibilityOptions","columnAriaLabel","lookupOptions","$filterRangeContent","isCellWasFocused","menu","editorFactoryController","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","filterRowOptions","operationDescriptions","availableFilterOperations","descriptionName","filterChanged","applyFilterViewController","editorDataSource","shouldUpdateFilter","applyFilterController","shouldSkip","ApplyFilterViewController","columnHeadersViewElement","columnsResizer","editing","filterRowModule","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","getSelectAllCheckBox","listComponent","updateListSelectAllState","selectAllCheckBox","updateHeaderFilterItemSelectionState","filterValuesMatch","isExcludeFilter","HeaderFilterView","Modules","fillSelectedItemKeys","isExclude","hasChildren","hasChildrenWithSelection","$columnElement","headerFilterMenu","headerFilterOptions","useDefaultSearchExpr","headerFilterDataSource","filterSearchExpr","needShowSelectAllCheckbox","onOptionChanged","oldSelected","filterValueIndex","isExcludeFilterType","generalHeaderFilter","specificHeaderFilter","generalDeprecated","specificDeprecated","allowHeaderFiltering","headerFilterMixin","$headerFilterIndicator","indicatorLabel","DATE_INTERVAL_FORMATS","ungroupUTCDates","isMonthPart","convertDataFromUTCToLocal","isUTCFormat","getFormatOptions","currentLevel","firstValueText","secondValue","secondValueText","HeaderFilterController","valueSelector","displaySelector","isLookup","cutoffLevel","_filter","convertUTCDates","origPostProcess","isGroupPanel","previousOnHidden","dxResizableInstance","headerFilterByColumn","isFilterRowAndHeaderFilterValuesChanged","isHeaderFilterValuesAndTypeChanged","shouldUpdateFilterIndicators","headerFilterModule","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","editorTemplate","conditionInfo","$editorStart","$editorEnd","getStartValue","getEndValue","getConfig","OPERATION_NAME","filterOperationsDictionary","filterOperation","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","isCondition","getGroupCriteria","setGroupCriteria","convertGroupToNewStructure","setGroupValue","getGroupMenuItem","availableGroups","groupValue","getGroupValue","getCriteriaOperation","getDefaultFilterOperations","containItems","entity","getFilterOperations","getCaptionByOperation","filterOperationDescriptions","getOperationFromAvailable","availableOperations","getCustomOperation","customOperations","filteredOperations","getAvailableOperations","filterOperations","isLookupField","customOperation","dataTypes","isOperationForbidden","getDefaultOperation","createCondition","updateConditionByOperation","removeItem","createEmptyGroup","isNegation","isNegationGroupOperation","groupOperation","getGroupOperationFromNegationOperation","addItem","getField","extendedFields","convertToInnerGroup","defaultGroupOperation","innerGroup","convertToInnerStructure","appendGroupOperationToGroup","convertToInnerCondition","conditionHasCustomOperation","appendGroupOperationToCriteria","getNormalizedFields","normalizedField","getConditionFilterExpression","filterExpression","getFilterExpression","_filterExpression","getNormalizedFilter","itemsForRemove","normalizedGroupValue","isValidCondition","getCurrentLookupValueText","getPrimitiveValueText","getArrayValueText","checkDefaultValue","getCurrentValueText","itemExists","pushItemAndCheckParent","originalItems","getParentIdFromItemDataField","generateCaptionByDataField","allowHierarchicalFields","getCaptionWithParents","getOperationValue","getMergedOperations","betweenCaption","betweenIndex","isMatchedCondition","addedFilterDataField","removeFieldConditionsFromFilter","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","syncFilters","getMatchedConditions","filterHasField","renderValueText","baseOperation","getFullText","parentText","div","fieldInfo","itemsDeferred","getSelectedItemsTexts","selectedItemsTexts","anyOf","noneOf","baseOp","baseFilter","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getHeaderFilterFromCondition","headerFilterCondition","filterType","hasArrayValue","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","updateFilterRowCondition","FilterSyncController","filterConditions","filterCondition","filteringColumns","filterRow","filterBuilderCustomOperations","filterSyncEnabledValue","currentColumnForHeaderFilter","currentColumnForFilterRow","needRemoveCurrentColumnFilter","calculatedFilterValue","filterSyncModule","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_IMAGE_ADD_CLASS","FILTER_BUILDER_IMAGE_REMOVE_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","ENTER_KEY","ESCAPE_KEY","OPERATORS","FilterBuilder","disableInvalidateForValue","groupCriteria","innerCriteria","$groupItem","newGroup","newCondition","groupOperations","groupMenuItem","$operationButton","removeMenu","treeViewElement","treeView","$valueButton","getFullCaption","$fieldButton","isSingleChild","groupOperationDescriptions","$removeButton","addGroupHandler","addConditionHandler","maxGroupLevel","areValuesDifferent","isComposing","hasCompositionJustEnded","documentKeyUpHandler","closeEditorFunc","documentClickHandler","createValueText","closeEditor","$popup","FilterBuilderView","$filterBuilderContainer","filterBuilderModule","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","isColumnsDefined","$leftContainer","$filterElement","$textElement","$checkElement","$removeButtonElement","filterText","customizeText","customText","clearFilterValue","tabindex","fieldText","operationText","hasCustomOperation","gridUtils","isInnerGroup","groupText","filterPanelModule","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","allowSearch","searchVisibleColumnsOnly","onQueryDone","searchPanelOptions","$search","$searchPanel","isCaseSensitive","stringNormalizer","normalizedSearchText","resultTextNodes","$contents","$textNode","$searchTextSpan","firstContentElement","isEquals","textNodes","textNode","searchModule","GridPagerWrapper","pageIndexChanged","pageSizeChanged","_getElementComputedSt","getElementContentWidth","getElementMinWidth","contentAttributes","infoTextRef","infoTextVisible","isLargeDisplayMode","pageSizesRef","pagesRef","parentRef","Content","calculateLargeDisplayMode","pageSizesWidth","pagesWidth","parentWidth","calculateInfoTextVisible","infoWidth","minimalWidth","getElementsWidth","pageSizes","pages","pagesHtmlWidth","ResizableContainerProps","ResizableContainer","displayMode","gridCompatibility","infoText","lightModeEnabled","maxPagesCount","pageIndexChange","pageSizeChange","pagesCountText","pagesNavigatorVisible","showInfo","showNavigationButtons","showPageSizes","currentElementsWidth","BasePagerProps","PagerProps","InternalPagerProps","PAGER_INFO_CLASS","InfoTextPropsType","InfoText","_this$props$infoText","KeyboardActionContext","LightButtonProps","LightButton","PAGER_CLASS","LIGHT_MODE_CLASS","PAGER_PAGES_CLASS","PAGER_PAGE_INDEXES_CLASS","PAGER_PAGE_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_SELECTED_PAGE_SIZE_CLASS","FIRST_CHILD_CLASS","PageProps","Page","PAGER_PAGE_SEPARATOR_CLASS","PagesMarkup","pageProps","PAGES_LIMITER","getDelimiterType","slidingWindowSize","createPageIndexesBySlidingWindowIndexes","slidingWindowIndexes","pageIndexes","indexesForReuse","createPageIndexes","PagesLargePropsType","PagesLarge","slidingWindowState","currentPageCount","lastPageIsFartherThanWindow","pageIndexExistInIndexes","_createPageIndexes","createPage","pagerProps","rtlPageIndexes","EditorStateProps","EditorLabelProps","DEFAULT_VALUE","LegacyNumberBox","NumberBoxProps","NumberBoxPropsType","oneDigitWidth","calculateValuesFittedWidth","PAGER_INFO_TEXT_CLASS","PAGER_PAGE_INDEX_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGES_COUNT_CLASS","pageIndexRef","selectLastPageIndex","PagerSmallProps","PagerSmallPropsType","PagesSmall","_this$pageIndexRef$cu","_this$props$pagesCoun","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_BUTTON_DISABLE_CLASS","getNextButtonLabel","getPrevButtonLabel","reverseDirections","nextButtonProps","prevButtonProps","renderNextButton","renderPrevButton","getIncrement","PageIndexSelectorProps","PageIndexSelectorPropsType","PageIndexSelector","rtlAwareDirection","canNavigate","LegacySelectBox","SelectBoxProps","SelectBoxPropsType","PageSizeSmallProps","PageSizeSmallPropsType","PageSizeSmall","pageSizesText","PageSizeLargePropsType","PageSizeLarge","processedPageSize","htmlRef","normalizedPageSizes","getAllText","PageSizeSelectorProps","PageSizeSelectorPropsType","PageSizeSelector","infoVisible","pageIndexSelectorVisible","pagesContainerVisibility","pagesContainerVisible","widgetRootElementRef","PagerContentProps","PagerContent","_this$props$onKeyDown","fakePagerInstance","_registerKeyboardAction","_this$props2","newPageSize","_this$props$pageSize$","Pager","PagerComponent","MAX_PAGES_COUNT","getPageIndex","PagerView","pager","isPager","isPaging","isDataSource","isScrolling","pagerOptions","pagerVisible","scrolling","pagerModule","COLUMNS_SEPARATOR_CLASS","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","TRACKER_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","DRAGGING_COMMAND_CELL_CLASS","COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH","DRAGGING_DELTA","COLUMN_OPACITY","allowReordering","TrackerView","SeparatorView","ColumnsSeparatorView","columnsSeparatorTransparent","outerX","cursorName","BlockSeparatorView","toOptions","DraggingHeaderView","draggingPanel","boundingRect","columnElement","isCommandColumn","getEventData","dragOptions","moveDeltaX","moveDeltaY","newLeft","newTop","targetDraggingPanel","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","centerPosition","isNextColumnResizingMode","ColumnsResizerViewController","posY","headersRowHeight","isNextColumnMode","isRtlParentStyle","firstPointColumnIndex","nextColumn","currentX","columnsSeparatorWidth","parentOffsetLeft","isDragging","outerWidth","currentColumnIndex","posX","nextColumnIndex","currentHeader","nextHeader","resizingInfo","adaptColumnWidthByRatio","setColumnWidth","oldColumnWidth","cellWidth","nextCellWidth","nextMinWidth","needCorrectionNextCellWidth","allColumnsHaveWidth","totalPercent","hasScroll","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","TablePositionViewController","targetPoint","diffOffsetTop","columnsHeadersHeight","draggingHeaderView","isDraggingOrResizing","DraggingHeaderViewController","subscribeToEvents","draggingPanels","wasOnlyCommandColumns","isColumnAfterExpandColumn","isFirstExpandColumn","sourceColumnReorderingDisabled","otherColumnsReorderingDisabled","draggingHeader","nameDraggingPanel","blockSeparator","columnsSeparator","sourceIndex","sourceColumnElement","headersView","targetColumnIndex","hasTargetVisibleIndex","editorFactory","columnsResizingReorderingModule","compareByReference","lastArgs","createCacheFunc","firstArgs","firstResult","originFunc","compareFunc","lastResult","argsEquals","MEMOIZE_DEFAULT_OPTIONS","compareType","cachedFunc","ATTRIBUTES","FREESPACE_ROW_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","NON_FOCUSABLE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","COLUMN_HEADERS_VIEW","ROWS_VIEW","FUNCTIONAL_KEYS","isDragCell","getFocusableCellSelector","getCellToFocus","GridCoreKeyboardNavigationDom","DATAGRID_GROUP_FOOTER_CLASS","isGroupFooterRow","isNotFocusedRow","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","keyboardNavigationScrollableA11yExtender","needTranslateFocus","isFirstCellFixed","firstCellHasTabIndex","notFixedCellIsTarget","disableFocus","skipFocusEvent","isCellPositionDefined","isOriginalHandlerRequired","isNeedFocusable","hasScrollable","hasFixedTable","isCellsRendered","needFocusable","KeyboardNavigationController","accessibility.subscribeVisibilityChange","accessibility.unsubscribeVisibilityChange","isRelatedTargetInRowsView","isLink","$focusedCell","isCell","needSetFocusPosition","$rowsView","isFullUpdate","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","isGridEmpty","pointerEventName","clickSelector","needStopPropagation","accessibility.selectView","$event","directionCode","isEditingNavigationMode","allowNavigate","isUpArrow","isRowEditingInCurrentRow","isPageUp","pageStep","isFocusedRowElement","isFocusedSelectionCell","isFirstValidCell","isLastValidCell","focusedViewElement","allVisibleColumns","renderedVisibleColumns","localColumnIndex","horizontalScrollPosition","needToScroll","leftEdgePosition","positionOffset","$currentCell","currentCellWidth","rtlMultiplier","isEditingAllowed","nextCellInfo","_isDataRow","$lastInteractiveElement","needExpandGroupRow","needExpandMasterDetailRow","needExpandAdaptiveRow","isNotContinuation","allowEditingOnEnterKey","enterKeyDirection","isShift","searchTextEditor","keyCode","isCellValid","$nextCell","isVerticalDirection","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","isEditor","activeElementSelector","focusedRowEnabled","isHighlighted","$focusedView","isRowFocusType","focusedView","isRowFocus","isRenderView","$focusedElementInsideCell","isFocusedElementDefined","isBatchEditMode","cellEditModeHasChanges","isNewRowBatchEditMode","visibleColumnsCount","lastVisibleIndex","hasValidCells","checkingPosition","visibleColumnCount","isFullRowFocus","isShowWhenGrouped","isDataCell","rowItems","focusedCellPosition","includeCommandCells","newFocusedCellPosition","isLastCellOnDirection","visibleColumnIndex","editResult","isEditResultDeferred","isFastEditingStarted","editResultDeferred","waitTemplatesDeferred","$inputElement","inputEvent","$widgetContainer","inputCurrentValue","fireRowEvent","prevColumnIndex","prevRowIndex","focusedRowKey","localRowIndex","$newFocusedRow","newRowIndex","prevFocusedRowIndex","loadingOperationTypes","loadingOperations","focusedRowIndex","$editForm","$masterDetailCell","_$cell","isCanceled","isKeyboardEnabled","needTriggerPointerEventHandler","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","hasInsertsOrRemoves","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","keyboardNavigation","isFilterCell","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","keyboardNavigationModule","depthFirstSearch","isCount","normalizeAggregate","aggregate","skipEmptyValues","AggregateCalculator","aggregates","seedFn","stepFn","finalizeFn","innerNode","aggregateIndex","fin","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_FOOTER_ROW_CLASS","DATAGRID_CELL_DISABLED","DATAGRID_GROUP_FOOTER_ROW_TYPE","DATAGRID_TOTAL_FOOTER_ROW_TYPE","renderSummaryCell","$summaryItems","getSummaryCellOptions","getGroupAggregates","recalculateWhileEditing","forEachGroup","applyAddedData","insertedData","applyRemovedData","removedData","updatedData","updatedItems","sortGroupsBySummaryCore","sortByGroups","sortedItems","sortGroupsBySummary","calculateAggregates","calculator","FooterView","needUpdateScrollLeft","totalItem","$newTable","$newRow","summaryGetter","sortByGroupsInfo","groupedItems","itemsPath","hasOperations","totalAggregates","afterGroupColumnIndex","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","showInColumn","valueFormat","summaryTotalItems","footerItems","oldSummaryCells","summaryCell","calculateCustomSummary","commonSkipEmptyValues","calculateCellValue","totalValue","summaryItemIndex","summaryType","sortByGroupSummaryInfo","groupSummaryItems","currentRemoteOperations","totalSummaryItems","groupAggregates","summaryItemName","groupCellColSpan","alignByColumnCellCount","$groupCell","FIRST_CELL_CLASS","LAST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","FIXED_COLUMNS_CLASS","POINTER_EVENTS_NONE_CLASS","getTransparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","columnIndicesArray","transparentOffset","rowTypes","colIdx","fixedTableElement","hasSummary","needUpdateColspan","$fixedTable","$fixedDataRows","needPartialUpdate","fixedCorrection","fixedCells","columnCommand","prevFixedColumn","isRowAltStyle","isSelectAllCell","isEmptyCell","isGroupCell","alignByFixedColumnCellCount","headerRowIndex","fixedCellElements","fixedColumn","$transparentColumn","positionTransparentColumn","isColumnWidthsSynced","isColumnWidthChanged","needVisibleColumns","needSynchronizeRows","boundingClientRectElement","fixedRowHeights","$fixedRowElements","heightTable","heightFixedTable","fixedRowHeight","hWidth","columnFixingOptions","$transparentColumnElement","$fixedColumnElements","isHover","hasResizeTimeout","contentClass","scrollDelay","$nearestScrollable","shouldScroll","nearestScrollableInstance","nearestScrollableHasVerticalScrollbar","scrollableTop","scrollableHeight","isPreventDefault","contentFixedClass","$contentFixedElement","$fixedTableElement","needFocus","vWidth","$fixedContent","elasticScrollTop","$scrollableContent","$scrollableContainer","maxScrollTop","normalizeColumnIndicesByPoints","headerFixedTable","footerFixedTable","columnFixingModule","FOOTER_VIEW","COLUMN_VIEWS","ADAPTIVE_NAMESPACE","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","FORM_ITEM_MODIFIED","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_BUTTON_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_DETAIL_ROW_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","LAST_DATA_CELL_CLASS","ADAPTIVE_COLUMN_NAME","EXPAND_ARIA_NAME","COLLAPSE_ARIA_NAME","getColumnId","getDataCellElements","adaptiveCellTemplate","$adaptiveColumnButton","adaptiveColumnsController","focusCellHandler","AdaptiveColumnsController","isAdaptiveVisible","focusAction","isCellOrBatchEditMode","updateForm","renderFormTemplate","isItemEdited","percentWidths","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","contentColumns","widthOption","bestFitWidth","columnFitted","partialWidth","resultWidth","cssClassNameToRemove","$hiddenCommandCells","$hiddenCells","cancelClassAdding","currentVisibleIndex","$rowCells","cellIsInsideGroup","colSpan","groupCellLength","endGroupIndex","cssClassNameToAdd","hiddenQueue","rootElementWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","needHideColumn","columnBestFitWidth","alwaysExpanded","userFormOptions","defaultFormOptions","hideableColumns","columnsHasHidingPriority","labelName","$adaptiveCommand","isCellOrBatchMode","hidingColumnsQueueLength","hiddenColumnsLength","formItem","$adaptiveDetailItems","isClickable","exportExtender","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","$itemContents","oldExpandRowIndex","expandedKey","expandRowIndex","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","adaptiveController","oldHiddenColumns","hidingColumnsQueue","adaptivityModule","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","createColumnsInfo","newInfo","columnInfo","cellColspan","DEFAULT_COLUMN_WIDTH","baseView","_columns","getWidths","renderingThreshold","needColumnsChanged","visibleColumnsHash","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","leftFixedColumnCount","virtualColumnsModule","BUTTON_GROUP_WRAPPER_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_FIRST_ITEM_CLASS","BUTTON_GROUP_LAST_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","SHAPE_STANDARD_CLASS","BUTTON_GROUP_STYLING_MODE_CLASS","ButtonCollection","ButtonGroup","$buttons","DROP_DOWN_BUTTON_CLASS","DROP_DOWN_BUTTON_CONTENT","DROP_DOWN_BUTTON_ACTION_CLASS","DROP_DOWN_BUTTON_TOGGLE_CLASS","DROP_DOWN_BUTTON_HAS_ARROW_CLASS","DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS","DROP_DOWN_EDITOR_OVERLAY_CLASS","DX_BUTTON_CLASS","DX_BUTTON_TEXT_CLASS","DX_ICON_RIGHT_CLASS","$listContainer","storeKey","cachedResult","splitButton","isActionButton","isToggleButton","showArrowIcon","buttonTemplate","buttonContent","$firstIcon","$textContainer","$secondIcon","$buttonClicked","useSelectMode","elementAria","commonButtonAria","firstButtonAria","$buttonGroup","hasArrow","isPrimitiveItem","prepareItems","emptyCell","defaultSetter","cols","getItem","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_PDF_EXPORT_ICON","DataProvider","initialColumnWidthsByColumnIndex","selectedRowsOnly","columnStyles","getColumnsByAllRows","gridGroupSummaryItems","isExcelJS","correctedCellIndex","columnsRow","itemValues","correctCellIndex","isSummaryAlignByColumn","ExportController","currentHeaderRow","columnWidthsByColumnIndex","currentColspan","childColumns","childColumn","isTotal","estimatedItemsCount","itemsLength","sourceItems","beforeGroupFooterItems","groupFooterItems","summaryValues","groupColumnCount","hasOnExporting","columnsLastRowVisibleColumns","onExporting","callbackList","exportButton","toolbarButtonOptions","_widgetOptions","_index","exportOptions","texts","formatName","exportAllIcon","exportSelectedIcon","hasUnsavedChanges","isColumnLocationChanged","getSortFilterValue","getSelector","safeValue","UiGridCoreFocusUtils","ROW_FOCUSED_CLASS","TABLE_POSTFIX_CLASS","FocusController","setKeyByIndex","isVirtualScrolling","virtualItems","virtualItemsBegin","visibleRowsCount","visiblePagesCount","isFocusedRowKeyDefined","needFocusRow","isAutoNavigate","rowIndexByKey","isVirtualRowRenderingMode","triggerUpdateFocusedRow","currentFocusedRowIndex","$mainRow","isMainTable","$prevRowFocusedElement","focusedRow","$focusedRowTable","$firstRow","_rowsView","isRowElement","sortByKey","notSortedKeys","notSortedKey","isPartialUpdate","isPartialUpdateWithDeleting","prevRenderingPageIndex","renderingPageIndex","paging","pagingWithoutVirtualScrolling","isReload","isValidRowIndexByKey","isValidFocusedRowIndex","isSameRowIndex","groupFilter","useGroup","isRemoteSorting","booleanFilter","sortFilter","keyPart","rowIndexFromOption","currentScrollTop","focusModule","isRowClick","groupPath","isGroupKey","dataOffset","groupContinuationCount","currentPageOffset","DRAGGABLE","DRAG_EVENT_NAME","DRAGEND_EVENT_NAME","DRAG_ENTER_EVENT_NAME","dragEventEnter","DRAGEND_LEAVE_EVENT_NAME","dragEventLeave","POINTERDOWN_EVENT_NAME","KEYDOWN_EVENT_NAME","CLONE_CLASS","targetDraggable","sourceDraggable","getMousePosition","ScrollHelper","mousePosition","isScrollableFound","isTargetOverOverlayWrapper","isTargetOverOverlayContent","distanceToBorders","sensitivity","isScrollable","areaBoundingRect","maxSpeed","nextScrollPosition","_nextScrollPosition","dragMoveArgs","scrollableSize","ScrollAnimator","horizontalScrollHelper","verticalScrollHelper","Draggable","sourceEvent","dragElementOffset","$dragElement","isCloned","cursorOffset","normalizedCursorOffset","currentLocate","itemsSelector","allowMoveByClick","targetGroup","sourceGroup","$sourceElement","draggable","dragDirection","dragStartArgs","initialOffset","isFixedPosition","boundOffset","areaWidth","areaHeight","startOffset_left","startOffset_top","initialOffsetX","initialOffsetY","initScrollTop","initScrollLeft","allObjects","dragEndEventArgs","dropEventArgs","needRevertPosition","$sourceDraggableElement","$targetDraggableElement","firstWidgetElement","isTargetOverItself","isTargetOverNestedDraggable","dragCancelEventArgs","SORTABLE","PLACEHOLDER_CLASS","stopAnimation","getScrollableBoundary","paddingLeft","paddingTop","Sortable","sourceScrollableInfo","scrollProp","scrollBy","itemPoints","lastItemPoint","sourceElementSize","scrollSize","lastPointPosition","freeSize","$sortable","sortable","$targetDraggable","itemPoint","isSourceDraggable","allowDrop","cancelAdd","cancelRemove","cursorPosition","$placeholderContainer","draggableVisibleIndex","dropInsideItem","allowDropInsideItem","itemWidth","visibleItemElements","visibleItemCount","$draggableItem","needCorrectLeftPosition","needCorrectTopPosition","positionPropName","skipOffsetting","isAnotherDraggable","scrollableWidth","overflowLeft","overflowRight","$placeholderElement","$prevTargetItemElement","$targetItemElement","$targetItem","prevItem","isDragSource","$fromElement","clientRect","showPlaceholder","prevVisibleItemElement","isLastVerticalPosition","outerPlaceholderHeight","fromIndexOffset","prevToIndex","fullUpdate","prevPositions","animationConfig","createHandleTemplateFunc","addWidgetPrefix","GridCoreRowDraggingDom","rowDragging","isHandleColumnVisible","currentSortableName","anotherSortableName","togglePointerEventsStyle","rowsViewOffset","gridInstance","hasFixedSortable","offsetDiff","gridOptions","$dataGridContainer","rowDraggingModule","off","triggerHandler","__generator","verb","__values","__read","ar","RemovalLockerContext","generateID","DoubleKeyMap","innerMap","innerMap_1","innerMap_1_1","e_1_1","e_2_1","e_2","e_1","TemplateInstantiationModels","capitalizeFirstLetter","createHiddenNode","containerNodeName","defaultElement","TemplateWrapperComponent","templateFactory","onRemoved","removalListenerRequired","setRemovalListenerRequired","isRemovalLocked","removalLocker","hiddenNodeElement","removalListenerElement","onTemplateRemoved","events.off","DX_REMOVE_EVENT","events.on","hiddenNode","removalListener","__assign","instantiationModels","setInstantiationModels","updateContext","setUpdateContext","widgetId","templateFactories","subscribeOnRemoval","unsubscribeOnRemoval","unwrapElement","createMapKey","getRandomId","getRenderFunc","hostWidgetId","getTemplateFunction","createDXTemplates","factories","dxTemplates","clearInstantiationModels","updateTemplates","onUpdated","componentKey","factory","mergeNameParts","parseOptionName","isIE","trident","buildTemplates","optionsAccum","templatesAccum","buildNode","ignoreInitialValues","buildConfig","ValueType","findValueInObject","findValue","optionInfo","childCollection","compareTemplates","changesAccum","currentTemplatesOptions","currentTemplates","prevTemplatesOptions","prevTemplates","currentTemplate","prevTemplate","compareCollections","appendRemovedValues","getChanges","currentOptions","prevOptions","currentCollection","prevCollection","updatedCollection_1","__spreadArray","optionsManagers","guardTimeoutHandler","innerGuardTimeoutHandler","unscheduleGuards","scheduleGuards","optionManager","OptionsManager","subscribableOptions","independentEvents","dxtemplates","changedOptions","currentPropValue","valueDescriptor","valuesAreEqual","valuesAreEqualObjects","elementPropNames","classNamePropName","refPropName","isIgnoredProp","getRefElement","separateProps","defaultsProps","templateProps","knownTemplates","getClassName","React.PureComponent","requiredPropsCheck","PropTypes.string","ElementType","getElementInfo","parentExpectedChildren","reactElement","TemplateComp","elementDescriptor","name_1","isCollectionItem","expectation","getAnonymousTemplate","templateMeta","hasTranscludedContent","getNamedTemplate","processChildren","parentFullName","configCollections","configs","collectionItem","createConfigNode","configNode","separatedValues","childrenData","buildConfigTree","widgetDescriptor","ComponentBase","dxRemoveArgs","events.triggerHandler","updateFunc","elementProps","prevClassName","newClassName","ExtensionComponent","onMounted","NestedOption","stateChildren","childElementInfo","dxDataGrid","PropTypes.bool","PropTypes.object","PropTypes.number","PropTypes.oneOfType","PropTypes.oneOf","PropTypes.array","PropTypes.func","Animation","AsyncRule","At","BoundaryOffset","Change","ColCountByScreen","Collision","Column","ColumnChooser","ColumnChooserSearch","ColumnChooserSelection","ColumnFixing","ColumnFixingTexts","ColumnHeaderFilter","ColumnHeaderFilterSearch","ColumnLookup","CompareRule","CursorOffset","CustomOperation","CustomRule","DataGridHeaderFilter","DataGridHeaderFilterSearch","DataGridHeaderFilterTexts","DataGridSelection","Editing","EditingTexts","EmailRule","Export","ExportTexts","Field","FieldLookup","FilterBuilderPopup","FilterOperationDescriptions","FilterPanel","FilterPanelTexts","FilterRow","Format","FormItem","From","Grouping","GroupingTexts","GroupItem","GroupOperationDescriptions","GroupPanel","HeaderFilter","Hide","Item","KeyboardNavigation","Label","Lookup","MasterDetail","My","NumericRule","Offset","OperationDescriptions","Paging","PatternRule","Position","RangeRule","RemoteOperations","RequiredRule","RowDragging","Scrolling","Search","SearchPanel","Show","SortByGroupSummaryInfo","Sorting","StateStoring","StringLengthRule","Summary","SummaryTexts","Texts","To","ToolbarItem","TotalItem","ValidationRule","ValueFormat","dxDropDownButton","DropDownOptions","unwrapESModule","ajaxUtility","dataUtils","CUSTOM_STORE_OPTIONS","createStoreConfig","loadUrl","loadMethod","loadParams","isRawLoadMode","updateUrl","insertUrl","deleteUrl","onBeforeSend","onAjaxError","requiresKey","ajaxSettings","customSuccessHandler","thenable","sendCore","getErrorMessageFromXhr","filterByKey","loadOptionsToActionParams","normalizeSorting","isAdvancedGrouping","stringifyDatesInFilter","handleInsertUpdateSuccess","mime","isJSON","processLoadResponse","createLoadExtra","serializeKey","getResolveArgs","expandLoadResponse","zpad","builder","responseText","jsonObj","safeParseJSON","isNonEmptyString","Payees","payrollNumber","dataGrid","insertRow","removeRow","Deductions","Checks","dxButton","CheckMasterBatch","remoteDataSource","setRemoteDataSource","focusedRowPrNum","setFocusedRowPrNum","onFocusedRowChanging","refreshPayrolls","CheckPayrollIssues","issues","setIssues","getPayrollIssues","refreshIssues","MpwClientErrors","setErrors","getErrors","refreshErrors","CheckPayrollIssuesLog","issuesLog","setIssuesLog","getIssuesLog","refreshIssuesLog","PayrollStatusChanges","statusChanges","setStatusChanges","getPayrollStatusChanges","refreshStatusChanges","PayrollsInProcess","PayrollDetails","queryParams","deductions","setDeductions","checks","setChecks","getPayees","getDeductions","getChecks","refreshPayees","refreshDeductions","AddPayroll","inputData","setInputData","setOpen","setCalendars","handleCalendarChange","handleSwitchChange","handleSubmit","Payrolls","isPayrollFormVisible","setIsPayrollFormVisible","onItemClicked","openChange","showAddPayrollForm","addPayroll","payrollDetails","payrollStatuses","ProcessPowerGrid","payrolls","setPayrolls","handlePayrollChange","CreatePowerGrid","schemas","setSchemas","handleSchemaChange","PowerGrids","focusedRowId","setFocusedRowId","isProcessFormVisible","setIsProcessFormVisible","isCreateFormVisible","setIsCreateFormVisible","openCreateFormChange","openProcessFormChange","processPowerGrid","refreshPowerGrids","createPowerGrid","notesEditorOptions","PipMsgTypes","SuperAdminRoutes","PageCPAPortalClients","__vitePreload","PageCPAPortalProfile","PageCPAAddClient","PageCPAPortalSettings","PageCPAPortalSignup","PageCPAPortalOverview","PageCPAPortalReports","CpaRoutes","selectedCpaFirmId","PagePayrolls","PagePayrollsPowerImports","PagePayrollsPowerImportsDetail","PagePayrollsManualChecks","PagePayrollsManualCheck","PagePayroll","PagePayrollSummary","PageStartPayroll","PagePreferences","PagePreferencesLists","PagePreferencesNewList","PayrollRoutes","PageESSDashboard","PageESSPayHistory","PageESSPayHistoryDetail","PageESSProfile","PageESSDocument","PageESSTaxWithholdings","PageESSDirectDeposit","PageESSTimeKeeping","PageESSSetup","PagePosterElite","EssRoutes","PageDevextremeEmployees","DevextremeRoutes","LoadingScreen","showLoading","setShowLoading","LayoutMain","EmployeeForm","PageBrandsLogin","PageBrands2FA","PageConfirmEmail","PageConfirmPassword","PageFlowComplete","PageSelectCompanyContainer","Impersonate","PageFrillSso","PageDashboard","PageReports","PageReportsQB","PageReportsSectionPosted","PageReportsSection","PageReportsRunV2","PageReportsRunV2Section","PageLiveReports","PageReportsLive","SettingsMain","SettingsUsers","SettingsManageCPAPortal","SettingsNotifications","PageEmployeeDeckSettings","PageOnboarding","PageOnboardingNew","PageOnboardingSuccess","PageCustomReports","PageCustomReport","PageRestricted","TestReactErrorBoundaries","AuthorizePayroll","DebugView","PagePowerImports","PagePayrollFinancing","PageEmployees","PageNewEmployee","PageEmployeesOnboarding","PageEmployeesOnboardingDetails","PageMultiCompanyUsers","PageServices","PageEmployeeOnboarding","PageDesignGuidelines","RootDiv","Routes","sessionConum","messagingIframe","regexToReplace","Suspense","WrappedRoutes","redirectToLoginTimeoutId","redirectToLoginTimerClear","redirectToLoginTimerStart","locationPath","millisecondsTillExpiration","flattenObject","flattenObjectImpl","prefixedKey","createFormData","changePassword","changePasswordRequestSchema","axios.default","setUpPassword","setUpPasswordSchema","forgotPassword","forgotPasswordRequestSchema","login","loginRequestSchema","logoutImpersonate","logoutRequestSchema","getProfile","resendInviteEmail","resendInviteEmailRequestSchema","resetPassword","resetPasswordRequestSchema","switchProfile","switchProfileRequestSchema","twoFactorLoginWithOTP","twoFactorLoginRequestSchema","getCustomReports","addCustomReport","addCustomReportSchema","getCustomReport","runCustomReport","runCustomReportSchema","updateCustomReport","updateCustomReportSchema","deleteCustomReport","getPayCodes","addNewEmployeeAccount","addEmployeeAccountSchema","getEmployeeIdentificationInfo","updateEmployeeIdentificationDocuments","updateEmployeeIdentificationDocumentsBody","getOnboardingEmployee","empNum","getIdentificationForm","signIdentificationForm","signIdentificationFormBody","getOnboardingEmployeeIdentificationInfo","updateEmployeeIdentificationInfo","updateEmployeeIdDocumentsInfoSchema","getTaxForm","getEmployees","employeeListFilterSchema","skipPreNote","updateEmployeeTimeAndLabor","employeeTimeAndLaborSchema","getDivisions","getEmployeeJobDropdowns","createChecks","createChecksPayloadSchema","removeCheck","checkKey","updateChecksColumnSettings","payrollChecksColumnSettingsSchema","updateChecksTypeToDirectDeposit","updatePayrollSettings","payrollSettingsSchema","getTwoFactorAuthDetails","sendTwoFactorAuthCode","setUpTwoFactorAuthSchema","verifyTwoFactorAuthCode","verifyCodeSchema","useAccountApi","setProfile","myVar","dashboardOrDefaultPath","flow","newPath","profileType","onboardingCode","api.switchProfile","api.getProfile","RootLayout","snackbar","accountsApi","useAccountsApi","setInspectletProperties","setClarityProperties","setFillSSO","unregisterHistoryListener","isCompanyAuthenticated","isCpaUser","isEssUser","CheckboxIcon","CheckboxCheckedIcon","themeMap","oldTheme","payrollsTheme","withTheme","AlertTriangleIconComponent","AlertTriangleIcon","CheckCircleIconComponent","CheckCircleIcon","InfoCircleIconComponent","InfoCircleIcon","DialogTransitionComponent","DialogTransition","XCloseIconComponent","XCloseIcon","SnackbarCloseActionComponent","SnackbarCloseAction","AppProvider","messageDialogOptions","hideMessageDialog","messageToastOptions","isMessageDialogOpen","scripts","isToday","quarterOfYear","relativeTime","App","__publicField","beforeSendExample","SentryProvider","Sentry.init","Sentry.browserTracingIntegration","Sentry.replayIntegration","createRoot"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,484,485,486,487,488,489,531,542,543,549,550,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,629,630,631,632,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1159,1181,1182],"sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/@mui/utils/deepmerge/deepmerge.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/@mui/utils/formatMuiErrorMessage/formatMuiErrorMessage.js","../../node_modules/@mui/utils/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/@mui/utils/node_modules/react-is/index.js","../../node_modules/@mui/utils/getDisplayName/getDisplayName.js","../../node_modules/@mui/utils/ponyfillGlobal/ponyfillGlobal.js","../../node_modules/@mui/utils/capitalize/capitalize.js","../../node_modules/@mui/utils/createChainedFunction/createChainedFunction.js","../../node_modules/@mui/utils/debounce/debounce.js","../../node_modules/@mui/utils/deprecatedPropType/deprecatedPropType.js","../../node_modules/@mui/utils/isMuiElement/isMuiElement.js","../../node_modules/@mui/utils/ownerDocument/ownerDocument.js","../../node_modules/@mui/utils/ownerWindow/ownerWindow.js","../../node_modules/@mui/utils/requirePropFactory/requirePropFactory.js","../../node_modules/@mui/utils/setRef/setRef.js","../../node_modules/@mui/utils/useEnhancedEffect/useEnhancedEffect.js","../../node_modules/@mui/utils/useId/useId.js","../../node_modules/@mui/utils/unsupportedProp/unsupportedProp.js","../../node_modules/@mui/utils/useControlled/useControlled.js","../../node_modules/@mui/utils/useEventCallback/useEventCallback.js","../../node_modules/@mui/utils/useForkRef/useForkRef.js","../../node_modules/@mui/utils/useLazyRef/useLazyRef.js","../../node_modules/@mui/utils/useOnMount/useOnMount.js","../../node_modules/@mui/utils/useTimeout/useTimeout.js","../../node_modules/@mui/utils/useIsFocusVisible/useIsFocusVisible.js","../../node_modules/@mui/utils/getScrollbarSize/getScrollbarSize.js","../../node_modules/@mui/utils/scrollLeft/scrollLeft.js","../../node_modules/@mui/utils/resolveProps/resolveProps.js","../../node_modules/@mui/utils/composeClasses/composeClasses.js","../../node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.js","../../node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js","../../node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js","../../node_modules/@mui/utils/clamp/clamp.js","../../node_modules/@mui/x-license-pro/utils/licenseInfo.js","../../node_modules/@sentry/utils/build/esm/is.js","../../node_modules/@sentry/utils/build/esm/string.js","../../node_modules/@sentry/utils/build/esm/aggregate-errors.js","../../node_modules/@sentry/utils/build/esm/breadcrumb-log-level.js","../../node_modules/@sentry/utils/build/esm/version.js","../../node_modules/@sentry/utils/build/esm/worldwide.js","../../node_modules/@sentry/utils/build/esm/browser.js","../../node_modules/@sentry/utils/build/esm/debug-build.js","../../node_modules/@sentry/utils/build/esm/logger.js","../../node_modules/@sentry/utils/build/esm/dsn.js","../../node_modules/@sentry/utils/build/esm/error.js","../../node_modules/@sentry/utils/build/esm/object.js","../../node_modules/@sentry/utils/build/esm/stacktrace.js","../../node_modules/@sentry/utils/build/esm/instrument/handlers.js","../../node_modules/@sentry/utils/build/esm/instrument/console.js","../../node_modules/@sentry/utils/build/esm/supports.js","../../node_modules/@sentry/utils/build/esm/time.js","../../node_modules/@sentry/utils/build/esm/instrument/fetch.js","../../node_modules/@sentry/utils/build/esm/instrument/globalError.js","../../node_modules/@sentry/utils/build/esm/instrument/globalUnhandledRejection.js","../../node_modules/@sentry/utils/build/esm/env.js","../../node_modules/@sentry/utils/build/esm/node.js","../../node_modules/@sentry/utils/build/esm/isBrowser.js","../../node_modules/@sentry/utils/build/esm/memo.js","../../node_modules/@sentry/utils/build/esm/misc.js","../../node_modules/@sentry/utils/build/esm/normalize.js","../../node_modules/@sentry/utils/build/esm/syncpromise.js","../../node_modules/@sentry/utils/build/esm/promisebuffer.js","../../node_modules/@sentry/utils/build/esm/url.js","../../node_modules/@sentry/utils/build/esm/severity.js","../../node_modules/@sentry/utils/build/esm/baggage.js","../../node_modules/@sentry/utils/build/esm/tracing.js","../../node_modules/@sentry/utils/build/esm/envelope.js","../../node_modules/@sentry/utils/build/esm/clientreport.js","../../node_modules/@sentry/utils/build/esm/ratelimit.js","../../node_modules/@sentry/utils/build/esm/buildPolyfills/_nullishCoalesce.js","../../node_modules/@sentry/utils/build/esm/buildPolyfills/_optionalChain.js","../../node_modules/@sentry/utils/build/esm/propagationContext.js","../../node_modules/@sentry/utils/build/esm/vendor/supportsHistory.js","../../node_modules/@sentry/core/build/esm/debug-build.js","../../node_modules/@sentry/core/build/esm/carrier.js","../../node_modules/@sentry/core/build/esm/session.js","../../node_modules/@sentry/core/build/esm/utils/spanOnScope.js","../../node_modules/@sentry/core/build/esm/scope.js","../../node_modules/@sentry/core/build/esm/defaultScopes.js","../../node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","../../node_modules/@sentry/core/build/esm/asyncContext/index.js","../../node_modules/@sentry/core/build/esm/currentScopes.js","../../node_modules/@sentry/core/build/esm/metrics/metric-summary.js","../../node_modules/@sentry/core/build/esm/semanticAttributes.js","../../node_modules/@sentry/core/build/esm/tracing/spanstatus.js","../../node_modules/@sentry/core/build/esm/utils/spanUtils.js","../../node_modules/@sentry/core/build/esm/tracing/errors.js","../../node_modules/@sentry/core/build/esm/tracing/utils.js","../../node_modules/@sentry/core/build/esm/utils/hasTracingEnabled.js","../../node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js","../../node_modules/@sentry/core/build/esm/constants.js","../../node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","../../node_modules/@sentry/core/build/esm/tracing/logSpans.js","../../node_modules/@sentry/core/build/esm/utils/parseSampleRate.js","../../node_modules/@sentry/core/build/esm/tracing/sampling.js","../../node_modules/@sentry/core/build/esm/envelope.js","../../node_modules/@sentry/core/build/esm/tracing/measurement.js","../../node_modules/@sentry/core/build/esm/tracing/sentrySpan.js","../../node_modules/@sentry/core/build/esm/tracing/trace.js","../../node_modules/@sentry/core/build/esm/tracing/idleSpan.js","../../node_modules/@sentry/core/build/esm/eventProcessors.js","../../node_modules/@sentry/core/build/esm/utils/applyScopeDataToEvent.js","../../node_modules/@sentry/core/build/esm/utils/prepareEvent.js","../../node_modules/@sentry/core/build/esm/exports.js","../../node_modules/@sentry/core/build/esm/api.js","../../node_modules/@sentry/core/build/esm/integration.js","../../node_modules/@sentry/core/build/esm/baseclient.js","../../node_modules/@sentry/core/build/esm/sdk.js","../../node_modules/@sentry/core/build/esm/transports/base.js","../../node_modules/@sentry/core/build/esm/utils/isSentryRequestUrl.js","../../node_modules/@sentry/core/build/esm/utils/sdkMetadata.js","../../node_modules/@sentry/core/build/esm/breadcrumbs.js","../../node_modules/@sentry/core/build/esm/integrations/functiontostring.js","../../node_modules/@sentry/core/build/esm/integrations/inboundfilters.js","../../node_modules/@sentry/core/build/esm/integrations/dedupe.js","../../node_modules/@sentry/core/build/esm/fetch.js","../../node_modules/@sentry/browser/build/npm/esm/helpers.js","../../node_modules/@sentry/browser/build/npm/esm/debug-build.js","../../node_modules/@sentry/browser/build/npm/esm/eventbuilder.js","../../node_modules/@sentry/browser/build/npm/esm/userfeedback.js","../../node_modules/@sentry/browser/build/npm/esm/client.js","../../node_modules/@sentry-internal/browser-utils/build/esm/debug-build.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/bindReporter.js","../../node_modules/@sentry-internal/browser-utils/build/esm/types.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/generateUniqueID.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getNavigationEntry.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getActivationStart.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/initMetric.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/observe.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/onHidden.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/runOnce.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getVisibilityWatcher.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/whenActivated.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onFCP.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getCLS.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getFID.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/polyfills/interactionCountPolyfill.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getINP.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getLCP.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onTTFB.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/instrument.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/utils.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/cls.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/browserMetrics.js","../../node_modules/@sentry-internal/browser-utils/build/esm/instrument/dom.js","../../node_modules/@sentry-internal/browser-utils/build/esm/instrument/history.js","../../node_modules/@sentry-internal/browser-utils/build/esm/getNativeImplementation.js","../../node_modules/@sentry-internal/browser-utils/build/esm/instrument/xhr.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/inp.js","../../node_modules/@sentry/browser/build/npm/esm/transports/fetch.js","../../node_modules/@sentry/browser/build/npm/esm/stack-parsers.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/breadcrumbs.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/browserapierrors.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/globalhandlers.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/httpcontext.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/linkederrors.js","../../node_modules/@sentry/browser/build/npm/esm/sdk.js","../../node_modules/@sentry-internal/replay/build/npm/esm/index.js","../../node_modules/@sentry/browser/build/npm/esm/tracing/request.js","../../node_modules/@sentry/browser/build/npm/esm/tracing/backgroundtab.js","../../node_modules/@sentry/browser/build/npm/esm/tracing/browserTracingIntegration.js","../../node_modules/@sentry/react/build/esm/sdk.js","../../node_modules/@sentry/react/build/esm/error.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/index.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/@sentry/react/build/esm/debug-build.js","../../node_modules/@sentry/react/build/esm/errorboundary.js","../../src/inspectlet.js","../../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../../node_modules/@mui/system/esm/createTheme/shape.js","../../node_modules/@mui/system/esm/merge.js","../../node_modules/@mui/system/esm/breakpoints.js","../../node_modules/@mui/system/esm/style.js","../../node_modules/@mui/system/esm/memoize.js","../../node_modules/@mui/system/esm/spacing.js","../../node_modules/@mui/system/esm/createTheme/createSpacing.js","../../node_modules/@mui/system/esm/compose.js","../../node_modules/@mui/system/esm/borders.js","../../node_modules/@mui/system/esm/cssGrid.js","../../node_modules/@mui/system/esm/palette.js","../../node_modules/@mui/system/esm/sizing.js","../../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../../node_modules/@mui/system/esm/createTheme/applyStyles.js","../../node_modules/@mui/system/esm/createTheme/createTheme.js","../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../node_modules/@emotion/styled/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../node_modules/stylis/src/Enum.js","../../node_modules/stylis/src/Utility.js","../../node_modules/stylis/src/Tokenizer.js","../../node_modules/stylis/src/Parser.js","../../node_modules/stylis/src/Serializer.js","../../node_modules/stylis/src/Middleware.js","../../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js","../../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../../node_modules/@mui/styled-engine/index.js","../../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../../node_modules/@mui/system/esm/useTheme.js","../../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../../node_modules/@mui/material/styles/createMixins.js","../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../node_modules/@mui/system/colorManipulator.js","../../node_modules/@mui/material/colors/common.js","../../node_modules/@mui/material/colors/grey.js","../../node_modules/@mui/material/colors/purple.js","../../node_modules/@mui/material/colors/red.js","../../node_modules/@mui/material/colors/orange.js","../../node_modules/@mui/material/colors/blue.js","../../node_modules/@mui/material/colors/lightBlue.js","../../node_modules/@mui/material/colors/green.js","../../node_modules/@mui/material/styles/createPalette.js","../../node_modules/@mui/material/styles/createTypography.js","../../node_modules/@mui/material/styles/shadows.js","../../node_modules/@mui/material/styles/createTransitions.js","../../node_modules/@mui/material/styles/zIndex.js","../../node_modules/@mui/material/styles/createTheme.js","../../node_modules/@mui/material/styles/defaultTheme.js","../../node_modules/@mui/material/styles/identifier.js","../../node_modules/@mui/material/styles/useThemeProps.js","../../node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js","../../node_modules/clsx/dist/clsx.mjs","../../node_modules/@mui/system/esm/createBox.js","../../node_modules/@mui/system/esm/Box/boxClasses.js","../../node_modules/@mui/system/esm/Box/Box.js","../../node_modules/@mui/system/esm/createStyled.js","../../node_modules/@mui/system/esm/styled.js","../../node_modules/@mui/private-theming/useTheme/ThemeContext.js","../../node_modules/@mui/private-theming/useTheme/useTheme.js","../../node_modules/@mui/private-theming/ThemeProvider/nested.js","../../node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js","../../node_modules/@mui/system/esm/RtlProvider/index.js","../../node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js","../../node_modules/@mui/system/esm/Stack/createStack.js","../../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../../node_modules/@mui/material/CssBaseline/CssBaseline.js","../../node_modules/@mui/material/styles/useTheme.js","../../node_modules/@babel/runtime/helpers/extends.js","../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../node_modules/@mui/system/createStyled.js","../../node_modules/@mui/material/styles/slotShouldForwardProp.js","../../node_modules/@mui/material/styles/rootShouldForwardProp.js","../../node_modules/@mui/material/styles/styled.js","../../node_modules/@mui/material/styles/ThemeProvider.js","../../node_modules/@mui/material/styles/getOverlayAlpha.js","../../node_modules/dayjs/dayjs.min.js","../../node_modules/dayjs/plugin/weekOfYear.js","../../node_modules/dayjs/plugin/customParseFormat.js","../../node_modules/dayjs/plugin/localizedFormat.js","../../node_modules/dayjs/plugin/isBetween.js","../../node_modules/@mui/x-date-pickers/internals/utils/warning.js","../../node_modules/@mui/x-date-pickers/AdapterDayjs/AdapterDayjs.js","../../node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","../../node_modules/@mui/material/Typography/typographyClasses.js","../../node_modules/@mui/material/Typography/Typography.js","../../node_modules/@mui/base/utils/isHostComponent.js","../../node_modules/@mui/base/utils/appendOwnerState.js","../../node_modules/@mui/base/utils/extractEventHandlers.js","../../node_modules/@mui/base/utils/resolveComponentProps.js","../../node_modules/@mui/base/utils/omitEventHandlers.js","../../node_modules/@mui/base/utils/mergeSlotProps.js","../../node_modules/@mui/base/utils/useSlotProps.js","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/react-transition-group/esm/config.js","../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../node_modules/react-transition-group/esm/utils/reflow.js","../../node_modules/react-transition-group/esm/Transition.js","../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/react-transition-group/esm/utils/ChildMapping.js","../../node_modules/react-transition-group/esm/TransitionGroup.js","../../node_modules/@mui/material/ButtonBase/Ripple.js","../../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../../node_modules/@mui/material/ButtonBase/TouchRipple.js","../../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../../node_modules/@mui/material/ButtonBase/ButtonBase.js","../../node_modules/@mui/material/IconButton/iconButtonClasses.js","../../node_modules/@mui/material/IconButton/IconButton.js","../../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../../node_modules/@mui/material/SvgIcon/SvgIcon.js","../../node_modules/@mui/material/utils/createSvgIcon.js","../../node_modules/@mui/material/utils/index.js","../../node_modules/@mui/material/List/ListContext.js","../../node_modules/@mui/material/Divider/dividerClasses.js","../../node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","../../node_modules/@mui/material/ListItemIcon/ListItemIcon.js","../../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../../node_modules/@mui/material/ListItemText/ListItemText.js","../../node_modules/@mui/material/MenuItem/menuItemClasses.js","../../node_modules/@mui/material/MenuItem/MenuItem.js","../../node_modules/@mui/material/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/@mui/material/node_modules/react-is/index.js","../../node_modules/@mui/material/List/listClasses.js","../../node_modules/@mui/material/List/List.js","../../node_modules/@mui/material/MenuList/MenuList.js","../../node_modules/@mui/base/FocusTrap/FocusTrap.js","../../node_modules/@mui/base/Portal/Portal.js","../../node_modules/@mui/base/unstable_useModal/ModalManager.js","../../node_modules/@mui/base/unstable_useModal/useModal.js","../../node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js","../../node_modules/@mui/material/FormControl/formControlState.js","../../node_modules/@mui/material/FormControl/FormControlContext.js","../../node_modules/@mui/material/FormControl/useFormControl.js","../../node_modules/@mui/material/InputBase/utils.js","../../node_modules/@mui/material/InputBase/inputBaseClasses.js","../../node_modules/@mui/material/InputBase/InputBase.js","../../node_modules/@mui/material/Input/inputClasses.js","../../node_modules/@mui/material/Input/Input.js","../../node_modules/@mui/material/FilledInput/filledInputClasses.js","../../node_modules/@mui/material/FilledInput/FilledInput.js","../../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../../node_modules/@mui/material/FormLabel/formLabelClasses.js","../../node_modules/@mui/material/FormLabel/FormLabel.js","../../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../../node_modules/@mui/material/InputLabel/InputLabel.js","../../node_modules/@mui/material/FormControl/formControlClasses.js","../../node_modules/@mui/material/FormControl/FormControl.js","../../node_modules/@mui/material/transitions/utils.js","../../node_modules/@mui/material/Grow/Grow.js","../../node_modules/@mui/material/Fade/Fade.js","../../node_modules/@mui/material/Backdrop/backdropClasses.js","../../node_modules/@mui/material/Backdrop/Backdrop.js","../../node_modules/@mui/material/Modal/modalClasses.js","../../node_modules/@mui/material/Modal/Modal.js","../../node_modules/@mui/material/Paper/paperClasses.js","../../node_modules/@mui/material/Paper/Paper.js","../../node_modules/@mui/material/Popover/popoverClasses.js","../../node_modules/@mui/material/Popover/Popover.js","../../node_modules/@mui/material/Menu/menuClasses.js","../../node_modules/@mui/material/Menu/Menu.js","../../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../../node_modules/@mui/material/Select/selectClasses.js","../../node_modules/@mui/material/Select/SelectInput.js","../../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../../node_modules/@mui/material/Select/Select.js","../../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","../../node_modules/@mui/material/DialogContent/DialogContent.js","../../node_modules/@mui/material/Dialog/dialogClasses.js","../../node_modules/@mui/material/Dialog/DialogContext.js","../../node_modules/@mui/material/Dialog/Dialog.js","../../node_modules/@mui/material/Button/buttonClasses.js","../../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../../node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js","../../node_modules/@mui/material/Button/Button.js","../../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../../node_modules/@mui/material/DialogActions/DialogActions.js","../../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../../node_modules/@mui/material/ListItemButton/ListItemButton.js","../../node_modules/@mui/material/Tab/tabClasses.js","../../node_modules/@mui/material/Tab/Tab.js","../../node_modules/@mui/material/internal/animate.js","../../node_modules/@mui/material/Tabs/ScrollbarSize.js","../../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js","../../node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","../../node_modules/@mui/material/TabScrollButton/TabScrollButton.js","../../node_modules/@mui/material/Tabs/tabsClasses.js","../../node_modules/@mui/material/Tabs/Tabs.js","../../node_modules/@mui/material/Stack/Stack.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../node_modules/use-sync-external-store/shim/with-selector.js","../../node_modules/react-redux/es/utils/batch.js","../../node_modules/react-redux/es/components/Context.js","../../node_modules/react-redux/es/hooks/useReduxContext.js","../../node_modules/react-redux/es/utils/useSyncExternalStore.js","../../node_modules/react-redux/es/hooks/useSelector.js","../../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-redux/node_modules/react-is/index.js","../../node_modules/react-redux/es/connect/selectorFactory.js","../../node_modules/react-redux/es/utils/bindActionCreators.js","../../node_modules/react-redux/es/connect/wrapMapToProps.js","../../node_modules/react-redux/es/connect/invalidArgFactory.js","../../node_modules/react-redux/es/connect/mapDispatchToProps.js","../../node_modules/react-redux/es/connect/mapStateToProps.js","../../node_modules/react-redux/es/connect/mergeProps.js","../../node_modules/react-redux/es/utils/Subscription.js","../../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../../node_modules/react-redux/es/utils/shallowEqual.js","../../node_modules/react-redux/es/components/connect.js","../../node_modules/react-redux/es/components/Provider.js","../../node_modules/react-redux/es/hooks/useStore.js","../../node_modules/react-redux/es/hooks/useDispatch.js","../../node_modules/react-redux/es/index.js","../../node_modules/notistack/node_modules/clsx/dist/clsx.m.js","../../node_modules/goober/dist/goober.modern.js","../../node_modules/notistack/notistack.esm.js","../../node_modules/resolve-pathname/esm/resolve-pathname.js","../../node_modules/value-equal/esm/value-equal.js","../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../node_modules/history/esm/history.js","../../node_modules/react-router/node_modules/isarray/index.js","../../node_modules/react-router/node_modules/path-to-regexp/index.js","../../node_modules/react-router/esm/react-router.js","../../node_modules/jsnlog/jsnlog.js","../../node_modules/dayjs/plugin/isToday.js","../../node_modules/dayjs/plugin/quarterOfYear.js","../../node_modules/dayjs/plugin/relativeTime.js","../../node_modules/react-side-effect/lib/index.js","../../node_modules/react-fast-compare/index.js","../../node_modules/object-assign/index.js","../../node_modules/react-helmet/es/Helmet.js","../../node_modules/@mui/material/Box/boxClasses.js","../../node_modules/@mui/material/Box/Box.js","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/core/AxiosError.js","../../node_modules/axios/lib/helpers/null.js","../../node_modules/axios/lib/helpers/toFormData.js","../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/defaults/transitional.js","../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/axios/lib/platform/browser/index.js","../../node_modules/axios/lib/platform/common/utils.js","../../node_modules/axios/lib/platform/index.js","../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/axios/lib/defaults/index.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/axios/lib/helpers/speedometer.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/adapters/adapters.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/env/data.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/axios/lib/axios.js","../../node_modules/axios/index.js","../../node_modules/nanoid/url-alphabet/index.js","../../node_modules/nanoid/index.browser.js","../../src/core/localStorageSyncApi.js","../../src/core/sessionStorageSyncApi.js","../../node_modules/redux/dist/redux.mjs","../../node_modules/@redux-saga/symbols/dist/redux-saga-symbols.esm.js","../../node_modules/@redux-saga/is/dist/redux-saga-is.esm.js","../../node_modules/@redux-saga/core/dist/io-22ea0cf9.js","../../node_modules/@redux-saga/deferred/dist/redux-saga-deferred.esm.js","../../node_modules/@redux-saga/core/dist/redux-saga-core.esm.js","../../src/assets/NavBarIcons/company.png","../../src/assets/NavBarIcons/dashboard_icon.svg","../../src/assets/NavBarIcons/cpa_dashboard.svg","../../src/assets/NavBarIcons/feedback_icon.svg","../../src/assets/NavBarIcons/files.png","../../src/assets/NavBarIcons/settings.svg","../../src/assets/NavBarIcons/help_center.svg","../../src/assets/NavBarIcons/manage_hr_icon.svg","../../src/assets/NavBarIcons/manage_icon.svg","../../src/assets/NavBarIcons/payroll_financing_icon.svg","../../src/assets/NavBarIcons/users.svg","../../src/assets/NavBarIcons/power_import_icon.svg","../../src/assets/NavBarIcons/folder.svg","../../src/assets/NavBarIcons/swipe_clock_icon.svg","../../src/assets/NavBarIcons/settings-gear-icon.svg","../../src/assets/NavBarIcons/services.svg","../../src/assets/NavBarIcons/add-cpa-company.svg","../../src/assets/NavBarIcons/dollar.svg","../../src/routes/pages.js","../../src/redux/ducks/appDuck.tsx","../../src/redux/ducks/dashboardDuck.js","../../src/redux/ducks/employeesDuck.js","../../src/redux/ducks/employeeDuck.js","../../src/redux/ducks/essDuck.js","../../src/redux/ducks/onboardingDuck.js","../../src/constants/employeePayHistory.js","../../src/utils/dateTime.js","../../src/utils/employeePayHistory.js","../../src/redux/ducks/payHistoryDuck.js","../../src/redux/ducks/snackbarDuck.js","../../src/redux/ducks/widgetEssDuck.js","../../src/redux/ducks/widgetFeedbackDuck.js","../../src/redux/ducks/widgetManageProfileDuck.js","../../src/redux/ducks/widgetNewDownloadDuck.js","../../src/redux/ducks/widgetSelectCompanyDuck.js","../../src/redux/ducks/widgetGlobalSearchDuck.js","../../src/redux/ducks/payrollsDuck.js","../../src/redux/ducks/payrollDuck.js","../../src/redux/rootReducer.js","../../src/redux/configureStore.js","../../src/core/apiService.js","../../node_modules/jwt-decode/build/esm/index.js","../../src/core/logErrorsService.js","../../src/v2/api/generated/schemas/userAuthorizationResultsSchemaRedirectTo.ts","../../src/core/authService.tsx","../../src/core/constants.js","../../src/core/urlHelpers.js","../../src/utils/consoleError.js","../../src/core/axiosError.js","../../src/api/logErrorsApi.js","../../src/containers/ErrorBoundary/ErrorBoundary.js","../../src/api/zendeskApi.js","../../node_modules/zustand/esm/vanilla.mjs","../../node_modules/zustand/esm/react.mjs","../../src/v2/utils/error.ts","../../src/v2/states/app-state.ts","../../src/containers/WidgetZendesk/WidgetZendesk.js","../../src/components/InternalServerErrorPage/InternalServerErrorPage.js","../../src/containers/SentryProvider/SentryProvider.jsx","../../node_modules/@mui/icons-material/utils/createSvgIcon.js","../../node_modules/@mui/icons-material/ExpandMore.js","../../src/components/Icons/CheckedIcon.js","../../src/components/Icons/UncheckedIcon.js","../../src/components/Icons/RadioButtonIcon.js","../../src/components/Icons/RadioButtonCheckedIcon.js","../../src/components/Icons/ArrowForwardIosIcon.js","../../src/muiTheme.js","../../node_modules/decode-uri-component/index.js","../../node_modules/split-on-first/index.js","../../node_modules/filter-obj/index.js","../../node_modules/query-string/base.js","../../node_modules/@microsoft/signalr/dist/esm/Errors.js","../../node_modules/@microsoft/signalr/dist/esm/HttpClient.js","../../node_modules/@microsoft/signalr/dist/esm/ILogger.js","../../node_modules/@microsoft/signalr/dist/esm/Loggers.js","../../node_modules/@microsoft/signalr/dist/esm/Utils.js","../../node_modules/@microsoft/signalr/dist/esm/DynamicImports.js","../../node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","../../node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","../../node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","../../node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","../../node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","../../node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","../../node_modules/@microsoft/signalr/dist/esm/Subject.js","../../node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js","../../node_modules/@microsoft/signalr/dist/esm/HubConnection.js","../../node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","../../node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","../../node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js","../../node_modules/@microsoft/signalr/dist/esm/ITransport.js","../../node_modules/@microsoft/signalr/dist/esm/AbortController.js","../../node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","../../node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","../../node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","../../node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","../../node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","../../node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","../../src/utils/signalR.js","../../src/SignalRProvider.js","../../node_modules/@mui/material/zero-styled/index.js","../../node_modules/@mui/material/utils/useSlot.js","../../node_modules/@mui/material/Alert/alertClasses.js","../../node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","../../node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","../../node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","../../node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","../../node_modules/@mui/material/internal/svg-icons/Close.js","../../node_modules/@mui/material/Alert/Alert.js","../../node_modules/@mui/material/AlertTitle/alertTitleClasses.js","../../node_modules/@mui/material/AlertTitle/AlertTitle.js","../../node_modules/@mui/material/AppBar/appBarClasses.js","../../node_modules/@mui/material/AppBar/AppBar.js","../../node_modules/@mui/material/Autocomplete/autocompleteClasses.js","../../node_modules/@mui/material/internal/svg-icons/Person.js","../../node_modules/@mui/material/Avatar/avatarClasses.js","../../node_modules/@mui/material/Avatar/Avatar.js","../../node_modules/@mui/material/internal/switchBaseClasses.js","../../node_modules/@mui/material/internal/SwitchBase.js","../../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../../node_modules/@mui/material/CircularProgress/CircularProgress.js","../../node_modules/@mui/material/DialogTitle/DialogTitle.js","../../node_modules/@mui/material/Slide/Slide.js","../../node_modules/@mui/material/Drawer/drawerClasses.js","../../node_modules/@mui/material/Drawer/Drawer.js","../../node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","../../node_modules/@mui/material/FormControlLabel/FormControlLabel.js","../../node_modules/@mui/material/Grid/GridContext.js","../../node_modules/@mui/material/Grid/gridClasses.js","../../node_modules/@mui/material/Grid/Grid.js","../../node_modules/@mui/material/Switch/switchClasses.js","../../node_modules/@mui/material/Switch/Switch.js","../../node_modules/@mui/material/Toolbar/toolbarClasses.js","../../node_modules/@mui/material/Toolbar/Toolbar.js","../../node_modules/@mui/icons-material/Close.js","../../src/components/SnackbarNotificationsClose/SnackbarNotificationsClose.js","../../src/utils/snackbarNotifications.js","../../src/utils/AppUiProvider.jsx","../../src/v2/lib/pages.ts","../../src/routes/ProtectedRoute.js","../../node_modules/@mui/icons-material/Menu.js","../../node_modules/@mui/icons-material/AccountCircle.js","../../node_modules/@mui/icons-material/Dashboard.js","../../node_modules/@mui/icons-material/GridOn.js","../../src/pages/internal/super_admin/SuperAdminLayout.jsx","../../node_modules/devextreme/esm/core/utils/type.js","../../node_modules/devextreme/esm/core/utils/extend.js","../../node_modules/devextreme/esm/core/utils/iterator.js","../../node_modules/devextreme/esm/core/utils/console.js","../../node_modules/devextreme/esm/core/utils/string.js","../../node_modules/devextreme/esm/core/version.js","../../node_modules/devextreme/esm/core/utils/error.js","../../node_modules/devextreme/esm/core/errors.js","../../node_modules/devextreme/esm/core/class.js","../../node_modules/devextreme/esm/core/utils/dependency_injector.js","../../node_modules/devextreme/esm/core/config.js","../../node_modules/devextreme/esm/core/guid.js","../../node_modules/devextreme/esm/core/utils/callbacks.js","../../node_modules/devextreme/esm/core/utils/deferred.js","../../node_modules/devextreme/esm/core/utils/variable_wrapper.js","../../node_modules/devextreme/esm/core/utils/object.js","../../node_modules/devextreme/esm/core/utils/data.js","../../node_modules/devextreme/esm/core/utils/common.js","../../node_modules/devextreme/esm/core/utils/shadow_dom.js","../../node_modules/devextreme/esm/core/dom_adapter.js","../../node_modules/devextreme/esm/core/memorized_callbacks.js","../../node_modules/devextreme/esm/events/core/event_registrator_callbacks.js","../../node_modules/devextreme/esm/core/utils/window.js","../../node_modules/devextreme/esm/events/core/hook_touch_props.js","../../node_modules/devextreme/esm/core/utils/call_once.js","../../node_modules/devextreme/esm/events/core/events_engine.js","../../node_modules/devextreme/esm/core/element_data.js","../../node_modules/devextreme/esm/core/utils/inflector.js","../../node_modules/devextreme/esm/core/utils/style.js","../../node_modules/devextreme/esm/core/utils/size.js","../../node_modules/devextreme/esm/core/utils/html_parser.js","../../node_modules/devextreme/esm/core/renderer_base.js","../../node_modules/devextreme/esm/core/renderer.js","../../node_modules/devextreme/esm/localization/cldr-data/parent_locales.js","../../node_modules/devextreme/esm/localization/parentLocale.js","../../node_modules/devextreme/esm/localization/core.js","../../node_modules/devextreme/esm/localization/default_messages.js","../../node_modules/devextreme/esm/localization/message.js","../../node_modules/devextreme/esm/events/utils/add_namespace.js","../../node_modules/devextreme/esm/ui/widget/selectors.js","../../node_modules/devextreme/esm/events/utils/index.js","../../node_modules/devextreme/esm/ui/shared/accessibility.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/m_accessibility.js","../../node_modules/devextreme/esm/core/element.js","../../node_modules/devextreme/esm/core/utils/browser.js","../../node_modules/devextreme/esm/core/utils/position.js","../../node_modules/devextreme/esm/core/utils/ready_callbacks.js","../../node_modules/devextreme/esm/core/utils/resize_callbacks.js","../../node_modules/devextreme/esm/core/events_strategy.js","../../node_modules/devextreme/esm/core/utils/storage.js","../../node_modules/devextreme/esm/core/utils/view_port.js","../../node_modules/devextreme/esm/core/devices.js","../../node_modules/devextreme/esm/core/utils/support.js","../../node_modules/devextreme/esm/core/utils/dom.js","../../node_modules/devextreme/esm/animation/frame.js","../../node_modules/devextreme/esm/events/core/event_registrator.js","../../node_modules/devextreme/esm/events/remove.js","../../node_modules/devextreme/esm/events/utils/event_nodes_disposing.js","../../node_modules/devextreme/esm/events/pointer/base.js","../../node_modules/devextreme/esm/events/pointer/touch.js","../../node_modules/devextreme/esm/events/pointer/observer.js","../../node_modules/devextreme/esm/events/pointer/mouse.js","../../node_modules/devextreme/esm/events/pointer/mouse_and_touch.js","../../node_modules/devextreme/esm/events/pointer.js","../../node_modules/devextreme/esm/events/core/emitter.js","../../node_modules/devextreme/esm/events/core/wheel.js","../../node_modules/devextreme/esm/events/core/emitter_registrator.js","../../node_modules/devextreme/esm/events/click.js","../../node_modules/devextreme/esm/__internal/events/dblclick.js","../../node_modules/devextreme/esm/events/double_click.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js","../../node_modules/devextreme/esm/ui/widget/ui.errors.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/views/utils/update_views_borders.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/m_modules.js","../../node_modules/devextreme/esm/data/utils.js","../../node_modules/devextreme/esm/data/errors.js","../../node_modules/devextreme/esm/data/array_utils.js","../../node_modules/devextreme/esm/data/array_query.js","../../node_modules/devextreme/esm/data/store_helper.js","../../node_modules/devextreme/esm/data/abstract_store.js","../../node_modules/devextreme/esm/data/custom_store.js","../../node_modules/devextreme/esm/core/utils/queue.js","../../node_modules/devextreme/esm/core/http_request.js","../../node_modules/devextreme/esm/core/utils/ajax.js","../../node_modules/devextreme/esm/data/query_adapters.js","../../node_modules/devextreme/esm/data/remote_query.js","../../node_modules/devextreme/esm/data/query_implementation.js","../../node_modules/devextreme/esm/data/query.js","../../node_modules/devextreme/esm/data/array_store.js","../../node_modules/devextreme/esm/data/data_source/utils.js","../../node_modules/devextreme/esm/data/data_source/operation_manager.js","../../node_modules/devextreme/esm/data/data_source/data_source.js","../../node_modules/devextreme/esm/core/utils/math.js","../../node_modules/devextreme/esm/renovation/ui/common/utils/date/toMilliseconds.js","../../node_modules/devextreme/esm/core/utils/date.js","../../node_modules/devextreme/esm/localization/utils.js","../../node_modules/devextreme/esm/localization/ldml/number.js","../../node_modules/devextreme/esm/localization/currency.js","../../node_modules/devextreme/esm/localization/open_xml_currency_format.js","../../node_modules/devextreme/esm/localization/cldr-data/accounting_formats.js","../../node_modules/devextreme/esm/localization/intl/number.js","../../node_modules/devextreme/esm/localization/number.js","../../node_modules/devextreme/esm/localization/ldml/date.formatter.js","../../node_modules/devextreme/esm/localization/ldml/date.format.js","../../node_modules/devextreme/esm/localization/ldml/date.parser.js","../../node_modules/devextreme/esm/localization/default_date_names.js","../../node_modules/devextreme/esm/localization/cldr-data/first_day_of_week_data.js","../../node_modules/devextreme/esm/localization/intl/date.js","../../node_modules/devextreme/esm/localization/date.js","../../node_modules/devextreme/esm/format_helper.js","../../node_modules/devextreme/esm/core/component_registrator_callbacks.js","../../node_modules/devextreme/esm/core/utils/public_component.js","../../node_modules/devextreme/esm/core/component_registrator.js","../../node_modules/devextreme/esm/ui/themes_callback.js","../../node_modules/devextreme/esm/ui/themes.js","../../node_modules/devextreme/esm/core/action.js","../../node_modules/devextreme/esm/core/utils/comparator.js","../../node_modules/devextreme/esm/core/options/utils.js","../../node_modules/devextreme/esm/core/options/option_manager.js","../../node_modules/devextreme/esm/core/options/index.js","../../node_modules/devextreme/esm/core/postponed_operations.js","../../node_modules/devextreme/esm/core/component.js","../../node_modules/devextreme/esm/events/visibility_change.js","../../node_modules/devextreme/esm/core/templates/template_base.js","../../node_modules/devextreme/esm/core/templates/function_template.js","../../node_modules/devextreme/esm/core/templates/empty_template.js","../../node_modules/devextreme/esm/core/templates/child_default_template.js","../../node_modules/devextreme/esm/core/templates/template_engine_registry.js","../../node_modules/devextreme/esm/core/templates/template.js","../../node_modules/devextreme/esm/core/utils/array.js","../../node_modules/devextreme/esm/core/utils/template_manager.js","../../node_modules/devextreme/esm/core/template_manager.js","../../node_modules/devextreme/esm/events/core/keyboard_processor.js","../../node_modules/devextreme/esm/events/short.js","../../node_modules/devextreme/esm/__internal/utils/version.js","../../node_modules/devextreme/esm/__internal/core/license/byte_utils.js","../../node_modules/devextreme/esm/__internal/core/license/key.js","../../node_modules/devextreme/esm/__internal/core/license/pkcs1.js","../../node_modules/devextreme/esm/__internal/core/license/rsa_bigint.js","../../node_modules/devextreme/esm/__internal/core/license/sha1.js","../../node_modules/devextreme/esm/__internal/core/license/types.js","../../node_modules/devextreme/esm/__internal/core/license/license_validation.js","../../node_modules/devextreme/esm/core/dom_component.js","../../node_modules/devextreme/esm/core/utils/version.js","../../node_modules/devextreme/esm/events/core/emitter.feedback.js","../../node_modules/devextreme/esm/events/hover.js","../../node_modules/devextreme/esm/ui/widget/ui.widget.js","../../node_modules/devextreme/esm/__internal/ui/m_load_indicator.js","../../node_modules/devextreme/esm/animation/translator.js","../../node_modules/devextreme/esm/animation/easing.js","../../node_modules/devextreme/esm/animation/position.js","../../node_modules/devextreme/esm/animation/fx.js","../../node_modules/devextreme/esm/events/gesture/emitter.gesture.js","../../node_modules/devextreme/esm/events/drag.js","../../node_modules/devextreme/esm/mobile/hide_callback.js","../../node_modules/devextreme/esm/ui/widget/swatch_container.js","../../node_modules/devextreme/esm/__internal/ui/overlay/m_overlay_position_controller.js","../../node_modules/devextreme/esm/__internal/ui/overlay/m_z_index.js","../../node_modules/devextreme/esm/__internal/ui/overlay/m_overlay.js","../../node_modules/devextreme/esm/__internal/ui/m_load_panel.js","../../node_modules/devextreme/esm/ui/shared/filtering.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/m_utils.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/views/m_columns_view.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/column_headers/m_column_headers.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/m_core.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_headers.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/const.js","../../node_modules/devextreme/esm/core/utils/date_serialization.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/m_columns_controller.js","../../node_modules/devextreme/esm/core/utils/array_compare.js","../../node_modules/devextreme/esm/__internal/ui/collection/m_data_controller.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/data_controller/m_data_helper_mixin.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/data_controller/m_data_controller.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter_utils.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/m_data_source_adapter.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/m_data_controller.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/sorting.js","../../node_modules/devextreme/esm/events/gesture/emitter.gesture.scroll.js","../../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_relative_offset.js","../../node_modules/devextreme/esm/renovation/ui/scroll_view/common/consts.js","../../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_location_internal.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollable.device.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollbar.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollable.native.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_animator.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollable.simulated.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollable.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/views/m_rows_view.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/rows.js","../../node_modules/devextreme/esm/events/hold.js","../../node_modules/devextreme/esm/events/contextmenu.js","../../node_modules/devextreme/esm/ui/widget/utils.ink_ripple.js","../../node_modules/devextreme/esm/core/templates/bindable_template.js","../../node_modules/devextreme/esm/core/utils/icon.js","../../node_modules/devextreme/esm/__internal/ui/selection/m_selection.strategy.js","../../node_modules/devextreme/esm/__internal/ui/selection/m_selection.strategy.deferred.js","../../node_modules/devextreme/esm/core/utils/selection_filter.js","../../node_modules/devextreme/esm/__internal/ui/selection/m_selection.strategy.standard.js","../../node_modules/devextreme/esm/__internal/ui/selection/m_selection.js","../../node_modules/devextreme/esm/data_helper.js","../../node_modules/devextreme/esm/__internal/ui/collection/m_item.js","../../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.base.js","../../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.edit.strategy.js","../../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.edit.strategy.plain.js","../../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.edit.js","../../node_modules/devextreme/esm/core/resize_observer.js","../../node_modules/devextreme/esm/__internal/ui/m_validation_engine.js","../../node_modules/devextreme/esm/__internal/ui/m_validation_message.js","../../node_modules/devextreme/esm/__internal/ui/editor/m_editor.js","../../node_modules/devextreme/esm/__internal/ui/text_box/texteditor_button_collection/m_button.js","../../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.clear.js","../../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.label.js","../../node_modules/inferno/dist/index.esm.js","../../node_modules/@devextreme/runtime/esm/inferno/effect_host.js","../../node_modules/@devextreme/runtime/esm/inferno/base_component.js","../../node_modules/@devextreme/runtime/esm/inferno/create_context.js","../../node_modules/@devextreme/runtime/esm/inferno/effect.js","../../node_modules/@devextreme/runtime/esm/inferno/re_render_effect.js","../../node_modules/@devextreme/runtime/esm/inferno/mocked/shared.js","../../node_modules/@devextreme/runtime/esm/inferno/mocked/hydrate.js","../../node_modules/inferno-create-element/dist/index.esm.js","../../node_modules/@devextreme/runtime/esm/inferno/render_template.js","../../node_modules/@devextreme/runtime/esm/inferno/normalize_styles.js","../../node_modules/devextreme/esm/core/inferno_renderer.js","../../node_modules/devextreme/esm/renovation/utils/shallow_equals.js","../../node_modules/devextreme/esm/renovation/component_wrapper/common/template_wrapper.js","../../node_modules/devextreme/esm/renovation/component_wrapper/utils/update_props_immutable.js","../../node_modules/devextreme/esm/renovation/component_wrapper/common/component.js","../../node_modules/devextreme/esm/renovation/component_wrapper/button.js","../../node_modules/devextreme/esm/renovation/utils/combine_classes.js","../../node_modules/devextreme/esm/renovation/ui/common/icon.js","../../node_modules/devextreme/esm/renovation/ui/common/ink_ripple.js","../../node_modules/devextreme/esm/renovation/utils/subscribe_to_event.js","../../node_modules/devextreme/esm/renovation/ui/common/base_props.js","../../node_modules/devextreme/esm/renovation/common/config_context.js","../../node_modules/devextreme/esm/renovation/common/config_provider.js","../../node_modules/devextreme/esm/renovation/utils/resolve_rtl.js","../../node_modules/devextreme/esm/renovation/ui/common/widget.js","../../node_modules/devextreme/esm/renovation/ui/button.js","../../node_modules/devextreme/esm/renovation/ui/button.j.js","../../node_modules/devextreme/esm/__internal/ui/text_box/texteditor_button_collection/m_custom.js","../../node_modules/devextreme/esm/__internal/ui/text_box/texteditor_button_collection/m_index.js","../../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.base.js","../../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.mask.rule.js","../../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.mask.strategy.js","../../node_modules/devextreme/esm/__internal/ui/text_box/m_utils.caret.js","../../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.mask.js","../../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.js","../../node_modules/devextreme/esm/__internal/ui/text_box/m_text_box.js","../../node_modules/devextreme/esm/core/utils/stubs.js","../../node_modules/devextreme/esm/ui/widget/ui.search_box_mixin.js","../../node_modules/devextreme/esm/__internal/ui/hierarchical_collection/m_data_converter.js","../../node_modules/devextreme/esm/__internal/ui/hierarchical_collection/m_data_adapter.js","../../node_modules/devextreme/esm/__internal/ui/hierarchical_collection/m_hierarchical_collection_widget.js","../../node_modules/devextreme/esm/__internal/ui/widget.js","../../node_modules/devextreme/esm/__internal/ui/collection/hierarchical.js","../../node_modules/devextreme/esm/__internal/ui/context_menu/m_menu_base.edit.strategy.js","../../node_modules/devextreme/esm/__internal/ui/context_menu/m_menu_base.js","../../node_modules/devextreme/esm/__internal/ui/context_menu/m_context_menu.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/context_menu/m_context_menu.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/context_menu.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/error_handling/m_error_handling.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/error_handling.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/views/m_grid_view.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/grid_view.js","../../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.async.js","../../node_modules/devextreme/esm/__internal/ui/collection/async.js","../../node_modules/devextreme/esm/__internal/ui/toolbar/m_constants.js","../../node_modules/devextreme/esm/__internal/ui/toolbar/m_toolbar.base.js","../../node_modules/devextreme/esm/__internal/ui/toolbar/m_toolbar.utils.js","../../node_modules/devextreme/esm/__internal/ui/toolbar/strategy/m_toolbar.multiline.js","../../node_modules/devextreme/esm/__internal/ui/m_resizable.js","../../node_modules/devextreme/esm/__internal/ui/popup/m_popup_drag.js","../../node_modules/devextreme/esm/__internal/ui/popup/m_popup_overflow_manager.js","../../node_modules/devextreme/esm/__internal/ui/popup/m_popup_position_controller.js","../../node_modules/devextreme/esm/__internal/ui/popup/m_popup.js","../../node_modules/devextreme/esm/events/swipe.js","../../node_modules/devextreme/esm/renovation/utils/type_conversion.js","../../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_style.js","../../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.live_update.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scroll_view.native.pull_down.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scroll_view.native.swipe_down.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scroll_view.simulated.js","../../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scroll_view.js","../../node_modules/devextreme/esm/__internal/ui/shared/m_grouped_data_converter_mixin.js","../../node_modules/devextreme/esm/__internal/ui/list/m_item.js","../../node_modules/devextreme/esm/__internal/ui/list/m_list.base.js","../../node_modules/devextreme/esm/__internal/ui/toolbar/internal/m_toolbar.menu.list.js","../../node_modules/devextreme/esm/__internal/ui/toolbar/internal/m_toolbar.menu.js","../../node_modules/devextreme/esm/__internal/ui/toolbar/strategy/m_toolbar.singleline.js","../../node_modules/devextreme/esm/__internal/ui/toolbar/m_toolbar.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/header_panel/m_header_panel.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_panel.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/m_widget_base.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/state_storing.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/selection/m_selection.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/selection.js","../../node_modules/devextreme/esm/renovation/utils/dom.js","../../node_modules/devextreme/esm/renovation/component_wrapper/editors/editor.js","../../node_modules/devextreme/esm/renovation/component_wrapper/editors/check_box.js","../../node_modules/devextreme/esm/renovation/ui/common/utils/get_updated_options.js","../../node_modules/devextreme/esm/renovation/ui/common/dom_component_wrapper.js","../../node_modules/devextreme/esm/renovation/ui/overlays/validation_message.js","../../node_modules/devextreme/esm/renovation/ui/editors/common/editor.js","../../node_modules/devextreme/esm/renovation/utils/get_computed_style.js","../../node_modules/devextreme/esm/renovation/ui/editors/check_box/utils.js","../../node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box_icon.js","../../node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.js","../../node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.j.js","../../node_modules/devextreme/esm/__internal/ui/tree_view/m_tree_view.base.js","../../node_modules/devextreme/esm/__internal/ui/tree_view/m_tree_view.search.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/column_chooser/m_column_chooser.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_chooser.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/m_utils.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_core.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_collapsed.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_expanded.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/master_detail/m_master_detail.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/master_detail.js","../../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.spin.js","../../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.spins.js","../../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.base.js","../../node_modules/devextreme/esm/__internal/ui/number_box/m_utils.js","../../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.caret.js","../../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.mask.js","../../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.js","../../node_modules/devextreme/esm/__internal/ui/radio_group/m_radio_button.js","../../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.decorator.js","../../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.decorator_registry.js","../../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.decorator.selection.js","../../node_modules/devextreme/esm/__internal/ui/editor/m_data_expression.js","../../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.provider.js","../../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.strategy.grouped.js","../../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.js","../../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.search.js","../../node_modules/devextreme/esm/ui/list_light.js","../../node_modules/devextreme/esm/__internal/ui/drop_down_editor/m_drop_down_button.js","../../node_modules/devextreme/esm/__internal/ui/drop_down_editor/m_utils.js","../../node_modules/devextreme/esm/__internal/ui/drop_down_editor/m_drop_down_editor.js","../../node_modules/devextreme/esm/__internal/ui/drop_down_editor/m_drop_down_list.js","../../node_modules/devextreme/esm/__internal/ui/m_select_box.js","../../node_modules/devextreme/esm/events/gesture/swipeable.js","../../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.selection.strategy.js","../../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.multiple.selection.strategy.js","../../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.navigator.js","../../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.range.selection.strategy.js","../../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.single.selection.strategy.js","../../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.base_view.js","../../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.views.js","../../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.calendar.js","../../node_modules/devextreme/esm/__internal/ui/m_box.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_utils.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_time_view.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.calendar_with_time.js","../../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/scroll_direction.js","../../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_view_roller.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_view.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.date_view.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.list.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.native.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.base.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.mask.parts.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.mask.js","../../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.js","../../node_modules/devextreme/esm/ui/shared/ui.editor_factory_mixin.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/editor_factory/m_editor_factory.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editor_factory.js","../../node_modules/devextreme/esm/__internal/ui/m_dialog.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/editing/const.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_utils.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/m_editing.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_row_based.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_row_based.js","../../node_modules/devextreme/esm/__internal/ui/m_responsive_box.js","../../node_modules/devextreme/esm/__internal/ui/form/components/m_button_item.js","../../node_modules/devextreme/esm/__internal/ui/form/components/m_empty_item.js","../../node_modules/devextreme/esm/__internal/ui/validation/m_default_adapter.js","../../node_modules/devextreme/esm/__internal/ui/m_validator.js","../../node_modules/devextreme/esm/__internal/ui/form/constants.js","../../node_modules/devextreme/esm/__internal/ui/form/m_form.layout_manager.utils.js","../../node_modules/devextreme/esm/__internal/ui/form/components/m_label.js","../../node_modules/devextreme/esm/__internal/ui/form/components/m_field_item.js","../../node_modules/devextreme/esm/__internal/ui/form/m_form.items_runtime_info.js","../../node_modules/devextreme/esm/__internal/ui/form/m_form.layout_manager.js","../../node_modules/devextreme/esm/__internal/ui/m_validation_summary.js","../../node_modules/devextreme/esm/__internal/ui/m_validation_group.js","../../node_modules/devextreme/esm/__internal/ui/multi_view/m_multi_view.animation.js","../../node_modules/devextreme/esm/__internal/ui/m_multi_view.js","../../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js","../../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_top_max.js","../../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_boundary_props.js","../../node_modules/devextreme/esm/__internal/ui/tabs/constants.js","../../node_modules/devextreme/esm/__internal/ui/tabs/m_item.js","../../node_modules/devextreme/esm/__internal/ui/tabs/m_tabs.js","../../node_modules/devextreme/esm/__internal/ui/tab_panel/m_item.js","../../node_modules/devextreme/esm/__internal/ui/tab_panel/m_tab_panel.js","../../node_modules/devextreme/esm/__internal/ui/form/m_form.item_option_action.js","../../node_modules/devextreme/esm/__internal/ui/form/m_form.utils.js","../../node_modules/devextreme/esm/__internal/ui/form/m_form.item_options_actions.js","../../node_modules/devextreme/esm/__internal/ui/form/m_form.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_form_based.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_form_based.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_cell_based.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_cell_based.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/validating/m_validating.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/validating.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/virtual_data_loader/m_virtual_data_loader.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling_core.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_scrolling.js","../../node_modules/devextreme/esm/__internal/ui/overlay/m_utils.js","../../node_modules/devextreme/esm/__internal/ui/menu/m_submenu.js","../../node_modules/devextreme/esm/__internal/ui/menu/m_menu.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_row.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_row.js","../../node_modules/devextreme/esm/__internal/ui/list/modules/m_search.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter_core.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_filter.js","../../node_modules/devextreme/esm/__internal/filter_builder/m_between.js","../../node_modules/devextreme/esm/__internal/filter_builder/m_filter_operations_dictionary.js","../../node_modules/devextreme/esm/__internal/filter_builder/m_utils.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_custom_operations.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_sync.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_sync.js","../../node_modules/devextreme/esm/__internal/filter_builder/m_filter_builder.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_builder.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_builder.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_panel.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_panel.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/search/m_search.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/search.js","../../node_modules/devextreme/esm/renovation/component_wrapper/grid_pager.js","../../node_modules/devextreme/esm/renovation/ui/pager/utils/get_element_width.js","../../node_modules/devextreme/esm/renovation/ui/pager/resizable_container.js","../../node_modules/devextreme/esm/renovation/ui/pager/common/base_pager_props.js","../../node_modules/devextreme/esm/renovation/ui/pager/common/pager_props.js","../../node_modules/devextreme/esm/renovation/ui/pager/info.js","../../node_modules/devextreme/esm/renovation/ui/pager/common/keyboard_action_context.js","../../node_modules/devextreme/esm/renovation/ui/pager/common/light_button.js","../../node_modules/devextreme/esm/renovation/ui/pager/common/consts.js","../../node_modules/devextreme/esm/renovation/ui/pager/pages/page.js","../../node_modules/devextreme/esm/renovation/ui/pager/pages/large.js","../../node_modules/devextreme/esm/renovation/ui/editors/common/editor_state_props.js","../../node_modules/devextreme/esm/renovation/ui/editors/common/editor_label_props.js","../../node_modules/devextreme/esm/renovation/ui/editors/number_box.js","../../node_modules/devextreme/esm/renovation/ui/pager/utils/calculate_values_fitted_width.js","../../node_modules/devextreme/esm/renovation/ui/pager/pages/small.js","../../node_modules/devextreme/esm/renovation/ui/pager/pages/page_index_selector.js","../../node_modules/devextreme/esm/renovation/ui/editors/drop_down_editors/select_box.js","../../node_modules/devextreme/esm/renovation/ui/pager/page_size/small.js","../../node_modules/devextreme/esm/renovation/ui/pager/page_size/large.js","../../node_modules/devextreme/esm/renovation/ui/pager/page_size/selector.js","../../node_modules/devextreme/esm/renovation/ui/pager/content.js","../../node_modules/devextreme/esm/renovation/ui/pager/pager.js","../../node_modules/devextreme/esm/renovation/ui/pager/pager.j.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/pager/m_pager.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/pager.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/columns_resizing_reordering.js","../../node_modules/devextreme/esm/__internal/utils/memoize.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/const.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/dom.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation_utils.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/scrollable_a11y.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/keyboard_navigation.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/m_aggregate_calculator.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/summary/m_summary.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/column_fixing/m_column_fixing.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_fixing.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/adaptivity/m_adaptivity.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/adaptivity.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns_core.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_columns.js","../../node_modules/devextreme/esm/__internal/ui/m_button_group.js","../../node_modules/devextreme/esm/__internal/ui/m_drop_down_button.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/m_export.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/export/m_export.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus_utils.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/focus/m_focus.js","../../node_modules/devextreme/esm/__internal/m_draggable.js","../../node_modules/devextreme/esm/__internal/m_sortable.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/const.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/dom.js","../../node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/m_row_dragging.js","../../node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/row_dragging.js","../../node_modules/devextreme/esm/events/index.js","../../node_modules/devextreme-react/esm/core/helpers.js","../../node_modules/devextreme-react/esm/core/template-wrapper.js","../../node_modules/devextreme-react/esm/core/config.js","../../node_modules/devextreme-react/esm/core/template-manager.js","../../node_modules/devextreme-react/esm/core/configuration/utils.js","../../node_modules/devextreme-react/esm/core/configuration/tree.js","../../node_modules/devextreme-react/esm/core/configuration/comparer.js","../../node_modules/devextreme-react/esm/core/options-manager.js","../../node_modules/devextreme-react/esm/core/widget-config.js","../../node_modules/devextreme-react/esm/core/template.js","../../node_modules/devextreme-react/esm/core/configuration/react/element.js","../../node_modules/devextreme-react/esm/core/configuration/react/templates.js","../../node_modules/devextreme-react/esm/core/configuration/react/tree.js","../../node_modules/devextreme-react/esm/core/component-base.js","../../node_modules/devextreme-react/esm/core/extension-component.js","../../node_modules/devextreme-react/esm/core/component.js","../../node_modules/devextreme-react/esm/core/nested-option.js","../../node_modules/devextreme-react/esm/data-grid.js","../../node_modules/devextreme-react/esm/drop-down-button.js","../../node_modules/devextreme-aspnet-data-nojquery/index.js","../../src/pages/internal/super_admin/Payees.jsx","../../src/pages/internal/super_admin/Deductions.jsx","../../src/pages/internal/super_admin/Checks.jsx","../../node_modules/devextreme-react/esm/button.js","../../src/pages/internal/super_admin/CheckMasterBatch.jsx","../../src/pages/internal/super_admin/CheckPayrollIssues.jsx","../../src/pages/internal/super_admin/MpwClientErrors.jsx","../../src/pages/internal/super_admin/CheckPayrollIssuesLog.jsx","../../src/pages/internal/super_admin/PayrollStatusChanges.jsx","../../src/pages/internal/super_admin/PayrollsInProcess.jsx","../../src/pages/internal/super_admin/PayrollDetails.jsx","../../src/pages/internal/super_admin/AddPayroll.jsx","../../src/pages/internal/super_admin/Payrolls.jsx","../../src/pages/internal/super_admin/ProcessPowerGrid.jsx","../../src/pages/internal/super_admin/CreatePowerGrid.jsx","../../src/pages/internal/super_admin/PowerGrids.jsx","../../src/pages/internal/super_admin/PipMsgTypes.jsx","../../src/pages/internal/super_admin/SuperAdminRoutes.jsx","../../src/routes/CpaRoutes.js","../../src/routes/PayrollRoutes.js","../../src/routes/EssRoutes.js","../../src/routes/DevextremeRoutes.js","../../src/components/LoadingScreen/LoadingScreen.js","../../src/routes/Routes.tsx","../../src/utils/redirectToLogin.js","../../node_modules/es-toolkit/dist/predicate/isPlainObject.mjs","../../node_modules/es-toolkit/dist/object/flattenObject.mjs","../../src/v2/api/overrides/create-form-data.ts","../../src/v2/api/generated/index.ts","../../src/v2/api/index.ts","../../src/api/accountsApi.tsx","../../src/containers/LayoutMain/RootLayout.jsx","../../src/v2/lib/theme.ts","../../src/components/Icons/Payrolls/CheckboxIcon.js","../../src/components/Icons/Payrolls/CheckboxCheckedIcon.js","../../src/pages/payrolls/payrollsTheme.js","../../src/v2/hocs/with-theme.tsx","../../src/v2/components/ui/icons/alert-triangle.tsx","../../src/v2/components/ui/icons/check-circle.tsx","../../src/v2/components/ui/icons/info-circle.tsx","../../src/v2/components/ui/app-provider/dialog-transition.tsx","../../src/v2/components/ui/icons/x-close.tsx","../../src/v2/components/ui/app-provider/snackbar-close-action.tsx","../../src/v2/components/ui/app-provider/index.tsx","../../src/App.js","../../src/index.js"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nexport default typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n var _muiName, _element$type;\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from '../ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useLazyRef(sortColumns, columns)\n */\nexport default function useLazyRef(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport default function useOnMount(fn) {\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18\nexport default function getScrollbarSize(doc) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = doc.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n}","// Source from https://github.com/alitaheri/normalize-scroll-left\nlet cachedType;\n\n/**\n * Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\n *\n * Types of scrollLeft, assuming scrollWidth=100 and direction is rtl.\n *\n * Type | <- Most Left | Most Right -> | Initial\n * ---------------- | ------------ | ------------- | -------\n * default | 0 | 100 | 100\n * negative (spec*) | -100 | 0 | 0\n * reverse | 100 | 0 | 0\n *\n * Edge 85: default\n * Safari 14: negative\n * Chrome 85: negative\n * Firefox 81: negative\n * IE11: reverse\n *\n * spec* https://drafts.csswg.org/cssom-view/#dom-window-scroll\n */\nexport function detectScrollType() {\n if (cachedType) {\n return cachedType;\n }\n const dummy = document.createElement('div');\n const container = document.createElement('div');\n container.style.width = '10px';\n container.style.height = '1px';\n dummy.appendChild(container);\n dummy.dir = 'rtl';\n dummy.style.fontSize = '14px';\n dummy.style.width = '4px';\n dummy.style.height = '1px';\n dummy.style.position = 'absolute';\n dummy.style.top = '-1000px';\n dummy.style.overflow = 'scroll';\n document.body.appendChild(dummy);\n cachedType = 'reverse';\n if (dummy.scrollLeft > 0) {\n cachedType = 'default';\n } else {\n dummy.scrollLeft = 1;\n if (dummy.scrollLeft === 0) {\n cachedType = 'negative';\n }\n }\n document.body.removeChild(dummy);\n return cachedType;\n}\n\n// Based on https://stackoverflow.com/a/24394376\nexport function getNormalizedScrollLeft(element, direction) {\n const scrollLeft = element.scrollLeft;\n\n // Perform the calculations only when direction is rtl to avoid messing up the ltr behavior\n if (direction !== 'rtl') {\n return scrollLeft;\n }\n const type = detectScrollType();\n switch (type) {\n case 'negative':\n return element.scrollWidth - element.clientWidth + scrollLeft;\n case 'reverse':\n return element.scrollWidth - element.clientWidth - scrollLeft;\n default:\n return scrollLeft;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import ClassNameGenerator from '../ClassNameGenerator';\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","import { ponyfillGlobal } from '@mui/utils';\n\n/**\n * @ignore - do not document.\n */\n\n// Store the license information in a global, so it can be shared\n// when module duplication occurs. The duplication of the modules can happen\n// if using multiple version of MUI X at the same time of the bundler\n// decide to duplicate to improve the size of the chunks.\n// eslint-disable-next-line no-underscore-dangle\nponyfillGlobal.__MUI_LICENSE_INFO__ = ponyfillGlobal.__MUI_LICENSE_INFO__ || {\n key: undefined\n};\nexport class LicenseInfo {\n static getLicenseInfo() {\n // eslint-disable-next-line no-underscore-dangle\n return ponyfillGlobal.__MUI_LICENSE_INFO__;\n }\n static getLicenseKey() {\n return LicenseInfo.getLicenseInfo().key;\n }\n static setLicenseKey(key) {\n const licenseInfo = LicenseInfo.getLicenseInfo();\n licenseInfo.key = key;\n }\n}","// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isParameterizedString(wat) {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isVueViewModel(wat) {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat ).__isVue || (wat )._isVue));\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n","import { isVueViewModel, isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n","import { isInstanceOf } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nfunction applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation,\n parser,\n maxValueLimit = 250,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = truncateAggregateExceptions(\n aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException ,\n key,\n event.exception.values,\n originalException,\n 0,\n ),\n maxValueLimit,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error,\n key,\n prevExceptions,\n exception,\n exceptionId,\n) {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (Array.isArray(error.errors)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception, exceptionId) {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception,\n source,\n exceptionId,\n parentId,\n) {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions, maxValueLength) {\n return exceptions.map(exception => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n return exception;\n });\n}\n\nexport { applyAggregateErrorsToEvent };\n//# sourceMappingURL=aggregate-errors.js.map\n","/**\n * Determine a breadcrumb's log level (only `warning` or `error`) based on an HTTP status code.\n */\nfunction getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n // NOTE: undefined defaults to 'info' in Sentry\n if (statusCode === undefined) {\n return undefined;\n } else if (statusCode >= 400 && statusCode < 500) {\n return 'warning';\n } else if (statusCode >= 500) {\n return 'error';\n } else {\n return undefined;\n }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n//# sourceMappingURL=breadcrumb-log-level.js.map\n","const SDK_VERSION = '8.32.0';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { SDK_VERSION } from './version.js';\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ = globalThis ;\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const versionedCarrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n return versionedCarrier[name] || (versionedCarrier[name] = creator());\n}\n\nexport { GLOBAL_OBJ, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","import { isString } from './is.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n elem,\n options = {},\n) {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset) {\n if (elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n if (elem.dataset['sentryElement']) {\n return elem.dataset['sentryElement'];\n }\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n const className = elem.className;\n if (className && isString(className)) {\n const classes = className.split(/\\s+/);\n for (const c of classes) {\n out.push(`.${c}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (const k of allowedAttrs) {\n const attr = elem.getAttribute(k);\n if (attr) {\n out.push(`[${k}=\"${attr}\"]`);\n }\n }\n\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) ;\n }\n return null;\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precendence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nfunction getComponentName(elem) {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement) {\n if (currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n if (currentElem.dataset['sentryElement']) {\n return currentElem.dataset['sentryElement'];\n }\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n\nexport { getComponentName, getDomElement, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { getGlobalSingleton, GLOBAL_OBJ } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] ;\n\n/** This may be mutated by the console instrumentation. */\nconst originalConsoleMethods\n\n = {};\n\n/** JSDoc */\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console ;\n const wrappedFuncs = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) ;\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] ;\n wrappedFuncs[level] = console[level] ;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] ;\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n * The logger is a singleton on the carrier, to ensure that a consistent logger is used throughout the SDK.\n */\nconst logger = getGlobalSingleton('logger', makeLogger);\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger, originalConsoleMethods };\n//# sourceMappingURL=logger.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { consoleSandbox, logger } from './logger.js';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nfunction dsnFromString(str) {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n // This should be logged to the console\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return undefined;\n }\n\n const [protocol, publicKey, pass = '', host = '', port = '', lastPath = ''] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!DEBUG_BUILD) {\n return true;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n const hasMissingRequiredComponent = requiredComponents.find(component => {\n if (!dsn[component]) {\n logger.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n\n if (hasMissingRequiredComponent) {\n return false;\n }\n\n if (!projectId.match(/^\\d+$/)) {\n logger.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n\n if (!isValidProtocol(protocol)) {\n logger.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n logger.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nfunction makeDsn(from) {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return undefined;\n }\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n\n constructor( message, logLevel = 'warn') {\n super(message);this.message = message;\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { logger } from './logger.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n const firstKey = keys[0];\n\n if (!firstKey) {\n return '[object has no keys]';\n }\n\n if (firstKey.length >= maxLength) {\n return truncate(firstKey, maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input) {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) ).constructor.name;\n return !name || name === 'Object';\n } catch (e) {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirstLines = 0, framesToPop = 0) => {\n const frames = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirstLines; i < lines.length; i++) {\n const line = lines[i] ;\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames.slice(framesToPop));\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the hub itself, making it:\n //\n // Sentry.captureException()\n // getCurrentHub().captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || getLastStackFrame(localStack).filename,\n function: frame.function || UNKNOWN_FUNCTION,\n }));\n}\n\nfunction getLastStackFrame(arr) {\n return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nfunction getFramesFromEvent(event) {\n const exception = event.exception;\n\n if (exception) {\n const frames = [];\n try {\n // @ts-expect-error Object could be undefined\n exception.values.forEach(value => {\n // @ts-expect-error Value could be undefined\n if (value.stacktrace.frames) {\n // @ts-expect-error Value could be undefined\n frames.push(...value.stacktrace.frames);\n }\n });\n return frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { logger } from '../logger.js';\nimport { getFunctionName } from '../stacktrace.js';\n\n// We keep the handlers globally\nconst handlers = {};\nconst instrumented = {};\n\n/** Add a handler function. */\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nfunction resetInstrumentationHandlers() {\n Object.keys(handlers).forEach(key => {\n handlers[key ] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nfunction maybeInstrument(type, instrumentFn) {\n if (!instrumented[type]) {\n instrumentFn();\n instrumented[type] = true;\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n//# sourceMappingURL=handlers.js.map\n","import { CONSOLE_LEVELS, originalConsoleMethods } from '../logger.js';\nimport { fill } from '../object.js';\nimport { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addConsoleInstrumentationHandler(handler) {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole() {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args) {\n const handlerData = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log && log.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n\nexport { addConsoleInstrumentationHandler };\n//# sourceMappingURL=console.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { logger } from './logger.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * isNative checks if the given function is a native implementation\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNativeFunction(func) {\n return func && /^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFunction(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFunction(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\nexport { isNativeFunction, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n *\n * TODO(v8): Return type should be rounded.\n */\nfunction dateTimestampInSeconds() {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc() {\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n","import { isError } from '../is.js';\nimport { fill, addNonEnumerableProperty } from '../object.js';\nimport { supportsNativeFetch } from '../supports.js';\nimport { timestampInSeconds } from '../time.js';\nimport { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addFetchInstrumentationHandler(\n handler,\n skipNativeFetchCheck,\n) {\n const type = 'fetch';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(undefined, skipNativeFetchCheck));\n}\n\n/**\n * Add an instrumentation handler for long-lived fetch requests, like consuming server-sent events (SSE) via fetch.\n * The handler will resolve the request body and emit the actual `endTimestamp`, so that the\n * span can be updated accordingly.\n *\n * Only used internally\n * @hidden\n */\nfunction addFetchEndInstrumentationHandler(handler) {\n const type = 'fetch-body-resolved';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(streamHandler));\n}\n\nfunction instrumentFetch(onFetchResolved, skipNativeFetchCheck = false) {\n if (skipNativeFetchCheck && !supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch) {\n return function (...args) {\n const { method, url } = parseFetchArgs(args);\n const handlerData = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: timestampInSeconds() * 1000,\n };\n\n // if there is no callback, fetch is instrumented directly\n if (!onFetchResolved) {\n triggerHandlers('fetch', {\n ...handlerData,\n });\n }\n\n // We capture the stack right here and not in the Promise error callback because Safari (and probably other\n // browsers too) will wipe the stack trace up to this point, only leaving us with this file which is useless.\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n const virtualStackTrace = new Error().stack;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n async (response) => {\n if (onFetchResolved) {\n onFetchResolved(response);\n } else {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n }\n\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n error,\n });\n\n if (isError(error) && error.stack === undefined) {\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n error.stack = virtualStackTrace;\n addNonEnumerableProperty(error, 'framesToPop', 1);\n }\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nasync function resolveResponse(res, onFinishedResolving) {\n if (res && res.body && res.body.getReader) {\n const responseReader = res.body.getReader();\n\n // eslint-disable-next-line no-inner-declarations\n async function consumeChunks({ done }) {\n if (!done) {\n try {\n // abort reading if read op takes more than 5s\n const result = await Promise.race([\n responseReader.read(),\n new Promise(res => {\n setTimeout(() => {\n res({ done: true });\n }, 5000);\n }),\n ]);\n await consumeChunks(result);\n } catch (error) {\n // handle error if needed\n }\n } else {\n return Promise.resolve();\n }\n }\n\n return responseReader\n .read()\n .then(consumeChunks)\n .then(onFinishedResolving)\n .catch(() => undefined);\n }\n}\n\nasync function streamHandler(response) {\n // clone response for awaiting stream\n let clonedResponseForResolving;\n try {\n clonedResponseForResolving = response.clone();\n } catch (e) {\n return;\n }\n\n await resolveResponse(clonedResponseForResolving, () => {\n triggerHandlers('fetch-body-resolved', {\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n });\n}\n\nfunction hasProp(obj, prop) {\n return !!obj && typeof obj === 'object' && !!(obj )[prop];\n}\n\nfunction getUrlFromResource(resource) {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nfunction parseFetchArgs(fetchArgs) {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs ;\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg ),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n\nexport { addFetchEndInstrumentationHandler, addFetchInstrumentationHandler, parseFetchArgs };\n//# sourceMappingURL=fetch.js.map\n","import { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnErrorHandler = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalErrorInstrumentationHandler(handler) {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError() {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n GLOBAL_OBJ.onerror = function (\n msg,\n url,\n line,\n column,\n error,\n ) {\n const handlerData = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler && !_oldOnErrorHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalErrorInstrumentationHandler };\n//# sourceMappingURL=globalError.js.map\n","import { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnUnhandledRejectionHandler = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalUnhandledRejectionInstrumentationHandler(\n handler,\n) {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n GLOBAL_OBJ.onunhandledrejection = function (e) {\n const handlerData = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler && !_oldOnUnhandledRejectionHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalUnhandledRejectionInstrumentationHandler };\n//# sourceMappingURL=globalUnhandledRejection.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nfunction getSDKSource() {\n // This comment is used to identify this line in the CDN bundle build step and replace this with \"return 'cdn';\"\n /* __SENTRY_SDK_SOURCE__ */ return 'npm';\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { isNodeEnv } from './node.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * Returns true if we are in the browser.\n */\nfunction isBrowser() {\n // eslint-disable-next-line no-restricted-globals\n return typeof window !== 'undefined' && (!isNodeEnv() || isElectronNodeRenderer());\n}\n\n// Electron renderers with nodeIntegration enabled are detected as Node.js so we specifically test for them\nfunction isElectronNodeRenderer() {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (GLOBAL_OBJ ).process !== undefined && ((GLOBAL_OBJ ).process ).type === 'renderer'\n );\n}\n\nexport { isBrowser };\n//# sourceMappingURL=isBrowser.js.map\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = () => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\nfunction _parseInt(input) {\n return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = _parseInt(match[1]);\n const minor = _parseInt(match[2]);\n const patch = _parseInt(match[3]);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n // We guard here to ensure this is not larger than the existing number of lines\n const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { isVueViewModel, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = 100, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n ['boolean', 'string'].includes(typeof value) ||\n (typeof value === 'number' && Number.isFinite(value))\n ) {\n return value ;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value )['__sentry_override_normalization_depth__'] === 'number'\n ? ((value )['__sentry_override_normalization_depth__'] )\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value );\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && !Number.isFinite(value)) {\n return `[${value}]`;\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value) {\n const prototype = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nfunction normalizeUrlToBase(url, basePath) {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase };\n//# sourceMappingURL=normalize.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n\n constructor(\n executor,\n ) {SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init2() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init3() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init4() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n const buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0] || Promise.resolve(undefined);\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return (urlPath.split(/[?#]/, 1) )[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nfunction getSanitizedUrlString(url) {\n const { protocol, host, path } = url;\n\n const filteredHost =\n (host &&\n host\n // Always filter out authority\n .replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '')) ||\n '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n\nexport { getNumberOfUrlSegments, getSanitizedUrlString, parseUrl, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nconst validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { isString } from './is.js';\nimport { logger } from './logger.js';\n\nconst BAGGAGE_HEADER_NAME = 'baggage';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nfunction baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader,\n) {\n const baggageObject = parseBaggageHeader(baggageHeader);\n\n if (!baggageObject) {\n return undefined;\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext ;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nfunction dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext,\n) {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nfunction parseBaggageHeader(\n baggageHeader,\n) {\n if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n return undefined;\n }\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n return baggageHeader.reduce((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n Object.entries(currBaggageObject).forEach(([key, value]) => {\n acc[key] = value;\n });\n return acc;\n }, {});\n }\n\n return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader) {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce((acc, [key, value]) => {\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object) {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n","import { baggageHeaderToDynamicSamplingContext } from './baggage.js';\nimport { uuid4 } from './misc.js';\n\n// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- RegExp is used for readability here\nconst TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nfunction extractTraceparentData(traceparent) {\n if (!traceparent) {\n return undefined;\n }\n\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return undefined;\n }\n\n let parentSampled;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\n/**\n * Create a propagation context from incoming headers or\n * creates a minimal new one if the headers are undefined.\n */\nfunction propagationContextFromHeaders(\n sentryTrace,\n baggage,\n) {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n };\n } else {\n return {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n };\n }\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nfunction generateSentryTraceHeader(\n traceId = uuid4(),\n spanId = uuid4().substring(16),\n sampled,\n) {\n let sampledString = '';\n if (sampled !== undefined) {\n sampledString = sampled ? '-1' : '-0';\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData, generateSentryTraceHeader, propagationContextFromHeaders };\n//# sourceMappingURL=tracing.js.map\n","import { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { dropUndefinedKeys } from './object.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n const envelopeItems = envelope[1];\n\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nfunction envelopeContainsItemType(envelope, types) {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8 array.\n */\nfunction encodeUTF8(input) {\n return GLOBAL_OBJ.__SENTRY__ && GLOBAL_OBJ.__SENTRY__.encodePolyfill\n ? GLOBAL_OBJ.__SENTRY__.encodePolyfill(input)\n : new TextEncoder().encode(input);\n}\n\n/**\n * Decode a UTF8 array to string.\n */\nfunction decodeUTF8(input) {\n return GLOBAL_OBJ.__SENTRY__ && GLOBAL_OBJ.__SENTRY__.decodePolyfill\n ? GLOBAL_OBJ.__SENTRY__.decodePolyfill(input)\n : new TextDecoder().decode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Parses an envelope\n */\nfunction parseEnvelope(env) {\n let buffer = typeof env === 'string' ? encodeUTF8(env) : env;\n\n function readBinary(length) {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson() {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(decodeUTF8(readBinary(i))) ;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates envelope item for a single span\n */\nfunction createSpanEnvelopeItem(spanJson) {\n const spanHeaders = {\n type: 'span',\n };\n\n return [spanHeaders, spanJson];\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(attachment) {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n profile_chunk: 'profile',\n replay_event: 'replay',\n replay_recording: 'replay',\n check_in: 'monitor',\n feedback: 'feedback',\n span: 'span',\n statsd: 'metric_bucket',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n ...(dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n const clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nconst DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nfunction disabledUntil(limits, dataCategory) {\n return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, dataCategory, now = Date.now()) {\n return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n const updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n * Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5) ;\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n/**\n * Polyfill for the nullish coalescing operator (`??`).\n *\n * Note that the RHS is wrapped in a function so that if it's a computed value, that evaluation won't happen unless the\n * LHS evaluates to a nullish value, to mimic the operator's short-circuiting behavior.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n *\n * @param lhs The value of the expression to the left of the `??`\n * @param rhsFn A function returning the value of the expression to the right of the `??`\n * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value\n */\nfunction _nullishCoalesce(lhs, rhsFn) {\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n return lhs != null ? lhs : rhsFn();\n}\n\n// Sucrase version:\n// function _nullishCoalesce(lhs, rhsFn) {\n// if (lhs != null) {\n// return lhs;\n// } else {\n// return rhsFn();\n// }\n// }\n\nexport { _nullishCoalesce };\n//# sourceMappingURL=_nullishCoalesce.js.map\n","/**\n * Polyfill for the optional chain operator, `?.`, given previous conversion of the expression into an array of values,\n * descriptors, and functions.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n * See https://github.com/alangpierce/sucrase/blob/265887868966917f3b924ce38dfad01fbab1329f/src/transformers/OptionalChainingNullishTransformer.ts#L15\n *\n * @param ops Array result of expression conversion\n * @returns The value of the expression\n */\nfunction _optionalChain(ops) {\n let lastAccessLHS = undefined;\n let value = ops[0];\n let i = 1;\n while (i < ops.length) {\n const op = ops[i] ;\n const fn = ops[i + 1] ;\n i += 2;\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n // really we're meaning to return `undefined` as an actual value here, but it saves bytes not to write it\n return;\n }\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn((...args) => (value ).call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n}\n\n// Sucrase version\n// function _optionalChain(ops) {\n// let lastAccessLHS = undefined;\n// let value = ops[0];\n// let i = 1;\n// while (i < ops.length) {\n// const op = ops[i];\n// const fn = ops[i + 1];\n// i += 2;\n// if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n// return undefined;\n// }\n// if (op === 'access' || op === 'optionalAccess') {\n// lastAccessLHS = value;\n// value = fn(value);\n// } else if (op === 'call' || op === 'optionalCall') {\n// value = fn((...args) => value.call(lastAccessLHS, ...args));\n// lastAccessLHS = undefined;\n// }\n// }\n// return value;\n// }\n\nexport { _optionalChain };\n//# sourceMappingURL=_optionalChain.js.map\n","import { uuid4 } from './misc.js';\n\n/**\n * Returns a new minimal propagation context\n */\nfunction generatePropagationContext() {\n return {\n traceId: uuid4(),\n spanId: uuid4().substring(16),\n };\n}\n\nexport { generatePropagationContext };\n//# sourceMappingURL=propagationContext.js.map\n","import { GLOBAL_OBJ } from '../worldwide.js';\n\n// Based on https://github.com/angular/angular.js/pull/13945/files\n// The MIT License\n\n\nconst WINDOW = GLOBAL_OBJ ;\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chromeVar = (WINDOW ).chrome;\n const isChromePackagedApp = chromeVar && chromeVar.app && chromeVar.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { supportsHistory };\n//# sourceMappingURL=supportsHistory.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { GLOBAL_OBJ, SDK_VERSION } from '@sentry/utils';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n // This ensures a Sentry carrier exists\n getSentryCarrier(GLOBAL_OBJ);\n return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nfunction getSentryCarrier(carrier) {\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n // For now: First SDK that sets the .version property wins\n __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n // Intentionally populating and returning the version of \"this\" SDK instance\n // rather than what's set in .version so that \"this\" SDK always gets its carrier\n return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\nexport { getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { addNonEnumerableProperty } from '@sentry/utils';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _setSpanForScope(scope, span) {\n if (span) {\n addNonEnumerableProperty(scope , SCOPE_SPAN_FIELD, span);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (scope )[SCOPE_SPAN_FIELD];\n }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _getSpanForScope(scope) {\n return scope[SCOPE_SPAN_FIELD];\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n","import { generatePropagationContext, isPlainObject, dateTimestampInSeconds, uuid4, logger } from '@sentry/utils';\nimport { updateSession } from './session.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information.\n */\nclass ScopeClass {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called during event processing. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /** Propagation Context for distributed tracing */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n\n /**\n * Transaction Name\n *\n * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n */\n\n /** Session */\n\n /** Request Mode Session Status */\n\n /** The client on this scope */\n\n /** Contains the last event id of a captured event. */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = generatePropagationContext();\n }\n\n /**\n * @inheritDoc\n */\n clone() {\n const newScope = new ScopeClass();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n\n _setSpanForScope(newScope, _getSpanForScope(this));\n\n return newScope;\n }\n\n /**\n * @inheritDoc\n */\n setClient(client) {\n this._client = client;\n }\n\n /**\n * @inheritDoc\n */\n setLastEventId(lastEventId) {\n this._lastEventId = lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this._client ;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n const [scopeInstance, requestSession] =\n scopeToMerge instanceof Scope\n ? [scopeToMerge.getScopeData(), scopeToMerge.getRequestSession()]\n : isPlainObject(scopeToMerge)\n ? [captureContext , (captureContext ).requestSession]\n : [];\n\n const { tags, extra, user, contexts, level, fingerprint = [], propagationContext } = scopeInstance || {};\n\n this._tags = { ...this._tags, ...tags };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n\n if (level) {\n this._level = level;\n }\n\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n\n if (requestSession) {\n this._requestSession = requestSession;\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n // client is not cleared here on purpose!\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._session = undefined;\n _setSpanForScope(this, undefined);\n this._attachments = [];\n this._propagationContext = generatePropagationContext();\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n getScopeData() {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n };\n }\n\n /**\n * @inheritDoc\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setPropagationContext(context) {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getPropagationContext() {\n return this._propagationContext;\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(message, level, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n// NOTE: By exporting this here as const & type, instead of doing `export class`,\n// We can get the correct class when importing from `@sentry/core`, but the original type (from `@sentry/types`)\n// This is helpful for interop, e.g. when doing `import type { Scope } from '@sentry/node';` (which re-exports this)\n\n/**\n * Holds additional event information.\n */\nconst Scope = ScopeClass;\n\n/**\n * Holds additional event information.\n */\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n","import { getGlobalSingleton } from '@sentry/utils';\nimport { Scope } from './scope.js';\n\n/** Get the default current scope. */\nfunction getDefaultCurrentScope() {\n return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nfunction getDefaultIsolationScope() {\n return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n","import { isThenable } from '@sentry/utils';\nimport { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\n/**\n * This is an object that holds a stack of scopes.\n */\nclass AsyncContextStack {\n\n constructor(scope, isolationScope) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n // scope stack for domains or the process\n this._stack = [{ scope: assignedScope }];\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Fork a scope for the stack.\n */\n withScope(callback) {\n const scope = this._pushScope();\n\n let maybePromiseResult;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n this._popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n this._popScope();\n return res;\n },\n e => {\n this._popScope();\n throw e;\n },\n );\n }\n\n this._popScope();\n return maybePromiseResult;\n }\n\n /**\n * Get the client of the stack.\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /**\n * Returns the scope of the top stack.\n */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /**\n * Get the isolation scope for the stack.\n */\n getIsolationScope() {\n return this._isolationScope;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n */\n getStackTop() {\n return this._stack[this._stack.length - 1] ;\n }\n\n /**\n * Push a scope to the stack.\n */\n _pushScope() {\n // We want to clone the content of prev scope\n const scope = this.getScope().clone();\n this._stack.push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * Pop a scope from the stack.\n */\n _popScope() {\n if (this._stack.length <= 1) return false;\n return !!this._stack.pop();\n }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack() {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n\n return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope(callback) {\n return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope(scope, callback) {\n const stack = getAsyncContextStack() ;\n return stack.withScope(() => {\n stack.getStackTop().scope = scope;\n return callback(scope);\n });\n}\n\nfunction withIsolationScope(callback) {\n return getAsyncContextStack().withScope(() => {\n return callback(getAsyncContextStack().getIsolationScope());\n });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nfunction getStackAsyncContextStrategy() {\n return {\n withIsolationScope,\n withScope,\n withSetScope,\n withSetIsolationScope: (_isolationScope, callback) => {\n return withIsolationScope(callback);\n },\n getCurrentScope: () => getAsyncContextStack().getScope(),\n getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n","import { getMainCarrier, getSentryCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nfunction getAsyncContextStrategy(carrier) {\n const sentry = getSentryCarrier(carrier);\n\n if (sentry.acs) {\n return sentry.acs;\n }\n\n // Otherwise, use the default one (stack)\n return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n","import { getGlobalSingleton } from '@sentry/utils';\nimport { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier } from './carrier.js';\nimport { Scope } from './scope.js';\n\n/**\n * Get the currently active scope.\n */\nfunction getCurrentScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current exection context.\n */\nfunction getIsolationScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nfunction getGlobalScope() {\n return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\n\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nfunction withScope(\n ...rest\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n\n if (!scope) {\n return acs.withScope(callback);\n }\n\n return acs.withSetScope(scope, callback);\n }\n\n return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\n\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nfunction withIsolationScope(\n ...rest\n\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n\n return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nfunction getClient() {\n return getCurrentScope().getClient();\n}\n\nexport { getClient, getCurrentScope, getGlobalScope, getIsolationScope, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n","import { dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * key: bucketKey\n * value: [exportKey, MetricSummary]\n */\n\nconst METRICS_SPAN_FIELD = '_sentryMetrics';\n\n/**\n * Fetches the metric summary if it exists for the passed span\n */\nfunction getMetricSummaryJsonForSpan(span) {\n const storage = (span )[METRICS_SPAN_FIELD];\n\n if (!storage) {\n return undefined;\n }\n const output = {};\n\n for (const [, [exportKey, summary]] of storage) {\n const arr = output[exportKey] || (output[exportKey] = []);\n arr.push(dropUndefinedKeys(summary));\n }\n\n return output;\n}\n\n/**\n * Updates the metric summary on a span.\n */\nfunction updateMetricSummaryOnSpan(\n span,\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const existingStorage = (span )[METRICS_SPAN_FIELD];\n const storage =\n existingStorage ||\n ((span )[METRICS_SPAN_FIELD] = new Map());\n\n const exportKey = `${metricType}:${sanitizedName}@${unit}`;\n const bucketItem = storage.get(bucketKey);\n\n if (bucketItem) {\n const [, summary] = bucketItem;\n storage.set(bucketKey, [\n exportKey,\n {\n min: Math.min(summary.min, value),\n max: Math.max(summary.max, value),\n count: (summary.count += 1),\n sum: (summary.sum += value),\n tags: summary.tags,\n },\n ]);\n } else {\n storage.set(bucketKey, [\n exportKey,\n {\n min: value,\n max: value,\n count: 1,\n sum: value,\n tags,\n },\n ]);\n }\n}\n\nexport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan };\n//# sourceMappingURL=metric-summary.js.map\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * The id of the profile that this span occured in.\n */\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nconst SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\nexport { SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_URL_FULL };\n//# sourceMappingURL=semanticAttributes.js.map\n","const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nfunction getSpanStatusFromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return { code: SPAN_STATUS_OK };\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n case 403:\n return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n case 404:\n return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n case 409:\n return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n case 413:\n return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n case 429:\n return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n case 499:\n return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n case 503:\n return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n case 504:\n return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n\n return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nfunction setHttpStatus(span, httpStatus) {\n span.setAttribute('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus.message !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n","import { dropUndefinedKeys, generateSentryTraceHeader, timestampInSeconds, addNonEnumerableProperty } from '@sentry/utils';\nimport { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan } from '../metrics/metric-summary.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\n// These are aligned with OpenTelemetry trace flags\nconst TRACE_FLAG_NONE = 0x0;\nconst TRACE_FLAG_SAMPLED = 0x1;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nfunction spanToTransactionTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin } = spanToJSON(span);\n\n return dropUndefinedKeys({\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n });\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nfunction spanToTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { parent_span_id } = spanToJSON(span);\n\n return dropUndefinedKeys({ parent_span_id, span_id, trace_id });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nfunction spanToTraceHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nfunction spanTimeInputToSeconds(input) {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nfunction spanToJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n\n try {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, parentSpanId, status } = span;\n\n return dropUndefinedKeys({\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n _metrics_summary: getMetricSummaryJsonForSpan(span),\n });\n }\n\n // Finally, at least we have `spanContext()`....\n return {\n span_id,\n trace_id,\n };\n } catch (e) {\n return {};\n }\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n const castSpan = span ;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span) {\n return typeof (span ).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nfunction spanIsSampled(span) {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nfunction getStatusMessage(status) {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return undefined;\n }\n\n if (status.code === SPAN_STATUS_OK) {\n return 'ok';\n }\n\n return status.message || 'unknown_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\n/**\n * Adds an opaque child span reference to a span.\n */\nfunction addChildSpanToSpan(span, childSpan) {\n // We store the root span reference on the child span\n // We need this for `getRootSpan()` to work\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan , ROOT_SPAN_FIELD, rootSpan);\n\n // We store a list of child spans on the parent span\n // We need this for `getSpanDescendants()` to work\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n }\n}\n\n/** This is only used internally by Idle Spans. */\nfunction removeChildSpanFromSpan(span, childSpan) {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nfunction getSpanDescendants(span) {\n const resultSet = new Set();\n\n function addSpanChildren(span) {\n // This exit condition is required to not infinitely loop in case of a circular dependency.\n if (resultSet.has(span)) {\n return;\n // We want to ignore unsampled spans (e.g. non recording spans)\n } else if (spanIsSampled(span)) {\n resultSet.add(span);\n const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n\n addSpanChildren(span);\n\n return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nfunction getRootSpan(span) {\n return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n\n return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Updates the metric summary on the currently active span\n */\nfunction updateMetricSummaryOnActiveSpan(\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const span = getActiveSpan();\n if (span) {\n updateMetricSummaryOnSpan(span, metricType, sanitizedName, value, unit, tags, bucketKey);\n }\n}\n\nexport { TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, removeChildSpanFromSpan, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTransactionTraceContext, updateMetricSummaryOnActiveSpan };\n//# sourceMappingURL=spanUtils.js.map\n","import { addGlobalErrorInstrumentationHandler, addGlobalUnhandledRejectionInstrumentationHandler, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { getActiveSpan, getRootSpan } from '../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\n\nlet errorsInstrumented = false;\n\n/**\n * Ensure that global errors automatically set the active span status.\n */\nfunction registerSpanErrorInstrumentation() {\n if (errorsInstrumented) {\n return;\n }\n\n errorsInstrumented = true;\n addGlobalErrorInstrumentationHandler(errorCallback);\n addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active root span as failed\n */\nfunction errorCallback() {\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan) {\n const message = 'internal_error';\n DEBUG_BUILD && logger.log(`[Tracing] Root span: ${message} -> Global error occured`);\n rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message });\n }\n}\n\n// The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n// node.js default exit behaviour\nerrorCallback.tag = 'sentry_tracingErrorCallback';\n\nexport { registerSpanErrorInstrumentation };\n//# sourceMappingURL=errors.js.map\n","import { addNonEnumerableProperty } from '@sentry/utils';\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\n/** Store the scope & isolation scope for a span, which can the be used when it is finished. */\nfunction setCapturedScopesOnSpan(span, scope, isolationScope) {\n if (span) {\n addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, isolationScope);\n addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n */\nfunction getCapturedScopesOnSpan(span) {\n return {\n scope: (span )[SCOPE_ON_START_SPAN_FIELD],\n isolationScope: (span )[ISOLATION_SCOPE_ON_START_SPAN_FIELD],\n };\n}\n\nexport { getCapturedScopesOnSpan, setCapturedScopesOnSpan };\n//# sourceMappingURL=utils.js.map\n","import { getClient } from '../currentScopes.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nfunction hasTracingEnabled(\n maybeOptions,\n) {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const client = getClient();\n const options = maybeOptions || (client && client.getOptions());\n // eslint-disable-next-line deprecation/deprecation\n return !!options && (options.enableTracing || 'tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\nexport { hasTracingEnabled };\n//# sourceMappingURL=hasTracingEnabled.js.map\n","import { uuid4 } from '@sentry/utils';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils.js';\n\n/**\n * A Sentry Span that is non-recording, meaning it will not be sent to Sentry.\n */\nclass SentryNonRecordingSpan {\n\n constructor(spanContext = {}) {\n this._traceId = spanContext.traceId || uuid4();\n this._spanId = spanContext.spanId || uuid4().substring(16);\n }\n\n /** @inheritdoc */\n spanContext() {\n return {\n spanId: this._spanId,\n traceId: this._traceId,\n traceFlags: TRACE_FLAG_NONE,\n };\n }\n\n /** @inheritdoc */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n end(_timestamp) {}\n\n /** @inheritdoc */\n setAttribute(_key, _value) {\n return this;\n }\n\n /** @inheritdoc */\n setAttributes(_values) {\n return this;\n }\n\n /** @inheritdoc */\n setStatus(_status) {\n return this;\n }\n\n /** @inheritdoc */\n updateName(_name) {\n return this;\n }\n\n /** @inheritdoc */\n isRecording() {\n return false;\n }\n\n /** @inheritdoc */\n addEvent(\n _name,\n _attributesOrStartTime,\n _startTime,\n ) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for being comliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n addLink(_link) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for being comliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n addLinks(_links) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for being comliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n recordException(_exception, _time) {\n // noop\n }\n}\n\nexport { SentryNonRecordingSpan };\n//# sourceMappingURL=sentryNonRecordingSpan.js.map\n","const DEFAULT_ENVIRONMENT = 'production';\n\nexport { DEFAULT_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","import { dropUndefinedKeys, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, addNonEnumerableProperty } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { spanToJSON, getRootSpan, spanIsSampled } from '../utils/spanUtils.js';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\n/**\n * Freeze the given DSC on the given span.\n */\nfunction freezeDscOnSpan(span, dsc) {\n const spanWithMaybeDsc = span ;\n addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n public_key,\n trace_id,\n }) ;\n\n client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nfunction getDynamicSamplingContextFromSpan(span) {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n const dsc = getDynamicSamplingContextFromClient(spanToJSON(span).trace_id || '', client);\n\n const rootSpan = getRootSpan(span);\n\n // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n const frozenDsc = (rootSpan )[FROZEN_DSC_FIELD];\n if (frozenDsc) {\n return frozenDsc;\n }\n\n // For OpenTelemetry, we freeze the DSC on the trace state\n const traceState = rootSpan.spanContext().traceState;\n const traceStateDsc = traceState && traceState.get('sentry.dsc');\n\n // If the span has a DSC, we want it to take precedence\n const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n if (dscOnTraceState) {\n return dscOnTraceState;\n }\n\n // Else, we generate it from the span\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data || {};\n const maybeSampleRate = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n\n if (maybeSampleRate != null) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n const name = jsonSpan.description;\n if (source !== 'url' && name) {\n dsc.transaction = name;\n }\n\n // How can we even land here with hasTracingEnabled() returning false?\n // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n // So we end up with an active span that is not sampled (neither positively nor negatively)\n if (hasTracingEnabled()) {\n dsc.sampled = String(spanIsSampled(rootSpan));\n }\n\n client.emit('createDsc', dsc, rootSpan);\n\n return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nfunction spanToBaggageHeader(span) {\n const dsc = getDynamicSamplingContextFromSpan(span);\n return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n","import { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { spanToJSON, spanIsSampled, getRootSpan } from '../utils/spanUtils.js';\n\n/**\n * Print a log message for a started span.\n */\nfunction logSpanStart(span) {\n if (!DEBUG_BUILD) return;\n\n const { description = '< unknown name >', op = '< unknown op >', parent_span_id: parentSpanId } = spanToJSON(span);\n const { spanId } = span.spanContext();\n\n const sampled = spanIsSampled(span);\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n\n const header = `[Tracing] Starting ${sampled ? 'sampled' : 'unsampled'} ${isRootSpan ? 'root ' : ''}span`;\n\n const infoParts = [`op: ${op}`, `name: ${description}`, `ID: ${spanId}`];\n\n if (parentSpanId) {\n infoParts.push(`parent ID: ${parentSpanId}`);\n }\n\n if (!isRootSpan) {\n const { op, description } = spanToJSON(rootSpan);\n infoParts.push(`root ID: ${rootSpan.spanContext().spanId}`);\n if (op) {\n infoParts.push(`root op: ${op}`);\n }\n if (description) {\n infoParts.push(`root description: ${description}`);\n }\n }\n\n logger.log(`${header}\n ${infoParts.join('\\n ')}`);\n}\n\n/**\n * Print a log message for an ended span.\n */\nfunction logSpanEnd(span) {\n if (!DEBUG_BUILD) return;\n\n const { description = '< unknown name >', op = '< unknown op >' } = spanToJSON(span);\n const { spanId } = span.spanContext();\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n\n const msg = `[Tracing] Finishing \"${op}\" ${isRootSpan ? 'root ' : ''}span \"${description}\" with ID ${spanId}`;\n logger.log(msg);\n}\n\nexport { logSpanEnd, logSpanStart };\n//# sourceMappingURL=logSpans.js.map\n","import { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\n/**\n * Parse a sample rate from a given value.\n * This will either return a boolean or number sample rate, if the sample rate is valid (between 0 and 1).\n * If a string is passed, we try to convert it to a number.\n *\n * Any invalid sample rate will return `undefined`.\n */\nfunction parseSampleRate(sampleRate) {\n if (typeof sampleRate === 'boolean') {\n return Number(sampleRate);\n }\n\n const rate = typeof sampleRate === 'string' ? parseFloat(sampleRate) : sampleRate;\n if (typeof rate !== 'number' || isNaN(rate) || rate < 0 || rate > 1) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n sampleRate,\n )} of type ${JSON.stringify(typeof sampleRate)}.`,\n );\n return undefined;\n }\n\n return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n","import { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\n\n/**\n * Makes a sampling decision for the given options.\n *\n * Called every time a root span is created. Only root spans which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n */\nfunction sampleSpan(\n options,\n samplingContext,\n) {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n return [false];\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` nor `enableTracing` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n } else {\n // When `enableTracing === true`, we use a sample rate of 100%\n sampleRate = 1;\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get.\n // (The only valid values are booleans or numbers between 0 and 1.)\n const parsedSampleRate = parseSampleRate(sampleRate);\n\n if (parsedSampleRate === undefined) {\n DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n return [false];\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!parsedSampleRate) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n return [false, parsedSampleRate];\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n const shouldSample = Math.random() < parsedSampleRate;\n\n // if we're not going to keep it, we're done\n if (!shouldSample) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return [false, parsedSampleRate];\n }\n\n return [true, parsedSampleRate];\n}\n\nexport { sampleSpan };\n//# sourceMappingURL=sampling.js.map\n","import { getSdkMetadataForEnvelopeHeader, dsnToString, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext.js';\nimport { spanToJSON } from './utils/spanUtils.js';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n /*\n Note: Due to TS, event.type may be `replay_event`, theoretically.\n In practice, we never call `createEventEnvelope` with `replay_event` type,\n and we'd have to adjut a looot of types to make this work properly.\n We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n So the safe choice is to really guard against the replay_event type here.\n */\n const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/**\n * Create envelope from Span item.\n *\n * Takes an optional client and runs spans through `beforeSendSpan` if available.\n */\nfunction createSpanEnvelope(spans, client) {\n function dscHasRequiredProps(dsc) {\n return !!dsc.trace_id && !!dsc.public_key;\n }\n\n // For the moment we'll obtain the DSC from the first span in the array\n // This might need to be changed if we permit sending multiple spans from\n // different segments in one envelope\n const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n\n const headers = {\n sent_at: new Date().toISOString(),\n ...(dscHasRequiredProps(dsc) && { trace: dsc }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const beforeSendSpan = client && client.getOptions().beforeSendSpan;\n const convertToSpanJSON = beforeSendSpan\n ? (span) => beforeSendSpan(spanToJSON(span) )\n : (span) => spanToJSON(span);\n\n const items = [];\n for (const span of spans) {\n const spanJson = convertToSpanJSON(span);\n if (spanJson) {\n items.push(createSpanEnvelopeItem(spanJson));\n }\n }\n\n return createEnvelope(headers, items);\n}\n\nexport { createEventEnvelope, createSessionEnvelope, createSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT } from '../semanticAttributes.js';\nimport { getRootSpan, getActiveSpan } from '../utils/spanUtils.js';\n\n/**\n * Adds a measurement to the active transaction on the current global scope. You can optionally pass in a different span\n * as the 4th parameter.\n */\nfunction setMeasurement(name, value, unit, activeSpan = getActiveSpan()) {\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n\n if (rootSpan) {\n rootSpan.addEvent(name, {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: value,\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: unit ,\n });\n }\n}\n\n/**\n * Convert timed events to measurements.\n */\nfunction timedEventsToMeasurements(events) {\n if (!events || events.length === 0) {\n return undefined;\n }\n\n const measurements = {};\n events.forEach(event => {\n const attributes = event.attributes || {};\n const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT] ;\n const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE] ;\n\n if (typeof unit === 'string' && typeof value === 'number') {\n measurements[event.name] = { value, unit };\n }\n });\n\n return measurements;\n}\n\nexport { setMeasurement, timedEventsToMeasurements };\n//# sourceMappingURL=measurement.js.map\n","import { uuid4, timestampInSeconds, dropUndefinedKeys, logger } from '@sentry/utils';\nimport { getClient, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { createSpanEnvelope } from '../envelope.js';\nimport { getMetricSummaryJsonForSpan } from '../metrics/metric-summary.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { TRACE_FLAG_SAMPLED, TRACE_FLAG_NONE, spanTimeInputToSeconds, getStatusMessage, getRootSpan, spanToJSON, getSpanDescendants, spanToTransactionTraceContext } from '../utils/spanUtils.js';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext.js';\nimport { logSpanEnd } from './logSpans.js';\nimport { timedEventsToMeasurements } from './measurement.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\nconst MAX_SPAN_COUNT = 1000;\n\n/**\n * Span contains all data about a span\n */\nclass SentrySpan {\n\n /** Epoch timestamp in seconds when the span started. */\n\n /** Epoch timestamp in seconds when the span ended. */\n\n /** Internal keeper of the status */\n\n /** The timed events added to this span. */\n\n /** if true, treat span as a standalone span (not part of a transaction) */\n\n /**\n * You should never call the constructor manually, always use `Sentry.startSpan()`\n * or other span methods.\n * @internal\n * @hideconstructor\n * @hidden\n */\n constructor(spanContext = {}) {\n this._traceId = spanContext.traceId || uuid4();\n this._spanId = spanContext.spanId || uuid4().substring(16);\n this._startTime = spanContext.startTimestamp || timestampInSeconds();\n\n this._attributes = {};\n this.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'manual',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n ...spanContext.attributes,\n });\n\n this._name = spanContext.name;\n\n if (spanContext.parentSpanId) {\n this._parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this._sampled = spanContext.sampled;\n }\n if (spanContext.endTimestamp) {\n this._endTime = spanContext.endTimestamp;\n }\n\n this._events = [];\n\n this._isStandaloneSpan = spanContext.isStandalone;\n\n // If the span is already ended, ensure we finalize the span immediately\n if (this._endTime) {\n this._onSpanEnded();\n }\n }\n\n /**\n * This should generally not be used,\n * but it is needed for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n addLink(_link) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but it is needed for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n addLinks(_links) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but it is needed for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n recordException(_exception, _time) {\n // noop\n }\n\n /** @inheritdoc */\n spanContext() {\n const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n return {\n spanId,\n traceId,\n traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE,\n };\n }\n\n /** @inheritdoc */\n setAttribute(key, value) {\n if (value === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._attributes[key];\n } else {\n this._attributes[key] = value;\n }\n\n return this;\n }\n\n /** @inheritdoc */\n setAttributes(attributes) {\n Object.keys(attributes).forEach(key => this.setAttribute(key, attributes[key]));\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for browser tracing where we want to adjust the start time afterwards.\n * USE THIS WITH CAUTION!\n *\n * @hidden\n * @internal\n */\n updateStartTime(timeInput) {\n this._startTime = spanTimeInputToSeconds(timeInput);\n }\n\n /**\n * @inheritDoc\n */\n setStatus(value) {\n this._status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n updateName(name) {\n this._name = name;\n return this;\n }\n\n /** @inheritdoc */\n end(endTimestamp) {\n // If already ended, skip\n if (this._endTime) {\n return;\n }\n\n this._endTime = spanTimeInputToSeconds(endTimestamp);\n logSpanEnd(this);\n\n this._onSpanEnded();\n }\n\n /**\n * Get JSON representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToJSON(span)` instead.\n */\n getSpanJSON() {\n return dropUndefinedKeys({\n data: this._attributes,\n description: this._name,\n op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n parent_span_id: this._parentSpanId,\n span_id: this._spanId,\n start_timestamp: this._startTime,\n status: getStatusMessage(this._status),\n timestamp: this._endTime,\n trace_id: this._traceId,\n origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID] ,\n exclusive_time: this._attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] ,\n measurements: timedEventsToMeasurements(this._events),\n is_segment: (this._isStandaloneSpan && getRootSpan(this) === this) || undefined,\n segment_id: this._isStandaloneSpan ? getRootSpan(this).spanContext().spanId : undefined,\n });\n }\n\n /** @inheritdoc */\n isRecording() {\n return !this._endTime && !!this._sampled;\n }\n\n /**\n * @inheritdoc\n */\n addEvent(\n name,\n attributesOrStartTime,\n startTime,\n ) {\n DEBUG_BUILD && logger.log('[Tracing] Adding an event to span:', name);\n\n const time = isSpanTimeInput(attributesOrStartTime) ? attributesOrStartTime : startTime || timestampInSeconds();\n const attributes = isSpanTimeInput(attributesOrStartTime) ? {} : attributesOrStartTime || {};\n\n const event = {\n name,\n time: spanTimeInputToSeconds(time),\n attributes,\n };\n\n this._events.push(event);\n\n return this;\n }\n\n /**\n * This method should generally not be used,\n * but for now we need a way to publicly check if the `_isStandaloneSpan` flag is set.\n * USE THIS WITH CAUTION!\n * @internal\n * @hidden\n * @experimental\n */\n isStandaloneSpan() {\n return !!this._isStandaloneSpan;\n }\n\n /** Emit `spanEnd` when the span is ended. */\n _onSpanEnded() {\n const client = getClient();\n if (client) {\n client.emit('spanEnd', this);\n }\n\n // A segment span is basically the root span of a local span tree.\n // So for now, this is either what we previously refer to as the root span,\n // or a standalone span.\n const isSegmentSpan = this._isStandaloneSpan || this === getRootSpan(this);\n\n if (!isSegmentSpan) {\n return;\n }\n\n // if this is a standalone span, we send it immediately\n if (this._isStandaloneSpan) {\n if (this._sampled) {\n sendSpanEnvelope(createSpanEnvelope([this], client));\n } else {\n DEBUG_BUILD &&\n logger.log('[Tracing] Discarding standalone span because its trace was not chosen to be sampled.');\n if (client) {\n client.recordDroppedEvent('sample_rate', 'span');\n }\n }\n return;\n }\n\n const transactionEvent = this._convertSpanToTransaction();\n if (transactionEvent) {\n const scope = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n scope.captureEvent(transactionEvent);\n }\n }\n\n /**\n * Finish the transaction & prepare the event to send to Sentry.\n */\n _convertSpanToTransaction() {\n // We can only convert finished spans\n if (!isFullFinishedSpan(spanToJSON(this))) {\n return undefined;\n }\n\n if (!this._name) {\n DEBUG_BUILD && logger.warn('Transaction has no name, falling back to ``.');\n this._name = '';\n }\n\n const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n const scope = capturedSpanScope || getCurrentScope();\n const client = scope.getClient() || getClient();\n\n if (this._sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n if (client) {\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return undefined;\n }\n\n // The transaction span itself as well as any potential standalone spans should be filtered out\n const finishedSpans = getSpanDescendants(this).filter(span => span !== this && !isStandaloneSpan(span));\n\n const spans = finishedSpans.map(span => spanToJSON(span)).filter(isFullFinishedSpan);\n\n const source = this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ;\n\n const transaction = {\n contexts: {\n trace: spanToTransactionTraceContext(this),\n },\n spans:\n // spans.sort() mutates the array, but `spans` is already a copy so we can safely do this here\n // we do not use spans anymore after this point\n spans.length > MAX_SPAN_COUNT\n ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT)\n : spans,\n start_timestamp: this._startTime,\n timestamp: this._endTime,\n transaction: this._name,\n type: 'transaction',\n sdkProcessingMetadata: {\n capturedSpanScope,\n capturedSpanIsolationScope,\n ...dropUndefinedKeys({\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n }),\n },\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n ...(source && {\n transaction_info: {\n source,\n },\n }),\n };\n\n const measurements = timedEventsToMeasurements(this._events);\n const hasMeasurements = measurements && Object.keys(measurements).length;\n\n if (hasMeasurements) {\n DEBUG_BUILD &&\n logger.log(\n '[Measurements] Adding measurements to transaction event',\n JSON.stringify(measurements, undefined, 2),\n );\n transaction.measurements = measurements;\n }\n\n return transaction;\n }\n}\n\nfunction isSpanTimeInput(value) {\n return (value && typeof value === 'number') || value instanceof Date || Array.isArray(value);\n}\n\n// We want to filter out any incomplete SpanJSON objects\nfunction isFullFinishedSpan(input) {\n return !!input.start_timestamp && !!input.timestamp && !!input.span_id && !!input.trace_id;\n}\n\n/** `SentrySpan`s can be sent as a standalone span rather than belonging to a transaction */\nfunction isStandaloneSpan(span) {\n return span instanceof SentrySpan && span.isStandaloneSpan();\n}\n\n/**\n * Sends a `SpanEnvelope`.\n *\n * Note: If the envelope's spans are dropped, e.g. via `beforeSendSpan`,\n * the envelope will not be sent either.\n */\nfunction sendSpanEnvelope(envelope) {\n const client = getClient();\n if (!client) {\n return;\n }\n\n const spanItems = envelope[1];\n if (!spanItems || spanItems.length === 0) {\n client.recordDroppedEvent('before_send', 'span');\n return;\n }\n\n const transport = client.getTransport();\n if (transport) {\n transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending span:', reason);\n });\n }\n}\n\nexport { SentrySpan };\n//# sourceMappingURL=sentrySpan.js.map\n","import { propagationContextFromHeaders, generatePropagationContext, logger } from '@sentry/utils';\nimport { getMainCarrier } from '../carrier.js';\nimport { withScope, getCurrentScope, getIsolationScope, getClient } from '../currentScopes.js';\nimport { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE } from '../semanticAttributes.js';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { _setSpanForScope, _getSpanForScope } from '../utils/spanOnScope.js';\nimport { spanToJSON, addChildSpanToSpan, spanIsSampled, spanTimeInputToSeconds, getRootSpan } from '../utils/spanUtils.js';\nimport { getDynamicSamplingContextFromSpan, freezeDscOnSpan } from './dynamicSamplingContext.js';\nimport { logSpanStart } from './logSpans.js';\nimport { sampleSpan } from './sampling.js';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SentrySpan } from './sentrySpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { setCapturedScopesOnSpan } from './utils.js';\n\nconst SUPPRESS_TRACING_KEY = '__SENTRY_SUPPRESS_TRACING__';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpan(options, callback) {\n const acs = getAcs();\n if (acs.startSpan) {\n return acs.startSpan(options, callback);\n }\n\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan } = options;\n\n return withScope(options.scope, () => {\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope);\n\n const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? new SentryNonRecordingSpan()\n : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n });\n\n _setSpanForScope(scope, activeSpan);\n\n return handleCallbackErrors(\n () => callback(activeSpan),\n () => {\n // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === 'ok')) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n }\n },\n () => activeSpan.end(),\n );\n });\n });\n}\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically. You'll have to call `span.end()` manually.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpanManual(options, callback) {\n const acs = getAcs();\n if (acs.startSpanManual) {\n return acs.startSpanManual(options, callback);\n }\n\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan } = options;\n\n return withScope(options.scope, () => {\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope);\n\n const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? new SentryNonRecordingSpan()\n : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n });\n\n _setSpanForScope(scope, activeSpan);\n\n function finishAndSetSpan() {\n activeSpan.end();\n }\n\n return handleCallbackErrors(\n () => callback(activeSpan, finishAndSetSpan),\n () => {\n // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === 'ok')) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n }\n },\n );\n });\n });\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getActiveSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * This function will always return a span,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startInactiveSpan(options) {\n const acs = getAcs();\n if (acs.startInactiveSpan) {\n return acs.startInactiveSpan(options);\n }\n\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan } = options;\n\n // If `options.scope` is defined, we use this as as a wrapper,\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = options.scope\n ? (callback) => withScope(options.scope, callback)\n : customParentSpan !== undefined\n ? (callback) => withActiveSpan(customParentSpan, callback)\n : (callback) => callback();\n\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope);\n\n const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n\n if (shouldSkipSpan) {\n return new SentryNonRecordingSpan();\n }\n\n return createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n });\n });\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n */\nconst continueTrace = (\n {\n sentryTrace,\n baggage,\n }\n\n,\n callback,\n) => {\n return withScope(scope => {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n scope.setPropagationContext(propagationContext);\n return callback();\n });\n};\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback. Can be\n * passed `null` to start an entirely new span tree.\n *\n * @param span Spans started in the context of the provided callback will be children of this span. If `null` is passed,\n * spans started within the callback will not be attached to a parent span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nfunction withActiveSpan(span, callback) {\n const acs = getAcs();\n if (acs.withActiveSpan) {\n return acs.withActiveSpan(span, callback);\n }\n\n return withScope(scope => {\n _setSpanForScope(scope, span || undefined);\n return callback(scope);\n });\n}\n\n/** Suppress tracing in the given callback, ensuring no spans are generated inside of it. */\nfunction suppressTracing(callback) {\n const acs = getAcs();\n\n if (acs.suppressTracing) {\n return acs.suppressTracing(callback);\n }\n\n return withScope(scope => {\n scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n return callback();\n });\n}\n\n/**\n * Starts a new trace for the duration of the provided callback. Spans started within the\n * callback will be part of the new trace instead of a potentially previously started trace.\n *\n * Important: Only use this function if you want to override the default trace lifetime and\n * propagation mechanism of the SDK for the duration and scope of the provided callback.\n * The newly created trace will also be the root of a new distributed trace, for example if\n * you make http requests within the callback.\n * This function might be useful if the operation you want to instrument should not be part\n * of a potentially ongoing trace.\n *\n * Default behavior:\n * - Server-side: A new trace is started for each incoming request.\n * - Browser: A new trace is started for each page our route. Navigating to a new route\n * or page will automatically create a new trace.\n */\nfunction startNewTrace(callback) {\n return withScope(scope => {\n scope.setPropagationContext(generatePropagationContext());\n DEBUG_BUILD && logger.info(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n return withActiveSpan(null, callback);\n });\n}\n\nfunction createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n}\n\n) {\n if (!hasTracingEnabled()) {\n return new SentryNonRecordingSpan();\n }\n\n const isolationScope = getIsolationScope();\n\n let span;\n if (parentSpan && !forceTransaction) {\n span = _startChildSpan(parentSpan, scope, spanArguments);\n addChildSpanToSpan(parentSpan, span);\n } else if (parentSpan) {\n // If we forced a transaction but have a parent span, make sure to continue from the parent span, not the scope\n const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n const parentSampled = spanIsSampled(parentSpan);\n\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments,\n },\n scope,\n parentSampled,\n );\n\n freezeDscOnSpan(span, dsc);\n } else {\n const {\n traceId,\n dsc,\n parentSpanId,\n sampled: parentSampled,\n } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments,\n },\n scope,\n parentSampled,\n );\n\n if (dsc) {\n freezeDscOnSpan(span, dsc);\n }\n }\n\n logSpanStart(span);\n\n setCapturedScopesOnSpan(span, scope, isolationScope);\n\n return span;\n}\n\n/**\n * This converts StartSpanOptions to SentrySpanArguments.\n * For the most part (for now) we accept the same options,\n * but some of them need to be transformed.\n */\nfunction parseSentrySpanArguments(options) {\n const exp = options.experimental || {};\n const initialCtx = {\n isStandalone: exp.standalone,\n ...options,\n };\n\n if (options.startTime) {\n const ctx = { ...initialCtx };\n ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n delete ctx.startTime;\n return ctx;\n }\n\n return initialCtx;\n}\n\nfunction getAcs() {\n const carrier = getMainCarrier();\n return getAsyncContextStrategy(carrier);\n}\n\nfunction _startRootSpan(spanArguments, scope, parentSampled) {\n const client = getClient();\n const options = (client && client.getOptions()) || {};\n\n const { name = '', attributes } = spanArguments;\n const [sampled, sampleRate] = scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY]\n ? [false]\n : sampleSpan(options, {\n name,\n parentSampled,\n attributes,\n transactionContext: {\n name,\n parentSampled,\n },\n });\n\n const rootSpan = new SentrySpan({\n ...spanArguments,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n ...spanArguments.attributes,\n },\n sampled,\n });\n if (sampleRate !== undefined) {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, sampleRate);\n }\n\n if (client) {\n client.emit('spanStart', rootSpan);\n }\n\n return rootSpan;\n}\n\n/**\n * Creates a new `Span` while setting the current `Span.id` as `parentSpanId`.\n * This inherits the sampling decision from the parent span.\n */\nfunction _startChildSpan(parentSpan, scope, spanArguments) {\n const { spanId, traceId } = parentSpan.spanContext();\n const sampled = scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] ? false : spanIsSampled(parentSpan);\n\n const childSpan = sampled\n ? new SentrySpan({\n ...spanArguments,\n parentSpanId: spanId,\n traceId,\n sampled,\n })\n : new SentryNonRecordingSpan({ traceId });\n\n addChildSpanToSpan(parentSpan, childSpan);\n\n const client = getClient();\n if (client) {\n client.emit('spanStart', childSpan);\n // If it has an endTimestamp, it's already ended\n if (spanArguments.endTimestamp) {\n client.emit('spanEnd', childSpan);\n }\n }\n\n return childSpan;\n}\n\nfunction getParentSpan(scope) {\n const span = _getSpanForScope(scope) ;\n\n if (!span) {\n return undefined;\n }\n\n const client = getClient();\n const options = client ? client.getOptions() : {};\n if (options.parentSpanIsAlwaysRootSpan) {\n return getRootSpan(span) ;\n }\n\n return span;\n}\n\nfunction getActiveSpanWrapper(parentSpan) {\n return parentSpan !== undefined\n ? (callback) => {\n return withActiveSpan(parentSpan, callback);\n }\n : (callback) => callback();\n}\n\nexport { continueTrace, startInactiveSpan, startNewTrace, startSpan, startSpanManual, suppressTracing, withActiveSpan };\n//# sourceMappingURL=trace.js.map\n","import { timestampInSeconds, logger } from '@sentry/utils';\nimport { getClient, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON } from '../semanticAttributes.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { _setSpanForScope } from '../utils/spanOnScope.js';\nimport { getActiveSpan, spanTimeInputToSeconds, getSpanDescendants, spanToJSON, removeChildSpanFromSpan } from '../utils/spanUtils.js';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { startInactiveSpan } from './trace.js';\n\nconst TRACING_DEFAULTS = {\n idleTimeout: 1000,\n finalTimeout: 30000,\n childSpanTimeout: 15000,\n};\n\nconst FINISH_REASON_HEARTBEAT_FAILED = 'heartbeatFailed';\nconst FINISH_REASON_IDLE_TIMEOUT = 'idleTimeout';\nconst FINISH_REASON_FINAL_TIMEOUT = 'finalTimeout';\nconst FINISH_REASON_EXTERNAL_FINISH = 'externalFinish';\n\n/**\n * An idle span is a span that automatically finishes. It does this by tracking child spans as activities.\n * An idle span is always the active span.\n */\nfunction startIdleSpan(startSpanOptions, options = {}) {\n // Activities store a list of active spans\n const activities = new Map();\n\n // We should not use heartbeat if we finished a span\n let _finished = false;\n\n // Timer that tracks idleTimeout\n let _idleTimeoutID;\n\n // The reason why the span was finished\n let _finishReason = FINISH_REASON_EXTERNAL_FINISH;\n\n let _autoFinishAllowed = !options.disableAutoFinish;\n\n const _cleanupHooks = [];\n\n const {\n idleTimeout = TRACING_DEFAULTS.idleTimeout,\n finalTimeout = TRACING_DEFAULTS.finalTimeout,\n childSpanTimeout = TRACING_DEFAULTS.childSpanTimeout,\n beforeSpanEnd,\n } = options;\n\n const client = getClient();\n\n if (!client || !hasTracingEnabled()) {\n return new SentryNonRecordingSpan();\n }\n\n const scope = getCurrentScope();\n const previousActiveSpan = getActiveSpan();\n const span = _startIdleSpan(startSpanOptions);\n\n // We patch span.end to ensure we can run some things before the span is ended\n // eslint-disable-next-line @typescript-eslint/unbound-method\n span.end = new Proxy(span.end, {\n apply(target, thisArg, args) {\n if (beforeSpanEnd) {\n beforeSpanEnd(span);\n }\n\n // Just ensuring that this keeps working, even if we ever have more arguments here\n const [definedEndTimestamp, ...rest] = args;\n const timestamp = definedEndTimestamp || timestampInSeconds();\n const spanEndTimestamp = spanTimeInputToSeconds(timestamp);\n\n // Ensure we end with the last span timestamp, if possible\n const spans = getSpanDescendants(span).filter(child => child !== span);\n\n // If we have no spans, we just end, nothing else to do here\n if (!spans.length) {\n onIdleSpanEnded(spanEndTimestamp);\n return Reflect.apply(target, thisArg, [spanEndTimestamp, ...rest]);\n }\n\n const childEndTimestamps = spans\n .map(span => spanToJSON(span).timestamp)\n .filter(timestamp => !!timestamp) ;\n const latestSpanEndTimestamp = childEndTimestamps.length ? Math.max(...childEndTimestamps) : undefined;\n\n // In reality this should always exist here, but type-wise it may be undefined...\n const spanStartTimestamp = spanToJSON(span).start_timestamp;\n\n // The final endTimestamp should:\n // * Never be before the span start timestamp\n // * Be the latestSpanEndTimestamp, if there is one, and it is smaller than the passed span end timestamp\n // * Otherwise be the passed end timestamp\n // Final timestamp can never be after finalTimeout\n const endTimestamp = Math.min(\n spanStartTimestamp ? spanStartTimestamp + finalTimeout / 1000 : Infinity,\n Math.max(spanStartTimestamp || -Infinity, Math.min(spanEndTimestamp, latestSpanEndTimestamp || Infinity)),\n );\n\n onIdleSpanEnded(endTimestamp);\n return Reflect.apply(target, thisArg, [endTimestamp, ...rest]);\n },\n });\n\n /**\n * Cancels the existing idle timeout, if there is one.\n */\n function _cancelIdleTimeout() {\n if (_idleTimeoutID) {\n clearTimeout(_idleTimeoutID);\n _idleTimeoutID = undefined;\n }\n }\n\n /**\n * Restarts idle timeout, if there is no running idle timeout it will start one.\n */\n function _restartIdleTimeout(endTimestamp) {\n _cancelIdleTimeout();\n _idleTimeoutID = setTimeout(() => {\n if (!_finished && activities.size === 0 && _autoFinishAllowed) {\n _finishReason = FINISH_REASON_IDLE_TIMEOUT;\n span.end(endTimestamp);\n }\n }, idleTimeout);\n }\n\n /**\n * Restarts child span timeout, if there is none running it will start one.\n */\n function _restartChildSpanTimeout(endTimestamp) {\n _idleTimeoutID = setTimeout(() => {\n if (!_finished && _autoFinishAllowed) {\n _finishReason = FINISH_REASON_HEARTBEAT_FAILED;\n span.end(endTimestamp);\n }\n }, childSpanTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n function _pushActivity(spanId) {\n _cancelIdleTimeout();\n activities.set(spanId, true);\n\n const endTimestamp = timestampInSeconds();\n // We need to add the timeout here to have the real endtimestamp of the idle span\n // Remember timestampInSeconds is in seconds, timeout is in ms\n _restartChildSpanTimeout(endTimestamp + childSpanTimeout / 1000);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n function _popActivity(spanId) {\n if (activities.has(spanId)) {\n activities.delete(spanId);\n }\n\n if (activities.size === 0) {\n const endTimestamp = timestampInSeconds();\n // We need to add the timeout here to have the real endtimestamp of the idle span\n // Remember timestampInSeconds is in seconds, timeout is in ms\n _restartIdleTimeout(endTimestamp + idleTimeout / 1000);\n }\n }\n\n function onIdleSpanEnded(endTimestamp) {\n _finished = true;\n activities.clear();\n\n _cleanupHooks.forEach(cleanup => cleanup());\n\n _setSpanForScope(scope, previousActiveSpan);\n\n const spanJSON = spanToJSON(span);\n\n const { start_timestamp: startTimestamp } = spanJSON;\n // This should never happen, but to make TS happy...\n if (!startTimestamp) {\n return;\n }\n\n const attributes = spanJSON.data || {};\n if (!attributes[SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON]) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, _finishReason);\n }\n\n logger.log(`[Tracing] Idle span \"${spanJSON.op}\" finished`);\n\n const childSpans = getSpanDescendants(span).filter(child => child !== span);\n\n let discardedSpans = 0;\n childSpans.forEach(childSpan => {\n // We cancel all pending spans with status \"cancelled\" to indicate the idle span was finished early\n if (childSpan.isRecording()) {\n childSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'cancelled' });\n childSpan.end(endTimestamp);\n DEBUG_BUILD &&\n logger.log('[Tracing] Cancelling span since span ended early', JSON.stringify(childSpan, undefined, 2));\n }\n\n const childSpanJSON = spanToJSON(childSpan);\n const { timestamp: childEndTimestamp = 0, start_timestamp: childStartTimestamp = 0 } = childSpanJSON;\n\n const spanStartedBeforeIdleSpanEnd = childStartTimestamp <= endTimestamp;\n\n // Add a delta with idle timeout so that we prevent false positives\n const timeoutWithMarginOfError = (finalTimeout + idleTimeout) / 1000;\n const spanEndedBeforeFinalTimeout = childEndTimestamp - childStartTimestamp <= timeoutWithMarginOfError;\n\n if (DEBUG_BUILD) {\n const stringifiedSpan = JSON.stringify(childSpan, undefined, 2);\n if (!spanStartedBeforeIdleSpanEnd) {\n logger.log('[Tracing] Discarding span since it happened after idle span was finished', stringifiedSpan);\n } else if (!spanEndedBeforeFinalTimeout) {\n logger.log('[Tracing] Discarding span since it finished after idle span final timeout', stringifiedSpan);\n }\n }\n\n if (!spanEndedBeforeFinalTimeout || !spanStartedBeforeIdleSpanEnd) {\n removeChildSpanFromSpan(span, childSpan);\n discardedSpans++;\n }\n });\n\n if (discardedSpans > 0) {\n span.setAttribute('sentry.idle_span_discarded_spans', discardedSpans);\n }\n }\n\n _cleanupHooks.push(\n client.on('spanStart', startedSpan => {\n // If we already finished the idle span,\n // or if this is the idle span itself being started,\n // or if the started span has already been closed,\n // we don't care about it for activity\n if (_finished || startedSpan === span || !!spanToJSON(startedSpan).timestamp) {\n return;\n }\n\n const allSpans = getSpanDescendants(span);\n\n // If the span that was just started is a child of the idle span, we should track it\n if (allSpans.includes(startedSpan)) {\n _pushActivity(startedSpan.spanContext().spanId);\n }\n }),\n );\n\n _cleanupHooks.push(\n client.on('spanEnd', endedSpan => {\n if (_finished) {\n return;\n }\n\n _popActivity(endedSpan.spanContext().spanId);\n }),\n );\n\n _cleanupHooks.push(\n client.on('idleSpanEnableAutoFinish', spanToAllowAutoFinish => {\n if (spanToAllowAutoFinish === span) {\n _autoFinishAllowed = true;\n _restartIdleTimeout();\n\n if (activities.size) {\n _restartChildSpanTimeout();\n }\n }\n }),\n );\n\n // We only start the initial idle timeout if we are not delaying the auto finish\n if (!options.disableAutoFinish) {\n _restartIdleTimeout();\n }\n\n setTimeout(() => {\n if (!_finished) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' });\n _finishReason = FINISH_REASON_FINAL_TIMEOUT;\n span.end();\n }\n }, finalTimeout);\n\n return span;\n}\n\nfunction _startIdleSpan(options) {\n const span = startInactiveSpan(options);\n\n _setSpanForScope(getCurrentScope(), span);\n\n DEBUG_BUILD && logger.log('[Tracing] Started span is an idle span');\n\n return span;\n}\n\nexport { TRACING_DEFAULTS, startIdleSpan };\n//# sourceMappingURL=idleSpan.js.map\n","import { SyncPromise, logger, isThenable } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nfunction notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n","import { dropUndefinedKeys, arrayify } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nfunction applyScopeDataToEvent(event, data) {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nfunction mergeScopeData(data, mergeData) {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n mergeAndOverwriteScopeData(data, 'sdkProcessingMetadata', sdkProcessingMetadata);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nfunction mergeAndOverwriteScopeData\n\n(data, prop, mergeVal) {\n if (mergeVal && Object.keys(mergeVal).length) {\n // Clone object\n data[prop] = { ...data[prop] };\n for (const key in mergeVal) {\n if (Object.prototype.hasOwnProperty.call(mergeVal, key)) {\n data[prop][key] = mergeVal[key];\n }\n }\n }\n}\n\nfunction applyDataToEvent(event, data) {\n const { extra, tags, user, contexts, level, transactionName } = data;\n\n const cleanedExtra = dropUndefinedKeys(extra);\n if (cleanedExtra && Object.keys(cleanedExtra).length) {\n event.extra = { ...cleanedExtra, ...event.extra };\n }\n\n const cleanedTags = dropUndefinedKeys(tags);\n if (cleanedTags && Object.keys(cleanedTags).length) {\n event.tags = { ...cleanedTags, ...event.tags };\n }\n\n const cleanedUser = dropUndefinedKeys(user);\n if (cleanedUser && Object.keys(cleanedUser).length) {\n event.user = { ...cleanedUser, ...event.user };\n }\n\n const cleanedContexts = dropUndefinedKeys(contexts);\n if (cleanedContexts && Object.keys(cleanedContexts).length) {\n event.contexts = { ...cleanedContexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n // transaction events get their `transaction` from the root span name\n if (transactionName && event.type !== 'transaction') {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event, span) {\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n\n const rootSpan = getRootSpan(span);\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName && !event.transaction && event.type === 'transaction') {\n event.transaction = transactionName;\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event, fingerprint) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n\nexport { applyScopeDataToEvent, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=applyScopeDataToEvent.js.map\n","import { uuid4, dateTimestampInSeconds, addExceptionMechanism, truncate, GLOBAL_OBJ, normalize } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getGlobalScope } from '../currentScopes.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { mergeScopeData, applyScopeDataToEvent } from './applyScopeDataToEvent.js';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nfunction prepareEvent(\n options,\n event,\n hint,\n scope,\n client,\n isolationScope,\n) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = options;\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n if (client) {\n client.emit('applyFrameMetadata', event);\n }\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Scope.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n const eventProcessors = [\n ...clientEventProcessors,\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event, options) {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\nconst debugIdStackParserCache = new WeakMap();\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nfunction applyDebugIds(event, stackParser) {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return;\n }\n\n let debugIdStackFramesCache;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.entries(debugIdMap).reduce(\n (acc, [debugIdStackTrace, debugIdValue]) => {\n let parsedStack;\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const stackFrame = parsedStack[i];\n if (stackFrame.filename) {\n acc[stackFrame.filename] = debugIdValue;\n break;\n }\n }\n return acc;\n },\n {},\n );\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nfunction applyDebugMeta(event) {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id,\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event, integrationNames) {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n return {\n ...span,\n ...(span.data && {\n data: normalize(span.data, depth, maxBreadth),\n }),\n };\n });\n }\n\n return normalized;\n}\n\nfunction getFinalScope(\n scope,\n captureContext,\n) {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nfunction parseEventHintOrCaptureContext(\n hint,\n) {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(\n hint,\n) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\nconst captureContextKeys = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'requestSession',\n 'propagationContext',\n] ;\n\nfunction hintIsScopeContext(hint) {\n return Object.keys(hint).some(key => captureContextKeys.includes(key ));\n}\n\nexport { applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n","import { logger, uuid4, timestampInSeconds, isThenable, GLOBAL_OBJ } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getCurrentScope, getIsolationScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { makeSession, updateSession, closeSession } from './session.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exception,\n hint,\n) {\n return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nfunction captureMessage(message, captureContext) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentScope().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nfunction captureEvent(event, hint) {\n return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setContext(name, context) {\n getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getIsolationScope().setUser(user);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nfunction lastEventId() {\n return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction withMonitor(\n monitorSlug,\n callback,\n upsertMonitorConfig,\n) {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status) {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n return withIsolationScope(() => {\n let maybePromiseResult;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n () => {\n finishCheckIn('error');\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n });\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function flush(timeout) {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function close(timeout) {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nfunction isInitialized() {\n return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nfunction isEnabled() {\n const client = getClient();\n return !!client && client.getOptions().enabled !== false && !!client.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nfunction addEventProcessor(callback) {\n getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nfunction startSession(context) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nfunction endSession() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const client = getClient();\n // TODO (v8): Remove currentScope and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session && client) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nfunction captureSession(end = false) {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setContext, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n","import { makeDsn, dsnToString, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'onClose') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { arrayify, logger } from '@sentry/utils';\nimport { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\n\nconst installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preserve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n const integrationsByName = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(options) {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations;\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = finalIntegrations.findIndex(integration => integration.name === 'Debug');\n if (debugIndex > -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1) ;\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(client, integrations) {\n const integrationIndex = {};\n\n integrations.forEach(integration => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nfunction afterSetupIntegrations(client, integrations) {\n for (const integration of integrations) {\n // guard against empty provided integrations\n if (integration && integration.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\n\n/** Setup a single integration. */\nfunction setupIntegration(client, integration, integrationIndex) {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && logger.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n\n // `setupOnce` is only called the first time\n if (installedIntegrations.indexOf(integration.name) === -1 && typeof integration.setupOnce === 'function') {\n integration.setupOnce();\n installedIntegrations.push(integration.name);\n }\n\n // `setup` is run for each client\n if (integration.setup && typeof integration.setup === 'function') {\n integration.setup(client);\n }\n\n if (typeof integration.preprocessEvent === 'function') {\n const callback = integration.preprocessEvent.bind(integration) ;\n client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n }\n\n if (typeof integration.processEvent === 'function') {\n const callback = integration.processEvent.bind(integration) ;\n\n const processor = Object.assign((event, hint) => callback(event, hint, client), {\n id: integration.name,\n });\n\n client.addEventProcessor(processor);\n }\n\n DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current scope's client. */\nfunction addIntegration(integration) {\n const client = getClient();\n\n if (!client) {\n DEBUG_BUILD && logger.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n\n client.addIntegration(integration);\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nfunction defineIntegration(fn) {\n return fn;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import { makeDsn, logger, uuid4, checkOrSetAlreadyCaught, isParameterizedString, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, dropUndefinedKeys, rejectedSyncPromise, SentryError, createClientReportEnvelope, dsnToString, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n\n /** Number of calls being processed */\n\n /** Holds flushable */\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {\n this._options = options;\n this._integrations = {};\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && logger.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(\n this._dsn,\n options.tunnel,\n options._metadata ? options._metadata.sdk : undefined,\n );\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n captureException(exception, hint, scope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n this._process(\n this.eventFromException(exception, hintWithEventId).then(event =>\n this._captureEvent(event, hintWithEventId, scope),\n ),\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n currentScope,\n ) {\n const hintWithEventId = {\n event_id: uuid4(),\n ...hint,\n };\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(eventMessage, level, hintWithEventId)\n : this.eventFromException(message, hintWithEventId);\n\n this._process(promisedEvent.then(event => this._captureEvent(event, hintWithEventId, currentScope)));\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, currentScope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n\n this._process(this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope));\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!(typeof session.release === 'string')) {\n DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n getSdkMetadata() {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n const transport = this._transport;\n if (transport) {\n this.emit('flush');\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n this.emit('close');\n return result;\n });\n }\n\n /** Get all installed event processors. */\n getEventProcessors() {\n return this._eventProcessors;\n }\n\n /** @inheritDoc */\n addEventProcessor(eventProcessor) {\n this._eventProcessors.push(eventProcessor);\n }\n\n /** @inheritdoc */\n init() {\n if (\n this._isEnabled() ||\n // Force integrations to be setup even if no DSN was set when we have\n // Spotlight enabled. This is particularly important for browser as we\n // don't support the `spotlight` option there and rely on the users\n // adding the `spotlightBrowserIntegration()` to their integrations which\n // wouldn't get initialized with the check below when there's no DSN set.\n this._options.integrations.some(({ name }) => name.startsWith('Spotlight'))\n ) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns The installed integration or `undefined` if no integration with that `name` was installed.\n */\n getIntegrationByName(integrationName) {\n return this._integrations[integrationName] ;\n }\n\n /**\n * @inheritDoc\n */\n addIntegration(integration) {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n }\n\n const promise = this.sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env);\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category, eventOrCount) {\n if (this._options.sendClientReports) {\n // TODO v9: We do not need the `event` passed as third argument anymore, and can possibly remove this overload\n // If event is passed as third argument, we assume this is a count of 1\n const count = typeof eventOrCount === 'number' ? eventOrCount : 1;\n\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && logger.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n /* eslint-disable @typescript-eslint/unified-signatures */\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n on(hook, callback) {\n const hooks = (this._hooks[hook] = this._hooks[hook] || []);\n\n // @ts-expect-error We assue the types are correct\n hooks.push(callback);\n\n // This function returns a callback execution handler that, when invoked,\n // deregisters a callback. This is crucial for managing instances where callbacks\n // need to be unregistered to prevent self-referencing in callback closures,\n // ensuring proper garbage collection.\n return () => {\n // @ts-expect-error We assue the types are correct\n const cbIndex = hooks.indexOf(callback);\n if (cbIndex > -1) {\n hooks.splice(cbIndex, 1);\n }\n };\n }\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n emit(hook, ...rest) {\n const callbacks = this._hooks[hook];\n if (callbacks) {\n callbacks.forEach(callback => callback(...rest));\n }\n }\n\n /**\n * @inheritdoc\n */\n sendEnvelope(envelope) {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n return this._transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending event:', reason);\n return reason;\n });\n }\n\n DEBUG_BUILD && logger.error('Transport disabled');\n\n return resolvedSyncPromise({});\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n _setupIntegrations() {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n const tick = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(\n event,\n hint,\n currentScope,\n isolationScope = getIsolationScope(),\n ) {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n if (!event.type) {\n isolationScope.setLastEventId(event.event_id || hint.event_id);\n }\n\n return prepareEvent(options, event, hint, currentScope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n const propagationContext = {\n ...isolationScope.getPropagationContext(),\n ...(currentScope ? currentScope.getPropagationContext() : undefined),\n };\n\n const trace = evt.contexts && evt.contexts.trace;\n if (!trace && propagationContext) {\n const { traceId: trace_id, spanId, parentSpanId, dsc } = propagationContext;\n evt.contexts = {\n trace: dropUndefinedKeys({\n trace_id,\n span_id: spanId,\n parent_span_id: parentSpanId,\n }),\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = dsc ? dsc : getDynamicSamplingContextFromClient(trace_id, this);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n }\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason ;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, currentScope) {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n const parsedSampleRate = typeof sampleRate === 'undefined' ? undefined : parseSampleRate(sampleRate);\n if (isError && typeof parsedSampleRate === 'number' && Math.random() > parsedSampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n\n return this._prepareEvent(event, hint, currentScope, capturedSpanIsolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(this, options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = currentScope && currentScope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore =\n (processedEvent.sdkProcessingMetadata && processedEvent.sdkProcessingMetadata.spanCountBeforeProcessing) ||\n 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.entries(outcomes).map(([key, quantity]) => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity,\n };\n });\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n DEBUG_BUILD && logger.log('Flushing outcomes...');\n\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && logger.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult,\n beforeSendLabel,\n) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n client,\n options,\n event,\n hint,\n) {\n const { beforeSend, beforeSendTransaction, beforeSendSpan } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event)) {\n if (event.spans && beforeSendSpan) {\n const processedSpans = [];\n for (const span of event.spans) {\n const processedSpan = beforeSendSpan(span);\n if (processedSpan) {\n processedSpans.push(processedSpan);\n } else {\n client.recordDroppedEvent('before_send', 'span');\n }\n }\n event.spans = processedSpans;\n }\n\n if (beforeSendTransaction) {\n if (event.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = event.spans.length;\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(event, hint);\n }\n }\n\n return event;\n}\n\nfunction isErrorEvent(event) {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { logger, consoleSandbox } from '@sentry/utils';\nimport { getCurrentScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n const client = new clientClass(options);\n setCurrentClient(client);\n client.init();\n return client;\n}\n\n/**\n * Make the given client the current client.\n */\nfunction setCurrentClient(client) {\n getCurrentScope().setClient(client);\n}\n\nexport { initAndBind, setCurrentClient };\n//# sourceMappingURL=sdk.js.map\n","import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, SentryError, logger, serializeEnvelope, updateRateLimits } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n) {\n let rateLimits = {};\n const flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n const filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', dataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise({});\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n DEBUG_BUILD && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n DEBUG_BUILD && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise({});\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item, type) {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item )[1] : undefined;\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","/**\n * Checks whether given url points to Sentry server\n *\n * @param url url to verify\n */\nfunction isSentryRequestUrl(url, client) {\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n return checkDsn(url, dsn) || checkTunnel(url, tunnel);\n}\n\nfunction checkTunnel(url, tunnel) {\n if (!tunnel) {\n return false;\n }\n\n return removeTrailingSlash(url) === removeTrailingSlash(tunnel);\n}\n\nfunction checkDsn(url, dsn) {\n return dsn ? url.includes(dsn.host) : false;\n}\n\nfunction removeTrailingSlash(str) {\n return str[str.length - 1] === '/' ? str.slice(0, -1) : str;\n}\n\nexport { isSentryRequestUrl };\n//# sourceMappingURL=isSentryRequestUrl.js.map\n","import { SDK_VERSION } from '@sentry/utils';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nfunction applySdkMetadata(options, name, names = [name], source = 'npm') {\n const metadata = options._metadata || {};\n\n if (!metadata.sdk) {\n metadata.sdk = {\n name: `sentry.javascript.${name}`,\n packages: names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n })),\n version: SDK_VERSION,\n };\n }\n\n options._metadata = metadata;\n}\n\nexport { applySdkMetadata };\n//# sourceMappingURL=sdkMetadata.js.map\n","import { dateTimestampInSeconds, consoleSandbox } from '@sentry/utils';\nimport { getClient, getIsolationScope } from './currentScopes.js';\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n */\nfunction addBreadcrumb(breadcrumb, hint) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { getOriginalFunction } from '@sentry/utils';\nimport { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\n\nlet originalFunctionToString;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function ( ...args) {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() ) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch (e) {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) ;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n//# sourceMappingURL=functiontostring.js.map\n","import { logger, getEventDescription, stringMatchesSomePattern } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/, // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n /^Cannot redefine property: googletag$/, // This is thrown when google tag manager is used in combination with an ad blocker\n \"undefined is not an object (evaluating 'a.L')\", // Random error that happens but not actionable or noticeable to end-users.\n 'can\\'t redefine non-configurable property \"solana\"', // Probably a browser extension or custom browser (Brave) throwing this error\n \"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)\", // Error thrown by GTM, seemingly not affecting end-users\n \"Can't find variable: _AutofillCallbackHandler\", // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n];\n\n/** Options for the InboundFilters integration */\n\nconst INTEGRATION_NAME = 'InboundFilters';\nconst _inboundFiltersIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const clientOptions = client.getOptions();\n const mergedOptions = _mergeOptions(options, clientOptions);\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n}) ;\n\nconst inboundFiltersIntegration = defineIntegration(_inboundFiltersIntegration);\n\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [...(internalOptions.ignoreTransactions || []), ...(clientOptions.ignoreTransactions || [])],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isUselessError(event)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${getEventDescription(\n event,\n )}`,\n );\n return true;\n }\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n // If event.type, this is not an error\n if (event.type || !ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n if (event.type !== 'transaction' || !ignoreTransactions || !ignoreTransactions.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event) {\n const possibleMessages = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n let lastException;\n try {\n // @ts-expect-error Try catching to save bundle size\n lastException = event.exception.values[event.exception.values.length - 1];\n } catch (e) {\n // try catching to save bundle size checking existence of variables\n }\n\n if (lastException) {\n if (lastException.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n }\n\n return possibleMessages;\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-expect-error can't be a sentry error if undefined\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-expect-error we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nfunction _isUselessError(event) {\n if (event.type) {\n // event is not an error\n return false;\n }\n\n // We only want to consider events for dropping that actually have recorded exception values.\n if (!event.exception || !event.exception.values || event.exception.values.length === 0) {\n return false;\n }\n\n return (\n // No top-level message\n !event.message &&\n // There are no exception values that have a stacktrace, a non-generic-Error type or value\n !event.exception.values.some(value => value.stacktrace || (value.type && value.type !== 'Error') || value.value)\n );\n}\n\nexport { inboundFiltersIntegration };\n//# sourceMappingURL=inboundfilters.js.map\n","import { logger, getFramesFromEvent } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst INTEGRATION_NAME = 'Dedupe';\n\nconst _dedupeIntegration = (() => {\n let previousEvent;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(currentEvent) {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, previousEvent)) {\n DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n return (previousEvent = currentEvent);\n },\n };\n}) ;\n\n/**\n * Deduplication filter.\n */\nconst dedupeIntegration = defineIntegration(_dedupeIntegration);\n\n/** only exported for tests. */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = getFramesFromEvent(currentEvent);\n let previousFrames = getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameA = previousFrames[i];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\nexport { _shouldDropEvent, dedupeIntegration };\n//# sourceMappingURL=dedupe.js.map\n","import { parseUrl, generateSentryTraceHeader, dynamicSamplingContextToSentryBaggageHeader, isInstanceOf, BAGGAGE_HEADER_NAME } from '@sentry/utils';\nimport { getCurrentScope, getClient, getIsolationScope } from './currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP } from './semanticAttributes.js';\nimport './tracing/errors.js';\nimport './debug-build.js';\nimport { hasTracingEnabled } from './utils/hasTracingEnabled.js';\nimport { getActiveSpan, spanToTraceHeader } from './utils/spanUtils.js';\nimport { SentryNonRecordingSpan } from './tracing/sentryNonRecordingSpan.js';\nimport { setHttpStatus, SPAN_STATUS_ERROR } from './tracing/spanstatus.js';\nimport { startInactiveSpan } from './tracing/trace.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext.js';\n\n/**\n * Create and track fetch request spans for usage in combination with `addFetchInstrumentationHandler`.\n *\n * @returns Span if a span was created, otherwise void.\n */\nfunction instrumentFetchRequest(\n handlerData,\n shouldCreateSpan,\n shouldAttachHeaders,\n spans,\n spanOrigin = 'auto.http.browser',\n) {\n if (!handlerData.fetchData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = hasTracingEnabled() && shouldCreateSpan(handlerData.fetchData.url);\n\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n endSpan(span, handlerData);\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const scope = getCurrentScope();\n const client = getClient();\n\n const { method, url } = handlerData.fetchData;\n\n const fullUrl = getFullURL(url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n\n const hasParent = !!getActiveSpan();\n\n const span =\n shouldCreateSpanResult && hasParent\n ? startInactiveSpan({\n name: `${method} ${url}`,\n attributes: {\n url,\n type: 'fetch',\n 'http.method': method,\n 'http.url': fullUrl,\n 'server.address': host,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.client',\n },\n })\n : new SentryNonRecordingSpan();\n\n handlerData.fetchData.__span = span.spanContext().spanId;\n spans[span.spanContext().spanId] = span;\n\n if (shouldAttachHeaders(handlerData.fetchData.url) && client) {\n const request = handlerData.args[0];\n\n // In case the user hasn't set the second argument of a fetch call we default it to `{}`.\n handlerData.args[1] = handlerData.args[1] || {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options = handlerData.args[1];\n\n options.headers = addTracingHeadersToFetchRequest(\n request,\n client,\n scope,\n options,\n // If performance is disabled (TWP) or there's no active root span (pageload/navigation/interaction),\n // we do not want to use the span as base for the trace headers,\n // which means that the headers will be generated from the scope and the sampling decision is deferred\n hasTracingEnabled() && hasParent ? span : undefined,\n );\n }\n\n return span;\n}\n\n/**\n * Adds sentry-trace and baggage headers to the various forms of fetch headers\n */\nfunction addTracingHeadersToFetchRequest(\n request, // unknown is actually type Request but we can't export DOM types from this package,\n client,\n scope,\n options\n\n,\n span,\n) {\n const isolationScope = getIsolationScope();\n\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader = span ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc || (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client)),\n );\n\n const headers =\n options.headers ||\n (typeof Request !== 'undefined' && isInstanceOf(request, Request) ? (request ).headers : undefined);\n\n if (!headers) {\n return { 'sentry-trace': sentryTraceHeader, baggage: sentryBaggageHeader };\n } else if (typeof Headers !== 'undefined' && isInstanceOf(headers, Headers)) {\n const newHeaders = new Headers(headers );\n\n newHeaders.append('sentry-trace', sentryTraceHeader);\n\n if (sentryBaggageHeader) {\n // If the same header is appended multiple times the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.append(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n\n return newHeaders ;\n } else if (Array.isArray(headers)) {\n const newHeaders = [...headers, ['sentry-trace', sentryTraceHeader]];\n\n if (sentryBaggageHeader) {\n // If there are multiple entries with the same key, the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.push([BAGGAGE_HEADER_NAME, sentryBaggageHeader]);\n }\n\n return newHeaders ;\n } else {\n const existingBaggageHeader = 'baggage' in headers ? headers.baggage : undefined;\n const newBaggageHeaders = [];\n\n if (Array.isArray(existingBaggageHeader)) {\n newBaggageHeaders.push(...existingBaggageHeader);\n } else if (existingBaggageHeader) {\n newBaggageHeaders.push(existingBaggageHeader);\n }\n\n if (sentryBaggageHeader) {\n newBaggageHeaders.push(sentryBaggageHeader);\n }\n\n return {\n ...(headers ),\n 'sentry-trace': sentryTraceHeader,\n baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n };\n }\n}\n\nfunction getFullURL(url) {\n try {\n const parsed = new URL(url);\n return parsed.href;\n } catch (e) {\n return undefined;\n }\n}\n\nfunction endSpan(span, handlerData) {\n if (handlerData.response) {\n setHttpStatus(span, handlerData.response.status);\n\n const contentLength =\n handlerData.response && handlerData.response.headers && handlerData.response.headers.get('content-length');\n\n if (contentLength) {\n const contentLengthNum = parseInt(contentLength);\n if (contentLengthNum > 0) {\n span.setAttribute('http.response_content_length', contentLengthNum);\n }\n }\n } else if (handlerData.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n }\n span.end();\n}\n\nexport { addTracingHeadersToFetchRequest, instrumentFetchRequest };\n//# sourceMappingURL=fetch.js.map\n","import { withScope, captureException } from '@sentry/core';\nimport { GLOBAL_OBJ, getOriginalFunction, markFunctionWrapped, addNonEnumerableProperty, addExceptionTypeValue, addExceptionMechanism } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped = function () {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\nexport { WINDOW, ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { getClient } from '@sentry/core';\nimport { addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject, isEvent, isParameterizedString, normalizeToSize, extractExceptionKeysForMessage } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n const client = getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n // If we can, we extract an exception from the object properties\n const errorFromProp = getErrorPropertyFromObject(exception);\n\n const extra = {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n };\n\n if (errorFromProp) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, errorFromProp)],\n },\n extra,\n };\n }\n\n const event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n } ,\n ],\n },\n extra,\n } ;\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const skipLines = getSkipFirstStackStringLines(ex);\n const framesToPop = getPopFirstTopFrames(ex);\n\n try {\n return stackParser(stacktrace, skipLines, framesToPop);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\n/**\n * Certain known React errors contain links that would be falsely\n * parsed as frames. This function check for these errors and\n * returns number of the stack string lines to skip.\n */\nfunction getSkipFirstStackStringLines(ex) {\n if (ex && reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n\n return 0;\n}\n\n/**\n * If error has `framesToPop` property, it means that the\n * creator tells us the first x frames will be useless\n * and should be discarded. Typically error from wrapper function\n * which don't point to the actual location in the developer's code.\n *\n * Example: https://github.com/zertosh/invariant/blob/master/invariant.js#L46\n */\nfunction getPopFirstTopFrames(ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception )) {\n const domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n // eslint-disable-next-line deprecation/deprecation\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\nfunction eventFromString(\n stackParser,\n message,\n syntheticException,\n attachStacktrace,\n) {\n const event = {};\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: message, stacktrace: { frames } }],\n };\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n exception,\n { isUnhandledRejection },\n) {\n const keys = extractExceptionKeysForMessage(exception);\n const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n }\n\n if (isEvent(exception)) {\n const className = getObjectClassName(exception);\n return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n }\n\n return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n\n return undefined;\n}\n\nexport { eventFromException, eventFromMessage, eventFromUnknownInput, exceptionFromError };\n//# sourceMappingURL=eventbuilder.js.map\n","import { dsnToString, createEnvelope } from '@sentry/utils';\n\n/**\n * Creates an envelope from a user feedback.\n */\nfunction createUserFeedbackEnvelope(\n feedback,\n {\n metadata,\n tunnel,\n dsn,\n }\n\n,\n) {\n const headers = {\n event_id: feedback.event_id,\n sent_at: new Date().toISOString(),\n ...(metadata &&\n metadata.sdk && {\n sdk: {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n },\n }),\n ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n };\n const item = createUserFeedbackEnvelopeItem(feedback);\n\n return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback) {\n const feedbackHeaders = {\n type: 'user_report',\n };\n return [feedbackHeaders, feedback];\n}\n\nexport { createUserFeedbackEnvelope };\n//# sourceMappingURL=userfeedback.js.map\n","import { BaseClient, applySdkMetadata } from '@sentry/core';\nimport { getSDKSource, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\nimport { createUserFeedbackEnvelope } from './userfeedback.js';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n const opts = {\n // We default this to true, as it is the safer scenario\n parentSpanIsAlwaysRootSpan: true,\n ...options,\n };\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n applySdkMetadata(opts, 'browser', ['browser'], sdkSource);\n\n super(opts);\n\n if (opts.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * Sends user feedback to Sentry.\n *\n * @deprecated Use `captureFeedback` instead.\n */\n captureUserFeedback(feedback) {\n if (!this._isEnabled()) {\n DEBUG_BUILD && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","const getRating = (value, thresholds) => {\n if (value > thresholds[1]) {\n return 'poor';\n }\n if (value > thresholds[0]) {\n return 'needs-improvement';\n }\n return 'good';\n};\n\nconst bindReporter = (\n callback,\n metric,\n thresholds,\n reportAllChanges,\n) => {\n let prevValue;\n let delta;\n return (forceReport) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (delta || prevValue === undefined) {\n prevValue = metric.value;\n metric.delta = delta;\n metric.rating = getRating(metric.value, thresholds);\n callback(metric);\n }\n }\n }\n };\n};\n\nexport { bindReporter };\n//# sourceMappingURL=bindReporter.js.map\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ\n\n;\n\nexport { WINDOW };\n//# sourceMappingURL=types.js.map\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nconst generateUniqueID = () => {\n return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n\nexport { generateUniqueID };\n//# sourceMappingURL=generateUniqueID.js.map\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nconst getNavigationEntry = () => {\n return WINDOW.performance && performance.getEntriesByType && performance.getEntriesByType('navigation')[0];\n};\n\nexport { getNavigationEntry };\n//# sourceMappingURL=getNavigationEntry.js.map\n","import { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nconst getActivationStart = () => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\n};\n\nexport { getActivationStart };\n//# sourceMappingURL=getActivationStart.js.map\n","import { WINDOW } from '../../../types.js';\nimport { generateUniqueID } from './generateUniqueID.js';\nimport { getActivationStart } from './getActivationStart.js';\nimport { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nconst initMetric = (name, value) => {\n const navEntry = getNavigationEntry();\n let navigationType = 'navigate';\n\n if (navEntry) {\n if ((WINDOW.document && WINDOW.document.prerendering) || getActivationStart() > 0) {\n navigationType = 'prerender';\n } else if (WINDOW.document && WINDOW.document.wasDiscarded) {\n navigationType = 'restore';\n } else if (navEntry.type) {\n navigationType = navEntry.type.replace(/_/g, '-') ;\n }\n }\n\n // Use `entries` type specific for the metric.\n const entries = [];\n\n return {\n name,\n value: typeof value === 'undefined' ? -1 : value,\n rating: 'good' , // If needed, will be updated when reported. `const` to keep the type from widening to `string`.\n delta: 0,\n entries,\n id: generateUniqueID(),\n navigationType,\n };\n};\n\nexport { initMetric };\n//# sourceMappingURL=initMetric.js.map\n","/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nconst observe = (\n type,\n callback,\n opts,\n) => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n // Delay by a microtask to workaround a bug in Safari where the\n // callback is invoked immediately, rather than in a separate task.\n // See: https://github.com/GoogleChrome/web-vitals/issues/277\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => {\n callback(list.getEntries() );\n });\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) ,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n\nexport { observe };\n//# sourceMappingURL=observe.js.map\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nconst onHidden = (cb) => {\n const onHiddenOrPageHide = (event) => {\n if (event.type === 'pagehide' || (WINDOW.document && WINDOW.document.visibilityState === 'hidden')) {\n cb(event);\n }\n };\n\n if (WINDOW.document) {\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n }\n};\n\nexport { onHidden };\n//# sourceMappingURL=onHidden.js.map\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst runOnce = (cb) => {\n let called = false;\n return (arg) => {\n if (!called) {\n cb(arg);\n called = true;\n }\n };\n};\n\nexport { runOnce };\n//# sourceMappingURL=runOnce.js.map\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = () => {\n // If the document is hidden when this code runs, assume it was always\n // hidden and the page was loaded in the background, with the one exception\n // that visibility state is always 'hidden' during prerendering, so we have\n // to ignore that case until prerendering finishes (see: `prerenderingchange`\n // event logic below).\n firstHiddenTime = WINDOW.document.visibilityState === 'hidden' && !WINDOW.document.prerendering ? 0 : Infinity;\n};\n\nconst onVisibilityUpdate = (event) => {\n // If the document is 'hidden' and no previous hidden timestamp has been\n // set, update it based on the current event data.\n if (WINDOW.document.visibilityState === 'hidden' && firstHiddenTime > -1) {\n // If the event is a 'visibilitychange' event, it means the page was\n // visible prior to this change, so the event timestamp is the first\n // hidden time.\n // However, if the event is not a 'visibilitychange' event, then it must\n // be a 'prerenderingchange' event, and the fact that the document is\n // still 'hidden' from the above check means the tab was activated\n // in a background state and so has always been hidden.\n firstHiddenTime = event.type === 'visibilitychange' ? event.timeStamp : 0;\n\n // Remove all listeners now that a `firstHiddenTime` value has been set.\n removeEventListener('visibilitychange', onVisibilityUpdate, true);\n removeEventListener('prerenderingchange', onVisibilityUpdate, true);\n }\n};\n\nconst addChangeListeners = () => {\n addEventListener('visibilitychange', onVisibilityUpdate, true);\n // IMPORTANT: when a page is prerendering, its `visibilityState` is\n // 'hidden', so in order to account for cases where this module checks for\n // visibility during prerendering, an additional check after prerendering\n // completes is also required.\n addEventListener('prerenderingchange', onVisibilityUpdate, true);\n};\n\nconst getVisibilityWatcher = () => {\n if (WINDOW.document && firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n initHiddenTime();\n addChangeListeners();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n\nexport { getVisibilityWatcher };\n//# sourceMappingURL=getVisibilityWatcher.js.map\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nconst whenActivated = (callback) => {\n if (WINDOW.document && WINDOW.document.prerendering) {\n addEventListener('prerenderingchange', () => callback(), true);\n } else {\n callback();\n }\n};\n\nexport { whenActivated };\n//# sourceMappingURL=whenActivated.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for FCP. See https://web.dev/articles/fcp#what_is_a_good_fcp_score */\nconst FCPThresholds = [1800, 3000];\n\n/**\n * Calculates the [FCP](https://web.dev/articles/fcp) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `paint` performance entry used to determine the value. The reported\n * value is a `DOMHighResTimeStamp`.\n */\nconst onFCP = (onReport, opts = {}) => {\n whenActivated(() => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FCP');\n let report;\n\n const handleEntries = (entries) => {\n (entries ).forEach(entry => {\n if (entry.name === 'first-contentful-paint') {\n po.disconnect();\n\n // Only report if the page wasn't hidden prior to the first paint.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n // The activationStart reference is used because FCP should be\n // relative to page activation rather than navigation start if the\n // page was prerendered. But in cases where `activationStart` occurs\n // after the FCP, this time should be clamped at 0.\n metric.value = Math.max(entry.startTime - getActivationStart(), 0);\n metric.entries.push(entry);\n report(true);\n }\n }\n });\n };\n\n const po = observe('paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric, FCPThresholds, opts.reportAllChanges);\n }\n });\n};\n\nexport { FCPThresholds, onFCP };\n//# sourceMappingURL=onFCP.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { onFCP } from './onFCP.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for CLS. See https://web.dev/articles/cls#what_is_a_good_cls_score */\nconst CLSThresholds = [0.1, 0.25];\n\n/**\n * Calculates the [CLS](https://web.dev/articles/cls) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/articles/cls#layout_shift_score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nconst onCLS = (onReport, opts = {}) => {\n // Start monitoring FCP so we can only report CLS if FCP is also reported.\n // Note: this is done to match the current behavior of CrUX.\n onFCP(\n runOnce(() => {\n const metric = initMetric('CLS', 0);\n let report;\n\n let sessionValue = 0;\n let sessionEntries = [];\n\n const handleEntries = (entries) => {\n entries.forEach(entry => {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry\n // and less than 5 seconds after the first entry in the session,\n // include the entry in the current session. Otherwise, start a new\n // session.\n if (\n sessionValue &&\n firstSessionEntry &&\n lastSessionEntry &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n }\n });\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n report();\n }\n };\n\n const po = observe('layout-shift', handleEntries);\n if (po) {\n report = bindReporter(onReport, metric, CLSThresholds, opts.reportAllChanges);\n\n onHidden(() => {\n handleEntries(po.takeRecords() );\n report(true);\n });\n\n // Queue a task to report (if nothing else triggers a report first).\n // This allows CLS to be reported as soon as FCP fires when\n // `reportAllChanges` is true.\n setTimeout(report, 0);\n }\n }),\n );\n};\n\nexport { CLSThresholds, onCLS };\n//# sourceMappingURL=getCLS.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for FID. See https://web.dev/articles/fid#what_is_a_good_fid_score */\nconst FIDThresholds = [100, 300];\n\n/**\n * Calculates the [FID](https://web.dev/articles/fid) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `first-input` performance entry used to determine the value. The\n * reported value is a `DOMHighResTimeStamp`.\n *\n * _**Important:** since FID is only reported after the user interacts with the\n * page, it's possible that it will not be reported for some page loads._\n */\nconst onFID = (onReport, opts = {}) => {\n whenActivated(() => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report;\n\n const handleEntry = (entry) => {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const handleEntries = (entries) => {\n (entries ).forEach(handleEntry);\n };\n\n const po = observe('first-input', handleEntries);\n report = bindReporter(onReport, metric, FIDThresholds, opts.reportAllChanges);\n\n if (po) {\n onHidden(\n runOnce(() => {\n handleEntries(po.takeRecords() );\n po.disconnect();\n }),\n );\n }\n });\n};\n\nexport { FIDThresholds, onFID };\n//# sourceMappingURL=getFID.js.map\n","import { observe } from '../observe.js';\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\n\nconst updateEstimate = (entries) => {\n (entries ).forEach(e => {\n if (e.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, e.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, e.interactionId);\n\n interactionCountEstimate = maxKnownInteractionId ? (maxKnownInteractionId - minKnownInteractionId) / 7 + 1 : 0;\n }\n });\n};\n\nlet po;\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nconst getInteractionCount = () => {\n return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\n\n/**\n * Feature detects native support or initializes the polyfill if needed.\n */\nconst initInteractionCountPolyfill = () => {\n if ('interactionCount' in performance || po) return;\n\n po = observe('event', updateEstimate, {\n type: 'event',\n buffered: true,\n durationThreshold: 0,\n } );\n};\n\nexport { getInteractionCount, initInteractionCountPolyfill };\n//# sourceMappingURL=interactionCountPolyfill.js.map\n","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { initInteractionCountPolyfill, getInteractionCount } from './lib/polyfills/interactionCountPolyfill.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for INP. See https://web.dev/articles/inp#what_is_a_good_inp_score */\nconst INPThresholds = [200, 500];\n\n// Used to store the interaction count after a bfcache restore, since p98\n// interaction latencies should only consider the current navigation.\nconst prevInteractionCount = 0;\n\n/**\n * Returns the interaction count since the last bfcache restore (or for the\n * full page lifecycle if there were no bfcache restores).\n */\nconst getInteractionCountForNavigation = () => {\n return getInteractionCount() - prevInteractionCount;\n};\n\n// To prevent unnecessary memory usage on pages with lots of interactions,\n// store at most 10 of the longest interactions to consider as INP candidates.\nconst MAX_INTERACTIONS_TO_CONSIDER = 10;\n\n// A list of longest interactions on the page (by latency) sorted so the\n// longest one is first. The list is as most MAX_INTERACTIONS_TO_CONSIDER long.\nconst longestInteractionList = [];\n\n// A mapping of longest interactions by their interaction ID.\n// This is used for faster lookup.\nconst longestInteractionMap = {};\n\n/**\n * Takes a performance entry and adds it to the list of worst interactions\n * if its duration is long enough to make it among the worst. If the\n * entry is part of an existing interaction, it is merged and the latency\n * and entries list is updated as needed.\n */\nconst processEntry = (entry) => {\n // The least-long of the 10 longest interactions.\n const minLongestInteraction = longestInteractionList[longestInteractionList.length - 1];\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const existingInteraction = longestInteractionMap[entry.interactionId];\n\n // Only process the entry if it's possibly one of the ten longest,\n // or if it's part of an existing interaction.\n if (\n existingInteraction ||\n longestInteractionList.length < MAX_INTERACTIONS_TO_CONSIDER ||\n (minLongestInteraction && entry.duration > minLongestInteraction.latency)\n ) {\n // If the interaction already exists, update it. Otherwise create one.\n if (existingInteraction) {\n existingInteraction.entries.push(entry);\n existingInteraction.latency = Math.max(existingInteraction.latency, entry.duration);\n } else {\n const interaction = {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n id: entry.interactionId,\n latency: entry.duration,\n entries: [entry],\n };\n longestInteractionMap[interaction.id] = interaction;\n longestInteractionList.push(interaction);\n }\n\n // Sort the entries by latency (descending) and keep only the top ten.\n longestInteractionList.sort((a, b) => b.latency - a.latency);\n longestInteractionList.splice(MAX_INTERACTIONS_TO_CONSIDER).forEach(i => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete longestInteractionMap[i.id];\n });\n }\n};\n\n/**\n * Returns the estimated p98 longest interaction based on the stored\n * interaction candidates and the interaction count for the current page.\n */\nconst estimateP98LongestInteraction = () => {\n const candidateInteractionIndex = Math.min(\n longestInteractionList.length - 1,\n Math.floor(getInteractionCountForNavigation() / 50),\n );\n\n return longestInteractionList[candidateInteractionIndex];\n};\n\n/**\n * Calculates the [INP](https://web.dev/articles/inp) value for the current\n * page and calls the `callback` function once the value is ready, along with\n * the `event` performance entries reported for that interaction. The reported\n * value is a `DOMHighResTimeStamp`.\n *\n * A custom `durationThreshold` configuration option can optionally be passed to\n * control what `event-timing` entries are considered for INP reporting. The\n * default threshold is `40`, which means INP scores of less than 40 are\n * reported as 0. Note that this will not affect your 75th percentile INP value\n * unless that value is also less than 40 (well below the recommended\n * [good](https://web.dev/articles/inp#what_is_a_good_inp_score) threshold).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** INP should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nconst onINP = (onReport, opts = {}) => {\n whenActivated(() => {\n // TODO(philipwalton): remove once the polyfill is no longer needed.\n initInteractionCountPolyfill();\n\n const metric = initMetric('INP');\n // eslint-disable-next-line prefer-const\n let report;\n\n const handleEntries = (entries) => {\n entries.forEach(entry => {\n if (entry.interactionId) {\n processEntry(entry);\n }\n\n // Entries of type `first-input` don't currently have an `interactionId`,\n // so to consider them in INP we have to first check that an existing\n // entry doesn't match the `duration` and `startTime`.\n // Note that this logic assumes that `event` entries are dispatched\n // before `first-input` entries. This is true in Chrome (the only browser\n // that currently supports INP).\n // TODO(philipwalton): remove once crbug.com/1325826 is fixed.\n if (entry.entryType === 'first-input') {\n const noMatchingEntry = !longestInteractionList.some(interaction => {\n return interaction.entries.some(prevEntry => {\n return entry.duration === prevEntry.duration && entry.startTime === prevEntry.startTime;\n });\n });\n if (noMatchingEntry) {\n processEntry(entry);\n }\n }\n });\n\n const inp = estimateP98LongestInteraction();\n\n if (inp && inp.latency !== metric.value) {\n metric.value = inp.latency;\n metric.entries = inp.entries;\n report();\n }\n };\n\n const po = observe('event', handleEntries, {\n // Event Timing entries have their durations rounded to the nearest 8ms,\n // so a duration of 40ms would be any event that spans 2.5 or more frames\n // at 60Hz. This threshold is chosen to strike a balance between usefulness\n // and performance. Running this callback for any interaction that spans\n // just one or two frames is likely not worth the insight that could be\n // gained.\n durationThreshold: opts.durationThreshold != null ? opts.durationThreshold : 40,\n } );\n\n report = bindReporter(onReport, metric, INPThresholds, opts.reportAllChanges);\n\n if (po) {\n // If browser supports interactionId (and so supports INP), also\n // observe entries of type `first-input`. This is useful in cases\n // where the first interaction is less than the `durationThreshold`.\n if ('PerformanceEventTiming' in WINDOW && 'interactionId' in PerformanceEventTiming.prototype) {\n po.observe({ type: 'first-input', buffered: true });\n }\n\n onHidden(() => {\n handleEntries(po.takeRecords() );\n\n // If the interaction count shows that there were interactions but\n // none were captured by the PerformanceObserver, report a latency of 0.\n if (metric.value < 0 && getInteractionCountForNavigation() > 0) {\n metric.value = 0;\n metric.entries = [];\n }\n\n report(true);\n });\n }\n });\n};\n\nexport { INPThresholds, onINP };\n//# sourceMappingURL=getINP.js.map\n","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for LCP. See https://web.dev/articles/lcp#what_is_a_good_lcp_score */\nconst LCPThresholds = [2500, 4000];\n\nconst reportedMetricIDs = {};\n\n/**\n * Calculates the [LCP](https://web.dev/articles/lcp) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called any time a new `largest-contentful-paint`\n * performance entry is dispatched, or once the final value of the metric has\n * been determined.\n */\nconst onLCP = (onReport, opts = {}) => {\n whenActivated(() => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report;\n\n const handleEntries = (entries) => {\n const lastEntry = entries[entries.length - 1] ;\n if (lastEntry) {\n // Only report if the page wasn't hidden prior to LCP.\n if (lastEntry.startTime < visibilityWatcher.firstHiddenTime) {\n // The startTime attribute returns the value of the renderTime if it is\n // not 0, and the value of the loadTime otherwise. The activationStart\n // reference is used because LCP should be relative to page activation\n // rather than navigation start if the page was prerendered. But in cases\n // where `activationStart` occurs after the LCP, this time should be\n // clamped at 0.\n metric.value = Math.max(lastEntry.startTime - getActivationStart(), 0);\n metric.entries = [lastEntry];\n report();\n }\n }\n };\n\n const po = observe('largest-contentful-paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric, LCPThresholds, opts.reportAllChanges);\n\n const stopListening = runOnce(() => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() );\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n });\n\n // Stop listening after input. Note: while scrolling is an input that\n // stops LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n if (WINDOW.document) {\n // Wrap in a setTimeout so the callback is run in a separate task\n // to avoid extending the keyboard/click handler to reduce INP impact\n // https://github.com/GoogleChrome/web-vitals/issues/383\n addEventListener(type, () => setTimeout(stopListening, 0), true);\n }\n });\n\n onHidden(stopListening);\n }\n });\n};\n\nexport { LCPThresholds, onLCP };\n//# sourceMappingURL=getLCP.js.map\n","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getNavigationEntry } from './lib/getNavigationEntry.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for TTFB. See https://web.dev/articles/ttfb#what_is_a_good_ttfb_score */\nconst TTFBThresholds = [800, 1800];\n\n/**\n * Runs in the next task after the page is done loading and/or prerendering.\n * @param callback\n */\nconst whenReady = (callback) => {\n if (WINDOW.document && WINDOW.document.prerendering) {\n whenActivated(() => whenReady(callback));\n } else if (WINDOW.document && WINDOW.document.readyState !== 'complete') {\n addEventListener('load', () => whenReady(callback), true);\n } else {\n // Queue a task so the callback runs after `loadEventEnd`.\n setTimeout(callback, 0);\n }\n};\n\n/**\n * Calculates the [TTFB](https://web.dev/articles/ttfb) value for the\n * current page and calls the `callback` function once the page has loaded,\n * along with the relevant `navigation` performance entry used to determine the\n * value. The reported value is a `DOMHighResTimeStamp`.\n *\n * Note, this function waits until after the page is loaded to call `callback`\n * in order to ensure all properties of the `navigation` entry are populated.\n * This is useful if you want to report on other metrics exposed by the\n * [Navigation Timing API](https://w3c.github.io/navigation-timing/). For\n * example, the TTFB metric starts from the page's [time\n * origin](https://www.w3.org/TR/hr-time-2/#sec-time-origin), which means it\n * includes time spent on DNS lookup, connection negotiation, network latency,\n * and server processing time.\n */\nconst onTTFB = (onReport, opts = {}) => {\n const metric = initMetric('TTFB');\n const report = bindReporter(onReport, metric, TTFBThresholds, opts.reportAllChanges);\n\n whenReady(() => {\n const navEntry = getNavigationEntry();\n\n if (navEntry) {\n const responseStart = navEntry.responseStart;\n\n // In some cases no value is reported by the browser (for\n // privacy/security reasons), and in other cases (bugs) the value is\n // negative or is larger than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n // https://github.com/GoogleChrome/web-vitals/issues/275\n if (responseStart <= 0 || responseStart > performance.now()) return;\n\n // The activationStart reference is used because TTFB should be\n // relative to page activation rather than navigation start if the\n // page was prerendered. But in cases where `activationStart` occurs\n // after the first byte is received, this time should be clamped at 0.\n metric.value = Math.max(responseStart - getActivationStart(), 0);\n\n metric.entries = [navEntry];\n report(true);\n }\n });\n};\n\nexport { TTFBThresholds, onTTFB };\n//# sourceMappingURL=onTTFB.js.map\n","import { logger, getFunctionName } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { onCLS } from './web-vitals/getCLS.js';\nimport { onFID } from './web-vitals/getFID.js';\nimport { onINP } from './web-vitals/getINP.js';\nimport { onLCP } from './web-vitals/getLCP.js';\nimport { observe } from './web-vitals/lib/observe.js';\nimport { onTTFB } from './web-vitals/onTTFB.js';\n\nconst handlers = {};\nconst instrumented = {};\n\nlet _previousCls;\nlet _previousFid;\nlet _previousLcp;\nlet _previousTtfb;\nlet _previousInp;\n\n/**\n * Add a callback that will be triggered when a CLS metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for CLS when the cleanup callback is called.\n * This will lead to the CLS being finalized and frozen.\n */\nfunction addClsInstrumentationHandler(\n callback,\n stopOnCallback = false,\n) {\n return addMetricObserver('cls', callback, instrumentCls, _previousCls, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a LCP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for LCP when the cleanup callback is called.\n * This will lead to the LCP being finalized and frozen.\n */\nfunction addLcpInstrumentationHandler(\n callback,\n stopOnCallback = false,\n) {\n return addMetricObserver('lcp', callback, instrumentLcp, _previousLcp, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addFidInstrumentationHandler(callback) {\n return addMetricObserver('fid', callback, instrumentFid, _previousFid);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n */\nfunction addTtfbInstrumentationHandler(callback) {\n return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb);\n}\n\n/**\n * Add a callback that will be triggered when a INP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addInpInstrumentationHandler(\n callback,\n) {\n return addMetricObserver('inp', callback, instrumentInp, _previousInp);\n}\n\n/**\n * Add a callback that will be triggered when a performance observer is triggered,\n * and receives the entries of the observer.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addPerformanceInstrumentationHandler(\n type,\n callback,\n) {\n addHandler(type, callback);\n\n if (!instrumented[type]) {\n instrumentPerformanceObserver(type);\n instrumented[type] = true;\n }\n\n return getCleanupCallback(type, callback);\n}\n\n/** Trigger all handlers of a given type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = handlers[type];\n\n if (!typeHandlers || !typeHandlers.length) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nfunction instrumentCls() {\n return onCLS(\n metric => {\n triggerHandlers('cls', {\n metric,\n });\n _previousCls = metric;\n },\n // We want the callback to be called whenever the CLS value updates.\n // By default, the callback is only called when the tab goes to the background.\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentFid() {\n return onFID(metric => {\n triggerHandlers('fid', {\n metric,\n });\n _previousFid = metric;\n });\n}\n\nfunction instrumentLcp() {\n return onLCP(\n metric => {\n triggerHandlers('lcp', {\n metric,\n });\n _previousLcp = metric;\n },\n // We want the callback to be called whenever the LCP value updates.\n // By default, the callback is only called when the tab goes to the background.\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentTtfb() {\n return onTTFB(metric => {\n triggerHandlers('ttfb', {\n metric,\n });\n _previousTtfb = metric;\n });\n}\n\nfunction instrumentInp() {\n return onINP(metric => {\n triggerHandlers('inp', {\n metric,\n });\n _previousInp = metric;\n });\n}\n\nfunction addMetricObserver(\n type,\n callback,\n instrumentFn,\n previousValue,\n stopOnCallback = false,\n) {\n addHandler(type, callback);\n\n let stopListening;\n\n if (!instrumented[type]) {\n stopListening = instrumentFn();\n instrumented[type] = true;\n }\n\n if (previousValue) {\n callback({ metric: previousValue });\n }\n\n return getCleanupCallback(type, callback, stopOnCallback ? stopListening : undefined);\n}\n\nfunction instrumentPerformanceObserver(type) {\n const options = {};\n\n // Special per-type options we want to use\n if (type === 'event') {\n options.durationThreshold = 0;\n }\n\n observe(\n type,\n entries => {\n triggerHandlers(type, { entries });\n },\n options,\n );\n}\n\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(\n type,\n callback,\n stopListening,\n) {\n return () => {\n if (stopListening) {\n stopListening();\n }\n\n const typeHandlers = handlers[type];\n\n if (!typeHandlers) {\n return;\n }\n\n const index = typeHandlers.indexOf(callback);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n };\n}\n\n/**\n * Check if a PerformanceEntry is a PerformanceEventTiming by checking for the `duration` property.\n */\nfunction isPerformanceEventTiming(entry) {\n return 'duration' in entry;\n}\n\nexport { addClsInstrumentationHandler, addFidInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, addTtfbInstrumentationHandler, isPerformanceEventTiming };\n//# sourceMappingURL=instrument.js.map\n","import { spanToJSON, withActiveSpan, startInactiveSpan, getClient, getCurrentScope } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nfunction startAndEndSpan(\n parentSpan,\n startTimeInSeconds,\n endTime,\n { ...ctx },\n) {\n const parentStartTime = spanToJSON(parentSpan).start_timestamp;\n if (parentStartTime && parentStartTime > startTimeInSeconds) {\n // We can only do this for SentrySpans...\n if (typeof (parentSpan ).updateStartTime === 'function') {\n (parentSpan ).updateStartTime(startTimeInSeconds);\n }\n }\n\n // The return value only exists for tests\n return withActiveSpan(parentSpan, () => {\n const span = startInactiveSpan({\n startTime: startTimeInSeconds,\n ...ctx,\n });\n\n if (span) {\n span.end(endTime);\n }\n\n return span;\n });\n}\n\n/**\n * Starts an inactive, standalone span used to send web vital values to Sentry.\n * DO NOT use this for arbitrary spans, as these spans require special handling\n * during ingestion to extract metrics.\n *\n * This function adds a bunch of attributes and data to the span that's shared\n * by all web vital standalone spans. However, you need to take care of adding\n * the actual web vital value as an event to the span. Also, you need to assign\n * a transaction name and some other values that are specific to the web vital.\n *\n * Ultimately, you also need to take care of ending the span to send it off.\n *\n * @param options\n *\n * @returns an inactive, standalone and NOT YET ended span\n */\nfunction startStandaloneWebVitalSpan(options) {\n const client = getClient();\n if (!client) {\n return;\n }\n\n const { name, transaction, attributes: passedAttributes, startTime } = options;\n\n const { release, environment } = client.getOptions();\n // We need to get the replay, user, and activeTransaction from the current scope\n // so that we can associate replay id, profile id, and a user display to the span\n const replay = client.getIntegrationByName('Replay');\n const replayId = replay && replay.getReplayId();\n\n const scope = getCurrentScope();\n\n const user = scope.getUser();\n const userDisplay = user !== undefined ? user.email || user.id || user.ip_address : undefined;\n\n let profileId;\n try {\n // @ts-expect-error skip optional chaining to save bundle size with try catch\n profileId = scope.getScopeData().contexts.profile.profile_id;\n } catch (e) {\n // do nothing\n }\n\n const attributes = {\n release,\n environment,\n\n user: userDisplay || undefined,\n profile_id: profileId || undefined,\n replay_id: replayId || undefined,\n\n transaction,\n\n // Web vital score calculation relies on the user agent to account for different\n // browsers setting different thresholds for what is considered a good/meh/bad value.\n // For example: Chrome vs. Chrome Mobile\n 'user_agent.original': WINDOW.navigator && WINDOW.navigator.userAgent,\n\n ...passedAttributes,\n };\n\n return startInactiveSpan({\n name,\n attributes,\n startTime,\n experimental: {\n standalone: true,\n },\n });\n}\n\n/** Get the browser performance API. */\nfunction getBrowserPerformanceAPI() {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n return WINDOW && WINDOW.addEventListener && WINDOW.performance;\n}\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time) {\n return time / 1000;\n}\n\nexport { getBrowserPerformanceAPI, isMeasurementValue, msToSec, startAndEndSpan, startStandaloneWebVitalSpan };\n//# sourceMappingURL=utils.js.map\n","import { _optionalChain } from '@sentry/utils';\nimport { getClient, getActiveSpan, getRootSpan, spanToJSON, getCurrentScope, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '@sentry/core';\nimport { logger, browserPerformanceTimeOrigin, htmlTreeAsString, dropUndefinedKeys } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { addClsInstrumentationHandler } from './instrument.js';\nimport { msToSec, startStandaloneWebVitalSpan } from './utils.js';\nimport { onHidden } from './web-vitals/lib/onHidden.js';\n\n/**\n * Starts tracking the Cumulative Layout Shift on the current page and collects the value once\n *\n * - the page visibility is hidden\n * - a navigation span is started (to stop CLS measurement for SPA soft navigations)\n *\n * Once either of these events triggers, the CLS value is sent as a standalone span and we stop\n * measuring CLS.\n */\nfunction trackClsAsStandaloneSpan() {\n let standaloneCLsValue = 0;\n let standaloneClsEntry;\n let pageloadSpanId;\n\n if (!supportsLayoutShift()) {\n return;\n }\n\n let sentSpan = false;\n function _collectClsOnce() {\n if (sentSpan) {\n return;\n }\n sentSpan = true;\n if (pageloadSpanId) {\n sendStandaloneClsSpan(standaloneCLsValue, standaloneClsEntry, pageloadSpanId);\n }\n cleanupClsHandler();\n }\n\n const cleanupClsHandler = addClsInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1] ;\n if (!entry) {\n return;\n }\n standaloneCLsValue = metric.value;\n standaloneClsEntry = entry;\n }, true);\n\n // use pagehide event from web-vitals\n onHidden(() => {\n _collectClsOnce();\n });\n\n // Since the call chain of this function is synchronous and evaluates before the SDK client is created,\n // we need to wait with subscribing to a client hook until the client is created. Therefore, we defer\n // to the next tick after the SDK setup.\n setTimeout(() => {\n const client = getClient();\n\n const unsubscribeStartNavigation = _optionalChain([client, 'optionalAccess', _ => _.on, 'call', _2 => _2('startNavigationSpan', () => {\n _collectClsOnce();\n unsubscribeStartNavigation && unsubscribeStartNavigation();\n })]);\n\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n const spanJSON = rootSpan && spanToJSON(rootSpan);\n if (spanJSON && spanJSON.op === 'pageload') {\n pageloadSpanId = rootSpan.spanContext().spanId;\n }\n }, 0);\n}\n\nfunction sendStandaloneClsSpan(clsValue, entry, pageloadSpanId) {\n DEBUG_BUILD && logger.log(`Sending CLS span (${clsValue})`);\n\n const startTime = msToSec((browserPerformanceTimeOrigin || 0) + (_optionalChain([entry, 'optionalAccess', _3 => _3.startTime]) || 0));\n const routeName = getCurrentScope().getScopeData().transactionName;\n\n const name = entry ? htmlTreeAsString(_optionalChain([entry, 'access', _4 => _4.sources, 'access', _5 => _5[0], 'optionalAccess', _6 => _6.node])) : 'Layout shift';\n\n const attributes = dropUndefinedKeys({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser.cls',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.webvital.cls',\n [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: _optionalChain([entry, 'optionalAccess', _7 => _7.duration]) || 0,\n // attach the pageload span id to the CLS span so that we can link them in the UI\n 'sentry.pageload.span_id': pageloadSpanId,\n });\n\n const span = startStandaloneWebVitalSpan({\n name,\n transaction: routeName,\n attributes,\n startTime,\n });\n\n _optionalChain([span, 'optionalAccess', _8 => _8.addEvent, 'call', _9 => _9('cls', {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: '',\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: clsValue,\n })]);\n\n // LayoutShift performance entries always have a duration of 0, so we don't need to add `entry.duration` here\n // see: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry/duration\n _optionalChain([span, 'optionalAccess', _10 => _10.end, 'call', _11 => _11(startTime)]);\n}\n\nfunction supportsLayoutShift() {\n try {\n return _optionalChain([PerformanceObserver, 'access', _12 => _12.supportedEntryTypes, 'optionalAccess', _13 => _13.includes, 'call', _14 => _14('layout-shift')]);\n } catch (e) {\n return false;\n }\n}\n\nexport { trackClsAsStandaloneSpan };\n//# sourceMappingURL=cls.js.map\n","import { getActiveSpan, startInactiveSpan, spanToJSON, setMeasurement, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { browserPerformanceTimeOrigin, logger, parseUrl, htmlTreeAsString, getComponentName } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../types.js';\nimport { trackClsAsStandaloneSpan } from './cls.js';\nimport { addPerformanceInstrumentationHandler, addClsInstrumentationHandler, addLcpInstrumentationHandler, addFidInstrumentationHandler, addTtfbInstrumentationHandler } from './instrument.js';\nimport { getBrowserPerformanceAPI, msToSec, startAndEndSpan, isMeasurementValue } from './utils.js';\nimport { getActivationStart } from './web-vitals/lib/getActivationStart.js';\nimport { getNavigationEntry } from './web-vitals/lib/getNavigationEntry.js';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher.js';\n\n/* eslint-disable max-lines */\n\nconst MAX_INT_AS_BYTES = 2147483647;\n\nlet _performanceCursor = 0;\n\nlet _measurements = {};\nlet _lcpEntry;\nlet _clsEntry;\n\n/**\n * Start tracking web vitals.\n * The callback returned by this function can be used to stop tracking & ensure all measurements are final & captured.\n *\n * @returns A function that forces web vitals collection\n */\nfunction startTrackingWebVitals({ recordClsStandaloneSpans }) {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n if (performance.mark) {\n WINDOW.performance.mark('sentry-tracing-init');\n }\n const fidCleanupCallback = _trackFID();\n const lcpCleanupCallback = _trackLCP();\n const ttfbCleanupCallback = _trackTtfb();\n const clsCleanupCallback = recordClsStandaloneSpans ? trackClsAsStandaloneSpan() : _trackCLS();\n\n return () => {\n fidCleanupCallback();\n lcpCleanupCallback();\n ttfbCleanupCallback();\n clsCleanupCallback && clsCleanupCallback();\n };\n }\n\n return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nfunction startTrackingLongTasks() {\n addPerformanceInstrumentationHandler('longtask', ({ entries }) => {\n if (!getActiveSpan()) {\n return;\n }\n for (const entry of entries) {\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n const span = startInactiveSpan({\n name: 'Main UI thread blocked',\n op: 'ui.long-task',\n startTime,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n if (span) {\n span.end(startTime + duration);\n }\n }\n });\n}\n\n/**\n * Start tracking long animation frames.\n */\nfunction startTrackingLongAnimationFrames() {\n // NOTE: the current web-vitals version (3.5.2) does not support long-animation-frame, so\n // we directly observe `long-animation-frame` events instead of through the web-vitals\n // `observe` helper function.\n const observer = new PerformanceObserver(list => {\n if (!getActiveSpan()) {\n return;\n }\n for (const entry of list.getEntries() ) {\n if (!entry.scripts[0]) {\n continue;\n }\n\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n };\n\n const initialScript = entry.scripts[0];\n const { invoker, invokerType, sourceURL, sourceFunctionName, sourceCharPosition } = initialScript;\n attributes['browser.script.invoker'] = invoker;\n attributes['browser.script.invoker_type'] = invokerType;\n if (sourceURL) {\n attributes['code.filepath'] = sourceURL;\n }\n if (sourceFunctionName) {\n attributes['code.function'] = sourceFunctionName;\n }\n if (sourceCharPosition !== -1) {\n attributes['browser.script.source_char_position'] = sourceCharPosition;\n }\n\n const span = startInactiveSpan({\n name: 'Main UI thread blocked',\n op: 'ui.long-animation-frame',\n startTime,\n attributes,\n });\n if (span) {\n span.end(startTime + duration);\n }\n }\n });\n\n observer.observe({ type: 'long-animation-frame', buffered: true });\n}\n\n/**\n * Start tracking interaction events.\n */\nfunction startTrackingInteractions() {\n addPerformanceInstrumentationHandler('event', ({ entries }) => {\n if (!getActiveSpan()) {\n return;\n }\n for (const entry of entries) {\n if (entry.name === 'click') {\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n const spanOptions = {\n name: htmlTreeAsString(entry.target),\n op: `ui.interaction.${entry.name}`,\n startTime: startTime,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n };\n\n const componentName = getComponentName(entry.target);\n if (componentName) {\n spanOptions.attributes['ui.component_name'] = componentName;\n }\n\n const span = startInactiveSpan(spanOptions);\n if (span) {\n span.end(startTime + duration);\n }\n }\n }\n });\n}\n\n/**\n * Starts tracking the Cumulative Layout Shift on the current page and collects the value and last entry\n * to the `_measurements` object which ultimately is applied to the pageload span's measurements.\n */\nfunction _trackCLS() {\n return addClsInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1] ;\n if (!entry) {\n return;\n }\n DEBUG_BUILD && logger.log(`[Measurements] Adding CLS ${metric.value}`);\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry;\n }, true);\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP() {\n return addLcpInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _lcpEntry = entry ;\n }, true);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID() {\n return addFidInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin );\n const startTime = msToSec(entry.startTime);\n DEBUG_BUILD && logger.log('[Measurements] Adding FID');\n _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n });\n}\n\nfunction _trackTtfb() {\n return addTtfbInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = { value: metric.value, unit: 'millisecond' };\n });\n}\n\n/** Add performance related spans to a transaction */\nfunction addPerformanceEntries(span, options) {\n const performance = getBrowserPerformanceAPI();\n if (!performance || !WINDOW.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n DEBUG_BUILD && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n const performanceEntries = performance.getEntries();\n\n const { op, start_timestamp: transactionStartTime } = spanToJSON(span);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n performanceEntries.slice(_performanceCursor).forEach((entry) => {\n const startTime = msToSec(entry.startTime);\n const duration = msToSec(\n // Inexplicably, Chrome sometimes emits a negative duration. We need to work around this.\n // There is a SO post attempting to explain this, but it leaves one with open questions: https://stackoverflow.com/questions/23191918/peformance-getentries-and-negative-duration-display\n // The way we clamp the value is probably not accurate, since we have observed this happen for things that may take a while to load, like for example the replay worker.\n // TODO: Investigate why this happens and how to properly mitigate. For now, this is a workaround to prevent transactions being dropped due to negative duration spans.\n Math.max(0, entry.duration),\n );\n\n if (op === 'navigation' && transactionStartTime && timeOrigin + startTime < transactionStartTime) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(span, entry, timeOrigin);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n _addMeasureSpans(span, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n break;\n }\n case 'resource': {\n _addResourceSpans(span, entry, entry.name , startTime, duration, timeOrigin);\n break;\n }\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n _trackNavigator(span);\n\n // Measurements are only available for pageload transactions\n if (op === 'pageload') {\n _addTtfbRequestTimeToMeasurements(_measurements);\n\n const fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n startAndEndSpan(span, fidMark.value, fidMark.value + msToSec(_measurements['fid'].value), {\n name: 'first input delay',\n op: 'ui.action',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n\n // Delete mark.fid as we don't want it to be part of final payload\n delete _measurements['mark.fid'];\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n // TODO: Check if the first condition is still necessary: `onCLS` already only fires once `onFCP` was called.\n if (!('fcp' in _measurements) || !options.recordClsOnPageloadSpan) {\n delete _measurements.cls;\n }\n\n Object.entries(_measurements).forEach(([measurementName, measurement]) => {\n setMeasurement(measurementName, measurement.value, measurement.unit);\n });\n\n // Set timeOrigin which denotes the timestamp which to base the LCP/FCP/FP/TTFB measurements on\n span.setAttribute('performance.timeOrigin', timeOrigin);\n\n // In prerendering scenarios, where a page might be prefetched and pre-rendered before the user clicks the link,\n // the navigation starts earlier than when the user clicks it. Web Vitals should always be based on the\n // user-perceived time, so they are not reported from the actual start of the navigation, but rather from the\n // time where the user actively started the navigation, for example by clicking a link.\n // This is user action is called \"activation\" and the time between navigation and activation is stored in\n // the `activationStart` attribute of the \"navigation\" PerformanceEntry.\n span.setAttribute('performance.activationStart', getActivationStart());\n\n _setWebVitalAttributes(span);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nfunction _addMeasureSpans(\n span,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry,\n startTime,\n duration,\n timeOrigin,\n) {\n const navEntry = getNavigationEntry();\n const requestTime = msToSec(navEntry ? navEntry.requestStart : 0);\n // Because performance.measure accepts arbitrary timestamps it can produce\n // spans that happen before the browser even makes a request for the page.\n //\n // An example of this is the automatically generated Next.js-before-hydration\n // spans created by the Next.js framework.\n //\n // To prevent this we will pin the start timestamp to the request start time\n // This does make duration inaccruate, so if this does happen, we will add\n // an attribute to the span\n const measureStartTimestamp = timeOrigin + Math.max(startTime, requestTime);\n const startTimeStamp = timeOrigin + startTime;\n const measureEndTimestamp = startTimeStamp + duration;\n\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.resource.browser.metrics',\n };\n\n if (measureStartTimestamp !== startTimeStamp) {\n attributes['sentry.browser.measure_happened_before_request'] = true;\n attributes['sentry.browser.measure_start_time'] = measureStartTimestamp;\n }\n\n startAndEndSpan(span, measureStartTimestamp, measureEndTimestamp, {\n name: entry.name ,\n op: entry.entryType ,\n attributes,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addNavigationSpans(span, entry, timeOrigin) {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n _addPerformanceNavigationTiming(span, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(span, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n _addPerformanceNavigationTiming(span, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n _addPerformanceNavigationTiming(span, entry, 'domainLookup', timeOrigin, 'DNS');\n _addRequest(span, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n span,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry,\n event,\n timeOrigin,\n name,\n eventEnd,\n) {\n const end = eventEnd ? (entry[eventEnd] ) : (entry[`${event}End`] );\n const start = entry[`${event}Start`] ;\n if (!start || !end) {\n return;\n }\n startAndEndSpan(span, timeOrigin + msToSec(start), timeOrigin + msToSec(end), {\n op: `browser.${name || event}`,\n name: entry.name,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n}\n\n/** Create request and response related spans */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addRequest(span, entry, timeOrigin) {\n const requestStartTimestamp = timeOrigin + msToSec(entry.requestStart );\n const responseEndTimestamp = timeOrigin + msToSec(entry.responseEnd );\n const responseStartTimestamp = timeOrigin + msToSec(entry.responseStart );\n if (entry.responseEnd) {\n // It is possible that we are collecting these metrics when the page hasn't finished loading yet, for example when the HTML slowly streams in.\n // In this case, ie. when the document request hasn't finished yet, `entry.responseEnd` will be 0.\n // In order not to produce faulty spans, where the end timestamp is before the start timestamp, we will only collect\n // these spans when the responseEnd value is available. The backend (Relay) would drop the entire span if it contained faulty spans.\n startAndEndSpan(span, requestStartTimestamp, responseEndTimestamp, {\n op: 'browser.request',\n name: entry.name,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n\n startAndEndSpan(span, responseStartTimestamp, responseEndTimestamp, {\n op: 'browser.response',\n name: entry.name,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n }\n}\n\n/** Create resource-related spans */\nfunction _addResourceSpans(\n span,\n entry,\n resourceUrl,\n startTime,\n duration,\n timeOrigin,\n) {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n const parsedUrl = parseUrl(resourceUrl);\n\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.resource.browser.metrics',\n };\n setResourceEntrySizeData(attributes, entry, 'transferSize', 'http.response_transfer_size');\n setResourceEntrySizeData(attributes, entry, 'encodedBodySize', 'http.response_content_length');\n setResourceEntrySizeData(attributes, entry, 'decodedBodySize', 'http.decoded_response_content_length');\n\n if ('renderBlockingStatus' in entry) {\n attributes['resource.render_blocking_status'] = entry.renderBlockingStatus;\n }\n if (parsedUrl.protocol) {\n attributes['url.scheme'] = parsedUrl.protocol.split(':').pop(); // the protocol returned by parseUrl includes a :, but OTEL spec does not, so we remove it.\n }\n\n if (parsedUrl.host) {\n attributes['server.address'] = parsedUrl.host;\n }\n\n attributes['url.same_origin'] = resourceUrl.includes(WINDOW.location.origin);\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n startAndEndSpan(span, startTimestamp, endTimestamp, {\n name: resourceUrl.replace(WINDOW.location.origin, ''),\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other',\n attributes,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(span) {\n const navigator = WINDOW.navigator ;\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n span.setAttribute('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n span.setAttribute('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n span.setAttribute('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n span.setAttribute('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to span to allow debugging */\nfunction _setWebVitalAttributes(span) {\n if (_lcpEntry) {\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n span.setAttribute('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n span.setAttribute('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n span.setAttribute('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\n span.setAttribute('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n DEBUG_BUILD && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) =>\n span.setAttribute(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n\nfunction setResourceEntrySizeData(\n attributes,\n entry,\n key,\n dataKey,\n) {\n const entryVal = entry[key];\n if (entryVal != null && entryVal < MAX_INT_AS_BYTES) {\n attributes[dataKey] = entryVal;\n }\n}\n\n/**\n * Add ttfb request time information to measurements.\n *\n * ttfb information is added via vendored web vitals library.\n */\nfunction _addTtfbRequestTimeToMeasurements(_measurements) {\n const navEntry = getNavigationEntry();\n if (!navEntry) {\n return;\n }\n\n const { responseStart, requestStart } = navEntry;\n\n if (requestStart <= responseStart) {\n DEBUG_BUILD && logger.log('[Measurements] Adding TTFB Request Time');\n _measurements['ttfb.requestTime'] = {\n value: responseStart - requestStart,\n unit: 'millisecond',\n };\n }\n}\n\nexport { _addMeasureSpans, _addResourceSpans, addPerformanceEntries, startTrackingInteractions, startTrackingLongAnimationFrames, startTrackingLongTasks, startTrackingWebVitals };\n//# sourceMappingURL=browserMetrics.js.map\n","import { addHandler, maybeInstrument, triggerHandlers, fill, addNonEnumerableProperty, uuid4 } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID;\nlet lastCapturedEventType;\nlet lastCapturedEventTargetId;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addClickKeypressInstrumentationHandler(handler) {\n const type = 'dom';\n addHandler(type, handler);\n maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nfunction instrumentDOM() {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n const proto = (WINDOW )[target] && (WINDOW )[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event) {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target )._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType, target) {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n handler,\n globalListener = false,\n) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n const handlerData = { event, name, global: globalListener };\n handler(handlerData);\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\nfunction getEventTarget(event) {\n try {\n return event.target ;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n\nexport { addClickKeypressInstrumentationHandler, instrumentDOM };\n//# sourceMappingURL=dom.js.map\n","import { addHandler, maybeInstrument, supportsHistory, triggerHandlers, fill } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nlet lastHref;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addHistoryInstrumentationHandler(handler) {\n const type = 'history';\n addHandler(type, handler);\n maybeInstrument(type, instrumentHistory);\n}\n\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function ( ...args) {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nexport { addHistoryInstrumentationHandler };\n//# sourceMappingURL=history.js.map\n","import { isNativeFunction, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './types.js';\n\n/**\n * We generally want to use window.fetch / window.setTimeout.\n * However, in some cases this may be wrapped (e.g. by Zone.js for Angular),\n * so we try to get an unpatched version of this from a sandboxed iframe.\n */\n\nconst cachedImplementations = {};\n\n/**\n * Get the native implementation of a browser function.\n *\n * This can be used to ensure we get an unwrapped version of a function, in cases where a wrapped function can lead to problems.\n *\n * The following methods can be retrieved:\n * - `setTimeout`: This can be wrapped by e.g. Angular, causing change detection to be triggered.\n * - `fetch`: This can be wrapped by e.g. ad-blockers, causing an infinite loop when a request is blocked.\n */\nfunction getNativeImplementation(\n name,\n) {\n const cached = cachedImplementations[name];\n if (cached) {\n return cached;\n }\n\n let impl = WINDOW[name] ;\n\n // Fast path to avoid DOM I/O\n if (isNativeFunction(impl)) {\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n }\n\n const document = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl = contentWindow[name] ;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n // Could not create sandbox iframe, just use window.xxx\n DEBUG_BUILD && logger.warn(`Could not create sandbox iframe for ${name} check, bailing to window.${name}: `, e);\n }\n }\n\n // Sanity check: This _should_ not happen, but if it does, we just skip caching...\n // This can happen e.g. in tests where fetch may not be available in the env, or similar.\n if (!impl) {\n return impl;\n }\n\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n}\n\n/** Clear a cached implementation. */\nfunction clearCachedImplementation(name) {\n cachedImplementations[name] = undefined;\n}\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction fetch(...rest) {\n return getNativeImplementation('fetch')(...rest);\n}\n\n/**\n * Get an unwrapped `setTimeout` method.\n * This ensures that even if e.g. Angular wraps `setTimeout`, we get the native implementation,\n * avoiding triggering change detection.\n */\nfunction setTimeout(...rest) {\n return getNativeImplementation('setTimeout')(...rest);\n}\n\nexport { clearCachedImplementation, fetch, getNativeImplementation, setTimeout };\n//# sourceMappingURL=getNativeImplementation.js.map\n","import { addHandler, maybeInstrument, timestampInSeconds, isString, triggerHandlers } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nconst SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addXhrInstrumentationHandler(handler) {\n const type = 'xhr';\n addHandler(type, handler);\n maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nfunction instrumentXHR() {\n if (!(WINDOW ).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.open = new Proxy(xhrproto.open, {\n apply(originalOpen, xhrOpenThisArg, xhrOpenArgArray) {\n const startTimestamp = timestampInSeconds() * 1000;\n\n // open() should always be called with two or more arguments\n // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n const method = isString(xhrOpenArgArray[0]) ? xhrOpenArgArray[0].toUpperCase() : undefined;\n const url = parseUrl(xhrOpenArgArray[1]);\n\n if (!method || !url) {\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n }\n\n xhrOpenThisArg[SENTRY_XHR_DATA_KEY] = {\n method,\n url,\n request_headers: {},\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n if (method === 'POST' && url.match(/sentry_key/)) {\n xhrOpenThisArg.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = xhrOpenThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (xhrOpenThisArg.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhrOpenThisArg.status;\n } catch (e) {\n /* do nothing */\n }\n\n const handlerData = {\n endTimestamp: timestampInSeconds() * 1000,\n startTimestamp,\n xhr: xhrOpenThisArg,\n };\n triggerHandlers('xhr', handlerData);\n }\n };\n\n if ('onreadystatechange' in xhrOpenThisArg && typeof xhrOpenThisArg.onreadystatechange === 'function') {\n xhrOpenThisArg.onreadystatechange = new Proxy(xhrOpenThisArg.onreadystatechange, {\n apply(originalOnreadystatechange, onreadystatechangeThisArg, onreadystatechangeArgArray) {\n onreadystatechangeHandler();\n return originalOnreadystatechange.apply(onreadystatechangeThisArg, onreadystatechangeArgArray);\n },\n });\n } else {\n xhrOpenThisArg.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n xhrOpenThisArg.setRequestHeader = new Proxy(xhrOpenThisArg.setRequestHeader, {\n apply(\n originalSetRequestHeader,\n setRequestHeaderThisArg,\n setRequestHeaderArgArray,\n ) {\n const [header, value] = setRequestHeaderArgArray;\n\n const xhrInfo = setRequestHeaderThisArg[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo && isString(header) && isString(value)) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return originalSetRequestHeader.apply(setRequestHeaderThisArg, setRequestHeaderArgArray);\n },\n });\n\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.send = new Proxy(xhrproto.send, {\n apply(originalSend, sendThisArg, sendArgArray) {\n const sentryXhrData = sendThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return originalSend.apply(sendThisArg, sendArgArray);\n }\n\n if (sendArgArray[0] !== undefined) {\n sentryXhrData.body = sendArgArray[0];\n }\n\n const handlerData = {\n startTimestamp: timestampInSeconds() * 1000,\n xhr: sendThisArg,\n };\n triggerHandlers('xhr', handlerData);\n\n return originalSend.apply(sendThisArg, sendArgArray);\n },\n });\n}\n\nfunction parseUrl(url) {\n if (isString(url)) {\n return url;\n }\n\n try {\n // url can be a string or URL\n // but since URL is not available in IE11, we do not check for it,\n // but simply assume it is an URL and return `toString()` from it (which returns the full URL)\n // If that fails, we just return undefined\n return (url ).toString();\n } catch (e2) {} // eslint-disable-line no-empty\n\n return undefined;\n}\n\nexport { SENTRY_XHR_DATA_KEY, addXhrInstrumentationHandler, instrumentXHR };\n//# sourceMappingURL=xhr.js.map\n","import { _optionalChain } from '@sentry/utils';\nimport { getActiveSpan, getRootSpan, spanToJSON, getCurrentScope, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '@sentry/core';\nimport { browserPerformanceTimeOrigin, htmlTreeAsString, dropUndefinedKeys } from '@sentry/utils';\nimport { addInpInstrumentationHandler, addPerformanceInstrumentationHandler, isPerformanceEventTiming } from './instrument.js';\nimport { getBrowserPerformanceAPI, msToSec, startStandaloneWebVitalSpan } from './utils.js';\n\nconst LAST_INTERACTIONS = [];\nconst INTERACTIONS_SPAN_MAP = new Map();\n\n/**\n * Start tracking INP webvital events.\n */\nfunction startTrackingINP() {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n const inpCallback = _trackINP();\n\n return () => {\n inpCallback();\n };\n }\n\n return () => undefined;\n}\n\nconst INP_ENTRY_MAP = {\n click: 'click',\n pointerdown: 'click',\n pointerup: 'click',\n mousedown: 'click',\n mouseup: 'click',\n touchstart: 'click',\n touchend: 'click',\n mouseover: 'hover',\n mouseout: 'hover',\n mouseenter: 'hover',\n mouseleave: 'hover',\n pointerover: 'hover',\n pointerout: 'hover',\n pointerenter: 'hover',\n pointerleave: 'hover',\n dragstart: 'drag',\n dragend: 'drag',\n drag: 'drag',\n dragenter: 'drag',\n dragleave: 'drag',\n dragover: 'drag',\n drop: 'drag',\n keydown: 'press',\n keyup: 'press',\n keypress: 'press',\n input: 'press',\n};\n\n/** Starts tracking the Interaction to Next Paint on the current page. */\nfunction _trackINP() {\n return addInpInstrumentationHandler(({ metric }) => {\n if (metric.value == undefined) {\n return;\n }\n\n const entry = metric.entries.find(entry => entry.duration === metric.value && INP_ENTRY_MAP[entry.name]);\n\n if (!entry) {\n return;\n }\n\n const { interactionId } = entry;\n const interactionType = INP_ENTRY_MAP[entry.name];\n\n /** Build the INP span, create an envelope from the span, and then send the envelope */\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(metric.value);\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan ? getRootSpan(activeSpan) : undefined;\n\n // We first try to lookup the span from our INTERACTIONS_SPAN_MAP,\n // where we cache the route per interactionId\n const cachedSpan = interactionId != null ? INTERACTIONS_SPAN_MAP.get(interactionId) : undefined;\n\n const spanToUse = cachedSpan || rootSpan;\n\n // Else, we try to use the active span.\n // Finally, we fall back to look at the transactionName on the scope\n const routeName = spanToUse ? spanToJSON(spanToUse).description : getCurrentScope().getScopeData().transactionName;\n\n const name = htmlTreeAsString(entry.target);\n const attributes = dropUndefinedKeys({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser.inp',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `ui.interaction.${interactionType}`,\n [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: entry.duration,\n });\n\n const span = startStandaloneWebVitalSpan({\n name,\n transaction: routeName,\n attributes,\n startTime,\n });\n\n _optionalChain([span, 'optionalAccess', _ => _.addEvent, 'call', _2 => _2('inp', {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: 'millisecond',\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: metric.value,\n })]);\n\n _optionalChain([span, 'optionalAccess', _3 => _3.end, 'call', _4 => _4(startTime + duration)]);\n });\n}\n\n/**\n * Register a listener to cache route information for INP interactions.\n * TODO(v9): `latestRoute` no longer needs to be passed in and will be removed in v9.\n */\nfunction registerInpInteractionListener(_latestRoute) {\n const handleEntries = ({ entries }) => {\n const activeSpan = getActiveSpan();\n const activeRootSpan = activeSpan && getRootSpan(activeSpan);\n\n entries.forEach(entry => {\n if (!isPerformanceEventTiming(entry) || !activeRootSpan) {\n return;\n }\n\n const interactionId = entry.interactionId;\n if (interactionId == null) {\n return;\n }\n\n // If the interaction was already recorded before, nothing more to do\n if (INTERACTIONS_SPAN_MAP.has(interactionId)) {\n return;\n }\n\n // We keep max. 10 interactions in the list, then remove the oldest one & clean up\n if (LAST_INTERACTIONS.length > 10) {\n const last = LAST_INTERACTIONS.shift() ;\n INTERACTIONS_SPAN_MAP.delete(last);\n }\n\n // We add the interaction to the list of recorded interactions\n // and store the span for this interaction\n LAST_INTERACTIONS.push(interactionId);\n INTERACTIONS_SPAN_MAP.set(interactionId, activeRootSpan);\n });\n };\n\n addPerformanceInstrumentationHandler('event', handleEntries);\n addPerformanceInstrumentationHandler('first-input', handleEntries);\n}\n\nexport { registerInpInteractionListener, startTrackingINP };\n//# sourceMappingURL=inp.js.map\n","import { getNativeImplementation, clearCachedImplementation } from '@sentry-internal/browser-utils';\nimport { createTransport } from '@sentry/core';\nimport { rejectedSyncPromise } from '@sentry/utils';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeImplementation('fetch'),\n) {\n let pendingBodySize = 0;\n let pendingCount = 0;\n\n function makeRequest(request) {\n const requestSize = request.body.length;\n pendingBodySize += requestSize;\n pendingCount++;\n\n const requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n // If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n // We will therefore only activate the flag when we're below that limit.\n // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n keepalive: pendingBodySize <= 60000 && pendingCount < 15,\n ...options.fetchOptions,\n };\n\n if (!nativeFetch) {\n clearCachedImplementation('fetch');\n return rejectedSyncPromise('No fetch implementation available');\n }\n\n try {\n // TODO: This may need a `suppresTracing` call in the future when we switch the browser SDK to OTEL\n return nativeFetch(options.url, requestOptions).then(response => {\n pendingBodySize -= requestSize;\n pendingCount--;\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n };\n });\n } catch (e) {\n clearCachedImplementation('fetch');\n pendingBodySize -= requestSize;\n pendingCount--;\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","import { createStackParser, UNKNOWN_FUNCTION } from '@sentry/utils';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n const frame = {\n filename,\n function: func === '' ? UNKNOWN_FUNCTION : func,\n in_app: true, // All browser frames are considered in_app\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// This regex matches frames that have no function name (ie. are at the top level of a module).\n// For example \"at http://localhost:5000//script.js:1:126\"\n// Frames _with_ function names usually look as follows: \"at commitLayoutEffects (react-dom.development.js:23426:1)\"\nconst chromeRegexNoFnName = /^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i;\n\n// This regex matches all the frames that have a function name.\nconst chromeRegex =\n /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\n// We cannot call this variable `chrome` because it can conflict with global `chrome` variable in certain environments\n// See: https://github.com/getsentry/sentry-javascript/issues/6880\nconst chromeStackParserFn = line => {\n // If the stack line has no function name, we need to parse it differently\n const noFnParts = chromeRegexNoFnName.exec(line) ;\n\n if (noFnParts) {\n const [, filename, line, col] = noFnParts;\n return createFrame(filename, UNKNOWN_FUNCTION, +line, +col);\n }\n\n const parts = chromeRegex.exec(line) ;\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]) ;\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nconst chromeStackLineParser = [CHROME_PRIORITY, chromeStackParserFn];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko = line => {\n const parts = geckoREgex.exec(line) ;\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]) ;\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nconst geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs = line => {\n const parts = winjsRegex.exec(line) ;\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nconst winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10 = line => {\n const parts = opera10Regex.exec(line) ;\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nconst opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11 = line => {\n const parts = opera11Regex.exec(line) ;\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nconst opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nconst defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser];\n\nconst defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func, filename) => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? (func.split('@')[0] ) : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { addClickKeypressInstrumentationHandler, addXhrInstrumentationHandler, addHistoryInstrumentationHandler, SENTRY_XHR_DATA_KEY } from '@sentry-internal/browser-utils';\nimport { defineIntegration, getClient, addBreadcrumb } from '@sentry/core';\nimport { addConsoleInstrumentationHandler, addFetchInstrumentationHandler, getEventDescription, logger, htmlTreeAsString, getComponentName, severityLevelFromString, safeJoin, getBreadcrumbLogLevelFromHttpStatusCode, parseUrl } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst INTEGRATION_NAME = 'Breadcrumbs';\n\nconst _breadcrumbsIntegration = ((options = {}) => {\n const _options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (_options.console) {\n addConsoleInstrumentationHandler(_getConsoleBreadcrumbHandler(client));\n }\n if (_options.dom) {\n addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n }\n if (_options.xhr) {\n addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n }\n if (_options.fetch) {\n addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n }\n if (_options.history) {\n addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n }\n if (_options.sentry) {\n client.on('beforeSendEvent', _getSentryBreadcrumbHandler(client));\n }\n },\n };\n}) ;\n\nconst breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction _getSentryBreadcrumbHandler(client) {\n return function addSentryBreadcrumb(event) {\n if (getClient() !== client) {\n return;\n }\n\n addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n };\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _getDomBreadcrumbHandler(\n client,\n dom,\n) {\n return function _innerDomBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n let target;\n let componentName;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n const event = handlerData.event ;\n const element = _isEvent(event) ? event.target : event;\n\n target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n componentName = getComponentName(element);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n const breadcrumb = {\n category: `ui.${handlerData.name}`,\n message: target,\n };\n\n if (componentName) {\n breadcrumb.data = { 'ui.component_name': componentName };\n }\n\n addBreadcrumb(breadcrumb, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _getConsoleBreadcrumbHandler(client) {\n return function _consoleBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _getXhrBreadcrumbHandler(client) {\n return function _xhrBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n // We only capture complete, non-sentry requests\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return;\n }\n\n const { method, url, status_code, body } = sentryXhrData;\n\n const data = {\n method,\n url,\n status_code,\n };\n\n const hint = {\n xhr: handlerData.xhr,\n input: body,\n startTimestamp,\n endTimestamp,\n };\n\n const level = getBreadcrumbLogLevelFromHttpStatusCode(status_code);\n\n addBreadcrumb(\n {\n category: 'xhr',\n data,\n type: 'http',\n level,\n },\n hint,\n );\n };\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _getFetchBreadcrumbHandler(client) {\n return function _fetchBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n // We only capture complete fetch requests\n if (!endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n const data = handlerData.fetchData;\n const hint = {\n data: handlerData.error,\n input: handlerData.args,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n level: 'error',\n type: 'http',\n },\n hint,\n );\n } else {\n const response = handlerData.response ;\n const data = {\n ...handlerData.fetchData,\n status_code: response && response.status,\n };\n const hint = {\n input: handlerData.args,\n response,\n startTimestamp,\n endTimestamp,\n };\n const level = getBreadcrumbLogLevelFromHttpStatusCode(data.status_code);\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n type: 'http',\n level,\n },\n hint,\n );\n }\n };\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _getHistoryBreadcrumbHandler(client) {\n return function _historyBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = from ? parseUrl(from) : undefined;\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom || !parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n };\n}\n\nfunction _isEvent(event) {\n return !!event && !!(event ).target;\n}\n\nexport { breadcrumbsIntegration };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { defineIntegration } from '@sentry/core';\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { WINDOW, wrap } from '../helpers.js';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'BroadcastChannel',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'SharedWorker',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\nconst INTEGRATION_NAME = 'BrowserApiErrors';\n\nconst _browserApiErrorsIntegration = ((options = {}) => {\n const _options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO: This currently only works for the first client this is setup\n // We may want to adjust this to check for client etc.\n setupOnce() {\n if (_options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (_options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (_options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (_options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = _options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n },\n };\n}) ;\n\n/**\n * Wrap timer functions and event targets to catch errors and provide better meta data.\n */\nconst browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\n\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: false,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before BrowserApiErrors, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original,)\n\n {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn ;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { browserApiErrorsIntegration };\n//# sourceMappingURL=browserapierrors.js.map\n","import { defineIntegration, getClient, captureEvent } from '@sentry/core';\nimport { addGlobalErrorInstrumentationHandler, addGlobalUnhandledRejectionInstrumentationHandler, isPrimitive, isString, getLocationHref, UNKNOWN_FUNCTION, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\nconst INTEGRATION_NAME = 'GlobalHandlers';\n\nconst _globalHandlersIntegration = ((options = {}) => {\n const _options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n Error.stackTraceLimit = 50;\n },\n setup(client) {\n if (_options.onerror) {\n _installGlobalOnErrorHandler(client);\n globalHandlerLog('onerror');\n }\n if (_options.onunhandledrejection) {\n _installGlobalOnUnhandledRejectionHandler(client);\n globalHandlerLog('onunhandledrejection');\n }\n },\n };\n}) ;\n\nconst globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\n\nfunction _installGlobalOnErrorHandler(client) {\n addGlobalErrorInstrumentationHandler(data => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const { msg, url, line, column, error } = data;\n\n const event = _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onerror',\n },\n });\n });\n}\n\nfunction _installGlobalOnUnhandledRejectionHandler(client) {\n addGlobalUnhandledRejectionInstrumentationHandler(e => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const error = _getUnhandledRejectionError(e );\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onunhandledrejection',\n },\n });\n });\n}\n\nfunction _getUnhandledRejectionError(error) {\n if (isPrimitive(error)) {\n return error;\n }\n\n // dig the object of the rejection out of known event types\n try {\n\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in (error )) {\n return (error ).reason;\n }\n\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n if ('detail' in (error ) && 'reason' in (error ).detail) {\n return (error ).detail.reason;\n }\n } catch (e2) {} // eslint-disable-line no-empty\n\n return error;\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: UNKNOWN_FUNCTION,\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction getOptions() {\n const client = getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return options;\n}\n\nexport { globalHandlersIntegration };\n//# sourceMappingURL=globalhandlers.js.map\n","import { defineIntegration } from '@sentry/core';\nimport { WINDOW } from '../helpers.js';\n\n/**\n * Collects information about HTTP request headers and\n * attaches them to the event.\n */\nconst httpContextIntegration = defineIntegration(() => {\n return {\n name: 'HttpContext',\n preprocessEvent(event) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n event.request = request;\n },\n };\n});\n\nexport { httpContextIntegration };\n//# sourceMappingURL=httpcontext.js.map\n","import { defineIntegration } from '@sentry/core';\nimport { applyAggregateErrorsToEvent } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n key,\n limit,\n event,\n hint,\n );\n },\n };\n}) ;\n\n/**\n * Aggregrate linked errors in an event.\n */\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n//# sourceMappingURL=linkederrors.js.map\n","import { inboundFiltersIntegration, functionToStringIntegration, dedupeIntegration, getIntegrationsToSetup, initAndBind, getCurrentScope, lastEventId, getReportDialogEndpoint, startSession, captureSession, getClient } from '@sentry/core';\nimport { consoleSandbox, supportsFetch, logger, stackParserFromStackParserOptions } from '@sentry/utils';\nimport { addHistoryInstrumentationHandler } from '@sentry-internal/browser-utils';\nimport { BrowserClient } from './client.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './helpers.js';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs.js';\nimport { browserApiErrorsIntegration } from './integrations/browserapierrors.js';\nimport { globalHandlersIntegration } from './integrations/globalhandlers.js';\nimport { httpContextIntegration } from './integrations/httpcontext.js';\nimport { linkedErrorsIntegration } from './integrations/linkederrors.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport { makeFetchTransport } from './transports/fetch.js';\n\n/** Get the default integrations for the browser SDK. */\nfunction getDefaultIntegrations(_options) {\n /**\n * Note: Please make sure this stays in sync with Angular SDK, which re-exports\n * `getDefaultIntegrations` but with an adjusted set of integrations.\n */\n return [\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n browserApiErrorsIntegration(),\n breadcrumbsIntegration(),\n globalHandlersIntegration(),\n linkedErrorsIntegration(),\n dedupeIntegration(),\n httpContextIntegration(),\n ];\n}\n\nfunction applyDefaultOptions(optionsArg = {}) {\n const defaultOptions = {\n defaultIntegrations: getDefaultIntegrations(),\n release:\n typeof __SENTRY_RELEASE__ === 'string' // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n ? __SENTRY_RELEASE__\n : WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id // This supports the variable that sentry-webpack-plugin injects\n ? WINDOW.SENTRY_RELEASE.id\n : undefined,\n autoSessionTracking: true,\n sendClientReports: true,\n };\n\n // TODO: Instead of dropping just `defaultIntegrations`, we should simply\n // call `dropUndefinedKeys` on the entire `optionsArg`.\n // However, for this to work we need to adjust the `hasTracingEnabled()` logic\n // first as it differentiates between `undefined` and the key not being in the object.\n if (optionsArg.defaultIntegrations == null) {\n delete optionsArg.defaultIntegrations;\n }\n\n return { ...defaultOptions, ...optionsArg };\n}\n\nfunction shouldShowBrowserExtensionError() {\n const windowWithMaybeExtension =\n typeof WINDOW.window !== 'undefined' && (WINDOW );\n if (!windowWithMaybeExtension) {\n // No need to show the error if we're not in a browser window environment (e.g. service workers)\n return false;\n }\n\n const extensionKey = windowWithMaybeExtension.chrome ? 'chrome' : 'browser';\n const extensionObject = windowWithMaybeExtension[extensionKey];\n\n const runtimeId = extensionObject && extensionObject.runtime && extensionObject.runtime.id;\n const href = (WINDOW.location && WINDOW.location.href) || '';\n\n const extensionProtocols = ['chrome-extension:', 'moz-extension:', 'ms-browser-extension:', 'safari-web-extension:'];\n\n // Running the SDK in a dedicated extension page and calling Sentry.init is fine; no risk of data leakage\n const isDedicatedExtensionPage =\n !!runtimeId && WINDOW === WINDOW.top && extensionProtocols.some(protocol => href.startsWith(`${protocol}//`));\n\n // Running the SDK in NW.js, which appears like a browser extension but isn't, is also fine\n // see: https://github.com/getsentry/sentry-javascript/issues/12668\n const isNWjs = typeof windowWithMaybeExtension.nw !== 'undefined';\n\n return !!runtimeId && !isDedicatedExtensionPage && !isNWjs;\n}\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(browserOptions = {}) {\n const options = applyDefaultOptions(browserOptions);\n\n if (shouldShowBrowserExtensionError()) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(\n '[Sentry] You cannot run Sentry this way in a browser extension, check: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/',\n );\n });\n return;\n }\n\n if (DEBUG_BUILD) {\n if (!supportsFetch()) {\n logger.warn(\n 'No Fetch API detected. The Sentry SDK requires a Fetch API compatible environment to send events. Please add a Fetch API polyfill.',\n );\n }\n }\n const clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || makeFetchTransport,\n };\n\n const client = initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n\n return client;\n}\n\n/**\n * All properties the report dialog supports\n */\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}) {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n DEBUG_BUILD && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const scope = getCurrentScope();\n const client = scope.getClient();\n const dsn = client && client.getDsn();\n\n if (!dsn) {\n DEBUG_BUILD && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n const eventId = lastEventId();\n if (eventId) {\n options.eventId = eventId;\n }\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.crossOrigin = 'anonymous';\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const { onClose } = options;\n if (onClose) {\n const reportDialogClosedMessageHandler = (event) => {\n if (event.data === '__sentry_reportdialog_closed__') {\n try {\n onClose();\n } finally {\n WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n }\n }\n };\n WINDOW.addEventListener('message', reportDialogClosedMessageHandler);\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n DEBUG_BUILD && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n if (typeof WINDOW.document === 'undefined') {\n DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSession({ ignoreDuration: true });\n captureSession();\n\n // We want to create a session for every navigation as well\n addHistoryInstrumentationHandler(({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (from !== undefined && from !== to) {\n startSession({ ignoreDuration: true });\n captureSession();\n }\n });\n}\n\n/**\n * Captures user feedback and sends it to Sentry.\n *\n * @deprecated Use `captureFeedback` instead.\n */\nfunction captureUserFeedback(feedback) {\n const client = getClient();\n if (client) {\n // eslint-disable-next-line deprecation/deprecation\n client.captureUserFeedback(feedback);\n }\n}\n\nexport { captureUserFeedback, forceLoad, getDefaultIntegrations, init, onLoad, showReportDialog };\n//# sourceMappingURL=sdk.js.map\n","import { _nullishCoalesce, _optionalChain } from '@sentry/utils';\nimport { captureException, addBreadcrumb, getClient, isSentryRequestUrl, addEventProcessor, prepareEvent, getIsolationScope, getCurrentScope, setContext, getActiveSpan, getRootSpan, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, parseSampleRate } from '@sentry/core';\nimport { GLOBAL_OBJ, logger as logger$1, severityLevelFromString, normalize, fill, htmlTreeAsString, browserPerformanceTimeOrigin, uuid4, getLocationHref, dropUndefinedKeys, stringMatchesSomePattern, createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader, resolvedSyncPromise, updateRateLimits, isRateLimited, isBrowser, consoleSandbox } from '@sentry/utils';\nimport { setTimeout as setTimeout$3, addPerformanceInstrumentationHandler, addLcpInstrumentationHandler, addClsInstrumentationHandler, addFidInstrumentationHandler, addInpInstrumentationHandler, SENTRY_XHR_DATA_KEY, addClickKeypressInstrumentationHandler, addHistoryInstrumentationHandler } from '@sentry-internal/browser-utils';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and replay packages should `@sentry/browser` import\n// from `@sentry/replay` in the future\nconst WINDOW = GLOBAL_OBJ ;\n\nconst REPLAY_SESSION_KEY = 'sentryReplaySession';\nconst REPLAY_EVENT_NAME = 'replay_event';\nconst UNABLE_TO_SEND_REPLAY = 'Unable to send Replay';\n\n// The idle limit for a session after which recording is paused.\nconst SESSION_IDLE_PAUSE_DURATION = 300000; // 5 minutes in ms\n\n// The idle limit for a session after which the session expires.\nconst SESSION_IDLE_EXPIRE_DURATION = 900000; // 15 minutes in ms\n\n/** Default flush delays */\nconst DEFAULT_FLUSH_MIN_DELAY = 5000;\n// XXX: Temp fix for our debounce logic where `maxWait` would never occur if it\n// was the same as `wait`\nconst DEFAULT_FLUSH_MAX_DELAY = 5500;\n\n/* How long to wait for error checkouts */\nconst BUFFER_CHECKOUT_TIME = 60000;\n\nconst RETRY_BASE_INTERVAL = 5000;\nconst RETRY_MAX_COUNT = 3;\n\n/* The max (uncompressed) size in bytes of a network body. Any body larger than this will be truncated. */\nconst NETWORK_BODY_MAX_SIZE = 150000;\n\n/* The max size of a single console arg that is captured. Any arg larger than this will be truncated. */\nconst CONSOLE_ARG_MAX_SIZE = 5000;\n\n/* Min. time to wait before we consider something a slow click. */\nconst SLOW_CLICK_THRESHOLD = 3000;\n/* For scroll actions after a click, we only look for a very short time period to detect programmatic scrolling. */\nconst SLOW_CLICK_SCROLL_TIMEOUT = 300;\n\n/** When encountering a total segment size exceeding this size, stop the replay (as we cannot properly ingest it). */\nconst REPLAY_MAX_EVENT_BUFFER_SIZE = 20000000; // ~20MB\n\n/** Replays must be min. 5s long before we send them. */\nconst MIN_REPLAY_DURATION = 4999;\n/* The max. allowed value that the minReplayDuration can be set to. */\nconst MIN_REPLAY_DURATION_LIMIT = 15000;\n\n/** The max. length of a replay. */\nconst MAX_REPLAY_DURATION = 3600000; // 60 minutes in ms;\n\nfunction _nullishCoalesce$1(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }function _optionalChain$5(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var NodeType$1;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType$1 || (NodeType$1 = {}));\n\nfunction isElement$1(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n const host = _optionalChain$5([n, 'optionalAccess', _ => _.host]);\n return Boolean(_optionalChain$5([host, 'optionalAccess', _2 => _2.shadowRoot]) === n);\n}\nfunction isNativeShadowDom(shadowRoot) {\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(' background-clip: text;') &&\n !cssText.includes(' -webkit-background-clip: text;')) {\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\n }\n return cssText;\n}\nfunction escapeImportStatement(rule) {\n const { cssText } = rule;\n if (cssText.split('\"').length < 3)\n return cssText;\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\n if (rule.layerName === '') {\n statement.push(`layer`);\n }\n else if (rule.layerName) {\n statement.push(`layer(${rule.layerName})`);\n }\n if (rule.supportsText) {\n statement.push(`supports(${rule.supportsText})`);\n }\n if (rule.media.length) {\n statement.push(rule.media.mediaText);\n }\n return statement.join(' ') + ';';\n}\nfunction stringifyStylesheet(s) {\n try {\n const rules = s.rules || s.cssRules;\n return rules\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\n : null;\n }\n catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule) {\n let importStringified;\n if (isCSSImportRule(rule)) {\n try {\n importStringified =\n stringifyStylesheet(rule.styleSheet) ||\n escapeImportStatement(rule);\n }\n catch (error) {\n }\n }\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\n return fixSafariColons(rule.cssText);\n }\n return importStringified || rule.cssText;\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, '$1\\\\$2');\n}\nfunction isCSSImportRule(rule) {\n return 'styleSheet' in rule;\n}\nfunction isCSSStyleRule(rule) {\n return 'selectorText' in rule;\n}\nclass Mirror {\n constructor() {\n this.idNodeMap = new Map();\n this.nodeMetaMap = new WeakMap();\n }\n getId(n) {\n if (!n)\n return -1;\n const id = _optionalChain$5([this, 'access', _3 => _3.getMeta, 'call', _4 => _4(n), 'optionalAccess', _5 => _5.id]);\n return _nullishCoalesce$1(id, () => ( -1));\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node) {\n return this.nodeMetaMap.has(node);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta)\n this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = new Map();\n this.nodeMetaMap = new WeakMap();\n }\n}\nfunction createMirror() {\n return new Mirror();\n}\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\n if (tagName === 'OPTION') {\n tagName = 'SELECT';\n }\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\n (type && maskInputOptions[type]) ||\n type === 'password' ||\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\n}\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\n let text = value || '';\n if (!isMasked) {\n return text;\n }\n if (maskInputFn) {\n text = maskInputFn(text, element);\n }\n return '*'.repeat(text.length);\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext('2d');\n if (!ctx)\n return true;\n const chunkSize = 50;\n for (let x = 0; x < canvas.width; x += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\n : getImageData;\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\n if (pixelBuffer.some((pixel) => pixel !== 0))\n return false;\n }\n }\n return true;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute('data-rr-is-password')\n ? 'password'\n : type\n ?\n toLowerCase(type)\n : null;\n}\nfunction getInputValue(el, tagName, type) {\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\n return el.getAttribute('value') || '';\n }\n return el.value;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, _nullishCoalesce$1(baseURL, () => ( window.location.href)));\n }\n catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return _nullishCoalesce$1(_optionalChain$5([match, 'optionalAccess', _6 => _6[1]]), () => ( null));\n}\nconst cachedImplementations$1 = {};\nfunction getImplementation$1(name) {\n const cached = cachedImplementations$1[name];\n if (cached) {\n return cached;\n }\n const document = window.document;\n let impl = window[name];\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl =\n contentWindow[name];\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n }\n }\n return (cachedImplementations$1[name] = impl.bind(window));\n}\nfunction setTimeout$2(...rest) {\n return getImplementation$1('setTimeout')(...rest);\n}\nfunction clearTimeout$2(...rest) {\n return getImplementation$1('clearTimeout')(...rest);\n}\n\nlet _id = 1;\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return 'form';\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return 'div';\n }\n return processedTagName;\n}\nfunction extractOrigin(url) {\n let origin = '';\n if (url.indexOf('//') > -1) {\n origin = url.split('/').slice(0, 3).join('/');\n }\n else {\n origin = url.split('/')[0];\n }\n origin = origin.split('?')[0];\n return origin;\n}\nlet canvasService;\nlet canvasCtx;\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absoluteToStylesheet(cssText, href) {\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || '';\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === '/') {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split('/');\n const parts = filePath.split('/');\n stack.pop();\n for (const part of parts) {\n if (part === '.') {\n continue;\n }\n else if (part === '..') {\n stack.pop();\n }\n else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\n });\n}\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === '') {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars = match[0];\n pos += chars.length;\n return chars;\n }\n return '';\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === ',') {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n }\n else {\n let descriptorsStr = '';\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c = attributeValue.charAt(pos);\n if (c === '') {\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (!inParens) {\n if (c === ',') {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (c === '(') {\n inParens = true;\n }\n }\n else {\n if (c === ')') {\n inParens = false;\n }\n }\n descriptorsStr += c;\n pos += 1;\n }\n }\n }\n return output.join(', ');\n}\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === '') {\n return attributeValue;\n }\n const a = doc.createElement('a');\n a.href = attributeValue;\n return a.href;\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\n}\nfunction getHref() {\n const a = document.createElement('a');\n a.href = '';\n return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\n if (!value) {\n return value;\n }\n if (name === 'src' ||\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'xlink:href' && value[0] !== '#') {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'background' &&\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'srcset') {\n return getAbsoluteSrcsetString(doc, value);\n }\n else if (name === 'style') {\n return absoluteToStylesheet(value, getHref());\n }\n else if (tagName === 'object' && name === 'data') {\n return absoluteToDoc(doc, value);\n }\n if (typeof maskAttributeFn === 'function') {\n return maskAttributeFn(name, value, element);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\n}\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\n try {\n if (unblockSelector && element.matches(unblockSelector)) {\n return false;\n }\n if (typeof blockClass === 'string') {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n }\n else {\n for (let eIndex = element.classList.length; eIndex--;) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n }\n catch (e) {\n }\n return false;\n}\nfunction elementClassMatchesRegex(el, regex) {\n for (let eIndex = el.classList.length; eIndex--;) {\n const className = el.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n return false;\n}\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\n if (!node)\n return -1;\n if (node.nodeType !== node.ELEMENT_NODE)\n return -1;\n if (distance > limit)\n return -1;\n if (matchPredicate(node))\n return distance;\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\n}\nfunction createMatchPredicate(className, selector) {\n return (node) => {\n const el = node;\n if (el === null)\n return false;\n try {\n if (className) {\n if (typeof className === 'string') {\n if (el.matches(`.${className}`))\n return true;\n }\n else if (elementClassMatchesRegex(el, className)) {\n return true;\n }\n }\n if (selector && el.matches(selector))\n return true;\n return false;\n }\n catch (e2) {\n return false;\n }\n };\n}\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\n try {\n const el = node.nodeType === node.ELEMENT_NODE\n ? node\n : node.parentElement;\n if (el === null)\n return false;\n if (el.tagName === 'INPUT') {\n const autocomplete = el.getAttribute('autocomplete');\n const disallowedAutocompleteValues = [\n 'current-password',\n 'new-password',\n 'cc-number',\n 'cc-exp',\n 'cc-exp-month',\n 'cc-exp-year',\n 'cc-csc',\n ];\n if (disallowedAutocompleteValues.includes(autocomplete)) {\n return true;\n }\n }\n let maskDistance = -1;\n let unmaskDistance = -1;\n if (maskAllText) {\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\n if (unmaskDistance < 0) {\n return true;\n }\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\n }\n else {\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\n if (maskDistance < 0) {\n return false;\n }\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\n }\n return maskDistance >= 0\n ? unmaskDistance >= 0\n ? maskDistance <= unmaskDistance\n : true\n : unmaskDistance >= 0\n ? false\n : !!maskAllText;\n }\n catch (e) {\n }\n return !!maskAllText;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n }\n catch (error) {\n return;\n }\n if (readyState !== 'complete') {\n const timer = setTimeout$2(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener('load', () => {\n clearTimeout$2(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = 'about:blank';\n if (win.location.href !== blankUrl ||\n iframeEl.src === blankUrl ||\n iframeEl.src === '') {\n setTimeout$2(listener, 0);\n return iframeEl.addEventListener('load', listener);\n }\n iframeEl.addEventListener('load', listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n }\n catch (error) {\n return;\n }\n if (styleSheetLoaded)\n return;\n const timer = setTimeout$2(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener('load', () => {\n clearTimeout$2(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n, options) {\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\n const rootId = getRootId(doc, mirror);\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if (n.compatMode !== 'CSS1Compat') {\n return {\n type: NodeType$1.Document,\n childNodes: [],\n compatMode: n.compatMode,\n };\n }\n else {\n return {\n type: NodeType$1.Document,\n childNodes: [],\n };\n }\n case n.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$1.DocumentType,\n name: n.name,\n publicId: n.publicId,\n systemId: n.systemId,\n rootId,\n };\n case n.ELEMENT_NODE:\n return serializeElementNode(n, {\n doc,\n blockClass,\n blockSelector,\n unblockSelector,\n inlineStylesheet,\n maskAttributeFn,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n });\n case n.TEXT_NODE:\n return serializeTextNode(n, {\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n maskTextFn,\n maskInputOptions,\n maskInputFn,\n rootId,\n });\n case n.CDATA_SECTION_NODE:\n return {\n type: NodeType$1.CDATA,\n textContent: '',\n rootId,\n };\n case n.COMMENT_NODE:\n return {\n type: NodeType$1.Comment,\n textContent: n.textContent || '',\n rootId,\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror) {\n if (!mirror.hasNode(doc))\n return undefined;\n const docId = mirror.getId(doc);\n return docId === 1 ? undefined : docId;\n}\nfunction serializeTextNode(n, options) {\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\n const parentTagName = n.parentNode && n.parentNode.tagName;\n let textContent = n.textContent;\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\n if (isStyle && textContent) {\n try {\n if (n.nextSibling || n.previousSibling) {\n }\n else if (_optionalChain$5([n, 'access', _7 => _7.parentNode, 'access', _8 => _8.sheet, 'optionalAccess', _9 => _9.cssRules])) {\n textContent = stringifyStylesheet(n.parentNode.sheet);\n }\n }\n catch (err) {\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\n }\n textContent = absoluteToStylesheet(textContent, getHref());\n }\n if (isScript) {\n textContent = 'SCRIPT_PLACEHOLDER';\n }\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\n textContent = maskTextFn\n ? maskTextFn(textContent, n.parentElement)\n : textContent.replace(/[\\S]/g, '*');\n }\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\n textContent = maskInputFn\n ? maskInputFn(textContent, n.parentNode)\n : textContent.replace(/[\\S]/g, '*');\n }\n if (parentTagName === 'OPTION' && textContent) {\n const isInputMasked = shouldMaskInput({\n type: null,\n tagName: parentTagName,\n maskInputOptions,\n });\n textContent = maskInputValue({\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\n element: n,\n value: textContent,\n maskInputFn,\n });\n }\n return {\n type: NodeType$1.Text,\n textContent: textContent || '',\n isStyle,\n rootId,\n };\n}\nfunction serializeElementNode(n, options) {\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\n const tagName = getValidTagName(n);\n let attributes = {};\n const len = n.attributes.length;\n for (let i = 0; i < len; i++) {\n const attr = n.attributes[i];\n if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\n }\n }\n if (tagName === 'link' && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\n return s.href === n.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\n }\n }\n if (tagName === 'style' &&\n n.sheet &&\n !(n.innerText || n.textContent || '').trim().length) {\n const cssText = stringifyStylesheet(n.sheet);\n if (cssText) {\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\n }\n }\n if (tagName === 'input' ||\n tagName === 'textarea' ||\n tagName === 'select' ||\n tagName === 'option') {\n const el = n;\n const type = getInputType(el);\n const value = getInputValue(el, toUpperCase(tagName), type);\n const checked = el.checked;\n if (type !== 'submit' && type !== 'button' && value) {\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\n type,\n tagName: toUpperCase(tagName),\n maskInputOptions,\n }));\n attributes.value = maskInputValue({\n isMasked: forceMask,\n element: el,\n value,\n maskInputFn,\n });\n }\n if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === 'option') {\n if (n.selected && !maskInputOptions['select']) {\n attributes.selected = true;\n }\n else {\n delete attributes.selected;\n }\n }\n if (tagName === 'canvas' && recordCanvas) {\n if (n.__context === '2d') {\n if (!is2DCanvasBlank(n)) {\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n }\n else if (!('__context' in n)) {\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n const blankCanvas = document.createElement('canvas');\n blankCanvas.width = n.width;\n blankCanvas.height = n.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === 'img' && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement('canvas');\n canvasCtx = canvasService.getContext('2d');\n }\n const image = n;\n const oldValue = image.crossOrigin;\n image.crossOrigin = 'anonymous';\n const recordInlineImage = () => {\n image.removeEventListener('load', recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n catch (err) {\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\n }\n oldValue\n ? (attributes.crossOrigin = oldValue)\n : image.removeAttribute('crossorigin');\n };\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else\n image.addEventListener('load', recordInlineImage);\n }\n if (tagName === 'audio' || tagName === 'video') {\n attributes.rr_mediaState = n.paused\n ? 'paused'\n : 'played';\n attributes.rr_mediaCurrentTime = n.currentTime;\n }\n if (!newlyAddedElement) {\n if (n.scrollLeft) {\n attributes.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes.rr_scrollTop = n.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`,\n };\n }\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\n if (!needBlock && !n.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName))\n isCustomElement = true;\n }\n catch (e) {\n }\n return {\n type: NodeType$1.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n) || undefined,\n needBlock,\n rootId,\n isCustom: isCustomElement,\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === undefined || maybeAttr === null) {\n return '';\n }\n else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$1.Comment) {\n return true;\n }\n else if (sn.type === NodeType$1.Element) {\n if (slimDOMOptions.script &&\n (sn.tagName === 'script' ||\n (sn.tagName === 'link' &&\n (sn.attributes.rel === 'preload' ||\n sn.attributes.rel === 'modulepreload') &&\n sn.attributes.as === 'script') ||\n (sn.tagName === 'link' &&\n sn.attributes.rel === 'prefetch' &&\n typeof sn.attributes.href === 'string' &&\n extractFileExtension(sn.attributes.href) === 'js'))) {\n return true;\n }\n else if (slimDOMOptions.headFavicon &&\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\n (sn.tagName === 'meta' &&\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\n lowerIfExists(sn.attributes.name) === 'application-name' ||\n lowerIfExists(sn.attributes.rel) === 'icon' ||\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\n return true;\n }\n else if (sn.tagName === 'meta') {\n if (slimDOMOptions.headMetaDescKeywords &&\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n }\n else if (slimDOMOptions.headMetaSocial &&\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\n return true;\n }\n else if (slimDOMOptions.headMetaRobots &&\n (lowerIfExists(sn.attributes.name) === 'robots' ||\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\n return true;\n }\n else if (slimDOMOptions.headMetaHttpEquiv &&\n sn.attributes['http-equiv'] !== undefined) {\n return true;\n }\n else if (slimDOMOptions.headMetaAuthorship &&\n (lowerIfExists(sn.attributes.name) === 'author' ||\n lowerIfExists(sn.attributes.name) === 'generator' ||\n lowerIfExists(sn.attributes.name) === 'framework' ||\n lowerIfExists(sn.attributes.name) === 'publisher' ||\n lowerIfExists(sn.attributes.name) === 'progid' ||\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n }\n else if (slimDOMOptions.headMetaVerification &&\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\n lowerIfExists(sn.attributes.name) === 'verification' ||\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n, options) {\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\n let { preserveWhiteSpace = true } = options;\n const _serializedNode = serializeNode(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n maskAllText,\n unblockSelector,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n });\n if (!_serializedNode) {\n console.warn(n, 'not serialized');\n return null;\n }\n let id;\n if (mirror.hasNode(n)) {\n id = mirror.getId(n);\n }\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\n (!preserveWhiteSpace &&\n _serializedNode.type === NodeType$1.Text &&\n !_serializedNode.isStyle &&\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\n id = IGNORED_NODE;\n }\n else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror.add(n, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$1.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRoot = n.shadowRoot;\n if (shadowRoot && isNativeShadowDom(shadowRoot))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$1.Document ||\n serializedNode.type === NodeType$1.Element) &&\n recordChild) {\n if (slimDOMOptions.headWhitespace &&\n serializedNode.type === NodeType$1.Element &&\n serializedNode.tagName === 'head') {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror,\n blockClass,\n blockSelector,\n maskAllText,\n unblockSelector,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n };\n for (const childN of Array.from(n.childNodes)) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n if (isElement$1(n) && n.shadowRoot) {\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(n.shadowRoot) &&\n (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n if (n.parentNode &&\n isShadowRoot(n.parentNode) &&\n isNativeShadowDom(n.parentNode)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$1.Element &&\n serializedNode.tagName === 'iframe') {\n onceIframeLoaded(n, () => {\n const iframeDoc = n.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n });\n if (serializedIframeNode) {\n onIframeLoad(n, serializedIframeNode);\n }\n }\n }, iframeLoadTimeout);\n }\n if (serializedNode.type === NodeType$1.Element &&\n serializedNode.tagName === 'link' &&\n typeof serializedNode.attributes.rel === 'string' &&\n (serializedNode.attributes.rel === 'stylesheet' ||\n (serializedNode.attributes.rel === 'preload' &&\n typeof serializedNode.attributes.href === 'string' &&\n extractFileExtension(serializedNode.attributes.href) === 'css'))) {\n onceStylesheetLoaded(n, () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n });\n if (serializedLinkNode) {\n onStylesheetLoad(n, serializedLinkNode);\n }\n }\n }, stylesheetLoadTimeout);\n }\n return serializedNode;\n}\nfunction snapshot(n, options) {\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\n const maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n }\n : maskAllInputs === false\n ? {}\n : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\n ?\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === 'all',\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true,\n }\n : slimDOM === false\n ? {}\n : slimDOM;\n return serializeNodeWithId(n, {\n doc: n,\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false,\n });\n}\n\nfunction _optionalChain$4(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n}\nfunction throttle$1(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function (...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout$1(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n }\n else if (!timeout && options.trailing !== false) {\n timeout = setTimeout$1(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked\n ? d\n : {\n set(value) {\n setTimeout$1(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n },\n });\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === 'function') {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n }\n catch (e2) {\n return () => {\n };\n }\n}\nlet nowTimestamp = Date.now;\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\n nowTimestamp = () => new Date().getTime();\n}\nfunction getWindowScroll(win) {\n const doc = win.document;\n return {\n left: doc.scrollingElement\n ? doc.scrollingElement.scrollLeft\n : win.pageXOffset !== undefined\n ? win.pageXOffset\n : _optionalChain$4([doc, 'optionalAccess', _ => _.documentElement, 'access', _2 => _2.scrollLeft]) ||\n _optionalChain$4([doc, 'optionalAccess', _3 => _3.body, 'optionalAccess', _4 => _4.parentElement, 'optionalAccess', _5 => _5.scrollLeft]) ||\n _optionalChain$4([doc, 'optionalAccess', _6 => _6.body, 'optionalAccess', _7 => _7.scrollLeft]) ||\n 0,\n top: doc.scrollingElement\n ? doc.scrollingElement.scrollTop\n : win.pageYOffset !== undefined\n ? win.pageYOffset\n : _optionalChain$4([doc, 'optionalAccess', _8 => _8.documentElement, 'access', _9 => _9.scrollTop]) ||\n _optionalChain$4([doc, 'optionalAccess', _10 => _10.body, 'optionalAccess', _11 => _11.parentElement, 'optionalAccess', _12 => _12.scrollTop]) ||\n _optionalChain$4([doc, 'optionalAccess', _13 => _13.body, 'optionalAccess', _14 => _14.scrollTop]) ||\n 0,\n };\n}\nfunction getWindowHeight() {\n return (window.innerHeight ||\n (document.documentElement && document.documentElement.clientHeight) ||\n (document.body && document.body.clientHeight));\n}\nfunction getWindowWidth() {\n return (window.innerWidth ||\n (document.documentElement && document.documentElement.clientWidth) ||\n (document.body && document.body.clientWidth));\n}\nfunction closestElementOfNode(node) {\n if (!node) {\n return null;\n }\n const el = node.nodeType === node.ELEMENT_NODE\n ? node\n : node.parentElement;\n return el;\n}\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\n if (!node) {\n return false;\n }\n const el = closestElementOfNode(node);\n if (!el) {\n return false;\n }\n const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\n if (!checkAncestors) {\n const isUnblocked = unblockSelector && el.matches(unblockSelector);\n return blockedPredicate(el) && !isUnblocked;\n }\n const blockDistance = distanceToMatch(el, blockedPredicate);\n let unblockDistance = -1;\n if (blockDistance < 0) {\n return false;\n }\n if (unblockSelector) {\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\n }\n if (blockDistance > -1 && unblockDistance < 0) {\n return true;\n }\n return blockDistance < unblockDistance;\n}\nfunction isSerialized(n, mirror) {\n return mirror.getId(n) !== -1;\n}\nfunction isIgnored(n, mirror) {\n return mirror.getId(n) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror.getId(target);\n if (!mirror.has(id)) {\n return true;\n }\n if (target.parentNode &&\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!target.parentNode) {\n return true;\n }\n return isAncestorRemoved(target.parentNode, mirror);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill(win = window) {\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype\n .forEach;\n }\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype\n .forEach;\n }\n if (!Node.prototype.contains) {\n Node.prototype.contains = (...args) => {\n let node = args[0];\n if (!(0 in args)) {\n throw new TypeError('1 argument is required');\n }\n do {\n if (this === node) {\n return true;\n }\n } while ((node = node && node.parentNode));\n return false;\n };\n }\n}\nfunction isSerializedIframe(n, mirror) {\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\n}\nfunction isSerializedStylesheet(n, mirror) {\n return Boolean(n.nodeName === 'LINK' &&\n n.nodeType === n.ELEMENT_NODE &&\n n.getAttribute &&\n n.getAttribute('rel') === 'stylesheet' &&\n mirror.getMeta(n));\n}\nfunction hasShadowRoot(n) {\n return Boolean(_optionalChain$4([n, 'optionalAccess', _18 => _18.shadowRoot]));\n}\nclass StyleSheetMirror {\n constructor() {\n this.id = 1;\n this.styleIDMap = new WeakMap();\n this.idStyleMap = new Map();\n }\n getId(stylesheet) {\n return _nullishCoalesce(this.styleIDMap.get(stylesheet), () => ( -1));\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n add(stylesheet, id) {\n if (this.has(stylesheet))\n return this.getId(stylesheet);\n let newId;\n if (id === undefined) {\n newId = this.id++;\n }\n else\n newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = new WeakMap();\n this.idStyleMap = new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n) {\n let shadowHost = null;\n if (_optionalChain$4([n, 'access', _19 => _19.getRootNode, 'optionalCall', _20 => _20(), 'optionalAccess', _21 => _21.nodeType]) === Node.DOCUMENT_FRAGMENT_NODE &&\n n.getRootNode().host)\n shadowHost = n.getRootNode().host;\n return shadowHost;\n}\nfunction getRootShadowHost(n) {\n let rootShadowHost = n;\n let shadowHost;\n while ((shadowHost = getShadowHost(rootShadowHost)))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n) {\n const doc = n.ownerDocument;\n if (!doc)\n return false;\n const shadowHost = getRootShadowHost(n);\n return doc.contains(shadowHost);\n}\nfunction inDom(n) {\n const doc = n.ownerDocument;\n if (!doc)\n return false;\n return doc.contains(n) || shadowHostInDom(n);\n}\nconst cachedImplementations = {};\nfunction getImplementation(name) {\n const cached = cachedImplementations[name];\n if (cached) {\n return cached;\n }\n const document = window.document;\n let impl = window[name];\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl =\n contentWindow[name];\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n }\n }\n return (cachedImplementations[name] = impl.bind(window));\n}\nfunction onRequestAnimationFrame(...rest) {\n return getImplementation('requestAnimationFrame')(...rest);\n}\nfunction setTimeout$1(...rest) {\n return getImplementation('setTimeout')(...rest);\n}\nfunction clearTimeout$1(...rest) {\n return getImplementation('clearTimeout')(...rest);\n}\n\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\n\nfunction _optionalChain$3(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nfunction isNodeInLinkedList(n) {\n return '__ln' in n;\n}\nclass DoubleLinkedList {\n constructor() {\n this.length = 0;\n this.head = null;\n this.tail = null;\n }\n get(position) {\n if (position >= this.length) {\n throw new Error('Position outside of list range');\n }\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = _optionalChain$3([current, 'optionalAccess', _ => _.next]) || null;\n }\n return current;\n }\n addNode(n) {\n const node = {\n value: n,\n previous: null,\n next: null,\n };\n n.__ln = node;\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\n const current = n.previousSibling.__ln.next;\n node.next = current;\n node.previous = n.previousSibling.__ln;\n n.previousSibling.__ln.next = node;\n if (current) {\n current.previous = node;\n }\n }\n else if (n.nextSibling &&\n isNodeInLinkedList(n.nextSibling) &&\n n.nextSibling.__ln.previous) {\n const current = n.nextSibling.__ln.previous;\n node.previous = current;\n node.next = n.nextSibling.__ln;\n n.nextSibling.__ln.previous = node;\n if (current) {\n current.next = node;\n }\n }\n else {\n if (this.head) {\n this.head.previous = node;\n }\n node.next = this.head;\n this.head = node;\n }\n if (node.next === null) {\n this.tail = node;\n }\n this.length++;\n }\n removeNode(n) {\n const current = n.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n }\n else {\n this.tail = null;\n }\n }\n else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n }\n else {\n this.tail = current.previous;\n }\n }\n if (n.__ln) {\n delete n.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n this.frozen = false;\n this.locked = false;\n this.texts = [];\n this.attributes = [];\n this.attributeMap = new WeakMap();\n this.removes = [];\n this.mapRemoves = [];\n this.movedMap = {};\n this.addedSet = new Set();\n this.movedSet = new Set();\n this.droppedSet = new Set();\n this.processMutations = (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n };\n this.emit = () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n) => {\n let ns = n;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n) => {\n if (!n.parentNode || !inDom(n)) {\n return;\n }\n const parentId = isShadowRoot(n.parentNode)\n ? this.mirror.getId(getShadowHost(n))\n : this.mirror.getId(n.parentNode);\n const nextId = getNextId(n);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n);\n }\n const sn = serializeNodeWithId(n, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskAllText: this.maskAllText,\n unblockSelector: this.unblockSelector,\n maskTextClass: this.maskTextClass,\n unmaskTextClass: this.unmaskTextClass,\n maskTextSelector: this.maskTextSelector,\n unmaskTextSelector: this.unmaskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskAttributeFn: this.maskAttributeFn,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror) &&\n !isBlocked(currentN, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(currentN);\n }\n if (hasShadowRoot(n)) {\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n if (isBlocked(iframe, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\n return;\n }\n this.iframeManager.attachIframe(iframe, childSn);\n if (iframe.contentWindow) {\n this.canvasManager.addWindow(iframe.contentWindow);\n }\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn,\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n of this.movedSet) {\n if (isParentRemoved(this.removes, n, this.mirror) &&\n !this.movedSet.has(n.parentNode)) {\n continue;\n }\n pushAdd(n);\n }\n for (const n of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n) &&\n !isParentRemoved(this.removes, n, this.mirror)) {\n pushAdd(n);\n }\n else if (isAncestorInSet(this.movedSet, n)) {\n pushAdd(n);\n }\n else {\n this.droppedSet.add(n);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node = null;\n if (candidate) {\n const parentId = this.mirror.getId(candidate.value.parentNode);\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node = candidate;\n }\n }\n if (!node) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(_node.value.parentNode);\n const nextId = getNextId(_node.value);\n if (nextId === -1)\n continue;\n else if (parentId !== -1) {\n node = _node;\n break;\n }\n else {\n const unhandledNode = _node.value;\n if (unhandledNode.parentNode &&\n unhandledNode.parentNode.nodeType ===\n Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = unhandledNode.parentNode\n .host;\n const parentId = this.mirror.getId(shadowHost);\n if (parentId !== -1) {\n node = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node.previous;\n addList.removeNode(node.value);\n pushAdd(node.value);\n }\n const payload = {\n texts: this.texts\n .map((text) => ({\n id: this.mirror.getId(text.node),\n value: text.value,\n }))\n .filter((text) => !addedIds.has(text.id))\n .filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes\n .map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === 'string') {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\n attributes.style.split('var(').length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes: attributes,\n };\n })\n .filter((attribute) => !addedIds.has(attribute.id))\n .filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds,\n };\n if (!payload.texts.length &&\n !payload.attributes.length &&\n !payload.removes.length &&\n !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = new WeakMap();\n this.removes = [];\n this.addedSet = new Set();\n this.movedSet = new Set();\n this.droppedSet = new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n };\n this.processMutation = (m) => {\n if (isIgnored(m.target, this.mirror)) {\n return;\n }\n switch (m.type) {\n case 'characterData': {\n const value = m.target.textContent;\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) &&\n value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, this.maskAllText) && value\n ? this.maskTextFn\n ? this.maskTextFn(value, closestElementOfNode(m.target))\n : value.replace(/[\\S]/g, '*')\n : value,\n node: m.target,\n });\n }\n break;\n }\n case 'attributes': {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === 'value') {\n const type = getInputType(target);\n const tagName = target.tagName;\n value = getInputValue(target, tagName, type);\n const isInputMasked = shouldMaskInput({\n maskInputOptions: this.maskInputOptions,\n tagName,\n type,\n });\n const forceMask = needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, isInputMasked);\n value = maskInputValue({\n isMasked: forceMask,\n element: target,\n value,\n maskInputFn: this.maskInputFn,\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\n value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === 'IFRAME' &&\n attributeName === 'src' &&\n !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = 'rr_src';\n }\n else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {},\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === 'type' &&\n target.tagName === 'INPUT' &&\n (m.oldValue || '').toLowerCase() === 'password') {\n target.setAttribute('data-rr-is-password', 'true');\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value, target, this.maskAttributeFn);\n if (attributeName === 'style') {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc =\n document.implementation.createHTMLDocument();\n }\n catch (e) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement('span');\n if (m.oldValue) {\n old.setAttribute('style', m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) ||\n newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === '') {\n item.styleDiff[pname] = newValue;\n }\n else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n }\n else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === '') {\n item.styleDiff[pname] = false;\n }\n }\n }\n }\n break;\n }\n case 'childList': {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, true)) {\n return;\n }\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\n m.removedNodes.forEach((n) => {\n const nodeId = this.mirror.getId(n);\n const parentId = isShadowRoot(m.target)\n ? this.mirror.getId(m.target.host)\n : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\n isIgnored(n, this.mirror) ||\n !isSerialized(n, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n)) {\n deepDelete(this.addedSet, n);\n this.droppedSet.add(n);\n }\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n) &&\n this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n);\n }\n else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\n ? true\n : undefined,\n });\n }\n this.mapRemoves.push(n);\n });\n break;\n }\n }\n };\n this.genAdds = (n, target) => {\n if (this.processedNodeManager.inOtherBuffer(n, this))\n return;\n if (this.addedSet.has(n) || this.movedSet.has(n))\n return;\n if (this.mirror.hasNode(n)) {\n if (isIgnored(n, this.mirror)) {\n return;\n }\n this.movedSet.add(n);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\n }\n }\n else {\n this.addedSet.add(n);\n this.droppedSet.delete(n);\n }\n if (!isBlocked(n, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\n n.childNodes.forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n)) {\n n.shadowRoot.childNodes.forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n);\n });\n }\n }\n };\n }\n init(options) {\n [\n 'mutationCb',\n 'blockClass',\n 'blockSelector',\n 'unblockSelector',\n 'maskAllText',\n 'maskTextClass',\n 'unmaskTextClass',\n 'maskTextSelector',\n 'unmaskTextSelector',\n 'inlineStylesheet',\n 'maskInputOptions',\n 'maskAttributeFn',\n 'maskTextFn',\n 'maskInputFn',\n 'keepIframeSrcFn',\n 'recordCanvas',\n 'inlineImages',\n 'slimDOMOptions',\n 'dataURLOptions',\n 'doc',\n 'mirror',\n 'iframeManager',\n 'stylesheetManager',\n 'shadowDomManager',\n 'canvasManager',\n 'processedNodeManager',\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n) {\n addsSet.delete(n);\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction isParentRemoved(removes, n, mirror) {\n if (removes.length === 0)\n return false;\n return _isParentRemoved(removes, n, mirror);\n}\nfunction _isParentRemoved(removes, n, mirror) {\n const { parentNode } = n;\n if (!parentNode) {\n return false;\n }\n const parentId = mirror.getId(parentNode);\n if (removes.some((r) => r.id === parentId)) {\n return true;\n }\n return _isParentRemoved(removes, parentNode, mirror);\n}\nfunction isAncestorInSet(set, n) {\n if (set.size === 0)\n return false;\n return _isAncestorInSet(set, n);\n}\nfunction _isAncestorInSet(set, n) {\n const { parentNode } = n;\n if (!parentNode) {\n return false;\n }\n if (set.has(parentNode)) {\n return true;\n }\n return _isAncestorInSet(set, parentNode);\n}\n\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = undefined;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = ((...rest) => {\n try {\n return cb(...rest);\n }\n catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return () => {\n };\n }\n throw error;\n }\n });\n return rrwebWrapped;\n};\n\nfunction _optionalChain$2(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if ('composedPath' in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n }\n else if ('path' in event && event.path.length) {\n return event.path[0];\n }\n }\n catch (e2) {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n let mutationObserverCtor = window.MutationObserver ||\n window.__rrMutationObserver;\n const angularZoneSymbol = _optionalChain$2([window, 'optionalAccess', _ => _.Zone, 'optionalAccess', _2 => _2.__symbol__, 'optionalCall', _3 => _3('MutationObserver')]);\n if (angularZoneSymbol &&\n window[angularZoneSymbol]) {\n mutationObserverCtor = window[angularZoneSymbol];\n }\n const observer = new mutationObserverCtor(callbackWrapper((mutations) => {\n if (options.onMutation && options.onMutation(mutations) === false) {\n return;\n }\n mutationBuffer.processMutations.bind(mutationBuffer)(mutations);\n }));\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n });\n return observer;\n}\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\n ? sampling.mousemoveCallback\n : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle$1(callbackWrapper((source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }), source);\n positions = [];\n timeBaseline = null;\n }), callbackThreshold);\n const updatePosition = callbackWrapper(throttle$1(callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt)\n ? evt.changedTouches[0]\n : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror.getId(target),\n timeOffset: nowTimestamp() - timeBaseline,\n });\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\n ? IncrementalSource.Drag\n : evt instanceof MouseEvent\n ? IncrementalSource.MouseMove\n : IncrementalSource.TouchMove);\n }), threshold, {\n trailing: false,\n }));\n const handlers = [\n on('mousemove', updatePosition, doc),\n on('touchmove', updatePosition, doc),\n on('drag', updatePosition, doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true ||\n sampling.mouseInteraction === undefined\n ? {}\n : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if ('pointerType' in event) {\n switch (event.pointerType) {\n case 'mouse':\n pointerType = PointerTypes.Mouse;\n break;\n case 'touch':\n pointerType = PointerTypes.Touch;\n break;\n case 'pen':\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = 'TouchStart';\n }\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = 'TouchEnd';\n }\n }\n else if (pointerType === PointerTypes.Pen) ;\n }\n else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if ((thisEventKey.startsWith('Touch') &&\n pointerType === PointerTypes.Touch) ||\n (thisEventKey.startsWith('Mouse') &&\n pointerType === PointerTypes.Mouse)) {\n pointerType = null;\n }\n }\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e) {\n return;\n }\n const id = mirror.getId(target);\n const { clientX, clientY } = e;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...(pointerType !== null && { pointerType }),\n });\n };\n };\n Object.keys(MouseInteractions)\n .filter((key) => Number.isNaN(Number(key)) &&\n !key.endsWith('_Departed') &&\n disableMap[key] !== false)\n .forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace('mouse', 'pointer');\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\n const updatePosition = callbackWrapper(throttle$1(callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target ||\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n const id = mirror.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top,\n });\n }\n else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop,\n });\n }\n }), sampling.scroll || 100));\n return on('scroll', updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(throttle$1(callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height),\n });\n lastH = height;\n lastW = width;\n }\n }), 200));\n return on('resize', updateDimension, win);\n}\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\nconst lastInputValueMap = new WeakMap();\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, unblockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, }) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && toUpperCase(target.tagName);\n if (tagName === 'OPTION')\n target = target.parentElement;\n if (!target ||\n !tagName ||\n INPUT_TAGS.indexOf(tagName) < 0 ||\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n const el = target;\n if (el.classList.contains(ignoreClass) ||\n (ignoreSelector && el.matches(ignoreSelector))) {\n return;\n }\n const type = getInputType(target);\n let text = getInputValue(el, tagName, type);\n let isChecked = false;\n const isInputMasked = shouldMaskInput({\n maskInputOptions,\n tagName,\n type,\n });\n const forceMask = needMaskingText(target, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked);\n if (type === 'radio' || type === 'checkbox') {\n isChecked = target.checked;\n }\n text = maskInputValue({\n isMasked: forceMask,\n element: target,\n value: text,\n maskInputFn,\n });\n cbWithDedup(target, userTriggeredOnInput\n ? { text, isChecked, userTriggered }\n : { text, isChecked });\n const name = target.name;\n if (type === 'radio' && name && isChecked) {\n doc\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\n .forEach((el) => {\n if (el !== target) {\n const text = maskInputValue({\n isMasked: forceMask,\n element: el,\n value: getInputValue(el, tagName, type),\n maskInputFn,\n });\n cbWithDedup(el, userTriggeredOnInput\n ? { text, isChecked: !isChecked, userTriggered: false }\n : { text, isChecked: !isChecked });\n }\n });\n }\n }\n function cbWithDedup(target, v) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue ||\n lastInputValue.text !== v.text ||\n lastInputValue.isChecked !== v.isChecked) {\n lastInputValueMap.set(target, v);\n const id = mirror.getId(target);\n callbackWrapper(inputCb)({\n ...v,\n id,\n });\n }\n }\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, 'value'],\n [currentWindow.HTMLInputElement.prototype, 'checked'],\n [currentWindow.HTMLSelectElement.prototype, 'value'],\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false,\n });\n },\n }, false, currentWindow)));\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule) {\n const positions = [];\n function recurse(childRule, pos) {\n if ((hasNestedCSSRule('CSSGroupingRule') &&\n childRule.parentRule instanceof CSSGroupingRule) ||\n (hasNestedCSSRule('CSSMediaRule') &&\n childRule.parentRule instanceof CSSMediaRule) ||\n (hasNestedCSSRule('CSSSupportsRule') &&\n childRule.parentRule instanceof CSSSupportsRule) ||\n (hasNestedCSSRule('CSSConditionRule') &&\n childRule.parentRule instanceof CSSConditionRule)) {\n const rules = Array.from(childRule.parentRule.cssRules);\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n else if (childRule.parentStyleSheet) {\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n return pos;\n }\n return recurse(rule, positions);\n}\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\n let id, styleId;\n if (!sheet)\n return {};\n if (sheet.ownerNode)\n id = mirror.getId(sheet.ownerNode);\n else\n styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id,\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [rule, index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule, index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n }\n else {\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n insertRule: type.prototype.insertRule,\n deleteRule: type.prototype.deleteRule,\n };\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [rule, index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index || 0,\n ],\n },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index] },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\n let hostId = null;\n if (host.nodeName === '#document')\n hostId = mirror.getId(host);\n else\n hostId = mirror.getId(host.host);\n const patchTarget = host.nodeName === '#document'\n ? _optionalChain$2([host, 'access', _4 => _4.defaultView, 'optionalAccess', _5 => _5.Document])\n : _optionalChain$2([host, 'access', _6 => _6.ownerDocument, 'optionalAccess', _7 => _7.defaultView, 'optionalAccess', _8 => _8.ShadowRoot]);\n const originalPropertyDescriptor = _optionalChain$2([patchTarget, 'optionalAccess', _9 => _9.prototype])\n ? Object.getOwnPropertyDescriptor(_optionalChain$2([patchTarget, 'optionalAccess', _10 => _10.prototype]), 'adoptedStyleSheets')\n : undefined;\n if (hostId === null ||\n hostId === -1 ||\n !patchTarget ||\n !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n return _optionalChain$2([originalPropertyDescriptor, 'access', _11 => _11.get, 'optionalAccess', _12 => _12.call, 'call', _13 => _13(this)]);\n },\n set(sheets) {\n const result = _optionalChain$2([originalPropertyDescriptor, 'access', _14 => _14.set, 'optionalAccess', _15 => _15.call, 'call', _16 => _16(this, sheets)]);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n }\n catch (e) {\n }\n }\n return result;\n },\n });\n return callbackWrapper(() => {\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get: originalPropertyDescriptor.get,\n set: originalPropertyDescriptor.set,\n });\n });\n}\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(_optionalChain$2([thisArg, 'access', _17 => _17.parentRule, 'optionalAccess', _18 => _18.parentStyleSheet]), mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority,\n },\n index: getNestedCSSRulePositions(thisArg.parentRule),\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(_optionalChain$2([thisArg, 'access', _19 => _19.parentRule, 'optionalAccess', _20 => _20.parentStyleSheet]), mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property,\n },\n index: getNestedCSSRulePositions(thisArg.parentRule),\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, unblockSelector, mirror, sampling, doc, }) {\n const handler = callbackWrapper((type) => throttle$1(callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target ||\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate } = target;\n mediaInteractionCb({\n type,\n id: mirror.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n });\n }), sampling.media || 500));\n const handlers = [\n on('play', handler(0), doc),\n on('pause', handler(1), doc),\n on('seeked', handler(2), doc),\n on('volumechange', handler(3), doc),\n on('ratechange', handler(4), doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== 'string',\n descriptors,\n fontSource: typeof source === 'string'\n ? source\n : JSON.stringify(Array.from(new Uint8Array(source))),\n });\n return fontFace;\n };\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\n return function (fontFace) {\n setTimeout$1(callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }), 0);\n return original.apply(this, [fontFace]);\n };\n });\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror, blockClass, blockSelector, unblockSelector, selectionCb, } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || (collapsed && _optionalChain$2([selection, 'optionalAccess', _21 => _21.isCollapsed])))\n return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i = 0; i < count; i++) {\n const range = selection.getRangeAt(i);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, unblockSelector, true) ||\n isBlocked(endContainer, blockClass, blockSelector, unblockSelector, true);\n if (blocked)\n continue;\n ranges.push({\n start: mirror.getId(startContainer),\n startOffset,\n end: mirror.getId(endContainer),\n endOffset,\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on('selectionchange', updateSelection);\n}\nfunction initCustomElementObserver({ doc, customElementCb, }) {\n const win = doc.defaultView;\n if (!win || !win.customElements)\n return () => { };\n const restoreHandler = patch(win.customElements, 'define', function (original) {\n return function (name, constructor, options) {\n try {\n customElementCb({\n define: {\n name,\n },\n });\n }\n catch (e) {\n }\n return original.apply(this, [name, constructor, options]);\n };\n });\n return restoreHandler;\n}\nfunction initObservers(o, _hooks = {}) {\n const currentWindow = o.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n let mutationObserver;\n if (o.recordDOM) {\n mutationObserver = initMutationObserver(o, o.doc);\n }\n const mousemoveHandler = initMoveObserver(o);\n const mouseInteractionHandler = initMouseInteractionObserver(o);\n const scrollHandler = initScrollObserver(o);\n const viewportResizeHandler = initViewportResizeObserver(o, {\n win: currentWindow,\n });\n const inputHandler = initInputObserver(o);\n const mediaInteractionHandler = initMediaInteractionObserver(o);\n let styleSheetObserver = () => { };\n let adoptedStyleSheetObserver = () => { };\n let styleDeclarationObserver = () => { };\n let fontObserver = () => { };\n if (o.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\n win: currentWindow,\n });\n if (o.collectFonts) {\n fontObserver = initFontObserver(o);\n }\n }\n const selectionObserver = initSelectionObserver(o);\n const customElementObserver = initCustomElementObserver(o);\n const pluginHandlers = [];\n for (const plugin of o.plugins) {\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n _optionalChain$2([mutationObserver, 'optionalAccess', _22 => _22.disconnect, 'call', _23 => _23()]);\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== 'undefined';\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(typeof window[prop] !== 'undefined' &&\n window[prop].prototype &&\n 'insertRule' in window[prop].prototype &&\n 'deleteRule' in window[prop].prototype);\n}\n\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n this.generateIdFn = generateIdFn;\n this.iframeIdToRemoteIdMap = new WeakMap();\n this.iframeRemoteIdToIdMap = new WeakMap();\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== 'number')\n return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId)\n return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = new WeakMap();\n this.iframeRemoteIdToIdMap = new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\n\nfunction _optionalChain$1(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nclass IframeManagerNoop {\n constructor() {\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n this.crossOriginIframeRootIdMap = new WeakMap();\n }\n addIframe() {\n }\n addLoadListener() {\n }\n attachIframe() {\n }\n}\nclass IframeManager {\n constructor(options) {\n this.iframes = new WeakMap();\n this.crossOriginIframeMap = new WeakMap();\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n this.crossOriginIframeRootIdMap = new WeakMap();\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener('message', this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n });\n _optionalChain$1([this, 'access', _ => _.loadListener, 'optionalCall', _2 => _2(iframeEl)]);\n if (iframeEl.contentDocument &&\n iframeEl.contentDocument.adoptedStyleSheets &&\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow)\n return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl)\n return;\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\n if (transformedEvent)\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\n }\n transformCrossOriginEvent(iframeEl, e) {\n switch (e.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e.data.node, iframeEl);\n const rootId = e.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e.data.node, rootId);\n return {\n timestamp: e.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e.data.node,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n },\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e;\n }\n case EventType.Custom: {\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\n return e;\n }\n case EventType.IncrementalSnapshot: {\n switch (e.data.source) {\n case IncrementalSource.Mutation: {\n e.data.adds.forEach((n) => {\n this.replaceIds(n, iframeEl, [\n 'parentId',\n 'nextId',\n 'previousId',\n ]);\n this.replaceIdOnNode(n.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n.node, rootId);\n });\n e.data.removes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\n });\n e.data.attributes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n e.data.texts.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e.data, iframeEl, ['id']);\n return e;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\n return e;\n }\n case IncrementalSource.Font: {\n return e;\n }\n case IncrementalSource.Selection: {\n e.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, ['start', 'end']);\n });\n return e;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\n _optionalChain$1([e, 'access', _3 => _3.data, 'access', _4 => _4.styles, 'optionalAccess', _5 => _5.forEach, 'call', _6 => _6((style) => {\n this.replaceStyleIds(style, iframeEl, ['styleId']);\n })]);\n return e;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\n continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\n }\n else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node, iframeEl) {\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node, rootId) {\n if (node.type !== NodeType$1.Document && !node.rootId)\n node.rootId = rootId;\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\n\nclass ShadowDomManagerNoop {\n init() {\n }\n addShadowRoot() {\n }\n observeAttachShadow() {\n }\n reset() {\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n this.shadowDoms = new WeakSet();\n this.restoreHandlers = [];\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot, doc) {\n if (!isNativeShadowDom(shadowRoot))\n return;\n if (this.shadowDoms.has(shadowRoot))\n return;\n this.shadowDoms.add(shadowRoot);\n this.bypassOptions.canvasManager.addShadowRoot(shadowRoot);\n const observer = initMutationObserver({\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this,\n }, shadowRoot);\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n doc: shadowRoot,\n mirror: this.mirror,\n }));\n setTimeout$1(() => {\n if (shadowRoot.adoptedStyleSheets &&\n shadowRoot.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager,\n }, shadowRoot));\n }, 0);\n }\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\n return;\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\n }\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\n return function (option) {\n const shadowRoot = original.call(this, option);\n if (this.shadowRoot && inDom(this))\n manager.addShadowRoot(this.shadowRoot, doc);\n return shadowRoot;\n };\n }));\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n }\n catch (e) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = new WeakSet();\n this.bypassOptions.canvasManager.resetShadowRoots();\n }\n}\n\nclass CanvasManagerNoop {\n reset() {\n }\n freeze() {\n }\n unfreeze() {\n }\n lock() {\n }\n unlock() {\n }\n snapshot() {\n }\n addWindow() {\n }\n addShadowRoot() {\n }\n resetShadowRoots() {\n }\n}\n\nclass StylesheetManager {\n constructor(options) {\n this.trackedLinkElements = new WeakSet();\n this.styleMirror = new StyleSheetMirror();\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if ('_cssText' in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn\n .attributes,\n },\n ],\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl))\n return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0)\n return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: [],\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\n rule: stringifyRule(r),\n index,\n })),\n });\n }\n else\n styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0)\n adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = new WeakSet();\n }\n trackStylesheetInLinkElement(linkEl) {\n }\n}\n\nclass ProcessedNodeManager {\n constructor() {\n this.nodeMap = new WeakMap();\n this.loop = true;\n this.periodicallyClear();\n }\n periodicallyClear() {\n onRequestAnimationFrame(() => {\n this.clear();\n if (this.loop)\n this.periodicallyClear();\n });\n }\n inOtherBuffer(node, thisBuffer) {\n const buffers = this.nodeMap.get(node);\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\n }\n add(node, buffer) {\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\n }\n clear() {\n this.nodeMap = new WeakMap();\n }\n destroy() {\n this.loop = false;\n }\n}\n\nlet wrappedEmit;\nlet _takeFullSnapshot;\ntry {\n if (Array.from([1], (x) => x * 2)[0] !== 2) {\n const cleanFrame = document.createElement('iframe');\n document.body.appendChild(cleanFrame);\n Array.from = _optionalChain([cleanFrame, 'access', _ => _.contentWindow, 'optionalAccess', _2 => _2.Array, 'access', _3 => _3.from]) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n}\ncatch (err) {\n console.debug('Unable to override Array.from', err);\n}\nconst mirror = createMirror();\nfunction record(options = {}) {\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, unblockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskAttributeFn, maskInputFn, maskTextFn, maxCanvasSize = null, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordDOM = true, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\n ? options.recordAfter\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, onMutation, getCanvasManager, } = options;\n registerErrorHandler(errorHandler);\n const inEmittingFrame = recordCrossOriginIframes\n ? window.parent === window\n : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n }\n catch (e) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error('emit function is required');\n }\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n radio: true,\n checkbox: true,\n }\n : _maskInputOptions !== undefined\n ? _maskInputOptions\n : {};\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\n ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n headMetaAuthorship: _slimDOMOptions === 'all',\n headMetaDescKeywords: _slimDOMOptions === 'all',\n }\n : _slimDOMOptions\n ? _slimDOMOptions\n : {};\n polyfill();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e) => {\n for (const plugin of plugins || []) {\n if (plugin.eventProcessor) {\n e = plugin.eventProcessor(e);\n }\n }\n if (packFn &&\n !passEmitsToParent) {\n e = packFn(e);\n }\n return e;\n };\n wrappedEmit = (r, isCheckout) => {\n const e = r;\n e.timestamp = nowTimestamp();\n if (_optionalChain([mutationBuffers, 'access', _4 => _4[0], 'optionalAccess', _5 => _5.isFrozen, 'call', _6 => _6()]) &&\n e.type !== EventType.FullSnapshot &&\n !(e.type === EventType.IncrementalSnapshot &&\n e.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n _optionalChain([emit, 'optionalCall', _7 => _7(eventProcessor(e), isCheckout)]);\n }\n else if (passEmitsToParent) {\n const message = {\n type: 'rrweb',\n event: eventProcessor(e),\n origin: window.location.origin,\n isCheckout,\n };\n window.parent.postMessage(message, '*');\n }\n if (e.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e;\n incrementalSnapshotCount = 0;\n }\n else if (e.type === EventType.IncrementalSnapshot) {\n if (e.data.source === IncrementalSource.Mutation &&\n e.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms &&\n lastFullSnapshotEvent &&\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m,\n },\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p,\n },\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p,\n },\n });\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a,\n },\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\n });\n const iframeManager = typeof __RRWEB_EXCLUDE_IFRAME__ === 'boolean' && __RRWEB_EXCLUDE_IFRAME__\n ? new IframeManagerNoop()\n : new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager: stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit,\n });\n for (const plugin of plugins || []) {\n if (plugin.getMirror)\n plugin.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n const canvasManager = _getCanvasManager(getCanvasManager, {\n mirror,\n win: window,\n mutationCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p,\n },\n }),\n recordCanvas,\n blockClass,\n blockSelector,\n unblockSelector,\n maxCanvasSize,\n sampling: sampling['canvas'],\n dataURLOptions,\n errorHandler,\n });\n const shadowDomManager = typeof __RRWEB_EXCLUDE_SHADOW_DOM__ === 'boolean' &&\n __RRWEB_EXCLUDE_SHADOW_DOM__\n ? new ShadowDomManagerNoop()\n : new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n onMutation,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager,\n },\n mirror,\n });\n const takeFullSnapshot = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit({\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight(),\n },\n }, isCheckout);\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskAttributeFn,\n maskInputFn,\n maskTextFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n) => {\n if (isSerializedIframe(n, mirror)) {\n iframeManager.addIframe(n);\n }\n if (isSerializedStylesheet(n, mirror)) {\n stylesheetManager.trackLinkElement(n);\n }\n if (hasShadowRoot(n)) {\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n if (iframe.contentWindow) {\n canvasManager.addWindow(iframe.contentWindow);\n }\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn,\n });\n if (!node) {\n return console.warn('Failed to snapshot the document');\n }\n wrappedEmit({\n type: EventType.FullSnapshot,\n data: {\n node,\n initialOffset: getWindowScroll(window),\n },\n });\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\n };\n _takeFullSnapshot = takeFullSnapshot;\n try {\n const handlers = [];\n const observe = (doc) => {\n return callbackWrapper(initObservers)({\n onMutation,\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions,\n },\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d,\n },\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d,\n },\n }),\n inputCb: (v) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v,\n },\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p,\n },\n }),\n styleSheetRuleCb: (r) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r,\n },\n }),\n styleDeclarationCb: (r) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r,\n },\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p,\n },\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p,\n },\n });\n },\n customElementCb: (c) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c,\n },\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskAttributeFn,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n unblockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: _optionalChain([plugins\n, 'optionalAccess', _8 => _8.filter, 'call', _9 => _9((p) => p.observer)\n, 'optionalAccess', _10 => _10.map, 'call', _11 => _11((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload,\n },\n }),\n }))]) || [],\n }, {});\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n }\n catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot();\n handlers.push(observe(document));\n };\n if (document.readyState === 'interactive' ||\n document.readyState === 'complete') {\n init();\n }\n else {\n handlers.push(on('DOMContentLoaded', () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {},\n });\n if (recordAfter === 'DOMContentLoaded')\n init();\n }));\n handlers.push(on('load', () => {\n wrappedEmit({\n type: EventType.Load,\n data: {},\n });\n if (recordAfter === 'load')\n init();\n }, window));\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n _takeFullSnapshot = undefined;\n unregisterErrorHandler();\n };\n }\n catch (error) {\n console.warn(error);\n }\n}\nfunction takeFullSnapshot(isCheckout) {\n if (!_takeFullSnapshot) {\n throw new Error('please take full snapshot after start recording');\n }\n _takeFullSnapshot(isCheckout);\n}\nrecord.mirror = mirror;\nrecord.takeFullSnapshot = takeFullSnapshot;\nfunction _getCanvasManager(getCanvasManagerFn, options) {\n try {\n return getCanvasManagerFn\n ? getCanvasManagerFn(options)\n : new CanvasManagerNoop();\n }\n catch (e2) {\n console.warn('Unable to initialize CanvasManager');\n return new CanvasManagerNoop();\n }\n}\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nconst CONSOLE_LEVELS = ['info', 'warn', 'error', 'log'] ;\nconst PREFIX = '[Replay] ';\n\nfunction _addBreadcrumb(message, level = 'info') {\n addBreadcrumb(\n {\n category: 'console',\n data: {\n logger: 'replay',\n },\n level,\n message: `${PREFIX}${message}`,\n },\n { level },\n );\n}\n\nfunction makeReplayLogger() {\n let _capture = false;\n let _trace = false;\n\n const _logger = {\n exception: () => undefined,\n infoTick: () => undefined,\n setConfig: (opts) => {\n _capture = opts.captureExceptions;\n _trace = opts.traceInternals;\n },\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n _logger[name] = (...args) => {\n logger$1[name](PREFIX, ...args);\n if (_trace) {\n _addBreadcrumb(args.join(''), severityLevelFromString(name));\n }\n };\n });\n\n _logger.exception = (error, ...message) => {\n if (message.length && _logger.error) {\n _logger.error(...message);\n }\n\n logger$1.error(PREFIX, error);\n\n if (_capture) {\n captureException(error);\n } else if (_trace) {\n // No need for a breadcrumb if `_capture` is enabled since it should be\n // captured as an exception\n _addBreadcrumb(error, 'error');\n }\n };\n\n _logger.infoTick = (...args) => {\n logger$1.info(PREFIX, ...args);\n if (_trace) {\n // Wait a tick here to avoid race conditions for some initial logs\n // which may be added before replay is initialized\n setTimeout(() => _addBreadcrumb(args[0]), 0);\n }\n };\n } else {\n CONSOLE_LEVELS.forEach(name => {\n _logger[name] = () => undefined;\n });\n }\n\n return _logger ;\n}\n\nconst logger = makeReplayLogger();\n\nconst ReplayEventTypeIncrementalSnapshot = 3;\nconst ReplayEventTypeCustom = 5;\n\n/**\n * Converts a timestamp to ms, if it was in s, or keeps it as ms.\n */\nfunction timestampToMs(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp : timestamp * 1000;\n}\n\n/**\n * Converts a timestamp to s, if it was in ms, or keeps it as s.\n */\nfunction timestampToS(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Add a breadcrumb event to replay.\n */\nfunction addBreadcrumbEvent(replay, breadcrumb) {\n if (breadcrumb.category === 'sentry.transaction') {\n return;\n }\n\n if (['ui.click', 'ui.input'].includes(breadcrumb.category )) {\n replay.triggerUserActivity();\n } else {\n replay.checkAndHandleExpiredSession();\n }\n\n replay.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n // TODO: We were converting from ms to seconds for breadcrumbs, spans,\n // but maybe we should just keep them as milliseconds\n timestamp: (breadcrumb.timestamp || 0) * 1000,\n data: {\n tag: 'breadcrumb',\n // normalize to max. 10 depth and 1_000 properties per object\n payload: normalize(breadcrumb, 10, 1000),\n },\n });\n\n // Do not flush after console log messages\n return breadcrumb.category === 'console';\n });\n}\n\nconst INTERACTIVE_SELECTOR = 'button,a';\n\n/** Get the closest interactive parent element, or else return the given element. */\nfunction getClosestInteractive(element) {\n const closestInteractive = element.closest(INTERACTIVE_SELECTOR);\n return closestInteractive || element;\n}\n\n/**\n * For clicks, we check if the target is inside of a button or link\n * If so, we use this as the target instead\n * This is useful because if you click on the image in ,\n * The target will be the image, not the button, which we don't want here\n */\nfunction getClickTargetNode(event) {\n const target = getTargetNode(event);\n\n if (!target || !(target instanceof Element)) {\n return target;\n }\n\n return getClosestInteractive(target);\n}\n\n/** Get the event target node. */\nfunction getTargetNode(event) {\n if (isEventWithTarget(event)) {\n return event.target ;\n }\n\n return event;\n}\n\nfunction isEventWithTarget(event) {\n return typeof event === 'object' && !!event && 'target' in event;\n}\n\nlet handlers;\n\n/**\n * Register a handler to be called when `window.open()` is called.\n * Returns a cleanup function.\n */\nfunction onWindowOpen(cb) {\n // Ensure to only register this once\n if (!handlers) {\n handlers = [];\n monkeyPatchWindowOpen();\n }\n\n handlers.push(cb);\n\n return () => {\n const pos = handlers ? handlers.indexOf(cb) : -1;\n if (pos > -1) {\n (handlers ).splice(pos, 1);\n }\n };\n}\n\nfunction monkeyPatchWindowOpen() {\n fill(WINDOW, 'open', function (originalWindowOpen) {\n return function (...args) {\n if (handlers) {\n try {\n handlers.forEach(handler => handler());\n } catch (e) {\n // ignore errors in here\n }\n }\n\n return originalWindowOpen.apply(WINDOW, args);\n };\n });\n}\n\n/** Any IncrementalSource for rrweb that we interpret as a kind of mutation. */\nconst IncrementalMutationSources = new Set([\n IncrementalSource.Mutation,\n IncrementalSource.StyleSheetRule,\n IncrementalSource.StyleDeclaration,\n IncrementalSource.AdoptedStyleSheet,\n IncrementalSource.CanvasMutation,\n IncrementalSource.Selection,\n IncrementalSource.MediaInteraction,\n]);\n\n/** Handle a click. */\nfunction handleClick(clickDetector, clickBreadcrumb, node) {\n clickDetector.handleClick(clickBreadcrumb, node);\n}\n\n/** A click detector class that can be used to detect slow or rage clicks on elements. */\nclass ClickDetector {\n // protected for testing\n\n constructor(\n replay,\n slowClickConfig,\n // Just for easier testing\n _addBreadcrumbEvent = addBreadcrumbEvent,\n ) {\n this._lastMutation = 0;\n this._lastScroll = 0;\n this._clicks = [];\n\n // We want everything in s, but options are in ms\n this._timeout = slowClickConfig.timeout / 1000;\n this._threshold = slowClickConfig.threshold / 1000;\n this._scollTimeout = slowClickConfig.scrollTimeout / 1000;\n this._replay = replay;\n this._ignoreSelector = slowClickConfig.ignoreSelector;\n this._addBreadcrumbEvent = _addBreadcrumbEvent;\n }\n\n /** Register click detection handlers on mutation or scroll. */\n addListeners() {\n const cleanupWindowOpen = onWindowOpen(() => {\n // Treat window.open as mutation\n this._lastMutation = nowInSeconds();\n });\n\n this._teardown = () => {\n cleanupWindowOpen();\n\n this._clicks = [];\n this._lastMutation = 0;\n this._lastScroll = 0;\n };\n }\n\n /** Clean up listeners. */\n removeListeners() {\n if (this._teardown) {\n this._teardown();\n }\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n }\n\n /** @inheritDoc */\n handleClick(breadcrumb, node) {\n if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n return;\n }\n\n const newClick = {\n timestamp: timestampToS(breadcrumb.timestamp),\n clickBreadcrumb: breadcrumb,\n // Set this to 0 so we know it originates from the click breadcrumb\n clickCount: 0,\n node,\n };\n\n // If there was a click in the last 1s on the same element, ignore it - only keep a single reference per second\n if (\n this._clicks.some(click => click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1)\n ) {\n return;\n }\n\n this._clicks.push(newClick);\n\n // If this is the first new click, set a timeout to check for multi clicks\n if (this._clicks.length === 1) {\n this._scheduleCheckClicks();\n }\n }\n\n /** @inheritDoc */\n registerMutation(timestamp = Date.now()) {\n this._lastMutation = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n registerScroll(timestamp = Date.now()) {\n this._lastScroll = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n registerClick(element) {\n const node = getClosestInteractive(element);\n this._handleMultiClick(node );\n }\n\n /** Count multiple clicks on elements. */\n _handleMultiClick(node) {\n this._getClicks(node).forEach(click => {\n click.clickCount++;\n });\n }\n\n /** Get all pending clicks for a given node. */\n _getClicks(node) {\n return this._clicks.filter(click => click.node === node);\n }\n\n /** Check the clicks that happened. */\n _checkClicks() {\n const timedOutClicks = [];\n\n const now = nowInSeconds();\n\n this._clicks.forEach(click => {\n if (!click.mutationAfter && this._lastMutation) {\n click.mutationAfter = click.timestamp <= this._lastMutation ? this._lastMutation - click.timestamp : undefined;\n }\n if (!click.scrollAfter && this._lastScroll) {\n click.scrollAfter = click.timestamp <= this._lastScroll ? this._lastScroll - click.timestamp : undefined;\n }\n\n // All of these are in seconds!\n if (click.timestamp + this._timeout <= now) {\n timedOutClicks.push(click);\n }\n });\n\n // Remove \"old\" clicks\n for (const click of timedOutClicks) {\n const pos = this._clicks.indexOf(click);\n\n if (pos > -1) {\n this._generateBreadcrumbs(click);\n this._clicks.splice(pos, 1);\n }\n }\n\n // Trigger new check, unless no clicks left\n if (this._clicks.length) {\n this._scheduleCheckClicks();\n }\n }\n\n /** Generate matching breadcrumb(s) for the click. */\n _generateBreadcrumbs(click) {\n const replay = this._replay;\n const hadScroll = click.scrollAfter && click.scrollAfter <= this._scollTimeout;\n const hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n\n const isSlowClick = !hadScroll && !hadMutation;\n const { clickCount, clickBreadcrumb } = click;\n\n // Slow click\n if (isSlowClick) {\n // If `mutationAfter` is set, it means a mutation happened after the threshold, but before the timeout\n // If not, it means we just timed out without scroll & mutation\n const timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1000;\n const endReason = timeAfterClickMs < this._timeout * 1000 ? 'mutation' : 'timeout';\n\n const breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.slowClickDetected',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n timeAfterClickMs,\n endReason,\n // If clickCount === 0, it means multiClick was not correctly captured here\n // - we still want to send 1 in this case\n clickCount: clickCount || 1,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n return;\n }\n\n // Multi click\n if (clickCount > 1) {\n const breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.multiClick',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n clickCount,\n metric: true,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n }\n }\n\n /** Schedule to check current clicks. */\n _scheduleCheckClicks() {\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n\n this._checkClickTimeout = setTimeout$3(() => this._checkClicks(), 1000);\n }\n}\n\nconst SLOW_CLICK_TAGS = ['A', 'BUTTON', 'INPUT'];\n\n/** exported for tests only */\nfunction ignoreElement(node, ignoreSelector) {\n if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n return true;\n }\n\n // If tag, we only want to consider input[type='submit'] & input[type='button']\n if (node.tagName === 'INPUT' && !['submit', 'button'].includes(node.getAttribute('type') || '')) {\n return true;\n }\n\n // If tag, detect special variants that may not lead to an action\n // If target !== _self, we may open the link somewhere else, which would lead to no action\n // Also, when downloading a file, we may not leave the page, but still not trigger an action\n if (\n node.tagName === 'A' &&\n (node.hasAttribute('download') || (node.hasAttribute('target') && node.getAttribute('target') !== '_self'))\n ) {\n return true;\n }\n\n if (ignoreSelector && node.matches(ignoreSelector)) {\n return true;\n }\n\n return false;\n}\n\nfunction isClickBreadcrumb(breadcrumb) {\n return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === 'number' && breadcrumb.timestamp);\n}\n\n// This is good enough for us, and is easier to test/mock than `timestampInSeconds`\nfunction nowInSeconds() {\n return Date.now() / 1000;\n}\n\n/** Update the click detector based on a recording event of rrweb. */\nfunction updateClickDetectorForRecordingEvent(clickDetector, event) {\n try {\n // note: We only consider incremental snapshots here\n // This means that any full snapshot is ignored for mutation detection - the reason is that we simply cannot know if a mutation happened here.\n // E.g. think that we are buffering, an error happens and we take a full snapshot because we switched to session mode -\n // in this scenario, we would not know if a dead click happened because of the error, which is a key dead click scenario.\n // Instead, by ignoring full snapshots, we have the risk that we generate a false positive\n // (if a mutation _did_ happen but was \"swallowed\" by the full snapshot)\n // But this should be more unlikely as we'd generally capture the incremental snapshot right away\n\n if (!isIncrementalEvent(event)) {\n return;\n }\n\n const { source } = event.data;\n if (IncrementalMutationSources.has(source)) {\n clickDetector.registerMutation(event.timestamp);\n }\n\n if (source === IncrementalSource.Scroll) {\n clickDetector.registerScroll(event.timestamp);\n }\n\n if (isIncrementalMouseInteraction(event)) {\n const { type, id } = event.data;\n const node = record.mirror.getNode(id);\n\n if (node instanceof HTMLElement && type === MouseInteractions.Click) {\n clickDetector.registerClick(node);\n }\n }\n } catch (e) {\n // ignore errors here, e.g. if accessing something that does not exist\n }\n}\n\nfunction isIncrementalEvent(event) {\n return event.type === ReplayEventTypeIncrementalSnapshot;\n}\n\nfunction isIncrementalMouseInteraction(\n event,\n) {\n return event.data.source === IncrementalSource.MouseInteraction;\n}\n\n/**\n * Create a breadcrumb for a replay.\n */\nfunction createBreadcrumb(\n breadcrumb,\n) {\n return {\n timestamp: Date.now() / 1000,\n type: 'default',\n ...breadcrumb,\n };\n}\n\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\n\n// Note that these are the serialized attributes and not attributes directly on\n// the DOM Node. Attributes we are interested in:\nconst ATTRIBUTES_TO_RECORD = new Set([\n 'id',\n 'class',\n 'aria-label',\n 'role',\n 'name',\n 'alt',\n 'title',\n 'data-test-id',\n 'data-testid',\n 'disabled',\n 'aria-disabled',\n 'data-sentry-component',\n]);\n\n/**\n * Inclusion list of attributes that we want to record from the DOM element\n */\nfunction getAttributesToRecord(attributes) {\n const obj = {};\n if (!attributes['data-sentry-component'] && attributes['data-sentry-element']) {\n attributes['data-sentry-component'] = attributes['data-sentry-element'];\n }\n for (const key in attributes) {\n if (ATTRIBUTES_TO_RECORD.has(key)) {\n let normalizedKey = key;\n\n if (key === 'data-testid' || key === 'data-test-id') {\n normalizedKey = 'testId';\n }\n\n obj[normalizedKey] = attributes[key];\n }\n }\n\n return obj;\n}\n\nconst handleDomListener = (\n replay,\n) => {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleDom(handlerData);\n\n if (!result) {\n return;\n }\n\n const isClick = handlerData.name === 'click';\n const event = isClick ? (handlerData.event ) : undefined;\n // Ignore clicks if ctrl/alt/meta/shift keys are held down as they alter behavior of clicks (e.g. open in new tab)\n if (\n isClick &&\n replay.clickDetector &&\n event &&\n event.target &&\n !event.altKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey\n ) {\n handleClick(\n replay.clickDetector,\n result ,\n getClickTargetNode(handlerData.event ) ,\n );\n }\n\n addBreadcrumbEvent(replay, result);\n };\n};\n\n/** Get the base DOM breadcrumb. */\nfunction getBaseDomBreadcrumb(target, message) {\n const nodeId = record.mirror.getId(target);\n const node = nodeId && record.mirror.getNode(nodeId);\n const meta = node && record.mirror.getMeta(node);\n const element = meta && isElement(meta) ? meta : null;\n\n return {\n message,\n data: element\n ? {\n nodeId,\n node: {\n id: nodeId,\n tagName: element.tagName,\n textContent: Array.from(element.childNodes)\n .map((node) => node.type === NodeType.Text && node.textContent)\n .filter(Boolean) // filter out empty values\n .map(text => (text ).trim())\n .join(''),\n attributes: getAttributesToRecord(element.attributes),\n },\n }\n : {},\n };\n}\n\n/**\n * An event handler to react to DOM events.\n * Exported for tests.\n */\nfunction handleDom(handlerData) {\n const { target, message } = getDomTarget(handlerData);\n\n return createBreadcrumb({\n category: `ui.${handlerData.name}`,\n ...getBaseDomBreadcrumb(target, message),\n });\n}\n\nfunction getDomTarget(handlerData) {\n const isClick = handlerData.name === 'click';\n\n let message;\n let target = null;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = isClick ? getClickTargetNode(handlerData.event ) : getTargetNode(handlerData.event );\n message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n } catch (e) {\n message = '';\n }\n\n return { target, message };\n}\n\nfunction isElement(node) {\n return node.type === NodeType.Element;\n}\n\n/** Handle keyboard events & create breadcrumbs. */\nfunction handleKeyboardEvent(replay, event) {\n if (!replay.isEnabled()) {\n return;\n }\n\n // Update user activity, but do not restart recording as it can create\n // noisy/low-value replays (e.g. user comes back from idle, hits alt-tab, new\n // session with a single \"keydown\" breadcrumb is created)\n replay.updateUserActivity();\n\n const breadcrumb = getKeyboardBreadcrumb(event);\n\n if (!breadcrumb) {\n return;\n }\n\n addBreadcrumbEvent(replay, breadcrumb);\n}\n\n/** exported only for tests */\nfunction getKeyboardBreadcrumb(event) {\n const { metaKey, shiftKey, ctrlKey, altKey, key, target } = event;\n\n // never capture for input fields\n if (!target || isInputElement(target ) || !key) {\n return null;\n }\n\n // Note: We do not consider shift here, as that means \"uppercase\"\n const hasModifierKey = metaKey || ctrlKey || altKey;\n const isCharacterKey = key.length === 1; // other keys like Escape, Tab, etc have a longer length\n\n // Do not capture breadcrumb if only a word key is pressed\n // This could leak e.g. user input\n if (!hasModifierKey && isCharacterKey) {\n return null;\n }\n\n const message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n const baseBreadcrumb = getBaseDomBreadcrumb(target , message);\n\n return createBreadcrumb({\n category: 'ui.keyDown',\n message,\n data: {\n ...baseBreadcrumb.data,\n metaKey,\n shiftKey,\n ctrlKey,\n altKey,\n key,\n },\n });\n}\n\nfunction isInputElement(target) {\n return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;\n}\n\n// Map entryType -> function to normalize data for event\nconst ENTRY_TYPES\n\n = {\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n resource: createResourceEntry,\n paint: createPaintEntry,\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n navigation: createNavigationEntry,\n};\n\n/**\n * Handler creater for web vitals\n */\nfunction webVitalHandler(\n getter,\n replay,\n) {\n return ({ metric }) => void replay.replayPerformanceEntries.push(getter(metric));\n}\n\n/**\n * Create replay performance entries from the browser performance entries.\n */\nfunction createPerformanceEntries(\n entries,\n) {\n return entries.map(createPerformanceEntry).filter(Boolean) ;\n}\n\nfunction createPerformanceEntry(entry) {\n const entryType = ENTRY_TYPES[entry.entryType];\n if (!entryType) {\n return null;\n }\n\n return entryType(entry);\n}\n\nfunction getAbsoluteTime(time) {\n // browserPerformanceTimeOrigin can be undefined if `performance` or\n // `performance.now` doesn't exist, but this is already checked by this integration\n return ((browserPerformanceTimeOrigin || WINDOW.performance.timeOrigin) + time) / 1000;\n}\n\nfunction createPaintEntry(entry) {\n const { duration, entryType, name, startTime } = entry;\n\n const start = getAbsoluteTime(startTime);\n return {\n type: entryType,\n name,\n start,\n end: start + duration,\n data: undefined,\n };\n}\n\nfunction createNavigationEntry(entry) {\n const {\n entryType,\n name,\n decodedBodySize,\n duration,\n domComplete,\n encodedBodySize,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n domInteractive,\n loadEventStart,\n loadEventEnd,\n redirectCount,\n startTime,\n transferSize,\n type,\n } = entry;\n\n // Ignore entries with no duration, they do not seem to be useful and cause dupes\n if (duration === 0) {\n return null;\n }\n\n return {\n type: `${entryType}.${type}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(domComplete),\n name,\n data: {\n size: transferSize,\n decodedBodySize,\n encodedBodySize,\n duration,\n domInteractive,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n loadEventStart,\n loadEventEnd,\n domComplete,\n redirectCount,\n },\n };\n}\n\nfunction createResourceEntry(\n entry,\n) {\n const {\n entryType,\n initiatorType,\n name,\n responseEnd,\n startTime,\n decodedBodySize,\n encodedBodySize,\n responseStatus,\n transferSize,\n } = entry;\n\n // Core SDK handles these\n if (['fetch', 'xmlhttprequest'].includes(initiatorType)) {\n return null;\n }\n\n return {\n type: `${entryType}.${initiatorType}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(responseEnd),\n name,\n data: {\n size: transferSize,\n statusCode: responseStatus,\n decodedBodySize,\n encodedBodySize,\n },\n };\n}\n\n/**\n * Add a LCP event to the replay based on a LCP metric.\n */\nfunction getLargestContentfulPaint(metric) {\n const lastEntry = metric.entries[metric.entries.length - 1] ;\n const node = lastEntry && lastEntry.element ? [lastEntry.element] : undefined;\n return getWebVital(metric, 'largest-contentful-paint', node);\n}\n\nfunction isLayoutShift(entry) {\n return (entry ).sources !== undefined;\n}\n\n/**\n * Add a CLS event to the replay based on a CLS metric.\n */\nfunction getCumulativeLayoutShift(metric) {\n const layoutShifts = [];\n const nodes = [];\n for (const entry of metric.entries) {\n if (isLayoutShift(entry)) {\n const nodeIds = [];\n for (const source of entry.sources) {\n if (source.node) {\n nodes.push(source.node);\n const nodeId = record.mirror.getId(source.node);\n if (nodeId) {\n nodeIds.push(nodeId);\n }\n }\n }\n layoutShifts.push({ value: entry.value, nodeIds: nodeIds.length ? nodeIds : undefined });\n }\n }\n\n return getWebVital(metric, 'cumulative-layout-shift', nodes, layoutShifts);\n}\n\n/**\n * Add a FID event to the replay based on a FID metric.\n */\nfunction getFirstInputDelay(metric) {\n const lastEntry = metric.entries[metric.entries.length - 1] ;\n const node = lastEntry && lastEntry.target ? [lastEntry.target] : undefined;\n return getWebVital(metric, 'first-input-delay', node);\n}\n\n/**\n * Add an INP event to the replay based on an INP metric.\n */\nfunction getInteractionToNextPaint(metric) {\n const lastEntry = metric.entries[metric.entries.length - 1] ;\n const node = lastEntry && lastEntry.target ? [lastEntry.target] : undefined;\n return getWebVital(metric, 'interaction-to-next-paint', node);\n}\n\n/**\n * Add an web vital event to the replay based on the web vital metric.\n */\nfunction getWebVital(\n metric,\n name,\n nodes,\n attributions,\n) {\n const value = metric.value;\n const rating = metric.rating;\n\n const end = getAbsoluteTime(value);\n\n return {\n type: 'web-vital',\n name,\n start: end,\n end,\n data: {\n value,\n size: value,\n rating,\n nodeIds: nodes ? nodes.map(node => record.mirror.getId(node)) : undefined,\n attributions,\n },\n };\n}\n\n/**\n * Sets up a PerformanceObserver to listen to all performance entry types.\n * Returns a callback to stop observing.\n */\nfunction setupPerformanceObserver(replay) {\n function addPerformanceEntry(entry) {\n // It is possible for entries to come up multiple times\n if (!replay.performanceEntries.includes(entry)) {\n replay.performanceEntries.push(entry);\n }\n }\n\n function onEntries({ entries }) {\n entries.forEach(addPerformanceEntry);\n }\n\n const clearCallbacks = [];\n\n (['navigation', 'paint', 'resource'] ).forEach(type => {\n clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n });\n\n clearCallbacks.push(\n addLcpInstrumentationHandler(webVitalHandler(getLargestContentfulPaint, replay)),\n addClsInstrumentationHandler(webVitalHandler(getCumulativeLayoutShift, replay)),\n addFidInstrumentationHandler(webVitalHandler(getFirstInputDelay, replay)),\n addInpInstrumentationHandler(webVitalHandler(getInteractionToNextPaint, replay)),\n );\n\n // A callback to cleanup all handlers\n return () => {\n clearCallbacks.forEach(clearCallback => clearCallback());\n };\n}\n\nconst r = `var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a>h]=l}else for(o=new n(i),a=0;a>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;ad&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<e))break;p+=m-(1<>=y;p>0;){var M=o[a].s;g[M]=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e>>8;t=r},d:function(){return~t}}},L=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},O=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;Pnt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},j=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},q=function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&j(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}},B=function(t){return 10+(t.filename?t.filename.length+1:0)},G=function(){function n(n,r){if(\"function\"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(O(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();var H=function(){function t(t,n){this.c=L(),this.v=1,G.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),G.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=O(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=L();i.p(n.dictionary),j(t,2,i.d())}}(r,this.o),this.v=0),n&&j(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),J=\"undefined\"!=typeof TextEncoder&&new TextEncoder,K=\"undefined\"!=typeof TextDecoder&&new TextDecoder;try{K.decode(F,{stream:!0})}catch(t){}var N=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(P(t),this.d=n||!1)},t}();function P(n,r){if(r){for(var e=new t(n.length),i=0;i>1)),o=0,f=function(t){s[o++]=t};for(i=0;is.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}function Q(t){return function(t,n){n||(n={});var r=S(),e=t.length;r.p(t);var i=O(t,n,B(n),8),a=i.length;return q(i,n),j(i,a-8,r.d()),j(i,a-4,e),i}(P(t))}const R=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\"Adding invalid event\");const n=this._hasEvents?\",\":\"\";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push(\"]\",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n{this._deflatedData.push(t)},this.stream=new N(((t,n)=>{this.deflate.push(t,n)})),this.stream.push(\"[\")}},V={clear:()=>{R.clear()},addEvent:t=>R.addEvent(t),finish:()=>R.finish(),compress:t=>Q(t)};addEventListener(\"message\",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in V&&\"function\"==typeof V[n])try{const t=V[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:\"init\",success:!0,response:void 0});`;\n\nfunction e(){const e=new Blob([r]);return URL.createObjectURL(e)}\n\n/** This error indicates that the event buffer size exceeded the limit.. */\nclass EventBufferSizeExceededError extends Error {\n constructor() {\n super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`);\n }\n}\n\n/**\n * A basic event buffer that does not do any compression.\n * Used as fallback if the compression worker cannot be loaded or is disabled.\n */\nclass EventBufferArray {\n /** All the events that are buffered to be sent. */\n\n /** @inheritdoc */\n\n constructor() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n get hasEvents() {\n return this.events.length > 0;\n }\n\n /** @inheritdoc */\n get type() {\n return 'sync';\n }\n\n /** @inheritdoc */\n destroy() {\n this.events = [];\n }\n\n /** @inheritdoc */\n async addEvent(event) {\n const eventSize = JSON.stringify(event).length;\n this._totalSize += eventSize;\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n throw new EventBufferSizeExceededError();\n }\n\n this.events.push(event);\n }\n\n /** @inheritdoc */\n finish() {\n return new Promise(resolve => {\n // Make a copy of the events array reference and immediately clear the\n // events member so that we do not lose new events while uploading\n // attachment.\n const eventsRet = this.events;\n this.clear();\n resolve(JSON.stringify(eventsRet));\n });\n }\n\n /** @inheritdoc */\n clear() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n const timestamp = this.events.map(event => event.timestamp).sort()[0];\n\n if (!timestamp) {\n return null;\n }\n\n return timestampToMs(timestamp);\n }\n}\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nclass WorkerHandler {\n\n constructor(worker) {\n this._worker = worker;\n this._id = 0;\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n ensureReady() {\n // Ensure we only check once\n if (this._ensureReadyPromise) {\n return this._ensureReadyPromise;\n }\n\n this._ensureReadyPromise = new Promise((resolve, reject) => {\n this._worker.addEventListener(\n 'message',\n ({ data }) => {\n if ((data ).success) {\n resolve();\n } else {\n reject();\n }\n },\n { once: true },\n );\n\n this._worker.addEventListener(\n 'error',\n error => {\n reject(error);\n },\n { once: true },\n );\n });\n\n return this._ensureReadyPromise;\n }\n\n /**\n * Destroy the worker.\n */\n destroy() {\n DEBUG_BUILD && logger.info('Destroying compression worker');\n this._worker.terminate();\n }\n\n /**\n * Post message to worker and wait for response before resolving promise.\n */\n postMessage(method, arg) {\n const id = this._getAndIncrementId();\n\n return new Promise((resolve, reject) => {\n const listener = ({ data }) => {\n const response = data ;\n if (response.method !== method) {\n return;\n }\n\n // There can be multiple listeners for a single method, the id ensures\n // that the response matches the caller.\n if (response.id !== id) {\n return;\n }\n\n // At this point, we'll always want to remove listener regardless of result status\n this._worker.removeEventListener('message', listener);\n\n if (!response.success) {\n // TODO: Do some error handling, not sure what\n DEBUG_BUILD && logger.error('Error in compression worker: ', response.response);\n\n reject(new Error('Error in compression worker'));\n return;\n }\n\n resolve(response.response );\n };\n\n // Note: we can't use `once` option because it's possible it needs to\n // listen to multiple messages\n this._worker.addEventListener('message', listener);\n this._worker.postMessage({ id, method, arg });\n });\n }\n\n /** Get the current ID and increment it for the next call. */\n _getAndIncrementId() {\n return this._id++;\n }\n}\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nclass EventBufferCompressionWorker {\n /** @inheritdoc */\n\n constructor(worker) {\n this._worker = new WorkerHandler(worker);\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n get hasEvents() {\n return !!this._earliestTimestamp;\n }\n\n /** @inheritdoc */\n get type() {\n return 'worker';\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n ensureReady() {\n return this._worker.ensureReady();\n }\n\n /**\n * Destroy the event buffer.\n */\n destroy() {\n this._worker.destroy();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfuly received and processed by worker.\n */\n addEvent(event) {\n const timestamp = timestampToMs(event.timestamp);\n if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n this._earliestTimestamp = timestamp;\n }\n\n const data = JSON.stringify(event);\n this._totalSize += data.length;\n\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n return Promise.reject(new EventBufferSizeExceededError());\n }\n\n return this._sendEventToWorker(data);\n }\n\n /**\n * Finish the event buffer and return the compressed data.\n */\n finish() {\n return this._finishRequest();\n }\n\n /** @inheritdoc */\n clear() {\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n\n // We do not wait on this, as we assume the order of messages is consistent for the worker\n this._worker.postMessage('clear').then(null, e => {\n DEBUG_BUILD && logger.exception(e, 'Sending \"clear\" message to worker failed', e);\n });\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n return this._earliestTimestamp;\n }\n\n /**\n * Send the event to the worker.\n */\n _sendEventToWorker(data) {\n return this._worker.postMessage('addEvent', data);\n }\n\n /**\n * Finish the request and return the compressed data from the worker.\n */\n async _finishRequest() {\n const response = await this._worker.postMessage('finish');\n\n this._earliestTimestamp = null;\n this._totalSize = 0;\n\n return response;\n }\n}\n\n/**\n * This proxy will try to use the compression worker, and fall back to use the simple buffer if an error occurs there.\n * This can happen e.g. if the worker cannot be loaded.\n * Exported only for testing.\n */\nclass EventBufferProxy {\n\n constructor(worker) {\n this._fallback = new EventBufferArray();\n this._compression = new EventBufferCompressionWorker(worker);\n this._used = this._fallback;\n\n this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n }\n\n /** @inheritdoc */\n get type() {\n return this._used.type;\n }\n\n /** @inheritDoc */\n get hasEvents() {\n return this._used.hasEvents;\n }\n\n /** @inheritdoc */\n get hasCheckout() {\n return this._used.hasCheckout;\n }\n /** @inheritdoc */\n set hasCheckout(value) {\n this._used.hasCheckout = value;\n }\n\n /** @inheritDoc */\n destroy() {\n this._fallback.destroy();\n this._compression.destroy();\n }\n\n /** @inheritdoc */\n clear() {\n return this._used.clear();\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n return this._used.getEarliestTimestamp();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully added.\n */\n addEvent(event) {\n return this._used.addEvent(event);\n }\n\n /** @inheritDoc */\n async finish() {\n // Ensure the worker is loaded, so the sent event is compressed\n await this.ensureWorkerIsLoaded();\n\n return this._used.finish();\n }\n\n /** Ensure the worker has loaded. */\n ensureWorkerIsLoaded() {\n return this._ensureWorkerIsLoadedPromise;\n }\n\n /** Actually check if the worker has been loaded. */\n async _ensureWorkerIsLoaded() {\n try {\n await this._compression.ensureReady();\n } catch (error) {\n // If the worker fails to load, we fall back to the simple buffer.\n // Nothing more to do from our side here\n DEBUG_BUILD && logger.exception(error, 'Failed to load the compression worker, falling back to simple buffer');\n return;\n }\n\n // Now we need to switch over the array buffer to the compression worker\n await this._switchToCompressionWorker();\n }\n\n /** Switch the used buffer to the compression worker. */\n async _switchToCompressionWorker() {\n const { events, hasCheckout } = this._fallback;\n\n const addEventPromises = [];\n for (const event of events) {\n addEventPromises.push(this._compression.addEvent(event));\n }\n\n this._compression.hasCheckout = hasCheckout;\n\n // We switch over to the new buffer immediately - any further events will be added\n // after the previously buffered ones\n this._used = this._compression;\n\n // Wait for original events to be re-added before resolving\n try {\n await Promise.all(addEventPromises);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to add events when switching buffers.');\n }\n }\n}\n\n/**\n * Create an event buffer for replays.\n */\nfunction createEventBuffer({\n useCompression,\n workerUrl: customWorkerUrl,\n}) {\n if (\n useCompression &&\n // eslint-disable-next-line no-restricted-globals\n window.Worker\n ) {\n const worker = _loadWorker(customWorkerUrl);\n\n if (worker) {\n return worker;\n }\n }\n\n DEBUG_BUILD && logger.info('Using simple buffer');\n return new EventBufferArray();\n}\n\nfunction _loadWorker(customWorkerUrl) {\n try {\n const workerUrl = customWorkerUrl || _getWorkerUrl();\n\n if (!workerUrl) {\n return;\n }\n\n DEBUG_BUILD && logger.info(`Using compression worker${customWorkerUrl ? ` from ${customWorkerUrl}` : ''}`);\n const worker = new Worker(workerUrl);\n return new EventBufferProxy(worker);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to create compression worker');\n // Fall back to use simple event buffer array\n }\n}\n\nfunction _getWorkerUrl() {\n if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === 'undefined' || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n return e();\n }\n\n return '';\n}\n\n/** If sessionStorage is available. */\nfunction hasSessionStorage() {\n try {\n // This can throw, e.g. when being accessed in a sandboxed iframe\n return 'sessionStorage' in WINDOW && !!WINDOW.sessionStorage;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Removes the session from Session Storage and unsets session in replay instance\n */\nfunction clearSession(replay) {\n deleteSession();\n replay.session = undefined;\n}\n\n/**\n * Deletes a session from storage\n */\nfunction deleteSession() {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n } catch (e) {\n // Ignore potential SecurityError exceptions\n }\n}\n\n/**\n * Given a sample rate, returns true if replay should be sampled.\n *\n * 1.0 = 100% sampling\n * 0.0 = 0% sampling\n */\nfunction isSampled(sampleRate) {\n if (sampleRate === undefined) {\n return false;\n }\n\n // Math.random() returns a number in range of 0 to 1 (inclusive of 0, but not 1)\n return Math.random() < sampleRate;\n}\n\n/**\n * Get a session with defaults & applied sampling.\n */\nfunction makeSession(session) {\n const now = Date.now();\n const id = session.id || uuid4();\n // Note that this means we cannot set a started/lastActivity of `0`, but this should not be relevant outside of tests.\n const started = session.started || now;\n const lastActivity = session.lastActivity || now;\n const segmentId = session.segmentId || 0;\n const sampled = session.sampled;\n const previousSessionId = session.previousSessionId;\n\n return {\n id,\n started,\n lastActivity,\n segmentId,\n sampled,\n previousSessionId,\n };\n}\n\n/**\n * Save a session to session storage.\n */\nfunction saveSession(session) {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n } catch (e) {\n // Ignore potential SecurityError exceptions\n }\n}\n\n/**\n * Get the sampled status for a session based on sample rates & current sampled status.\n */\nfunction getSessionSampleType(sessionSampleRate, allowBuffering) {\n return isSampled(sessionSampleRate) ? 'session' : allowBuffering ? 'buffer' : false;\n}\n\n/**\n * Create a new session, which in its current implementation is a Sentry event\n * that all replays will be saved to as attachments. Currently, we only expect\n * one of these Sentry events per \"replay session\".\n */\nfunction createSession(\n { sessionSampleRate, allowBuffering, stickySession = false },\n { previousSessionId } = {},\n) {\n const sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n const session = makeSession({\n sampled,\n previousSessionId,\n });\n\n if (stickySession) {\n saveSession(session);\n }\n\n return session;\n}\n\n/**\n * Fetches a session from storage\n */\nfunction fetchSession() {\n if (!hasSessionStorage()) {\n return null;\n }\n\n try {\n // This can throw if cookies are disabled\n const sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n\n if (!sessionStringFromStorage) {\n return null;\n }\n\n const sessionObj = JSON.parse(sessionStringFromStorage) ;\n\n DEBUG_BUILD && logger.infoTick('Loading existing session');\n\n return makeSession(sessionObj);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Given an initial timestamp and an expiry duration, checks to see if current\n * time should be considered as expired.\n */\nfunction isExpired(\n initialTime,\n expiry,\n targetTime = +new Date(),\n) {\n // Always expired if < 0\n if (initialTime === null || expiry === undefined || expiry < 0) {\n return true;\n }\n\n // Never expires if == 0\n if (expiry === 0) {\n return false;\n }\n\n return initialTime + expiry <= targetTime;\n}\n\n/**\n * Checks to see if session is expired\n */\nfunction isSessionExpired(\n session,\n {\n maxReplayDuration,\n sessionIdleExpire,\n targetTime = Date.now(),\n },\n) {\n return (\n // First, check that maximum session length has not been exceeded\n isExpired(session.started, maxReplayDuration, targetTime) ||\n // check that the idle timeout has not been exceeded (i.e. user has\n // performed an action within the last `sessionIdleExpire` ms)\n isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n );\n}\n\n/** If the session should be refreshed or not. */\nfunction shouldRefreshSession(\n session,\n { sessionIdleExpire, maxReplayDuration },\n) {\n // If not expired, all good, just keep the session\n if (!isSessionExpired(session, { sessionIdleExpire, maxReplayDuration })) {\n return false;\n }\n\n // If we are buffering & haven't ever flushed yet, always continue\n if (session.sampled === 'buffer' && session.segmentId === 0) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Get or create a session, when initializing the replay.\n * Returns a session that may be unsampled.\n */\nfunction loadOrCreateSession(\n {\n sessionIdleExpire,\n maxReplayDuration,\n previousSessionId,\n }\n\n,\n sessionOptions,\n) {\n const existingSession = sessionOptions.stickySession && fetchSession();\n\n // No session exists yet, just create a new one\n if (!existingSession) {\n DEBUG_BUILD && logger.infoTick('Creating new session');\n return createSession(sessionOptions, { previousSessionId });\n }\n\n if (!shouldRefreshSession(existingSession, { sessionIdleExpire, maxReplayDuration })) {\n return existingSession;\n }\n\n DEBUG_BUILD && logger.infoTick('Session in sessionStorage is expired, creating new one...');\n return createSession(sessionOptions, { previousSessionId: existingSession.id });\n}\n\nfunction isCustomEvent(event) {\n return event.type === EventType.Custom;\n}\n\n/**\n * Add an event to the event buffer.\n * In contrast to `addEvent`, this does not return a promise & does not wait for the adding of the event to succeed/fail.\n * Instead this returns `true` if we tried to add the event, else false.\n * It returns `false` e.g. if we are paused, disabled, or out of the max replay duration.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nfunction addEventSync(replay, event, isCheckout) {\n if (!shouldAddEvent(replay, event)) {\n return false;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _addEvent(replay, event, isCheckout);\n\n return true;\n}\n\n/**\n * Add an event to the event buffer.\n * Resolves to `null` if no event was added, else to `void`.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nfunction addEvent(\n replay,\n event,\n isCheckout,\n) {\n if (!shouldAddEvent(replay, event)) {\n return Promise.resolve(null);\n }\n\n return _addEvent(replay, event, isCheckout);\n}\n\nasync function _addEvent(\n replay,\n event,\n isCheckout,\n) {\n if (!replay.eventBuffer) {\n return null;\n }\n\n try {\n if (isCheckout && replay.recordingMode === 'buffer') {\n replay.eventBuffer.clear();\n }\n\n if (isCheckout) {\n replay.eventBuffer.hasCheckout = true;\n }\n\n const replayOptions = replay.getOptions();\n\n const eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n\n if (!eventAfterPossibleCallback) {\n return;\n }\n\n return await replay.eventBuffer.addEvent(eventAfterPossibleCallback);\n } catch (error) {\n const reason = error && error instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';\n replay.handleException(error);\n\n await replay.stop({ reason });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('internal_sdk_error', 'replay');\n }\n }\n}\n\n/** Exported only for tests. */\nfunction shouldAddEvent(replay, event) {\n if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n return false;\n }\n\n const timestampInMs = timestampToMs(event.timestamp);\n\n // Throw out events that happen more than 5 minutes ago. This can happen if\n // page has been left open and idle for a long period of time and user\n // comes back to trigger a new session. The performance entries rely on\n // `performance.timeOrigin`, which is when the page first opened.\n if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n return false;\n }\n\n // Throw out events that are +60min from the initial timestamp\n if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n DEBUG_BUILD &&\n logger.infoTick(`Skipping event with timestamp ${timestampInMs} because it is after maxReplayDuration`);\n return false;\n }\n\n return true;\n}\n\nfunction maybeApplyCallback(\n event,\n callback,\n) {\n try {\n if (typeof callback === 'function' && isCustomEvent(event)) {\n return callback(event);\n }\n } catch (error) {\n DEBUG_BUILD &&\n logger.exception(error, 'An error occured in the `beforeAddRecordingEvent` callback, skipping the event...');\n return null;\n }\n\n return event;\n}\n\n/** If the event is an error event */\nfunction isErrorEvent(event) {\n return !event.type;\n}\n\n/** If the event is a transaction event */\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\n/** If the event is an replay event */\nfunction isReplayEvent(event) {\n return event.type === 'replay_event';\n}\n\n/** If the event is a feedback event */\nfunction isFeedbackEvent(event) {\n return event.type === 'feedback';\n}\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nfunction handleAfterSendEvent(replay) {\n return (event, sendResponse) => {\n if (!replay.isEnabled() || (!isErrorEvent(event) && !isTransactionEvent(event))) {\n return;\n }\n\n const statusCode = sendResponse && sendResponse.statusCode;\n\n // We only want to do stuff on successful error sending, otherwise you get error replays without errors attached\n // If not using the base transport, we allow `undefined` response (as a custom transport may not implement this correctly yet)\n // If we do use the base transport, we skip if we encountered an non-OK status code\n if (!statusCode || statusCode < 200 || statusCode >= 300) {\n return;\n }\n\n if (isTransactionEvent(event)) {\n handleTransactionEvent(replay, event);\n return;\n }\n\n handleErrorEvent(replay, event);\n };\n}\n\nfunction handleTransactionEvent(replay, event) {\n const replayContext = replay.getContext();\n\n // Collect traceIds in _context regardless of `recordingMode`\n // In error mode, _context gets cleared on every checkout\n // We limit to max. 100 transactions linked\n if (event.contexts && event.contexts.trace && event.contexts.trace.trace_id && replayContext.traceIds.size < 100) {\n replayContext.traceIds.add(event.contexts.trace.trace_id );\n }\n}\n\nfunction handleErrorEvent(replay, event) {\n const replayContext = replay.getContext();\n\n // Add error to list of errorIds of replay. This is ok to do even if not\n // sampled because context will get reset at next checkout.\n // XXX: There is also a race condition where it's possible to capture an\n // error to Sentry before Replay SDK has loaded, but response returns after\n // it was loaded, and this gets called.\n // We limit to max. 100 errors linked\n if (event.event_id && replayContext.errorIds.size < 100) {\n replayContext.errorIds.add(event.event_id);\n }\n\n // If error event is tagged with replay id it means it was sampled (when in buffer mode)\n // Need to be very careful that this does not cause an infinite loop\n if (replay.recordingMode !== 'buffer' || !event.tags || !event.tags.replayId) {\n return;\n }\n\n const { beforeErrorSampling } = replay.getOptions();\n if (typeof beforeErrorSampling === 'function' && !beforeErrorSampling(event)) {\n return;\n }\n\n setTimeout$3(() => {\n // Capture current event buffer as new replay\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.sendBufferedReplayOrFlush();\n });\n}\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nfunction handleBeforeSendEvent(replay) {\n return (event) => {\n if (!replay.isEnabled() || !isErrorEvent(event)) {\n return;\n }\n\n handleHydrationError(replay, event);\n };\n}\n\nfunction handleHydrationError(replay, event) {\n const exceptionValue =\n event.exception && event.exception.values && event.exception.values[0] && event.exception.values[0].value;\n if (typeof exceptionValue !== 'string') {\n return;\n }\n\n if (\n // Only matches errors in production builds of react-dom\n // Example https://reactjs.org/docs/error-decoder.html?invariant=423\n // With newer React versions, the messages changed to a different website https://react.dev/errors/418\n exceptionValue.match(\n /(reactjs\\.org\\/docs\\/error-decoder\\.html\\?invariant=|react\\.dev\\/errors\\/)(418|419|422|423|425)/,\n ) ||\n // Development builds of react-dom\n // Error 1: Hydration failed because the initial UI does not match what was rendered on the server.\n // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match.\n exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)\n ) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.hydrate-error',\n data: {\n url: getLocationHref(),\n },\n });\n addBreadcrumbEvent(replay, breadcrumb);\n }\n}\n\n/**\n * Handle breadcrumbs that Sentry captures, and make sure to capture relevant breadcrumbs to Replay as well.\n */\nfunction handleBreadcrumbs(replay) {\n const client = getClient();\n\n if (!client) {\n return;\n }\n\n client.on('beforeAddBreadcrumb', breadcrumb => beforeAddBreadcrumb(replay, breadcrumb));\n}\n\nfunction beforeAddBreadcrumb(replay, breadcrumb) {\n if (!replay.isEnabled() || !isBreadcrumbWithCategory(breadcrumb)) {\n return;\n }\n\n const result = normalizeBreadcrumb(breadcrumb);\n if (result) {\n addBreadcrumbEvent(replay, result);\n }\n}\n\n/** Exported only for tests. */\nfunction normalizeBreadcrumb(breadcrumb) {\n if (\n !isBreadcrumbWithCategory(breadcrumb) ||\n [\n // fetch & xhr are handled separately,in handleNetworkBreadcrumbs\n 'fetch',\n 'xhr',\n // These two are breadcrumbs for emitted sentry events, we don't care about them\n 'sentry.event',\n 'sentry.transaction',\n ].includes(breadcrumb.category) ||\n // We capture UI breadcrumbs separately\n breadcrumb.category.startsWith('ui.')\n ) {\n return null;\n }\n\n if (breadcrumb.category === 'console') {\n return normalizeConsoleBreadcrumb(breadcrumb);\n }\n\n return createBreadcrumb(breadcrumb);\n}\n\n/** exported for tests only */\nfunction normalizeConsoleBreadcrumb(\n breadcrumb,\n) {\n const args = breadcrumb.data && breadcrumb.data.arguments;\n\n if (!Array.isArray(args) || args.length === 0) {\n return createBreadcrumb(breadcrumb);\n }\n\n let isTruncated = false;\n\n // Avoid giant args captures\n const normalizedArgs = args.map(arg => {\n if (!arg) {\n return arg;\n }\n if (typeof arg === 'string') {\n if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n return `${arg.slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n\n return arg;\n }\n if (typeof arg === 'object') {\n try {\n const normalizedArg = normalize(arg, 7);\n const stringified = JSON.stringify(normalizedArg);\n if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n // We use the pretty printed JSON string here as a base\n return `${JSON.stringify(normalizedArg, null, 2).slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n return normalizedArg;\n } catch (e) {\n // fall back to default\n }\n }\n\n return arg;\n });\n\n return createBreadcrumb({\n ...breadcrumb,\n data: {\n ...breadcrumb.data,\n arguments: normalizedArgs,\n ...(isTruncated ? { _meta: { warnings: ['CONSOLE_ARG_TRUNCATED'] } } : {}),\n },\n });\n}\n\nfunction isBreadcrumbWithCategory(breadcrumb) {\n return !!breadcrumb.category;\n}\n\n/**\n * Returns true if we think the given event is an error originating inside of rrweb.\n */\nfunction isRrwebError(event, hint) {\n if (event.type || !event.exception || !event.exception.values || !event.exception.values.length) {\n return false;\n }\n\n // @ts-expect-error this may be set by rrweb when it finds errors\n if (hint.originalException && hint.originalException.__rrweb__) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Add a feedback breadcrumb event to replay.\n */\nfunction addFeedbackBreadcrumb(replay, event) {\n replay.triggerUserActivity();\n replay.addUpdate(() => {\n if (!event.timestamp) {\n // Ignore events that don't have timestamps (this shouldn't happen, more of a typing issue)\n // Return true here so that we don't flush\n return true;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: event.timestamp * 1000,\n data: {\n tag: 'breadcrumb',\n payload: {\n timestamp: event.timestamp,\n type: 'default',\n category: 'sentry.feedback',\n data: {\n feedbackId: event.event_id,\n },\n },\n },\n } );\n\n return false;\n });\n}\n\n/**\n * Determine if event should be sampled (only applies in buffer mode).\n * When an event is captured by `hanldleGlobalEvent`, when in buffer mode\n * we determine if we want to sample the error or not.\n */\nfunction shouldSampleForBufferEvent(replay, event) {\n if (replay.recordingMode !== 'buffer') {\n return false;\n }\n\n // ignore this error because otherwise we could loop indefinitely with\n // trying to capture replay and failing\n if (event.message === UNABLE_TO_SEND_REPLAY) {\n return false;\n }\n\n // Require the event to be an error event & to have an exception\n if (!event.exception || event.type) {\n return false;\n }\n\n return isSampled(replay.getOptions().errorSampleRate);\n}\n\n/**\n * Returns a listener to be added to `addEventProcessor(listener)`.\n */\nfunction handleGlobalEventListener(replay) {\n return Object.assign(\n (event, hint) => {\n // Do nothing if replay has been disabled\n if (!replay.isEnabled()) {\n return event;\n }\n\n if (isReplayEvent(event)) {\n // Replays have separate set of breadcrumbs, do not include breadcrumbs\n // from core SDK\n delete event.breadcrumbs;\n return event;\n }\n\n // We only want to handle errors, transactions, and feedbacks, nothing else\n if (!isErrorEvent(event) && !isTransactionEvent(event) && !isFeedbackEvent(event)) {\n return event;\n }\n\n // Ensure we do not add replay_id if the session is expired\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (!isSessionActive) {\n return event;\n }\n\n if (isFeedbackEvent(event)) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.flush();\n event.contexts.feedback.replay_id = replay.getSessionId();\n // Add a replay breadcrumb for this piece of feedback\n addFeedbackBreadcrumb(replay, event);\n return event;\n }\n\n // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb\n // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users\n if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n DEBUG_BUILD && logger.log('Ignoring error from rrweb internals', event);\n return null;\n }\n\n // When in buffer mode, we decide to sample here.\n // Later, in `handleAfterSendEvent`, if the replayId is set, we know that we sampled\n // And convert the buffer session to a full session\n const isErrorEventSampled = shouldSampleForBufferEvent(replay, event);\n\n // Tag errors if it has been sampled in buffer mode, or if it is session mode\n // Only tag transactions if in session mode\n const shouldTagReplayId = isErrorEventSampled || replay.recordingMode === 'session';\n\n if (shouldTagReplayId) {\n event.tags = { ...event.tags, replayId: replay.getSessionId() };\n }\n\n return event;\n },\n { id: 'Replay' },\n );\n}\n\n/**\n * Create a \"span\" for each performance entry.\n */\nfunction createPerformanceSpans(\n replay,\n entries,\n) {\n return entries.map(({ type, start, end, name, data }) => {\n const response = replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: start,\n data: {\n tag: 'performanceSpan',\n payload: {\n op: type,\n description: name,\n startTimestamp: start,\n endTimestamp: end,\n data,\n },\n },\n });\n\n // If response is a string, it means its either THROTTLED or SKIPPED\n return typeof response === 'string' ? Promise.resolve(null) : response;\n });\n}\n\nfunction handleHistory(handlerData) {\n const { from, to } = handlerData;\n\n const now = Date.now() / 1000;\n\n return {\n type: 'navigation.push',\n start: now,\n end: now,\n name: to,\n data: {\n previous: from,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addHistoryInstrumentationHandler(listener)`.\n */\nfunction handleHistorySpanListener(replay) {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleHistory(handlerData);\n\n if (result === null) {\n return;\n }\n\n // Need to collect visited URLs\n replay.getContext().urls.push(result.name);\n replay.triggerUserActivity();\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning false to flush\n return false;\n });\n };\n}\n\n/**\n * Check whether a given request URL should be filtered out. This is so we\n * don't log Sentry ingest requests.\n */\nfunction shouldFilterRequest(replay, url) {\n // If we enabled the `traceInternals` experiment, we want to trace everything\n if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {\n return false;\n }\n\n return isSentryRequestUrl(url, getClient());\n}\n\n/** Add a performance entry breadcrumb */\nfunction addNetworkBreadcrumb(\n replay,\n result,\n) {\n if (!replay.isEnabled()) {\n return;\n }\n\n if (result === null) {\n return;\n }\n\n if (shouldFilterRequest(replay, result.name)) {\n return;\n }\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning true will cause `addUpdate` to not flush\n // We do not want network requests to cause a flush. This will prevent\n // recurring/polling requests from keeping the replay session alive.\n return true;\n });\n}\n\n/** Get the size of a body. */\nfunction getBodySize(body) {\n if (!body) {\n return undefined;\n }\n\n const textEncoder = new TextEncoder();\n\n try {\n if (typeof body === 'string') {\n return textEncoder.encode(body).length;\n }\n\n if (body instanceof URLSearchParams) {\n return textEncoder.encode(body.toString()).length;\n }\n\n if (body instanceof FormData) {\n const formDataStr = _serializeFormData(body);\n return textEncoder.encode(formDataStr).length;\n }\n\n if (body instanceof Blob) {\n return body.size;\n }\n\n if (body instanceof ArrayBuffer) {\n return body.byteLength;\n }\n\n // Currently unhandled types: ArrayBufferView, ReadableStream\n } catch (e) {\n // just return undefined\n }\n\n return undefined;\n}\n\n/** Convert a Content-Length header to number/undefined. */\nfunction parseContentLengthHeader(header) {\n if (!header) {\n return undefined;\n }\n\n const size = parseInt(header, 10);\n return isNaN(size) ? undefined : size;\n}\n\n/** Get the string representation of a body. */\nfunction getBodyString(body) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof URLSearchParams) {\n return [body.toString()];\n }\n\n if (body instanceof FormData) {\n return [_serializeFormData(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\n/** Merge a warning into an existing network request/response. */\nfunction mergeWarning(\n info,\n warning,\n) {\n if (!info) {\n return {\n headers: {},\n size: undefined,\n _meta: {\n warnings: [warning],\n },\n };\n }\n\n const newMeta = { ...info._meta };\n const existingWarnings = newMeta.warnings || [];\n newMeta.warnings = [...existingWarnings, warning];\n\n info._meta = newMeta;\n return info;\n}\n\n/** Convert ReplayNetworkRequestData to a PerformanceEntry. */\nfunction makeNetworkReplayBreadcrumb(\n type,\n data,\n) {\n if (!data) {\n return null;\n }\n\n const { startTimestamp, endTimestamp, url, method, statusCode, request, response } = data;\n\n const result = {\n type,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: dropUndefinedKeys({\n method,\n statusCode,\n request,\n response,\n }),\n };\n\n return result;\n}\n\n/** Build the request or response part of a replay network breadcrumb that was skipped. */\nfunction buildSkippedNetworkRequestOrResponse(bodySize) {\n return {\n headers: {},\n size: bodySize,\n _meta: {\n warnings: ['URL_SKIPPED'],\n },\n };\n}\n\n/** Build the request or response part of a replay network breadcrumb. */\nfunction buildNetworkRequestOrResponse(\n headers,\n bodySize,\n body,\n) {\n if (!bodySize && Object.keys(headers).length === 0) {\n return undefined;\n }\n\n if (!bodySize) {\n return {\n headers,\n };\n }\n\n if (!body) {\n return {\n headers,\n size: bodySize,\n };\n }\n\n const info = {\n headers,\n size: bodySize,\n };\n\n const { body: normalizedBody, warnings } = normalizeNetworkBody(body);\n info.body = normalizedBody;\n if (warnings && warnings.length > 0) {\n info._meta = {\n warnings,\n };\n }\n\n return info;\n}\n\n/** Filter a set of headers */\nfunction getAllowedHeaders(headers, allowedHeaders) {\n return Object.entries(headers).reduce((filteredHeaders, [key, value]) => {\n const normalizedKey = key.toLowerCase();\n // Avoid putting empty strings into the headers\n if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n filteredHeaders[normalizedKey] = value;\n }\n return filteredHeaders;\n }, {});\n}\n\nfunction _serializeFormData(formData) {\n // This is a bit simplified, but gives us a decent estimate\n // This converts e.g. { name: 'Anne Smith', age: 13 } to 'name=Anne+Smith&age=13'\n // @ts-expect-error passing FormData to URLSearchParams actually works\n return new URLSearchParams(formData).toString();\n}\n\nfunction normalizeNetworkBody(body)\n\n {\n if (!body || typeof body !== 'string') {\n return {\n body,\n };\n }\n\n const exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n const isProbablyJson = _strIsProbablyJson(body);\n\n if (exceedsSizeLimit) {\n const truncatedBody = body.slice(0, NETWORK_BODY_MAX_SIZE);\n\n if (isProbablyJson) {\n return {\n body: truncatedBody,\n warnings: ['MAYBE_JSON_TRUNCATED'],\n };\n }\n\n return {\n body: `${truncatedBody}…`,\n warnings: ['TEXT_TRUNCATED'],\n };\n }\n\n if (isProbablyJson) {\n try {\n const jsonBody = JSON.parse(body);\n return {\n body: jsonBody,\n };\n } catch (e2) {\n // fall back to just send the body as string\n }\n }\n\n return {\n body,\n };\n}\n\nfunction _strIsProbablyJson(str) {\n const first = str[0];\n const last = str[str.length - 1];\n\n // Simple check: If this does not start & end with {} or [], it's not JSON\n return (first === '[' && last === ']') || (first === '{' && last === '}');\n}\n\n/** Match an URL against a list of strings/Regex. */\nfunction urlMatches(url, urls) {\n const fullUrl = getFullUrl(url);\n\n return stringMatchesSomePattern(fullUrl, urls);\n}\n\n/** exported for tests */\nfunction getFullUrl(url, baseURI = WINDOW.document.baseURI) {\n // Short circuit for common cases:\n if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith(WINDOW.location.origin)) {\n return url;\n }\n const fixedUrl = new URL(url, baseURI);\n\n // If these do not match, we are not dealing with a relative URL, so just return it\n if (fixedUrl.origin !== new URL(baseURI).origin) {\n return url;\n }\n\n const fullUrl = fixedUrl.href;\n\n // Remove trailing slashes, if they don't match the original URL\n if (!url.endsWith('/') && fullUrl.endsWith('/')) {\n return fullUrl.slice(0, -1);\n }\n\n return fullUrl;\n}\n\n/**\n * Capture a fetch breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nasync function captureFetchBreadcrumbToReplay(\n breadcrumb,\n hint,\n options\n\n,\n) {\n try {\n const data = await _prepareFetchData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.fetch', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to capture fetch breadcrumb');\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nfunction enrichFetchBreadcrumb(\n breadcrumb,\n hint,\n) {\n const { input, response } = hint;\n\n const body = input ? _getFetchRequestArgBody(input) : undefined;\n const reqSize = getBodySize(body);\n\n const resSize = response ? parseContentLengthHeader(response.headers.get('content-length')) : undefined;\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nasync function _prepareFetchData(\n breadcrumb,\n hint,\n options,\n) {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n const captureDetails =\n urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n\n const request = captureDetails\n ? _getRequestInfo(options, hint.input, requestBodySize)\n : buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = await _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n}\n\nfunction _getRequestInfo(\n { networkCaptureBodies, networkRequestHeaders },\n input,\n requestBodySize,\n) {\n const headers = input ? getRequestHeaders(input, networkRequestHeaders) : {};\n\n if (!networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, requestBodySize, undefined);\n }\n\n // We only want to transmit string or string-like bodies\n const requestBody = _getFetchRequestArgBody(input);\n const [bodyStr, warning] = getBodyString(requestBody);\n const data = buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n\n if (warning) {\n return mergeWarning(data, warning);\n }\n\n return data;\n}\n\n/** Exported only for tests. */\nasync function _getResponseInfo(\n captureDetails,\n {\n networkCaptureBodies,\n networkResponseHeaders,\n },\n response,\n responseBodySize,\n) {\n if (!captureDetails && responseBodySize !== undefined) {\n return buildSkippedNetworkRequestOrResponse(responseBodySize);\n }\n\n const headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};\n\n if (!response || (!networkCaptureBodies && responseBodySize !== undefined)) {\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n\n const [bodyText, warning] = await _parseFetchResponseBody(response);\n const result = getResponseData(bodyText, {\n networkCaptureBodies,\n\n responseBodySize,\n captureDetails,\n headers,\n });\n\n if (warning) {\n return mergeWarning(result, warning);\n }\n\n return result;\n}\n\nfunction getResponseData(\n bodyText,\n {\n networkCaptureBodies,\n responseBodySize,\n captureDetails,\n headers,\n }\n\n,\n) {\n try {\n const size =\n bodyText && bodyText.length && responseBodySize === undefined ? getBodySize(bodyText) : responseBodySize;\n\n if (!captureDetails) {\n return buildSkippedNetworkRequestOrResponse(size);\n }\n\n if (networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, size, bodyText);\n }\n\n return buildNetworkRequestOrResponse(headers, size, undefined);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize response body');\n // fallback\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n}\n\nasync function _parseFetchResponseBody(response) {\n const res = _tryCloneResponse(response);\n\n if (!res) {\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n try {\n const text = await _tryGetResponseText(res);\n return [text];\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to get text body from response');\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n}\n\nfunction _getFetchRequestArgBody(fetchArgs = []) {\n // We only support getting the body from the fetch options\n if (fetchArgs.length !== 2 || typeof fetchArgs[1] !== 'object') {\n return undefined;\n }\n\n return (fetchArgs[1] ).body;\n}\n\nfunction getAllHeaders(headers, allowedHeaders) {\n const allHeaders = {};\n\n allowedHeaders.forEach(header => {\n if (headers.get(header)) {\n allHeaders[header] = headers.get(header) ;\n }\n });\n\n return allHeaders;\n}\n\nfunction getRequestHeaders(fetchArgs, allowedHeaders) {\n if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {\n return getHeadersFromOptions(fetchArgs[0] , allowedHeaders);\n }\n\n if (fetchArgs.length === 2) {\n return getHeadersFromOptions(fetchArgs[1] , allowedHeaders);\n }\n\n return {};\n}\n\nfunction getHeadersFromOptions(\n input,\n allowedHeaders,\n) {\n if (!input) {\n return {};\n }\n\n const headers = input.headers;\n\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n return getAllHeaders(headers, allowedHeaders);\n }\n\n // We do not support this, as it is not really documented (anymore?)\n if (Array.isArray(headers)) {\n return {};\n }\n\n return getAllowedHeaders(headers, allowedHeaders);\n}\n\nfunction _tryCloneResponse(response) {\n try {\n // We have to clone this, as the body can only be read once\n return response.clone();\n } catch (error) {\n // this can throw if the response was already consumed before\n DEBUG_BUILD && logger.exception(error, 'Failed to clone response body');\n }\n}\n\n/**\n * Get the response body of a fetch request, or timeout after 500ms.\n * Fetch can return a streaming body, that may not resolve (or not for a long time).\n * If that happens, we rather abort after a short time than keep waiting for this.\n */\nfunction _tryGetResponseText(response) {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout$3(() => reject(new Error('Timeout while trying to read response body')), 500);\n\n _getResponseText(response)\n .then(\n txt => resolve(txt),\n reason => reject(reason),\n )\n .finally(() => clearTimeout(timeout));\n });\n}\n\nasync function _getResponseText(response) {\n // Force this to be a promise, just to be safe\n // eslint-disable-next-line no-return-await\n return await response.text();\n}\n\n/**\n * Capture an XHR breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nasync function captureXhrBreadcrumbToReplay(\n breadcrumb,\n hint,\n options,\n) {\n try {\n const data = _prepareXhrData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.xhr', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to capture xhr breadcrumb');\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nfunction enrichXhrBreadcrumb(\n breadcrumb,\n hint,\n) {\n const { xhr, input } = hint;\n\n if (!xhr) {\n return;\n }\n\n const reqSize = getBodySize(input);\n const resSize = xhr.getResponseHeader('content-length')\n ? parseContentLengthHeader(xhr.getResponseHeader('content-length'))\n : _getBodySize(xhr.response, xhr.responseType);\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareXhrData(\n breadcrumb,\n hint,\n options,\n) {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now, input, xhr } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n if (!url) {\n return null;\n }\n\n if (!xhr || !urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n const request = buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = buildSkippedNetworkRequestOrResponse(responseBodySize);\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n }\n\n const xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n const networkRequestHeaders = xhrInfo\n ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders)\n : {};\n const networkResponseHeaders = getAllowedHeaders(getResponseHeaders(xhr), options.networkResponseHeaders);\n\n const [requestBody, requestWarning] = options.networkCaptureBodies ? getBodyString(input) : [undefined];\n const [responseBody, responseWarning] = options.networkCaptureBodies ? _getXhrResponseBody(xhr) : [undefined];\n\n const request = buildNetworkRequestOrResponse(networkRequestHeaders, requestBodySize, requestBody);\n const response = buildNetworkRequestOrResponse(networkResponseHeaders, responseBodySize, responseBody);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request: requestWarning ? mergeWarning(request, requestWarning) : request,\n response: responseWarning ? mergeWarning(response, responseWarning) : response,\n };\n}\n\nfunction getResponseHeaders(xhr) {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc, line) => {\n const [key, value] = line.split(': ') ;\n if (value) {\n acc[key.toLowerCase()] = value;\n }\n return acc;\n }, {});\n}\n\nfunction _getXhrResponseBody(xhr) {\n // We collect errors that happen, but only log them if we can't get any response body\n const errors = [];\n\n try {\n return [xhr.responseText];\n } catch (e) {\n errors.push(e);\n }\n\n // Try to manually parse the response body, if responseText fails\n try {\n return _parseXhrResponse(xhr.response, xhr.responseType);\n } catch (e) {\n errors.push(e);\n }\n\n DEBUG_BUILD && logger.warn('Failed to get xhr response body', ...errors);\n\n return [undefined];\n}\n\n/**\n * Get the string representation of the XHR response.\n * Based on MDN, these are the possible types of the response:\n * string\n * ArrayBuffer\n * Blob\n * Document\n * POJO\n *\n * Exported only for tests.\n */\nfunction _parseXhrResponse(\n body,\n responseType,\n) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof Document) {\n return [body.body.outerHTML];\n }\n\n if (responseType === 'json' && body && typeof body === 'object') {\n return [JSON.stringify(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\nfunction _getBodySize(\n body,\n responseType,\n) {\n try {\n const bodyStr = responseType === 'json' && body && typeof body === 'object' ? JSON.stringify(body) : body;\n return getBodySize(bodyStr);\n } catch (e2) {\n return undefined;\n }\n}\n\n/**\n * This method does two things:\n * - It enriches the regular XHR/fetch breadcrumbs with request/response size data\n * - It captures the XHR/fetch breadcrumbs to the replay\n * (enriching it with further data that is _not_ added to the regular breadcrumbs)\n */\nfunction handleNetworkBreadcrumbs(replay) {\n const client = getClient();\n\n try {\n const {\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n } = replay.getOptions();\n\n const options = {\n replay,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n };\n\n if (client) {\n client.on('beforeAddBreadcrumb', (breadcrumb, hint) => beforeAddNetworkBreadcrumb(options, breadcrumb, hint));\n }\n } catch (e2) {\n // Do nothing\n }\n}\n\n/** just exported for tests */\nfunction beforeAddNetworkBreadcrumb(\n options,\n breadcrumb,\n hint,\n) {\n if (!breadcrumb.data) {\n return;\n }\n\n try {\n if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichXhrBreadcrumb(breadcrumb, hint);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n }\n\n if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichFetchBreadcrumb(breadcrumb, hint);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n }\n } catch (e) {\n DEBUG_BUILD && logger.exception(e, 'Error when enriching network breadcrumb');\n }\n}\n\nfunction _isXhrBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'xhr';\n}\n\nfunction _isFetchBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'fetch';\n}\n\nfunction _isXhrHint(hint) {\n return hint && hint.xhr;\n}\n\nfunction _isFetchHint(hint) {\n return hint && hint.response;\n}\n\n/**\n * Add global listeners that cannot be removed.\n */\nfunction addGlobalListeners(replay) {\n // Listeners from core SDK //\n const client = getClient();\n\n addClickKeypressInstrumentationHandler(handleDomListener(replay));\n addHistoryInstrumentationHandler(handleHistorySpanListener(replay));\n handleBreadcrumbs(replay);\n handleNetworkBreadcrumbs(replay);\n\n // Tag all (non replay) events that get sent to Sentry with the current\n // replay ID so that we can reference them later in the UI\n const eventProcessor = handleGlobalEventListener(replay);\n addEventProcessor(eventProcessor);\n\n // If a custom client has no hooks yet, we continue to use the \"old\" implementation\n if (client) {\n client.on('beforeSendEvent', handleBeforeSendEvent(replay));\n client.on('afterSendEvent', handleAfterSendEvent(replay));\n client.on('createDsc', (dsc) => {\n const replayId = replay.getSessionId();\n // We do not want to set the DSC when in buffer mode, as that means the replay has not been sent (yet)\n if (replayId && replay.isEnabled() && replay.recordingMode === 'session') {\n // Ensure to check that the session is still active - it could have expired in the meanwhile\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (isSessionActive) {\n dsc.replay_id = replayId;\n }\n }\n });\n\n client.on('spanStart', span => {\n replay.lastActiveSpan = span;\n });\n\n // We may be missing the initial spanStart due to timing issues,\n // so we capture it on finish again.\n client.on('spanEnd', span => {\n replay.lastActiveSpan = span;\n });\n\n // We want to flush replay\n client.on('beforeSendFeedback', (feedbackEvent, options) => {\n const replayId = replay.getSessionId();\n if (options && options.includeReplay && replay.isEnabled() && replayId) {\n // This should never reject\n if (feedbackEvent.contexts && feedbackEvent.contexts.feedback) {\n feedbackEvent.contexts.feedback.replay_id = replayId;\n }\n }\n });\n }\n}\n\n/**\n * Create a \"span\" for the total amount of memory being used by JS objects\n * (including v8 internal objects).\n */\nasync function addMemoryEntry(replay) {\n // window.performance.memory is a non-standard API and doesn't work on all browsers, so we try-catch this\n try {\n return Promise.all(\n createPerformanceSpans(replay, [\n // @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n createMemoryEntry(WINDOW.performance.memory),\n ]),\n );\n } catch (error) {\n // Do nothing\n return [];\n }\n}\n\nfunction createMemoryEntry(memoryEntry) {\n const { jsHeapSizeLimit, totalJSHeapSize, usedJSHeapSize } = memoryEntry;\n // we don't want to use `getAbsoluteTime` because it adds the event time to the\n // time origin, so we get the current timestamp instead\n const time = Date.now() / 1000;\n return {\n type: 'memory',\n name: 'memory',\n start: time,\n end: time,\n data: {\n memory: {\n jsHeapSizeLimit,\n totalJSHeapSize,\n usedJSHeapSize,\n },\n },\n };\n}\n\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nfunction debounce(func, wait, options) {\n let callbackReturnValue;\n\n let timerId;\n let maxTimerId;\n\n const maxWait = options && options.maxWait ? Math.max(options.maxWait, wait) : 0;\n\n function invokeFunc() {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers() {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush() {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced() {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout$3(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeout$3(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Handler for recording events.\n *\n * Adds to event buffer, and has varying flushing behaviors if the event was a checkout.\n */\nfunction getHandleRecordingEmit(replay) {\n let hadFirstEvent = false;\n\n return (event, _isCheckout) => {\n // If this is false, it means session is expired, create and a new session and wait for checkout\n if (!replay.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.warn('Received replay event after session expired.');\n\n return;\n }\n\n // `_isCheckout` is only set when the checkout is due to `checkoutEveryNms`\n // We also want to treat the first event as a checkout, so we handle this specifically here\n const isCheckout = _isCheckout || !hadFirstEvent;\n hadFirstEvent = true;\n\n if (replay.clickDetector) {\n updateClickDetectorForRecordingEvent(replay.clickDetector, event);\n }\n\n // The handler returns `true` if we do not want to trigger debounced flush, `false` if we want to debounce flush.\n replay.addUpdate(() => {\n // The session is always started immediately on pageload/init, but for\n // error-only replays, it should reflect the most recent checkout\n // when an error occurs. Clear any state that happens before this current\n // checkout. This needs to happen before `addEvent()` which updates state\n // dependent on this reset.\n if (replay.recordingMode === 'buffer' && isCheckout) {\n replay.setInitialState();\n }\n\n // If the event is not added (e.g. due to being paused, disabled, or out of the max replay duration),\n // Skip all further steps\n if (!addEventSync(replay, event, isCheckout)) {\n // Return true to skip scheduling a debounced flush\n return true;\n }\n\n // Different behavior for full snapshots (type=2), ignore other event types\n // See https://github.com/rrweb-io/rrweb/blob/d8f9290ca496712aa1e7d472549480c4e7876594/packages/rrweb/src/types.ts#L16\n if (!isCheckout) {\n return false;\n }\n\n const session = replay.session;\n\n // Additionally, create a meta event that will capture certain SDK settings.\n // In order to handle buffer mode, this needs to either be done when we\n // receive checkout events or at flush time. We have an experimental mode\n // to perform multiple checkouts a session (the idea is to improve\n // seeking during playback), so also only include if segmentId is 0\n // (handled in `addSettingsEvent`).\n //\n // `isCheckout` is always true, but want to be explicit that it should\n // only be added for checkouts\n addSettingsEvent(replay, isCheckout);\n\n // If there is a previousSessionId after a full snapshot occurs, then\n // the replay session was started due to session expiration. The new session\n // is started before triggering a new checkout and contains the id\n // of the previous session. Do not immediately flush in this case\n // to avoid capturing only the checkout and instead the replay will\n // be captured if they perform any follow-up actions.\n if (session && session.previousSessionId) {\n return true;\n }\n\n // When in buffer mode, make sure we adjust the session started date to the current earliest event of the buffer\n // this should usually be the timestamp of the checkout event, but to be safe...\n if (replay.recordingMode === 'buffer' && session && replay.eventBuffer) {\n const earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n if (earliestEvent) {\n DEBUG_BUILD &&\n logger.info(`Updating session start time to earliest event in buffer to ${new Date(earliestEvent)}`);\n\n session.started = earliestEvent;\n\n if (replay.getOptions().stickySession) {\n saveSession(session);\n }\n }\n }\n\n if (replay.recordingMode === 'session') {\n // If the full snapshot is due to an initial load, we will not have\n // a previous session ID. In this case, we want to buffer events\n // for a set amount of time before flushing. This can help avoid\n // capturing replays of users that immediately close the window.\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void replay.flush();\n }\n\n return true;\n });\n };\n}\n\n/**\n * Exported for tests\n */\nfunction createOptionsEvent(replay) {\n const options = replay.getOptions();\n return {\n type: EventType.Custom,\n timestamp: Date.now(),\n data: {\n tag: 'options',\n payload: {\n shouldRecordCanvas: replay.isRecordingCanvas(),\n sessionSampleRate: options.sessionSampleRate,\n errorSampleRate: options.errorSampleRate,\n useCompressionOption: options.useCompression,\n blockAllMedia: options.blockAllMedia,\n maskAllText: options.maskAllText,\n maskAllInputs: options.maskAllInputs,\n useCompression: replay.eventBuffer ? replay.eventBuffer.type === 'worker' : false,\n networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n networkCaptureBodies: options.networkCaptureBodies,\n networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n networkResponseHasHeaders: options.networkResponseHeaders.length > 0,\n },\n },\n };\n}\n\n/**\n * Add a \"meta\" event that contains a simplified view on current configuration\n * options. This should only be included on the first segment of a recording.\n */\nfunction addSettingsEvent(replay, isCheckout) {\n // Only need to add this event when sending the first segment\n if (!isCheckout || !replay.session || replay.session.segmentId !== 0) {\n return;\n }\n\n addEventSync(replay, createOptionsEvent(replay), false);\n}\n\n/**\n * Create a replay envelope ready to be sent.\n * This includes both the replay event, as well as the recording data.\n */\nfunction createReplayEnvelope(\n replayEvent,\n recordingData,\n dsn,\n tunnel,\n) {\n return createEnvelope(\n createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn),\n [\n [{ type: 'replay_event' }, replayEvent],\n [\n {\n type: 'replay_recording',\n // If string then we need to encode to UTF8, otherwise will have\n // wrong size. TextEncoder has similar browser support to\n // MutationObserver, although it does not accept IE11.\n length:\n typeof recordingData === 'string' ? new TextEncoder().encode(recordingData).length : recordingData.length,\n },\n recordingData,\n ],\n ],\n );\n}\n\n/**\n * Prepare the recording data ready to be sent.\n */\nfunction prepareRecordingData({\n recordingData,\n headers,\n}\n\n) {\n let payloadWithSequence;\n\n // XXX: newline is needed to separate sequence id from events\n const replayHeaders = `${JSON.stringify(headers)}\n`;\n\n if (typeof recordingData === 'string') {\n payloadWithSequence = `${replayHeaders}${recordingData}`;\n } else {\n const enc = new TextEncoder();\n // XXX: newline is needed to separate sequence id from events\n const sequence = enc.encode(replayHeaders);\n // Merge the two Uint8Arrays\n payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n payloadWithSequence.set(sequence);\n payloadWithSequence.set(recordingData, sequence.length);\n }\n\n return payloadWithSequence;\n}\n\n/**\n * Prepare a replay event & enrich it with the SDK metadata.\n */\nasync function prepareReplayEvent({\n client,\n scope,\n replayId: event_id,\n event,\n}\n\n) {\n const integrations =\n typeof client._integrations === 'object' && client._integrations !== null && !Array.isArray(client._integrations)\n ? Object.keys(client._integrations)\n : undefined;\n\n const eventHint = { event_id, integrations };\n\n client.emit('preprocessEvent', event, eventHint);\n\n const preparedEvent = (await prepareEvent(\n client.getOptions(),\n event,\n eventHint,\n scope,\n client,\n getIsolationScope(),\n )) ;\n\n // If e.g. a global event processor returned null\n if (!preparedEvent) {\n return null;\n }\n\n // This normally happens in browser client \"_prepareEvent\"\n // but since we do not use this private method from the client, but rather the plain import\n // we need to do this manually.\n preparedEvent.platform = preparedEvent.platform || 'javascript';\n\n // extract the SDK name because `client._prepareEvent` doesn't add it to the event\n const metadata = client.getSdkMetadata();\n const { name, version } = (metadata && metadata.sdk) || {};\n\n preparedEvent.sdk = {\n ...preparedEvent.sdk,\n name: name || 'sentry.javascript.unknown',\n version: version || '0.0.0',\n };\n\n return preparedEvent;\n}\n\n/**\n * Send replay attachment using `fetch()`\n */\nasync function sendReplayRequest({\n recordingData,\n replayId,\n segmentId: segment_id,\n eventContext,\n timestamp,\n session,\n}) {\n const preparedRecordingData = prepareRecordingData({\n recordingData,\n headers: {\n segment_id,\n },\n });\n\n const { urls, errorIds, traceIds, initialTimestamp } = eventContext;\n\n const client = getClient();\n const scope = getCurrentScope();\n const transport = client && client.getTransport();\n const dsn = client && client.getDsn();\n\n if (!client || !transport || !dsn || !session.sampled) {\n return resolvedSyncPromise({});\n }\n\n const baseEvent = {\n type: REPLAY_EVENT_NAME,\n replay_start_timestamp: initialTimestamp / 1000,\n timestamp: timestamp / 1000,\n error_ids: errorIds,\n trace_ids: traceIds,\n urls,\n replay_id: replayId,\n segment_id,\n replay_type: session.sampled,\n };\n\n const replayEvent = await prepareReplayEvent({ scope, client, replayId, event: baseEvent });\n\n if (!replayEvent) {\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'replay', baseEvent);\n DEBUG_BUILD && logger.info('An event processor returned `null`, will not send event.');\n return resolvedSyncPromise({});\n }\n\n /*\n For reference, the fully built event looks something like this:\n {\n \"type\": \"replay_event\",\n \"timestamp\": 1670837008.634,\n \"error_ids\": [\n \"errorId\"\n ],\n \"trace_ids\": [\n \"traceId\"\n ],\n \"urls\": [\n \"https://example.com\"\n ],\n \"replay_id\": \"eventId\",\n \"segment_id\": 3,\n \"replay_type\": \"error\",\n \"platform\": \"javascript\",\n \"event_id\": \"eventId\",\n \"environment\": \"production\",\n \"sdk\": {\n \"integrations\": [\n \"BrowserTracing\",\n \"Replay\"\n ],\n \"name\": \"sentry.javascript.browser\",\n \"version\": \"7.25.0\"\n },\n \"sdkProcessingMetadata\": {},\n \"contexts\": {\n },\n }\n */\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete replayEvent.sdkProcessingMetadata;\n\n const envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n\n let response;\n\n try {\n response = await transport.send(envelope);\n } catch (err) {\n const error = new Error(UNABLE_TO_SEND_REPLAY);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch (e) {\n // nothing to do\n }\n throw error;\n }\n\n // If the status code is invalid, we want to immediately stop & not retry\n if (typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300)) {\n throw new TransportStatusCodeError(response.statusCode);\n }\n\n const rateLimits = updateRateLimits({}, response);\n if (isRateLimited(rateLimits, 'replay')) {\n throw new RateLimitError(rateLimits);\n }\n\n return response;\n}\n\n/**\n * This error indicates that the transport returned an invalid status code.\n */\nclass TransportStatusCodeError extends Error {\n constructor(statusCode) {\n super(`Transport returned status code ${statusCode}`);\n }\n}\n\n/**\n * This error indicates that we hit a rate limit API error.\n */\nclass RateLimitError extends Error {\n\n constructor(rateLimits) {\n super('Rate limit hit');\n this.rateLimits = rateLimits;\n }\n}\n\n/**\n * Finalize and send the current replay event to Sentry\n */\nasync function sendReplay(\n replayData,\n retryConfig = {\n count: 0,\n interval: RETRY_BASE_INTERVAL,\n },\n) {\n const { recordingData, onError } = replayData;\n\n // short circuit if there's no events to upload (this shouldn't happen as _runFlush makes this check)\n if (!recordingData.length) {\n return;\n }\n\n try {\n await sendReplayRequest(replayData);\n return true;\n } catch (err) {\n if (err instanceof TransportStatusCodeError || err instanceof RateLimitError) {\n throw err;\n }\n\n // Capture error for every failed replay\n setContext('Replays', {\n _retryCount: retryConfig.count,\n });\n\n if (onError) {\n onError(err);\n }\n\n // If an error happened here, it's likely that uploading the attachment\n // failed, we'll can retry with the same events payload\n if (retryConfig.count >= RETRY_MAX_COUNT) {\n const error = new Error(`${UNABLE_TO_SEND_REPLAY} - max retries exceeded`);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch (e) {\n // nothing to do\n }\n\n throw error;\n }\n\n // will retry in intervals of 5, 10, 30\n retryConfig.interval *= ++retryConfig.count;\n\n return new Promise((resolve, reject) => {\n setTimeout$3(async () => {\n try {\n await sendReplay(replayData, retryConfig);\n resolve(true);\n } catch (err) {\n reject(err);\n }\n }, retryConfig.interval);\n });\n }\n}\n\nconst THROTTLED = '__THROTTLED';\nconst SKIPPED = '__SKIPPED';\n\n/**\n * Create a throttled function off a given function.\n * When calling the throttled function, it will call the original function only\n * if it hasn't been called more than `maxCount` times in the last `durationSeconds`.\n *\n * Returns `THROTTLED` if throttled for the first time, after that `SKIPPED`,\n * or else the return value of the original function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction throttle(\n fn,\n maxCount,\n durationSeconds,\n) {\n const counter = new Map();\n\n const _cleanup = (now) => {\n const threshold = now - durationSeconds;\n counter.forEach((_value, key) => {\n if (key < threshold) {\n counter.delete(key);\n }\n });\n };\n\n const _getTotalCount = () => {\n return [...counter.values()].reduce((a, b) => a + b, 0);\n };\n\n let isThrottled = false;\n\n return (...rest) => {\n // Date in second-precision, which we use as basis for the throttling\n const now = Math.floor(Date.now() / 1000);\n\n // First, make sure to delete any old entries\n _cleanup(now);\n\n // If already over limit, do nothing\n if (_getTotalCount() >= maxCount) {\n const wasThrottled = isThrottled;\n isThrottled = true;\n return wasThrottled ? SKIPPED : THROTTLED;\n }\n\n isThrottled = false;\n const count = counter.get(now) || 0;\n counter.set(now, count + 1);\n\n return fn(...rest);\n };\n}\n\n/* eslint-disable max-lines */ // TODO: We might want to split this file up\n\n/**\n * The main replay container class, which holds all the state and methods for recording and sending replays.\n */\nclass ReplayContainer {\n\n /**\n * Recording can happen in one of three modes:\n * - session: Record the whole session, sending it continuously\n * - buffer: Always keep the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n\n /**\n * The current or last active span.\n * This is only available when performance is enabled.\n */\n\n /**\n * These are here so we can overwrite them in tests etc.\n * @hidden\n */\n\n /** The replay has to be manually started, because no sample rate (neither session or error) was provided. */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Timestamp of the last user activity. This lives across sessions.\n */\n\n /**\n * Is the integration currently active?\n */\n\n /**\n * Paused is a state where:\n * - DOM Recording is not listening at all\n * - Nothing will be added to event buffer (e.g. core SDK events)\n */\n\n /**\n * Have we attached listeners to the core SDK?\n * Note we have to track this as there is no way to remove instrumentation handlers.\n */\n\n /**\n * Function to stop recording\n */\n\n /**\n * Internal use for canvas recording options\n */\n\n constructor({\n options,\n recordingOptions,\n }\n\n) {ReplayContainer.prototype.__init.call(this);ReplayContainer.prototype.__init2.call(this);ReplayContainer.prototype.__init3.call(this);ReplayContainer.prototype.__init4.call(this);ReplayContainer.prototype.__init5.call(this);ReplayContainer.prototype.__init6.call(this);\n this.eventBuffer = null;\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n this.recordingMode = 'session';\n this.timeouts = {\n sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION,\n } ;\n this._lastActivity = Date.now();\n this._isEnabled = false;\n this._isPaused = false;\n this._requiresManualStart = false;\n this._hasInitializedCoreListeners = false;\n this._context = {\n errorIds: new Set(),\n traceIds: new Set(),\n urls: [],\n initialTimestamp: Date.now(),\n initialUrl: '',\n };\n\n this._recordingOptions = recordingOptions;\n this._options = options;\n\n this._debouncedFlush = debounce(() => this._flush(), this._options.flushMinDelay, {\n maxWait: this._options.flushMaxDelay,\n });\n\n this._throttledAddEvent = throttle(\n (event, isCheckout) => addEvent(this, event, isCheckout),\n // Max 300 events...\n 300,\n // ... per 5s\n 5,\n );\n\n const { slowClickTimeout, slowClickIgnoreSelectors } = this.getOptions();\n\n const slowClickConfig = slowClickTimeout\n ? {\n threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n timeout: slowClickTimeout,\n scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(',') : '',\n }\n : undefined;\n\n if (slowClickConfig) {\n this.clickDetector = new ClickDetector(this, slowClickConfig);\n }\n\n // Configure replay logger w/ experimental options\n if (DEBUG_BUILD) {\n const experiments = options._experiments;\n logger.setConfig({\n captureExceptions: !!experiments.captureExceptions,\n traceInternals: !!experiments.traceInternals,\n });\n }\n }\n\n /** Get the event context. */\n getContext() {\n return this._context;\n }\n\n /** If recording is currently enabled. */\n isEnabled() {\n return this._isEnabled;\n }\n\n /** If recording is currently paused. */\n isPaused() {\n return this._isPaused;\n }\n\n /**\n * Determine if canvas recording is enabled\n */\n isRecordingCanvas() {\n return Boolean(this._canvas);\n }\n\n /** Get the replay integration options. */\n getOptions() {\n return this._options;\n }\n\n /** A wrapper to conditionally capture exceptions. */\n handleException(error) {\n DEBUG_BUILD && logger.exception(error);\n if (this._options.onError) {\n this._options.onError(error);\n }\n }\n\n /**\n * Initializes the plugin based on sampling configuration. Should not be\n * called outside of constructor.\n */\n initializeSampling(previousSessionId) {\n const { errorSampleRate, sessionSampleRate } = this._options;\n\n // If neither sample rate is > 0, then do nothing - user will need to call one of\n // `start()` or `startBuffering` themselves.\n const requiresManualStart = errorSampleRate <= 0 && sessionSampleRate <= 0;\n\n this._requiresManualStart = requiresManualStart;\n\n if (requiresManualStart) {\n return;\n }\n\n // Otherwise if there is _any_ sample rate set, try to load an existing\n // session, or create a new one.\n this._initializeSessionForSampling(previousSessionId);\n\n if (!this.session) {\n // This should not happen, something wrong has occurred\n DEBUG_BUILD && logger.exception(new Error('Unable to initialize and create session'));\n return;\n }\n\n if (this.session.sampled === false) {\n // This should only occur if `errorSampleRate` is 0 and was unsampled for\n // session-based replay. In this case there is nothing to do.\n return;\n }\n\n // If segmentId > 0, it means we've previously already captured this session\n // In this case, we still want to continue in `session` recording mode\n this.recordingMode = this.session.sampled === 'buffer' && this.session.segmentId === 0 ? 'buffer' : 'session';\n\n DEBUG_BUILD && logger.infoTick(`Starting replay in ${this.recordingMode} mode`);\n\n this._initializeRecording();\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will log a message if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * _performanceObserver, Recording, Sentry SDK, etc)\n */\n start() {\n if (this._isEnabled && this.recordingMode === 'session') {\n DEBUG_BUILD && logger.info('Recording is already in progress');\n return;\n }\n\n if (this._isEnabled && this.recordingMode === 'buffer') {\n DEBUG_BUILD && logger.info('Buffering is in progress, call `flush()` to save the replay');\n return;\n }\n\n DEBUG_BUILD && logger.infoTick('Starting replay in session mode');\n\n // Required as user activity is initially set in\n // constructor, so if `start()` is called after\n // session idle expiration, a replay will not be\n // created due to an idle timeout.\n this._updateUserActivity();\n\n const session = loadOrCreateSession(\n {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n },\n {\n stickySession: this._options.stickySession,\n // This is intentional: create a new session-based replay when calling `start()`\n sessionSampleRate: 1,\n allowBuffering: false,\n },\n );\n\n this.session = session;\n\n this._initializeRecording();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, an error occurs.\n */\n startBuffering() {\n if (this._isEnabled) {\n DEBUG_BUILD && logger.info('Buffering is in progress, call `flush()` to save the replay');\n return;\n }\n\n DEBUG_BUILD && logger.infoTick('Starting replay in buffer mode');\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: 0,\n allowBuffering: true,\n },\n );\n\n this.session = session;\n\n this.recordingMode = 'buffer';\n this._initializeRecording();\n }\n\n /**\n * Start recording.\n *\n * Note that this will cause a new DOM checkout\n */\n startRecording() {\n try {\n const canvasOptions = this._canvas;\n\n this._stopRecording = record({\n ...this._recordingOptions,\n // When running in error sampling mode, we need to overwrite `checkoutEveryNms`\n // Without this, it would record forever, until an error happens, which we don't want\n // instead, we'll always keep the last 60 seconds of replay before an error happened\n ...(this.recordingMode === 'buffer'\n ? { checkoutEveryNms: BUFFER_CHECKOUT_TIME }\n : // Otherwise, use experimental option w/ min checkout time of 6 minutes\n // This is to improve playback seeking as there could potentially be\n // less mutations to process in the worse cases.\n //\n // checkout by \"N\" events is probably ideal, but means we have less\n // control about the number of checkouts we make (which generally\n // increases replay size)\n this._options._experiments.continuousCheckout && {\n // Minimum checkout time is 6 minutes\n checkoutEveryNms: Math.max(360000, this._options._experiments.continuousCheckout),\n }),\n emit: getHandleRecordingEmit(this),\n onMutation: this._onMutationHandler,\n ...(canvasOptions\n ? {\n recordCanvas: canvasOptions.recordCanvas,\n getCanvasManager: canvasOptions.getCanvasManager,\n sampling: canvasOptions.sampling,\n dataURLOptions: canvasOptions.dataURLOptions,\n }\n : {}),\n });\n } catch (err) {\n this.handleException(err);\n }\n }\n\n /**\n * Stops the recording, if it was running.\n *\n * Returns true if it was previously stopped, or is now stopped,\n * otherwise false.\n */\n stopRecording() {\n try {\n if (this._stopRecording) {\n this._stopRecording();\n this._stopRecording = undefined;\n }\n\n return true;\n } catch (err) {\n this.handleException(err);\n return false;\n }\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n async stop({ forceFlush = false, reason } = {}) {\n if (!this._isEnabled) {\n return;\n }\n\n // We can't move `_isEnabled` after awaiting a flush, otherwise we can\n // enter into an infinite loop when `stop()` is called while flushing.\n this._isEnabled = false;\n\n try {\n DEBUG_BUILD && logger.info(`Stopping Replay${reason ? ` triggered by ${reason}` : ''}`);\n\n this._removeListeners();\n this.stopRecording();\n\n this._debouncedFlush.cancel();\n // See comment above re: `_isEnabled`, we \"force\" a flush, ignoring the\n // `_isEnabled` state of the plugin since it was disabled above.\n if (forceFlush) {\n await this._flush({ force: true });\n }\n\n // After flush, destroy event buffer\n this.eventBuffer && this.eventBuffer.destroy();\n this.eventBuffer = null;\n\n // Clear session from session storage, note this means if a new session\n // is started after, it will not have `previousSessionId`\n clearSession(this);\n } catch (err) {\n this.handleException(err);\n }\n }\n\n /**\n * Pause some replay functionality. See comments for `_isPaused`.\n * This differs from stop as this only stops DOM recording, it is\n * not as thorough of a shutdown as `stop()`.\n */\n pause() {\n if (this._isPaused) {\n return;\n }\n\n this._isPaused = true;\n this.stopRecording();\n\n DEBUG_BUILD && logger.info('Pausing replay');\n }\n\n /**\n * Resumes recording, see notes for `pause().\n *\n * Note that calling `startRecording()` here will cause a\n * new DOM checkout.`\n */\n resume() {\n if (!this._isPaused || !this._checkSession()) {\n return;\n }\n\n this._isPaused = false;\n this.startRecording();\n\n DEBUG_BUILD && logger.info('Resuming replay');\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n async sendBufferedReplayOrFlush({ continueRecording = true } = {}) {\n if (this.recordingMode === 'session') {\n return this.flushImmediate();\n }\n\n const activityTime = Date.now();\n\n DEBUG_BUILD && logger.info('Converting buffer to session');\n\n // Allow flush to complete before resuming as a session recording, otherwise\n // the checkout from `startRecording` may be included in the payload.\n // Prefer to keep the error replay as a separate (and smaller) segment\n // than the session replay.\n await this.flushImmediate();\n\n const hasStoppedRecording = this.stopRecording();\n\n if (!continueRecording || !hasStoppedRecording) {\n return;\n }\n\n // To avoid race conditions where this is called multiple times, we check here again that we are still buffering\n if ((this.recordingMode ) === 'session') {\n return;\n }\n\n // Re-start recording in session-mode\n this.recordingMode = 'session';\n\n // Once this session ends, we do not want to refresh it\n if (this.session) {\n this._updateUserActivity(activityTime);\n this._updateSessionActivity(activityTime);\n this._maybeSaveSession();\n }\n\n this.startRecording();\n }\n\n /**\n * We want to batch uploads of replay events. Save events only if\n * `` milliseconds have elapsed since the last event\n * *OR* if `` milliseconds have elapsed.\n *\n * Accepts a callback to perform side-effects and returns true to stop batch\n * processing and hand back control to caller.\n */\n addUpdate(cb) {\n // We need to always run `cb` (e.g. in the case of `this.recordingMode == 'buffer'`)\n const cbResult = cb();\n\n // If this option is turned on then we will only want to call `flush`\n // explicitly\n if (this.recordingMode === 'buffer') {\n return;\n }\n\n // If callback is true, we do not want to continue with flushing -- the\n // caller will need to handle it.\n if (cbResult === true) {\n return;\n }\n\n // addUpdate is called quite frequently - use _debouncedFlush so that it\n // respects the flush delays and does not flush immediately\n this._debouncedFlush();\n }\n\n /**\n * Updates the user activity timestamp and resumes recording. This should be\n * called in an event handler for a user action that we consider as the user\n * being \"active\" (e.g. a mouse click).\n */\n triggerUserActivity() {\n this._updateUserActivity();\n\n // This case means that recording was once stopped due to inactivity.\n // Ensure that recording is resumed.\n if (!this._stopRecording) {\n // Create a new session, otherwise when the user action is flushed, it\n // will get rejected due to an expired session.\n if (!this._checkSession()) {\n return;\n }\n\n // Note: This will cause a new DOM checkout\n this.resume();\n return;\n }\n\n // Otherwise... recording was never suspended, continue as normalish\n this.checkAndHandleExpiredSession();\n\n this._updateSessionActivity();\n }\n\n /**\n * Updates the user activity timestamp *without* resuming\n * recording. Some user events (e.g. keydown) can be create\n * low-value replays that only contain the keypress as a\n * breadcrumb. Instead this would require other events to\n * create a new replay after a session has expired.\n */\n updateUserActivity() {\n this._updateUserActivity();\n this._updateSessionActivity();\n }\n\n /**\n * Only flush if `this.recordingMode === 'session'`\n */\n conditionalFlush() {\n if (this.recordingMode === 'buffer') {\n return Promise.resolve();\n }\n\n return this.flushImmediate();\n }\n\n /**\n * Flush using debounce flush\n */\n flush() {\n return this._debouncedFlush() ;\n }\n\n /**\n * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n * cases of mulitple flushes happening closely together.\n */\n flushImmediate() {\n this._debouncedFlush();\n // `.flush` is provided by the debounced function, analogously to lodash.debounce\n return this._debouncedFlush.flush() ;\n }\n\n /**\n * Cancels queued up flushes.\n */\n cancelFlush() {\n this._debouncedFlush.cancel();\n }\n\n /** Get the current sesion (=replay) ID */\n getSessionId() {\n return this.session && this.session.id;\n }\n\n /**\n * Checks if recording should be stopped due to user inactivity. Otherwise\n * check if session is expired and create a new session if so. Triggers a new\n * full snapshot on new session.\n *\n * Returns true if session is not expired, false otherwise.\n * @hidden\n */\n checkAndHandleExpiredSession() {\n // Prevent starting a new session if the last user activity is older than\n // SESSION_IDLE_PAUSE_DURATION. Otherwise non-user activity can trigger a new\n // session+recording. This creates noisy replays that do not have much\n // content in them.\n if (\n this._lastActivity &&\n isExpired(this._lastActivity, this.timeouts.sessionIdlePause) &&\n this.session &&\n this.session.sampled === 'session'\n ) {\n // Pause recording only for session-based replays. Otherwise, resuming\n // will create a new replay and will conflict with users who only choose\n // to record error-based replays only. (e.g. the resumed replay will not\n // contain a reference to an error)\n this.pause();\n return;\n }\n\n // --- There is recent user activity --- //\n // This will create a new session if expired, based on expiry length\n if (!this._checkSession()) {\n // Check session handles the refreshing itself\n return false;\n }\n\n return true;\n }\n\n /**\n * Capture some initial state that can change throughout the lifespan of the\n * replay. This is required because otherwise they would be captured at the\n * first flush.\n */\n setInitialState() {\n const urlPath = `${WINDOW.location.pathname}${WINDOW.location.hash}${WINDOW.location.search}`;\n const url = `${WINDOW.location.origin}${urlPath}`;\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n // Reset _context as well\n this._clearContext();\n\n this._context.initialUrl = url;\n this._context.initialTimestamp = Date.now();\n this._context.urls.push(url);\n }\n\n /**\n * Add a breadcrumb event, that may be throttled.\n * If it was throttled, we add a custom breadcrumb to indicate that.\n */\n throttledAddEvent(\n event,\n isCheckout,\n ) {\n const res = this._throttledAddEvent(event, isCheckout);\n\n // If this is THROTTLED, it means we have throttled the event for the first time\n // In this case, we want to add a breadcrumb indicating that something was skipped\n if (res === THROTTLED) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.throttled',\n });\n\n this.addUpdate(() => {\n // Return `false` if the event _was_ added, as that means we schedule a flush\n return !addEventSync(this, {\n type: ReplayEventTypeCustom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n metric: true,\n },\n });\n });\n }\n\n return res;\n }\n\n /**\n * This will get the parametrized route name of the current page.\n * This is only available if performance is enabled, and if an instrumented router is used.\n */\n getCurrentRoute() {\n const lastActiveSpan = this.lastActiveSpan || getActiveSpan();\n const lastRootSpan = lastActiveSpan && getRootSpan(lastActiveSpan);\n\n const attributes = (lastRootSpan && spanToJSON(lastRootSpan).data) || {};\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n if (!lastRootSpan || !source || !['route', 'custom'].includes(source)) {\n return undefined;\n }\n\n return spanToJSON(lastRootSpan).description;\n }\n\n /**\n * Initialize and start all listeners to varying events (DOM,\n * Performance Observer, Recording, Sentry SDK, etc)\n */\n _initializeRecording() {\n this.setInitialState();\n\n // this method is generally called on page load or manually - in both cases\n // we should treat it as an activity\n this._updateSessionActivity();\n\n this.eventBuffer = createEventBuffer({\n useCompression: this._options.useCompression,\n workerUrl: this._options.workerUrl,\n });\n\n this._removeListeners();\n this._addListeners();\n\n // Need to set as enabled before we start recording, as `record()` can trigger a flush with a new checkout\n this._isEnabled = true;\n this._isPaused = false;\n\n this.startRecording();\n }\n\n /**\n * Loads (or refreshes) the current session.\n */\n _initializeSessionForSampling(previousSessionId) {\n // Whenever there is _any_ error sample rate, we always allow buffering\n // Because we decide on sampling when an error occurs, we need to buffer at all times if sampling for errors\n const allowBuffering = this._options.errorSampleRate > 0;\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n previousSessionId,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: this._options.sessionSampleRate,\n allowBuffering,\n },\n );\n\n this.session = session;\n }\n\n /**\n * Checks and potentially refreshes the current session.\n * Returns false if session is not recorded.\n */\n _checkSession() {\n // If there is no session yet, we do not want to refresh anything\n // This should generally not happen, but to be safe....\n if (!this.session) {\n return false;\n }\n\n const currentSession = this.session;\n\n if (\n shouldRefreshSession(currentSession, {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n })\n ) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._refreshSession(currentSession);\n return false;\n }\n\n return true;\n }\n\n /**\n * Refresh a session with a new one.\n * This stops the current session (without forcing a flush, as that would never work since we are expired),\n * and then does a new sampling based on the refreshed session.\n */\n async _refreshSession(session) {\n if (!this._isEnabled) {\n return;\n }\n await this.stop({ reason: 'refresh session' });\n this.initializeSampling(session.id);\n }\n\n /**\n * Adds listeners to record events for the replay\n */\n _addListeners() {\n try {\n WINDOW.document.addEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.addEventListener('blur', this._handleWindowBlur);\n WINDOW.addEventListener('focus', this._handleWindowFocus);\n WINDOW.addEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.addListeners();\n }\n\n // There is no way to remove these listeners, so ensure they are only added once\n if (!this._hasInitializedCoreListeners) {\n addGlobalListeners(this);\n\n this._hasInitializedCoreListeners = true;\n }\n } catch (err) {\n this.handleException(err);\n }\n\n this._performanceCleanupCallback = setupPerformanceObserver(this);\n }\n\n /**\n * Cleans up listeners that were created in `_addListeners`\n */\n _removeListeners() {\n try {\n WINDOW.document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n\n WINDOW.removeEventListener('blur', this._handleWindowBlur);\n WINDOW.removeEventListener('focus', this._handleWindowFocus);\n WINDOW.removeEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.removeListeners();\n }\n\n if (this._performanceCleanupCallback) {\n this._performanceCleanupCallback();\n }\n } catch (err) {\n this.handleException(err);\n }\n }\n\n /**\n * Handle when visibility of the page content changes. Opening a new tab will\n * cause the state to change to hidden because of content of current page will\n * be hidden. Likewise, moving a different window to cover the contents of the\n * page will also trigger a change to a hidden state.\n */\n __init() {this._handleVisibilityChange = () => {\n if (WINDOW.document.visibilityState === 'visible') {\n this._doChangeToForegroundTasks();\n } else {\n this._doChangeToBackgroundTasks();\n }\n };}\n\n /**\n * Handle when page is blurred\n */\n __init2() {this._handleWindowBlur = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.blur',\n });\n\n // Do not count blur as a user action -- it's part of the process of them\n // leaving the page\n this._doChangeToBackgroundTasks(breadcrumb);\n };}\n\n /**\n * Handle when page is focused\n */\n __init3() {this._handleWindowFocus = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.focus',\n });\n\n // Do not count focus as a user action -- instead wait until they focus and\n // interactive with page\n this._doChangeToForegroundTasks(breadcrumb);\n };}\n\n /** Ensure page remains active when a key is pressed. */\n __init4() {this._handleKeyboardEvent = (event) => {\n handleKeyboardEvent(this, event);\n };}\n\n /**\n * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n */\n _doChangeToBackgroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n const expired = isSessionExpired(this.session, {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n });\n\n if (expired) {\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Send replay when the page/tab becomes hidden. There is no reason to send\n // replay if it becomes visible, since no actions we care about were done\n // while it was hidden\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void this.conditionalFlush();\n }\n\n /**\n * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n */\n _doChangeToForegroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n const isSessionActive = this.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n // If the user has come back to the page within SESSION_IDLE_PAUSE_DURATION\n // ms, we will re-use the existing session, otherwise create a new\n // session\n DEBUG_BUILD && logger.info('Document has become active, but session has expired');\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n }\n\n /**\n * Update user activity (across session lifespans)\n */\n _updateUserActivity(_lastActivity = Date.now()) {\n this._lastActivity = _lastActivity;\n }\n\n /**\n * Updates the session's last activity timestamp\n */\n _updateSessionActivity(_lastActivity = Date.now()) {\n if (this.session) {\n this.session.lastActivity = _lastActivity;\n this._maybeSaveSession();\n }\n }\n\n /**\n * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n */\n _createCustomBreadcrumb(breadcrumb) {\n this.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.throttledAddEvent({\n type: EventType.Custom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n },\n });\n });\n }\n\n /**\n * Observed performance events are added to `this.performanceEntries`. These\n * are included in the replay event before it is finished and sent to Sentry.\n */\n _addPerformanceEntries() {\n const performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n return Promise.all(createPerformanceSpans(this, performanceEntries));\n }\n\n /**\n * Clear _context\n */\n _clearContext() {\n // XXX: `initialTimestamp` and `initialUrl` do not get cleared\n this._context.errorIds.clear();\n this._context.traceIds.clear();\n this._context.urls = [];\n }\n\n /** Update the initial timestamp based on the buffer content. */\n _updateInitialTimestampFromEventBuffer() {\n const { session, eventBuffer } = this;\n // If replay was started manually (=no sample rate was given),\n // We do not want to back-port the initial timestamp\n if (!session || !eventBuffer || this._requiresManualStart) {\n return;\n }\n\n // we only ever update this on the initial segment\n if (session.segmentId) {\n return;\n }\n\n const earliestEvent = eventBuffer.getEarliestTimestamp();\n if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n this._context.initialTimestamp = earliestEvent;\n }\n }\n\n /**\n * Return and clear _context\n */\n _popEventContext() {\n const _context = {\n initialTimestamp: this._context.initialTimestamp,\n initialUrl: this._context.initialUrl,\n errorIds: Array.from(this._context.errorIds),\n traceIds: Array.from(this._context.traceIds),\n urls: this._context.urls,\n };\n\n this._clearContext();\n\n return _context;\n }\n\n /**\n * Flushes replay event buffer to Sentry.\n *\n * Performance events are only added right before flushing - this is\n * due to the buffered performance observer events.\n *\n * Should never be called directly, only by `flush`\n */\n async _runFlush() {\n const replayId = this.getSessionId();\n\n if (!this.session || !this.eventBuffer || !replayId) {\n DEBUG_BUILD && logger.error('No session or eventBuffer found to flush.');\n return;\n }\n\n await this._addPerformanceEntries();\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer || !this.eventBuffer.hasEvents) {\n return;\n }\n\n // Only attach memory event if eventBuffer is not empty\n await addMemoryEntry(this);\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer) {\n return;\n }\n\n // if this changed in the meanwhile, e.g. because the session was refreshed or similar, we abort here\n if (replayId !== this.getSessionId()) {\n return;\n }\n\n try {\n // This uses the data from the eventBuffer, so we need to call this before `finish()\n this._updateInitialTimestampFromEventBuffer();\n\n const timestamp = Date.now();\n\n // Check total duration again, to avoid sending outdated stuff\n // We leave 30s wiggle room to accomodate late flushing etc.\n // This _could_ happen when the browser is suspended during flushing, in which case we just want to stop\n if (timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 30000) {\n throw new Error('Session is too long, not sending replay');\n }\n\n const eventContext = this._popEventContext();\n // Always increment segmentId regardless of outcome of sending replay\n const segmentId = this.session.segmentId++;\n this._maybeSaveSession();\n\n // Note this empties the event buffer regardless of outcome of sending replay\n const recordingData = await this.eventBuffer.finish();\n\n await sendReplay({\n replayId,\n recordingData,\n segmentId,\n eventContext,\n session: this.session,\n timestamp,\n onError: err => this.handleException(err),\n });\n } catch (err) {\n this.handleException(err);\n\n // This means we retried 3 times and all of them failed,\n // or we ran into a problem we don't want to retry, like rate limiting.\n // In this case, we want to completely stop the replay - otherwise, we may get inconsistent segments\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'sendReplay' });\n\n const client = getClient();\n\n if (client) {\n const dropReason = err instanceof RateLimitError ? 'ratelimit_backoff' : 'send_error';\n client.recordDroppedEvent(dropReason, 'replay');\n }\n }\n }\n\n /**\n * Flush recording data to Sentry. Creates a lock so that only a single flush\n * can be active at a time. Do not call this directly.\n */\n __init5() {this._flush = async ({\n force = false,\n }\n\n = {}) => {\n if (!this._isEnabled && !force) {\n // This can happen if e.g. the replay was stopped because of exceeding the retry limit\n return;\n }\n\n if (!this.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.error('Attempting to finish replay event after session expired.');\n return;\n }\n\n if (!this.session) {\n // should never happen, as we would have bailed out before\n return;\n }\n\n const start = this.session.started;\n const now = Date.now();\n const duration = now - start;\n\n // A flush is about to happen, cancel any queued flushes\n this._debouncedFlush.cancel();\n\n // If session is too short, or too long (allow some wiggle room over maxReplayDuration), do not send it\n // This _should_ not happen, but it may happen if flush is triggered due to a page activity change or similar\n const tooShort = duration < this._options.minReplayDuration;\n const tooLong = duration > this._options.maxReplayDuration + 5000;\n if (tooShort || tooLong) {\n DEBUG_BUILD &&\n logger.info(\n `Session duration (${Math.floor(duration / 1000)}s) is too ${\n tooShort ? 'short' : 'long'\n }, not sending replay.`,\n );\n\n if (tooShort) {\n this._debouncedFlush();\n }\n return;\n }\n\n const eventBuffer = this.eventBuffer;\n if (eventBuffer && this.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n DEBUG_BUILD && logger.info('Flushing initial segment without checkout.');\n // TODO FN: Evaluate if we want to stop here, or remove this again?\n }\n\n const _flushInProgress = !!this._flushLock;\n\n // this._flushLock acts as a lock so that future calls to `_flush()` will\n // be blocked until current flush is finished (i.e. this promise resolves)\n if (!this._flushLock) {\n this._flushLock = this._runFlush();\n }\n\n try {\n await this._flushLock;\n } catch (err) {\n this.handleException(err);\n } finally {\n this._flushLock = undefined;\n\n if (_flushInProgress) {\n // Wait for previous flush to finish, then call the debounced\n // `_flush()`. It's possible there are other flush requests queued and\n // waiting for it to resolve. We want to reduce all outstanding\n // requests (as well as any new flush requests that occur within a\n // second of the locked flush completing) into a single flush.\n this._debouncedFlush();\n }\n }\n };}\n\n /** Save the session, if it is sticky */\n _maybeSaveSession() {\n if (this.session && this._options.stickySession) {\n saveSession(this.session);\n }\n }\n\n /** Handler for rrweb.record.onMutation */\n __init6() {this._onMutationHandler = (mutations) => {\n const count = mutations.length;\n\n const mutationLimit = this._options.mutationLimit;\n const mutationBreadcrumbLimit = this._options.mutationBreadcrumbLimit;\n const overMutationLimit = mutationLimit && count > mutationLimit;\n\n // Create a breadcrumb if a lot of mutations happen at the same time\n // We can show this in the UI as an information with potential performance improvements\n if (count > mutationBreadcrumbLimit || overMutationLimit) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.mutations',\n data: {\n count,\n limit: overMutationLimit,\n },\n });\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Stop replay if over the mutation limit\n if (overMutationLimit) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'mutationLimit', forceFlush: this.recordingMode === 'session' });\n return false;\n }\n\n // `true` means we use the regular mutation handling by rrweb\n return true;\n };}\n}\n\nfunction getOption(selectors, defaultSelectors) {\n return [\n ...selectors,\n // sentry defaults\n ...defaultSelectors,\n ].join(',');\n}\n\n/**\n * Returns privacy related configuration for use in rrweb\n */\nfunction getPrivacyOptions({ mask, unmask, block, unblock, ignore }) {\n const defaultBlockedElements = ['base[href=\"/\"]'];\n\n const maskSelector = getOption(mask, ['.sentry-mask', '[data-sentry-mask]']);\n const unmaskSelector = getOption(unmask, []);\n\n const options = {\n // We are making the decision to make text and input selectors the same\n maskTextSelector: maskSelector,\n unmaskTextSelector: unmaskSelector,\n\n blockSelector: getOption(block, ['.sentry-block', '[data-sentry-block]', ...defaultBlockedElements]),\n unblockSelector: getOption(unblock, []),\n ignoreSelector: getOption(ignore, ['.sentry-ignore', '[data-sentry-ignore]', 'input[type=\"file\"]']),\n };\n\n return options;\n}\n\n/**\n * Masks an attribute if necessary, otherwise return attribute value as-is.\n */\nfunction maskAttribute({\n el,\n key,\n maskAttributes,\n maskAllText,\n privacyOptions,\n value,\n}) {\n // We only mask attributes if `maskAllText` is true\n if (!maskAllText) {\n return value;\n }\n\n // unmaskTextSelector takes precendence\n if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n return value;\n }\n\n if (\n maskAttributes.includes(key) ||\n // Need to mask `value` attribute for `` if it's a button-like\n // type\n (key === 'value' && el.tagName === 'INPUT' && ['submit', 'button'].includes(el.getAttribute('type') || ''))\n ) {\n return value.replace(/[\\S]/g, '*');\n }\n\n return value;\n}\n\nconst MEDIA_SELECTORS =\n 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\n\nconst DEFAULT_NETWORK_HEADERS = ['content-length', 'content-type', 'accept'];\n\nlet _initialized = false;\n\n/**\n * Sentry integration for [Session Replay](https://sentry.io/for/session-replay/).\n *\n * See the [Replay documentation](https://docs.sentry.io/platforms/javascript/guides/session-replay/) for more information.\n *\n * @example\n *\n * ```\n * Sentry.init({\n * dsn: '__DSN__',\n * integrations: [Sentry.replayIntegration()],\n * });\n * ```\n */\nconst replayIntegration = ((options) => {\n return new Replay(options);\n}) ;\n\n/**\n * Replay integration\n *\n * TODO: Rewrite this to be functional integration\n * Exported for tests.\n */\nclass Replay {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Replay';}\n\n /**\n * @inheritDoc\n */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Initial options passed to the replay integration, merged with default values.\n * Note: `sessionSampleRate` and `errorSampleRate` are not required here, as they\n * can only be finally set when setupOnce() is called.\n *\n * @private\n */\n\n constructor({\n flushMinDelay = DEFAULT_FLUSH_MIN_DELAY,\n flushMaxDelay = DEFAULT_FLUSH_MAX_DELAY,\n minReplayDuration = MIN_REPLAY_DURATION,\n maxReplayDuration = MAX_REPLAY_DURATION,\n stickySession = true,\n useCompression = true,\n workerUrl,\n _experiments = {},\n maskAllText = true,\n maskAllInputs = true,\n blockAllMedia = true,\n\n mutationBreadcrumbLimit = 750,\n mutationLimit = 10000,\n\n slowClickTimeout = 7000,\n slowClickIgnoreSelectors = [],\n\n networkDetailAllowUrls = [],\n networkDetailDenyUrls = [],\n networkCaptureBodies = true,\n networkRequestHeaders = [],\n networkResponseHeaders = [],\n\n mask = [],\n maskAttributes = ['title', 'placeholder'],\n unmask = [],\n block = [],\n unblock = [],\n ignore = [],\n maskFn,\n\n beforeAddRecordingEvent,\n beforeErrorSampling,\n } = {}) {\n this.name = Replay.id;\n\n const privacyOptions = getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n });\n\n this._recordingOptions = {\n maskAllInputs,\n maskAllText,\n maskInputOptions: { password: true },\n maskTextFn: maskFn,\n maskInputFn: maskFn,\n maskAttributeFn: (key, value, el) =>\n maskAttribute({\n maskAttributes,\n maskAllText,\n privacyOptions,\n key,\n value,\n el,\n }),\n\n ...privacyOptions,\n\n // Our defaults\n slimDOMOptions: 'all',\n inlineStylesheet: true,\n // Disable inline images as it will increase segment/replay size\n inlineImages: false,\n // collect fonts, but be aware that `sentry.io` needs to be an allowed\n // origin for playback\n collectFonts: true,\n errorHandler: (err) => {\n try {\n err.__rrweb__ = true;\n } catch (error) {\n // ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n },\n };\n\n this._initialOptions = {\n flushMinDelay,\n flushMaxDelay,\n minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n stickySession,\n useCompression,\n workerUrl,\n blockAllMedia,\n maskAllInputs,\n maskAllText,\n mutationBreadcrumbLimit,\n mutationLimit,\n slowClickTimeout,\n slowClickIgnoreSelectors,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n _experiments,\n };\n\n if (this._initialOptions.blockAllMedia) {\n // `blockAllMedia` is a more user friendly option to configure blocking\n // embedded media elements\n this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector\n ? MEDIA_SELECTORS\n : `${this._recordingOptions.blockSelector},${MEDIA_SELECTORS}`;\n }\n\n if (this._isInitialized && isBrowser()) {\n throw new Error('Multiple Sentry Session Replay instances are not supported');\n }\n\n this._isInitialized = true;\n }\n\n /** If replay has already been initialized */\n get _isInitialized() {\n return _initialized;\n }\n\n /** Update _isInitialized */\n set _isInitialized(value) {\n _initialized = value;\n }\n\n /**\n * Setup and initialize replay container\n */\n afterAllSetup(client) {\n if (!isBrowser() || this._replay) {\n return;\n }\n\n this._setup(client);\n this._initialize(client);\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will log a message if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * PerformanceObserver, Recording, Sentry SDK, etc)\n */\n start() {\n if (!this._replay) {\n return;\n }\n this._replay.start();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, until an error occurs.\n */\n startBuffering() {\n if (!this._replay) {\n return;\n }\n\n this._replay.startBuffering();\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n stop() {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n return this._replay.stop({ forceFlush: this._replay.recordingMode === 'session' });\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * If replay is not enabled, a new session replay is started.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n flush(options) {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n // assuming a session should be recorded in this case\n if (!this._replay.isEnabled()) {\n this._replay.start();\n return Promise.resolve();\n }\n\n return this._replay.sendBufferedReplayOrFlush(options);\n }\n\n /**\n * Get the current session ID.\n */\n getReplayId() {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.getSessionId();\n }\n\n /**\n * Initializes replay.\n */\n _initialize(client) {\n if (!this._replay) {\n return;\n }\n\n this._maybeLoadFromReplayCanvasIntegration(client);\n this._replay.initializeSampling();\n }\n\n /** Setup the integration. */\n _setup(client) {\n // Client is not available in constructor, so we need to wait until setupOnce\n const finalOptions = loadReplayOptionsFromClient(this._initialOptions, client);\n\n this._replay = new ReplayContainer({\n options: finalOptions,\n recordingOptions: this._recordingOptions,\n });\n }\n\n /** Get canvas options from ReplayCanvas integration, if it is also added. */\n _maybeLoadFromReplayCanvasIntegration(client) {\n // To save bundle size, we skip checking for stuff here\n // and instead just try-catch everything - as generally this should all be defined\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n try {\n const canvasIntegration = client.getIntegrationByName('ReplayCanvas')\n\n;\n if (!canvasIntegration) {\n return;\n }\n\n this._replay['_canvas'] = canvasIntegration.getOptions();\n } catch (e) {\n // ignore errors here\n }\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n }\n}Replay.__initStatic();\n\n/** Parse Replay-related options from SDK options */\nfunction loadReplayOptionsFromClient(initialOptions, client) {\n const opt = client.getOptions() ;\n\n const finalOptions = {\n sessionSampleRate: 0,\n errorSampleRate: 0,\n ...dropUndefinedKeys(initialOptions),\n };\n\n const replaysSessionSampleRate = parseSampleRate(opt.replaysSessionSampleRate);\n const replaysOnErrorSampleRate = parseSampleRate(opt.replaysOnErrorSampleRate);\n\n if (replaysSessionSampleRate == null && replaysOnErrorSampleRate == null) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',\n );\n });\n }\n\n if (replaysSessionSampleRate != null) {\n finalOptions.sessionSampleRate = replaysSessionSampleRate;\n }\n\n if (replaysOnErrorSampleRate != null) {\n finalOptions.errorSampleRate = replaysOnErrorSampleRate;\n }\n\n return finalOptions;\n}\n\nfunction _getMergedNetworkHeaders(headers) {\n return [...DEFAULT_NETWORK_HEADERS, ...headers.map(header => header.toLowerCase())];\n}\n\n/**\n * This is a small utility to get a type-safe instance of the Replay integration.\n */\nfunction getReplay() {\n const client = getClient();\n return client && client.getIntegrationByName('Replay');\n}\n\nexport { getReplay, replayIntegration };\n//# sourceMappingURL=index.js.map\n","import { addXhrInstrumentationHandler, addPerformanceInstrumentationHandler, SENTRY_XHR_DATA_KEY } from '@sentry-internal/browser-utils';\nimport { instrumentFetchRequest, spanToJSON, hasTracingEnabled, setHttpStatus, getActiveSpan, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SentryNonRecordingSpan, getClient, getCurrentScope, getIsolationScope, spanToTraceHeader, getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromClient } from '@sentry/core';\nimport { addFetchEndInstrumentationHandler, addFetchInstrumentationHandler, parseUrl, browserPerformanceTimeOrigin, generateSentryTraceHeader, dynamicSamplingContextToSentryBaggageHeader, BAGGAGE_HEADER_NAME, stringMatchesSomePattern } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\n\n/** Options for Request Instrumentation */\n\nconst responseToSpanId = new WeakMap();\nconst spanIdToEndTimestamp = new Map();\n\nconst defaultRequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n enableHTTPTimings: true,\n};\n\n/** Registers span creators for xhr and fetch requests */\nfunction instrumentOutgoingRequests(client, _options) {\n const { traceFetch, traceXHR, shouldCreateSpanForRequest, enableHTTPTimings, tracePropagationTargets } = {\n traceFetch: defaultRequestInstrumentationOptions.traceFetch,\n traceXHR: defaultRequestInstrumentationOptions.traceXHR,\n ..._options,\n };\n\n const shouldCreateSpan =\n typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : (_) => true;\n\n const shouldAttachHeadersWithTargets = (url) => shouldAttachHeaders(url, tracePropagationTargets);\n\n const spans = {};\n\n if (traceFetch) {\n // Keeping track of http requests, whose body payloads resolved later than the intial resolved request\n // e.g. streaming using server sent events (SSE)\n client.addEventProcessor(event => {\n if (event.type === 'transaction' && event.spans) {\n event.spans.forEach(span => {\n if (span.op === 'http.client') {\n const updatedTimestamp = spanIdToEndTimestamp.get(span.span_id);\n if (updatedTimestamp) {\n span.timestamp = updatedTimestamp / 1000;\n spanIdToEndTimestamp.delete(span.span_id);\n }\n }\n });\n }\n return event;\n });\n\n addFetchEndInstrumentationHandler(handlerData => {\n if (handlerData.response) {\n const span = responseToSpanId.get(handlerData.response);\n if (span && handlerData.endTimestamp) {\n spanIdToEndTimestamp.set(span, handlerData.endTimestamp);\n }\n }\n });\n\n addFetchInstrumentationHandler(handlerData => {\n const createdSpan = instrumentFetchRequest(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n\n if (handlerData.response && handlerData.fetchData.__span) {\n responseToSpanId.set(handlerData.response, handlerData.fetchData.__span);\n }\n\n // We cannot use `window.location` in the generic fetch instrumentation,\n // but we need it for reliable `server.address` attribute.\n // so we extend this in here\n if (createdSpan) {\n const fullUrl = getFullURL(handlerData.fetchData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n createdSpan.setAttributes({\n 'http.url': fullUrl,\n 'server.address': host,\n });\n }\n\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n\n if (traceXHR) {\n addXhrInstrumentationHandler(handlerData => {\n const createdSpan = xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n}\n\nfunction isPerformanceResourceTiming(entry) {\n return (\n entry.entryType === 'resource' &&\n 'initiatorType' in entry &&\n typeof (entry ).nextHopProtocol === 'string' &&\n (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest')\n );\n}\n\n/**\n * Creates a temporary observer to listen to the next fetch/xhr resourcing timings,\n * so that when timings hit their per-browser limit they don't need to be removed.\n *\n * @param span A span that has yet to be finished, must contain `url` on data.\n */\nfunction addHTTPTimings(span) {\n const { url } = spanToJSON(span).data || {};\n\n if (!url || typeof url !== 'string') {\n return;\n }\n\n const cleanup = addPerformanceInstrumentationHandler('resource', ({ entries }) => {\n entries.forEach(entry => {\n if (isPerformanceResourceTiming(entry) && entry.name.endsWith(url)) {\n const spanData = resourceTimingEntryToSpanData(entry);\n spanData.forEach(data => span.setAttribute(...data));\n // In the next tick, clean this handler up\n // We have to wait here because otherwise this cleans itself up before it is fully done\n setTimeout(cleanup);\n }\n });\n });\n}\n\n/**\n * Converts ALPN protocol ids to name and version.\n *\n * (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)\n * @param nextHopProtocol PerformanceResourceTiming.nextHopProtocol\n */\nfunction extractNetworkProtocol(nextHopProtocol) {\n let name = 'unknown';\n let version = 'unknown';\n let _name = '';\n for (const char of nextHopProtocol) {\n // http/1.1 etc.\n if (char === '/') {\n [name, version] = nextHopProtocol.split('/') ;\n break;\n }\n // h2, h3 etc.\n if (!isNaN(Number(char))) {\n name = _name === 'h' ? 'http' : _name;\n version = nextHopProtocol.split(_name)[1] ;\n break;\n }\n _name += char;\n }\n if (_name === nextHopProtocol) {\n // webrtc, ftp, etc.\n name = _name;\n }\n return { name, version };\n}\n\nfunction getAbsoluteTime(time = 0) {\n return ((browserPerformanceTimeOrigin || performance.timeOrigin) + time) / 1000;\n}\n\nfunction resourceTimingEntryToSpanData(resourceTiming) {\n const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n\n const timingSpanData = [];\n\n timingSpanData.push(['network.protocol.version', version], ['network.protocol.name', name]);\n\n if (!browserPerformanceTimeOrigin) {\n return timingSpanData;\n }\n return [\n ...timingSpanData,\n ['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)],\n ['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)],\n ['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)],\n ['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)],\n ['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)],\n ['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)],\n ['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)],\n ['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)],\n ['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)],\n ['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)],\n ];\n}\n\n/**\n * A function that determines whether to attach tracing headers to a request.\n * We only export this function for testing purposes.\n */\nfunction shouldAttachHeaders(\n targetUrl,\n tracePropagationTargets,\n) {\n // window.location.href not being defined is an edge case in the browser but we need to handle it.\n // Potentially dangerous situations where it may not be defined: Browser Extensions, Web Workers, patching of the location obj\n const href = WINDOW.location && WINDOW.location.href;\n\n if (!href) {\n // If there is no window.location.origin, we default to only attaching tracing headers to relative requests, i.e. ones that start with `/`\n // BIG DISCLAIMER: Users can call URLs with a double slash (fetch(\"//example.com/api\")), this is a shorthand for \"send to the same protocol\",\n // so we need a to exclude those requests, because they might be cross origin.\n const isRelativeSameOriginRequest = !!targetUrl.match(/^\\/(?!\\/)/);\n if (!tracePropagationTargets) {\n return isRelativeSameOriginRequest;\n } else {\n return stringMatchesSomePattern(targetUrl, tracePropagationTargets);\n }\n } else {\n let resolvedUrl;\n let currentOrigin;\n\n // URL parsing may fail, we default to not attaching trace headers in that case.\n try {\n resolvedUrl = new URL(targetUrl, href);\n currentOrigin = new URL(href).origin;\n } catch (e) {\n return false;\n }\n\n const isSameOriginRequest = resolvedUrl.origin === currentOrigin;\n if (!tracePropagationTargets) {\n return isSameOriginRequest;\n } else {\n return (\n stringMatchesSomePattern(resolvedUrl.toString(), tracePropagationTargets) ||\n (isSameOriginRequest && stringMatchesSomePattern(resolvedUrl.pathname, tracePropagationTargets))\n );\n }\n }\n}\n\n/**\n * Create and track xhr request spans\n *\n * @returns Span if a span was created, otherwise void.\n */\nfunction xhrCallback(\n handlerData,\n shouldCreateSpan,\n shouldAttachHeaders,\n spans,\n) {\n const xhr = handlerData.xhr;\n const sentryXhrData = xhr && xhr[SENTRY_XHR_DATA_KEY];\n\n if (!xhr || xhr.__sentry_own_request__ || !sentryXhrData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = hasTracingEnabled() && shouldCreateSpan(sentryXhrData.url);\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span && sentryXhrData.status_code !== undefined) {\n setHttpStatus(span, sentryXhrData.status_code);\n span.end();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const fullUrl = getFullURL(sentryXhrData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n\n const hasParent = !!getActiveSpan();\n\n const span =\n shouldCreateSpanResult && hasParent\n ? startInactiveSpan({\n name: `${sentryXhrData.method} ${sentryXhrData.url}`,\n attributes: {\n type: 'xhr',\n 'http.method': sentryXhrData.method,\n 'http.url': fullUrl,\n url: sentryXhrData.url,\n 'server.address': host,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.client',\n },\n })\n : new SentryNonRecordingSpan();\n\n xhr.__sentry_xhr_span_id__ = span.spanContext().spanId;\n spans[xhr.__sentry_xhr_span_id__] = span;\n\n const client = getClient();\n\n if (xhr.setRequestHeader && shouldAttachHeaders(sentryXhrData.url) && client) {\n addTracingHeadersToXhrRequest(\n xhr,\n client,\n // If performance is disabled (TWP) or there's no active root span (pageload/navigation/interaction),\n // we do not want to use the span as base for the trace headers,\n // which means that the headers will be generated from the scope and the sampling decision is deferred\n hasTracingEnabled() && hasParent ? span : undefined,\n );\n }\n\n return span;\n}\n\nfunction addTracingHeadersToXhrRequest(xhr, client, span) {\n const scope = getCurrentScope();\n const isolationScope = getIsolationScope();\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader =\n span && hasTracingEnabled() ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc || (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client)),\n );\n\n setHeaderOnXhr(xhr, sentryTraceHeader, sentryBaggageHeader);\n}\n\nfunction setHeaderOnXhr(\n xhr,\n sentryTraceHeader,\n sentryBaggageHeader,\n) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader('sentry-trace', sentryTraceHeader);\n if (sentryBaggageHeader) {\n // From MDN: \"If this method is called several times with the same header, the values are merged into one single request header.\"\n // We can therefore simply set a baggage header without checking what was there before\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n}\n\nfunction getFullURL(url) {\n try {\n // By adding a base URL to new URL(), this will also work for relative urls\n // If `url` is a full URL, the base URL is ignored anyhow\n const parsed = new URL(url, WINDOW.location.origin);\n return parsed.href;\n } catch (e2) {\n return undefined;\n }\n}\n\nexport { defaultRequestInstrumentationOptions, extractNetworkProtocol, instrumentOutgoingRequests, shouldAttachHeaders, xhrCallback };\n//# sourceMappingURL=request.js.map\n","import { getActiveSpan, getRootSpan, spanToJSON, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nfunction registerBackgroundTabDetection() {\n if (WINDOW && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n const activeSpan = getActiveSpan();\n if (!activeSpan) {\n return;\n }\n\n const rootSpan = getRootSpan(activeSpan);\n\n if (WINDOW.document.hidden && rootSpan) {\n const cancelledStatus = 'cancelled';\n\n const { op, status } = spanToJSON(rootSpan);\n\n if (DEBUG_BUILD) {\n logger.log(`[Tracing] Transaction: ${cancelledStatus} -> since tab moved to the background, op: ${op}`);\n }\n\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!status) {\n rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message: cancelledStatus });\n }\n\n rootSpan.setAttribute('sentry.cancellation_reason', 'document.hidden');\n rootSpan.end();\n }\n });\n } else {\n DEBUG_BUILD && logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n\nexport { registerBackgroundTabDetection };\n//# sourceMappingURL=backgroundtab.js.map\n","import { startTrackingWebVitals, startTrackingINP, startTrackingLongAnimationFrames, startTrackingLongTasks, startTrackingInteractions, addHistoryInstrumentationHandler, registerInpInteractionListener, addPerformanceEntries } from '@sentry-internal/browser-utils';\nimport { TRACING_DEFAULTS, registerSpanErrorInstrumentation, getClient, spanToJSON, getCurrentScope, getRootSpan, spanIsSampled, getDynamicSamplingContextFromSpan, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getActiveSpan, getIsolationScope, startIdleSpan, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON } from '@sentry/core';\nimport { GLOBAL_OBJ, logger, propagationContextFromHeaders, browserPerformanceTimeOrigin, generatePropagationContext, getDomElement } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\nimport { registerBackgroundTabDetection } from './backgroundtab.js';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request.js';\n\n/* eslint-disable max-lines */\n\nconst BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS = {\n ...TRACING_DEFAULTS,\n instrumentNavigation: true,\n instrumentPageLoad: true,\n markBackgroundSpan: true,\n enableLongTask: true,\n enableLongAnimationFrame: true,\n enableInp: true,\n _experiments: {},\n ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library.\n *\n * We explicitly export the proper type here, as this has to be extended in some cases.\n */\nconst browserTracingIntegration = ((_options = {}) => {\n registerSpanErrorInstrumentation();\n\n const {\n enableInp,\n enableLongTask,\n enableLongAnimationFrame,\n _experiments: { enableInteractions, enableStandaloneClsSpans },\n beforeStartSpan,\n idleTimeout,\n finalTimeout,\n childSpanTimeout,\n markBackgroundSpan,\n traceFetch,\n traceXHR,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n instrumentPageLoad,\n instrumentNavigation,\n } = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n };\n\n const _collectWebVitals = startTrackingWebVitals({ recordClsStandaloneSpans: enableStandaloneClsSpans || false });\n\n if (enableInp) {\n startTrackingINP();\n }\n\n if (\n enableLongAnimationFrame &&\n GLOBAL_OBJ.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes &&\n PerformanceObserver.supportedEntryTypes.includes('long-animation-frame')\n ) {\n startTrackingLongAnimationFrames();\n } else if (enableLongTask) {\n startTrackingLongTasks();\n }\n\n if (enableInteractions) {\n startTrackingInteractions();\n }\n\n const latestRoute = {\n name: undefined,\n source: undefined,\n };\n\n /** Create routing idle transaction. */\n function _createRouteSpan(client, startSpanOptions) {\n const isPageloadTransaction = startSpanOptions.op === 'pageload';\n\n const finalStartSpanOptions = beforeStartSpan\n ? beforeStartSpan(startSpanOptions)\n : startSpanOptions;\n\n const attributes = finalStartSpanOptions.attributes || {};\n\n // If `finalStartSpanOptions.name` is different than `startSpanOptions.name`\n // it is because `beforeStartSpan` set a custom name. Therefore we set the source to 'custom'.\n if (startSpanOptions.name !== finalStartSpanOptions.name) {\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'custom';\n finalStartSpanOptions.attributes = attributes;\n }\n\n latestRoute.name = finalStartSpanOptions.name;\n latestRoute.source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n const idleSpan = startIdleSpan(finalStartSpanOptions, {\n idleTimeout,\n finalTimeout,\n childSpanTimeout,\n // should wait for finish signal if it's a pageload transaction\n disableAutoFinish: isPageloadTransaction,\n beforeSpanEnd: span => {\n _collectWebVitals();\n addPerformanceEntries(span, { recordClsOnPageloadSpan: !enableStandaloneClsSpans });\n },\n });\n\n function emitFinish() {\n if (['interactive', 'complete'].includes(WINDOW.document.readyState)) {\n client.emit('idleSpanEnableAutoFinish', idleSpan);\n }\n }\n\n if (isPageloadTransaction && WINDOW.document) {\n WINDOW.document.addEventListener('readystatechange', () => {\n emitFinish();\n });\n\n emitFinish();\n }\n\n return idleSpan;\n }\n\n return {\n name: BROWSER_TRACING_INTEGRATION_ID,\n afterAllSetup(client) {\n let activeSpan;\n let startingUrl = WINDOW.location && WINDOW.location.href;\n\n client.on('startNavigationSpan', startSpanOptions => {\n if (getClient() !== client) {\n return;\n }\n\n if (activeSpan && !spanToJSON(activeSpan).timestamp) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current root span with op: ${spanToJSON(activeSpan).op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeSpan.end();\n }\n\n activeSpan = _createRouteSpan(client, {\n op: 'navigation',\n ...startSpanOptions,\n });\n });\n\n client.on('startPageLoadSpan', (startSpanOptions, traceOptions = {}) => {\n if (getClient() !== client) {\n return;\n }\n\n if (activeSpan && !spanToJSON(activeSpan).timestamp) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current root span with op: ${spanToJSON(activeSpan).op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeSpan.end();\n }\n\n const sentryTrace = traceOptions.sentryTrace || getMetaContent('sentry-trace');\n const baggage = traceOptions.baggage || getMetaContent('baggage');\n\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n getCurrentScope().setPropagationContext(propagationContext);\n\n activeSpan = _createRouteSpan(client, {\n op: 'pageload',\n ...startSpanOptions,\n });\n });\n\n // A trace should to stay the consistent over the entire time span of one route.\n // Therefore, when the initial pageload or navigation root span ends, we update the\n // scope's propagation context to keep span-specific attributes like the `sampled` decision and\n // the dynamic sampling context valid, even after the root span has ended.\n // This ensures that the trace data is consistent for the entire duration of the route.\n client.on('spanEnd', span => {\n const op = spanToJSON(span).op;\n if (span !== getRootSpan(span) || (op !== 'navigation' && op !== 'pageload')) {\n return;\n }\n\n const scope = getCurrentScope();\n const oldPropagationContext = scope.getPropagationContext();\n\n scope.setPropagationContext({\n ...oldPropagationContext,\n sampled: oldPropagationContext.sampled !== undefined ? oldPropagationContext.sampled : spanIsSampled(span),\n dsc: oldPropagationContext.dsc || getDynamicSamplingContextFromSpan(span),\n });\n });\n\n if (WINDOW.location) {\n if (instrumentPageLoad) {\n startBrowserTracingPageLoadSpan(client, {\n name: WINDOW.location.pathname,\n // pageload should always start at timeOrigin (and needs to be in s, not ms)\n startTime: browserPerformanceTimeOrigin ? browserPerformanceTimeOrigin / 1000 : undefined,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.pageload.browser',\n },\n });\n }\n\n if (instrumentNavigation) {\n addHistoryInstrumentationHandler(({ to, from }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n startBrowserTracingNavigationSpan(client, {\n name: WINDOW.location.pathname,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.navigation.browser',\n },\n });\n }\n });\n }\n }\n\n if (markBackgroundSpan) {\n registerBackgroundTabDetection();\n }\n\n if (enableInteractions) {\n registerInteractionListener(idleTimeout, finalTimeout, childSpanTimeout, latestRoute);\n }\n\n if (enableInp) {\n registerInpInteractionListener();\n }\n\n instrumentOutgoingRequests(client, {\n traceFetch,\n traceXHR,\n tracePropagationTargets: client.getOptions().tracePropagationTargets,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n });\n },\n };\n}) ;\n\n/**\n * Manually start a page load span.\n * This will only do something if a browser tracing integration integration has been setup.\n *\n * If you provide a custom `traceOptions` object, it will be used to continue the trace\n * instead of the default behavior, which is to look it up on the tags.\n */\nfunction startBrowserTracingPageLoadSpan(\n client,\n spanOptions,\n traceOptions,\n) {\n client.emit('startPageLoadSpan', spanOptions, traceOptions);\n\n getCurrentScope().setTransactionName(spanOptions.name);\n\n const span = getActiveSpan();\n const op = span && spanToJSON(span).op;\n return op === 'pageload' ? span : undefined;\n}\n\n/**\n * Manually start a navigation span.\n * This will only do something if a browser tracing integration has been setup.\n */\nfunction startBrowserTracingNavigationSpan(client, spanOptions) {\n getIsolationScope().setPropagationContext(generatePropagationContext());\n getCurrentScope().setPropagationContext(generatePropagationContext());\n\n client.emit('startNavigationSpan', spanOptions);\n\n getCurrentScope().setTransactionName(spanOptions.name);\n\n const span = getActiveSpan();\n const op = span && spanToJSON(span).op;\n return op === 'navigation' ? span : undefined;\n}\n\n/** Returns the value of a meta tag */\nfunction getMetaContent(metaName) {\n // Can't specify generic to `getDomElement` because tracing can be used\n // in a variety of environments, have to disable `no-unsafe-member-access`\n // as a result.\n const metaTag = getDomElement(`meta[name=${metaName}]`);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return metaTag ? metaTag.getAttribute('content') : undefined;\n}\n\n/** Start listener for interaction transactions */\nfunction registerInteractionListener(\n idleTimeout,\n finalTimeout,\n childSpanTimeout,\n latestRoute,\n) {\n let inflightInteractionSpan;\n const registerInteractionTransaction = () => {\n const op = 'ui.action.click';\n\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan) {\n const currentRootSpanOp = spanToJSON(rootSpan).op;\n if (['navigation', 'pageload'].includes(currentRootSpanOp )) {\n DEBUG_BUILD &&\n logger.warn(`[Tracing] Did not create ${op} span because a pageload or navigation span is in progress.`);\n return undefined;\n }\n }\n\n if (inflightInteractionSpan) {\n inflightInteractionSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, 'interactionInterrupted');\n inflightInteractionSpan.end();\n inflightInteractionSpan = undefined;\n }\n\n if (!latestRoute.name) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n return undefined;\n }\n\n inflightInteractionSpan = startIdleSpan(\n {\n name: latestRoute.name,\n op,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: latestRoute.source || 'url',\n },\n },\n {\n idleTimeout,\n finalTimeout,\n childSpanTimeout,\n },\n );\n };\n\n if (WINDOW.document) {\n addEventListener('click', registerInteractionTransaction, { once: false, capture: true });\n }\n}\n\nexport { BROWSER_TRACING_INTEGRATION_ID, browserTracingIntegration, getMetaContent, startBrowserTracingNavigationSpan, startBrowserTracingPageLoadSpan };\n//# sourceMappingURL=browserTracingIntegration.js.map\n","import { setContext, init as init$1 } from '@sentry/browser';\nimport { applySdkMetadata } from '@sentry/core';\nimport { version } from 'react';\n\n/**\n * Inits the React SDK\n */\nfunction init(options) {\n const opts = {\n ...options,\n };\n\n applySdkMetadata(opts, 'react');\n setContext('react', { version });\n return init$1(opts);\n}\n\nexport { init };\n//# sourceMappingURL=sdk.js.map\n","import { captureException } from '@sentry/browser';\nimport { isError } from '@sentry/utils';\nimport { version } from 'react';\n\n/**\n * See if React major version is 17+ by parsing version string.\n */\nfunction isAtLeastReact17(reactVersion) {\n const reactMajor = reactVersion.match(/^([^.]+)/);\n return reactMajor !== null && parseInt(reactMajor[0]) >= 17;\n}\n\n/**\n * Recurse through `error.cause` chain to set cause on an error.\n */\nfunction setCause(error, cause) {\n const seenErrors = new WeakSet();\n\n function recurse(error, cause) {\n // If we've already seen the error, there is a recursive loop somewhere in the error's\n // cause chain. Let's just bail out then to prevent a stack overflow.\n if (seenErrors.has(error)) {\n return;\n }\n if (error.cause) {\n seenErrors.add(error);\n return recurse(error.cause, cause);\n }\n error.cause = cause;\n }\n\n recurse(error, cause);\n}\n\n/**\n * Captures an error that was thrown by a React ErrorBoundary or React root.\n *\n * @param error The error to capture.\n * @param errorInfo The errorInfo provided by React.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureReactException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error,\n { componentStack },\n hint,\n) {\n // If on React version >= 17, create stack trace from componentStack param and links\n // to to the original error using `error.cause` otherwise relies on error param for stacktrace.\n // Linking errors requires the `LinkedErrors` integration be enabled.\n // See: https://reactjs.org/blog/2020/08/10/react-v17-rc.html#native-component-stacks\n //\n // Although `componentDidCatch` is typed to accept an `Error` object, it can also be invoked\n // with non-error objects. This is why we need to check if the error is an error-like object.\n // See: https://github.com/getsentry/sentry-javascript/issues/6167\n if (isAtLeastReact17(version) && isError(error) && componentStack) {\n const errorBoundaryError = new Error(error.message);\n errorBoundaryError.name = `React ErrorBoundary ${error.name}`;\n errorBoundaryError.stack = componentStack;\n\n // Using the `LinkedErrors` integration to link the errors together.\n setCause(error, errorBoundaryError);\n }\n\n return captureException(error, {\n ...hint,\n captureContext: {\n contexts: { react: { componentStack } },\n },\n });\n}\n\n/**\n * Creates an error handler that can be used with the `onCaughtError`, `onUncaughtError`,\n * and `onRecoverableError` options in `createRoot` and `hydrateRoot` React DOM methods.\n *\n * @param callback An optional callback that will be called after the error is captured.\n * Use this to add custom handling for errors.\n *\n * @example\n *\n * ```JavaScript\n * const root = createRoot(container, {\n * onCaughtError: Sentry.reactErrorHandler(),\n * onUncaughtError: Sentry.reactErrorHandler((error, errorInfo) => {\n * console.warn('Caught error', error, errorInfo.componentStack);\n * });\n * });\n * ```\n */\nfunction reactErrorHandler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error, errorInfo) => {\n const eventId = captureReactException(error, errorInfo);\n if (callback) {\n callback(error, errorInfo, eventId);\n }\n };\n}\n\nexport { captureReactException, isAtLeastReact17, reactErrorHandler, setCause };\n//# sourceMappingURL=error.js.map\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { getClient, showReportDialog, withScope } from '@sentry/browser';\nimport { logger } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { captureReactException } from './error.js';\n\nconst UNKNOWN_COMPONENT = 'unknown';\n\nconst INITIAL_STATE = {\n componentStack: null,\n error: null,\n eventId: null,\n};\n\n/**\n * A ErrorBoundary component that logs errors to Sentry.\n * NOTE: If you are a Sentry user, and you are seeing this stack frame, it means the\n * Sentry React SDK ErrorBoundary caught an error invoking your application code. This\n * is expected behavior and NOT indicative of a bug with the Sentry React SDK.\n */\nclass ErrorBoundary extends React.Component {\n\n constructor(props) {\n super(props);ErrorBoundary.prototype.__init.call(this);\n this.state = INITIAL_STATE;\n this._openFallbackReportDialog = true;\n\n const client = getClient();\n if (client && props.showDialog) {\n this._openFallbackReportDialog = false;\n this._cleanupHook = client.on('afterSendEvent', event => {\n if (!event.type && this._lastEventId && event.event_id === this._lastEventId) {\n showReportDialog({ ...props.dialogOptions, eventId: this._lastEventId });\n }\n });\n }\n }\n\n componentDidCatch(error, errorInfo) {\n const { componentStack } = errorInfo;\n // TODO(v9): Remove this check and type `componentStack` to be React.ErrorInfo['componentStack'].\n const passedInComponentStack = componentStack == null ? undefined : componentStack;\n\n const { beforeCapture, onError, showDialog, dialogOptions } = this.props;\n withScope(scope => {\n if (beforeCapture) {\n beforeCapture(scope, error, passedInComponentStack);\n }\n\n const eventId = captureReactException(error, errorInfo, { mechanism: { handled: !!this.props.fallback } });\n\n if (onError) {\n onError(error, passedInComponentStack, eventId);\n }\n if (showDialog) {\n this._lastEventId = eventId;\n if (this._openFallbackReportDialog) {\n showReportDialog({ ...dialogOptions, eventId });\n }\n }\n\n // componentDidCatch is used over getDerivedStateFromError\n // so that componentStack is accessible through state.\n this.setState({ error, componentStack, eventId });\n });\n }\n\n componentDidMount() {\n const { onMount } = this.props;\n if (onMount) {\n onMount();\n }\n }\n\n componentWillUnmount() {\n const { error, componentStack, eventId } = this.state;\n const { onUnmount } = this.props;\n if (onUnmount) {\n onUnmount(error, componentStack, eventId);\n }\n\n if (this._cleanupHook) {\n this._cleanupHook();\n this._cleanupHook = undefined;\n }\n }\n\n __init() {this.resetErrorBoundary = () => {\n const { onReset } = this.props;\n const { error, componentStack, eventId } = this.state;\n if (onReset) {\n onReset(error, componentStack, eventId);\n }\n this.setState(INITIAL_STATE);\n };}\n\n render() {\n const { fallback, children } = this.props;\n const state = this.state;\n\n if (state.error) {\n let element = undefined;\n if (typeof fallback === 'function') {\n element = React.createElement(fallback, {\n error: state.error,\n componentStack: state.componentStack ,\n resetError: this.resetErrorBoundary,\n eventId: state.eventId ,\n });\n } else {\n element = fallback;\n }\n\n if (React.isValidElement(element)) {\n return element;\n }\n\n if (fallback) {\n DEBUG_BUILD && logger.warn('fallback did not produce a valid ReactElement');\n }\n\n // Fail gracefully if no fallback provided or is not valid\n return null;\n }\n\n if (typeof children === 'function') {\n return (children )();\n }\n return children;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withErrorBoundary(\n WrappedComponent,\n errorBoundaryOptions,\n) {\n const componentDisplayName = WrappedComponent.displayName || WrappedComponent.name || UNKNOWN_COMPONENT;\n\n const Wrapped = (props) => (\n React.createElement(ErrorBoundary, { ...errorBoundaryOptions,}\n , React.createElement(WrappedComponent, { ...props,} )\n )\n );\n\n Wrapped.displayName = `errorBoundary(${componentDisplayName})`;\n\n // Copy over static methods from Wrapped component to Profiler HOC\n // See: https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n hoistNonReactStatics(Wrapped, WrappedComponent);\n return Wrapped;\n}\n\nexport { ErrorBoundary, UNKNOWN_COMPONENT, withErrorBoundary };\n//# sourceMappingURL=errorboundary.js.map\n","(function() {\r\n window.__insp = window.__insp || [];\r\n window.__insp.push(['wid', 770044297]);\r\n var ldinsp = function(){\r\n if(typeof window.__inspld != \"undefined\") return; window.__inspld = 1; var insp = document.createElement('script'); insp.type = 'text/javascript'; insp.async = true; insp.id = \"inspsync\"; insp.src = ('https:' === document.location.protocol ? 'https' : 'http') + '://cdn.inspectlet.com/inspectlet.js?wid=770044297&r=' + Math.floor(new Date().getTime()/3600000); var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(insp, x); };\r\n setTimeout(ldinsp, 0);\r\n })();","import resolveProps from '@mui/utils/resolveProps';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n return resolveProps(theme.components[name].defaultProps, props);\n}","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwn = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-43c6fea0.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-43c6fea0.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.4\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.3\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.2\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nlet cache;\nif (typeof document === 'object') {\n cache = createCache({\n key: 'css',\n prepend: true\n });\n}\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n children\n } = props;\n return injectFirst && cache ? /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n }) : children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.15.14\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","'use client';\n\nimport * as React from 'react';\nimport { ThemeContext } from '@mui/styled-engine';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","'use client';\n\nimport createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","'use client';\n\nimport getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme,\n themeId\n}) {\n let theme = useTheme(defaultTheme);\n if (themeId) {\n theme = theme[themeId] || theme;\n }\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return (0, _clamp.default)(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nfunction hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : (0, _formatMuiErrorMessage2.default)(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : (0, _formatMuiErrorMessage2.default)(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nconst colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexports.colorChannel = colorChannel;\nconst private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nfunction getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nfunction getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nfunction private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","export default '$$material';","'use client';\n\nimport systemUseThemeProps from '@mui/system/useThemeProps';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport default function useThemeProps({\n props,\n name\n}) {\n return systemUseThemeProps({\n props,\n name,\n defaultTheme,\n themeId: THEME_ID\n });\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as MuiGlobalStyles } from '@mui/styled-engine';\nimport useTheme from '../useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GlobalStyles({\n styles,\n themeId,\n defaultTheme = {}\n}) {\n const upperTheme = useTheme(defaultTheme);\n const globalStyles = typeof styles === 'function' ? styles(themeId ? upperTheme[themeId] || upperTheme : upperTheme) : styles;\n return /*#__PURE__*/_jsx(MuiGlobalStyles, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n defaultTheme: PropTypes.object,\n /**\n * @ignore\n */\n styles: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.array, PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool]),\n /**\n * @ignore\n */\n themeId: PropTypes.string\n} : void 0;\nexport default GlobalStyles;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const _extendSxProp = extendSxProp(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);\n return /*#__PURE__*/_jsx(BoxRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme\n }, other));\n });\n return Box;\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nconst boxClasses = generateUtilityClasses('MuiBox', ['root']);\nexport default boxClasses;","'use client';\n\nimport PropTypes from 'prop-types';\nimport ClassNameGenerator from '@mui/utils/ClassNameGenerator';\nimport createBox from '../createBox';\nimport boxClasses from './boxClasses';\nconst Box = createBox({\n defaultClassName: boxClasses.root,\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nimport styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport capitalize from '@mui/utils/capitalize';\nimport getDisplayName from '@mui/utils/getDisplayName';\nimport createTheme from './createTheme';\nimport styleFunctionSx from './styleFunctionSx';\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle(_extends({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, _extends({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = _objectWithoutPropertiesLoose(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props(_extends({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style(_extends({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nexport default function createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return styleFunctionSx(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || isPlainObject(stylesArg)) {\n return props => processStyleArg(stylesArg, _extends({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, _extends({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, _extends({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${capitalize(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","import * as React from 'react';\nconst ThemeContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\nexport default ThemeContext;","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","const hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested';\n\n// To support composition of theme.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(outerTheme);\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['MUI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n return mergedTheme;\n }\n return _extends({}, outerTheme, localTheme);\n}\n\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n const outerTheme = useTheme();\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n const theme = React.useMemo(() => {\n const output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/_jsx(ThemeContext.Provider, {\n value: theme,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RtlContext = /*#__PURE__*/React.createContext();\nfunction RtlProvider(_ref) {\n let {\n value\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/_jsx(RtlContext.Provider, _extends({\n value: value != null ? value : true\n }, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? RtlProvider.propTypes = {\n children: PropTypes.node,\n value: PropTypes.bool\n} : void 0;\nexport const useRtl = () => {\n const value = React.useContext(RtlContext);\n return value != null ? value : false;\n};\nexport default RtlProvider;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as MuiThemeProvider, useTheme as usePrivateTheme } from '@mui/private-theming';\nimport exactProp from '@mui/utils/exactProp';\nimport { ThemeContext as StyledEngineThemeContext } from '@mui/styled-engine';\nimport useThemeWithoutDefault from '../useThemeWithoutDefault';\nimport RtlProvider from '../RtlProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst EMPTY_THEME = {};\nfunction useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {\n return React.useMemo(() => {\n const resolvedTheme = themeId ? upperTheme[themeId] || upperTheme : upperTheme;\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(resolvedTheme);\n const result = themeId ? _extends({}, upperTheme, {\n [themeId]: mergedTheme\n }) : mergedTheme;\n // must return a function for the private theme to NOT merge with the upper theme.\n // see the test case \"use provided theme from a callback\" in ThemeProvider.test.js\n if (isPrivate) {\n return () => result;\n }\n return result;\n }\n return themeId ? _extends({}, upperTheme, {\n [themeId]: localTheme\n }) : _extends({}, upperTheme, localTheme);\n }, [themeId, upperTheme, localTheme, isPrivate]);\n}\n\n/**\n * This component makes the `theme` available down the React tree.\n * It should preferably be used at **the root of your component tree**.\n *\n * // existing use case\n * // theme scoping\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme,\n themeId\n } = props;\n const upperTheme = useThemeWithoutDefault(EMPTY_THEME);\n const upperPrivateTheme = usePrivateTheme() || EMPTY_THEME;\n if (process.env.NODE_ENV !== 'production') {\n if (upperTheme === null && typeof localTheme === 'function' || themeId && upperTheme && !upperTheme[themeId] && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n const engineTheme = useThemeScoping(themeId, upperTheme, localTheme);\n const privateTheme = useThemeScoping(themeId, upperPrivateTheme, localTheme, true);\n const rtlValue = engineTheme.direction === 'rtl';\n return /*#__PURE__*/_jsx(MuiThemeProvider, {\n theme: privateTheme,\n children: /*#__PURE__*/_jsx(StyledEngineThemeContext.Provider, {\n value: engineTheme,\n children: /*#__PURE__*/_jsx(RtlProvider, {\n value: rtlValue,\n children: children\n })\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n /**\n * The design system's unique id for getting the corresponded theme when there are multiple design systems.\n */\n themeId: PropTypes.string\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\", \"className\", \"useFlexGap\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport deepmerge from '@mui/utils/deepmerge';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport composeClasses from '@mui/utils/composeClasses';\nimport systemStyled from '../styled';\nimport useThemePropsSystem from '../useThemeProps';\nimport { extendSxProp } from '../styleFunctionSx';\nimport createTheme from '../createTheme';\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from '../breakpoints';\nimport { createUnarySpacing, getValue } from '../spacing';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex',\n flexDirection: 'column'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n // The useFlexGap={false} implement relies on each child to give up control of the margin.\n // We need to reset the margin to avoid double spacing.\n '& > :not(style):not(style)': {\n margin: 0\n },\n '& > :not(style) ~ :not(style)': {\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as SystemGlobalStyles } from '@mui/system';\nimport defaultTheme from '../styles/defaultTheme';\nimport THEME_ID from '../styles/identifier';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GlobalStyles(props) {\n return /*#__PURE__*/_jsx(SystemGlobalStyles, _extends({}, props, {\n defaultTheme: defaultTheme,\n themeId: THEME_ID\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The styles you want to apply globally.\n */\n styles: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.array, PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool])\n} : void 0;\nexport default GlobalStyles;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useThemeProps from '../styles/useThemeProps';\nimport GlobalStyles from '../GlobalStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const html = (theme, enableColorScheme) => _extends({\n WebkitFontSmoothing: 'antialiased',\n // Antialiasing.\n MozOsxFontSmoothing: 'grayscale',\n // Antialiasing.\n // Change from `box-sizing: content-box` so that `width`\n // is not affected by `padding` or `border`.\n boxSizing: 'border-box',\n // Fix font resize problem in iOS\n WebkitTextSizeAdjust: '100%'\n}, enableColorScheme && !theme.vars && {\n colorScheme: theme.palette.mode\n});\nexport const body = theme => _extends({\n color: (theme.vars || theme).palette.text.primary\n}, theme.typography.body1, {\n backgroundColor: (theme.vars || theme).palette.background.default,\n '@media print': {\n // Save printer ink.\n backgroundColor: (theme.vars || theme).palette.common.white\n }\n});\nexport const styles = (theme, enableColorScheme = false) => {\n var _theme$components;\n const colorSchemeStyles = {};\n if (enableColorScheme && theme.colorSchemes) {\n Object.entries(theme.colorSchemes).forEach(([key, scheme]) => {\n var _scheme$palette;\n colorSchemeStyles[theme.getColorSchemeSelector(key).replace(/\\s*&/, '')] = {\n colorScheme: (_scheme$palette = scheme.palette) == null ? void 0 : _scheme$palette.mode\n };\n });\n }\n let defaultStyles = _extends({\n html: html(theme, enableColorScheme),\n '*, *::before, *::after': {\n boxSizing: 'inherit'\n },\n 'strong, b': {\n fontWeight: theme.typography.fontWeightBold\n },\n body: _extends({\n margin: 0\n }, body(theme), {\n // Add support for document.body.requestFullScreen().\n // Other elements, if background transparent, are not supported.\n '&::backdrop': {\n backgroundColor: (theme.vars || theme).palette.background.default\n }\n })\n }, colorSchemeStyles);\n const themeOverrides = (_theme$components = theme.components) == null || (_theme$components = _theme$components.MuiCssBaseline) == null ? void 0 : _theme$components.styleOverrides;\n if (themeOverrides) {\n defaultStyles = [defaultStyles, themeOverrides];\n }\n return defaultStyles;\n};\n\n/**\n * Kickstart an elegant, consistent, and simple baseline to build upon.\n */\nfunction CssBaseline(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCssBaseline'\n });\n const {\n children,\n enableColorScheme = false\n } = props;\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(GlobalStyles, {\n styles: theme => styles(theme, enableColorScheme)\n }), children]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? CssBaseline.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * You can wrap a node.\n */\n children: PropTypes.node,\n /**\n * Enable `color-scheme` CSS property to use `theme.palette.mode`.\n * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme\n * For browser support, check out https://caniuse.com/?search=color-scheme\n * @default false\n */\n enableColorScheme: PropTypes.bool\n} : void 0;\nexport default CssBaseline;","'use client';\n\nimport * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme[THEME_ID] || theme;\n}","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","import slotShouldForwardProp from './slotShouldForwardProp';\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nimport rootShouldForwardProp from './rootShouldForwardProp';\nexport { default as slotShouldForwardProp } from './slotShouldForwardProp';\nexport { default as rootShouldForwardProp } from './rootShouldForwardProp';\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"theme\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as SystemThemeProvider } from '@mui/system';\nimport THEME_ID from './identifier';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function ThemeProvider(_ref) {\n let {\n theme: themeInput\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const scopedTheme = themeInput[THEME_ID];\n return /*#__PURE__*/_jsx(SystemThemeProvider, _extends({}, props, {\n themeId: scopedTheme ? THEME_ID : undefined,\n theme: scopedTheme || themeInput\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;","// Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61\nconst getOverlayAlpha = elevation => {\n let alphaValue;\n if (elevation < 1) {\n alphaValue = 5.11916 * elevation ** 2;\n } else {\n alphaValue = 4.5 * Math.log(elevation + 1) + 2;\n }\n return (alphaValue / 100).toFixed(2);\n};\nexport default getOverlayAlpha;","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","export const buildDeprecatedPropsWarning = message => {\n let alreadyWarned = false;\n if (process.env.NODE_ENV === 'production') {\n return () => {};\n }\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n return deprecatedProps => {\n const deprecatedKeys = Object.entries(deprecatedProps).filter(([, value]) => value !== undefined).map(([key]) => `- ${key}`);\n if (!alreadyWarned && deprecatedKeys.length > 0) {\n alreadyWarned = true;\n console.warn([cleanMessage, 'deprecated props observed:', ...deprecatedKeys].join('\\n'));\n }\n };\n};\nexport const buildWarning = (message, gravity = 'warning') => {\n let alreadyWarned = false;\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n return () => {\n if (!alreadyWarned) {\n alreadyWarned = true;\n if (gravity === 'error') {\n console.error(cleanMessage);\n } else {\n console.warn(cleanMessage);\n }\n }\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/* eslint-disable class-methods-use-this */\nimport defaultDayjs from 'dayjs';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport customParseFormatPlugin from 'dayjs/plugin/customParseFormat';\nimport localizedFormatPlugin from 'dayjs/plugin/localizedFormat';\nimport isBetweenPlugin from 'dayjs/plugin/isBetween';\nimport { buildWarning } from '../internals/utils/warning';\ndefaultDayjs.extend(customParseFormatPlugin);\ndefaultDayjs.extend(localizedFormatPlugin);\ndefaultDayjs.extend(isBetweenPlugin);\nconst localeNotFoundWarning = buildWarning(['Your locale has not been found.', 'Either the locale key is not a supported one. Locales supported by dayjs are available here: https://github.com/iamkun/dayjs/tree/dev/src/locale', \"Or you forget to import the locale from 'dayjs/locale/{localeUsed}'\", 'fallback on English locale']);\nconst formatTokenMap = {\n // Year\n YY: 'year',\n YYYY: {\n sectionType: 'year',\n contentType: 'digit',\n maxLength: 4\n },\n // Month\n M: {\n sectionType: 'month',\n contentType: 'digit',\n maxLength: 2\n },\n MM: 'month',\n MMM: {\n sectionType: 'month',\n contentType: 'letter'\n },\n MMMM: {\n sectionType: 'month',\n contentType: 'letter'\n },\n // Day of the month\n D: {\n sectionType: 'day',\n contentType: 'digit',\n maxLength: 2\n },\n DD: 'day',\n Do: {\n sectionType: 'day',\n contentType: 'digit-with-letter'\n },\n // Day of the week\n d: {\n sectionType: 'weekDay',\n contentType: 'digit',\n maxLength: 2\n },\n dd: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n ddd: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n dddd: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n // Meridiem\n A: 'meridiem',\n a: 'meridiem',\n // Hours\n H: {\n sectionType: 'hours',\n contentType: 'digit',\n maxLength: 2\n },\n HH: 'hours',\n h: {\n sectionType: 'hours',\n contentType: 'digit',\n maxLength: 2\n },\n hh: 'hours',\n // Minutes\n m: {\n sectionType: 'minutes',\n contentType: 'digit',\n maxLength: 2\n },\n mm: 'minutes',\n // Seconds\n s: {\n sectionType: 'seconds',\n contentType: 'digit',\n maxLength: 2\n },\n ss: 'seconds'\n};\nconst defaultFormats = {\n year: 'YYYY',\n month: 'MMMM',\n monthShort: 'MMM',\n dayOfMonth: 'D',\n weekday: 'dddd',\n weekdayShort: 'dd',\n hours24h: 'HH',\n hours12h: 'hh',\n meridiem: 'A',\n minutes: 'mm',\n seconds: 'ss',\n fullDate: 'll',\n fullDateWithWeekday: 'dddd, LL',\n keyboardDate: 'L',\n shortDate: 'MMM D',\n normalDate: 'D MMMM',\n normalDateWithWeekday: 'ddd, MMM D',\n monthAndYear: 'MMMM YYYY',\n monthAndDate: 'MMMM D',\n fullTime: 'LT',\n fullTime12h: 'hh:mm A',\n fullTime24h: 'HH:mm',\n fullDateTime: 'lll',\n fullDateTime12h: 'll hh:mm A',\n fullDateTime24h: 'll HH:mm',\n keyboardDateTime: 'L LT',\n keyboardDateTime12h: 'L hh:mm A',\n keyboardDateTime24h: 'L HH:mm'\n};\nconst MISSING_UTC_PLUGIN = ['Missing UTC plugin', 'To be able to use UTC or timezones, you have to enable the `utc` plugin', 'Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-utc'].join('\\n');\nconst MISSING_TIMEZONE_PLUGIN = ['Missing timezone plugin', 'To be able to use timezones, you have to enable both the `utc` and the `timezone` plugin', 'Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-timezone'].join('\\n');\nconst withLocale = (dayjs, locale) => !locale ? dayjs : (...args) => dayjs(...args).locale(locale);\n\n/**\n * Based on `@date-io/dayjs`\n *\n * MIT License\n *\n * Copyright (c) 2017 Dmitriy Kovalenko\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nexport class AdapterDayjs {\n constructor({\n locale: _locale,\n formats,\n instance\n } = {}) {\n var _this$rawDayJsInstanc;\n this.isMUIAdapter = true;\n this.isTimezoneCompatible = true;\n this.lib = 'dayjs';\n this.rawDayJsInstance = void 0;\n this.dayjs = void 0;\n this.locale = void 0;\n this.formats = void 0;\n this.escapedCharacters = {\n start: '[',\n end: ']'\n };\n this.formatTokenMap = formatTokenMap;\n this.setLocaleToValue = value => {\n const expectedLocale = this.getCurrentLocaleCode();\n if (expectedLocale === value.locale()) {\n return value;\n }\n return value.locale(expectedLocale);\n };\n this.hasUTCPlugin = () => typeof defaultDayjs.utc !== 'undefined';\n this.hasTimezonePlugin = () => typeof defaultDayjs.tz !== 'undefined';\n this.isSame = (value, comparing, comparisonTemplate) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n return value.format(comparisonTemplate) === comparingInValueTimezone.format(comparisonTemplate);\n };\n /**\n * Replaces \"default\" by undefined and \"system\" by the system timezone before passing it to `dayjs`.\n */\n this.cleanTimezone = timezone => {\n switch (timezone) {\n case 'default':\n {\n return undefined;\n }\n case 'system':\n {\n return defaultDayjs.tz.guess();\n }\n default:\n {\n return timezone;\n }\n }\n };\n this.createSystemDate = value => {\n // TODO v7: Stop using `this.rawDayJsInstance` (drop the `instance` param on the adapters)\n /* istanbul ignore next */\n if (this.rawDayJsInstance) {\n return this.rawDayJsInstance(value);\n }\n if (this.hasUTCPlugin() && this.hasTimezonePlugin()) {\n const timezone = defaultDayjs.tz.guess();\n\n // We can't change the system timezone in the tests\n /* istanbul ignore next */\n if (timezone !== 'UTC') {\n return defaultDayjs.tz(value, timezone);\n }\n return defaultDayjs(value);\n }\n return defaultDayjs(value);\n };\n this.createUTCDate = value => {\n /* istanbul ignore next */\n if (!this.hasUTCPlugin()) {\n throw new Error(MISSING_UTC_PLUGIN);\n }\n return defaultDayjs.utc(value);\n };\n this.createTZDate = (value, timezone) => {\n /* istanbul ignore next */\n if (!this.hasUTCPlugin()) {\n throw new Error(MISSING_UTC_PLUGIN);\n }\n\n /* istanbul ignore next */\n if (!this.hasTimezonePlugin()) {\n throw new Error(MISSING_TIMEZONE_PLUGIN);\n }\n const keepLocalTime = value !== undefined && !value.endsWith('Z');\n return defaultDayjs(value).tz(this.cleanTimezone(timezone), keepLocalTime);\n };\n this.getLocaleFormats = () => {\n const locales = defaultDayjs.Ls;\n const locale = this.locale || 'en';\n let localeObject = locales[locale];\n if (localeObject === undefined) {\n localeNotFoundWarning();\n localeObject = locales.en;\n }\n return localeObject.formats;\n };\n /**\n * If the new day does not have the same offset as the old one (when switching to summer day time for example),\n * Then dayjs will not automatically adjust the offset (moment does).\n * We have to parse again the value to make sure the `fixOffset` method is applied.\n * See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72\n */\n this.adjustOffset = value => {\n if (!this.hasTimezonePlugin()) {\n return value;\n }\n const timezone = this.getTimezone(value);\n if (timezone !== 'UTC') {\n var _fixedValue$$offset, _value$$offset;\n const fixedValue = value.tz(this.cleanTimezone(timezone), true);\n // @ts-ignore\n if (((_fixedValue$$offset = fixedValue.$offset) != null ? _fixedValue$$offset : 0) === ((_value$$offset = value.$offset) != null ? _value$$offset : 0)) {\n return value;\n }\n return fixedValue;\n }\n return value;\n };\n this.date = value => {\n if (value === null) {\n return null;\n }\n return this.dayjs(value);\n };\n this.dateWithTimezone = (value, timezone) => {\n if (value === null) {\n return null;\n }\n let parsedValue;\n if (timezone === 'UTC') {\n parsedValue = this.createUTCDate(value);\n } else if (timezone === 'system' || timezone === 'default' && !this.hasTimezonePlugin()) {\n parsedValue = this.createSystemDate(value);\n } else {\n parsedValue = this.createTZDate(value, timezone);\n }\n if (this.locale === undefined) {\n return parsedValue;\n }\n return parsedValue.locale(this.locale);\n };\n this.getTimezone = value => {\n if (this.hasTimezonePlugin()) {\n var _value$$x;\n // @ts-ignore\n const zone = (_value$$x = value.$x) == null ? void 0 : _value$$x.$timezone;\n if (zone) {\n return zone;\n }\n }\n if (this.hasUTCPlugin() && value.isUTC()) {\n return 'UTC';\n }\n return 'system';\n };\n this.setTimezone = (value, timezone) => {\n if (this.getTimezone(value) === timezone) {\n return value;\n }\n if (timezone === 'UTC') {\n /* istanbul ignore next */\n if (!this.hasUTCPlugin()) {\n throw new Error(MISSING_UTC_PLUGIN);\n }\n return value.utc();\n }\n\n // We know that we have the UTC plugin.\n // Otherwise, the value timezone would always equal \"system\".\n // And it would be caught by the first \"if\" of this method.\n if (timezone === 'system') {\n return value.local();\n }\n if (!this.hasTimezonePlugin()) {\n if (timezone === 'default') {\n return value;\n }\n\n /* istanbul ignore next */\n throw new Error(MISSING_TIMEZONE_PLUGIN);\n }\n return defaultDayjs.tz(value, this.cleanTimezone(timezone));\n };\n this.toJsDate = value => {\n return value.toDate();\n };\n this.parseISO = isoString => {\n return this.dayjs(isoString);\n };\n this.toISO = value => {\n return value.toISOString();\n };\n this.parse = (value, format) => {\n if (value === '') {\n return null;\n }\n return this.dayjs(value, format, this.locale, true);\n };\n this.getCurrentLocaleCode = () => {\n return this.locale || 'en';\n };\n this.is12HourCycleInCurrentLocale = () => {\n /* istanbul ignore next */\n return /A|a/.test(this.getLocaleFormats().LT || '');\n };\n this.expandFormat = format => {\n const localeFormats = this.getLocaleFormats();\n\n // @see https://github.com/iamkun/dayjs/blob/dev/src/plugin/localizedFormat/index.js\n const t = formatBis => formatBis.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g, (_, a, b) => a || b.slice(1));\n return format.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g, (_, a, b) => {\n const B = b && b.toUpperCase();\n return a || localeFormats[b] || t(localeFormats[B]);\n });\n };\n this.getFormatHelperText = format => {\n return this.expandFormat(format).replace(/a/gi, '(a|p)m').toLocaleLowerCase();\n };\n this.isNull = value => {\n return value === null;\n };\n this.isValid = value => {\n return this.dayjs(value).isValid();\n };\n this.format = (value, formatKey) => {\n return this.formatByString(value, this.formats[formatKey]);\n };\n this.formatByString = (value, formatString) => {\n return this.dayjs(value).format(formatString);\n };\n this.formatNumber = numberToFormat => {\n return numberToFormat;\n };\n this.getDiff = (value, comparing, unit) => {\n return value.diff(comparing, unit);\n };\n this.isEqual = (value, comparing) => {\n if (value === null && comparing === null) {\n return true;\n }\n return this.dayjs(value).toDate().getTime() === this.dayjs(comparing).toDate().getTime();\n };\n this.isSameYear = (value, comparing) => {\n return this.isSame(value, comparing, 'YYYY');\n };\n this.isSameMonth = (value, comparing) => {\n return this.isSame(value, comparing, 'YYYY-MM');\n };\n this.isSameDay = (value, comparing) => {\n return this.isSame(value, comparing, 'YYYY-MM-DD');\n };\n this.isSameHour = (value, comparing) => {\n return value.isSame(comparing, 'hour');\n };\n this.isAfter = (value, comparing) => {\n return value > comparing;\n };\n this.isAfterYear = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isAfter(comparing, 'year');\n }\n return !this.isSameYear(value, comparing) && value.utc() > comparing.utc();\n };\n this.isAfterDay = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isAfter(comparing, 'day');\n }\n return !this.isSameDay(value, comparing) && value.utc() > comparing.utc();\n };\n this.isBefore = (value, comparing) => {\n return value < comparing;\n };\n this.isBeforeYear = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isBefore(comparing, 'year');\n }\n return !this.isSameYear(value, comparing) && value.utc() < comparing.utc();\n };\n this.isBeforeDay = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isBefore(comparing, 'day');\n }\n return !this.isSameDay(value, comparing) && value.utc() < comparing.utc();\n };\n this.isWithinRange = (value, [start, end]) => {\n return value >= start && value <= end;\n };\n this.startOfYear = value => {\n return this.adjustOffset(value.startOf('year'));\n };\n this.startOfMonth = value => {\n return this.adjustOffset(value.startOf('month'));\n };\n this.startOfWeek = value => {\n return this.adjustOffset(value.startOf('week'));\n };\n this.startOfDay = value => {\n return this.adjustOffset(value.startOf('day'));\n };\n this.endOfYear = value => {\n return this.adjustOffset(value.endOf('year'));\n };\n this.endOfMonth = value => {\n return this.adjustOffset(value.endOf('month'));\n };\n this.endOfWeek = value => {\n return this.adjustOffset(value.endOf('week'));\n };\n this.endOfDay = value => {\n return this.adjustOffset(value.endOf('day'));\n };\n this.addYears = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'year') : value.add(amount, 'year'));\n };\n this.addMonths = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'month') : value.add(amount, 'month'));\n };\n this.addWeeks = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'week') : value.add(amount, 'week'));\n };\n this.addDays = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'day') : value.add(amount, 'day'));\n };\n this.addHours = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'hour') : value.add(amount, 'hour'));\n };\n this.addMinutes = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'minute') : value.add(amount, 'minute'));\n };\n this.addSeconds = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'second') : value.add(amount, 'second'));\n };\n this.getYear = value => {\n return value.year();\n };\n this.getMonth = value => {\n return value.month();\n };\n this.getDate = value => {\n return value.date();\n };\n this.getHours = value => {\n return value.hour();\n };\n this.getMinutes = value => {\n return value.minute();\n };\n this.getSeconds = value => {\n return value.second();\n };\n this.getMilliseconds = value => {\n return value.millisecond();\n };\n this.setYear = (value, year) => {\n return this.adjustOffset(value.set('year', year));\n };\n this.setMonth = (value, month) => {\n return this.adjustOffset(value.set('month', month));\n };\n this.setDate = (value, date) => {\n return this.adjustOffset(value.set('date', date));\n };\n this.setHours = (value, hours) => {\n return this.adjustOffset(value.set('hour', hours));\n };\n this.setMinutes = (value, minutes) => {\n return this.adjustOffset(value.set('minute', minutes));\n };\n this.setSeconds = (value, seconds) => {\n return this.adjustOffset(value.set('second', seconds));\n };\n this.setMilliseconds = (value, milliseconds) => {\n return this.adjustOffset(value.set('millisecond', milliseconds));\n };\n this.getDaysInMonth = value => {\n return value.daysInMonth();\n };\n this.getNextMonth = value => {\n return this.addMonths(value, 1);\n };\n this.getPreviousMonth = value => {\n return this.addMonths(value, -1);\n };\n this.getMonthArray = value => {\n const firstMonth = value.startOf('year');\n const monthArray = [firstMonth];\n while (monthArray.length < 12) {\n const prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.addMonths(prevMonth, 1));\n }\n return monthArray;\n };\n this.mergeDateAndTime = (dateParam, timeParam) => {\n return dateParam.hour(timeParam.hour()).minute(timeParam.minute()).second(timeParam.second());\n };\n this.getWeekdays = () => {\n const start = this.dayjs().startOf('week');\n return [0, 1, 2, 3, 4, 5, 6].map(diff => this.formatByString(this.addDays(start, diff), 'dd'));\n };\n this.getWeekArray = value => {\n const cleanValue = this.setLocaleToValue(value);\n const start = cleanValue.startOf('month').startOf('week');\n const end = cleanValue.endOf('month').endOf('week');\n let count = 0;\n let current = start;\n const nestedWeeks = [];\n while (current < end) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = this.addDays(current, 1);\n count += 1;\n }\n return nestedWeeks;\n };\n this.getWeekNumber = value => {\n return value.week();\n };\n this.getYearRange = (start, end) => {\n const startDate = start.startOf('year');\n const endDate = end.endOf('year');\n const years = [];\n let current = startDate;\n while (current < endDate) {\n years.push(current);\n current = this.addYears(current, 1);\n }\n return years;\n };\n this.getMeridiemText = ampm => {\n return ampm === 'am' ? 'AM' : 'PM';\n };\n this.rawDayJsInstance = instance;\n this.dayjs = withLocale((_this$rawDayJsInstanc = this.rawDayJsInstance) != null ? _this$rawDayJsInstanc : defaultDayjs, _locale);\n this.locale = _locale;\n this.formats = _extends({}, defaultFormats, formats);\n defaultDayjs.extend(weekOfYear);\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"localeText\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useThemeProps } from '@mui/material/styles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const MuiPickersAdapterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n MuiPickersAdapterContext.displayName = 'MuiPickersAdapterContext';\n}\n/**\n * Demos:\n *\n * - [Date format and localization](https://mui.com/x/react-date-pickers/adapters-locale/)\n * - [Calendar systems](https://mui.com/x/react-date-pickers/calendar-systems/)\n * - [Translated components](https://mui.com/x/react-date-pickers/localization/)\n * - [UTC and timezones](https://mui.com/x/react-date-pickers/timezone/)\n *\n * API:\n *\n * - [LocalizationProvider API](https://mui.com/x/api/date-pickers/localization-provider/)\n */\nexport const LocalizationProvider = function LocalizationProvider(inProps) {\n var _React$useContext;\n const {\n localeText: inLocaleText\n } = inProps,\n otherInProps = _objectWithoutPropertiesLoose(inProps, _excluded);\n const {\n utils: parentUtils,\n localeText: parentLocaleText\n } = (_React$useContext = React.useContext(MuiPickersAdapterContext)) != null ? _React$useContext : {\n utils: undefined,\n localeText: undefined\n };\n const props = useThemeProps({\n // We don't want to pass the `localeText` prop to the theme, that way it will always return the theme value,\n // We will then merge this theme value with our value manually\n props: otherInProps,\n name: 'MuiLocalizationProvider'\n });\n const {\n children,\n dateAdapter: DateAdapter,\n dateFormats,\n dateLibInstance,\n adapterLocale,\n localeText: themeLocaleText\n } = props;\n const localeText = React.useMemo(() => _extends({}, themeLocaleText, parentLocaleText, inLocaleText), [themeLocaleText, parentLocaleText, inLocaleText]);\n const utils = React.useMemo(() => {\n if (!DateAdapter) {\n if (parentUtils) {\n return parentUtils;\n }\n return null;\n }\n const adapter = new DateAdapter({\n locale: adapterLocale,\n formats: dateFormats,\n instance: dateLibInstance\n });\n if (!adapter.isMUIAdapter) {\n throw new Error(['MUI: The date adapter should be imported from `@mui/x-date-pickers` or `@mui/x-date-pickers-pro`, not from `@date-io`', \"For example, `import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'` instead of `import AdapterDayjs from '@date-io/dayjs'`\", 'More information on the installation documentation: https://mui.com/x/react-date-pickers/getting-started/#installation'].join(`\\n`));\n }\n return adapter;\n }, [DateAdapter, adapterLocale, dateFormats, dateLibInstance, parentUtils]);\n const defaultDates = React.useMemo(() => {\n if (!utils) {\n return null;\n }\n return {\n minDate: utils.date('1900-01-01T00:00:00.000'),\n maxDate: utils.date('2099-12-31T00:00:00.000')\n };\n }, [utils]);\n const contextValue = React.useMemo(() => {\n return {\n utils,\n defaultDates,\n localeText\n };\n }, [defaultDates, utils, localeText]);\n return /*#__PURE__*/_jsx(MuiPickersAdapterContext.Provider, {\n value: contextValue,\n children: children\n });\n};\nprocess.env.NODE_ENV !== \"production\" ? LocalizationProvider.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Locale for the date library you are using\n */\n adapterLocale: PropTypes.any,\n children: PropTypes.node,\n /**\n * Date library adapter class function.\n * @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.\n */\n dateAdapter: PropTypes.func,\n /**\n * Formats that are used for any child pickers\n */\n dateFormats: PropTypes.shape({\n dayOfMonth: PropTypes.string,\n fullDate: PropTypes.string,\n fullDateTime: PropTypes.string,\n fullDateTime12h: PropTypes.string,\n fullDateTime24h: PropTypes.string,\n fullDateWithWeekday: PropTypes.string,\n fullTime: PropTypes.string,\n fullTime12h: PropTypes.string,\n fullTime24h: PropTypes.string,\n hours12h: PropTypes.string,\n hours24h: PropTypes.string,\n keyboardDate: PropTypes.string,\n keyboardDateTime: PropTypes.string,\n keyboardDateTime12h: PropTypes.string,\n keyboardDateTime24h: PropTypes.string,\n meridiem: PropTypes.string,\n minutes: PropTypes.string,\n month: PropTypes.string,\n monthAndDate: PropTypes.string,\n monthAndYear: PropTypes.string,\n monthShort: PropTypes.string,\n normalDate: PropTypes.string,\n normalDateWithWeekday: PropTypes.string,\n seconds: PropTypes.string,\n shortDate: PropTypes.string,\n weekday: PropTypes.string,\n weekdayShort: PropTypes.string,\n year: PropTypes.string\n }),\n /**\n * Date library instance you are using, if it has some global overrides\n * ```jsx\n * dateLibInstance={momentTimeZone}\n * ```\n */\n dateLibInstance: PropTypes.any,\n /**\n * Locale for components texts\n */\n localeText: PropTypes.object\n} : void 0;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTypographyUtilityClass(slot) {\n return generateUtilityClass('MuiTypography', slot);\n}\nconst typographyClasses = generateUtilityClasses('MuiTypography', ['root', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'inherit', 'button', 'caption', 'overline', 'alignLeft', 'alignRight', 'alignCenter', 'alignJustify', 'noWrap', 'gutterBottom', 'paragraph']);\nexport default typographyClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"align\", \"className\", \"component\", \"gutterBottom\", \"noWrap\", \"paragraph\", \"variant\", \"variantMapping\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { extendSxProp } from '@mui/system/styleFunctionSx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport { getTypographyUtilityClass } from './typographyClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n align,\n gutterBottom,\n noWrap,\n paragraph,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, ownerState.align !== 'inherit' && `align${capitalize(align)}`, gutterBottom && 'gutterBottom', noWrap && 'noWrap', paragraph && 'paragraph']\n };\n return composeClasses(slots, getTypographyUtilityClass, classes);\n};\nexport const TypographyRoot = styled('span', {\n name: 'MuiTypography',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.variant && styles[ownerState.variant], ownerState.align !== 'inherit' && styles[`align${capitalize(ownerState.align)}`], ownerState.noWrap && styles.noWrap, ownerState.gutterBottom && styles.gutterBottom, ownerState.paragraph && styles.paragraph];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 0\n}, ownerState.variant === 'inherit' && {\n // Some elements, like \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport useTimeout from '@mui/utils/useTimeout';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n});\n\n// This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]);\n\n // Used to filter out mouse emulated events on mobile.\n const ignoringMouseDown = React.useRef(false);\n // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n const startTimer = useTimeout();\n\n // This is the hook called once the previous timeout is ready.\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb = () => {}) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n } = options;\n if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if ((event == null ? void 0 : event.type) === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n // Get the size of the ripple\n let rippleX;\n let rippleY;\n let rippleSize;\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);\n\n // For some reason the animation is broken on Mobile Chrome if the size is even.\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n // Touche devices\n if (event != null && event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n };\n // Delay the execution of the ripple effect.\n // We have to make a tradeoff with this delay value.\n startTimer.start(DELAY_RIPPLE, () => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n });\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit, startTimer]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n startTimer.clear();\n\n // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.start(0, () => {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, [startTimer]);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n className: clsx(touchRippleClasses.root, classes.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n return composedClasses;\n};\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const buttonRef = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRippleRef = useForkRef(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = React.useState(false);\n React.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n const ignore = skipRippleAction;\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n return true;\n });\n }\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\n }\n });\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n const keydownRef = React.useRef(false);\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a \r\n *
\r\n * )\r\n * }\r\n */\n\nexport const useDispatch = /*#__PURE__*/createDispatchHook();","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n","import React__default, { useMemo, forwardRef, useRef, useCallback, useEffect, createElement, cloneElement, useLayoutEffect, memo, useState, Component, isValidElement, useContext } from 'react';\nimport { createPortal } from 'react-dom';\nimport clsx from 'clsx';\nimport { css } from 'goober';\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _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\nvar noOp = function noOp() {\n return '';\n};\n\nvar SnackbarContext = /*#__PURE__*/React__default.createContext({\n enqueueSnackbar: noOp,\n closeSnackbar: noOp\n});\n\nvar breakpoints = {\n downXs: '@media (max-width:599.95px)',\n upSm: '@media (min-width:600px)'\n};\n\nvar capitalise = function capitalise(text) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n};\n\nvar originKeyExtractor = function originKeyExtractor(anchor) {\n return \"\" + capitalise(anchor.vertical) + capitalise(anchor.horizontal);\n};\nvar isDefined = function isDefined(value) {\n return !!value || value === 0;\n};\n\nvar UNMOUNTED = 'unmounted';\nvar EXITED = 'exited';\nvar ENTERING = 'entering';\nvar ENTERED = 'entered';\nvar EXITING = 'exiting';\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n var appear = props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props[\"in\"]) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref[\"in\"];\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n };\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props[\"in\"]) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var enter = timeout;\n var exit = timeout;\n\n if (timeout != null && typeof timeout !== 'number' && typeof timeout !== 'string') {\n exit = timeout.exit;\n enter = timeout.enter;\n }\n\n return {\n exit: exit,\n enter: enter\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var isAppearing = mounting;\n var timeouts = this.getTimeouts();\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n if (_this2.props.onEntered) {\n _this2.props.onEntered(_this2.node, isAppearing);\n }\n });\n return;\n }\n\n if (this.props.onEnter) {\n this.props.onEnter(this.node, isAppearing);\n }\n\n this.safeSetState({\n status: ENTERING\n }, function () {\n if (_this2.props.onEntering) {\n _this2.props.onEntering(_this2.node, isAppearing);\n }\n\n _this2.onTransitionEnd(timeouts.enter, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n if (_this2.props.onEntered) {\n _this2.props.onEntered(_this2.node, isAppearing);\n }\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n if (_this3.props.onExited) {\n _this3.props.onExited(_this3.node);\n }\n });\n return;\n }\n\n if (this.props.onExit) {\n this.props.onExit(this.node);\n }\n\n this.safeSetState({\n status: EXITING\n }, function () {\n if (_this3.props.onExiting) {\n _this3.props.onExiting(_this3.node);\n }\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n if (_this3.props.onExited) {\n _this3.props.onExited(_this3.node);\n }\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null && this.nextCallback.cancel) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function () {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback();\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!this.node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(this.node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return children(status, childProps);\n };\n\n _createClass(Transition, [{\n key: \"node\",\n get: function get() {\n var _this$props$nodeRef;\n\n var node = (_this$props$nodeRef = this.props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current;\n\n if (!node) {\n throw new Error('notistack - Custom snackbar is not refForwarding');\n }\n\n return node;\n }\n }]);\n\n return Transition;\n}(React__default.Component);\n\nfunction noop() {//\n}\n\nTransition.defaultProps = {\n \"in\": false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\n\n/**\r\n * Credit to MUI team @ https://mui.com\r\n */\n/**\r\n * passes {value} to {ref}\r\n *\r\n * Useful if you want to expose the ref of an inner component to the public API\r\n * while still using it inside the component.\r\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\r\n */\n\nfunction setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nfunction useForkRef(refA, refB) {\n /**\r\n * This will create a new function if the ref props change and are defined.\r\n * This means react will call the old forkRef with `null` and the new forkRef\r\n * with the ref. Cleanup naturally emerges from this behavior.\r\n */\n return useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}\n\nfunction getTransitionProps(props) {\n var timeout = props.timeout,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style,\n mode = props.mode;\n return {\n duration: typeof timeout === 'object' ? timeout[mode] || 0 : timeout,\n easing: style.transitionTimingFunction,\n delay: style.transitionDelay\n };\n}\n\n/**\r\n * Credit to MUI team @ https://mui.com\r\n */\nvar defaultEasing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n/**\r\n * CSS hack to force a repaint\r\n */\n\nvar reflow = function reflow(node) {\n // We have to do something with node.scrollTop.\n // Otherwise it's removed from the compiled code by optimisers\n // eslint-disable-next-line no-self-assign\n node.scrollTop = node.scrollTop;\n};\n\nvar formatMs = function formatMs(milliseconds) {\n return Math.round(milliseconds) + \"ms\";\n};\n\nfunction createTransition(props, options) {\n if (props === void 0) {\n props = ['all'];\n }\n\n var _ref = options || {},\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 300 : _ref$duration,\n _ref$easing = _ref.easing,\n easing = _ref$easing === void 0 ? defaultEasing.easeInOut : _ref$easing,\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 0 : _ref$delay;\n\n var properties = Array.isArray(props) ? props : [props];\n return properties.map(function (animatedProp) {\n var formattedDuration = typeof duration === 'string' ? duration : formatMs(duration);\n var formattedDelay = typeof delay === 'string' ? delay : formatMs(delay);\n return animatedProp + \" \" + formattedDuration + \" \" + easing + \" \" + formattedDelay;\n }).join(',');\n}\n\nfunction ownerDocument(node) {\n return node && node.ownerDocument || document;\n}\n\nfunction ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc.defaultView || window;\n}\n/**\r\n * Corresponds to 10 frames at 60 Hz.\r\n * A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\r\n */\n\n\nfunction debounce(func, wait) {\n if (wait === void 0) {\n wait = 166;\n }\n\n var timeout;\n\n function debounced() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var later = function later() {\n // @ts-ignore\n func.apply(_this, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = function () {\n clearTimeout(timeout);\n };\n\n return debounced;\n}\n/**\r\n * Translate the node so it can't be seen on the screen.\r\n * Later, we're going to translate the node back to its original location with `none`.\r\n */\n\n\nfunction getTranslateValue(direction, node) {\n var rect = node.getBoundingClientRect();\n var containerWindow = ownerWindow(node);\n var transform;\n\n if (node.fakeTransform) {\n transform = node.fakeTransform;\n } else {\n var computedStyle = containerWindow.getComputedStyle(node);\n transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n }\n\n var offsetX = 0;\n var offsetY = 0;\n\n if (transform && transform !== 'none' && typeof transform === 'string') {\n var transformValues = transform.split('(')[1].split(')')[0].split(',');\n offsetX = parseInt(transformValues[4], 10);\n offsetY = parseInt(transformValues[5], 10);\n }\n\n switch (direction) {\n case 'left':\n return \"translateX(\" + (containerWindow.innerWidth + offsetX - rect.left) + \"px)\";\n\n case 'right':\n return \"translateX(-\" + (rect.left + rect.width - offsetX) + \"px)\";\n\n case 'up':\n return \"translateY(\" + (containerWindow.innerHeight + offsetY - rect.top) + \"px)\";\n\n default:\n // down\n return \"translateY(-\" + (rect.top + rect.height - offsetY) + \"px)\";\n }\n}\n\nfunction setTranslateValue(direction, node) {\n if (!node) return;\n var transform = getTranslateValue(direction, node);\n\n if (transform) {\n node.style.webkitTransform = transform;\n node.style.transform = transform;\n }\n}\n\nvar Slide = /*#__PURE__*/forwardRef(function (props, ref) {\n var children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'down' : _props$direction,\n inProp = props[\"in\"],\n style = props.style,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? 0 : _props$timeout,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onExit = props.onExit,\n onExited = props.onExited,\n other = _objectWithoutPropertiesLoose(props, [\"children\", \"direction\", \"in\", \"style\", \"timeout\", \"onEnter\", \"onEntered\", \"onExit\", \"onExited\"]);\n\n var nodeRef = useRef(null);\n var handleRefIntermediary = useForkRef(children.ref, nodeRef);\n var handleRef = useForkRef(handleRefIntermediary, ref);\n\n var handleEnter = function handleEnter(node, isAppearing) {\n setTranslateValue(direction, node);\n reflow(node);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n };\n\n var handleEntering = function handleEntering(node) {\n var easing = (style === null || style === void 0 ? void 0 : style.transitionTimingFunction) || defaultEasing.easeOut;\n var transitionProps = getTransitionProps({\n timeout: timeout,\n mode: 'enter',\n style: _extends({}, style, {\n transitionTimingFunction: easing\n })\n });\n node.style.webkitTransition = createTransition('-webkit-transform', transitionProps);\n node.style.transition = createTransition('transform', transitionProps);\n node.style.webkitTransform = 'none';\n node.style.transform = 'none';\n };\n\n var handleExit = function handleExit(node) {\n var easing = (style === null || style === void 0 ? void 0 : style.transitionTimingFunction) || defaultEasing.sharp;\n var transitionProps = getTransitionProps({\n timeout: timeout,\n mode: 'exit',\n style: _extends({}, style, {\n transitionTimingFunction: easing\n })\n });\n node.style.webkitTransition = createTransition('-webkit-transform', transitionProps);\n node.style.transition = createTransition('transform', transitionProps);\n setTranslateValue(direction, node);\n\n if (onExit) {\n onExit(node);\n }\n };\n\n var handleExited = function handleExited(node) {\n // No need for transitions when the component is hidden\n node.style.webkitTransition = '';\n node.style.transition = '';\n\n if (onExited) {\n onExited(node);\n }\n };\n\n var updatePosition = useCallback(function () {\n if (nodeRef.current) {\n setTranslateValue(direction, nodeRef.current);\n }\n }, [direction]);\n useEffect(function () {\n // Skip configuration where the position is screen size invariant.\n if (inProp || direction === 'down' || direction === 'right') {\n return undefined;\n }\n\n var handleResize = debounce(function () {\n if (nodeRef.current) {\n setTranslateValue(direction, nodeRef.current);\n }\n });\n var containerWindow = ownerWindow(nodeRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [direction, inProp]);\n useEffect(function () {\n if (!inProp) {\n // We need to update the position of the drawer when the direction change and\n // when it's hidden.\n updatePosition();\n }\n }, [inProp, updatePosition]);\n return createElement(Transition, Object.assign({\n appear: true,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: onEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n \"in\": inProp,\n timeout: timeout\n }, other), function (state, childProps) {\n return cloneElement(children, _extends({\n ref: handleRef,\n style: _extends({\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, style, {}, children.props.style)\n }, childProps));\n });\n});\nSlide.displayName = 'Slide';\n\nvar SvgIcon = function SvgIcon(props) {\n return React__default.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 24 24\",\n focusable: \"false\",\n style: {\n fontSize: 20,\n marginInlineEnd: 8,\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0\n }\n }, props));\n};\n\nvar CheckIcon = function CheckIcon() {\n return React__default.createElement(SvgIcon, null, React__default.createElement(\"path\", {\n d: \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41\\n 10.59L10 14.17L17.59 6.58L19 8L10 17Z\"\n }));\n};\n\nvar WarningIcon = function WarningIcon() {\n return React__default.createElement(SvgIcon, null, React__default.createElement(\"path\", {\n d: \"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z\"\n }));\n};\n\nvar ErrorIcon = function ErrorIcon() {\n return React__default.createElement(SvgIcon, null, React__default.createElement(\"path\", {\n d: \"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,\\n 6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,\\n 13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z\"\n }));\n};\n\nvar InfoIcon = function InfoIcon() {\n return React__default.createElement(SvgIcon, null, React__default.createElement(\"path\", {\n d: \"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,\\n 0 22,12A10,10 0 0,0 12,2Z\"\n }));\n};\n\nvar defaultIconVariants = {\n \"default\": undefined,\n success: /*#__PURE__*/React__default.createElement(CheckIcon, null),\n warning: /*#__PURE__*/React__default.createElement(WarningIcon, null),\n error: /*#__PURE__*/React__default.createElement(ErrorIcon, null),\n info: /*#__PURE__*/React__default.createElement(InfoIcon, null)\n};\n\nvar defaults = {\n maxSnack: 3,\n persist: false,\n hideIconVariant: false,\n disableWindowBlurListener: false,\n variant: 'default',\n autoHideDuration: 5000,\n iconVariant: defaultIconVariants,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left'\n },\n TransitionComponent: Slide,\n transitionDuration: {\n enter: 225,\n exit: 195\n }\n};\n/**\r\n * Derives the right autoHideDuration taking into account the following\r\n * prority order: 1: Options, 2: Props, 3: default fallback\r\n */\n\nvar getAutoHideDuration = function getAutoHideDuration(optionsDuration, propsDuration) {\n var isNumberOrNull = function isNumberOrNull(numberish) {\n return typeof numberish === 'number' || numberish === null;\n };\n\n if (isNumberOrNull(optionsDuration)) return optionsDuration;\n if (isNumberOrNull(propsDuration)) return propsDuration;\n return defaults.autoHideDuration;\n};\n/**\r\n * Derives the right transitionDuration taking into account the following\r\n * prority order: 1: Options, 2: Props, 3: default fallback\r\n */\n\n\nvar getTransitionDuration = function getTransitionDuration(optionsDuration, propsDuration) {\n var is = function is(item, types) {\n return types.some(function (t) {\n return typeof item === t;\n });\n };\n\n if (is(optionsDuration, ['string', 'number'])) {\n return optionsDuration;\n }\n\n if (is(optionsDuration, ['object'])) {\n return _extends({}, defaults.transitionDuration, {}, is(propsDuration, ['object']) && propsDuration, {}, optionsDuration);\n }\n\n if (is(propsDuration, ['string', 'number'])) {\n return propsDuration;\n }\n\n if (is(propsDuration, ['object'])) {\n return _extends({}, defaults.transitionDuration, {}, propsDuration);\n }\n\n return defaults.transitionDuration;\n};\n\nvar merge = function merge(options, props) {\n return function (name, shouldObjectMerge) {\n if (shouldObjectMerge === void 0) {\n shouldObjectMerge = false;\n }\n\n if (shouldObjectMerge) {\n return _extends({}, defaults[name], {}, props[name], {}, options[name]);\n }\n\n if (name === 'autoHideDuration') {\n return getAutoHideDuration(options.autoHideDuration, props.autoHideDuration);\n }\n\n if (name === 'transitionDuration') {\n return getTransitionDuration(options.transitionDuration, props.transitionDuration);\n }\n\n return options[name] || props[name] || defaults[name];\n };\n};\n\nfunction makeStyles(styles) {\n return Object.entries(styles).reduce(function (acc, _ref) {\n var _extends2;\n\n var key = _ref[0],\n value = _ref[1];\n return _extends({}, acc, (_extends2 = {}, _extends2[key] = css(value), _extends2));\n }, {});\n}\nvar ComponentClasses = {\n SnackbarContainer: 'notistack-SnackbarContainer',\n Snackbar: 'notistack-Snackbar',\n CollapseWrapper: 'notistack-CollapseWrapper',\n MuiContent: 'notistack-MuiContent',\n MuiContentVariant: function MuiContentVariant(variant) {\n return \"notistack-MuiContent-\" + variant;\n }\n};\n\nvar classes = /*#__PURE__*/makeStyles({\n root: {\n height: 0\n },\n entered: {\n height: 'auto'\n }\n});\nvar collapsedSize = '0px';\nvar timeout = 175;\nvar Collapse = /*#__PURE__*/forwardRef(function (props, ref) {\n var children = props.children,\n inProp = props[\"in\"],\n onExited = props.onExited;\n var wrapperRef = useRef(null);\n var nodeRef = useRef(null);\n var handleRef = useForkRef(ref, nodeRef);\n\n var getWrapperSize = function getWrapperSize() {\n return wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n };\n\n var handleEnter = function handleEnter(node) {\n node.style.height = collapsedSize;\n };\n\n var handleEntering = function handleEntering(node) {\n var wrapperSize = getWrapperSize();\n\n var _getTransitionProps = getTransitionProps({\n timeout: timeout,\n mode: 'enter'\n }),\n transitionDuration = _getTransitionProps.duration,\n easing = _getTransitionProps.easing;\n\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : transitionDuration + \"ms\";\n node.style.height = wrapperSize + \"px\";\n node.style.transitionTimingFunction = easing || '';\n };\n\n var handleEntered = function handleEntered(node) {\n node.style.height = 'auto';\n };\n\n var handleExit = function handleExit(node) {\n node.style.height = getWrapperSize() + \"px\";\n };\n\n var handleExiting = function handleExiting(node) {\n reflow(node);\n\n var _getTransitionProps2 = getTransitionProps({\n timeout: timeout,\n mode: 'exit'\n }),\n transitionDuration = _getTransitionProps2.duration,\n easing = _getTransitionProps2.easing;\n\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : transitionDuration + \"ms\";\n node.style.height = collapsedSize;\n node.style.transitionTimingFunction = easing || '';\n };\n\n return createElement(Transition, {\n \"in\": inProp,\n unmountOnExit: true,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: onExited,\n onExiting: handleExiting,\n nodeRef: nodeRef,\n timeout: timeout\n }, function (state, childProps) {\n return createElement(\"div\", Object.assign({\n ref: handleRef,\n className: clsx(classes.root, state === 'entered' && classes.entered),\n style: _extends({\n pointerEvents: 'all',\n overflow: 'hidden',\n minHeight: collapsedSize,\n transition: createTransition('height')\n }, state === 'entered' && {\n overflow: 'visible'\n }, {}, state === 'exited' && !inProp && {\n visibility: 'hidden'\n })\n }, childProps), createElement(\"div\", {\n ref: wrapperRef,\n className: ComponentClasses.CollapseWrapper,\n // Hack to get children with a negative margin to not falsify the height computation.\n style: {\n display: 'flex',\n width: '100%'\n }\n }, children));\n });\n});\nCollapse.displayName = 'Collapse';\n\nvar direction = {\n right: 'left',\n left: 'right',\n bottom: 'up',\n top: 'down'\n};\nvar getSlideDirection = function getSlideDirection(anchorOrigin) {\n if (anchorOrigin.horizontal !== 'center') {\n return direction[anchorOrigin.horizontal];\n }\n\n return direction[anchorOrigin.vertical];\n};\n/** Tranforms classes name */\n\nvar toSnackbarAnchorOrigin = function toSnackbarAnchorOrigin(anchorOrigin) {\n return \"anchorOrigin\" + originKeyExtractor(anchorOrigin);\n};\n/**\r\n * Omit SnackbarContainer class keys that are not needed for SnackbarItem\r\n */\n\nvar keepSnackbarClassKeys = function keepSnackbarClassKeys(classes) {\n if (classes === void 0) {\n classes = {};\n }\n\n var containerClasses = {\n containerRoot: true,\n containerAnchorOriginTopCenter: true,\n containerAnchorOriginBottomCenter: true,\n containerAnchorOriginTopRight: true,\n containerAnchorOriginBottomRight: true,\n containerAnchorOriginTopLeft: true,\n containerAnchorOriginBottomLeft: true\n };\n return Object.keys(classes).filter(function (key) {\n return !containerClasses[key];\n }).reduce(function (obj, key) {\n var _extends2;\n\n return _extends({}, obj, (_extends2 = {}, _extends2[key] = classes[key], _extends2));\n }, {});\n};\n\nvar noOp$1 = function noOp() {\n /* */\n};\n/**\r\n * Credit to MUI team @ https://mui.com\r\n * Safe chained function.\r\n *\r\n * Will only create a new function if needed,\r\n * otherwise will pass back existing functions or null.\r\n */\n\n\nfunction createChainedFunction(funcs, snackbarId) {\n // @ts-ignore\n return funcs.reduce(function (acc, func) {\n if (func === null || func === undefined) {\n return acc;\n }\n\n return function chainedFunction() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argums = [].concat(args);\n\n if (snackbarId && argums.indexOf(snackbarId) === -1) {\n argums.push(snackbarId);\n } // @ts-ignore\n\n\n acc.apply(this, argums);\n func.apply(this, argums);\n };\n }, noOp$1);\n}\n\n/**\r\n * Credit to MUI team @ https://mui.com\r\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\r\n */\nvar useEnhancedEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nfunction useEventCallback(fn) {\n var ref = useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return useCallback(function () {\n return (// @ts-expect-error hide `this`\n (ref.current).apply(void 0, arguments)\n );\n }, []);\n}\n\n/**\r\n * Credit to MUI team @ https://mui.com\r\n */\nvar Snackbar = /*#__PURE__*/forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n autoHideDuration = props.autoHideDuration,\n _props$disableWindowB = props.disableWindowBlurListener,\n disableWindowBlurListener = _props$disableWindowB === void 0 ? false : _props$disableWindowB,\n onClose = props.onClose,\n id = props.id,\n open = props.open,\n _props$SnackbarProps = props.SnackbarProps,\n SnackbarProps = _props$SnackbarProps === void 0 ? {} : _props$SnackbarProps;\n var timerAutoHide = useRef();\n var handleClose = useEventCallback(function () {\n if (onClose) {\n onClose.apply(void 0, arguments);\n }\n });\n var setAutoHideTimer = useEventCallback(function (autoHideDurationParam) {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n\n if (timerAutoHide.current) {\n clearTimeout(timerAutoHide.current);\n }\n\n timerAutoHide.current = setTimeout(function () {\n handleClose(null, 'timeout', id);\n }, autoHideDurationParam);\n });\n useEffect(function () {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return function () {\n if (timerAutoHide.current) {\n clearTimeout(timerAutoHide.current);\n }\n };\n }, [open, autoHideDuration, setAutoHideTimer]);\n /**\r\n * Pause the timer when the user is interacting with the Snackbar\r\n * or when the user hide the window.\r\n */\n\n var handlePause = function handlePause() {\n if (timerAutoHide.current) {\n clearTimeout(timerAutoHide.current);\n }\n };\n /**\r\n * Restart the timer when the user is no longer interacting with the Snackbar\r\n * or when the window is shown back.\r\n */\n\n\n var handleResume = useCallback(function () {\n if (autoHideDuration != null) {\n setAutoHideTimer(autoHideDuration * 0.5);\n }\n }, [autoHideDuration, setAutoHideTimer]);\n\n var handleMouseEnter = function handleMouseEnter(event) {\n if (SnackbarProps.onMouseEnter) {\n SnackbarProps.onMouseEnter(event);\n }\n\n handlePause();\n };\n\n var handleMouseLeave = function handleMouseLeave(event) {\n if (SnackbarProps.onMouseLeave) {\n SnackbarProps.onMouseLeave(event);\n }\n\n handleResume();\n };\n\n useEffect(function () {\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n return function () {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n\n return undefined;\n }, [disableWindowBlurListener, handleResume, open]);\n return createElement(\"div\", Object.assign({\n ref: ref\n }, SnackbarProps, {\n className: clsx(ComponentClasses.Snackbar, className),\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave\n }), children);\n});\nSnackbar.displayName = 'Snackbar';\n\nvar _root;\nvar classes$1 = /*#__PURE__*/makeStyles({\n root: (_root = {\n display: 'flex',\n flexWrap: 'wrap',\n flexGrow: 1\n }, _root[breakpoints.upSm] = {\n flexGrow: 'initial',\n minWidth: '288px'\n }, _root)\n});\nvar SnackbarContent = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, [\"className\"]);\n\n return React__default.createElement(\"div\", Object.assign({\n ref: ref,\n className: clsx(classes$1.root, className)\n }, props));\n});\nSnackbarContent.displayName = 'SnackbarContent';\n\nvar classes$2 = /*#__PURE__*/makeStyles({\n root: {\n backgroundColor: '#313131',\n fontSize: '0.875rem',\n lineHeight: 1.43,\n letterSpacing: '0.01071em',\n color: '#fff',\n alignItems: 'center',\n padding: '6px 16px',\n borderRadius: '4px',\n boxShadow: '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)'\n },\n lessPadding: {\n paddingLeft: 8 * 2.5 + \"px\"\n },\n \"default\": {\n backgroundColor: '#313131'\n },\n success: {\n backgroundColor: '#43a047'\n },\n error: {\n backgroundColor: '#d32f2f'\n },\n warning: {\n backgroundColor: '#ff9800'\n },\n info: {\n backgroundColor: '#2196f3'\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n padding: '8px 0'\n },\n action: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: '16px',\n marginRight: '-8px'\n }\n});\nvar ariaDescribedby = 'notistack-snackbar';\nvar MaterialDesignContent = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var id = props.id,\n message = props.message,\n componentOrFunctionAction = props.action,\n iconVariant = props.iconVariant,\n variant = props.variant,\n hideIconVariant = props.hideIconVariant,\n style = props.style,\n className = props.className;\n var icon = iconVariant[variant];\n var action = componentOrFunctionAction;\n\n if (typeof action === 'function') {\n action = action(id);\n }\n\n return React__default.createElement(SnackbarContent, {\n ref: forwardedRef,\n role: \"alert\",\n \"aria-describedby\": ariaDescribedby,\n style: style,\n className: clsx(ComponentClasses.MuiContent, ComponentClasses.MuiContentVariant(variant), classes$2.root, classes$2[variant], className, !hideIconVariant && icon && classes$2.lessPadding)\n }, React__default.createElement(\"div\", {\n id: ariaDescribedby,\n className: classes$2.message\n }, !hideIconVariant ? icon : null, message), action && React__default.createElement(\"div\", {\n className: classes$2.action\n }, action));\n});\nMaterialDesignContent.displayName = 'MaterialDesignContent';\nvar MaterialDesignContent$1 = /*#__PURE__*/memo(MaterialDesignContent);\n\nvar styles = /*#__PURE__*/makeStyles({\n wrappedRoot: {\n width: '100%',\n position: 'relative',\n transform: 'translateX(0)',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n minWidth: '288px'\n }\n});\n\nvar SnackbarItem = function SnackbarItem(props) {\n var timeout = useRef();\n\n var _useState = useState(true),\n collapsed = _useState[0],\n setCollapsed = _useState[1];\n\n var handleClose = createChainedFunction([props.snack.onClose, props.onClose]);\n\n var handleEntered = function handleEntered() {\n if (props.snack.requestClose) {\n handleClose(null, 'instructed', props.snack.id);\n }\n };\n\n var handleExitedScreen = useCallback(function () {\n timeout.current = setTimeout(function () {\n setCollapsed(function (col) {\n return !col;\n });\n }, 125);\n }, []);\n useEffect(function () {\n return function () {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n };\n }, []);\n var snack = props.snack,\n allClasses = props.classes,\n _props$Component = props.Component,\n Component = _props$Component === void 0 ? MaterialDesignContent$1 : _props$Component;\n var classes = useMemo(function () {\n return keepSnackbarClassKeys(allClasses);\n }, [allClasses]);\n\n var open = snack.open,\n SnackbarProps = snack.SnackbarProps,\n TransitionComponent = snack.TransitionComponent,\n TransitionProps = snack.TransitionProps,\n transitionDuration = snack.transitionDuration,\n disableWindowBlurListener = snack.disableWindowBlurListener,\n componentOrFunctionContent = snack.content,\n otherSnack = _objectWithoutPropertiesLoose(snack, [\"open\", \"SnackbarProps\", \"TransitionComponent\", \"TransitionProps\", \"transitionDuration\", \"disableWindowBlurListener\", \"content\", \"entered\", \"requestClose\", \"onEnter\", \"onEntered\", \"onExit\", \"onExited\"]);\n\n var transitionProps = _extends({\n direction: getSlideDirection(otherSnack.anchorOrigin),\n timeout: transitionDuration\n }, TransitionProps);\n\n var content = componentOrFunctionContent;\n\n if (typeof content === 'function') {\n content = content(otherSnack.id, otherSnack.message);\n }\n\n var callbacks = ['onEnter', 'onEntered', 'onExit', 'onExited'].reduce(function (acc, cbName) {\n var _extends2;\n\n return _extends({}, acc, (_extends2 = {}, _extends2[cbName] = createChainedFunction([props.snack[cbName], props[cbName]], otherSnack.id), _extends2));\n }, {});\n return React__default.createElement(Collapse, {\n \"in\": collapsed,\n onExited: callbacks.onExited\n }, React__default.createElement(Snackbar, {\n open: open,\n id: otherSnack.id,\n disableWindowBlurListener: disableWindowBlurListener,\n autoHideDuration: otherSnack.autoHideDuration,\n className: clsx(styles.wrappedRoot, classes.root, classes[toSnackbarAnchorOrigin(otherSnack.anchorOrigin)]),\n SnackbarProps: SnackbarProps,\n onClose: handleClose\n }, React__default.createElement(TransitionComponent, Object.assign({}, transitionProps, {\n appear: true,\n \"in\": open,\n onExit: callbacks.onExit,\n onExited: handleExitedScreen,\n onEnter: callbacks.onEnter,\n // order matters. first callbacks.onEntered to set entered: true,\n // then handleEntered to check if there's a request for closing\n onEntered: createChainedFunction([callbacks.onEntered, handleEntered], otherSnack.id)\n }), content || React__default.createElement(Component, Object.assign({}, otherSnack)))));\n};\n\nvar _root$1, _rootDense, _left, _right, _center;\nvar indents = {\n view: {\n \"default\": 20,\n dense: 4\n },\n snackbar: {\n \"default\": 6,\n dense: 2\n }\n};\nvar collapseWrapper = \".\" + ComponentClasses.CollapseWrapper;\nvar xsWidthMargin = 16;\nvar styles$1 = /*#__PURE__*/makeStyles({\n root: (_root$1 = {\n boxSizing: 'border-box',\n display: 'flex',\n maxHeight: '100%',\n position: 'fixed',\n zIndex: 1400,\n height: 'auto',\n width: 'auto',\n transition: /*#__PURE__*/createTransition(['top', 'right', 'bottom', 'left', 'max-width'], {\n duration: 300,\n easing: 'ease'\n }),\n // container itself is invisible and should not block clicks, clicks should be passed to its children\n // a pointerEvents: all is applied in the collapse component\n pointerEvents: 'none'\n }, _root$1[collapseWrapper] = {\n padding: indents.snackbar[\"default\"] + \"px 0px\",\n transition: 'padding 300ms ease 0ms'\n }, _root$1.maxWidth = \"calc(100% - \" + indents.view[\"default\"] * 2 + \"px)\", _root$1[breakpoints.downXs] = {\n width: '100%',\n maxWidth: \"calc(100% - \" + xsWidthMargin * 2 + \"px)\"\n }, _root$1),\n rootDense: (_rootDense = {}, _rootDense[collapseWrapper] = {\n padding: indents.snackbar.dense + \"px 0px\"\n }, _rootDense),\n top: {\n top: indents.view[\"default\"] - indents.snackbar[\"default\"] + \"px\",\n flexDirection: 'column'\n },\n bottom: {\n bottom: indents.view[\"default\"] - indents.snackbar[\"default\"] + \"px\",\n flexDirection: 'column-reverse'\n },\n left: (_left = {\n left: indents.view[\"default\"] + \"px\"\n }, _left[breakpoints.upSm] = {\n alignItems: 'flex-start'\n }, _left[breakpoints.downXs] = {\n left: xsWidthMargin + \"px\"\n }, _left),\n right: (_right = {\n right: indents.view[\"default\"] + \"px\"\n }, _right[breakpoints.upSm] = {\n alignItems: 'flex-end'\n }, _right[breakpoints.downXs] = {\n right: xsWidthMargin + \"px\"\n }, _right),\n center: (_center = {\n left: '50%',\n transform: 'translateX(-50%)'\n }, _center[breakpoints.upSm] = {\n alignItems: 'center'\n }, _center)\n});\n\nvar SnackbarContainer = function SnackbarContainer(props) {\n var _props$classes = props.classes,\n classes = _props$classes === void 0 ? {} : _props$classes,\n anchorOrigin = props.anchorOrigin,\n dense = props.dense,\n children = props.children;\n var combinedClassname = clsx(ComponentClasses.SnackbarContainer, styles$1[anchorOrigin.vertical], styles$1[anchorOrigin.horizontal], styles$1.root, // root should come after others to override maxWidth\n classes.containerRoot, classes[\"containerAnchorOrigin\" + originKeyExtractor(anchorOrigin)], dense && styles$1.rootDense);\n return React__default.createElement(\"div\", {\n className: combinedClassname\n }, children);\n};\n\nvar SnackbarContainer$1 = /*#__PURE__*/memo(SnackbarContainer);\n\n/* eslint-disable */\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar messages = {\n NO_PERSIST_ALL: \"Reached maxSnack while all enqueued snackbars have 'persist' flag. Notistack will dismiss the oldest snackbar anyway to allow other ones in the queue to be presented.\"\n};\nvar warning = (function (messageKey) {\n if (!__DEV__) return;\n var message = messages[messageKey];\n\n if (typeof console !== 'undefined') {\n console.error(\"WARNING - notistack: \" + message);\n }\n\n try {\n throw new Error(message);\n } catch (x) {}\n});\n\nvar isOptions = function isOptions(messageOrOptions) {\n var isMessage = typeof messageOrOptions === 'string' || isValidElement(messageOrOptions);\n return !isMessage;\n};\n\nvar enqueueSnackbar;\nvar closeSnackbar;\n\nvar SnackbarProvider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(SnackbarProvider, _Component);\n\n function SnackbarProvider(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n /**\r\n * Adds a new snackbar to the queue to be presented.\r\n * Returns generated or user defined key referencing the new snackbar or null\r\n */\n\n _this.enqueueSnackbar = function (messageOrOptions, optsOrUndefined) {\n if (optsOrUndefined === void 0) {\n optsOrUndefined = {};\n }\n\n if (messageOrOptions === undefined || messageOrOptions === null) {\n throw new Error('enqueueSnackbar called with invalid argument');\n }\n\n var opts = isOptions(messageOrOptions) ? messageOrOptions : optsOrUndefined;\n var message = isOptions(messageOrOptions) ? messageOrOptions.message : messageOrOptions;\n\n var key = opts.key,\n preventDuplicate = opts.preventDuplicate,\n options = _objectWithoutPropertiesLoose(opts, [\"key\", \"preventDuplicate\"]);\n\n var hasSpecifiedKey = isDefined(key);\n var id = hasSpecifiedKey ? key : new Date().getTime() + Math.random();\n var merger = merge(options, _this.props);\n\n var snack = _extends({\n id: id\n }, options, {\n message: message,\n open: true,\n entered: false,\n requestClose: false,\n persist: merger('persist'),\n action: merger('action'),\n content: merger('content'),\n variant: merger('variant'),\n anchorOrigin: merger('anchorOrigin'),\n disableWindowBlurListener: merger('disableWindowBlurListener'),\n autoHideDuration: merger('autoHideDuration'),\n hideIconVariant: merger('hideIconVariant'),\n TransitionComponent: merger('TransitionComponent'),\n transitionDuration: merger('transitionDuration'),\n TransitionProps: merger('TransitionProps', true),\n iconVariant: merger('iconVariant', true),\n style: merger('style', true),\n SnackbarProps: merger('SnackbarProps', true),\n className: clsx(_this.props.className, options.className)\n });\n\n if (snack.persist) {\n snack.autoHideDuration = undefined;\n }\n\n _this.setState(function (state) {\n if (preventDuplicate === undefined && _this.props.preventDuplicate || preventDuplicate) {\n var compareFunction = function compareFunction(item) {\n return hasSpecifiedKey ? item.id === id : item.message === message;\n };\n\n var inQueue = state.queue.findIndex(compareFunction) > -1;\n var inView = state.snacks.findIndex(compareFunction) > -1;\n\n if (inQueue || inView) {\n return state;\n }\n }\n\n return _this.handleDisplaySnack(_extends({}, state, {\n queue: [].concat(state.queue, [snack])\n }));\n });\n\n return id;\n };\n /**\r\n * Reducer: Display snack if there's space for it. Otherwise, immediately\r\n * begin dismissing the oldest message to start showing the new one.\r\n */\n\n\n _this.handleDisplaySnack = function (state) {\n var snacks = state.snacks;\n\n if (snacks.length >= _this.maxSnack) {\n return _this.handleDismissOldest(state);\n }\n\n return _this.processQueue(state);\n };\n /**\r\n * Reducer: Display items (notifications) in the queue if there's space for them.\r\n */\n\n\n _this.processQueue = function (state) {\n var queue = state.queue,\n snacks = state.snacks;\n\n if (queue.length > 0) {\n return _extends({}, state, {\n snacks: [].concat(snacks, [queue[0]]),\n queue: queue.slice(1, queue.length)\n });\n }\n\n return state;\n };\n /**\r\n * Reducer: Hide oldest snackbar on the screen because there exists a new one which we have to display.\r\n * (ignoring the one with 'persist' flag. i.e. explicitly told by user not to get dismissed).\r\n *\r\n * Note 1: If there is already a message leaving the screen, no new messages are dismissed.\r\n * Note 2: If the oldest message has not yet entered the screen, only a request to close the\r\n * snackbar is made. Once it entered the screen, it will be immediately dismissed.\r\n */\n\n\n _this.handleDismissOldest = function (state) {\n if (state.snacks.some(function (item) {\n return !item.open || item.requestClose;\n })) {\n return state;\n }\n\n var popped = false;\n var ignore = false;\n var persistentCount = state.snacks.reduce(function (acc, current) {\n return acc + (current.open && current.persist ? 1 : 0);\n }, 0);\n\n if (persistentCount === _this.maxSnack) {\n process.env.NODE_ENV !== \"production\" ? warning('NO_PERSIST_ALL') : void 0;\n ignore = true;\n }\n\n var snacks = state.snacks.map(function (item) {\n if (!popped && (!item.persist || ignore)) {\n popped = true;\n\n if (!item.entered) {\n return _extends({}, item, {\n requestClose: true\n });\n }\n\n if (item.onClose) {\n item.onClose(null, 'maxsnack', item.id);\n }\n\n if (_this.props.onClose) {\n _this.props.onClose(null, 'maxsnack', item.id);\n }\n\n return _extends({}, item, {\n open: false\n });\n }\n\n return _extends({}, item);\n });\n return _extends({}, state, {\n snacks: snacks\n });\n };\n /**\r\n * Set the entered state of the snackbar with the given key.\r\n */\n\n\n _this.handleEnteredSnack = function (node, isAppearing, key) {\n if (!isDefined(key)) {\n throw new Error('handleEnteredSnack Cannot be called with undefined key');\n }\n\n _this.setState(function (_ref) {\n var snacks = _ref.snacks;\n return {\n snacks: snacks.map(function (item) {\n return item.id === key ? _extends({}, item, {\n entered: true\n }) : _extends({}, item);\n })\n };\n });\n };\n /**\r\n * Hide a snackbar after its timeout.\r\n */\n\n\n _this.handleCloseSnack = function (event, reason, key) {\n // should not use createChainedFunction for onClose.\n // because this.closeSnackbar called this function\n if (_this.props.onClose) {\n _this.props.onClose(event, reason, key);\n }\n\n var shouldCloseAll = key === undefined;\n\n _this.setState(function (_ref2) {\n var snacks = _ref2.snacks,\n queue = _ref2.queue;\n return {\n snacks: snacks.map(function (item) {\n if (!shouldCloseAll && item.id !== key) {\n return _extends({}, item);\n }\n\n return item.entered ? _extends({}, item, {\n open: false\n }) : _extends({}, item, {\n requestClose: true\n });\n }),\n queue: queue.filter(function (item) {\n return item.id !== key;\n })\n };\n });\n };\n /**\r\n * Close snackbar with the given key\r\n */\n\n\n _this.closeSnackbar = function (key) {\n // call individual snackbar onClose callback passed through options parameter\n var toBeClosed = _this.state.snacks.find(function (item) {\n return item.id === key;\n });\n\n if (isDefined(key) && toBeClosed && toBeClosed.onClose) {\n toBeClosed.onClose(null, 'instructed', key);\n }\n\n _this.handleCloseSnack(null, 'instructed', key);\n };\n /**\r\n * When we set open attribute of a snackbar to false (i.e. after we hide a snackbar),\r\n * it leaves the screen and immediately after leaving animation is done, this method\r\n * gets called. We remove the hidden snackbar from state and then display notifications\r\n * waiting in the queue (if any). If after this process the queue is not empty, the\r\n * oldest message is dismissed.\r\n */\n\n\n _this.handleExitedSnack = function (node, key) {\n if (!isDefined(key)) {\n throw new Error('handleExitedSnack Cannot be called with undefined key');\n }\n\n _this.setState(function (state) {\n var newState = _this.processQueue(_extends({}, state, {\n snacks: state.snacks.filter(function (item) {\n return item.id !== key;\n })\n }));\n\n if (newState.queue.length === 0) {\n return newState;\n }\n\n return _this.handleDismissOldest(newState);\n });\n };\n\n enqueueSnackbar = _this.enqueueSnackbar;\n closeSnackbar = _this.closeSnackbar;\n _this.state = {\n snacks: [],\n queue: [],\n contextValue: {\n enqueueSnackbar: _this.enqueueSnackbar.bind(_assertThisInitialized(_this)),\n closeSnackbar: _this.closeSnackbar.bind(_assertThisInitialized(_this))\n }\n };\n return _this;\n }\n\n var _proto = SnackbarProvider.prototype;\n\n _proto.render = function render() {\n var _this2 = this;\n\n var contextValue = this.state.contextValue;\n var _this$props = this.props,\n domRoot = _this$props.domRoot,\n children = _this$props.children,\n _this$props$dense = _this$props.dense,\n dense = _this$props$dense === void 0 ? false : _this$props$dense,\n _this$props$Component = _this$props.Components,\n Components = _this$props$Component === void 0 ? {} : _this$props$Component,\n classes = _this$props.classes;\n var categ = this.state.snacks.reduce(function (acc, current) {\n var _extends2;\n\n var category = originKeyExtractor(current.anchorOrigin);\n var existingOfCategory = acc[category] || [];\n return _extends({}, acc, (_extends2 = {}, _extends2[category] = [].concat(existingOfCategory, [current]), _extends2));\n }, {});\n var snackbars = Object.keys(categ).map(function (origin) {\n var snacks = categ[origin];\n var nomineeSnack = snacks[0];\n return React__default.createElement(SnackbarContainer$1, {\n key: origin,\n dense: dense,\n anchorOrigin: nomineeSnack.anchorOrigin,\n classes: classes\n }, snacks.map(function (snack) {\n return React__default.createElement(SnackbarItem, {\n key: snack.id,\n snack: snack,\n classes: classes,\n Component: Components[snack.variant],\n onClose: _this2.handleCloseSnack,\n onEnter: _this2.props.onEnter,\n onExit: _this2.props.onExit,\n onExited: createChainedFunction([_this2.handleExitedSnack, _this2.props.onExited], snack.id),\n onEntered: createChainedFunction([_this2.handleEnteredSnack, _this2.props.onEntered], snack.id)\n });\n }));\n });\n return React__default.createElement(SnackbarContext.Provider, {\n value: contextValue\n }, children, domRoot ? createPortal(snackbars, domRoot) : snackbars);\n };\n\n _createClass(SnackbarProvider, [{\n key: \"maxSnack\",\n get: function get() {\n return this.props.maxSnack || defaults.maxSnack;\n }\n }]);\n\n return SnackbarProvider;\n}(Component);\n\nvar useSnackbar = (function () {\n return useContext(SnackbarContext);\n});\n\nexport { MaterialDesignContent$1 as MaterialDesignContent, SnackbarContent, SnackbarProvider, Transition, closeSnackbar, enqueueSnackbar, useSnackbar };\n//# sourceMappingURL=notistack.esm.js.map\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== \"undefined\" // 'global proper'\n? // eslint-disable-next-line no-undef\nglobalThis : typeof window !== \"undefined\" ? window // Browser\n: typeof global !== \"undefined\" ? global // node.js\n: {};\n\nfunction getUniqueId() {\n var key = \"__global_unique_id__\";\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n} // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n var Provider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Provider, _React$Component);\n\n function Provider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === \"function\" ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, \"calculateChangedBits: Expected the return value to be a \" + \"31-bit integer. Instead received: \" + changedBits) : void 0;\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(React.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(Consumer, _React$Component2);\n\n function Consumer() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this2.observedBits = void 0;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(React.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\n// MIT License\nvar createContext = React.createContext || createReactContext;\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global$1 = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global$1[key] && global$1[key] !== \"esm\") {\n var initialBuildName = buildNames[global$1[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global$1[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","/* \r\n * JSNLog 2.30.0\r\n * Open source under the MIT License.\r\n * Copyright 2012-2017 Mattijs Perdeck All rights reserved.\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nfunction JL(loggerName) {\r\n // If name is empty, return the root logger\r\n if (!loggerName) {\r\n return JL.__;\r\n }\r\n // Implements Array.reduce. JSNLog supports IE8+ and reduce is not supported in that browser.\r\n // Same interface as the standard reduce, except that \r\n if (!Array.prototype.reduce) {\r\n Array.prototype.reduce = function (callback, initialValue) {\r\n var previousValue = initialValue;\r\n for (var i = 0; i < this.length; i++) {\r\n previousValue = callback(previousValue, this[i], i, this);\r\n }\r\n return previousValue;\r\n };\r\n }\r\n var accumulatedLoggerName = '';\r\n var logger = ('.' + loggerName).split('.').reduce(function (prev, curr, idx, arr) {\r\n // if loggername is a.b.c, than currentLogger will be set to the loggers\r\n // root (prev: JL, curr: '')\r\n // a (prev: JL.__, curr: 'a')\r\n // a.b (prev: JL.__.__a, curr: 'b')\r\n // a.b.c (prev: JL.__.__a.__a.b, curr: 'c')\r\n // Note that when a new logger name is encountered (such as 'a.b.c'),\r\n // a new logger object is created and added as a property to the parent ('a.b').\r\n // The root logger is added as a property of the JL object itself.\r\n // It is essential that the name of the property containing the child logger\r\n // contains the full 'path' name of the child logger ('a.b.c') instead of\r\n // just the bit after the last period ('c').\r\n // This is because the parent inherits properties from its ancestors.\r\n // So if the root has a child logger 'c' (stored in a property 'c' of the root logger),\r\n // then logger 'a.b' has that same property 'c' through inheritance.\r\n // The names of the logger properties start with __, so the root logger \r\n // (which has name ''), has a nice property name '__'. \r\n // accumulatedLoggerName evaluates false ('' is falsy) in first iteration when prev is the root logger.\r\n // accumulatedLoggerName will be the logger name corresponding with the logger in currentLogger.\r\n // Keep in mind that the currentLogger may not be defined yet, so can't get the name from\r\n // the currentLogger object itself. \r\n if (accumulatedLoggerName) {\r\n accumulatedLoggerName += '.' + curr;\r\n }\r\n else {\r\n accumulatedLoggerName = curr;\r\n }\r\n var currentLogger = prev['__' + accumulatedLoggerName];\r\n // If the currentLogger (or the actual logger being sought) does not yet exist, \r\n // create it now.\r\n if (currentLogger === undefined) {\r\n // Set the prototype of the Logger constructor function to the parent of the logger\r\n // to be created. This way, __proto of the new logger object will point at the parent.\r\n // When logger.level is evaluated and is not present, the JavaScript runtime will \r\n // walk down the prototype chain to find the first ancestor with a level property.\r\n //\r\n // Note that prev at this point refers to the parent logger.\r\n JL.Logger.prototype = prev;\r\n currentLogger = new JL.Logger(accumulatedLoggerName);\r\n prev['__' + accumulatedLoggerName] = currentLogger;\r\n }\r\n return currentLogger;\r\n }, JL.__);\r\n return logger;\r\n}\r\n(function (JL) {\r\n // Initialise requestId to empty string. If you don't do this and the user\r\n // does not set it via setOptions, then the JSNLog-RequestId header will\r\n // have value \"undefined\", which doesn't look good in a log.\r\n //\r\n // Note that you always want to send a requestId as part of log requests,\r\n // otherwise the server side component doesn't know this is a log request\r\n // and may create a new request id for the log request, causing confusion\r\n // in the log.\r\n JL.requestId = '';\r\n // Number uniquely identifying every log entry within the request.\r\n JL.entryId = 0;\r\n // Allow property injection of these classes, to enable unit testing\r\n JL._createXMLHttpRequest = function () { return new XMLHttpRequest(); };\r\n JL._getTime = function () { return (new Date).getTime(); };\r\n JL._console = console;\r\n // ----- private variables\r\n JL._appenderNames = [];\r\n /**\r\n Copies the value of a property from one object to the other.\r\n This is used to copy property values as part of setOption for loggers and appenders.\r\n\r\n Because loggers inherit property values from their parents, it is important never to\r\n create a property on a logger if the intent is to inherit from the parent.\r\n\r\n Copying rules:\r\n 1) if the from property is undefined (for example, not mentioned in a JSON object), the\r\n to property is not affected at all.\r\n 2) if the from property is null, the to property is deleted (so the logger will inherit from\r\n its parent).\r\n 3) Otherwise, the from property is copied to the to property.\r\n */\r\n function copyProperty(propertyName, from, to) {\r\n if (from[propertyName] === undefined) {\r\n return;\r\n }\r\n if (from[propertyName] === null) {\r\n delete to[propertyName];\r\n return;\r\n }\r\n to[propertyName] = from[propertyName];\r\n }\r\n /**\r\n Returns true if a log should go ahead.\r\n Does not check level.\r\n\r\n @param filters\r\n Filters that determine whether a log can go ahead.\r\n */\r\n function allow(filters) {\r\n // If enabled is not null or undefined, then if it is false, then return false\r\n // Note that undefined==null (!)\r\n if (!(JL.enabled == null)) {\r\n if (!JL.enabled) {\r\n return false;\r\n }\r\n }\r\n // If the regex contains a bug, that will throw an exception.\r\n // Ignore this, and pass the log item (better too much than too little).\r\n try {\r\n if (filters.userAgentRegex) {\r\n if (!new RegExp(filters.userAgentRegex).test(navigator.userAgent)) {\r\n return false;\r\n }\r\n }\r\n }\r\n catch (e) { }\r\n try {\r\n if (filters.ipRegex && JL.clientIP) {\r\n if (!new RegExp(filters.ipRegex).test(JL.clientIP)) {\r\n return false;\r\n }\r\n }\r\n }\r\n catch (e) { }\r\n return true;\r\n }\r\n /**\r\n Returns true if a log should go ahead, based on the message.\r\n\r\n @param filters\r\n Filters that determine whether a log can go ahead.\r\n\r\n @param message\r\n Message to be logged.\r\n */\r\n function allowMessage(filters, message) {\r\n // If the regex contains a bug, that will throw an exception.\r\n // Ignore this, and pass the log item (better too much than too little).\r\n try {\r\n if (filters.disallow) {\r\n if (new RegExp(filters.disallow).test(message)) {\r\n return false;\r\n }\r\n }\r\n }\r\n catch (e) { }\r\n return true;\r\n }\r\n // If logObject is a function, the function is evaluated (without parameters)\r\n // and the result returned.\r\n // Otherwise, logObject itself is returned.\r\n function stringifyLogObjectFunction(logObject) {\r\n if (typeof logObject == \"function\") {\r\n if (logObject instanceof RegExp) {\r\n return logObject.toString();\r\n }\r\n else {\r\n return logObject();\r\n }\r\n }\r\n return logObject;\r\n }\r\n var StringifiedLogObject = /** @class */ (function () {\r\n // * msg - \r\n // if the logObject is a scalar (after possible function evaluation), this is set to\r\n // string representing the scalar. Otherwise it is left undefined.\r\n // * meta -\r\n // if the logObject is an object (after possible function evaluation), this is set to\r\n // that object. Otherwise it is left undefined.\r\n // * finalString -\r\n // This is set to the string representation of logObject (after possible function evaluation),\r\n // regardless of whether it is an scalar or an object. An object is stringified to a JSON string.\r\n // Note that you can't call this field \"final\", because as some point this was a reserved\r\n // JavaScript keyword and using final trips up some minifiers.\r\n function StringifiedLogObject(msg, meta, finalString) {\r\n this.msg = msg;\r\n this.meta = meta;\r\n this.finalString = finalString;\r\n }\r\n return StringifiedLogObject;\r\n }());\r\n // Takes a logObject, which can be \r\n // * a scalar\r\n // * an object\r\n // * a parameterless function, which returns the scalar or object to log.\r\n // Returns a stringifiedLogObject\r\n function stringifyLogObject(logObject) {\r\n // Note that this works if logObject is null.\r\n // typeof null is object.\r\n // JSON.stringify(null) returns \"null\".\r\n var actualLogObject = stringifyLogObjectFunction(logObject);\r\n var finalString;\r\n // Note that typeof actualLogObject should not be \"function\", because that has \r\n // been resolved with stringifyLogObjectFunction.\r\n switch (typeof actualLogObject) {\r\n case \"string\":\r\n return new StringifiedLogObject(actualLogObject, null, actualLogObject);\r\n case \"number\":\r\n finalString = actualLogObject.toString();\r\n return new StringifiedLogObject(finalString, null, finalString);\r\n case \"boolean\":\r\n finalString = actualLogObject.toString();\r\n return new StringifiedLogObject(finalString, null, finalString);\r\n case \"undefined\":\r\n return new StringifiedLogObject(\"undefined\", null, \"undefined\");\r\n case \"object\":\r\n if ((actualLogObject instanceof RegExp) ||\r\n (actualLogObject instanceof String) ||\r\n (actualLogObject instanceof Number) ||\r\n (actualLogObject instanceof Boolean)) {\r\n finalString = actualLogObject.toString();\r\n return new StringifiedLogObject(finalString, null, finalString);\r\n }\r\n else {\r\n if (typeof JL.serialize === 'function') {\r\n finalString = JL.serialize.call(this, actualLogObject);\r\n }\r\n else {\r\n finalString = JSON.stringify(actualLogObject);\r\n }\r\n // Set the msg field to \"\" instead of null. Some Winston transports\r\n // assume that the msg field is not null.\r\n return new StringifiedLogObject(\"\", actualLogObject, finalString);\r\n }\r\n default:\r\n return new StringifiedLogObject(\"unknown\", null, \"unknown\");\r\n }\r\n }\r\n function setOptions(options) {\r\n copyProperty(\"enabled\", options, this);\r\n copyProperty(\"maxMessages\", options, this);\r\n copyProperty(\"defaultAjaxUrl\", options, this);\r\n copyProperty(\"clientIP\", options, this);\r\n copyProperty(\"requestId\", options, this);\r\n copyProperty(\"defaultBeforeSend\", options, this);\r\n copyProperty(\"serialize\", options, this);\r\n return this;\r\n }\r\n JL.setOptions = setOptions;\r\n function getAllLevel() { return -2147483648; }\r\n JL.getAllLevel = getAllLevel;\r\n function getTraceLevel() { return 1000; }\r\n JL.getTraceLevel = getTraceLevel;\r\n function getDebugLevel() { return 2000; }\r\n JL.getDebugLevel = getDebugLevel;\r\n function getInfoLevel() { return 3000; }\r\n JL.getInfoLevel = getInfoLevel;\r\n function getWarnLevel() { return 4000; }\r\n JL.getWarnLevel = getWarnLevel;\r\n function getErrorLevel() { return 5000; }\r\n JL.getErrorLevel = getErrorLevel;\r\n function getFatalLevel() { return 6000; }\r\n JL.getFatalLevel = getFatalLevel;\r\n function getOffLevel() { return 2147483647; }\r\n JL.getOffLevel = getOffLevel;\r\n function levelToString(level) {\r\n if (level <= 1000) {\r\n return \"trace\";\r\n }\r\n if (level <= 2000) {\r\n return \"debug\";\r\n }\r\n if (level <= 3000) {\r\n return \"info\";\r\n }\r\n if (level <= 4000) {\r\n return \"warn\";\r\n }\r\n if (level <= 5000) {\r\n return \"error\";\r\n }\r\n return \"fatal\";\r\n }\r\n // ---------------------\r\n var Exception = /** @class */ (function () {\r\n // data replaces message. It takes not just strings, but also objects and functions, just like the log function.\r\n // internally, the string representation is stored in the message property (inherited from Error)\r\n //\r\n // inner: inner exception. Can be null or undefined. \r\n function Exception(data, inner) {\r\n this.inner = inner;\r\n this.name = \"JL.Exception\";\r\n this.message = stringifyLogObject(data).finalString;\r\n }\r\n return Exception;\r\n }());\r\n JL.Exception = Exception;\r\n // Derive Exception from Error (a Host object), so browsers\r\n // are more likely to produce a stack trace for it in their console.\r\n //\r\n // Note that instanceof against an object created with this constructor\r\n // will return true in these cases:\r\n // instanceof JL.Exception);\r\n // instanceof Error);\r\n Exception.prototype = new Error();\r\n // ---------------------\r\n var LogItem = /** @class */ (function () {\r\n // l: level\r\n // m: message\r\n // n: logger name\r\n // t (timeStamp) is number of milliseconds since 1 January 1970 00:00:00 UTC\r\n // u: number uniquely identifying this entry for this request.\r\n //\r\n // Keeping the property names really short, because they will be sent in the\r\n // JSON payload to the server.\r\n function LogItem(l, m, n, t, u) {\r\n this.l = l;\r\n this.m = m;\r\n this.n = n;\r\n this.t = t;\r\n this.u = u;\r\n }\r\n return LogItem;\r\n }());\r\n JL.LogItem = LogItem;\r\n function newLogItem(levelNbr, message, loggerName) {\r\n JL.entryId++;\r\n return new LogItem(levelNbr, message, loggerName, JL._getTime(), JL.entryId);\r\n }\r\n function clearTimer(timer) {\r\n if (timer.id) {\r\n clearTimeout(timer.id);\r\n timer.id = null;\r\n }\r\n }\r\n function setTimer(timer, timeoutMs, callback) {\r\n var that = this;\r\n if (!timer.id) {\r\n timer.id = setTimeout(function () {\r\n // use call to ensure that the this as used inside sendBatch when it runs is the\r\n // same this at this point.\r\n callback.call(that);\r\n }, timeoutMs);\r\n }\r\n }\r\n var Appender = /** @class */ (function () {\r\n // sendLogItems takes an array of log items. It will be called when\r\n // the appender has items to process (such as, send to the server).\r\n // sendLogItems will call successCallback after the items have been successfully sent.\r\n //\r\n // Note that after sendLogItems returns, the appender may truncate\r\n // the LogItem array, so the function has to copy the content of the array\r\n // in some fashion (eg. serialize) before returning.\r\n function Appender(appenderName, sendLogItems) {\r\n this.appenderName = appenderName;\r\n this.sendLogItems = sendLogItems;\r\n this.level = JL.getTraceLevel();\r\n // set to super high level, so if user increases level, level is unlikely to get \r\n // above sendWithBufferLevel\r\n this.sendWithBufferLevel = 2147483647;\r\n this.storeInBufferLevel = -2147483648;\r\n this.bufferSize = 0; // buffering switch off by default\r\n this.batchSize = 1;\r\n this.maxBatchSize = 20;\r\n this.batchTimeout = 2147483647;\r\n this.sendTimeout = 5000;\r\n // Holds all log items with levels higher than storeInBufferLevel \r\n // but lower than level. These items may never be sent.\r\n this.buffer = [];\r\n // Holds all items that we do want to send, until we have a full\r\n // batch (as determined by batchSize).\r\n this.batchBuffer = [];\r\n // Holds the id of the timer implementing the batch timeout.\r\n // Can be null.\r\n // This is an object, so it can be passed to a method that updated the timer variable.\r\n this.batchTimeoutTimer = { id: null };\r\n // Holds the id of the timer implementing the send timeout.\r\n // Can be null.\r\n this.sendTimeoutTimer = { id: null };\r\n // Number of log items that has been skipped due to batch buffer at max size,\r\n // since appender creation or since creation of the last \"skipped\" warning log entry.\r\n this.nbrLogItemsSkipped = 0;\r\n // Will be 0 if no log request is outstanding at the moment.\r\n // Otherwise the number of log items in the outstanding request.\r\n this.nbrLogItemsBeingSent = 0;\r\n var emptyNameErrorMessage = \"Trying to create an appender without a name or with an empty name\";\r\n // This evaluates to true if appenderName is either null or undefined!\r\n // Do not check here if the name is \"\", because that would stop you creating the \r\n // default appender.\r\n if (appenderName == undefined) {\r\n throw emptyNameErrorMessage;\r\n }\r\n if (JL._appenderNames.indexOf(appenderName) != -1) {\r\n // If user passed in \"\", that will now have been picked up as a duplicate\r\n // because default appender also uses \"\".\r\n if (!appenderName) {\r\n throw emptyNameErrorMessage;\r\n }\r\n throw \"Multiple appenders use the same name \" + appenderName;\r\n }\r\n JL._appenderNames.push(appenderName);\r\n }\r\n Appender.prototype.addLogItemsToBuffer = function (logItems) {\r\n // If the batch buffer has reached its maximum limit, \r\n // skip the log item and increase the \"skipped items\" counter.\r\n if (this.batchBuffer.length >= this.maxBatchSize) {\r\n this.nbrLogItemsSkipped += logItems.length;\r\n return;\r\n }\r\n // If maxMessages is not null or undefined, then decrease it by the batch size.\r\n // This can result in a negative maxMessages.\r\n // Note that undefined==null (!)\r\n //\r\n // Note that we may be sending more messages than the maxMessages limit allows,\r\n // if we stored trace messages. Rationale is the buffer for trace messages is limited,\r\n // and if we cut off at exactly maxMessages, we'd also loose the high severity message\r\n // that caused the trace messages to be sent (unless we cater for this specifically, which\r\n // is more complexity).\r\n //\r\n // If there are multiple appenders sending the same message, maxMessage will be decreased\r\n // by each appender for the same message. This is:\r\n // 1) only appenders know whether a message will actually be sent (based on storeInBufferLevel),\r\n // so the loggers couldn't do this update;\r\n // 2) if you have multiple appenders hitting the same server, this may be what you want.\r\n //\r\n // In most cases there is only 1 appender, so this then doesn't matter.\r\n if (!(JL.maxMessages == null)) {\r\n if (JL.maxMessages < 1) {\r\n return;\r\n }\r\n JL.maxMessages -= logItems.length;\r\n }\r\n this.batchBuffer = this.batchBuffer.concat(logItems);\r\n // If this is the first item in the buffer, set the timer\r\n // to ensure it will be sent within the timeout period.\r\n // If it is not the first item, leave the timer alone so to not to \r\n // increase the timeout for the first item.\r\n //\r\n // To determine if this is the first item, look at the timer variable.\r\n // Do not look at the buffer length, because we also put items in the buffer\r\n // via a concat (bypassing this function).\r\n //\r\n // The setTimer method only sets the timer if it is not already running.\r\n var that = this;\r\n setTimer(this.batchTimeoutTimer, this.batchTimeout, function () {\r\n that.sendBatch.call(that);\r\n });\r\n };\r\n ;\r\n Appender.prototype.batchBufferHasOverdueMessages = function () {\r\n for (var i = 0; i < this.batchBuffer.length; i++) {\r\n var messageAgeMs = JL._getTime() - this.batchBuffer[i].t;\r\n if (messageAgeMs > this.batchTimeout) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n // Returns true if no more message will ever be added to the batch buffer,\r\n // but the batch buffer has messages now - so if there are not enough to make up a batch,\r\n // and there is no batch timeout, then they will never be sent. This is especially important if \r\n // maxMessages was reached while jsnlog.js was retrying sending messages to the server.\r\n Appender.prototype.batchBufferHasStrandedMessage = function () {\r\n return (!(JL.maxMessages == null)) && (JL.maxMessages < 1) && (this.batchBuffer.length > 0);\r\n };\r\n Appender.prototype.sendBatchIfComplete = function () {\r\n if ((this.batchBuffer.length >= this.batchSize) ||\r\n this.batchBufferHasOverdueMessages() ||\r\n this.batchBufferHasStrandedMessage()) {\r\n this.sendBatch();\r\n }\r\n };\r\n Appender.prototype.onSendingEnded = function () {\r\n clearTimer(this.sendTimeoutTimer);\r\n this.nbrLogItemsBeingSent = 0;\r\n this.sendBatchIfComplete();\r\n };\r\n Appender.prototype.setOptions = function (options) {\r\n copyProperty(\"level\", options, this);\r\n copyProperty(\"ipRegex\", options, this);\r\n copyProperty(\"userAgentRegex\", options, this);\r\n copyProperty(\"disallow\", options, this);\r\n copyProperty(\"sendWithBufferLevel\", options, this);\r\n copyProperty(\"storeInBufferLevel\", options, this);\r\n copyProperty(\"bufferSize\", options, this);\r\n copyProperty(\"batchSize\", options, this);\r\n copyProperty(\"maxBatchSize\", options, this);\r\n copyProperty(\"batchTimeout\", options, this);\r\n copyProperty(\"sendTimeout\", options, this);\r\n if (this.bufferSize < this.buffer.length) {\r\n this.buffer.length = this.bufferSize;\r\n }\r\n if (this.maxBatchSize < this.batchSize) {\r\n throw new JL.Exception({\r\n \"message\": \"maxBatchSize cannot be smaller than batchSize\",\r\n \"maxBatchSize\": this.maxBatchSize,\r\n \"batchSize\": this.batchSize\r\n });\r\n }\r\n return this;\r\n };\r\n /**\r\n Called by a logger to log a log item.\r\n If in response to this call one or more log items need to be processed\r\n (eg., sent to the server), this method calls this.sendLogItems\r\n with an array with all items to be processed.\r\n\r\n Note that the name and parameters of this function must match those of the log function of\r\n a Winston transport object, so that users can use these transports as appenders.\r\n That is why there are many parameters that are not actually used by this function.\r\n\r\n level - string with the level (\"trace\", \"debug\", etc.) Only used by Winston transports.\r\n msg - human readable message. Undefined if the log item is an object. Only used by Winston transports.\r\n meta - log object. Always defined, because at least it contains the logger name. Only used by Winston transports.\r\n callback - function that is called when the log item has been logged. Only used by Winston transports.\r\n levelNbr - level as a number. Not used by Winston transports.\r\n message - log item. If the user logged an object, this is the JSON string. Not used by Winston transports.\r\n loggerName: name of the logger. Not used by Winston transports.\r\n */\r\n Appender.prototype.log = function (level, msg, meta, callback, levelNbr, message, loggerName) {\r\n var logItem;\r\n if (!allow(this)) {\r\n return;\r\n }\r\n if (!allowMessage(this, message)) {\r\n return;\r\n }\r\n if (levelNbr < this.storeInBufferLevel) {\r\n // Ignore the log item completely\r\n return;\r\n }\r\n logItem = newLogItem(levelNbr, message, loggerName);\r\n if (levelNbr < this.level) {\r\n // Store in the hold buffer. Do not send.\r\n if (this.bufferSize > 0) {\r\n this.buffer.push(logItem);\r\n // If we exceeded max buffer size, remove oldest item\r\n if (this.buffer.length > this.bufferSize) {\r\n this.buffer.shift();\r\n }\r\n }\r\n return;\r\n }\r\n // Want to send the item\r\n this.addLogItemsToBuffer([logItem]);\r\n if (levelNbr >= this.sendWithBufferLevel) {\r\n // Want to send the contents of the buffer.\r\n //\r\n // Send the buffer AFTER sending the high priority item.\r\n // If you were to send the high priority item after the buffer,\r\n // if we're close to maxMessages or maxBatchSize,\r\n // then the trace messages in the buffer could crowd out the actual high priority item.\r\n if (this.buffer.length) {\r\n this.addLogItemsToBuffer(this.buffer);\r\n this.buffer.length = 0;\r\n }\r\n }\r\n this.sendBatchIfComplete();\r\n };\r\n ;\r\n // Processes the batch buffer\r\n //\r\n // Make this public, so it can be called from outside the library,\r\n // when the page is unloaded.\r\n Appender.prototype.sendBatch = function () {\r\n // Do not clear the batch timer if you don't go ahead here because\r\n // a send is already in progress. Otherwise the messages that were stopped from going out\r\n // may get ignored because the batch timer never went off.\r\n if (this.nbrLogItemsBeingSent > 0) {\r\n return;\r\n }\r\n clearTimer(this.batchTimeoutTimer);\r\n if (this.batchBuffer.length == 0) {\r\n return;\r\n }\r\n // Decided at this point to send contents of the buffer\r\n this.nbrLogItemsBeingSent = this.batchBuffer.length;\r\n var that = this;\r\n setTimer(this.sendTimeoutTimer, this.sendTimeout, function () {\r\n that.onSendingEnded.call(that);\r\n });\r\n this.sendLogItems(this.batchBuffer, function () {\r\n // Log entries have been successfully sent to server\r\n // Remove the first (nbrLogItemsBeingSent) items in the batch buffer, because they are the ones\r\n // that were sent.\r\n that.batchBuffer.splice(0, that.nbrLogItemsBeingSent);\r\n // If items had to be skipped, add a WARN message\r\n if (that.nbrLogItemsSkipped > 0) {\r\n that.batchBuffer.push(newLogItem(getWarnLevel(), \"Lost \" + that.nbrLogItemsSkipped + \" messages. Either connection with the server was down or logging was disabled via the enabled option. Reduce lost messages by increasing the ajaxAppender option maxBatchSize.\", that.appenderName));\r\n that.nbrLogItemsSkipped = 0;\r\n }\r\n that.onSendingEnded.call(that);\r\n });\r\n };\r\n return Appender;\r\n }());\r\n JL.Appender = Appender;\r\n // ---------------------\r\n var AjaxAppender = /** @class */ (function (_super) {\r\n __extends(AjaxAppender, _super);\r\n function AjaxAppender(appenderName) {\r\n return _super.call(this, appenderName, AjaxAppender.prototype.sendLogItemsAjax) || this;\r\n }\r\n AjaxAppender.prototype.setOptions = function (options) {\r\n copyProperty(\"url\", options, this);\r\n copyProperty(\"beforeSend\", options, this);\r\n _super.prototype.setOptions.call(this, options);\r\n return this;\r\n };\r\n AjaxAppender.prototype.sendLogItemsAjax = function (logItems, successCallback) {\r\n // JSON.stringify is only supported on IE8+\r\n // Use try-catch in case we get an exception here.\r\n //\r\n // The \"r\" field is now obsolete. When writing a server side component, \r\n // read the HTTP header \"JSNLog-RequestId\"\r\n // to get the request id.\r\n //\r\n // The .Net server side component\r\n // now uses the JSNLog-RequestId HTTP Header, because this allows it to\r\n // detect whether the incoming request has a request id.\r\n // If the request id were in the json payload, it would have to read the json\r\n // from the stream, interfering with normal non-logging requests.\r\n //\r\n // To see what characters you can use in the HTTP header, visit:\r\n // http://stackoverflow.com/questions/3561381/custom-http-headers-naming-conventions/3561399#3561399\r\n //\r\n // It needs this ability, so users of NLog can set a requestId variable in NLog\r\n // before the server side component tries to log the client side log message\r\n // through an NLog logger.\r\n // Unlike Log4Net, NLog doesn't allow you to register an object whose ToString()\r\n // is only called when it tries to log something, so the requestId has to be \r\n // determined right at the start of request processing.\r\n try {\r\n // Do not send logs, if JL.enabled is set to false.\r\n //\r\n // Do not call successCallback here. After each timeout, jsnlog will retry sending the message.\r\n // If jsnlog gets re-enabled, it will then log the number of messages logged.\r\n // If it doesn't get re-enabled, amount of cpu cycles wasted is minimal.\r\n if (!allow(this)) {\r\n return;\r\n }\r\n // If a request is in progress, abort it.\r\n // Otherwise, it may call the success callback, which will be very confusing.\r\n // It may also stop the inflight request from resulting in a log at the server.\r\n if (this.xhr && (this.xhr.readyState != 0) && (this.xhr.readyState != 4)) {\r\n this.xhr.abort();\r\n }\r\n // Because a react-native XMLHttpRequest cannot be reused it needs to be recreated with each request\r\n this.xhr = JL._createXMLHttpRequest();\r\n // Only determine the url right before you send a log request.\r\n // Do not set the url when constructing the appender.\r\n //\r\n // This is because the server side component sets defaultAjaxUrl\r\n // in a call to setOptions, AFTER the JL object and the default appender\r\n // have been created. \r\n var ajaxUrl = \"/jsnlog.logger\";\r\n // This evaluates to true if defaultAjaxUrl is null or undefined\r\n if (!(JL.defaultAjaxUrl == null)) {\r\n ajaxUrl = JL.defaultAjaxUrl;\r\n }\r\n if (this.url) {\r\n ajaxUrl = this.url;\r\n }\r\n this.xhr.open('POST', ajaxUrl);\r\n this.xhr.setRequestHeader('Content-Type', 'application/json');\r\n this.xhr.setRequestHeader('JSNLog-RequestId', JL.requestId);\r\n var that = this;\r\n this.xhr.onreadystatechange = function () {\r\n // On most browsers, if the request fails (eg. internet is gone),\r\n // it will set xhr.readyState == 4 and xhr.status != 200 (0 if request could not be sent) immediately.\r\n // However, Edge and IE will not change the readyState at all if the internet goes away while waiting\r\n // for a response.\r\n // Some servers will return a 204 (success, no content) when the JSNLog endpoint\r\n // returns the empty response. So check on any code in the 2.. range, not just 200.\r\n if ((that.xhr.readyState == 4) && (that.xhr.status >= 200 && that.xhr.status < 300)) {\r\n successCallback();\r\n }\r\n };\r\n var json = {\r\n r: JL.requestId,\r\n lg: logItems\r\n };\r\n // call beforeSend callback\r\n // first try the callback on the appender\r\n // then the global defaultBeforeSend callback\r\n if (typeof this.beforeSend === 'function') {\r\n this.beforeSend.call(this, this.xhr, json);\r\n }\r\n else if (typeof JL.defaultBeforeSend === 'function') {\r\n JL.defaultBeforeSend.call(this, this.xhr, json);\r\n }\r\n var finalmsg = JSON.stringify(json);\r\n this.xhr.send(finalmsg);\r\n }\r\n catch (e) { }\r\n };\r\n return AjaxAppender;\r\n }(Appender));\r\n JL.AjaxAppender = AjaxAppender;\r\n // ---------------------\r\n var ConsoleAppender = /** @class */ (function (_super) {\r\n __extends(ConsoleAppender, _super);\r\n function ConsoleAppender(appenderName) {\r\n return _super.call(this, appenderName, ConsoleAppender.prototype.sendLogItemsConsole) || this;\r\n }\r\n ConsoleAppender.prototype.clog = function (logEntry) {\r\n JL._console.log(logEntry);\r\n };\r\n ConsoleAppender.prototype.cerror = function (logEntry) {\r\n if (JL._console.error) {\r\n JL._console.error(logEntry);\r\n }\r\n else {\r\n this.clog(logEntry);\r\n }\r\n };\r\n ConsoleAppender.prototype.cwarn = function (logEntry) {\r\n if (JL._console.warn) {\r\n JL._console.warn(logEntry);\r\n }\r\n else {\r\n this.clog(logEntry);\r\n }\r\n };\r\n ConsoleAppender.prototype.cinfo = function (logEntry) {\r\n if (JL._console.info) {\r\n JL._console.info(logEntry);\r\n }\r\n else {\r\n this.clog(logEntry);\r\n }\r\n };\r\n // IE11 has a console.debug function. But its console doesn't have \r\n // the option to show/hide debug messages (the same way Chrome and FF do),\r\n // even though it does have such buttons for Error, Warn, Info.\r\n //\r\n // For now, this means that debug messages can not be hidden on IE.\r\n // Live with this, seeing that it works fine on FF and Chrome, which\r\n // will be much more popular with developers.\r\n ConsoleAppender.prototype.cdebug = function (logEntry) {\r\n if (JL._console.debug) {\r\n JL._console.debug(logEntry);\r\n }\r\n else {\r\n this.cinfo(logEntry);\r\n }\r\n };\r\n ConsoleAppender.prototype.sendLogItemsConsole = function (logItems, successCallback) {\r\n try {\r\n // Do not send logs, if JL.enabled is set to false\r\n //\r\n // Do not call successCallback here. After each timeout, jsnlog will retry sending the message.\r\n // If jsnlog gets re-enabled, it will then log the number of messages logged.\r\n // If it doesn't get re-enabled, amount of cpu cycles wasted is minimal.\r\n if (!allow(this)) {\r\n return;\r\n }\r\n if (!JL._console) {\r\n return;\r\n }\r\n var i;\r\n for (i = 0; i < logItems.length; ++i) {\r\n var li = logItems[i];\r\n var msg = li.n + \": \" + li.m;\r\n // Only log the timestamp if we're on the server\r\n // (window is undefined). On the browser, the user\r\n // sees the log entry probably immediately, so in that case\r\n // the timestamp is clutter.\r\n if (typeof window === 'undefined') {\r\n msg = new Date(li.t) + \" | \" + msg;\r\n }\r\n if (li.l <= JL.getDebugLevel()) {\r\n this.cdebug(msg);\r\n }\r\n else if (li.l <= JL.getInfoLevel()) {\r\n this.cinfo(msg);\r\n }\r\n else if (li.l <= JL.getWarnLevel()) {\r\n this.cwarn(msg);\r\n }\r\n else {\r\n this.cerror(msg);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n successCallback();\r\n };\r\n return ConsoleAppender;\r\n }(Appender));\r\n JL.ConsoleAppender = ConsoleAppender;\r\n // --------------------\r\n var Logger = /** @class */ (function () {\r\n function Logger(loggerName) {\r\n this.loggerName = loggerName;\r\n // Create seenRexes, otherwise this logger will use the seenRexes\r\n // of its parent via the prototype chain.\r\n this.seenRegexes = [];\r\n }\r\n Logger.prototype.setOptions = function (options) {\r\n copyProperty(\"level\", options, this);\r\n copyProperty(\"userAgentRegex\", options, this);\r\n copyProperty(\"disallow\", options, this);\r\n copyProperty(\"ipRegex\", options, this);\r\n copyProperty(\"appenders\", options, this);\r\n copyProperty(\"onceOnly\", options, this);\r\n // Reset seenRegexes, in case onceOnly has been changed.\r\n this.seenRegexes = [];\r\n return this;\r\n };\r\n // Turns an exception into an object that can be sent to the server.\r\n Logger.prototype.buildExceptionObject = function (e) {\r\n var excObject = {};\r\n if (e.stack) {\r\n excObject.stack = e.stack;\r\n }\r\n else {\r\n excObject.e = e;\r\n }\r\n if (e.message) {\r\n excObject.message = e.message;\r\n }\r\n if (e.name) {\r\n excObject.name = e.name;\r\n }\r\n if (e.data) {\r\n excObject.data = e.data;\r\n }\r\n if (e.inner) {\r\n excObject.inner = this.buildExceptionObject(e.inner);\r\n }\r\n return excObject;\r\n };\r\n // Logs a log item.\r\n // Parameter e contains an exception (or null or undefined).\r\n //\r\n // Reason that processing exceptions is done at this low level is that\r\n // 1) no need to spend the cpu cycles if the logger is switched off\r\n // 2) fatalException takes both a logObject and an exception, and the logObject\r\n // may be a function that should only be executed if the logger is switched on.\r\n //\r\n // If an exception is passed in, the contents of logObject is attached to the exception\r\n // object in a new property logData.\r\n // The resulting exception object is than worked into a message to the server.\r\n //\r\n // If there is no exception, logObject itself is worked into the message to the server.\r\n Logger.prototype.log = function (level, logObject, e) {\r\n var i = 0;\r\n var compositeMessage;\r\n var excObject;\r\n // If we can't find any appenders, do nothing\r\n if (!this.appenders) {\r\n return this;\r\n }\r\n if (((level >= this.level)) && allow(this)) {\r\n if (e) {\r\n excObject = this.buildExceptionObject(e);\r\n excObject.logData = stringifyLogObjectFunction(logObject);\r\n }\r\n else {\r\n excObject = logObject;\r\n }\r\n compositeMessage = stringifyLogObject(excObject);\r\n if (allowMessage(this, compositeMessage.finalString)) {\r\n // See whether message is a duplicate\r\n if (this.onceOnly) {\r\n i = this.onceOnly.length - 1;\r\n while (i >= 0) {\r\n if (new RegExp(this.onceOnly[i]).test(compositeMessage.finalString)) {\r\n if (this.seenRegexes[i]) {\r\n return this;\r\n }\r\n this.seenRegexes[i] = true;\r\n }\r\n i--;\r\n }\r\n }\r\n // Pass message to all appenders\r\n // Note that these appenders could be Winston transports\r\n // https://github.com/flatiron/winston\r\n compositeMessage.meta = compositeMessage.meta || {};\r\n // Note that if the user is logging an object, compositeMessage.meta will hold a reference to that object.\r\n // Do not add fields to compositeMessage.meta, otherwise the user's object will get that field out of the blue.\r\n i = this.appenders.length - 1;\r\n while (i >= 0) {\r\n this.appenders[i].log(levelToString(level), compositeMessage.msg, compositeMessage.meta, function () { }, level, compositeMessage.finalString, this.loggerName);\r\n i--;\r\n }\r\n }\r\n }\r\n return this;\r\n };\r\n Logger.prototype.trace = function (logObject) { return this.log(getTraceLevel(), logObject); };\r\n Logger.prototype.debug = function (logObject) { return this.log(getDebugLevel(), logObject); };\r\n Logger.prototype.info = function (logObject) { return this.log(getInfoLevel(), logObject); };\r\n Logger.prototype.warn = function (logObject) { return this.log(getWarnLevel(), logObject); };\r\n Logger.prototype.error = function (logObject) { return this.log(getErrorLevel(), logObject); };\r\n Logger.prototype.fatal = function (logObject) { return this.log(getFatalLevel(), logObject); };\r\n Logger.prototype.fatalException = function (logObject, e) { return this.log(getFatalLevel(), logObject, e); };\r\n return Logger;\r\n }());\r\n JL.Logger = Logger;\r\n function createAjaxAppender(appenderName) {\r\n return new AjaxAppender(appenderName);\r\n }\r\n JL.createAjaxAppender = createAjaxAppender;\r\n function createConsoleAppender(appenderName) {\r\n return new ConsoleAppender(appenderName);\r\n }\r\n JL.createConsoleAppender = createConsoleAppender;\r\n // -----------------------\r\n // In the browser, the default appender is the AjaxAppender.\r\n // Under nodejs (where there is no \"window\"), use the ConsoleAppender instead.\r\n // \r\n // Do NOT create an AjaxAppender object if you are not on a browser (that is, window is not defined).\r\n // That would try to create an XmlHttpRequest object, which will crash outside a browser.\r\n var defaultAppender;\r\n if (typeof window !== 'undefined') {\r\n defaultAppender = new AjaxAppender(\"\");\r\n }\r\n else {\r\n defaultAppender = new ConsoleAppender(\"\");\r\n }\r\n // Create root logger\r\n //\r\n // Note that this is the parent of all other loggers.\r\n // Logger \"x\" will be stored at\r\n // JL.__.x\r\n // Logger \"x.y\" at\r\n // JL.__.x.y\r\n JL.__ = new JL.Logger(\"\");\r\n JL.__.setOptions({\r\n level: JL.getDebugLevel(),\r\n appenders: [defaultAppender]\r\n });\r\n})(JL || (JL = {}));\r\nif (typeof exports !== 'undefined') {\r\n // Allows SystemJs to import jsnlog.js. See\r\n // https://github.com/mperdeck/jsnlog.js/issues/56\r\n exports.__esModule = true;\r\n exports.JL = JL;\r\n}\r\n// Support AMD module format\r\nvar define;\r\nif (typeof define == 'function' && define.amd) {\r\n define('jsnlog', [], function () {\r\n return JL;\r\n });\r\n}\r\n// If the __jsnlog_configure global function has been\r\n// created, call it now. This allows you to create a global function\r\n// setting logger options etc. inline in the page before jsnlog.js\r\n// has been loaded.\r\nif (typeof __jsnlog_configure == 'function') {\r\n __jsnlog_configure(JL);\r\n}\r\n// Create onerror handler to log uncaught exceptions to the server side log, but only if there \r\n// is no such handler already.\r\n// Must use \"typeof window\" here, because in NodeJs, window is not defined at all, so cannot refer to window in any way.\r\nif (typeof window !== 'undefined' && !window.onerror) {\r\n window.onerror = function (errorMsg, url, lineNumber, column, errorObj) {\r\n // Send object with all data to server side log, using severity fatal, \r\n // from logger \"onerrorLogger\"\r\n //\r\n // Use errorMsg.message if available, so Angular 4 template errors will be logged.\r\n // See https://github.com/mperdeck/jsnlog.js/pull/68\r\n JL(\"onerrorLogger\").fatalException({\r\n \"msg\": \"Uncaught Exception\",\r\n \"errorMsg\": errorMsg ? (errorMsg.message || errorMsg) : '',\r\n \"url\": url,\r\n \"line number\": lineNumber, \"column\": column\r\n }, errorObj);\r\n // Tell browser to run its own error handler as well \r\n return false;\r\n };\r\n}\r\n// Deal with unhandled exceptions thrown in promises\r\nif (typeof window !== 'undefined' && !window.onunhandledrejection) {\r\n window.onunhandledrejection = function (event) {\r\n // Send object with all data to server side log, using severity fatal, \r\n // from logger \"onerrorLogger\".\r\n // Need to check both event.reason.message and event.message,\r\n // because SystemJs wraps exceptions and throws a new object which doesn't have a reason property.\r\n // See https://github.com/systemjs/systemjs/issues/1309\r\n JL(\"onerrorLogger\").fatalException({\r\n \"msg\": \"unhandledrejection\",\r\n \"errorMsg\": event.reason ? event.reason.message : event.message || null\r\n }, event.reason);\r\n };\r\n}\r\n","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\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 return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nconst boxClasses = generateUtilityClasses('MuiBox', ['root']);\nexport default boxClasses;","'use client';\n\nimport { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '../className';\nimport { createTheme } from '../styles';\nimport THEME_ID from '../styles/identifier';\nimport boxClasses from './boxClasses';\nconst defaultTheme = createTheme();\nconst Box = createBox({\n themeId: THEME_ID,\n defaultTheme,\n defaultClassName: boxClasses.root,\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.8\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n","import { urlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array(size))\n while (size--) {\n id += urlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","import { nanoid } from \"nanoid\";\r\n\r\nimport { constants } from \"./index\";\r\nimport { logErrorsService } from \"../core\";\r\n\r\nconst setJwtToken = (token) => {\r\n localStorage.setItem(constants.JWT_TOKEN, token);\r\n};\r\nconst getJwtToken = () => localStorage.getItem(constants.JWT_TOKEN);\r\nconst removeJwtToken = () => {\r\n localStorage.removeItem(constants.JWT_TOKEN);\r\n};\r\n\r\nconst clear = () => {\r\n localStorage.clear();\r\n};\r\n\r\nconst setCompanyId = (conum) => {\r\n localStorage.setItem(\"companyId\", conum);\r\n};\r\nconst getCompanyId = () => {\r\n const companyIdStr = localStorage.getItem(\"companyId\");\r\n if (companyIdStr) {\r\n return parseInt(companyIdStr, 10);\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst setEmployeeNumber = (empnum) => {\r\n localStorage.setItem(\"employeeNumber\", empnum);\r\n};\r\n\r\nconst setVersion = (version) => {\r\n localStorage.setItem(\"version\", version);\r\n};\r\nconst getVersion = () => localStorage.getItem(\"version\") || \"\";\r\n\r\nconst setDownloadCount = (downloadCount) => {\r\n localStorage.setItem(\"downloadCount\", downloadCount);\r\n};\r\nconst getDownloadCount = () => localStorage.getItem(\"downloadCount\") || 0;\r\nconst incrementDownloadCount = () => {\r\n const currentValue = parseInt(getDownloadCount(), 10);\r\n setDownloadCount(currentValue + 1);\r\n};\r\n\r\nconst checkVersion = (serverVersion) => {\r\n const lastReloadTime = sessionStorage.getItem(\"lastReloadTime\");\r\n const currentTime = new Date().getTime();\r\n\r\n if (lastReloadTime && currentTime - lastReloadTime < 25000) {\r\n console.log(\"Checked version recently, skipping check.\");\r\n return;\r\n }\r\n\r\n sessionStorage.setItem(\"lastReloadTime\", currentTime);\r\n\r\n setTimeout(function () {\r\n console.log(\"Version\", process.env.REACT_APP_VERSION);\r\n const prevVersion = localStorage.getItem(\"version\");\r\n localStorage.setItem(\"version\", serverVersion);\r\n logErrorsService.info(`In checkVersion. prevVersion: ${prevVersion} version: ${serverVersion}`);\r\n if (serverVersion && serverVersion !== process.env.REACT_APP_VERSION) {\r\n const message = `New version available (current: ${process.env.REACT_APP_VERSION} server: ${serverVersion}), refreshing site`;\r\n logErrorsService.info(message);\r\n console.log(message);\r\n window.location.reload();\r\n } else {\r\n console.log(\"Version up to date\");\r\n }\r\n }, 750);\r\n};\r\n\r\nconst setGuid = (id) => {\r\n localStorage.setItem(constants.GUID, id);\r\n};\r\n\r\nconst getGuid = () => localStorage.getItem(constants.GUID);\r\n\r\nconst removeGuid = () => localStorage.removeItem(constants.GUID);\r\n\r\nconst setDontShowReportConfirm = () => {\r\n localStorage.setItem(constants.DONT_SHOW_REPORT_CONFIRM, \"true\");\r\n};\r\n\r\nconst getDontShowReportConfirm = () => localStorage.getItem(constants.DONT_SHOW_REPORT_CONFIRM);\r\n\r\nconst setRememberBrowserGuid = (guid) => {\r\n localStorage.setItem(constants.REMEMBER_BROWSER_GUID, guid);\r\n};\r\nconst getRememberBrowserGuid = () => {\r\n const rememberBrowserGuid = localStorage.getItem(constants.REMEMBER_BROWSER_GUID);\r\n return rememberBrowserGuid ?? null;\r\n};\r\nconst removeRememberBrowserGuid = () => localStorage.removeItem(constants.REMEMBER_BROWSER_GUID);\r\n\r\nconst getOrSetBfp = () => {\r\n const bfp = localStorage.getItem(constants.BFP);\r\n if (bfp) return bfp;\r\n const guid = nanoid();\r\n localStorage.setItem(constants.BFP, guid);\r\n return guid;\r\n};\r\n\r\nconst setEmployeesTableColumnModel = (model) => {\r\n localStorage.setItem(constants.EMPLOYEE_TABLE_COLUMNS_MODEL, model);\r\n};\r\n\r\nconst getEmployeesTableColumnModel = () => {\r\n try {\r\n const data = localStorage.getItem(constants.EMPLOYEE_TABLE_COLUMNS_MODEL);\r\n const columnVisibilityModel = JSON.parse(data);\r\n return columnVisibilityModel;\r\n } catch (err) {\r\n return;\r\n }\r\n};\r\n\r\nconst getLiveReportsColumns = (reportId) => {\r\n try {\r\n const data = localStorage.getItem(`${constants.LIVE_REPORTS_COLUMNS}_${reportId}`);\r\n const liveReportsColumns = JSON.parse(data);\r\n return liveReportsColumns ?? [];\r\n } catch (err) {\r\n return [];\r\n }\r\n};\r\n\r\nconst setLiveReportsColumns = (reportId, columns) => {\r\n localStorage.setItem(`${constants.LIVE_REPORTS_COLUMNS}_${reportId}`, JSON.stringify(columns));\r\n};\r\n\r\nconst getLiveReportsGridLayout = (reportId) => {\r\n try {\r\n const data = localStorage.getItem(`${constants.LIVE_REPORTS_GRID_LAYOUT}_${reportId}`);\r\n const liveReportsColumns = JSON.parse(data);\r\n return liveReportsColumns ?? [];\r\n } catch (err) {\r\n return [];\r\n }\r\n};\r\n\r\nconst setLiveReportsGridLayout = (reportId, data) => {\r\n localStorage.setItem(`${constants.LIVE_REPORTS_GRID_LAYOUT}_${reportId}`, JSON.stringify(data));\r\n};\r\n\r\nexport const localStorageSyncApi = {\r\n setJwtToken,\r\n getJwtToken,\r\n removeJwtToken,\r\n clear,\r\n setCompanyId,\r\n getCompanyId,\r\n setEmployeeNumber,\r\n setVersion,\r\n getVersion,\r\n setDownloadCount,\r\n getDownloadCount,\r\n incrementDownloadCount,\r\n checkVersion,\r\n setGuid,\r\n getGuid,\r\n removeGuid,\r\n setDontShowReportConfirm,\r\n getDontShowReportConfirm,\r\n setRememberBrowserGuid,\r\n getRememberBrowserGuid,\r\n removeRememberBrowserGuid,\r\n getOrSetBfp,\r\n setEmployeesTableColumnModel,\r\n getEmployeesTableColumnModel,\r\n getLiveReportsColumns,\r\n setLiveReportsColumns,\r\n getLiveReportsGridLayout,\r\n setLiveReportsGridLayout,\r\n};\r\n","import { nanoid } from \"nanoid\";\r\n\r\nimport { constants } from \"./index\";\r\n\r\nconst setJwtGuid = (jwtGuid) => {\r\n sessionStorage.setItem(constants.JWT_GUID, jwtGuid);\r\n};\r\n\r\nconst getJwtGuid = () => sessionStorage.getItem(constants.JWT_GUID);\r\n\r\nconst setJwtToken = (token) => {\r\n sessionStorage.setItem(constants.JWT_TOKEN, token);\r\n};\r\n\r\nconst getJwtToken = () => sessionStorage.getItem(constants.JWT_TOKEN);\r\n\r\nconst removeJwtToken = () => {\r\n sessionStorage.removeItem(constants.JWT_TOKEN);\r\n};\r\n\r\nconst getEmployeeId = () => sessionStorage.getItem(constants.EMPLOYEE_ID);\r\n\r\nconst setEmployeeId = (conum, empnum) => {\r\n sessionStorage.setItem(constants.EMPLOYEE_ID, JSON.stringify({ conum, empnum }));\r\n};\r\n\r\nconst removeEmployeeId = () => {\r\n sessionStorage.removeItem(constants.EMPLOYEE_ID);\r\n};\r\n\r\nconst getOrSetSfp = () => {\r\n const sfp = sessionStorage.getItem(constants.SFP);\r\n if (sfp) return sfp;\r\n const guid = nanoid();\r\n sessionStorage.setItem(constants.SFP, guid);\r\n return guid;\r\n};\r\n\r\nconst setIsNative = () => {\r\n sessionStorage.setItem(constants.IS_NATIVE, true);\r\n};\r\n\r\nconst getIsNative = () => sessionStorage.getItem(constants.IS_NATIVE) === \"true\";\r\n\r\nexport const sessionStorageSyncApi = {\r\n setJwtGuid,\r\n getJwtGuid,\r\n setJwtToken,\r\n getJwtToken,\r\n removeJwtToken,\r\n getEmployeeId,\r\n setEmployeeId,\r\n removeEmployeeId,\r\n getOrSetSfp,\r\n setIsNative,\r\n getIsNative,\r\n};\r\n","// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");\n }\n return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\n if (reducerKeys.length === 0) {\n return \"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? \"keys\" : \"key\"} \"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. Expected to find one of the known reducer keys instead: \"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${key}\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","var createSymbol = function createSymbol(name) {\n return \"@@redux-saga/\" + name;\n};\n\nvar CANCEL =\n/*#__PURE__*/\ncreateSymbol('CANCEL_PROMISE');\nvar CHANNEL_END_TYPE =\n/*#__PURE__*/\ncreateSymbol('CHANNEL_END');\nvar IO =\n/*#__PURE__*/\ncreateSymbol('IO');\nvar MATCH =\n/*#__PURE__*/\ncreateSymbol('MATCH');\nvar MULTICAST =\n/*#__PURE__*/\ncreateSymbol('MULTICAST');\nvar SAGA_ACTION =\n/*#__PURE__*/\ncreateSymbol('SAGA_ACTION');\nvar SELF_CANCELLATION =\n/*#__PURE__*/\ncreateSymbol('SELF_CANCELLATION');\nvar TASK =\n/*#__PURE__*/\ncreateSymbol('TASK');\nvar TASK_CANCEL =\n/*#__PURE__*/\ncreateSymbol('TASK_CANCEL');\nvar TERMINATE =\n/*#__PURE__*/\ncreateSymbol('TERMINATE');\nvar SAGA_LOCATION =\n/*#__PURE__*/\ncreateSymbol('LOCATION');\n\nexport { CANCEL, CHANNEL_END_TYPE, IO, MATCH, MULTICAST, SAGA_ACTION, SAGA_LOCATION, SELF_CANCELLATION, TASK, TASK_CANCEL, TERMINATE };\n","import { TASK, SAGA_ACTION, MULTICAST, IO } from '@redux-saga/symbols';\n\nvar undef = function undef(v) {\n return v === null || v === undefined;\n};\nvar notUndef = function notUndef(v) {\n return v !== null && v !== undefined;\n};\nvar func = function func(f) {\n return typeof f === 'function';\n};\nvar number = function number(n) {\n return typeof n === 'number';\n};\nvar string = function string(s) {\n return typeof s === 'string';\n};\nvar array = Array.isArray;\nvar object = function object(obj) {\n return obj && !array(obj) && typeof obj === 'object';\n};\nvar promise = function promise(p) {\n return p && func(p.then);\n};\nvar iterator = function iterator(it) {\n return it && func(it.next) && func(it.throw);\n};\nvar iterable = function iterable(it) {\n return it && func(Symbol) ? func(it[Symbol.iterator]) : array(it);\n};\nvar task = function task(t) {\n return t && t[TASK];\n};\nvar sagaAction = function sagaAction(a) {\n return Boolean(a && a[SAGA_ACTION]);\n};\nvar observable = function observable(ob) {\n return ob && func(ob.subscribe);\n};\nvar buffer = function buffer(buf) {\n return buf && func(buf.isEmpty) && func(buf.take) && func(buf.put);\n};\nvar pattern = function pattern(pat) {\n return pat && (string(pat) || symbol(pat) || func(pat) || array(pat) && pat.every(pattern));\n};\nvar channel = function channel(ch) {\n return ch && func(ch.take) && func(ch.close);\n};\nvar stringableFunc = function stringableFunc(f) {\n return func(f) && f.hasOwnProperty('toString');\n};\nvar symbol = function symbol(sym) {\n return Boolean(sym) && typeof Symbol === 'function' && sym.constructor === Symbol && sym !== Symbol.prototype;\n};\nvar multicast = function multicast(ch) {\n return channel(ch) && ch[MULTICAST];\n};\nvar effect = function effect(eff) {\n return eff && eff[IO];\n};\n\nexport { array, buffer, channel, effect, func, iterable, iterator, multicast, notUndef, number, object, observable, pattern, promise, sagaAction, string, stringableFunc, symbol, task, undef };\n","import { TASK_CANCEL, TERMINATE, SAGA_LOCATION, SAGA_ACTION, IO, SELF_CANCELLATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { array, notUndef, pattern, multicast, channel, undef, effect, task, func, buffer, string, object } from '@redux-saga/is';\nimport delayP from '@redux-saga/delay-p';\n\nvar konst = function konst(v) {\n return function () {\n return v;\n };\n};\nvar kTrue =\n/*#__PURE__*/\nkonst(true);\n\nvar noop = function noop() {};\n\nif (process.env.NODE_ENV !== 'production' && typeof Proxy !== 'undefined') {\n noop =\n /*#__PURE__*/\n new Proxy(noop, {\n set: function set() {\n throw internalErr('There was an attempt to assign a property to internal `noop` function.');\n }\n });\n}\nvar identity = function identity(v) {\n return v;\n};\nvar hasSymbol = typeof Symbol === 'function';\nvar asyncIteratorSymbol = hasSymbol && Symbol.asyncIterator ? Symbol.asyncIterator : '@@asyncIterator';\nfunction check(value, predicate, error) {\n if (!predicate(value)) {\n throw new Error(error);\n }\n}\nvar assignWithSymbols = function assignWithSymbols(target, source) {\n _extends(target, source);\n\n if (Object.getOwnPropertySymbols) {\n Object.getOwnPropertySymbols(source).forEach(function (s) {\n target[s] = source[s];\n });\n }\n};\nvar flatMap = function flatMap(mapper, arr) {\n var _ref;\n\n return (_ref = []).concat.apply(_ref, arr.map(mapper));\n};\nfunction remove(array, item) {\n var index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction once(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n fn();\n };\n}\n\nvar kThrow = function kThrow(err) {\n throw err;\n};\n\nvar kReturn = function kReturn(value) {\n return {\n value: value,\n done: true\n };\n};\n\nfunction makeIterator(next, thro, name) {\n if (thro === void 0) {\n thro = kThrow;\n }\n\n if (name === void 0) {\n name = 'iterator';\n }\n\n var iterator = {\n meta: {\n name: name\n },\n next: next,\n throw: thro,\n return: kReturn,\n isSagaIterator: true\n };\n\n if (typeof Symbol !== 'undefined') {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n}\nfunction logError(error, _ref2) {\n var sagaStack = _ref2.sagaStack;\n\n /*eslint-disable no-console*/\n console.error(error);\n console.error(sagaStack);\n}\nvar internalErr = function internalErr(err) {\n return new Error(\"\\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\\n Error: \" + err + \"\\n\");\n};\nvar createSetContextWarning = function createSetContextWarning(ctx, props) {\n return (ctx ? ctx + '.' : '') + \"setContext(props): argument \" + props + \" is not a plain object\";\n};\nvar FROZEN_ACTION_ERROR = \"You can't put (a.k.a. dispatch from saga) frozen actions.\\nWe have to define a special non-enumerable property on those actions for scheduling purposes.\\nOtherwise you wouldn't be able to communicate properly between sagas & other subscribers (action ordering would become far less predictable).\\nIf you are using redux and you care about this behaviour (frozen actions),\\nthen you might want to switch to freezing actions in a middleware rather than in action creator.\\nExample implementation:\\n\\nconst freezeActions = store => next => action => next(Object.freeze(action))\\n\"; // creates empty, but not-holey array\n\nvar createEmptyArray = function createEmptyArray(n) {\n return Array.apply(null, new Array(n));\n};\nvar wrapSagaDispatch = function wrapSagaDispatch(dispatch) {\n return function (action) {\n if (process.env.NODE_ENV !== 'production') {\n check(action, function (ac) {\n return !Object.isFrozen(ac);\n }, FROZEN_ACTION_ERROR);\n }\n\n return dispatch(Object.defineProperty(action, SAGA_ACTION, {\n value: true\n }));\n };\n};\nvar shouldTerminate = function shouldTerminate(res) {\n return res === TERMINATE;\n};\nvar shouldCancel = function shouldCancel(res) {\n return res === TASK_CANCEL;\n};\nvar shouldComplete = function shouldComplete(res) {\n return shouldTerminate(res) || shouldCancel(res);\n};\nfunction createAllStyleChildCallbacks(shape, parentCallback) {\n var keys = Object.keys(shape);\n var totalCount = keys.length;\n\n if (process.env.NODE_ENV !== 'production') {\n check(totalCount, function (c) {\n return c > 0;\n }, 'createAllStyleChildCallbacks: get an empty array or object');\n }\n\n var completedCount = 0;\n var completed;\n var results = array(shape) ? createEmptyArray(totalCount) : {};\n var childCallbacks = {};\n\n function checkEnd() {\n if (completedCount === totalCount) {\n completed = true;\n parentCallback(results);\n }\n }\n\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n parentCallback.cancel();\n parentCallback(res, isErr);\n } else {\n results[key] = res;\n completedCount++;\n checkEnd();\n }\n };\n\n chCbAtKey.cancel = noop;\n childCallbacks[key] = chCbAtKey;\n });\n\n parentCallback.cancel = function () {\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCallbacks[key].cancel();\n });\n }\n };\n\n return childCallbacks;\n}\nfunction getMetaInfo(fn) {\n return {\n name: fn.name || 'anonymous',\n location: getLocation(fn)\n };\n}\nfunction getLocation(instrumented) {\n return instrumented[SAGA_LOCATION];\n}\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\nvar BUFFER_OVERFLOW = \"Channel's Buffer overflow!\";\nvar ON_OVERFLOW_THROW = 1;\nvar ON_OVERFLOW_DROP = 2;\nvar ON_OVERFLOW_SLIDE = 3;\nvar ON_OVERFLOW_EXPAND = 4;\nvar zeroBuffer = {\n isEmpty: kTrue,\n put: noop,\n take: noop\n};\n\nfunction ringBuffer(limit, overflowAction) {\n if (limit === void 0) {\n limit = 10;\n }\n\n var arr = new Array(limit);\n var length = 0;\n var pushIndex = 0;\n var popIndex = 0;\n\n var push = function push(it) {\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n length++;\n };\n\n var take = function take() {\n if (length != 0) {\n var it = arr[popIndex];\n arr[popIndex] = null;\n length--;\n popIndex = (popIndex + 1) % limit;\n return it;\n }\n };\n\n var flush = function flush() {\n var items = [];\n\n while (length) {\n items.push(take());\n }\n\n return items;\n };\n\n return {\n isEmpty: function isEmpty() {\n return length == 0;\n },\n put: function put(it) {\n if (length < limit) {\n push(it);\n } else {\n var doubledLimit;\n\n switch (overflowAction) {\n case ON_OVERFLOW_THROW:\n throw new Error(BUFFER_OVERFLOW);\n\n case ON_OVERFLOW_SLIDE:\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n popIndex = pushIndex;\n break;\n\n case ON_OVERFLOW_EXPAND:\n doubledLimit = 2 * limit;\n arr = flush();\n length = arr.length;\n pushIndex = arr.length;\n popIndex = 0;\n arr.length = doubledLimit;\n limit = doubledLimit;\n push(it);\n break;\n\n default: // DROP\n\n }\n }\n },\n take: take,\n flush: flush\n };\n}\n\nvar none = function none() {\n return zeroBuffer;\n};\nvar fixed = function fixed(limit) {\n return ringBuffer(limit, ON_OVERFLOW_THROW);\n};\nvar dropping = function dropping(limit) {\n return ringBuffer(limit, ON_OVERFLOW_DROP);\n};\nvar sliding = function sliding(limit) {\n return ringBuffer(limit, ON_OVERFLOW_SLIDE);\n};\nvar expanding = function expanding(initialSize) {\n return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);\n};\n\nvar buffers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n none: none,\n fixed: fixed,\n dropping: dropping,\n sliding: sliding,\n expanding: expanding\n});\n\nvar TAKE = 'TAKE';\nvar PUT = 'PUT';\nvar ALL = 'ALL';\nvar RACE = 'RACE';\nvar CALL = 'CALL';\nvar CPS = 'CPS';\nvar FORK = 'FORK';\nvar JOIN = 'JOIN';\nvar CANCEL = 'CANCEL';\nvar SELECT = 'SELECT';\nvar ACTION_CHANNEL = 'ACTION_CHANNEL';\nvar CANCELLED = 'CANCELLED';\nvar FLUSH = 'FLUSH';\nvar GET_CONTEXT = 'GET_CONTEXT';\nvar SET_CONTEXT = 'SET_CONTEXT';\n\nvar effectTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TAKE: TAKE,\n PUT: PUT,\n ALL: ALL,\n RACE: RACE,\n CALL: CALL,\n CPS: CPS,\n FORK: FORK,\n JOIN: JOIN,\n CANCEL: CANCEL,\n SELECT: SELECT,\n ACTION_CHANNEL: ACTION_CHANNEL,\n CANCELLED: CANCELLED,\n FLUSH: FLUSH,\n GET_CONTEXT: GET_CONTEXT,\n SET_CONTEXT: SET_CONTEXT\n});\n\nvar TEST_HINT = '\\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)';\n\nvar makeEffect = function makeEffect(type, payload) {\n var _ref;\n\n return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;\n};\n\nvar isForkEffect = function isForkEffect(eff) {\n return effect(eff) && eff.type === FORK;\n};\n\nvar detach = function detach(eff) {\n if (process.env.NODE_ENV !== 'production') {\n check(eff, isForkEffect, 'detach(eff): argument must be a fork effect');\n }\n\n return makeEffect(FORK, _extends({}, eff.payload, {\n detached: true\n }));\n};\nfunction take(patternOrChannel, multicastPattern) {\n if (patternOrChannel === void 0) {\n patternOrChannel = '*';\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'take(patternOrChannel): patternOrChannel is undefined');\n }\n\n if (pattern(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types\");\n }\n\n return makeEffect(TAKE, {\n pattern: patternOrChannel\n });\n }\n\n if (multicast(patternOrChannel) && notUndef(multicastPattern) && pattern(multicastPattern)) {\n return makeEffect(TAKE, {\n channel: patternOrChannel,\n pattern: multicastPattern\n });\n }\n\n if (channel(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(channel) takes one argument but two were provided. Second argument is ignored.\");\n }\n\n return makeEffect(TAKE, {\n channel: patternOrChannel\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"take(patternOrChannel): argument \" + patternOrChannel + \" is not valid channel or a valid pattern\");\n }\n}\nvar takeMaybe = function takeMaybe() {\n var eff = take.apply(void 0, arguments);\n eff.payload.maybe = true;\n return eff;\n};\nfunction put(channel$1, action) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n check(channel$1, notUndef, 'put(channel, action): argument channel is undefined');\n check(channel$1, channel, \"put(channel, action): argument \" + channel$1 + \" is not a valid channel\");\n check(action, notUndef, 'put(channel, action): argument action is undefined');\n } else {\n check(channel$1, notUndef, 'put(action): argument action is undefined');\n }\n }\n\n if (undef(action)) {\n action = channel$1; // `undefined` instead of `null` to make default parameter work\n\n channel$1 = undefined;\n }\n\n return makeEffect(PUT, {\n channel: channel$1,\n action: action\n });\n}\nvar putResolve = function putResolve() {\n var eff = put.apply(void 0, arguments);\n eff.payload.resolve = true;\n return eff;\n};\nfunction all(effects) {\n var eff = makeEffect(ALL, effects);\n eff.combinator = true;\n return eff;\n}\nfunction race(effects) {\n var eff = makeEffect(RACE, effects);\n eff.combinator = true;\n return eff;\n} // this match getFnCallDescriptor logic\n\nvar validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {\n check(fnDescriptor, notUndef, effectName + \": argument fn is undefined or null\");\n\n if (func(fnDescriptor)) {\n return;\n }\n\n var context = null;\n var fn;\n\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n check(fn, notUndef, effectName + \": argument of type [context, fn] has undefined or null `fn`\");\n } else if (object(fnDescriptor)) {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n check(fn, notUndef, effectName + \": argument of type {context, fn} has undefined or null `fn`\");\n } else {\n check(fnDescriptor, func, effectName + \": argument fn is not function\");\n return;\n }\n\n if (context && string(fn)) {\n check(context[fn], func, effectName + \": context arguments has no such method - \\\"\" + fn + \"\\\"\");\n return;\n }\n\n check(fn, func, effectName + \": unpacked fn argument (from [context, fn] or {context, fn}) is not a function\");\n};\n\nfunction getFnCallDescriptor(fnDescriptor, args) {\n var context = null;\n var fn;\n\n if (func(fnDescriptor)) {\n fn = fnDescriptor;\n } else {\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n } else {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n }\n\n if (context && string(fn) && func(context[fn])) {\n fn = context[fn];\n }\n }\n\n return {\n context: context,\n fn: fn,\n args: args\n };\n}\n\nvar isNotDelayEffect = function isNotDelayEffect(fn) {\n return fn !== delay;\n};\n\nfunction call(fnDescriptor) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var arg0 = typeof args[0] === 'number' ? args[0] : 'ms';\n check(fnDescriptor, isNotDelayEffect, \"instead of writing `yield call(delay, \" + arg0 + \")` where delay is an effect from `redux-saga/effects` you should write `yield delay(\" + arg0 + \")`\");\n validateFnDescriptor('call', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction apply(context, fn, args) {\n if (args === void 0) {\n args = [];\n }\n\n var fnDescriptor = [context, fn];\n\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('apply', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor([context, fn], args));\n}\nfunction cps(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('cps', fnDescriptor);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction fork(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('fork', fnDescriptor);\n check(fnDescriptor, function (arg) {\n return !effect(arg);\n }, 'fork: argument must not be an effect');\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction spawn(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('spawn', fnDescriptor);\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n return detach(fork.apply(void 0, [fnDescriptor].concat(args)));\n}\nfunction join(taskOrTasks) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"join([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else {\n check(taskOrTasks, task, \"join(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(JOIN, taskOrTasks);\n}\nfunction cancel(taskOrTasks) {\n if (taskOrTasks === void 0) {\n taskOrTasks = SELF_CANCELLATION;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"cancel([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else if (taskOrTasks !== SELF_CANCELLATION && notUndef(taskOrTasks)) {\n check(taskOrTasks, task, \"cancel(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(CANCEL, taskOrTasks);\n}\nfunction select(selector) {\n if (selector === void 0) {\n selector = identity;\n }\n\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'select(selector, [...]): argument selector is undefined');\n check(selector, func, \"select(selector, [...]): argument \" + selector + \" is not a function\");\n }\n\n return makeEffect(SELECT, {\n selector: selector,\n args: args\n });\n}\n/**\n channel(pattern, [buffer]) => creates a proxy channel for store actions\n**/\n\nfunction actionChannel(pattern$1, buffer$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(pattern$1, pattern, 'actionChannel(pattern,...): argument pattern is not valid');\n\n if (arguments.length > 1) {\n check(buffer$1, notUndef, 'actionChannel(pattern, buffer): argument buffer is undefined');\n check(buffer$1, buffer, \"actionChannel(pattern, buffer): argument \" + buffer$1 + \" is not a valid buffer\");\n }\n }\n\n return makeEffect(ACTION_CHANNEL, {\n pattern: pattern$1,\n buffer: buffer$1\n });\n}\nfunction cancelled() {\n return makeEffect(CANCELLED, {});\n}\nfunction flush(channel$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(channel$1, channel, \"flush(channel): argument \" + channel$1 + \" is not valid channel\");\n }\n\n return makeEffect(FLUSH, channel$1);\n}\nfunction getContext(prop) {\n if (process.env.NODE_ENV !== 'production') {\n check(prop, string, \"getContext(prop): argument \" + prop + \" is not a string\");\n }\n\n return makeEffect(GET_CONTEXT, prop);\n}\nfunction setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning(null, props));\n }\n\n return makeEffect(SET_CONTEXT, props);\n}\nvar delay =\n/*#__PURE__*/\ncall.bind(null, delayP);\n\nexport { all as $, ALL as A, compose as B, CALL as C, logError as D, wrapSagaDispatch as E, FORK as F, GET_CONTEXT as G, identity as H, buffers as I, JOIN as J, detach as K, take as L, fork as M, cancel as N, call as O, PUT as P, delay as Q, RACE as R, SELECT as S, TAKE as T, actionChannel as U, sliding as V, race as W, effectTypes as X, takeMaybe as Y, put as Z, putResolve as _, CPS as a, apply as a0, cps as a1, spawn as a2, join as a3, select as a4, cancelled as a5, flush as a6, getContext as a7, setContext as a8, CANCEL as b, check as c, ACTION_CHANNEL as d, expanding as e, CANCELLED as f, FLUSH as g, SET_CONTEXT as h, internalErr as i, getMetaInfo as j, kTrue as k, createAllStyleChildCallbacks as l, createEmptyArray as m, none as n, once as o, assignWithSymbols as p, makeIterator as q, remove as r, shouldComplete as s, noop as t, flatMap as u, getLocation as v, createSetContextWarning as w, asyncIteratorSymbol as x, shouldCancel as y, shouldTerminate as z };\n","function deferred() {\n var def = {};\n def.promise = new Promise(function (resolve, reject) {\n def.resolve = resolve;\n def.reject = reject;\n });\n return def;\n}\nfunction arrayOfDeferred(length) {\n var arr = [];\n\n for (var i = 0; i < length; i++) {\n arr.push(deferred());\n }\n\n return arr;\n}\n\nexport default deferred;\nexport { arrayOfDeferred };\n","import { CHANNEL_END_TYPE, MULTICAST, MATCH, SAGA_ACTION, CANCEL, SELF_CANCELLATION, TERMINATE, TASK, TASK_CANCEL, IO } from '@redux-saga/symbols';\nexport { CANCEL, SAGA_LOCATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport { string as string$1, array as array$1, stringableFunc, func, symbol as symbol$1, buffer, notUndef, promise, iterator, undef, object, channel as channel$1 } from '@redux-saga/is';\nimport { k as kTrue, e as expanding, c as check, o as once, r as remove, n as none, i as internalErr, T as TAKE, P as PUT, A as ALL, R as RACE, C as CALL, a as CPS, F as FORK, J as JOIN, b as CANCEL$1, S as SELECT, d as ACTION_CHANNEL, f as CANCELLED$1, g as FLUSH, G as GET_CONTEXT, h as SET_CONTEXT, j as getMetaInfo, l as createAllStyleChildCallbacks, m as createEmptyArray, p as assignWithSymbols, q as makeIterator, s as shouldComplete, t as noop, u as flatMap, v as getLocation, w as createSetContextWarning, x as asyncIteratorSymbol, y as shouldCancel, z as shouldTerminate, B as compose, D as logError, E as wrapSagaDispatch, H as identity } from './io-22ea0cf9.js';\nexport { I as buffers, K as detach } from './io-22ea0cf9.js';\nimport deferred from '@redux-saga/deferred';\nimport '@redux-saga/delay-p';\n\nvar queue = [];\n/**\n Variable to hold a counting semaphore\n - Incrementing adds a lock and puts the scheduler in a `suspended` state (if it's not\n already suspended)\n - Decrementing releases a lock. Zero locks puts the scheduler in a `released` state. This\n triggers flushing the queued tasks.\n**/\n\nvar semaphore = 0;\n/**\n Executes a task 'atomically'. Tasks scheduled during this execution will be queued\n and flushed after this task has finished (assuming the scheduler endup in a released\n state).\n**/\n\nfunction exec(task) {\n try {\n suspend();\n task();\n } finally {\n release();\n }\n}\n/**\n Executes or queues a task depending on the state of the scheduler (`suspended` or `released`)\n**/\n\n\nfunction asap(task) {\n queue.push(task);\n\n if (!semaphore) {\n suspend();\n flush();\n }\n}\n/**\n * Puts the scheduler in a `suspended` state and executes a task immediately.\n */\n\nfunction immediately(task) {\n try {\n suspend();\n return task();\n } finally {\n flush();\n }\n}\n/**\n Puts the scheduler in a `suspended` state. Scheduled tasks will be queued until the\n scheduler is released.\n**/\n\nfunction suspend() {\n semaphore++;\n}\n/**\n Puts the scheduler in a `released` state.\n**/\n\n\nfunction release() {\n semaphore--;\n}\n/**\n Releases the current lock. Executes all queued tasks if the scheduler is in the released state.\n**/\n\n\nfunction flush() {\n release();\n var task;\n\n while (!semaphore && (task = queue.shift()) !== undefined) {\n exec(task);\n }\n}\n\nvar array = function array(patterns) {\n return function (input) {\n return patterns.some(function (p) {\n return matcher(p)(input);\n });\n };\n};\nvar predicate = function predicate(_predicate) {\n return function (input) {\n return _predicate(input);\n };\n};\nvar string = function string(pattern) {\n return function (input) {\n return input.type === String(pattern);\n };\n};\nvar symbol = function symbol(pattern) {\n return function (input) {\n return input.type === pattern;\n };\n};\nvar wildcard = function wildcard() {\n return kTrue;\n};\nfunction matcher(pattern) {\n // prettier-ignore\n var matcherCreator = pattern === '*' ? wildcard : string$1(pattern) ? string : array$1(pattern) ? array : stringableFunc(pattern) ? string : func(pattern) ? predicate : symbol$1(pattern) ? symbol : null;\n\n if (matcherCreator === null) {\n throw new Error(\"invalid pattern: \" + pattern);\n }\n\n return matcherCreator(pattern);\n}\n\nvar END = {\n type: CHANNEL_END_TYPE\n};\nvar isEnd = function isEnd(a) {\n return a && a.type === CHANNEL_END_TYPE;\n};\nvar CLOSED_CHANNEL_WITH_TAKERS = 'Cannot have a closed channel with pending takers';\nvar INVALID_BUFFER = 'invalid buffer passed to channel factory function';\nvar UNDEFINED_INPUT_ERROR = \"Saga or channel was provided with an undefined action\\nHints:\\n - check that your Action Creator returns a non-undefined value\\n - if the Saga was started using runSaga, check that your subscribe source provides the action to its listeners\";\nfunction channel(buffer$1) {\n if (buffer$1 === void 0) {\n buffer$1 = expanding();\n }\n\n var closed = false;\n var takers = [];\n\n if (process.env.NODE_ENV !== 'production') {\n check(buffer$1, buffer, INVALID_BUFFER);\n }\n\n function checkForbiddenStates() {\n if (closed && takers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n\n if (takers.length && !buffer$1.isEmpty()) {\n throw internalErr('Cannot have pending takers with non empty buffer');\n }\n }\n\n function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (takers.length === 0) {\n return buffer$1.put(input);\n }\n\n var cb = takers.shift();\n cb(input);\n }\n\n function take(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.take's callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n } else if (!buffer$1.isEmpty()) {\n cb(buffer$1.take());\n } else {\n takers.push(cb);\n\n cb.cancel = function () {\n remove(takers, cb);\n };\n }\n }\n\n function flush(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.flush' callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n return;\n }\n\n cb(buffer$1.flush());\n }\n\n function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n return;\n }\n\n closed = true;\n var arr = takers;\n takers = [];\n\n for (var i = 0, len = arr.length; i < len; i++) {\n var taker = arr[i];\n taker(END);\n }\n }\n\n return {\n take: take,\n put: put,\n flush: flush,\n close: close\n };\n}\nfunction eventChannel(subscribe, buffer) {\n if (buffer === void 0) {\n buffer = none();\n }\n\n var closed = false;\n var unsubscribe;\n var chan = channel(buffer);\n\n var close = function close() {\n if (closed) {\n return;\n }\n\n closed = true;\n\n if (func(unsubscribe)) {\n unsubscribe();\n }\n\n chan.close();\n };\n\n unsubscribe = subscribe(function (input) {\n if (isEnd(input)) {\n close();\n return;\n }\n\n chan.put(input);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n check(unsubscribe, func, 'in eventChannel: subscribe should return a function to unsubscribe');\n }\n\n unsubscribe = once(unsubscribe);\n\n if (closed) {\n unsubscribe();\n }\n\n return {\n take: chan.take,\n flush: chan.flush,\n close: close\n };\n}\nfunction multicastChannel() {\n var _ref;\n\n var closed = false;\n var currentTakers = [];\n var nextTakers = currentTakers;\n\n function checkForbiddenStates() {\n if (closed && nextTakers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n }\n\n var ensureCanMutateNextTakers = function ensureCanMutateNextTakers() {\n if (nextTakers !== currentTakers) {\n return;\n }\n\n nextTakers = currentTakers.slice();\n };\n\n var close = function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n closed = true;\n var takers = currentTakers = nextTakers;\n nextTakers = [];\n takers.forEach(function (taker) {\n taker(END);\n });\n };\n\n return _ref = {}, _ref[MULTICAST] = true, _ref.put = function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (isEnd(input)) {\n close();\n return;\n }\n\n var takers = currentTakers = nextTakers;\n\n for (var i = 0, len = takers.length; i < len; i++) {\n var taker = takers[i];\n\n if (taker[MATCH](input)) {\n taker.cancel();\n taker(input);\n }\n }\n }, _ref.take = function take(cb, matcher) {\n if (matcher === void 0) {\n matcher = wildcard;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n cb(END);\n return;\n }\n\n cb[MATCH] = matcher;\n ensureCanMutateNextTakers();\n nextTakers.push(cb);\n cb.cancel = once(function () {\n ensureCanMutateNextTakers();\n remove(nextTakers, cb);\n });\n }, _ref.close = close, _ref;\n}\nfunction stdChannel() {\n var chan = multicastChannel();\n var put = chan.put;\n\n chan.put = function (input) {\n if (input[SAGA_ACTION]) {\n put(input);\n return;\n }\n\n asap(function () {\n put(input);\n });\n };\n\n return chan;\n}\n\nvar RUNNING = 0;\nvar CANCELLED = 1;\nvar ABORTED = 2;\nvar DONE = 3;\n\nfunction resolvePromise(promise, cb) {\n var cancelPromise = promise[CANCEL];\n\n if (func(cancelPromise)) {\n cb.cancel = cancelPromise;\n }\n\n promise.then(cb, function (error) {\n cb(error, true);\n });\n}\n\nvar current = 0;\nvar nextSagaId = (function () {\n return ++current;\n});\n\nvar _effectRunnerMap;\n\nfunction getIteratorMetaInfo(iterator, fn) {\n if (iterator.isSagaIterator) {\n return {\n name: iterator.meta.name\n };\n }\n\n return getMetaInfo(fn);\n}\n\nfunction createTaskIterator(_ref) {\n var context = _ref.context,\n fn = _ref.fn,\n args = _ref.args;\n\n // catch synchronous failures; see #152 and #441\n try {\n var result = fn.apply(context, args); // i.e. a generator function returns an iterator\n\n if (iterator(result)) {\n return result;\n }\n\n var resolved = false;\n\n var next = function next(arg) {\n if (!resolved) {\n resolved = true; // Only promises returned from fork will be interpreted. See #1573\n\n return {\n value: result,\n done: !promise(result)\n };\n } else {\n return {\n value: arg,\n done: true\n };\n }\n };\n\n return makeIterator(next);\n } catch (err) {\n // do not bubble up synchronous failures for detached forks\n // instead create a failed task. See #152 and #441\n return makeIterator(function () {\n throw err;\n });\n }\n}\n\nfunction runPutEffect(env, _ref2, cb) {\n var channel = _ref2.channel,\n action = _ref2.action,\n resolve = _ref2.resolve;\n\n /**\n Schedule the put in case another saga is holding a lock.\n The put will be executed atomically. ie nested puts will execute after\n this put has terminated.\n **/\n asap(function () {\n var result;\n\n try {\n result = (channel ? channel.put : env.dispatch)(action);\n } catch (error) {\n cb(error, true);\n return;\n }\n\n if (resolve && promise(result)) {\n resolvePromise(result, cb);\n } else {\n cb(result);\n }\n }); // Put effects are non cancellables\n}\n\nfunction runTakeEffect(env, _ref3, cb) {\n var _ref3$channel = _ref3.channel,\n channel = _ref3$channel === void 0 ? env.channel : _ref3$channel,\n pattern = _ref3.pattern,\n maybe = _ref3.maybe;\n\n var takeCb = function takeCb(input) {\n if (input instanceof Error) {\n cb(input, true);\n return;\n }\n\n if (isEnd(input) && !maybe) {\n cb(TERMINATE);\n return;\n }\n\n cb(input);\n };\n\n try {\n channel.take(takeCb, notUndef(pattern) ? matcher(pattern) : null);\n } catch (err) {\n cb(err, true);\n return;\n }\n\n cb.cancel = takeCb.cancel;\n}\n\nfunction runCallEffect(env, _ref4, cb, _ref5) {\n var context = _ref4.context,\n fn = _ref4.fn,\n args = _ref4.args;\n var task = _ref5.task;\n\n // catch synchronous failures; see #152\n try {\n var result = fn.apply(context, args);\n\n if (promise(result)) {\n resolvePromise(result, cb);\n return;\n }\n\n if (iterator(result)) {\n // resolve iterator\n proc(env, result, task.context, current, getMetaInfo(fn),\n /* isRoot */\n false, cb);\n return;\n }\n\n cb(result);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runCPSEffect(env, _ref6, cb) {\n var context = _ref6.context,\n fn = _ref6.fn,\n args = _ref6.args;\n\n // CPS (ie node style functions) can define their own cancellation logic\n // by setting cancel field on the cb\n // catch synchronous failures; see #152\n try {\n var cpsCb = function cpsCb(err, res) {\n if (undef(err)) {\n cb(res);\n } else {\n cb(err, true);\n }\n };\n\n fn.apply(context, args.concat(cpsCb));\n\n if (cpsCb.cancel) {\n cb.cancel = cpsCb.cancel;\n }\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runForkEffect(env, _ref7, cb, _ref8) {\n var context = _ref7.context,\n fn = _ref7.fn,\n args = _ref7.args,\n detached = _ref7.detached;\n var parent = _ref8.task;\n var taskIterator = createTaskIterator({\n context: context,\n fn: fn,\n args: args\n });\n var meta = getIteratorMetaInfo(taskIterator, fn);\n immediately(function () {\n var child = proc(env, taskIterator, parent.context, current, meta, detached, undefined);\n\n if (detached) {\n cb(child);\n } else {\n if (child.isRunning()) {\n parent.queue.addTask(child);\n cb(child);\n } else if (child.isAborted()) {\n parent.queue.abort(child.error());\n } else {\n cb(child);\n }\n }\n }); // Fork effects are non cancellables\n}\n\nfunction runJoinEffect(env, taskOrTasks, cb, _ref9) {\n var task = _ref9.task;\n\n var joinSingleTask = function joinSingleTask(taskToJoin, cb) {\n if (taskToJoin.isRunning()) {\n var joiner = {\n task: task,\n cb: cb\n };\n\n cb.cancel = function () {\n if (taskToJoin.isRunning()) remove(taskToJoin.joiners, joiner);\n };\n\n taskToJoin.joiners.push(joiner);\n } else {\n if (taskToJoin.isAborted()) {\n cb(taskToJoin.error(), true);\n } else {\n cb(taskToJoin.result());\n }\n }\n };\n\n if (array$1(taskOrTasks)) {\n if (taskOrTasks.length === 0) {\n cb([]);\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(taskOrTasks, cb);\n taskOrTasks.forEach(function (t, i) {\n joinSingleTask(t, childCallbacks[i]);\n });\n } else {\n joinSingleTask(taskOrTasks, cb);\n }\n}\n\nfunction cancelSingleTask(taskToCancel) {\n if (taskToCancel.isRunning()) {\n taskToCancel.cancel();\n }\n}\n\nfunction runCancelEffect(env, taskOrTasks, cb, _ref10) {\n var task = _ref10.task;\n\n if (taskOrTasks === SELF_CANCELLATION) {\n cancelSingleTask(task);\n } else if (array$1(taskOrTasks)) {\n taskOrTasks.forEach(cancelSingleTask);\n } else {\n cancelSingleTask(taskOrTasks);\n }\n\n cb(); // cancel effects are non cancellables\n}\n\nfunction runAllEffect(env, effects, cb, _ref11) {\n var digestEffect = _ref11.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n\n if (keys.length === 0) {\n cb(array$1(effects) ? [] : {});\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(effects, cb);\n keys.forEach(function (key) {\n digestEffect(effects[key], effectId, childCallbacks[key], key);\n });\n}\n\nfunction runRaceEffect(env, effects, cb, _ref12) {\n var digestEffect = _ref12.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n var response = array$1(effects) ? createEmptyArray(keys.length) : {};\n var childCbs = {};\n var completed = false;\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n // Race Auto cancellation\n cb.cancel();\n cb(res, isErr);\n } else {\n cb.cancel();\n completed = true;\n response[key] = res;\n cb(response);\n }\n };\n\n chCbAtKey.cancel = noop;\n childCbs[key] = chCbAtKey;\n });\n\n cb.cancel = function () {\n // prevents unnecessary cancellation\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCbs[key].cancel();\n });\n }\n };\n\n keys.forEach(function (key) {\n if (completed) {\n return;\n }\n\n digestEffect(effects[key], effectId, childCbs[key], key);\n });\n}\n\nfunction runSelectEffect(env, _ref13, cb) {\n var selector = _ref13.selector,\n args = _ref13.args;\n\n try {\n var state = selector.apply(void 0, [env.getState()].concat(args));\n cb(state);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runChannelEffect(env, _ref14, cb) {\n var pattern = _ref14.pattern,\n buffer = _ref14.buffer;\n var chan = channel(buffer);\n var match = matcher(pattern);\n\n var taker = function taker(action) {\n if (!isEnd(action)) {\n env.channel.take(taker, match);\n }\n\n chan.put(action);\n };\n\n var close = chan.close;\n\n chan.close = function () {\n taker.cancel();\n close();\n };\n\n env.channel.take(taker, match);\n cb(chan);\n}\n\nfunction runCancelledEffect(env, data, cb, _ref15) {\n var task = _ref15.task;\n cb(task.isCancelled());\n}\n\nfunction runFlushEffect(env, channel, cb) {\n channel.flush(cb);\n}\n\nfunction runGetContextEffect(env, prop, cb, _ref16) {\n var task = _ref16.task;\n cb(task.context[prop]);\n}\n\nfunction runSetContextEffect(env, props, cb, _ref17) {\n var task = _ref17.task;\n assignWithSymbols(task.context, props);\n cb();\n}\n\nvar effectRunnerMap = (_effectRunnerMap = {}, _effectRunnerMap[TAKE] = runTakeEffect, _effectRunnerMap[PUT] = runPutEffect, _effectRunnerMap[ALL] = runAllEffect, _effectRunnerMap[RACE] = runRaceEffect, _effectRunnerMap[CALL] = runCallEffect, _effectRunnerMap[CPS] = runCPSEffect, _effectRunnerMap[FORK] = runForkEffect, _effectRunnerMap[JOIN] = runJoinEffect, _effectRunnerMap[CANCEL$1] = runCancelEffect, _effectRunnerMap[SELECT] = runSelectEffect, _effectRunnerMap[ACTION_CHANNEL] = runChannelEffect, _effectRunnerMap[CANCELLED$1] = runCancelledEffect, _effectRunnerMap[FLUSH] = runFlushEffect, _effectRunnerMap[GET_CONTEXT] = runGetContextEffect, _effectRunnerMap[SET_CONTEXT] = runSetContextEffect, _effectRunnerMap);\n\n/**\n Used to track a parent task and its forks\n In the fork model, forked tasks are attached by default to their parent\n We model this using the concept of Parent task && main Task\n main task is the main flow of the current Generator, the parent tasks is the\n aggregation of the main tasks + all its forked tasks.\n Thus the whole model represents an execution tree with multiple branches (vs the\n linear execution tree in sequential (non parallel) programming)\n\n A parent tasks has the following semantics\n - It completes if all its forks either complete or all cancelled\n - If it's cancelled, all forks are cancelled as well\n - It aborts if any uncaught error bubbles up from forks\n - If it completes, the return value is the one returned by the main task\n **/\n\nfunction forkQueue(mainTask, onAbort, cont) {\n var tasks = [];\n var result;\n var completed = false;\n addTask(mainTask);\n\n var getTasks = function getTasks() {\n return tasks;\n };\n\n function abort(err) {\n onAbort();\n cancelAll();\n cont(err, true);\n }\n\n function addTask(task) {\n tasks.push(task);\n\n task.cont = function (res, isErr) {\n if (completed) {\n return;\n }\n\n remove(tasks, task);\n task.cont = noop;\n\n if (isErr) {\n abort(res);\n } else {\n if (task === mainTask) {\n result = res;\n }\n\n if (!tasks.length) {\n completed = true;\n cont(result);\n }\n }\n };\n }\n\n function cancelAll() {\n if (completed) {\n return;\n }\n\n completed = true;\n tasks.forEach(function (t) {\n t.cont = noop;\n t.cancel();\n });\n tasks = [];\n }\n\n return {\n addTask: addTask,\n cancelAll: cancelAll,\n abort: abort,\n getTasks: getTasks\n };\n}\n\n// there can be only a single saga error created at any given moment\n\nfunction formatLocation(fileName, lineNumber) {\n return fileName + \"?\" + lineNumber;\n}\n\nfunction effectLocationAsString(effect) {\n var location = getLocation(effect);\n\n if (location) {\n var code = location.code,\n fileName = location.fileName,\n lineNumber = location.lineNumber;\n var source = code + \" \" + formatLocation(fileName, lineNumber);\n return source;\n }\n\n return '';\n}\n\nfunction sagaLocationAsString(sagaMeta) {\n var name = sagaMeta.name,\n location = sagaMeta.location;\n\n if (location) {\n return name + \" \" + formatLocation(location.fileName, location.lineNumber);\n }\n\n return name;\n}\n\nfunction cancelledTasksAsString(sagaStack) {\n var cancelledTasks = flatMap(function (i) {\n return i.cancelledTasks;\n }, sagaStack);\n\n if (!cancelledTasks.length) {\n return '';\n }\n\n return ['Tasks cancelled due to error:'].concat(cancelledTasks).join('\\n');\n}\n\nvar crashedEffect = null;\nvar sagaStack = [];\nvar addSagaFrame = function addSagaFrame(frame) {\n frame.crashedEffect = crashedEffect;\n sagaStack.push(frame);\n};\nvar clear = function clear() {\n crashedEffect = null;\n sagaStack.length = 0;\n}; // this sets crashed effect for the soon-to-be-reported saga frame\n// this slightly streatches the singleton nature of this module into wrong direction\n// as it's even less obvious what's the data flow here, but it is what it is for now\n\nvar setCrashedEffect = function setCrashedEffect(effect) {\n crashedEffect = effect;\n};\n/**\n @returns {string}\n\n @example\n The above error occurred in task errorInPutSaga {pathToFile}\n when executing effect put({type: 'REDUCER_ACTION_ERROR_IN_PUT'}) {pathToFile}\n created by fetchSaga {pathToFile}\n created by rootSaga {pathToFile}\n*/\n\nvar toString = function toString() {\n var firstSaga = sagaStack[0],\n otherSagas = sagaStack.slice(1);\n var crashedEffectLocation = firstSaga.crashedEffect ? effectLocationAsString(firstSaga.crashedEffect) : null;\n var errorMessage = \"The above error occurred in task \" + sagaLocationAsString(firstSaga.meta) + (crashedEffectLocation ? \" \\n when executing effect \" + crashedEffectLocation : '');\n return [errorMessage].concat(otherSagas.map(function (s) {\n return \" created by \" + sagaLocationAsString(s.meta);\n }), [cancelledTasksAsString(sagaStack)]).join('\\n');\n};\n\nfunction newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont) {\n var _task;\n\n if (cont === void 0) {\n cont = noop;\n }\n\n var status = RUNNING;\n var taskResult;\n var taskError;\n var deferredEnd = null;\n var cancelledDueToErrorTasks = [];\n var context = Object.create(parentContext);\n var queue = forkQueue(mainTask, function onAbort() {\n cancelledDueToErrorTasks.push.apply(cancelledDueToErrorTasks, queue.getTasks().map(function (t) {\n return t.meta.name;\n }));\n }, end);\n /**\n This may be called by a parent generator to trigger/propagate cancellation\n cancel all pending tasks (including the main task), then end the current task.\n Cancellation propagates down to the whole execution tree held by this Parent task\n It's also propagated to all joiners of this task and their execution tree/joiners\n Cancellation is noop for terminated/Cancelled tasks tasks\n **/\n\n function cancel() {\n if (status === RUNNING) {\n // Setting status to CANCELLED does not necessarily mean that the task/iterators are stopped\n // effects in the iterator's finally block will still be executed\n status = CANCELLED;\n queue.cancelAll(); // Ending with a TASK_CANCEL will propagate the Cancellation to all joiners\n\n end(TASK_CANCEL, false);\n }\n }\n\n function end(result, isErr) {\n if (!isErr) {\n // The status here may be RUNNING or CANCELLED\n // If the status is CANCELLED, then we do not need to change it here\n if (result === TASK_CANCEL) {\n status = CANCELLED;\n } else if (status !== CANCELLED) {\n status = DONE;\n }\n\n taskResult = result;\n deferredEnd && deferredEnd.resolve(result);\n } else {\n status = ABORTED;\n addSagaFrame({\n meta: meta,\n cancelledTasks: cancelledDueToErrorTasks\n });\n\n if (task.isRoot) {\n var sagaStack = toString(); // we've dumped the saga stack to string and are passing it to user's code\n // we know that it won't be needed anymore and we need to clear it\n\n clear();\n env.onError(result, {\n sagaStack: sagaStack\n });\n }\n\n taskError = result;\n deferredEnd && deferredEnd.reject(result);\n }\n\n task.cont(result, isErr);\n task.joiners.forEach(function (joiner) {\n joiner.cb(result, isErr);\n });\n task.joiners = null;\n }\n\n function setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('task', props));\n }\n\n assignWithSymbols(context, props);\n }\n\n function toPromise() {\n if (deferredEnd) {\n return deferredEnd.promise;\n }\n\n deferredEnd = deferred();\n\n if (status === ABORTED) {\n deferredEnd.reject(taskError);\n } else if (status !== RUNNING) {\n deferredEnd.resolve(taskResult);\n }\n\n return deferredEnd.promise;\n }\n\n var task = (_task = {}, _task[TASK] = true, _task.id = parentEffectId, _task.meta = meta, _task.isRoot = isRoot, _task.context = context, _task.joiners = [], _task.queue = queue, _task.cancel = cancel, _task.cont = cont, _task.end = end, _task.setContext = setContext, _task.toPromise = toPromise, _task.isRunning = function isRunning() {\n return status === RUNNING;\n }, _task.isCancelled = function isCancelled() {\n return status === CANCELLED || status === RUNNING && mainTask.status === CANCELLED;\n }, _task.isAborted = function isAborted() {\n return status === ABORTED;\n }, _task.result = function result() {\n return taskResult;\n }, _task.error = function error() {\n return taskError;\n }, _task);\n return task;\n}\n\nfunction proc(env, iterator$1, parentContext, parentEffectId, meta, isRoot, cont) {\n if (process.env.NODE_ENV !== 'production' && iterator$1[asyncIteratorSymbol]) {\n throw new Error(\"redux-saga doesn't support async generators, please use only regular ones\");\n }\n\n var finalRunEffect = env.finalizeRunEffect(runEffect);\n /**\n Tracks the current effect cancellation\n Each time the generator progresses. calling runEffect will set a new value\n on it. It allows propagating cancellation to child effects\n **/\n\n next.cancel = noop;\n /** Creates a main task to track the main flow */\n\n var mainTask = {\n meta: meta,\n cancel: cancelMain,\n status: RUNNING\n };\n /**\n Creates a new task descriptor for this generator.\n A task is the aggregation of it's mainTask and all it's forked tasks.\n **/\n\n var task = newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont);\n var executingContext = {\n task: task,\n digestEffect: digestEffect\n };\n /**\n cancellation of the main task. We'll simply resume the Generator with a TASK_CANCEL\n **/\n\n function cancelMain() {\n if (mainTask.status === RUNNING) {\n mainTask.status = CANCELLED;\n next(TASK_CANCEL);\n }\n }\n /**\n attaches cancellation logic to this task's continuation\n this will permit cancellation to propagate down the call chain\n **/\n\n\n if (cont) {\n cont.cancel = task.cancel;\n } // kicks up the generator\n\n\n next(); // then return the task descriptor to the caller\n\n return task;\n /**\n * This is the generator driver\n * It's a recursive async/continuation function which calls itself\n * until the generator terminates or throws\n * @param {internal commands(TASK_CANCEL | TERMINATE) | any} arg - value, generator will be resumed with.\n * @param {boolean} isErr - the flag shows if effect finished with an error\n *\n * receives either (command | effect result, false) or (any thrown thing, true)\n */\n\n function next(arg, isErr) {\n try {\n var result;\n\n if (isErr) {\n result = iterator$1.throw(arg); // user handled the error, we can clear bookkept values\n\n clear();\n } else if (shouldCancel(arg)) {\n /**\n getting TASK_CANCEL automatically cancels the main task\n We can get this value here\n - By cancelling the parent task manually\n - By joining a Cancelled task\n **/\n mainTask.status = CANCELLED;\n /**\n Cancels the current effect; this will propagate the cancellation down to any called tasks\n **/\n\n next.cancel();\n /**\n If this Generator has a `return` method then invokes it\n This will jump to the finally block\n **/\n\n result = func(iterator$1.return) ? iterator$1.return(TASK_CANCEL) : {\n done: true,\n value: TASK_CANCEL\n };\n } else if (shouldTerminate(arg)) {\n // We get TERMINATE flag, i.e. by taking from a channel that ended using `take` (and not `takem` used to trap End of channels)\n result = func(iterator$1.return) ? iterator$1.return() : {\n done: true\n };\n } else {\n result = iterator$1.next(arg);\n }\n\n if (!result.done) {\n digestEffect(result.value, parentEffectId, next);\n } else {\n /**\n This Generator has ended, terminate the main task and notify the fork queue\n **/\n if (mainTask.status !== CANCELLED) {\n mainTask.status = DONE;\n }\n\n mainTask.cont(result.value);\n }\n } catch (error) {\n if (mainTask.status === CANCELLED) {\n throw error;\n }\n\n mainTask.status = ABORTED;\n mainTask.cont(error, true);\n }\n }\n\n function runEffect(effect, effectId, currCb) {\n /**\n each effect runner must attach its own logic of cancellation to the provided callback\n it allows this generator to propagate cancellation downward.\n ATTENTION! effect runners must setup the cancel logic by setting cb.cancel = [cancelMethod]\n And the setup must occur before calling the callback\n This is a sort of inversion of control: called async functions are responsible\n of completing the flow by calling the provided continuation; while caller functions\n are responsible for aborting the current flow by calling the attached cancel function\n Library users can attach their own cancellation logic to promises by defining a\n promise[CANCEL] method in their returned promises\n ATTENTION! calling cancel must have no effect on an already completed or cancelled effect\n **/\n if (promise(effect)) {\n resolvePromise(effect, currCb);\n } else if (iterator(effect)) {\n // resolve iterator\n proc(env, effect, task.context, effectId, meta,\n /* isRoot */\n false, currCb);\n } else if (effect && effect[IO]) {\n var effectRunner = effectRunnerMap[effect.type];\n effectRunner(env, effect.payload, currCb, executingContext);\n } else {\n // anything else returned as is\n currCb(effect);\n }\n }\n\n function digestEffect(effect, parentEffectId, cb, label) {\n if (label === void 0) {\n label = '';\n }\n\n var effectId = nextSagaId();\n env.sagaMonitor && env.sagaMonitor.effectTriggered({\n effectId: effectId,\n parentEffectId: parentEffectId,\n label: label,\n effect: effect\n });\n /**\n completion callback and cancel callback are mutually exclusive\n We can't cancel an already completed effect\n And We can't complete an already cancelled effectId\n **/\n\n var effectSettled; // Completion callback passed to the appropriate effect runner\n\n function currCb(res, isErr) {\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n cb.cancel = noop; // defensive measure\n\n if (env.sagaMonitor) {\n if (isErr) {\n env.sagaMonitor.effectRejected(effectId, res);\n } else {\n env.sagaMonitor.effectResolved(effectId, res);\n }\n }\n\n if (isErr) {\n setCrashedEffect(effect);\n }\n\n cb(res, isErr);\n } // tracks down the current cancel\n\n\n currCb.cancel = noop; // setup cancellation logic on the parent cb\n\n cb.cancel = function () {\n // prevents cancelling an already completed effect\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n currCb.cancel(); // propagates cancel downward\n\n currCb.cancel = noop; // defensive measure\n\n env.sagaMonitor && env.sagaMonitor.effectCancelled(effectId);\n };\n\n finalRunEffect(effect, effectId, currCb);\n }\n}\n\nvar RUN_SAGA_SIGNATURE = 'runSaga(options, saga, ...args)';\nvar NON_GENERATOR_ERR = RUN_SAGA_SIGNATURE + \": saga argument must be a Generator function!\";\nfunction runSaga(_ref, saga) {\n var _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n dispatch = _ref.dispatch,\n getState = _ref.getState,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n sagaMonitor = _ref.sagaMonitor,\n effectMiddlewares = _ref.effectMiddlewares,\n _ref$onError = _ref.onError,\n onError = _ref$onError === void 0 ? logError : _ref$onError;\n\n if (process.env.NODE_ENV !== 'production') {\n check(saga, func, NON_GENERATOR_ERR);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var iterator$1 = saga.apply(void 0, args);\n\n if (process.env.NODE_ENV !== 'production') {\n check(iterator$1, iterator, NON_GENERATOR_ERR);\n }\n\n var effectId = nextSagaId();\n\n if (sagaMonitor) {\n // monitors are expected to have a certain interface, let's fill-in any missing ones\n sagaMonitor.rootSagaStarted = sagaMonitor.rootSagaStarted || noop;\n sagaMonitor.effectTriggered = sagaMonitor.effectTriggered || noop;\n sagaMonitor.effectResolved = sagaMonitor.effectResolved || noop;\n sagaMonitor.effectRejected = sagaMonitor.effectRejected || noop;\n sagaMonitor.effectCancelled = sagaMonitor.effectCancelled || noop;\n sagaMonitor.actionDispatched = sagaMonitor.actionDispatched || noop;\n sagaMonitor.rootSagaStarted({\n effectId: effectId,\n saga: saga,\n args: args\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (notUndef(dispatch)) {\n check(dispatch, func, 'dispatch must be a function');\n }\n\n if (notUndef(getState)) {\n check(getState, func, 'getState must be a function');\n }\n\n if (notUndef(effectMiddlewares)) {\n var MIDDLEWARE_TYPE_ERROR = 'effectMiddlewares must be an array of functions';\n check(effectMiddlewares, array$1, MIDDLEWARE_TYPE_ERROR);\n effectMiddlewares.forEach(function (effectMiddleware) {\n return check(effectMiddleware, func, MIDDLEWARE_TYPE_ERROR);\n });\n }\n\n check(onError, func, 'onError passed to the redux-saga is not a function!');\n }\n\n var finalizeRunEffect;\n\n if (effectMiddlewares) {\n var middleware = compose.apply(void 0, effectMiddlewares);\n\n finalizeRunEffect = function finalizeRunEffect(runEffect) {\n return function (effect, effectId, currCb) {\n var plainRunEffect = function plainRunEffect(eff) {\n return runEffect(eff, effectId, currCb);\n };\n\n return middleware(plainRunEffect)(effect);\n };\n };\n } else {\n finalizeRunEffect = identity;\n }\n\n var env = {\n channel: channel,\n dispatch: wrapSagaDispatch(dispatch),\n getState: getState,\n sagaMonitor: sagaMonitor,\n onError: onError,\n finalizeRunEffect: finalizeRunEffect\n };\n return immediately(function () {\n var task = proc(env, iterator$1, context, effectId, getMetaInfo(saga),\n /* isRoot */\n true, undefined);\n\n if (sagaMonitor) {\n sagaMonitor.effectResolved(effectId, task);\n }\n\n return task;\n });\n}\n\nfunction sagaMiddlewareFactory(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n sagaMonitor = _ref.sagaMonitor,\n options = _objectWithoutPropertiesLoose(_ref, [\"context\", \"channel\", \"sagaMonitor\"]);\n\n var boundRunSaga;\n\n if (process.env.NODE_ENV !== 'production') {\n check(channel, channel$1, 'options.channel passed to the Saga middleware is not a channel');\n }\n\n function sagaMiddleware(_ref2) {\n var getState = _ref2.getState,\n dispatch = _ref2.dispatch;\n boundRunSaga = runSaga.bind(null, _extends({}, options, {\n context: context,\n channel: channel,\n dispatch: dispatch,\n getState: getState,\n sagaMonitor: sagaMonitor\n }));\n return function (next) {\n return function (action) {\n if (sagaMonitor && sagaMonitor.actionDispatched) {\n sagaMonitor.actionDispatched(action);\n }\n\n var result = next(action); // hit reducers\n\n channel.put(action);\n return result;\n };\n };\n }\n\n sagaMiddleware.run = function () {\n if (process.env.NODE_ENV !== 'production' && !boundRunSaga) {\n throw new Error('Before running a Saga, you must mount the Saga middleware on the Store using applyMiddleware');\n }\n\n return boundRunSaga.apply(void 0, arguments);\n };\n\n sagaMiddleware.setContext = function (props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('sagaMiddleware', props));\n }\n\n assignWithSymbols(context, props);\n };\n\n return sagaMiddleware;\n}\n\nexport default sagaMiddlewareFactory;\nexport { END, channel, eventChannel, isEnd, multicastChannel, runSaga, stdChannel };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0YzOUQ0MTRCRkU4MTFFOUFCMDNDMzZGQjdEOUVFQzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0YzOUQ0MTVCRkU4MTFFOUFCMDNDMzZGQjdEOUVFQzYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDRjM5RDQxMkJGRTgxMUU5QUIwM0MzNkZCN0Q5RUVDNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDRjM5RDQxM0JGRTgxMUU5QUIwM0MzNkZCN0Q5RUVDNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvYOsVwAAAMjSURBVHja7FhLi9NQGE3a6QwqPkZHHaog2AEFH+BSBjfuxJXgbxBFEAUXLtyIiMtRB3fiwpW4FfQHiKPgA0FEUfCBqO3gTBRra5M21/PBufAZ0naSpjBILhzS3OR+99zzPe5NXWOMs5xbwVnmLSeYE8wJ9mkjPZ5tBW4B+4A2UExhv00R7gCnAT9LgvJsE7AG+A7UEypuOHYc2AC4WStoSEjInQSeAaMJbAfAUeACbZmsCdoYFbe8Az6ksP8ZCKmeOwyChrG3ivdlYC1jSyaep+sngPXsE5s1YBFYSWJ/gNYwCGp3CdHzwAGgQ/LivvvACboz5Hs3gKu8dxiHu5SadvEuvdSk2n5agtawTLJb9W8moSlgj+qvKBKCg8DdSBy6yu5b4BhJpiJYoFu/AL/pVlntAtWUfo99Eg5fFQlpY8xkEwkf6V9B+2ODuLjEq7jyDElJ+8XYugRcUYrU1cLk/h7rYFPVRlnMfuAmx4WDENRKFnk1ikBBwY2pl0L4E8duZNL8AKqMb3fQrc6nkRngBfAIeAAcYm08Czxlvzw/rmLXziO/p4HnwHWKYxU3g2axLR8VKhCXJGXVv03FmW4THLOdMRdmVWYKjLtX3P4CGq+yX7LwtVrI+0iS2Dav3g2W4sEkSSKTXwSuqUJdo/vFZbcjhVqHUIE2ngBHVBUoZUXQUVnrk4jhb7k2VCgU1b0TKcoB9/ZWF4VTJ4ktDTNMhMfEYcbSOWCOfXM8XDiqHBmSm+bzWSaXn5WCRgV/RfWPU4UyE8W2yS42VnP8t6WKk8TFhu6xxdlXBXlBuX+UB4W41uB7nlI3syQRgqfoThuDiyR7mYliY83juKKKNbHxENjLHSXIMklcVSbimqdI9bIhi/kYY/f//Kpzk6y0j41uJ+q+c/Qi+JOB3FHJkLQ1GJetLifqOu2HnC9RDFZY40rcO70UH01bKIJ8JuyIZG7AOUpUb4pV4l+Je/z99hLYyQmqVCPJt7Goso4H1Sa3P33k7/CbZZIqv4mc1vsqaOtZR518k8Zfm6frEaoYV1trXHhsyXHzPzBzgjnBnOBw218BBgBxt+YdHSdRfAAAAABJRU5ErkJggg==\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2025.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2024%2024'%20style='enable-background:new%200%200%2024%2024;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:none;stroke:%23FFFFFF;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%20%3c/style%3e%3cg%3e%3cline%20class='st0'%20x1='2.2'%20y1='20.3'%20x2='21.8'%20y2='20.3'/%3e%3cg%3e%3crect%20x='3.2'%20y='3.7'%20class='st0'%20width='11.5'%20height='16.6'/%3e%3crect%20x='14.6'%20y='7.7'%20class='st0'%20width='6.1'%20height='12.6'/%3e%3c/g%3e%3cg%3e%3cline%20class='st0'%20x1='18.7'%20y1='10.9'%20x2='16.7'%20y2='10.9'/%3e%3cline%20class='st0'%20x1='18.7'%20y1='13.8'%20x2='16.7'%20y2='13.8'/%3e%3cline%20class='st0'%20x1='18.7'%20y1='16.6'%20x2='16.7'%20y2='16.6'/%3e%3c/g%3e%3cg%3e%3cline%20class='st0'%20x1='7.8'%20y1='8'%20x2='5.8'%20y2='8'/%3e%3cline%20class='st0'%20x1='12'%20y1='8'%20x2='10'%20y2='8'/%3e%3cline%20class='st0'%20x1='7.8'%20y1='10.9'%20x2='5.8'%20y2='10.9'/%3e%3cline%20class='st0'%20x1='12'%20y1='10.9'%20x2='10'%20y2='10.9'/%3e%3cline%20class='st0'%20x1='7.8'%20y1='13.8'%20x2='5.8'%20y2='13.8'/%3e%3cline%20class='st0'%20x1='12'%20y1='13.8'%20x2='10'%20y2='13.8'/%3e%3cline%20class='st0'%20x1='7.8'%20y1='16.6'%20x2='5.8'%20y2='16.6'/%3e%3cline%20class='st0'%20x1='12'%20y1='16.6'%20x2='10'%20y2='16.6'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.5'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.5%203.75C2.5%203.05964%203.05964%202.5%203.75%202.5H12.5C13.1904%202.5%2013.75%203.05964%2013.75%203.75V12.5C13.75%2013.1904%2013.1904%2013.75%2012.5%2013.75H3.75C3.05964%2013.75%202.5%2013.1904%202.5%2012.5V3.75ZM5%205V11.25H11.25V5H5ZM16.25%203.75C16.25%203.05964%2016.8096%202.5%2017.5%202.5H26.25C26.9404%202.5%2027.5%203.05964%2027.5%203.75V12.5C27.5%2013.1904%2026.9404%2013.75%2026.25%2013.75H17.5C16.8096%2013.75%2016.25%2013.1904%2016.25%2012.5V3.75ZM18.75%205V11.25H25V5H18.75ZM2.5%2017.5C2.5%2016.8096%203.05964%2016.25%203.75%2016.25H12.5C13.1904%2016.25%2013.75%2016.8096%2013.75%2017.5V26.25C13.75%2026.9404%2013.1904%2027.5%2012.5%2027.5H3.75C3.05964%2027.5%202.5%2026.9404%202.5%2026.25V17.5ZM5%2018.75V25H11.25V18.75H5ZM16.25%2017.5C16.25%2016.8096%2016.8096%2016.25%2017.5%2016.25H26.25C26.9404%2016.25%2027.5%2016.8096%2027.5%2017.5V26.25C27.5%2026.9404%2026.9404%2027.5%2026.25%2027.5H17.5C16.8096%2027.5%2016.25%2026.9404%2016.25%2026.25V17.5ZM18.75%2018.75V25H25V18.75H18.75Z'%20fill='white'/%3e%3c/g%3e%3c/svg%3e\"","export default \"__VITE_ASSET__wTK$xc3B__\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDdBREE3MTVDMDJBMTFFOUFCMDNDMzZGQjdEOUVFQzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDdBREE3MTZDMDJBMTFFOUFCMDNDMzZGQjdEOUVFQzYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0N0FEQTcxM0MwMkExMUU5QUIwM0MzNkZCN0Q5RUVDNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0N0FEQTcxNEMwMkExMUU5QUIwM0MzNkZCN0Q5RUVDNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgIX97IAAAFwSURBVHja7JjNSgJRGIY9KglFhiBFXkBBt5A30BUEgvtWLqSlu5bRqlW0jBYFLbqC9t2AC1cRof0YVlqLcKb3g3cxDI0znuaE1PfBg8qMc54553jmPRrf9zOzXNnMjJcKqqAK/nXBRXAAuuANvJBX8AwuwYZLQROzUO+DXco9Bm7IA0VQBtdgi8K/LtgDeVAHbTk/ILgAjkAVNMChC8F8zHGRuAMd0A8dk8/HFNwBV+AhcBNJyuPIWPfgPYexz4t918Aq38vc/JhCMAdG4ALsgYFND0r5ZBzR+G2gQcNzk5RcbwU0+b2mTQ8O2Is1vpoUp5c0vA7OOBLLNj0oQp/gBjw5+A2MOAJrP1moRXLO0TJX4NQY66NOBVVQBVVQBVUwMrN5zHku6p3P4Zxtoh4ykG6GIn9acUtSTIWpxkrwlEHyJLRpSqM8pvXSpP1MXGBdYhzfBvNTpOVEGzZOnXPQior8Rv8fVEEVVMF/LvglwAD4bl0WHVph/QAAAABJRU5ErkJggg==\"","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='21'%20viewBox='0%200%2020%2021'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='settings'%3e%3cg%20id='Vector'%3e%3cpath%20d='M9.99984%2012.7286C11.255%2012.7286%2012.2726%2011.7111%2012.2726%2010.4559C12.2726%209.20072%2011.255%208.18319%209.99984%208.18319C8.74464%208.18319%207.72711%209.20072%207.72711%2010.4559C7.72711%2011.7111%208.74464%2012.7286%209.99984%2012.7286Z'%20stroke='%23DAD4F7'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M15.6059%2012.7286C15.5051%2012.9571%2015.475%2013.2106%2015.5195%2013.4563C15.5641%2013.7021%2015.6812%2013.9289%2015.8559%2014.1074L15.9014%2014.1529C16.1857%2014.4372%2016.3454%2014.8228%2016.3454%2015.2248C16.3454%2015.6269%2016.1857%2016.0125%2015.9014%2016.2968C15.6171%2016.5811%2015.2315%2016.7408%2014.8294%2016.7408C14.4273%2016.7408%2014.0417%2016.5811%2013.7574%2016.2968L13.712%2016.2513C13.5334%2016.0767%2013.3066%2015.9595%2013.0609%2015.915C12.8151%2015.8704%2012.5617%2015.9005%2012.3332%2016.0013C12.1091%2016.0974%2011.918%2016.2568%2011.7834%2016.4601C11.6488%2016.6633%2011.5766%2016.9015%2011.5756%2017.1453V17.2741C11.5756%2017.6759%2011.416%2018.0613%2011.1318%2018.3454C10.8477%2018.6296%2010.4623%2018.7892%2010.0604%2018.7892C9.6586%2018.7892%209.27322%2018.6296%208.98907%2018.3454C8.70492%2018.0613%208.54529%2017.6759%208.54529%2017.2741V17.2059C8.53943%2016.9551%208.45826%2016.7119%208.31235%2016.5079C8.16643%2016.3039%207.96252%2016.1485%207.72711%2016.062C7.49861%2015.9611%207.24515%2015.931%206.99939%2015.9756C6.75364%2016.0201%206.52687%2016.1373%206.34832%2016.312L6.30287%2016.3574C6.01856%2016.6417%205.63296%2016.8014%205.2309%2016.8014C4.82883%2016.8014%204.44323%2016.6417%204.15893%2016.3574C3.87462%2016.0731%203.7149%2015.6875%203.7149%2015.2854C3.7149%2014.8834%203.87462%2014.4978%204.15893%2014.2135L4.20438%2014.168C4.37903%2013.9895%204.49619%2013.7627%204.54075%2013.5169C4.58531%2013.2712%204.55523%2013.0177%204.45438%2012.7892C4.35835%2012.5652%204.19889%2012.3741%203.99564%2012.2395C3.79239%2012.1049%203.55422%2012.0326%203.31044%2012.0317H3.18166C2.77981%2012.0317%202.39443%2011.872%202.11028%2011.5879C1.82614%2011.3037%201.6665%2010.9183%201.6665%2010.5165C1.6665%2010.1147%201.82614%209.72927%202.11028%209.44512C2.39443%209.16098%202.77981%209.00135%203.18166%209.00135H3.24984C3.50059%208.99548%203.74378%208.91432%203.94779%208.7684C4.1518%208.62249%204.3072%208.41857%204.39378%208.18317C4.49462%207.95467%204.5247%207.7012%204.48014%207.45545C4.43558%207.20969%204.31843%206.98292%204.14378%206.80438L4.09832%206.75892C3.81402%206.47462%203.6543%206.08902%203.6543%205.68695C3.6543%205.28489%203.81402%204.89929%204.09832%204.61498C4.38263%204.33068%204.76823%204.17096%205.17029%204.17096C5.57236%204.17096%205.95796%204.33068%206.24226%204.61498L6.28772%204.66044C6.46626%204.83509%206.69303%204.95224%206.93879%204.9968C7.18454%205.04136%207.43801%205.01128%207.6665%204.91044H7.72711C7.95118%204.81441%208.14228%204.65495%208.27688%204.4517C8.41148%204.24845%208.48371%204.01028%208.48469%203.7665V3.63771C8.48469%203.23587%208.64432%202.85048%208.92846%202.56634C9.21261%202.28219%209.59799%202.12256%209.99984%202.12256C10.4017%202.12256%2010.7871%202.28219%2011.0712%202.56634C11.3554%202.85048%2011.515%203.23587%2011.515%203.63771V3.70589C11.516%203.94967%2011.5882%204.18784%2011.7228%204.39109C11.8574%204.59434%2012.0485%204.7538%2012.2726%204.84983C12.5011%204.95068%2012.7545%204.98076%2013.0003%204.9362C13.246%204.89164%2013.4728%204.77448%2013.6514%204.59983L13.6968%204.55438C13.9811%204.27007%2014.3667%204.11035%2014.7688%204.11035C15.1708%204.11035%2015.5564%204.27007%2015.8407%204.55438C16.1251%204.83868%2016.2848%205.22428%2016.2848%205.62635C16.2848%206.02841%2016.1251%206.41401%2015.8407%206.69832L15.7953%206.74377C15.6206%206.92232%2015.5035%207.14909%2015.4589%207.39484C15.4144%207.64059%2015.4444%207.89406%2015.5453%208.12256V8.18317C15.7423%208.64074%2016.1907%208.93847%2016.6892%208.94074H16.818C17.2199%208.94074%2017.6052%209.10037%2017.8894%209.38452C18.1735%209.66866%2018.3332%2010.054%2018.3332%2010.4559C18.3332%2010.8577%2018.1735%2011.2431%2017.8894%2011.5273C17.6052%2011.8114%2017.2199%2011.971%2016.818%2011.971H16.7498C16.5061%2011.972%2016.2679%2012.0443%2016.0646%2012.1789C15.8614%2012.3135%2015.7019%2012.5046%2015.6059%2012.7286Z'%20stroke='%23DAD4F7'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e\"","export default \"__VITE_ASSET__CfB7s2WG__\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2025.3.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2024%2024'%20style='enable-background:new%200%200%2024%2024;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:none;stroke:%23FFFFFF;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%20%3c/style%3e%3cg%3e%3ccircle%20class='st0'%20cx='9.7'%20cy='9.1'%20r='5.2'/%3e%3cpath%20class='st0'%20d='M9.7,14.3c-3.9,0-6.6,3.6-6.6,5.8'/%3e%3cpath%20class='st0'%20d='M12.8,14.9c0.9,0.4,1.8,1.1,2.4,1.8'/%3e%3c/g%3e%3ccircle%20class='st0'%20cx='18.5'%20cy='18'%20r='3.6'/%3e%3cline%20class='st0'%20x1='18.5'%20y1='16.7'%20x2='18.5'%20y2='19.1'/%3e%3cline%20class='st0'%20x1='19.7'%20y1='17.9'%20x2='17.4'%20y2='17.9'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2025.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2024%2024'%20style='enable-background:new%200%200%2024%2024;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%23FFFFFF;}%20%3c/style%3e%3cg%3e%3cg%3e%3cpath%20class='st0'%20d='M12,2.8c0.3,0,0.7,0.1,0.9,0.4l2,2c0.5,0.5,0.5,1.4,0,1.9l-2,2c-0.3,0.3-0.6,0.4-0.9,0.4%20c-0.3,0-0.7-0.1-0.9-0.4l-2-2c-0.5-0.5-0.5-1.4,0-1.9l2-2C11.3,2.9,11.6,2.8,12,2.8%20M12,1.8c-0.6,0-1.2,0.2-1.7,0.7l-2,2%20c-0.9,0.9-0.9,2.4,0,3.3l2,2c0.4,0.4,1,0.7,1.7,0.7c0.6,0,1.2-0.2,1.7-0.7l2-2c0.9-0.9,0.9-2.4,0-3.3l-2-2C13.2,2,12.6,1.8,12,1.8%20L12,1.8z'/%3e%3c/g%3e%3cg%3e%3cpath%20class='st0'%20d='M17.9,8.7c0.3,0,0.7,0.1,0.9,0.4l2,2c0.5,0.5,0.5,1.4,0,1.9l-2,2c-0.3,0.3-0.6,0.4-0.9,0.4s-0.7-0.1-0.9-0.4%20l-2-2c-0.5-0.5-0.5-1.4,0-1.9l2-2C17.3,8.8,17.6,8.7,17.9,8.7%20M17.9,7.7c-0.6,0-1.2,0.2-1.7,0.7l-2,2c-0.9,0.9-0.9,2.4,0,3.3l2,2%20c0.4,0.4,1,0.7,1.7,0.7c0.6,0,1.2-0.2,1.7-0.7l2-2c0.9-0.9,0.9-2.4,0-3.3l-2-2C19.2,8,18.6,7.7,17.9,7.7L17.9,7.7z'/%3e%3c/g%3e%3cg%3e%3cpath%20class='st0'%20d='M6.1,8.7c0.3,0,0.7,0.1,0.9,0.4l2,2c0.5,0.5,0.5,1.4,0,1.9l-2,2c-0.3,0.3-0.6,0.4-0.9,0.4s-0.7-0.1-0.9-0.4%20l-2-2c-0.5-0.5-0.5-1.4,0-1.9l2-2C5.4,8.8,5.7,8.7,6.1,8.7%20M6.1,7.7c-0.6,0-1.2,0.2-1.7,0.7l-2,2c-0.9,0.9-0.9,2.4,0,3.3l2,2%20c0.4,0.4,1,0.7,1.7,0.7c0.6,0,1.2-0.2,1.7-0.7l2-2c0.9-0.9,0.9-2.4,0-3.3l-2-2C7.3,7.9,6.7,7.7,6.1,7.7L6.1,7.7z'/%3e%3c/g%3e%3cg%3e%3cpath%20class='st0'%20d='M12,14.6c0.3,0,0.7,0.1,0.9,0.4l2,2c0.5,0.5,0.5,1.4,0,1.9l-2,2c-0.3,0.3-0.6,0.4-0.9,0.4%20c-0.3,0-0.7-0.1-0.9-0.4l-2-2c-0.5-0.5-0.5-1.4,0-1.9l2-2C11.3,14.8,11.7,14.6,12,14.6%20M12,13.6c-0.6,0-1.2,0.2-1.7,0.7l-2,2%20c-0.9,0.9-0.9,2.4,0,3.3l2,2c0.4,0.4,1,0.7,1.7,0.7c0.6,0,1.2-0.2,1.7-0.7l2-2c0.9-0.9,0.9-2.4,0-3.3l-2-2%20C13.2,13.9,12.6,13.6,12,13.6L12,13.6z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2025.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2024%2024'%20style='enable-background:new%200%200%2024%2024;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:none;stroke:%23FFFFFF;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%20%3c/style%3e%3cg%3e%3ccircle%20class='st0'%20cx='12'%20cy='12'%20r='9.1'/%3e%3cg%3e%3cpath%20class='st0'%20d='M9.2,13.8c0,1.3,1.1,2.7,3.1,2.7c1.4,0,2.5-1,2.5-2.3s-1-2.1-2.5-2.3c-1.4-0.2-2.5-1-2.5-2.3s1.1-2.3,2.5-2.3%20s2.5,1,2.5,2.3'/%3e%3cline%20class='st0'%20x1='12.3'%20y1='7.4'%20x2='12.3'%20y2='6.2'/%3e%3cline%20class='st0'%20x1='12.3'%20y1='17.8'%20x2='12.3'%20y2='16.6'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='21'%20viewBox='0%200%2020%2021'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Users'%3e%3cpath%20id='Vector'%20d='M17.5%2017.1225C17.5%2015.6711%2016.1087%2014.4364%2014.1667%2013.9788M12.5%2017.1226C12.5%2015.2816%2010.2614%2013.7892%207.5%2013.7892C4.73858%2013.7892%202.5%2015.2816%202.5%2017.1226M12.5%2011.2892C14.3409%2011.2892%2015.8333%209.79684%2015.8333%207.95589C15.8333%206.11494%2014.3409%204.62256%2012.5%204.62256M7.5%2011.2892C5.65905%2011.2892%204.16667%209.79684%204.16667%207.95589C4.16667%206.11494%205.65905%204.62256%207.5%204.62256C9.34095%204.62256%2010.8333%206.11494%2010.8333%207.95589C10.8333%209.79684%209.34095%2011.2892%207.5%2011.2892Z'%20stroke='%23DAD4F7'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.8'%3e%3crect%20x='2.5'%20y='4.5'%20width='19'%20height='15'%20rx='0.5'%20stroke='white'/%3e%3cline%20x1='7.5'%20y1='5'%20x2='7.5'%20y2='19'%20stroke='white'/%3e%3cline%20x1='3'%20y1='9.5'%20x2='21'%20y2='9.5'%20stroke='white'/%3e%3cline%20x1='3'%20y1='14.5'%20x2='21'%20y2='14.5'%20stroke='white'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='21'%20viewBox='0%200%2020%2021'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Folder'%3e%3cpath%20id='Vector'%20d='M2.5%205.45591V14.4559C2.5%2015.3893%202.5%2015.8557%202.68166%2016.2122C2.84144%2016.5258%203.09623%2016.7813%203.40983%2016.9411C3.766%2017.1226%204.23249%2017.1226%205.16409%2017.1226H14.8359C15.7675%2017.1226%2016.2333%2017.1226%2016.5895%2016.9411C16.9031%2016.7813%2017.1587%2016.526%2017.3185%2016.2124C17.5002%2015.8559%2017.5002%2015.3892%2017.5002%2014.4557L17.5002%208.12239C17.5002%207.18897%2017.5002%206.72226%2017.3185%206.36574C17.1587%206.05214%2016.9033%205.79736%2016.5897%205.63757C16.2331%205.45591%2015.7668%205.45591%2014.8333%205.45591H10M2.5%205.45591H10M2.5%205.45591C2.5%204.53544%203.24619%203.78925%204.16667%203.78925H7.22876C7.63642%203.78925%207.84072%203.78925%208.03253%203.8353C8.20259%203.87612%208.36488%203.94363%208.514%204.03501C8.68214%204.13805%208.82651%204.28242%209.11458%204.5705L10%205.45591'%20stroke='%23DAD4F7'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2025.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2024%2024'%20style='enable-background:new%200%200%2024%2024;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:none;stroke:%23FFFFFF;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%20%3c/style%3e%3cg%3e%3ccircle%20class='st0'%20cx='12'%20cy='12'%20r='9.1'/%3e%3cpolyline%20class='st0'%20points='12,7.5%2012,12%2017,15.4%20'/%3e%3c/g%3e%3c/svg%3e\"","export default \"__VITE_ASSET__DETJEUxh__\"","export default \"data:image/svg+xml,%3csvg%20width='18'%20height='17'%20viewBox='0%200%2018%2017'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20id='Vector'%20d='M10.875%2013.1434H13.6875M13.6875%2013.1434H16.5M13.6875%2013.1434V15.9559M13.6875%2013.1434V10.3309M2.90625%206.58093H5.71875C6.4954%206.58093%207.125%205.95133%207.125%205.17468V2.36218C7.125%201.58553%206.4954%200.955933%205.71875%200.955933H2.90625C2.1296%200.955933%201.5%201.58553%201.5%202.36218V5.17468C1.5%205.95133%202.1296%206.58093%202.90625%206.58093ZM2.90625%2015.9559H5.71875C6.4954%2015.9559%207.125%2015.3263%207.125%2014.5497V11.7372C7.125%2010.9605%206.4954%2010.3309%205.71875%2010.3309H2.90625C2.1296%2010.3309%201.5%2010.9605%201.5%2011.7372V14.5497C1.5%2015.3263%202.1296%2015.9559%202.90625%2015.9559ZM12.2812%206.58093H15.0938C15.8704%206.58093%2016.5%205.95133%2016.5%205.17468V2.36218C16.5%201.58553%2015.8704%200.955933%2015.0938%200.955933H12.2812C11.5046%200.955933%2010.875%201.58553%2010.875%202.36218V5.17468C10.875%205.95133%2011.5046%206.58093%2012.2812%206.58093Z'%20stroke='%23DAD4F7'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M11.6082%203.13325C11.8392%202.95558%2012.1608%202.95558%2012.3918%203.13325L20.749%209.56053C20.9672%209.72831%2021.0543%2010.0164%2020.9658%2010.2769C20.8771%2010.5375%2020.6324%2010.7127%2020.3572%2010.7127H3.64277C3.36755%2010.7127%203.12287%2010.5375%203.03426%2010.2769C2.94565%2010.0164%203.03278%209.72831%203.25094%209.56053L11.6082%203.13325ZM11.9983%208.14183C12.5307%208.14183%2012.9624%207.71018%2012.9624%207.17773C12.9624%206.64528%2012.5307%206.21364%2011.9983%206.21364C11.4658%206.21364%2011.0342%206.64528%2011.0342%207.17773C11.0342%207.71018%2011.4658%208.14183%2011.9983%208.14183ZM15.8546%2011.9982H18.4256V17.14H15.8546V11.9982ZM13.2837%2017.14V11.9982H10.7128V17.14H13.2837ZM8.14191%2017.14V11.9982H5.57099V17.14H8.14191ZM4.12219%2018.4255C3.96458%2018.4763%203.82988%2018.5869%203.75038%2018.738L3.07401%2020.0234C2.96918%2020.2227%202.97623%2020.4623%203.09259%2020.655C3.20897%2020.8477%203.41769%2020.9655%203.64281%2020.9655H20.3572C20.5823%2020.9655%2020.7909%2020.8478%2020.9073%2020.6552C21.0237%2020.4627%2021.0309%2020.2233%2020.9264%2020.0241L20.2517%2018.7386C20.1722%2018.5872%2020.0374%2018.4763%2019.8797%2018.4255H4.12219Z'%20fill='%23200868'%20stroke='%23E2E0EF'%20stroke-width='0.8'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='22'%20height='23'%20viewBox='0%200%2022%2023'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='dollar'%3e%3cpath%20id='Vector'%20d='M8.70833%2014.0202L9.02183%2014.3846C9.64315%2015.1069%2010.8701%2015.4202%2011.9768%2015.1392C14.2344%2014.5661%2014.2127%2012.2409%2011.9446%2011.6901L10.4692%2011.3318C8.18956%2010.7781%208.24077%208.42275%2010.5433%207.9217C11.3934%207.73672%2012.3147%207.89839%2012.9549%208.34486L13.2949%208.58204M11.229%206.41423V7.47179M11.229%2015.4144V16.4976M19.25%2011.4559C19.25%206.89955%2015.5563%203.20589%2011%203.20589C6.44365%203.20589%202.75%206.89955%202.75%2011.4559C2.75%2016.0122%206.44365%2019.7059%2011%2019.7059C15.5563%2019.7059%2019.25%2016.0122%2019.25%2011.4559Z'%20stroke='%23DAD4F7'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e\"","import companyIcon from \"../assets/NavBarIcons/company.png\";\r\nimport dashboardIcon from \"../assets/NavBarIcons/dashboard_icon.svg\";\r\nimport cpaDashboard from \"../assets/NavBarIcons/cpa_dashboard.svg\";\r\nimport feedbackIcon from \"../assets/NavBarIcons/feedback_icon.svg\";\r\nimport reportsIcon from \"../assets/NavBarIcons/files.png\";\r\nimport settingsIcon from \"../assets/NavBarIcons/settings.svg\";\r\nimport helpCenterIcon from \"../assets/NavBarIcons/help_center.svg\";\r\nimport manageHrIcon from \"../assets/NavBarIcons/manage_hr_icon.svg\";\r\nimport manageIcon from \"../assets/NavBarIcons/manage_icon.svg\";\r\nimport payrollFinancingIcon from \"../assets/NavBarIcons/payroll_financing_icon.svg\";\r\nimport employeesIcon from \"../assets/NavBarIcons/users.svg\";\r\nimport powerImportIcon from \"../assets/NavBarIcons/power_import_icon.svg\";\r\nimport reportsIconV2 from \"../assets/NavBarIcons/folder.svg\";\r\nimport swipeClockIcon from \"../assets/NavBarIcons/swipe_clock_icon.svg\";\r\nimport settings from \"../assets/NavBarIcons/settings-gear-icon.svg\";\r\nimport servicesIcon from \"../assets/NavBarIcons/services.svg\";\r\nimport addCpaIcon from \"../assets/NavBarIcons/add-cpa-company.svg\";\r\nimport payrollIcon from \"../assets/NavBarIcons/dollar.svg\";\r\n\r\nexport const PAGES = {\r\n authConfirmAccount: {\r\n id: \"authConfirmAccount\",\r\n title: \"Confirm Account\",\r\n path: \"/auth/confirm-account\",\r\n },\r\n brandsLogin: {\r\n id: \"brandsLogin\",\r\n title: \"Brands Login\",\r\n path: \"/auth/login\",\r\n },\r\n loginVerifyPassword: {\r\n id: \"loginVerifyPassword\",\r\n title: \"Enter Your Password\",\r\n path: \"/verify_password\",\r\n },\r\n brandsLoginSelectCompany: {\r\n id: \"loginSelectCompany\",\r\n title: \"Please Select a Company\",\r\n path: \"/auth/select-company\",\r\n },\r\n impersonate: {\r\n id: \"impersonate\",\r\n title: \"Log out\",\r\n path: \"/auth/logout\",\r\n },\r\n\r\n setUpAccountPassword: {\r\n id: \"setUpAccountPassword\",\r\n title: \"SetUp Account: Password\",\r\n path: \"/auth/set-up-account/password\",\r\n },\r\n\r\n resetPasswordEmail: {\r\n id: \"resetPasswordEmail\",\r\n title: \"Reset Password: Email Authentication\",\r\n path: \"/auth/reset-password/email\",\r\n },\r\n resetPasswordInput: {\r\n id: \"resetPasswordInput\",\r\n title: \"Reset Password: Input\",\r\n path: \"/auth/reset-password/input\",\r\n },\r\n resetPasswordComplete: {\r\n id: \"resetPasswordComplete\",\r\n title: \"Reset Password: Complete\",\r\n path: \"/auth/reset-password/complete\",\r\n },\r\n twoFactorAuthLogin: {\r\n id: \"twoFactorAuthLogin\",\r\n title: \"Two Factor Authentication\",\r\n path: \"/auth/login/mfa\",\r\n },\r\n authFrillSso: {\r\n id: \"authFrillSso\",\r\n title: \"Frill SSO\",\r\n path: \"/auth/frillSso\",\r\n },\r\n\r\n authorizePayroll: {\r\n id: \"authorizePayroll\",\r\n title: \"Authorize Payroll\",\r\n path: \"/authorize-payroll\",\r\n },\r\n\r\n restrictedIp: {\r\n id: \"restrictedIp\",\r\n path: \"/restricted\",\r\n },\r\n\r\n employeeForm: {\r\n id: \"employeeForm\",\r\n title: \"Employee Form\",\r\n path: \"/employee-form\",\r\n },\r\n\r\n // DASHBOARD\r\n dashboard: {\r\n id: \"Dashboard\",\r\n title: \"Dashboard\",\r\n path: \"/dashboard\",\r\n iconSrc: dashboardIcon,\r\n },\r\n dashboardOld: {\r\n id: \"dashboardOld\",\r\n title: \"Dashboard Old\",\r\n path: \"/dashboardOld\",\r\n iconComponent: () => \"Dashboard,\r\n },\r\n // EMPLOYEES\r\n payHistoryEmployee: {\r\n id: \"payHistoryEmployee\", // Must come before payHistory\r\n title: \"Employee Pay History\",\r\n path: \"/pay-history/employee\",\r\n // iconComponent: AccountCircleIcon\r\n },\r\n payrollFinancing: {\r\n id: \"payrollFinancing\",\r\n title: \"Payroll Financing\",\r\n path: \"/payroll-financing\",\r\n iconSrc: payrollFinancingIcon,\r\n },\r\n employeesOnboarding: {\r\n id: \"employeesOnboarding\",\r\n title: \"Onboarding\",\r\n path: \"/employees-onboarding\",\r\n },\r\n employees: {\r\n id: \"employees\",\r\n title: \"Employees\",\r\n path: \"/employees\",\r\n iconSrc: employeesIcon,\r\n },\r\n newEmployees: {\r\n id: \"new-employee\",\r\n title: \"Add new employee\",\r\n path: \"/employees-new\",\r\n },\r\n usersbyCompany: {\r\n id: \"usersbyCompany\",\r\n title: \"Users by company\",\r\n path: \"/usersbycompany\",\r\n },\r\n\r\n // USERS\r\n settings: {\r\n id: \"settingsUsers\",\r\n title: \"Settings\",\r\n path: \"/settings/users\",\r\n iconSrc: settingsIcon,\r\n },\r\n\r\n settingsUsers: {\r\n id: \"settingsUsers\",\r\n title: \"Users & Roles\",\r\n path: \"/settings/users\",\r\n },\r\n\r\n settingsManageCpaPortal: {\r\n id: \"settingsManageCpaPortal\",\r\n title: \"CPA Portal\",\r\n path: \"/settings/cpaportal\",\r\n },\r\n\r\n settingsBankAccounts: {\r\n id: \"settingsBankAccounts\",\r\n title: \"Bank Account(s)\",\r\n path: \"/settings?option=bankAccounts\",\r\n },\r\n\r\n settingsIpRestrictions: {\r\n id: \"settingsIpRestrictions\",\r\n title: \"IP Restrictions\",\r\n path: \"/settings/ip-restrictions\",\r\n },\r\n\r\n settingsNotifications: {\r\n id: \"settingsNotifications\",\r\n title: \"Notifications\",\r\n path: \"/settings/notifications\",\r\n },\r\n\r\n // EMPLOYEE DECK SETTINGS\r\n employeeDeckSettings: {\r\n id: \"employee-deck-settings\",\r\n title: \"Employee Deck Settings\",\r\n path: \"/settings/employeedeck\",\r\n },\r\n\r\n settingsMain: {\r\n id: \"settingsMain\",\r\n title: \"Settings\",\r\n path: \"/settings\",\r\n },\r\n\r\n // SERVICES\r\n services: {\r\n id: \"services\",\r\n title: \"Services & Apps\",\r\n path: \"/services\",\r\n iconSrc: servicesIcon,\r\n },\r\n\r\n // REPORTS\r\n reportsPrimary: {\r\n id: \"reportsPrimary\",\r\n title: \"Primary Reports\",\r\n path: \"/reports/primary\",\r\n resourcesApiTag: \"/standard_reports\",\r\n // iconComponent: FindInPageIcon\r\n },\r\n standardReportsOld: {\r\n id: \"standardReports\",\r\n title: \"Archived Reports\",\r\n path: \"/standard_reports\",\r\n resourcesApiTag: \"/standard_reports\",\r\n // iconComponent: FindInPageIcon\r\n },\r\n reportsRun: {\r\n id: \"reportsRun\",\r\n title: \"Run a Report\",\r\n path: \"/reports/run\",\r\n resourcesApiTag: \"/run_report\",\r\n iconSrc: reportsIconV2,\r\n },\r\n reports: {\r\n id: \"reports\",\r\n title: \"Reports\",\r\n path: \"/reports\",\r\n resourcesApiTag: \"/reports\",\r\n iconSrc: reportsIconV2,\r\n },\r\n reportsRunV2: {\r\n id: \"reportsRun\",\r\n title: \"Run a Report\",\r\n path: \"/reports/run-v2\",\r\n resourcesApiTag: \"/run_report\",\r\n iconSrc: reportsIconV2,\r\n },\r\n liveReports: {\r\n id: \"liveReports\",\r\n title: \"Live Reports\",\r\n path: \"/reports/live\",\r\n resourcesApiTag: \"/live_reports\",\r\n iconSrc: reportsIconV2,\r\n },\r\n runReportOld: {\r\n id: \"runReport\",\r\n title: \"Reports on Demand\",\r\n path: \"/run_report\",\r\n resourcesApiTag: \"/run_report\",\r\n iconComponent: () => \"REPORTS\",\r\n },\r\n reportsPosted: {\r\n id: \"reportsPosted\",\r\n title: \"Posted Reports\",\r\n path: \"/reports/posted\",\r\n resourcesApiTag: \"/my_reports\",\r\n // iconComponent: CloudDownloadIcon\r\n },\r\n myReportsOld: {\r\n id: \"myReports\",\r\n title: \"My Reports\",\r\n path: \"/my_reports\",\r\n resourcesApiTag: \"/my_reports\",\r\n // iconComponent: CloudDownloadIcon\r\n },\r\n newReport: {\r\n id: \"newReport\",\r\n title: \"Data Studio / Untitled Report\",\r\n path: \"/new_report\",\r\n },\r\n customReports: {\r\n id: \"customReports\",\r\n title: \"Report Builder\",\r\n path: \"/custom-reports\",\r\n iconSrc: reportsIconV2,\r\n },\r\n\r\n supportOvertime: {\r\n id: \"supportOvertime\",\r\n title: \"Data Studio / Support Dep\",\r\n path: \"/support_overtime\",\r\n },\r\n helpCenter: {\r\n id: \"helpCenter\",\r\n title: \"Help Center\",\r\n path: \"https://support.brandspaycheck.com/hc/en-us\",\r\n iconSrc: helpCenterIcon,\r\n },\r\n feedback: {\r\n id: \"feedback\",\r\n title: \"Client Feedback\",\r\n path: \"/feedback\",\r\n iconSrc: feedbackIcon,\r\n },\r\n platinumPayExpress: {\r\n id: \"Manage Payroll\",\r\n title: \"Payroll (PPX Legacy)\",\r\n path: \"/platinum-pay-express\",\r\n iconSrc: manageIcon,\r\n },\r\n swipeClock: {\r\n id: \"swipeClock\",\r\n title: \"Timekeeping\",\r\n path: \"/swipe-clock\",\r\n iconSrc: swipeClockIcon,\r\n },\r\n hrNextDirect: {\r\n id: \"hrNextDirect\",\r\n title: \"Hr Next Direct\",\r\n path: \"/hrNextDirect\",\r\n iconSrc: manageHrIcon,\r\n },\r\n // POWER IMPORTS\r\n powerImports: {\r\n id: \"powerImport\",\r\n title: \"Power Imports\",\r\n path: \"/powerImports\",\r\n iconSrc: powerImportIcon,\r\n },\r\n // ERRORS\r\n testReactErrorBoundaries: {\r\n id: \"testReactErrorBoundaries\",\r\n path: \"/test_react_error_boundaries\",\r\n },\r\n // ONBOARDING\r\n onboarding: {\r\n id: \"onboarding\",\r\n title: \"Onboarding\",\r\n path: \"/onboarding\",\r\n },\r\n // EMPLOYEE DECK USERS\r\n employeeDeckUsers: {\r\n id: \"employee-deck-users\",\r\n title: \"Employee Deck Users\",\r\n path: \"/employee-deck/users\",\r\n },\r\n // CPA PORTAL\r\n cpaClients: {\r\n id: \"cpa-clients\",\r\n title: \"CPA Clients\",\r\n path: \"/cpa/clients\",\r\n iconSrc: cpaDashboard,\r\n },\r\n cpaSettings: {\r\n id: \"cpa-settings\",\r\n title: \"CPA Settings\",\r\n path: \"/cpa/settings\",\r\n iconSrc: settings,\r\n },\r\n cpaSignup: {\r\n id: \"cpa-signup\",\r\n title: \"CPA Signup\",\r\n path: \"/cpa/signup\",\r\n },\r\n cpaProfile: {\r\n id: \"cpa-profile\",\r\n title: \"CPA Profile\",\r\n path: \"/cpa/profile\",\r\n },\r\n cpaReports: {\r\n id: \"cpa-reports\",\r\n title: \"CPA Reports\",\r\n path: \"/cpa/reports\",\r\n iconSrc: reportsIconV2,\r\n },\r\n cpaClientOverview: {\r\n id: \"cpa-client-overview\",\r\n title: \"Overview\",\r\n path: \"/cpa/overview\",\r\n iconSrc: cpaDashboard,\r\n },\r\n cpaClientSettings: {\r\n id: \"cpa-client-settings\",\r\n title: \"Settings\",\r\n path: \"/cpa/settings\",\r\n iconSrc: settings,\r\n },\r\n cpaAddCompany: {\r\n id: \"cpa-add\",\r\n title: \"CPA Add Company\",\r\n path: \"/cpa/add\",\r\n iconSrc: addCpaIcon,\r\n },\r\n //QBO\r\n qboConnect: {\r\n id: \"qbo-connect\",\r\n title: \"QBO Connect\",\r\n path: \"/qbo/connect\",\r\n },\r\n payrollsPowerImports: {\r\n id: \"payrollsPowerImports\",\r\n title: \"Power Imports\",\r\n path: \"/payrolls/power-imports\",\r\n },\r\n payrollsManualChecks: {\r\n id: \"payrollsManualChecks\",\r\n title: \"Manual & Voided Checks\",\r\n path: \"/payrolls/manual-checks\",\r\n },\r\n payrollsPreferences: {\r\n id: \"payrollsPreferences\",\r\n title: \"Preferences\",\r\n path: \"/payrolls/preferences\",\r\n },\r\n payrollsList: {\r\n id: \"payrollsList\",\r\n title: \"Preferences - Payroll Lists\",\r\n path: \"/payrolls/preferences/lists\",\r\n },\r\n newPayrollsList: {\r\n id: \"newPayrollsList\",\r\n title: \"Preferences - Payroll Lists - New\",\r\n path: \"/payrolls/preferences/new-list\",\r\n },\r\n editPayrollsList: {\r\n id: \"editPayrollsList\",\r\n title: \"Preferences - Payroll Lists - Edit\",\r\n path: \"/payrolls/preferences/edit-list\",\r\n },\r\n payrolls: {\r\n id: \"payrolls\",\r\n title: \"Payrolls\",\r\n path: \"/payrolls\",\r\n iconSrc: payrollIcon,\r\n },\r\n payrollsOverview: {\r\n id: \"payrollsOverview\",\r\n title: \"Overview\",\r\n path: \"/payrolls\",\r\n },\r\n payrollStart: {\r\n id: \"payrollStart\",\r\n title: \"Start Payroll\",\r\n path: \"/payrolls/new\",\r\n },\r\n payrollStartEmployees: {\r\n id: \"payrollStart\",\r\n title: \"Start Payroll - Select Employees\",\r\n path: \"/payrolls/new/start/employees\",\r\n },\r\n payrollStartSubmit: {\r\n id: \"payrollSubmit\",\r\n title: \"Start Payroll - Submit\",\r\n path: \"/payrolls/new/start/submit\",\r\n },\r\n // ESS\r\n essDashboard: {\r\n id: \"essDashboard\",\r\n title: \"Dashboard\",\r\n path: \"/ess/dashboard\",\r\n },\r\n essPayHistory: {\r\n id: \"essPayHistory\",\r\n title: \"Pay History\",\r\n path: \"/ess/pay-history\",\r\n },\r\n essPayHistoryDetail: {\r\n id: \"essPayHistoryDetail\",\r\n title: \"Pay History Detail\",\r\n path: \"/ess/pay-history/:id\",\r\n },\r\n essProfile: {\r\n id: \"essProfile\",\r\n title: \"Profile\",\r\n path: \"/ess/profile\",\r\n },\r\n essDocuments: {\r\n id: \"essDocuments\",\r\n title: \"Documents\",\r\n path: \"/ess/documents\",\r\n },\r\n essTaxWithholdings: {\r\n id: \"essTaxWithholdings\",\r\n title: \"Tax withholdings - W4\",\r\n path: \"/ess/tax-withholdings\",\r\n },\r\n essDirectDeposit: {\r\n id: \"essDirectDeposit\",\r\n title: \"Direct Despoit\",\r\n path: \"/ess/direct-deposit\",\r\n },\r\n essTimeKeeping: {\r\n id: \"essTimeKeeping\",\r\n title: \"Time Keeping\",\r\n path: \"/ess/time-keeping\",\r\n },\r\n essPosterElite: {\r\n id: \"essPostElite\",\r\n title: \"Poster Elite\",\r\n path: \"/ess/posterElite\",\r\n },\r\n devextremeEmployees: {\r\n id: \"devextremeEmployees\",\r\n title: \"Employees\",\r\n path: \"/devextreme/employees\",\r\n },\r\n essSetup: {\r\n id: \"essSetup\",\r\n title: \"Setup\",\r\n path: \"/ess/setup\",\r\n },\r\n employeeOnboarding: {\r\n id: \"employeeOnboarding\",\r\n title: \"Employee Onboarding\",\r\n path: \"/employee-onboarding\",\r\n },\r\n designGuidelines: {\r\n id: \"designGuidelines\",\r\n title: \"Design Guidelines\",\r\n path: \"/design-guidelines\",\r\n },\r\n};\r\n\r\nexport const getPageIdByPath = (path) => {\r\n const pagesValues = Object.keys(PAGES).map((e) => PAGES[e]);\r\n for (const page of pagesValues) {\r\n if (path.indexOf(page.path) === 0) {\r\n return page.id;\r\n }\r\n }\r\n return PAGES.dashboard.id;\r\n};\r\n","import { PAGES } from \"../../routes/pages\";\r\n\r\n// ACTION TYPES\r\nconst TYPES = {\r\n LOADING_START: \"LOADING_START\",\r\n LOADING_FINISH: \"LOADING_FINISH\",\r\n\r\n // SET CURRENT TAB\r\n SET_REPORTS_SUBNAVBAR_TAB: \"SET_REPORTS_SUBNAVBAR_TAB\",\r\n SET_EMPLOYEES_SUBNAVBAR_TAB: \"SET_EMPLOYEES_SUBNAVBAR_TAB\",\r\n SET_USERS_SUBNAVBAR_TAB: \"SET_USERS_SUBNAVBAR_TAB\",\r\n\r\n SET_HELP_CENTER_LINK: \"SET_HELP_CENTER_LINK\",\r\n\r\n SET_CURRENT_COMPANY_ID: \"SET_CURRENT_COMPANY_ID\",\r\n SET_IS_BANNER_VISIBLE: \"SET_IS_BANNER_VISIBLE\",\r\n SET_BANNER_HEIGHT: \"SET_BANNER_HEIGHT\",\r\n\r\n SET_MAIN_DRAWER_OPEN: \"SET_MAIN_DRAWER_OPEN\",\r\n\r\n SET_CPA_FIRMS: \"SET_CPA_FIRMS\",\r\n SET_CPA_CLIENT: \"SET_CPA_CLIENT\",\r\n\r\n SET_POWER_IMPORT_DOWNLOAD: \"SET_POWER_IMPORT_DOWNLOAD\",\r\n\r\n UPDATE_PROFILE: \"UPDATE_PROFILE\",\r\n\r\n TOGGLE_IS_IFRAME_LOADED: \"TOGGLE_IS_IFRAME_LOADED\",\r\n};\r\n\r\n// ACTION CREATORS\r\nexport const loadingStartAC = () => ({ type: TYPES.LOADING_START });\r\n\r\nexport const loadingFinishAC = () => ({ type: TYPES.LOADING_FINISH });\r\n\r\nexport const setHelpCenterLinkAC = (helpCenterLink) => ({\r\n type: TYPES.SET_HELP_CENTER_LINK,\r\n payload: {\r\n helpCenterLink,\r\n },\r\n});\r\n\r\nexport const setIsBannerVisible = (isBannerVisible) => {\r\n return {\r\n type: TYPES.SET_IS_BANNER_VISIBLE,\r\n payload: {\r\n isBannerVisible,\r\n },\r\n };\r\n};\r\n\r\nexport const setBannerHeight = (bannerHeight) => {\r\n return {\r\n type: TYPES.SET_BANNER_HEIGHT,\r\n payload: {\r\n bannerHeight,\r\n },\r\n };\r\n};\r\n\r\nexport const setMainDrawerOpenAC = (isDrawerOpen) => ({\r\n type: TYPES.SET_MAIN_DRAWER_OPEN,\r\n payload: {\r\n isDrawerOpen,\r\n },\r\n});\r\n\r\nexport const setCpaClient = (cpaClient) => ({\r\n type: TYPES.SET_CPA_CLIENT,\r\n payload: {\r\n cpaClient,\r\n },\r\n});\r\n\r\nexport const setPowerImportDownload = (powerImportDownload) => ({\r\n type: TYPES.SET_POWER_IMPORT_DOWNLOAD,\r\n payload: {\r\n powerImportDownload,\r\n },\r\n});\r\n\r\nexport const updatProfile = (profile) => ({\r\n type: TYPES.UPDATE_PROFILE,\r\n payload: {\r\n profile,\r\n },\r\n});\r\n\r\nexport const toggleIsIframeLoaded = (isIFrameLoaded) => ({\r\n type: TYPES.TOGGLE_IS_IFRAME_LOADED,\r\n payload: {\r\n isIFrameLoaded,\r\n },\r\n});\r\n\r\n// REDUCER\r\nconst initialState = {\r\n loading: false,\r\n reportsSubnavbarTab: \"\",\r\n usersSubnavbarTab: PAGES.settingsUsers.id,\r\n helpCenterLink: \"https://support.brandspaycheck.com/hc/en-us\",\r\n currentCompanyId: 0,\r\n isBannerVisible: false,\r\n bannerHeight: 0,\r\n initiated: false,\r\n isMainDrawerOpen: true,\r\n subMenuTabs: {\r\n reportBrowser: {\r\n displayName: \"Run a Report\",\r\n order: 1,\r\n },\r\n downloads: {\r\n displayName: \"Downloads\",\r\n order: 2,\r\n },\r\n reportLibrary: {\r\n displayName: \"Reports Archive\",\r\n order: 3,\r\n },\r\n },\r\n cpaClient: null,\r\n powerImportDownload: false,\r\n isIFrameLoaded: false,\r\n};\r\n\r\nexport const appReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.LOADING_START:\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n case TYPES.LOADING_FINISH:\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n case TYPES.SET_REPORTS_SUBNAVBAR_TAB:\r\n return {\r\n ...state,\r\n reportsSubnavbarTab: action.payload.pageId,\r\n };\r\n case TYPES.SET_EMPLOYEES_SUBNAVBAR_TAB:\r\n return {\r\n ...state,\r\n employeesSubnavbarTab: action.payload.pageId,\r\n };\r\n case TYPES.SET_USERS_SUBNAVBAR_TAB:\r\n return {\r\n ...state,\r\n usersSubnavbarTab: action.payload.pageId,\r\n };\r\n case TYPES.SET_HELP_CENTER_LINK:\r\n return {\r\n ...state,\r\n helpCenterLink: action.payload.helpCenterLink,\r\n };\r\n case TYPES.SET_CURRENT_COMPANY_ID:\r\n return {\r\n ...state,\r\n currentCompanyId: action.payload.currentCompanyId,\r\n };\r\n case TYPES.SET_IS_BANNER_VISIBLE:\r\n return {\r\n ...state,\r\n isBannerVisible: action.payload.isBannerVisible,\r\n };\r\n case TYPES.SET_BANNER_HEIGHT:\r\n return {\r\n ...state,\r\n bannerHeight: action.payload.bannerHeight,\r\n };\r\n case TYPES.SET_MAIN_DRAWER_OPEN:\r\n return {\r\n ...state,\r\n isMainDrawerOpen: action.payload.isDrawerOpen,\r\n };\r\n case TYPES.SET_CPA_FIRMS:\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n ...action.payload.cpa,\r\n },\r\n };\r\n case TYPES.SET_CPA_CLIENT:\r\n return {\r\n ...state,\r\n cpaClient: action.payload.cpaClient,\r\n };\r\n case TYPES.SET_POWER_IMPORT_DOWNLOAD:\r\n return {\r\n ...state,\r\n powerImportDownload: action.payload.powerImportDownload,\r\n };\r\n case TYPES.UPDATE_PROFILE:\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n ...action.payload.profile,\r\n },\r\n };\r\n case TYPES.TOGGLE_IS_IFRAME_LOADED:\r\n return {\r\n ...state,\r\n isIFrameLoaded: action.payload.isIFrameLoaded,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectIsLoading = (state) => state.app.loading;\r\n\r\nexport const selectReportsSubnavbarTab = (state) => state.app.reportsSubnavbarTab;\r\nexport const selectEmployeesSubnavbarTab = (state) => state.app.employeesSubnavbarTab;\r\n\r\nexport const selectHelpCenterLink = (state) => state.app.helpCenterLink;\r\n\r\nexport const selectSubMenuTabs = (state) => state.app.subMenuTabs;\r\n\r\nexport const selectIsBannerVisible = (state) => state.app.isBannerVisible;\r\nexport const selectBannerHeight = (state) => state.app.bannerHeight;\r\n\r\nexport const selectIsMainDrawerOpen = (state) => state.app.isMainDrawerOpen;\r\n\r\nexport const selectCpaClient = (state) => state.app.cpaClient;\r\n\r\nexport const selectIsIFrameLoaded = (state) => state.app.isIFrameLoaded;\r\n","const TYPES = {\r\n SET_TOP_PANEL_DATA: \"SET_TOP_PANEL_DATA\"\r\n};\r\n\r\nconst initialState = {\r\n topPanelData: {\r\n greeting: \"\",\r\n lastPayroll: \"\",\r\n tiles: []\r\n }\r\n};\r\n\r\nexport const dashboardReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.SET_TOP_PANEL_DATA:\r\n return {\r\n ...state,\r\n topPanelData: action.payload.topPanelData\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const selectTopPanelData = state => state.dashboard.topPanelData;\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n SET_SORT_MODEL: \"SET_SORT_MODEL\",\r\n SET_FILTER_MODEL: \"SET_FILTER_MODEL\",\r\n SET_ORDER_TABLE: \"SET_ORDER_TABLE\",\r\n SET_ORDERBY_TABLE: \"SET_ORDERBY_TABLE\",\r\n SET_TABLE_ROWS: \"SET_TABLE_ROWS\",\r\n SET_SELECT_VALUE: \"SET_SELECT_VALUE\",\r\n SET_SELECT_VALUE_V2: \"SET_SELECT_VALUE_V2\",\r\n SET_TABLE_PAGE: \"SET_TABLE_PAGE\",\r\n SET_EMPLOYEE_IDS: \"SET_EMPLOYEE_IDS\",\r\n SET_QUERY: \"SET_QUERY\",\r\n SET_EMPLOYEES: \"SET_EMPLOYEES\",\r\n};\r\n\r\nexport const setSortModel = (model) => ({\r\n type: TYPES.SET_SORT_MODEL,\r\n payload: {\r\n model,\r\n },\r\n});\r\n\r\nexport const setRowsPerPageAC = (rowsPerPage) => ({\r\n type: TYPES.SET_TABLE_ROWS,\r\n payload: {\r\n rowsPerPage,\r\n },\r\n});\r\n\r\nexport const setValuesV2AC = (payload) => ({\r\n type: TYPES.SET_SELECT_VALUE_V2,\r\n payload,\r\n});\r\n\r\nexport const setTablePageAC = (page) => ({\r\n type: TYPES.SET_TABLE_PAGE,\r\n payload: { page },\r\n});\r\n\r\nexport const setEmployeeIds = (employeeIds) => ({\r\n type: TYPES.SET_EMPLOYEE_IDS,\r\n payload: {\r\n employeeIds,\r\n },\r\n});\r\n\r\nexport const setQuery = (query) => ({\r\n type: TYPES.SET_QUERY,\r\n payload: {\r\n query,\r\n },\r\n});\r\n\r\nexport const setEmployees = (employees) => ({\r\n type: TYPES.SET_EMPLOYEES,\r\n payload: {\r\n employees,\r\n },\r\n});\r\n\r\n// REDUCER\r\nconst initialState = {\r\n sortModel: [],\r\n filterModel: {\r\n items: [],\r\n logicOperator: \"and\",\r\n quickFilterLogicOperator: \"and\",\r\n quickFilterValues: [],\r\n },\r\n order: \"asc\",\r\n orderBy: \"employeeName\",\r\n rowsPerPage: 50,\r\n selectValue: {\r\n department: \"all\",\r\n division: \"all\",\r\n status: \"Active\",\r\n },\r\n query: \"\",\r\n selectValueV2: {\r\n divisions: [],\r\n status: {\r\n Active: true,\r\n },\r\n },\r\n page: 0,\r\n employeeIds: [],\r\n employees: [],\r\n};\r\n\r\nexport const employeesReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.SET_SORT_MODEL:\r\n return {\r\n ...state,\r\n sortModel: action.payload.model,\r\n };\r\n case TYPES.SET_FILTER_MODEL:\r\n return {\r\n ...state,\r\n filterModel: action.payload.model,\r\n };\r\n case TYPES.SET_ORDER_TABLE:\r\n return {\r\n ...state,\r\n order: action.payload.order,\r\n };\r\n case TYPES.SET_ORDERBY_TABLE:\r\n return {\r\n ...state,\r\n orderBy: action.payload.orderBy,\r\n };\r\n case TYPES.SET_TABLE_ROWS:\r\n return {\r\n ...state,\r\n rowsPerPage: action.payload.rowsPerPage,\r\n };\r\n case TYPES.SET_SELECT_VALUE:\r\n return {\r\n ...state,\r\n selectValue: action.payload,\r\n };\r\n case TYPES.SET_SELECT_VALUE_V2:\r\n return {\r\n ...state,\r\n selectValueV2: action.payload,\r\n };\r\n case TYPES.SET_TABLE_PAGE:\r\n return {\r\n ...state,\r\n page: action.payload.page,\r\n };\r\n case TYPES.SET_EMPLOYEE_IDS:\r\n return {\r\n ...state,\r\n employeeIds: action.payload.employeeIds,\r\n };\r\n case TYPES.SET_QUERY:\r\n return {\r\n ...state,\r\n query: action.payload.query,\r\n };\r\n case TYPES.SET_EMPLOYEES:\r\n return {\r\n ...state,\r\n employees: action.payload.employees,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectSortModel = (state) => state.employees.sortModel;\r\nexport const selectFilterModel = (state) => state.employees.filterModel;\r\nexport const selectRowsPerPage = (state) => state.employees.rowsPerPage;\r\nexport const selectValuesV2 = (state) => state.employees.selectValueV2;\r\nexport const selectPage = (state) => state.employees.page;\r\nexport const selectEmployeeIds = (state) => state.employees.employeeIds;\r\nexport const selectQuery = (state) => state.employees.query;\r\nexport const selectEmployees = (state) => state.employees.employees;\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n SET_EMPNUM: \"SET_EMPNUM\",\r\n SET_EMPLOYEE: \"SET_EMPLOYEE\",\r\n SET_STATE_TAX: \"SET_STATE_TAX\",\r\n SET_DEDUCTION_AND_PAYS: \"SET_DEDUCTION_AND_PAYS\",\r\n SET_TIME_AND_LABOR: \"SET_TIME_AND_LABOR\",\r\n SET_EMPLOYEE_DECK: \"SET_EMPLOYEE_DECK\",\r\n SET_DROPDOWN_EMPLOYEE_PERSONAL_INFO: \"SET_DROPDOWN_EMPLOYEE_PERSONAL_INFO\",\r\n SET_DROPDOWN_EMPLOYEE_PAY: \"SET_DROPDOWN_EMPLOYEE_PAY\",\r\n SET_DROPDOWN_EMPLOYEE_JOB: \"SET_DROPDOWN_EMPLOYEE_JOB\",\r\n SET_DROPDOWN_DIVISIONS: \"SET_DROPDOWN_DIVISIONS\",\r\n SET_DROPDOWN_DEPARTMENTS: \"SET_DROPDOWN_DEPARTMENTS\",\r\n SET_DROPDOWN_DIRECT_DEPOSIT: \"SET_DROPDOWN_DIRECT_DEPOSIT\",\r\n SET_DROPDOWN_DEDUCTIONS: \"SET_DROPDOWN_DEDUCTIONS\",\r\n UPDATE_PROFILE: \"UPDATE_PROFILE\",\r\n UPDATE_STATE_TAX: \"UPDATE_STATE_TAX\",\r\n UPDATE_TIME_AND_LABOR: \"UPDATE_TIME_AND_LABOR\",\r\n UPDATE_SCROLL_DIRECTION: \"UPDATE_SCROLL_DIRECTION\",\r\n UPDATE_VISIBLE_SECTIONS: \"UPDATE_VISIBLE_SECTIONS\"\r\n};\r\n\r\nexport const setEmpNum = empnum => ({\r\n type: TYPES.SET_EMPNUM,\r\n payload: {\r\n empnum\r\n }\r\n});\r\n\r\nexport const setEmployee = payload => ({\r\n type: TYPES.SET_EMPLOYEE,\r\n payload\r\n});\r\n\r\nexport const setStateTax = payload => ({\r\n type: TYPES.SET_STATE_TAX,\r\n payload\r\n});\r\n\r\nexport const setDeductionAndPays = payload => ({\r\n type: TYPES.SET_DEDUCTION_AND_PAYS,\r\n payload\r\n});\r\n\r\nexport const setTimeAndLabor = payload => ({\r\n type: TYPES.SET_TIME_AND_LABOR,\r\n payload\r\n});\r\n\r\nexport const setEmployeeDeck = payload => ({\r\n type: TYPES.SET_EMPLOYEE_DECK,\r\n payload\r\n});\r\n\r\nexport const setDropdowEmployeePersonalInfo = payload => ({\r\n type: TYPES.SET_DROPDOWN_EMPLOYEE_PERSONAL_INFO,\r\n payload\r\n});\r\n\r\nexport const setDropdownEmployeePay = payload => ({\r\n type: TYPES.SET_DROPDOWN_EMPLOYEE_PAY,\r\n payload\r\n});\r\n\r\nexport const setDropdownEmployeeJob = payload => ({\r\n type: TYPES.SET_DROPDOWN_EMPLOYEE_JOB,\r\n payload\r\n});\r\n\r\nexport const setDropdownDivisions = payload => ({\r\n type: TYPES.SET_DROPDOWN_DIVISIONS,\r\n payload\r\n});\r\n\r\nexport const setDropdownDepartments = payload => ({\r\n type: TYPES.SET_DROPDOWN_DEPARTMENTS,\r\n payload\r\n});\r\n\r\nexport const setDropdownDirectDeposit = payload => ({\r\n type: TYPES.SET_DROPDOWN_DIRECT_DEPOSIT,\r\n payload\r\n});\r\n\r\nexport const setDropdownDeductions = payload => ({\r\n type: TYPES.SET_DROPDOWN_DEDUCTIONS,\r\n payload\r\n});\r\n\r\nexport const updateProfile = (field, data) => ({\r\n type: TYPES.UPDATE_PROFILE,\r\n payload: {\r\n field,\r\n data\r\n }\r\n});\r\n\r\nexport const updateStateTax = (field, data) => ({\r\n type: TYPES.UPDATE_STATE_TAX,\r\n payload: {\r\n field,\r\n data\r\n }\r\n});\r\n\r\nexport const updateTimeAndLabor = payload => ({\r\n type: TYPES.UPDATE_TIME_AND_LABOR,\r\n payload\r\n});\r\n\r\nexport const updateScrollDirection = payload => ({\r\n type: TYPES.UPDATE_SCROLL_DIRECTION,\r\n payload\r\n});\r\n\r\nexport const updateVisibleSections = payload => ({\r\n type: TYPES.UPDATE_VISIBLE_SECTIONS,\r\n payload\r\n});\r\n\r\n// REDUCER\r\nconst initialState = {\r\n empnum: undefined,\r\n employee: {\r\n isLoading: true\r\n },\r\n stateTax: {\r\n isLoading: true\r\n },\r\n deductionAndPays: {\r\n isLoading: true\r\n },\r\n timeAndLabor: {\r\n isLoading: true\r\n },\r\n employeeDeck: {\r\n isLoading: true\r\n },\r\n dropdownEmployeePersonalInfo: {\r\n isLoading: true\r\n },\r\n dropdownEmployeePay: {\r\n isLoading: true\r\n },\r\n dropdownEmployeeJob: {\r\n isLoading: true\r\n },\r\n dropdownDivisions: {\r\n isLoading: true\r\n },\r\n dropdownDepartments: {\r\n isLoading: true\r\n },\r\n dropDownDirectDeposit: {\r\n isLoading: true\r\n },\r\n dropdownDeductions: {\r\n isLoading: true\r\n },\r\n sections: {\r\n direction: \"down\",\r\n data: [\r\n {\r\n id: \"job\",\r\n visible: false\r\n },\r\n {\r\n id: \"pay\",\r\n visible: false\r\n },\r\n {\r\n id: \"pto\",\r\n visible: false\r\n },\r\n {\r\n id: \"deductions-earnings\",\r\n visible: false\r\n },\r\n {\r\n id: \"direct-deposit\",\r\n visible: false\r\n },\r\n {\r\n id: \"federal-taxes\",\r\n visible: false\r\n },\r\n {\r\n id: \"state-taxes\",\r\n visible: false\r\n },\r\n {\r\n id: \"local-taxes\",\r\n visible: false\r\n },\r\n {\r\n id: \"time-labor\",\r\n visible: false\r\n },\r\n {\r\n id: \"employeeDeck\",\r\n visible: false\r\n }\r\n ]\r\n }\r\n};\r\n\r\nexport const employeeReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.SET_EMPNUM:\r\n return {\r\n ...state,\r\n ...initialState,\r\n empnum: action.payload.empnum\r\n };\r\n case TYPES.SET_EMPLOYEE:\r\n return {\r\n ...state,\r\n employee: action.payload\r\n };\r\n case TYPES.SET_STATE_TAX:\r\n return {\r\n ...state,\r\n stateTax: action.payload\r\n };\r\n case TYPES.SET_DEDUCTION_AND_PAYS:\r\n return {\r\n ...state,\r\n deductionAndPays: action.payload\r\n };\r\n case TYPES.SET_TIME_AND_LABOR:\r\n return {\r\n ...state,\r\n timeAndLabor: action.payload\r\n };\r\n case TYPES.SET_EMPLOYEE_DECK:\r\n return {\r\n ...state,\r\n employeeDeck: action.payload\r\n };\r\n case TYPES.SET_DROPDOWN_EMPLOYEE_PERSONAL_INFO:\r\n return {\r\n ...state,\r\n dropdownEmployeePersonalInfo: action.payload\r\n };\r\n case TYPES.SET_DROPDOWN_EMPLOYEE_PAY:\r\n return {\r\n ...state,\r\n dropdownEmployeePay: action.payload\r\n };\r\n case TYPES.SET_DROPDOWN_EMPLOYEE_JOB:\r\n return {\r\n ...state,\r\n dropdownEmployeeJob: action.payload\r\n };\r\n case TYPES.SET_DROPDOWN_DIVISIONS:\r\n return {\r\n ...state,\r\n dropdownDivisions: action.payload\r\n };\r\n case TYPES.SET_DROPDOWN_DEPARTMENTS:\r\n return {\r\n ...state,\r\n dropdownDepartments: action.payload\r\n };\r\n case TYPES.SET_DROPDOWN_DIRECT_DEPOSIT:\r\n return {\r\n ...state,\r\n dropDownDirectDeposit: action.payload\r\n };\r\n case TYPES.SET_DROPDOWN_DEDUCTIONS:\r\n return {\r\n ...state,\r\n dropdownDeductions: action.payload\r\n };\r\n case TYPES.UPDATE_PROFILE:\r\n return {\r\n ...state,\r\n employee: {\r\n ...state.employee,\r\n data: {\r\n ...state.employee.data,\r\n [action.payload.field]: {\r\n ...state.employee.data?.[action.payload.field],\r\n ...action.payload.data\r\n }\r\n }\r\n }\r\n };\r\n case TYPES.UPDATE_STATE_TAX:\r\n return {\r\n ...state,\r\n stateTax: {\r\n ...state.stateTax,\r\n data: {\r\n ...state.stateTax.data,\r\n [action.payload.field]: {\r\n ...state.stateTax.data?.[action.payload.field],\r\n ...action.payload.data\r\n }\r\n }\r\n }\r\n };\r\n case TYPES.UPDATE_TIME_AND_LABOR:\r\n return {\r\n ...state,\r\n timeAndLabor: {\r\n ...state.timeAndLabor,\r\n data: action.payload\r\n }\r\n };\r\n case TYPES.UPDATE_SCROLL_DIRECTION:\r\n return {\r\n ...state,\r\n sections: {\r\n ...state.sections,\r\n direction: action.payload\r\n }\r\n };\r\n case TYPES.UPDATE_VISIBLE_SECTIONS:\r\n return {\r\n ...state,\r\n sections: {\r\n ...state.sections,\r\n data: state.sections.data.map(item =>\r\n item.id === action.payload.id ? { ...item, visible: action.payload.inView } : item\r\n )\r\n }\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectEmpnum = state => state.employee.empnum;\r\nexport const selectEmployee = state => state.employee.employee;\r\nexport const selectStateTax = state => state.employee.stateTax;\r\nexport const selectDeductionAndPays = state => state.employee.deductionAndPays;\r\nexport const selectTimeAndLabor = state => state.employee.timeAndLabor;\r\nexport const selectDropdownEmployeePersonalInfo = state =>\r\n state.employee.dropdownEmployeePersonalInfo;\r\nexport const selectDropdownEmployeePay = state => state.employee.dropdownEmployeePay;\r\nexport const selectDropdownEmployeeJob = state => state.employee.dropdownEmployeeJob;\r\nexport const selectDropdownDivisions = state => state.employee.dropdownDivisions;\r\nexport const selectDropdownDepartments = state => state.employee.dropdownDepartments;\r\nexport const selectDropDownDirectDeposit = state => state.employee.dropDownDirectDeposit;\r\nexport const selectDropdownDeductions = state => state.employee.dropdownDeductions;\r\nexport const selectSections = state => state.employee.sections;\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n ESS_FETCH_INVITES_SAGA: \"ESS_FETCH_INVITES_SAGA\",\r\n ESS_FETCH_INVITES_SUCCESS: \"ESS_FETCH_INVITES_SUCCESS\",\r\n ESS_FETCH_INVITES_FAILURE: \"ESS_FETCH_INVITES_FAILURE\",\r\n\r\n ESS_SEND_INVITES_SAGA: \"ESS_SEND_INVITES_SAGA\",\r\n ESS_SEND_INVITES_SUCCESS: \"ESS_SEND_INVITES_SUCCESS\",\r\n ESS_SEND_INVITES_FAILURE: \"ESS_SEND_INVITES_FAILURE\",\r\n\r\n ESS_SEND_REMINDERS_SAGA: \"ESS_SEND_REMINDERS_SAGA\",\r\n ESS_SEND_REMINDERS_SUCCESS: \"ESS_SEND_REMINDERS_SUCCESS\",\r\n ESS_SEND_REMINDERS_FAILURE: \"ESS_SEND_REMINDERS_FAILURE\",\r\n\r\n ESS_UPDATE_INVITE_EMAIL_SAGA: \"ESS_UPDATE_INVITE_EMAIL_SAGA\",\r\n ESS_UPDATE_INVITE_EMAIL_SUCCESS: \"ESS_UPDATE_INVITE_EMAIL_SUCCESS\",\r\n ESS_UPDATE_INVITE_EMAIL_FAILURE: \"ESS_UPDATE_INVITE_EMAIL_FAILURE\",\r\n\r\n ESS_REPLACE_INVITES: \"ESS_REPLACE_INVITES\",\r\n\r\n ESS_GET_AUTO_INVITE_SETTING_SUCCESS: \"ESS_GET_AUTO_INVITE_SETTING_SUCCESS\",\r\n ESS_GET_AUTO_INVITE_SETTING_FAILURE: \"ESS_GET_AUTO_INVITE_SETTING_FAILURE\",\r\n\r\n ESS_SET_AUTO_INVITE_SETTING_SAGA: \"ESS_SET_AUTO_INVITE_SETTING_SAGA\",\r\n ESS_SET_AUTO_INVITE_SETTING_SUCCESS: \"ESS_SET_AUTO_INVITE_SETTING_SUCCESS\",\r\n ESS_SET_AUTO_INVITE_SETTING_FAILURE: \"ESS_SET_AUTO_INVITE_SETTING_FAILURE\",\r\n\r\n ESS_SET_AUTO_INVITE_EXCLUDED_SAGA: \"ESS_SET_AUTO_INVITE_EXCLUDED_SAGA\",\r\n ESS_SET_AUTO_INVITE_EXCLUDED_SUCCESS: \"ESS_SET_AUTO_INVITE_EXCLUDED_SUCCESS\",\r\n ESS_SET_AUTO_INVITE_EXCLUDED_FAILURE: \"ESS_SET_AUTO_INVITE_EXCLUDED_FAILURE\",\r\n\r\n ESS_RESCIND_INVITE_SAGA: \"ESS_RESCIND_INVITE_SAGA\",\r\n ESS_RESCIND_INVITE_SUCCESS: \"ESS_RESCIND_INVITE_SUCCESS\",\r\n ESS_RESCIND_INVITE_FAILURE: \"ESS_RESCIND_INVITE_FAILURE\",\r\n\r\n ESS_CLEAR_ERROR: \"ESS_CLEAR_ERROR\",\r\n\r\n ESS_CLEAR_ALL: \"ESS_CLEAR_ALL\"\r\n};\r\n\r\n// REDUCER\r\nconst initialState = {\r\n invites: [],\r\n inviteSessionCacheId: \"\",\r\n autoInvite: {\r\n autoInvite: false\r\n } /* Make an object so state will can be different on failure even if boolean value is the same in order to revert toggle switch. */\r\n};\r\n\r\nexport const essReducer = (state = initialState, { type, payload }) => {\r\n switch (type) {\r\n case TYPES.ESS_FETCH_INVITES_SUCCESS:\r\n return {\r\n ...state,\r\n invites: payload.invites,\r\n inviteSessionCacheId: payload.inviteSessionCacheId\r\n };\r\n case TYPES.ESS_FETCH_INVITES_FAILURE:\r\n return state;\r\n case TYPES.ESS_UPDATE_INVITE_EMAIL_SUCCESS:\r\n return {\r\n ...state,\r\n invites: state.invites.map(invite => {\r\n return invite.empnum === payload.empnum ? payload : invite;\r\n })\r\n };\r\n case TYPES.ESS_UPDATE_INVITE_EMAIL_FAILURE:\r\n return state;\r\n case TYPES.ESS_SEND_INVITES_SUCCESS:\r\n return {\r\n ...state,\r\n invites: state.invites.map(invite => {\r\n if (payload.checkedInvites.indexOf(invite.empnum) > -1) {\r\n invite.rejection = \"Invited.\";\r\n }\r\n return invite;\r\n })\r\n };\r\n case TYPES.ESS_SEND_INVITES_FAILURE:\r\n return state;\r\n case TYPES.ESS_SEND_REMINDERS_SUCCESS:\r\n return state; /* Invited status hasn't changed. */\r\n case TYPES.ESS_SEND_REMINDERS_FAILURE:\r\n return state;\r\n case TYPES.ESS_REPLACE_INVITES:\r\n return {\r\n ...state,\r\n invites: [...payload]\r\n };\r\n case TYPES.ESS_GET_AUTO_INVITE_SETTING_SUCCESS:\r\n return {\r\n ...state,\r\n autoInvite: payload\r\n };\r\n case TYPES.ESS_GET_AUTO_INVITE_SETTING_FAILURE:\r\n return state;\r\n case TYPES.ESS_SET_AUTO_INVITE_SETTING_SUCCESS:\r\n return {\r\n ...state,\r\n autoInvite: payload\r\n };\r\n case TYPES.ESS_SET_AUTO_INVITE_SETTING_FAILURE:\r\n return {\r\n ...state,\r\n autoInvite: payload /* Need to revert toggle switch */\r\n };\r\n case TYPES.ESS_SET_AUTO_INVITE_EXCLUDED_SUCCESS:\r\n return {\r\n ...state,\r\n invites: state.invites.map(invite => {\r\n return invite.empnum === payload.empnum ? payload : invite;\r\n })\r\n };\r\n case TYPES.ESS_SET_AUTO_INVITE_EXCLUDED_FAILURE:\r\n return state;\r\n case TYPES.ESS_CLEAR_ERROR:\r\n return {\r\n ...state,\r\n error: \"\"\r\n };\r\n case TYPES.ESS_CLEAR_ALL:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n};\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n SET_ONBOARDING_STAGES: \"SET_ONBOARDING_STAGES\",\r\n SET_SCHEDULED_TIME: \"SET_SCHEDULED_TIME\"\r\n};\r\n\r\nexport const setOnboardingStageStatusAC = stages => ({\r\n type: TYPES.SET_ONBOARDING_STAGES,\r\n payload: {\r\n stages\r\n }\r\n});\r\n\r\n// REDUCER\r\nconst initialState = {\r\n stages: [],\r\n scheduledTime: null\r\n};\r\n\r\nexport const onboardingReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.SET_ONBOARDING_STAGES:\r\n return {\r\n ...state,\r\n stages: action.payload.stages\r\n };\r\n case TYPES.SET_SCHEDULED_TIME:\r\n return {\r\n ...state,\r\n scheduledTime: action.payload.scheduledTime\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectOnboardingStages = state => state.onboarding.stages;\r\n","export const CALENDAR_PERIODS = {\r\n THIS_YEAR: {\r\n id: \"THIS_YEAR\",\r\n name: \"This year\"\r\n },\r\n LAST_YEAR: {\r\n id: \"LAST_YEAR\",\r\n name: \"Last year\"\r\n },\r\n THIS_QUARTER: {\r\n id: \"THIS_QUARTER\",\r\n name: \"This quarter\"\r\n },\r\n LAST_QUARTER: {\r\n id: \"LAST_QUARTER\",\r\n name: \"Last quarter\"\r\n },\r\n CUSTOM: {\r\n id: \"CUSTOM\",\r\n name: \"Custom\"\r\n }\r\n};\r\n\r\nexport const CALENDAR_PERIODS_DICT = Object.keys(CALENDAR_PERIODS).map(e => ({\r\n key: e,\r\n value: CALENDAR_PERIODS[e].name\r\n}));\r\n","// Result Fri Nov 23 2018\r\nexport function formatToDateString(date) {\r\n return date ? new Date(date).toDateString() : \"\";\r\n}\r\n\r\nexport function formatToDateTimeString(date) {\r\n if (!date) {\r\n return \"\";\r\n }\r\n const date2 = new Date(date);\r\n return `${date2.toLocaleDateString(\"en-US\", {\r\n month: \"long\",\r\n year: \"numeric\",\r\n day: \"numeric\"\r\n })} ${date2.toLocaleTimeString(\"en-US\")}`;\r\n}\r\n\r\n/**\r\n * Return first day of the year in string format\r\n *\r\n * @param {Date} date\r\n * @returns {string} - example '2019-01-01'\r\n */\r\nexport function getFirstDayOfYear(date) {\r\n const year = date.getFullYear();\r\n return `${year}-01-01`;\r\n}\r\n\r\n/**\r\n * Return last day of the year in string format\r\n *\r\n * @param {Date} date\r\n * @returns {string} - example '2019-12-31'\r\n */\r\nexport function getLastDayOfYear(date) {\r\n const year = date.getFullYear();\r\n return `${year}-12-31`;\r\n}\r\n\r\n/**\r\n * Returns first day of the quarter in string format\r\n *\r\n * @param {Date} date\r\n * @returns {string}\r\n */\r\nexport function getFirstDayOfQuarter(date) {\r\n const month = date.getMonth();\r\n const quarterStartMonth = month - (month % 3);\r\n const newDate = new Date(date.getTime());\r\n newDate.setMonth(quarterStartMonth);\r\n newDate.setUTCDate(1);\r\n return newDate.toISOString().split(\"T\")[0];\r\n}\r\n\r\n/**\r\n * Returns last day of the quarter if string format\r\n *\r\n * @param {Date} date\r\n * @returns {string}\r\n */\r\nexport function getLastDayOfQuarter(date) {\r\n const month = date.getMonth();\r\n const quarterEndMonth = month - (month % 3) + 3;\r\n const newDate = new Date(date.getTime());\r\n newDate.setMonth(quarterEndMonth);\r\n newDate.setUTCDate(0);\r\n return newDate.toISOString().split(\"T\")[0];\r\n}\r\n\r\nexport function getHumanizeDate(dateTime, prefix) {\r\n let humanizeDateText = \"\";\r\n let date;\r\n if (dateTime) {\r\n let d = new Date(dateTime);\r\n date = d.getMonth() + 1 + \"/\" + d.getDate() + \"/\" + d.getFullYear();\r\n let today = new Date();\r\n today = today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + today.getFullYear();\r\n let hours = d.getHours();\r\n let meridiem = \"pm\";\r\n if (date === today) {\r\n if (d.getHours() === 0) {\r\n hours = \"12\";\r\n meridiem = \"am\";\r\n } else if (d.getHours() < 12) {\r\n meridiem = \"am\";\r\n } else if (d.getHours() === 12) {\r\n hours = \"12\";\r\n } else {\r\n hours = d.getHours() - 12;\r\n }\r\n if (prefix) {\r\n humanizeDateText = \"today \";\r\n }\r\n else {\r\n humanizeDateText = \"Today \";\r\n }\r\n humanizeDateText =\r\n humanizeDateText + hours + \":\" + String(d.getMinutes()).padStart(2, \"0\") + \" \" + meridiem;\r\n } else {\r\n humanizeDateText = humanizeDateText + date;\r\n }\r\n }\r\n return (prefix || \"\") + \" \" + humanizeDateText;\r\n}\r\n","import { CALENDAR_PERIODS } from \"../constants/employeePayHistory\";\r\nimport {\r\n getLastDayOfQuarter,\r\n getFirstDayOfQuarter,\r\n getLastDayOfYear,\r\n getFirstDayOfYear\r\n} from \"./dateTime\";\r\n\r\n/**\r\n * Prepare employee object for Redux State.\r\n * Convert Payment History from Array to Object.\r\n *\r\n * @param {object} employee - employee object from server\r\n * @returns {object} - employee to save into Redux State\r\n */\r\nexport function addIdsToEmployeePaymentHistory(employee) {\r\n const paymentHistoryObj = employee.paymentHistory.reduce((acc, cur) => {\r\n const id = `id_${cur.prnum.toString()}_${cur.checkCounter.toString()}`;\r\n acc[id] = {\r\n ...cur,\r\n id,\r\n isChecked: false\r\n };\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...employee,\r\n paymentHistory: paymentHistoryObj\r\n };\r\n}\r\n\r\n/**\r\n * Prepare body to POST Pay Details request\r\n *\r\n * @param {Array} paymentHistory\r\n * @returns {Array} of objects { prnum, checkCounter }\r\n */\r\nexport function preparePrnumsArray(paymentHistory) {\r\n return paymentHistory\r\n .filter(el => el.isChecked)\r\n .map(el2 => ({ prnum: el2.prnum, checkCounter: el2.checkCounter }));\r\n}\r\n\r\n/**\r\n *\r\n * @param {Object} filter - employee filter\r\n * @param {String} filter.calendarPeriod - for example 'THIS_YEAR'\r\n * @param {String} filter.fromDate - for example '2019-01-01'\r\n * @param {String} filter.toDate - for example '2019-12-31'\r\n * @param {Number} filter.empnum - for example 12456\r\n * @param {Boolean} filter.isAllChecked\r\n * @param {String} filter.employeeFullName\r\n * @param {Date} date - current date, example 2019\r\n * @returns {*}\r\n */\r\nexport function updateFilterCalendarPeriods(filter, date) {\r\n const { fromDate, toDate, ...restFilter } = filter;\r\n if (!filter.calendarPeriod) {\r\n return restFilter;\r\n }\r\n if (\r\n filter.calendarPeriod === CALENDAR_PERIODS.CUSTOM.id &&\r\n (!filter.fromDate || !filter.toDate)\r\n ) {\r\n // Both fromDate and toDate should be set, otherwise we do not change dates\r\n return restFilter;\r\n }\r\n let fromDateNew, toDateNew;\r\n\r\n switch (filter.calendarPeriod) {\r\n case CALENDAR_PERIODS.THIS_YEAR.id: {\r\n fromDateNew = getFirstDayOfYear(date);\r\n toDateNew = getLastDayOfYear(date);\r\n break;\r\n }\r\n case CALENDAR_PERIODS.LAST_YEAR.id: {\r\n const newDate = new Date(date.getTime());\r\n newDate.setFullYear(date.getFullYear() - 1);\r\n fromDateNew = getFirstDayOfYear(newDate);\r\n toDateNew = getLastDayOfYear(newDate);\r\n break;\r\n }\r\n case CALENDAR_PERIODS.THIS_QUARTER.id: {\r\n fromDateNew = getFirstDayOfQuarter(date);\r\n toDateNew = getLastDayOfQuarter(date);\r\n break;\r\n }\r\n case CALENDAR_PERIODS.LAST_QUARTER.id: {\r\n const newDate = new Date(date.getTime());\r\n newDate.setMonth(date.getMonth() - 3);\r\n fromDateNew = getFirstDayOfQuarter(newDate);\r\n toDateNew = getLastDayOfQuarter(newDate);\r\n break;\r\n }\r\n default: {\r\n fromDateNew = fromDate;\r\n toDateNew = toDate;\r\n }\r\n }\r\n\r\n return {\r\n ...restFilter,\r\n fromDate: fromDateNew,\r\n toDate: toDateNew\r\n };\r\n}\r\n","import { updateFilterCalendarPeriods } from \"../../utils/employeePayHistory\";\r\nimport { CALENDAR_PERIODS } from \"../../constants/employeePayHistory\";\r\n\r\n// ACTION TYPES\r\nconst TYPES = {\r\n SET_CUSTOM_PERIOD: \"SET_CUSTOM_PERIOD\",\r\n SET_CALENDAR_PERIOD: \"SET_CALENDAR_PERIOD\"\r\n};\r\n\r\n// ACTION CREATORS\r\nexport const setCustomPeriodAC = period => ({\r\n type: TYPES.SET_CUSTOM_PERIOD,\r\n payload: { period }\r\n});\r\n\r\nexport const setCalendarPeriodAC = currentCalendarPeriod => ({\r\n type: TYPES.SET_CALENDAR_PERIOD,\r\n payload: { currentCalendarPeriod }\r\n });\r\n\r\n// REDUCER\r\nconst initialState = {\r\n period: updateFilterCalendarPeriods(\r\n { calendarPeriod: CALENDAR_PERIODS.THIS_YEAR.id },\r\n new Date()\r\n ),\r\n currentCalendarPeriod: CALENDAR_PERIODS.THIS_YEAR.id\r\n};\r\n\r\nexport const payhistoryReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.SET_CUSTOM_PERIOD:\r\n return {\r\n ...state,\r\n period: action.payload.period\r\n };\r\n case TYPES.SET_CALENDAR_PERIOD:\r\n return {\r\n ...state,\r\n currentCalendarPeriod: action.payload.currentCalendarPeriod\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectPeriod = state => state.payhistory.period;\r\nexport const selectCalendarPeriod = state => state.payhistory.currentCalendarPeriod;\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n SHOW_SNACKBAR: \"SHOW_SNACKBAR\",\r\n HIDE_SNACKBAR: \"HIDE_SNACKBAR\"\r\n};\r\n\r\n// ACTION CREATORS\r\nexport const showSnackbar = (payload) =>{\r\n return ({ \r\n type: TYPES.SHOW_SNACKBAR,\r\n payload: payload\r\n })};\r\n\r\nexport const hideSnackbar = () => {\r\n return ({ type: TYPES.HIDE_SNACKBAR })\r\n};\r\n\r\n// REDUCER\r\nconst initialState = {\r\n show: false,\r\n variant: '',\r\n message: '',\r\n};\r\n\r\nexport const snackbarReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.SHOW_SNACKBAR:\r\n return {\r\n ...state,\r\n show: true,\r\n variant: action.payload.variant,\r\n message: action.payload.message\r\n };\r\n case TYPES.HIDE_SNACKBAR:\r\n return {\r\n ...state,\r\n show: false,\r\n variant: '',\r\n message: ''\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectSnackbar = state => state.snackbar;\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n OPEN_ESS_INVITE_EMAIL_MODAL: \"OPEN_ESS_INVITE_EMAIL_MODAL\",\r\n CLOSE_ESS_INVITE_EMAIL_MODAL: \"CLOSE_ESS_INVITE_EMAIL_MODAL\"\r\n};\r\n\r\n// REDUCER\r\nconst initialState = {\r\n isModalOpened: false\r\n};\r\n\r\nexport const widgetEssReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.OPEN_ESS_INVITE_EMAIL_MODAL:\r\n return {\r\n ...state,\r\n isModalOpened: true\r\n };\r\n case TYPES.CLOSE_ESS_INVITE_EMAIL_MODAL:\r\n return {\r\n ...state,\r\n isModalOpened: false\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n OPEN_FEEDBACK_MODAL: \"OPEN_FEEDBACK_MODAL\",\r\n CLOSE_FEEDBACK_MODAL: \"CLOSE_FEEDBACK_MODAL\",\r\n FEEDBACK_IS_SENT: \"FEEDBACK_IS_SENT\"\r\n};\r\n\r\n// ACTION CREATORS\r\nexport const openFeedbackModalAC = () => ({ type: TYPES.OPEN_FEEDBACK_MODAL });\r\nexport const closeFeedbackModalAC = () => ({ type: TYPES.CLOSE_FEEDBACK_MODAL });\r\nexport const feedbackIsSentAC = () => ({ type: TYPES.FEEDBACK_IS_SENT });\r\n\r\n// REDUCER\r\nconst initialState = {\r\n isModalOpened: false,\r\n isFeedbackSent: false\r\n};\r\n\r\nexport const widgetFeedbackReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.OPEN_FEEDBACK_MODAL:\r\n return {\r\n ...state,\r\n isModalOpened: true,\r\n isFeedbackSent: false\r\n };\r\n case TYPES.CLOSE_FEEDBACK_MODAL:\r\n return {\r\n ...state,\r\n isModalOpened: false\r\n };\r\n case TYPES.FEEDBACK_IS_SENT:\r\n return {\r\n ...state,\r\n isFeedbackSent: true\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectIsModalOpened = state => state.widgetFeedback.isModalOpened;\r\nexport const selectIsFeedbackSent = state => state.widgetFeedback.isFeedbackSent;\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n OPEN_MANAGE_PROFILE: \"OPEN_MANAGE_PROFILE\",\r\n CLOSE_MANAGE_PROFILE: \"CLOSE_MANAGE_PROFILE\"\r\n};\r\n\r\n// ACTION CREATORS\r\nexport const openManageProfileAC = anchorEl => ({ type: TYPES.OPEN_MANAGE_PROFILE, payload: anchorEl });\r\nexport const closeManageProfileAC = () => ({ type: TYPES.CLOSE_MANAGE_PROFILE });\r\n\r\n// REDUCER\r\nconst initialState = {\r\n isManageProfileDrawerOpened: false,\r\n profileMenuAnchorEl: null\r\n};\r\n\r\nexport const widgetManageProfile = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.OPEN_MANAGE_PROFILE:\r\n return {\r\n ...state,\r\n isManageProfileDrawerOpened: true,\r\n profileMenuAnchorEl: action.payload\r\n };\r\n case TYPES.CLOSE_MANAGE_PROFILE:\r\n return {\r\n ...state,\r\n isManageProfileDrawerOpened: false,\r\n profileMenuAnchorEl: null\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectIsManageProfileOpened = state => state.widgetManageProfile.isManageProfileDrawerOpened\r\nexport const selectProfileMenuAnchorEl = state => state.widgetManageProfile.profileMenuAnchorEl\r\n","const TYPES = {\r\n OPEN_NEW_DOWNLOAD_MODAL: \"OPEN_NEW_DOWNLOAD_MODAL\",\r\n CLOSE_NEW_DOWNLOAD_MODAL: \"CLOSE_NEW_DOWNLOAD_MODAL\"\r\n};\r\n\r\nexport const openNewDownloadModalAC = report => ({\r\n type: TYPES.OPEN_NEW_DOWNLOAD_MODAL,\r\n payload: {\r\n report\r\n }\r\n});\r\n\r\nexport const closeNewDownloadModalAC = id => ({\r\n type: TYPES.CLOSE_NEW_DOWNLOAD_MODAL,\r\n payload: {\r\n id\r\n }\r\n});\r\n\r\nconst initialState = {\r\n reports: []\r\n // reportData: {\r\n // id: 0,\r\n // isNew: true,\r\n // lastDownloaded: null,\r\n // reportName: \"\",\r\n // reportParametersDescription: \"\",\r\n // requestedOn: \"\",\r\n // status: \"\"\r\n // }\r\n};\r\n\r\nexport const widgetNewDownloadReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.OPEN_NEW_DOWNLOAD_MODAL: {\r\n // Check for duplicates\r\n if (state.reports.some(el => el.id === action.payload.report.id)) {\r\n return state;\r\n } else {\r\n return {\r\n ...state,\r\n reports: [...state.reports, action.payload.report]\r\n };\r\n }\r\n }\r\n case TYPES.CLOSE_NEW_DOWNLOAD_MODAL:\r\n return {\r\n ...state,\r\n reports: state.reports.filter(el => el.id !== action.payload.id)\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectReports = state => state.widgetNewDownload.reports;\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n OPEN_SELECT_COMPANY_MODAL: \"OPEN_SELECT_COMPANY_MODAL\",\r\n CLOSE_SELECT_COMPANY_MODAL: \"CLOSE_SELECT_COMPANY_MODAL\"\r\n};\r\n\r\n// ACTION CREATORS\r\nexport const openSelectCompanyModal = () => ({ type: TYPES.OPEN_SELECT_COMPANY_MODAL });\r\nexport const closeSelectCompanyModal = () => ({ type: TYPES.CLOSE_SELECT_COMPANY_MODAL });\r\n\r\n// REDUCER\r\nconst initialState = {\r\n isModalOpened: false\r\n};\r\n\r\nexport const widgetSelectCompanyReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.OPEN_SELECT_COMPANY_MODAL:\r\n return {\r\n ...state,\r\n isModalOpened: true\r\n };\r\n case TYPES.CLOSE_SELECT_COMPANY_MODAL:\r\n return {\r\n ...state,\r\n isModalOpened: false\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectIsModalOpened = state => state.widgetSelectCompany.isModalOpened;\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n OPEN_GLOBAL_SEARCH: \"OPEN_GLOBAL_SEARCH\",\r\n CLOSE_GLOBAL_SEARCH: \"CLOSE_GLOBAL_SEARCH\"\r\n};\r\n\r\n// ACTION CREATORS\r\nexport const openGlobalSearchAC = () => ({ type: TYPES.OPEN_GLOBAL_SEARCH });\r\nexport const closeGlobalSearchAC = () => ({ type: TYPES.CLOSE_GLOBAL_SEARCH });\r\n\r\n// REDUCER\r\nconst initialState = {\r\n open: false\r\n};\r\n\r\nexport const widgetGlobalSearch = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.OPEN_GLOBAL_SEARCH:\r\n return {\r\n ...state,\r\n open: true\r\n };\r\n case TYPES.CLOSE_GLOBAL_SEARCH:\r\n return {\r\n ...state,\r\n open: false\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectIsGlobalSearchOpen = state => state.widgetGlobalSearch.open;\r\n","// ACTION TYPES\r\nconst TYPES = {\r\n SET_LIST: \"SET_LIST\",\r\n SET_INPUT_FORMAT: \"SET_INPUT_FORMAT\",\r\n SET_CHECKS_FILTER: \"SET_CHECKS_FILTER\",\r\n SET_DISPLAY_OPTIONS: \"SET_DISPLAY_OPTIONS\",\r\n SET_EMPLOYEE_JOBS: \"SET_EMPLOYEE_JOBS\",\r\n SET_DEBUG_MODE: \"SET_DEBUG_MODE\",\r\n SET_FOCUS_VIEW_LIST: \"SET_FOCUS_VIEW_LIST\",\r\n SET_PAYROLL_SUMMARY: \"SET_PAYROLL_SUMMARY\",\r\n SET_PAYROLL_IMPORT_BATCHES: \"SET_PAYROLL_IMPORT_BATCHES\",\r\n SET_SELECTED_CHECKS: \"SET_SELECTED_CHECKS\",\r\n CLEAR_SELECTED_CHECKS: \"CLEAR_SELECTED_CHECKS\",\r\n SET_SHOW_PAYROLL_DATA_LOADING: \"SET_SHOW_PAYROLL_DATA_LOADING\",\r\n SET_DISABLE_CHECKLINE_UPDATES: \"SET_DISABLE_CHECKLINE_UPDATES\",\r\n SET_ASSISTANT_MODE: \"SET_ASSISTANT_MODE\",\r\n};\r\n\r\n// ACTION CREATORS\r\n\r\nexport const setList = (list) => ({\r\n type: TYPES.SET_LIST,\r\n payload: { list },\r\n});\r\n\r\nexport const setInputFormat = (inputFormat) => ({\r\n type: TYPES.SET_INPUT_FORMAT,\r\n payload: { inputFormat },\r\n});\r\n\r\nexport const setChecksFilter = (checksFilter) => ({\r\n type: TYPES.SET_CHECKS_FILTER,\r\n payload: { checksFilter },\r\n});\r\n\r\nexport const setDisplayOptions = (field, value) => ({\r\n type: TYPES.SET_DISPLAY_OPTIONS,\r\n payload: { field, value },\r\n});\r\n\r\nexport const setDebugMode = (debug) => ({\r\n type: TYPES.SET_DEBUG_MODE,\r\n payload: { debug },\r\n});\r\n\r\nexport const setFocusViewList = (list) => ({\r\n type: TYPES.SET_FOCUS_VIEW_LIST,\r\n payload: { list },\r\n});\r\n\r\nexport const setPayrollSummary = (summary) => ({\r\n type: TYPES.SET_PAYROLL_SUMMARY,\r\n payload: { summary },\r\n});\r\n\r\nexport const setPayrollImportBatches = (importBatches) => ({\r\n type: TYPES.SET_PAYROLL_IMPORT_BATCHES,\r\n payload: { importBatches },\r\n});\r\n\r\nexport const clearSelectedChecks = () => ({\r\n type: TYPES.CLEAR_SELECTED_CHECKS,\r\n});\r\n\r\nexport const setShowPayrollDataLoading = (loading) => ({\r\n type: TYPES.SET_SHOW_PAYROLL_DATA_LOADING,\r\n payload: { loading },\r\n});\r\n\r\nexport const setDisableChecklineUpdates = (disabled) => ({\r\n type: TYPES.SET_DISABLE_CHECKLINE_UPDATES,\r\n payload: { disabled },\r\n});\r\n\r\nexport const setAssistantMode = (stickyAssistant) => ({\r\n type: TYPES.SET_ASSISTANT_MODE,\r\n payload: { stickyAssistant },\r\n});\r\n\r\n// REDUCER\r\nconst initialState = {\r\n summary: null,\r\n list: null,\r\n inputFormat: \"hours\",\r\n checksFilter: { divDeps: [] },\r\n displayOptions: { manual: true, voided: true },\r\n jobs: {},\r\n debug: false,\r\n focusViewList: [],\r\n importBatches: [],\r\n selectedChecks: {},\r\n showPayrollDataLoading: true,\r\n disableChecklineUpdates: false,\r\n stickyAssistant: false,\r\n};\r\n\r\nexport const payrollsReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.SET_LIST:\r\n return {\r\n ...state,\r\n list: action.payload.list,\r\n };\r\n case TYPES.SET_INPUT_FORMAT:\r\n return {\r\n ...state,\r\n inputFormat: action.payload.inputFormat,\r\n };\r\n case TYPES.SET_CHECKS_FILTER:\r\n return {\r\n ...state,\r\n checksFilter: action.payload.checksFilter,\r\n };\r\n case TYPES.SET_DISPLAY_OPTIONS:\r\n return {\r\n ...state,\r\n displayOptions: {\r\n ...state.displayOptions,\r\n [action.payload.field]: action.payload.value,\r\n },\r\n };\r\n case TYPES.SET_EMPLOYEE_JOBS:\r\n return {\r\n ...state,\r\n jobs: action.payload.jobs,\r\n };\r\n case TYPES.SET_DEBUG_MODE:\r\n return {\r\n ...state,\r\n debug: action.payload.debug,\r\n };\r\n case TYPES.SET_FOCUS_VIEW_LIST:\r\n return {\r\n ...state,\r\n focusViewList: action.payload.list,\r\n };\r\n case TYPES.SET_PAYROLL_SUMMARY:\r\n return {\r\n ...state,\r\n summary: action.payload.summary,\r\n };\r\n case TYPES.SET_PAYROLL_IMPORT_BATCHES:\r\n return {\r\n ...state,\r\n importBatches: action.payload.importBatches,\r\n };\r\n case TYPES.SET_SELECTED_CHECKS:\r\n return {\r\n ...state,\r\n selectedChecks: {\r\n ...state.selectedChecks,\r\n [action.payload.key]: action.payload.value,\r\n },\r\n };\r\n case TYPES.CLEAR_SELECTED_CHECKS:\r\n return {\r\n ...state,\r\n selectedChecks: {},\r\n };\r\n case TYPES.SET_SHOW_PAYROLL_DATA_LOADING:\r\n return {\r\n ...state,\r\n showPayrollDataLoading: action.payload.loading,\r\n };\r\n case TYPES.SET_DISABLE_CHECKLINE_UPDATES:\r\n return {\r\n ...state,\r\n disableChecklineUpdates: action.payload.disabled,\r\n };\r\n case TYPES.SET_ASSISTANT_MODE:\r\n return {\r\n ...state,\r\n stickyAssistant: action.payload.stickyAssistant,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectList = (state) => state.payrolls.list;\r\nexport const selectInputFormat = (state) => state.payrolls.inputFormat;\r\nexport const selectChecksFilter = (state) => state.payrolls.checksFilter;\r\nexport const selectDisplayOptions = (state) => state.payrolls.displayOptions;\r\nexport const selectDebug = (state) => state.payrolls.debug;\r\nexport const selectFocusViewList = (state) => state.payrolls.focusViewList;\r\nexport const selectPayrollSummary = (state) => state.payrolls.summary;\r\nexport const selectPayrollImportBatches = (state) => state.payrolls.importBatches;\r\nexport const selectSelectedChecks = (state) => state.payrolls.selectedChecks;\r\nexport const selectShowPayrollDataLoading = (state) => state.payrolls.showPayrollDataLoading;\r\nexport const selectDisableChecklineUpdates = (state) => state.payrolls.disableChecklineUpdates;\r\nexport const selectStickyAssistant = (state) => state.payrolls.stickyAssistant;\r\n","import dayjs from \"dayjs\";\r\n\r\n// ACTION TYPES\r\nconst TYPES = {\r\n SET_PAYROLL_ID: \"SET_PAYROLL_ID\",\r\n SET_CALENDAR_FREQUENCIES: \"SET_CALENDAR_FREQUENCIES\",\r\n SET_SELECTED_FREQUENCIES: \"SET_SELECTED_FREQUENCIES\",\r\n SET_PERIOD_ID: \"SET_PERIOD_ID\",\r\n SET_ROW_SELECTION_MODEL: \"SET_ROW_SELECTION_MODEL\",\r\n SET_SELECTED_CALENDARS: \"SET_SELECTED_CALENDARS\",\r\n SET_PAY_FREQUENCY: \"SET_PAY_FREQUENCY\",\r\n SET_PAY_PERIODS: \"SET_PAY_PERIODS\",\r\n SET_CHECK_DATE: \"SET_CHECK_DATE\",\r\n SET_PAY_FREQUENCIES: \"SET_PAY_FREQUENCIES\",\r\n SET_CALENDAR_IDS: \"SET_CALENDAR_IDS\",\r\n SET_PAYEES: \"SET_PAYEES\",\r\n SET_EMPLOYEES_IDS: \"SET_EMPLOYEES_IDS\",\r\n SET_OPTIONS: \"SET_OPTIONS\",\r\n SET_TIME_AND_LABOR_PERIOD: \"SET_TIME_AND_LABOR_PERIOD\",\r\n SET_EMPLOYEE_FILTERS: \"SET_EMPLOYEE_FILTERS\",\r\n};\r\n\r\n// ACTION CREATORS\r\nexport const setPayrollId = (payrollId) => ({\r\n type: TYPES.SET_PAYROLL_ID,\r\n payload: { payrollId },\r\n});\r\n\r\nexport const setCalendarFrequencies = (calendarFrequencies) => ({\r\n type: TYPES.SET_CALENDAR_FREQUENCIES,\r\n payload: { calendarFrequencies },\r\n});\r\n\r\nexport const setSelectedFrequencies = (selectedFrequencies) => ({\r\n type: TYPES.SET_SELECTED_FREQUENCIES,\r\n payload: { selectedFrequencies },\r\n});\r\n\r\nexport const setPeriodId = (periodId) => ({\r\n type: TYPES.SET_PERIOD_ID,\r\n payload: { periodId },\r\n});\r\n\r\nexport const setRowSelectionModel = (rowSelectionModel) => ({\r\n type: TYPES.SET_ROW_SELECTION_MODEL,\r\n payload: { rowSelectionModel },\r\n});\r\n\r\nexport const setSelectedCalendars = (selectedCalendars) => ({\r\n type: TYPES.SET_SELECTED_CALENDARS,\r\n payload: { selectedCalendars },\r\n});\r\n\r\nexport const setPayFrequency = (payFrequency) => ({\r\n type: TYPES.SET_PAY_FREQUENCY,\r\n payload: { payFrequency },\r\n});\r\n\r\nexport const setPayPeriods = (payPeriods) => ({\r\n type: TYPES.SET_PAY_PERIODS,\r\n payload: { payPeriods },\r\n});\r\n\r\nexport const setCheckDate = (checkDate) => ({\r\n type: TYPES.SET_CHECK_DATE,\r\n payload: { checkDate },\r\n});\r\n\r\nexport const setPayFrequencies = (payFrequencies) => ({\r\n type: TYPES.SET_PAY_FREQUENCIES,\r\n payload: { payFrequencies },\r\n});\r\n\r\nexport const setCalendarIds = (calendarIds) => ({\r\n type: TYPES.SET_CALENDAR_IDS,\r\n payload: { calendarIds },\r\n});\r\n\r\nexport const setPayees = (payees) => ({\r\n type: TYPES.SET_PAYEES,\r\n payload: { payees },\r\n});\r\n\r\nexport const setEmployeesIds = (employeesIds) => ({\r\n type: TYPES.SET_EMPLOYEES_IDS,\r\n payload: { employeesIds },\r\n});\r\n\r\nexport const setOptions = (field, value) => ({\r\n type: TYPES.SET_OPTIONS,\r\n payload: { field, value },\r\n});\r\n\r\nexport const setTimeAndLaborPeriod = (period) => ({\r\n type: TYPES.SET_TIME_AND_LABOR_PERIOD,\r\n payload: { period },\r\n});\r\n\r\nexport const setEmployeeFilters = (employeeFilters) => ({\r\n type: TYPES.SET_EMPLOYEE_FILTERS,\r\n payload: { employeeFilters },\r\n});\r\n\r\n// REDUCER\r\nconst initialState = {\r\n payrollId: null,\r\n calendarFrequencies: [],\r\n selectedFrequencies: [],\r\n periodId: null,\r\n rowSelectionModel: [],\r\n selectedCalendars: {},\r\n payFrequency: \"\",\r\n payPeriods: {},\r\n checkDate: null,\r\n payFrequencies: [],\r\n calendarIds: {},\r\n payees: \"\",\r\n employeesIds: [],\r\n options: {\r\n autoHours: true,\r\n autoPays: true,\r\n autoDeds: true,\r\n autoMemos: true,\r\n accSick: true,\r\n accPer: true,\r\n accVac: true,\r\n },\r\n timeAndLaborPeriod: {\r\n startDate: dayjs(new Date()),\r\n endDate: dayjs(new Date()),\r\n },\r\n employeeFilters: [],\r\n};\r\n\r\nexport const payrollReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TYPES.SET_PAYROLL_ID:\r\n return {\r\n ...initialState,\r\n payrollId: action.payload.payrollId,\r\n };\r\n case TYPES.SET_CALENDAR_FREQUENCIES:\r\n return {\r\n ...state,\r\n calendarFrequencies: action.payload.calendarFrequencies,\r\n };\r\n case TYPES.SET_SELECTED_FREQUENCIES:\r\n return {\r\n ...state,\r\n selectedFrequencies: action.payload.selectedFrequencies,\r\n };\r\n case TYPES.SET_PERIOD_ID:\r\n return {\r\n ...state,\r\n periodId: action.payload.periodId,\r\n };\r\n case TYPES.SET_ROW_SELECTION_MODEL:\r\n return {\r\n ...state,\r\n rowSelectionModel: action.payload.rowSelectionModel,\r\n };\r\n case TYPES.SET_SELECTED_CALENDARS:\r\n return {\r\n ...state,\r\n selectedCalendars: action.payload.selectedCalendars,\r\n };\r\n case TYPES.SET_PAY_FREQUENCY:\r\n return {\r\n ...state,\r\n payFrequency: action.payload.payFrequency,\r\n };\r\n case TYPES.SET_PAY_PERIODS:\r\n return {\r\n ...state,\r\n payPeriods: action.payload.payPeriods,\r\n };\r\n case TYPES.SET_CHECK_DATE:\r\n return {\r\n ...state,\r\n checkDate: action.payload.checkDate,\r\n };\r\n case TYPES.SET_PAY_FREQUENCIES:\r\n return {\r\n ...state,\r\n payFrequencies: action.payload.payFrequencies,\r\n };\r\n case TYPES.SET_CALENDAR_IDS:\r\n return {\r\n ...state,\r\n calendarIds: action.payload.calendarIds,\r\n };\r\n case TYPES.SET_PAYEES:\r\n return {\r\n ...state,\r\n payees: action.payload.payees,\r\n };\r\n case TYPES.SET_EMPLOYEES_IDS:\r\n return {\r\n ...state,\r\n employeesIds: action.payload.employeesIds,\r\n };\r\n case TYPES.SET_OPTIONS:\r\n return {\r\n ...state,\r\n options: {\r\n ...state.options,\r\n [action.payload.field]: action.payload.value,\r\n },\r\n };\r\n case TYPES.SET_TIME_AND_LABOR_PERIOD:\r\n return {\r\n ...state,\r\n timeAndLaborPeriod: action.payload.period,\r\n };\r\n case TYPES.SET_EMPLOYEE_FILTERS:\r\n return {\r\n ...state,\r\n employeeFilters: action.payload.employeeFilters,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n// SELECTORS\r\nexport const selectPayrollId = (state) => state.payroll.payrollId;\r\nexport const selectCalendarFrequencies = (state) => state.payroll.calendarFrequencies;\r\nexport const selectSelectedFrequencies = (state) => state.payroll.selectedFrequencies;\r\nexport const selectPeriodId = (state) => state.payroll.periodId;\r\nexport const selectRowSelectionModel = (state) => state.payroll.rowSelectionModel;\r\nexport const selectSelectedCalendars = (state) => state.payroll.selectedCalendars;\r\nexport const selectPayFrequency = (state) => state.payroll.payFrequency;\r\nexport const selectPayPeriods = (state) => state.payroll.payPeriods;\r\nexport const selectCheckDate = (state) => state.payroll.checkDate;\r\nexport const selectPayFrequencies = (state) => state.payroll.payFrequencies;\r\nexport const selectCalendarIds = (state) => state.payroll.calendarIds;\r\nexport const selectPayees = (state) => state.payroll.payees;\r\nexport const selectEmployeesIds = (state) => state.payroll.employeesIds;\r\nexport const selectOptions = (state) => state.payroll.options;\r\nexport const selectTimeAndLaborPeriod = (state) => state.payroll.timeAndLaborPeriod;\r\nexport const selectPayroll = (skip) => (state) => {\r\n const calendars = [];\r\n\r\n let parsedCheckDate;\r\n const importFromTimeAndLabor = state.payroll.payees === \"importFromTimeAndLabor\";\r\n const importFromEmployeeFilter = state.payroll.payees?.startsWith(\"filter-\");\r\n const allActiveEmployees = state.payroll.payees === \"all\";\r\n let employeeFilterId = undefined;\r\n\r\n if (state.payroll.checkDate) {\r\n parsedCheckDate = state.payroll.checkDate.toISOString();\r\n }\r\n\r\n for (let frequencyId of state.payroll.selectedFrequencies) {\r\n let startDate = state.payroll.selectedCalendars[frequencyId]?.startDate;\r\n let endDate = state.payroll.selectedCalendars[frequencyId]?.endDate;\r\n if (state.payroll.payPeriods?.[frequencyId]?.[0]) {\r\n startDate = state.payroll.payPeriods?.[frequencyId]?.[0].toISOString();\r\n }\r\n if (state.payroll.payPeriods?.[frequencyId]?.[1]) {\r\n endDate = state.payroll.payPeriods?.[frequencyId]?.[1].toISOString();\r\n }\r\n calendars.push({\r\n ...state.payroll.selectedCalendars[frequencyId],\r\n startDate,\r\n endDate,\r\n payFrequency:\r\n state.payroll.selectedCalendars[frequencyId]?.frequency ?? state.payroll.payFrequency,\r\n });\r\n }\r\n\r\n if (!allActiveEmployees && importFromEmployeeFilter) {\r\n const employeeFilter = state.payroll.employeeFilters?.find(\r\n (filter) => filter.id?.toString() === state.payroll.payees?.split(\"-\")?.[1]\r\n );\r\n employeeFilterId = employeeFilter?.id;\r\n }\r\n\r\n return {\r\n autoHours: state.payroll.options.autoHours,\r\n autoPays: state.payroll.options.autoPays,\r\n autoDeds: state.payroll.options.autoDeds,\r\n autoMemos: state.payroll.options.autoMemos,\r\n accSick: state.payroll.options.accSick,\r\n accVac: state.payroll.options.accVac,\r\n accPer: state.payroll.options.accPer,\r\n checkDate: parsedCheckDate,\r\n calendars,\r\n employeeNumbers: !skip && !allActiveEmployees ? state.payroll.employeesIds : [],\r\n isEmpty:\r\n !allActiveEmployees && (!!skip || (!employeeFilterId && !state.payroll.employeesIds?.length)),\r\n isSameAsLastPayroll: !skip && state.payroll.payees === \"same\",\r\n importFromTimeAndLabor: !skip ? importFromTimeAndLabor : false,\r\n timeAndLaborPeriod:\r\n !skip && importFromTimeAndLabor\r\n ? {\r\n startDate: state.payroll.timeAndLaborPeriod.startDate.toISOString(),\r\n endDate: state.payroll.timeAndLaborPeriod.endDate.toISOString(),\r\n }\r\n : undefined,\r\n employeeFilterId: !skip ? employeeFilterId : undefined,\r\n };\r\n};\r\n","import { combineReducers } from \"redux\";\r\nimport { appReducer } from \"./ducks/appDuck\";\r\nimport { dashboardReducer } from \"./ducks/dashboardDuck\";\r\nimport { employeesReducer } from \"./ducks/employeesDuck\";\r\nimport { employeeReducer } from \"./ducks/employeeDuck\";\r\nimport { essReducer } from \"./ducks/essDuck\";\r\nimport { onboardingReducer } from \"./ducks/onboardingDuck\";\r\nimport { payhistoryReducer } from \"./ducks/payHistoryDuck\";\r\nimport { snackbarReducer } from \"./ducks/snackbarDuck\";\r\nimport { widgetEssReducer } from \"./ducks/widgetEssDuck\";\r\nimport { widgetFeedbackReducer } from \"./ducks/widgetFeedbackDuck\";\r\nimport { widgetManageProfile } from \"./ducks/widgetManageProfileDuck\";\r\nimport { widgetNewDownloadReducer } from \"./ducks/widgetNewDownloadDuck\";\r\nimport { widgetSelectCompanyReducer } from \"./ducks/widgetSelectCompanyDuck\";\r\nimport { widgetGlobalSearch } from \"./ducks/widgetGlobalSearchDuck\";\r\nimport { payrollsReducer } from \"./ducks/payrollsDuck\";\r\nimport { payrollReducer } from \"./ducks/payrollDuck\";\r\n\r\nexport default combineReducers({\r\n app: appReducer,\r\n snackbar: snackbarReducer,\r\n dashboard: dashboardReducer,\r\n ess: essReducer,\r\n widgetFeedback: widgetFeedbackReducer,\r\n widgetNewDownload: widgetNewDownloadReducer,\r\n widgetSelectCompany: widgetSelectCompanyReducer,\r\n widgetEss: widgetEssReducer,\r\n employees: employeesReducer,\r\n employee: employeeReducer,\r\n onboarding: onboardingReducer,\r\n payhistory: payhistoryReducer,\r\n widgetManageProfile: widgetManageProfile,\r\n widgetGlobalSearch,\r\n payrolls: payrollsReducer,\r\n payroll: payrollReducer,\r\n});\r\n","import { applyMiddleware, createStore } from \"redux\";\r\nimport createSagaMiddleware from \"redux-saga\";\r\n\r\nimport reducers from \"./rootReducer\";\r\n// import rootSaga from \"./sagas\";\r\n\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;\r\n\r\nfunction configureStore(initState = {}) {\r\n const sagaMiddleware = createSagaMiddleware();\r\n\r\n let store = null;\r\n\r\n if (composeEnhancers) {\r\n store = createStore(reducers, initState, composeEnhancers(applyMiddleware(sagaMiddleware)));\r\n } else {\r\n store = createStore(reducers, initState, applyMiddleware(sagaMiddleware));\r\n }\r\n\r\n // sagaMiddleware.run(rootSaga);\r\n\r\n return store;\r\n}\r\n\r\nexport const store = configureStore();\r\n","import axios from \"axios\";\r\nimport { authService, axiosError, urlHelpers, logErrorsService } from \".\";\r\nimport { localStorageSyncApi } from \"./localStorageSyncApi\";\r\nimport { sessionStorageSyncApi } from \"./sessionStorageSyncApi\";\r\nimport { store } from \"../redux/configureStore\";\r\nimport { showSnackbar } from \"../redux/ducks/snackbarDuck\";\r\n\r\nconst sleep = ms => new Promise(r => setTimeout(r, ms));\r\n\r\naxios.defaults.headers = {\r\n \"Cache-Control\": \"no-cache\",\r\n Pragma: \"no-cache\",\r\n Expires: \"0\"\r\n};\r\n\r\naxios.interceptors.request.use(request => {\r\n const state = store?.getState();\r\n const jwtGuid = state?.app?.profile?.jwtGuid;\r\n if (jwtGuid) {\r\n request.headers.jwtGuid = jwtGuid;\r\n }\r\n return request;\r\n});\r\n\r\naxios.interceptors.request.use(request => {\r\n const jwtGuid = authService.getJwtGuid();\r\n if (jwtGuid) {\r\n request.headers.jwtGuid = jwtGuid;\r\n }\r\n return request;\r\n});\r\n\r\naxios.interceptors.response.use(\r\n response => response,\r\n async error => {\r\n if (error.config?.headers[\"X-ReCAPTCHAToken_V\"] === \"V3\" && error.response?.status === 506) {\r\n logErrorsService.warning(\"google reCAPTCHA V3 failed, will try to switch to V2.\");\r\n let response = \"\";\r\n\r\n try {\r\n window.grecaptcha.render(\"recaptcha\", {\r\n sitekey: \"6LeCs6MlAAAAANEnqDuTjqyE954zjz-Za9UqwIKb\"\r\n });\r\n } catch (err) {\r\n logErrorsService.error(err.message, \"Error render reCAPTCHA V2\");\r\n }\r\n\r\n window.grecaptcha.execute();\r\n for (let i = 0; i < 120; i++) {\r\n response = window.grecaptcha.getResponse();\r\n if (response !== \"\" && response.length > 1) {\r\n logErrorsService.info(\"got reCAPTCHA V2 response. i=\" + i);\r\n break;\r\n }\r\n await sleep(1000);\r\n }\r\n\r\n if (response.length > 1) {\r\n error.config.headers[\"X-ReCAPTCHAToken\"] = response;\r\n error.config.headers[\"X-ReCAPTCHAToken_V\"] = \"V2\";\r\n logErrorsService.info(\"reCAPTCHA V2 was successful, retrying the request.\");\r\n return axios.request(error.config);\r\n } else {\r\n logErrorsService.warning(\"no response from reCAPTCHA V2\");\r\n }\r\n }\r\n\r\n if (error.response?.status === 500) {\r\n store.dispatch(\r\n showSnackbar({\r\n variant: \"failure\",\r\n message: \"Something went wrong. Please try again later.\"\r\n })\r\n );\r\n }\r\n\r\n if (error.response?.status === 401) {\r\n logErrorsService.info(\"http 401 URL: \" + error?.request?.responseURL);\r\n localStorageSyncApi.removeJwtToken();\r\n sessionStorageSyncApi.removeJwtToken();\r\n if (!window.location.pathname.startsWith('/auth')) {\r\n window.location.replace(\"/\");\r\n }\r\n }\r\n\r\n let errorDataObject = { ...error };\r\n if (errorDataObject?.config?.data) {\r\n try {\r\n errorDataObject.config.data = JSON.parse(errorDataObject.config.data);\r\n if (errorDataObject?.config?.data?.password) {\r\n errorDataObject.config.data.password = \"******\";\r\n }\r\n } catch (ex) { }\r\n }\r\n\r\n logErrorsService.error(axiosError.errorDescription(error), error);\r\n throw error;\r\n }\r\n);\r\n\r\nconst apiService = {\r\n get(url, params) {\r\n return axios({\r\n url: urlHelpers.getAbsoluteURL(url),\r\n method: \"get\",\r\n headers: this.getAxiosConfig(),\r\n params\r\n });\r\n },\r\n async post(url, body, params) {\r\n let reCAPTCHAToken, actionName;\r\n if (url.indexOf(\"api/auth/\") > -1) {\r\n actionName = url.replace(/\\/?api\\/auth\\//, \"\");\r\n reCAPTCHAToken = await this.getCaptchaToken(actionName);\r\n } else if (url.indexOf(\"api/PayrollApproval/EmailRegister\") > -1) {\r\n actionName = \"PayrollApproval\";\r\n reCAPTCHAToken = await this.getCaptchaToken(actionName);\r\n }\r\n return axios({\r\n url: urlHelpers.getAbsoluteURL(url),\r\n method: \"post\",\r\n data: body,\r\n headers: this.getAxiosConfig(reCAPTCHAToken, actionName),\r\n params: params\r\n });\r\n },\r\n put(url, body, params) {\r\n return axios({\r\n url: urlHelpers.getAbsoluteURL(url),\r\n method: \"put\",\r\n data: body,\r\n headers: this.getAxiosConfig(),\r\n params: params\r\n });\r\n },\r\n delete(url, body, params) {\r\n return axios({\r\n headers: this.getAxiosConfig(),\r\n method: \"delete\",\r\n data: body,\r\n url: urlHelpers.getAbsoluteURL(url),\r\n params: params\r\n });\r\n },\r\n patch(url, body, params) {\r\n return axios({\r\n url: urlHelpers.getAbsoluteURL(url),\r\n method: \"patch\",\r\n data: body,\r\n headers: this.getAxiosConfig(),\r\n params: params\r\n });\r\n },\r\n downloadFile: async function (url, fileName, errorCallback, useApiFilename) {\r\n try {\r\n if (window.ReactNativeWebView) {\r\n window.ReactNativeWebView.postMessage(JSON.stringify({ url }));\r\n return;\r\n }\r\n const response = await axios({\r\n url: urlHelpers.getAbsoluteURL(url),\r\n method: \"GET\",\r\n responseType: \"blob\", // important\r\n headers: this.getAxiosConfig()\r\n });\r\n const apiFilename = response?.headers?.[\"x-filename\"] ?? fileName;\r\n clickToDownloadFile(response, useApiFilename ? apiFilename : fileName);\r\n } catch (e) {\r\n axiosError.handleError(e, () => {\r\n if(errorCallback){\r\n errorCallback(\"Internal Server Error. Please try again later.\");\r\n }\r\n });\r\n throw e;\r\n }\r\n },\r\n downloadFileViaPost: async function (url, body, fileName, errorCallback) {\r\n try {\r\n const response = await axios({\r\n url: urlHelpers.getAbsoluteURL(url),\r\n method: \"POST\",\r\n data: body,\r\n responseType: \"blob\", // important\r\n headers: this.getAxiosConfig()\r\n });\r\n clickToDownloadFile(response, fileName);\r\n } catch (e) {\r\n axiosError.handleError(e, () => {\r\n errorCallback(\"Internal Server Error. Please try again later.\");\r\n });\r\n throw e;\r\n }\r\n },\r\n getAxiosConfig(reCAPTCHAToken, actionName) {\r\n const token = authService.getToken();\r\n const bfp = localStorageSyncApi.getOrSetBfp();\r\n const sfp = sessionStorageSyncApi.getOrSetSfp();\r\n return reCAPTCHAToken\r\n ? {\r\n Authorization: `Bearer ${token}`,\r\n \"X-ReCAPTCHAToken\": reCAPTCHAToken,\r\n \"X-ReCAPTCHAToken_V\": \"V3\",\r\n \"X-ReCAPTCHAToken_Action\": actionName,\r\n bfp,\r\n sfp\r\n }\r\n : {\r\n Authorization: `Bearer ${token}`,\r\n bfp,\r\n sfp\r\n };\r\n },\r\n getCaptchaToken(action) {\r\n return new Promise((res, rej) => {\r\n try {\r\n window.grecaptcha.ready(function () {\r\n window.grecaptcha\r\n .execute(\"6LcTCwAVAAAAADYn_QkUxpU0IR0rAdr1RYae1Nfb\", { action: action })\r\n .then(function (token) {\r\n res(token);\r\n });\r\n });\r\n } catch (ex) {\r\n logErrorsService.error(`Error in getCaptchaToken - ${ex.message}`);\r\n res(`Error: ${ex}`);\r\n }\r\n });\r\n },\r\n getFile: async function (url, fileName, errorCallback) {\r\n try {\r\n const response = await axios({\r\n url: urlHelpers.getAbsoluteURL(url),\r\n method: \"GET\",\r\n responseType: \"blob\", // important\r\n headers: this.getAxiosConfig()\r\n });\r\n const fileUrl = window.URL.createObjectURL(\r\n new Blob([response.data], { type: \"application/pdf\" })\r\n );\r\n return fileUrl;\r\n } catch (e) {\r\n axiosError.handleError(e, () => {\r\n if (errorCallback) {\r\n errorCallback(\"Internal Server Error. Please try again later.\");\r\n }\r\n });\r\n throw e;\r\n }\r\n }\r\n};\r\nexport default apiService;\r\n\r\nfunction clickToDownloadFile(response, fileName) {\r\n const fileUrl = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement(\"a\");\r\n link.href = fileUrl;\r\n link.setAttribute(\"download\", fileName); //or any other extension\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n}\r\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import { JL } from \"jsnlog\";\r\n\r\nconst logErrorsService = {\r\n error(message, info) {\r\n JL().error({ message, info, version: process.env.REACT_APP_VERSION });\r\n },\r\n info(message, info) {\r\n JL().info({ message, info, version: process.env.REACT_APP_VERSION });\r\n },\r\n warning(message, info) {\r\n JL().warn({ message, info, version: process.env.REACT_APP_VERSION });\r\n },\r\n setLogLevel(level) {\r\n JL().setOptions({ level });\r\n }\r\n};\r\n\r\nexport default logErrorsService;\r\n","/**\n * Generated by orval v7.7.0 🍺\n * Do not edit manually.\n * Brands Web API v2\n * OpenAPI spec version: v2\n */\n\nexport type UserAuthorizationResultsSchemaRedirectTo = typeof UserAuthorizationResultsSchemaRedirectTo[keyof typeof UserAuthorizationResultsSchemaRedirectTo];\n\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UserAuthorizationResultsSchemaRedirectTo = {\n Dashboard: 0,\n TwoFactorAuth: 1,\n TwoFactorAuthSetup: 2,\n SelectCompany: 3,\n Login: 4,\n ResetPassword: 5,\n EmailNotConfirmed: 6,\n IPRestricted: 7,\n Onboarding: 8,\n CpaPortal: 9,\n AddCpaDetails: 10,\n AddCpaUserName: 11,\n EmployeeDeck: 12,\n EmployeeDeckOnboarding: 13,\n} as const;\n","import { jwtDecode } from \"jwt-decode\";\r\nimport { localStorageSyncApi } from \"./localStorageSyncApi\";\r\nimport { sessionStorageSyncApi } from \"./sessionStorageSyncApi\";\r\nimport logErrorsService from \"./logErrorsService\";\r\nimport { store } from \"../redux/configureStore\";\r\nimport { showSnackbar } from \"../redux/ducks/snackbarDuck\";\r\nimport { UserAuthorizationResultsSchemaRedirectTo } from \"@/api/types\";\r\nimport { History } from \"history\";\r\n\r\ninterface DecodedToken {\r\n exp: number;\r\n [key: string]: any;\r\n}\r\n\r\nconst authService = {\r\n saveToken(token: string) {\r\n try {\r\n logErrorsService.info(\"saveToken()\", token);\r\n localStorageSyncApi.setJwtToken(token);\r\n sessionStorageSyncApi.setJwtToken(token);\r\n } catch (ex) {\r\n logErrorsService.error(ex, \"error in saveToken()\");\r\n }\r\n },\r\n saveJwtGuid(jwtGuid: string) {\r\n sessionStorageSyncApi.setJwtGuid(jwtGuid);\r\n },\r\n removeToken() {\r\n logErrorsService.info(\"removeToken\");\r\n sessionStorageSyncApi.removeJwtToken();\r\n localStorageSyncApi.removeJwtToken();\r\n },\r\n getToken() {\r\n let token = sessionStorageSyncApi.getJwtToken();\r\n if (!token) token = localStorageSyncApi.getJwtToken();\r\n return token;\r\n },\r\n getJwtGuid() {\r\n return sessionStorageSyncApi.getJwtGuid();\r\n },\r\n getDecodedToken() {\r\n const token = this.getToken();\r\n if (!token || token === \"undefined\") {\r\n return undefined;\r\n }\r\n try {\r\n return jwtDecode(token);\r\n } catch (ex) {\r\n logErrorsService.error(ex, \"Error in jwtDecode\");\r\n return undefined;\r\n }\r\n },\r\n isTokenExpired() {\r\n const decodedToken = this.getDecodedToken();\r\n if (!decodedToken) {\r\n return true;\r\n }\r\n const expirationTime = decodedToken.exp * 1000;\r\n if (!window.serverTimeOffset) {\r\n return expirationTime < Date.now();\r\n }\r\n const serverTime = Date.now() + (window.serverTimeOffset ?? 0);\r\n const expired = expirationTime < serverTime;\r\n if (\r\n expired &&\r\n !window.location.href?.endsWith(\"/login\") &&\r\n !window.location.href?.endsWith(\"onboarding/new\")\r\n ) {\r\n store.dispatch(\r\n showSnackbar({\r\n variant: \"failure\",\r\n message:\r\n \"Your access token has expired. Please login again. If the issue persists, check the date and time on your device to ensure they are correct.\",\r\n })\r\n );\r\n }\r\n return expired;\r\n },\r\n getTokenClaim(claimName: string) {\r\n const decodedToken = this.getDecodedToken();\r\n if (!decodedToken) {\r\n return null;\r\n }\r\n return decodedToken[claimName];\r\n },\r\n getMillisecondsTillExpiration() {\r\n const decodedToken = this.getDecodedToken();\r\n if (!decodedToken) {\r\n return 0;\r\n }\r\n const currentTimeMs = Date.now();\r\n const expirationTimeMs = decodedToken.exp * 1000;\r\n return expirationTimeMs > currentTimeMs ? expirationTimeMs - currentTimeMs : 0;\r\n },\r\n isUserAuthenticated() {\r\n const token = this.getToken();\r\n if (!token) return false;\r\n if (this.isTokenExpired()) return false;\r\n const userId = this.getTokenClaim(\"UserId\");\r\n return !!userId;\r\n },\r\n logToken() {\r\n const token = this.getToken();\r\n if (!token) return false;\r\n if (this.isTokenExpired()) {\r\n logErrorsService.warning(\"token expired.\", {\r\n token: localStorageSyncApi.getJwtToken(),\r\n sessionToken: sessionStorageSyncApi.getJwtToken(),\r\n clientDateTime: new Date().toString(),\r\n clientUtcDateTime: new Date().toUTCString(),\r\n serverTimeOffset: window.serverTimeOffset,\r\n });\r\n return false;\r\n }\r\n const userId = this.getTokenClaim(\"UserId\");\r\n logErrorsService.info(\"token user id:\", userId);\r\n return !!userId;\r\n },\r\n isCompanyAuthenticated() {\r\n const token = this.getToken();\r\n if (!token) return false;\r\n return !this.isTokenExpired() && !!this.getTokenClaim(\"BrandsPay_Conum\");\r\n },\r\n isIpRestricted() {\r\n const isUserAuthenticated = this.isUserAuthenticated();\r\n const redirectTo = this.getTokenClaim(\"RedirectTo\");\r\n return (\r\n isUserAuthenticated && redirectTo === UserAuthorizationResultsSchemaRedirectTo.IPRestricted\r\n );\r\n },\r\n isCpaUser() {\r\n const isUserAuthenticated = this.isUserAuthenticated();\r\n const cpaFirmId = this.getTokenClaim(\"CpaFirmId\");\r\n const redirectTo = this.getTokenClaim(\"RedirectTo\");\r\n return (\r\n !!isUserAuthenticated &&\r\n (!!cpaFirmId ||\r\n redirectTo === UserAuthorizationResultsSchemaRedirectTo.AddCpaUserName ||\r\n redirectTo === UserAuthorizationResultsSchemaRedirectTo.AddCpaDetails)\r\n );\r\n },\r\n isEssUser() {\r\n const isUserAuthenticated = this.isUserAuthenticated();\r\n const essProfileId = this.getTokenClaim(\"EssProfileId\");\r\n const essOnboardingProfileId = this.getTokenClaim(\"EssOnboardingProfileId\");\r\n return !!isUserAuthenticated && (!!essProfileId || !!essOnboardingProfileId);\r\n },\r\n signOut(currentHistory: History, callback?: VoidFunction) {\r\n this.removeToken();\r\n if (callback) {\r\n callback();\r\n } else if (currentHistory) {\r\n currentHistory.push(\"/auth/login\");\r\n }\r\n },\r\n authenticate(currentHistory: History) {\r\n if (!this.isCompanyAuthenticated()) {\r\n currentHistory.push(\"/login\");\r\n }\r\n },\r\n getImpersonatedMessage() {\r\n const impersonatingUser = this.getTokenClaim(\"IUserId\");\r\n const impersonatingCompany = this.getTokenClaim(\"IConum\");\r\n if (impersonatingUser) return \"Impersonating User\";\r\n if (impersonatingCompany) return \"Impersonating Company\";\r\n return;\r\n },\r\n};\r\n\r\nexport default authService;\r\n","export const IS_PRODUCTION = process.env.REACT_APP_ENV !== \"development\";\r\n\r\nconst constants = {\r\n // if production use \"\" HOST_URL, otherwise use REACT_APP_HOST_URL from .env file\r\n HOST_URL: IS_PRODUCTION ? \"\" : process.env.REACT_APP_HOST_URL || \"\",\r\n //HOST_URL: \"https://brandswebapp-api.azurewebsites.net\",\r\n JWT_TOKEN: \"BrandsWebJWT\",\r\n JWT_GUID: \"BrandsWebJWTGuid\",\r\n APP_VERSION: process.env.REACT_APP_VERSION,\r\n IS_PRODUCTION,\r\n GUID: \"OnboardingGuid\",\r\n CALENDLY_URI: \"https://calendly.com/brandscustomersupport/paydeckonboarding\",\r\n DONT_SHOW_REPORT_CONFIRM: \"BrandsDontShowReportConfirm\",\r\n REMEMBER_BROWSER_GUID: \"RememberBrowserGuid\",\r\n EMPLOYEE_ID: \"empnum\",\r\n BFP: \"bfp\",\r\n SFP: \"sfp\",\r\n EMPLOYEE_TABLE_COLUMNS_MODEL: \"employee_table_columns_model\",\r\n LIVE_REPORTS_COLUMNS: \"LIVE_REPORTS_COLUMNS\",\r\n LIVE_REPORTS_GRID_LAYOUT: \"LIVE_REPORTS_GRID_LAYOUT\",\r\n IS_NATIVE: \"BrandsWebIsNative\",\r\n};\r\n\r\nexport default constants;\r\n","import { constants } from \".\";\r\n\r\nconst urlHelpers = {\r\n getAbsoluteURL(url) {\r\n if (url.startsWith(\"http\")) {\r\n return url;\r\n }\r\n if (!url.startsWith(\"/\")) {\r\n url = `/${url}`;\r\n }\r\n return `${constants.HOST_URL}${url}`;\r\n },\r\n};\r\n\r\nexport default urlHelpers;\r\n","export function consoleError(...rest) {\r\n console.error(...rest);\r\n}\r\n","import { consoleError } from \"../utils/consoleError\";\r\nimport { localStorageSyncApi } from \"./localStorageSyncApi\";\r\nimport { sessionStorageSyncApi } from \"./sessionStorageSyncApi\";\r\n\r\nconst AUTH_ERROR_MSG = \"Request failed with status code 401\";\r\n\r\nconst errorDescription = error => {\r\n if (error.response && error.response.data) {\r\n if (typeof error.response.data === \"object\" && error.response.data.title) {\r\n return error.response.data.title;\r\n } else if (typeof error.response.data && error.response.data.message) {\r\n return error.response.data.message;\r\n } else if (error.response && error.response.status === 551) {\r\n return \"Please contact customer support to access these reports.\";\r\n }\r\n if (typeof error.response.data === \"object\") {\r\n return JSON.stringify(error.response.data);\r\n }\r\n return error.response.data;\r\n } else {\r\n return error.message;\r\n }\r\n};\r\n\r\nconst checkIsAuthError = error => {\r\n return error.message === AUTH_ERROR_MSG;\r\n};\r\n\r\nconst handleError = (error, callback) => {\r\n if (axiosError.checkIsAuthError(error)) {\r\n if (window.location.pathname !== \"/restricted\") {\r\n localStorageSyncApi.removeJwtToken();\r\n sessionStorageSyncApi.removeJwtToken();\r\n window.location.replace(\"/\");\r\n }\r\n } else {\r\n consoleError(error);\r\n if (callback) {\r\n callback(error);\r\n }\r\n }\r\n};\r\n\r\nconst axiosError = {\r\n errorDescription,\r\n checkIsAuthError,\r\n handleError\r\n};\r\n\r\nexport default axiosError;\r\n","import { constants, apiService } from \"../core\";\r\n\r\nconst push = async (message, url, errorInfo) => {\r\n const body = {\r\n message,\r\n url,\r\n errorInfo,\r\n reactAppVersion: constants.APP_VERSION\r\n };\r\n const { data } = await apiService.post(\"api/log/push\", body);\r\n return data;\r\n};\r\n\r\nexport const logErrorsApi = {\r\n push\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Paper from \"@mui/material/Paper\";\r\nimport Button from \"@mui/material/Button\";\r\nimport * as Sentry from \"@sentry/react\";\r\n\r\nimport { authService } from \"../../core\";\r\nimport { PAGES } from \"../../routes/pages\";\r\nimport { logErrorsService } from \"../../core\";\r\nimport { logErrorsApi } from \"../../api/logErrorsApi\";\r\n\r\nconst ErrorBoundaryComponentPropTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nfunction ErrorFallback({ error, resetError, isPage, noFallback }) {\r\n const handleClickDashboard = () => {\r\n window.location.replace(PAGES.dashboard.path);\r\n };\r\n\r\n const handleClickLogout = () => {\r\n authService.removeToken();\r\n window.location.replace(PAGES.brandsLogin.path);\r\n };\r\n\r\n if (noFallback) return null;\r\n\r\n return (\r\n \r\n Error 500\r\n \r\n Oops something went wrong...\r\n \r\n \r\n Our engineering team has been alerted to this issue, and will work promptly to resolve it\r\n \r\n \r\n \r\n {isPage && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nconst StyledErrorFallback = ErrorFallback;\r\n\r\nconst myErrorHandler = (error, info) => {\r\n try {\r\n console.error(error, info);\r\n const url = window.location.href;\r\n info = JSON.stringify({ error, info });\r\n logErrorsService.error(error.message, info);\r\n logErrorsApi.push(error.message, url, info);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n\r\n try {\r\n window.clarity(\"set\", \"HasError\", \"YES\");\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nfunction ErrorBoundaryComponent({ isPage = false, noFallback = false, children }) {\r\n return (\r\n (\r\n \r\n )}\r\n onError={myErrorHandler}\r\n >\r\n {children}\r\n \r\n );\r\n}\r\n\r\nErrorBoundaryComponent.propTypes = ErrorBoundaryComponentPropTypes;\r\n\r\nexport default ErrorBoundaryComponent;\r\n","import { apiService } from \"../core\";\r\n\r\nexport const getToken = async () => {\r\n const { data } = await apiService.get(`api/Zendesk/Token`);\r\n return data;\r\n};\r\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","import { AxiosError } from 'axios'\r\n\r\ninterface ValidationError {\r\n errorCode: string\r\n errorMessage: string\r\n propertyName: string\r\n}\r\n\r\nexport function getErrorMessage(error: unknown) {\r\n let message = ''\r\n\r\n if (error instanceof AxiosError) {\r\n if (error.response) {\r\n const data = error.response.data as Record | string | undefined\r\n\r\n if (typeof data === 'string') {\r\n message = data\r\n } else if (data?.title) {\r\n message = data.title as string\r\n } else if (data?.message) {\r\n message = data.message as string\r\n } else if (data?.errors) {\r\n const errors = data.errors as ValidationError[]\r\n message = errors.map((e) => e.errorMessage).join('\\n')\r\n }\r\n } else {\r\n message = error.message\r\n }\r\n } else if (error instanceof Error) {\r\n message = error.message\r\n } else if (typeof error === 'string') {\r\n message = error\r\n }\r\n\r\n return message || 'An error occurred. Please try again.'\r\n}\r\n","import { create } from 'zustand'\r\n\r\nimport type { UserAuthorizationResultsSchema } from '@/api/types'\r\n\r\nimport { getErrorMessage } from '@/utils/error'\r\n\r\ninterface State {\r\n isLoading: boolean\r\n initiated: boolean\r\n profile?: UserAuthorizationResultsSchema | null\r\n messageDialogOptions?: MessageDialogOptions | null\r\n messageToastOptions?: MessageToastOptions | null\r\n}\r\n\r\ninterface Actions {\r\n setProfile: (profile?: UserAuthorizationResultsSchema | null) => void\r\n showLoading: VoidFunction\r\n hideLoading: VoidFunction\r\n showMessageDialog: (options: MessageDialogOptions) => void\r\n showErrorDialog: (error: unknown) => void\r\n hideMessageDialog: VoidFunction\r\n showMessageToast: (options: MessageToastOptions) => void\r\n showErrorToast: (error: unknown) => void\r\n hideMessageToast: VoidFunction\r\n}\r\n\r\ninterface MessageDialogOptions {\r\n variant: 'info' | 'success' | 'warning' | 'error'\r\n title: string\r\n message: string\r\n}\r\n\r\ninterface MessageToastOptions {\r\n variant: 'info' | 'success' | 'warning' | 'error'\r\n message: string | React.ReactElement\r\n}\r\n\r\nlet showLoadingTimeout: NodeJS.Timeout | null = null\r\n\r\nexport const useAppState = create((set) => ({\r\n initiated: false,\r\n isLoading: false,\r\n messageDialogOptions: null,\r\n setProfile(profile) {\r\n set({ profile, initiated: true })\r\n },\r\n showLoading() {\r\n if (showLoadingTimeout) {\r\n clearTimeout(showLoadingTimeout)\r\n }\r\n showLoadingTimeout = setTimeout(() => set({ isLoading: true }), 1000)\r\n },\r\n hideLoading() {\r\n if (showLoadingTimeout) {\r\n clearTimeout(showLoadingTimeout)\r\n showLoadingTimeout = null\r\n }\r\n set({ isLoading: false })\r\n },\r\n showMessageDialog(options) {\r\n set({ messageDialogOptions: options })\r\n },\r\n showErrorDialog(error) {\r\n set({\r\n messageDialogOptions: {\r\n variant: 'error',\r\n title: 'An error occurred',\r\n message: getErrorMessage(error),\r\n },\r\n })\r\n },\r\n hideMessageDialog() {\r\n set({ messageDialogOptions: null })\r\n },\r\n showMessageToast(options) {\r\n set({ messageToastOptions: options })\r\n },\r\n showErrorToast(error) {\r\n set({\r\n messageToastOptions: {\r\n variant: 'error',\r\n message: getErrorMessage(error),\r\n },\r\n })\r\n },\r\n hideMessageToast() {\r\n set({ messageToastOptions: null })\r\n },\r\n}))\r\n\r\nexport const app = useAppState.getState()\r\n","import React, { useRef } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nimport ErrorBoundary from \"../ErrorBoundary\";\r\nimport { getToken } from \"../../api/zendeskApi\";\r\nimport { authService } from \"../../core\";\r\nimport { useAppState } from \"@/states/app-state\";\r\n\r\nconst ZENDESK_KEY = \"214c9204-4b2d-4279-976a-8e0039539723\";\r\n\r\nconst sleep = (ms) => {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n};\r\n\r\nconst setting = {\r\n webWidget: {\r\n zIndex: 1200,\r\n color: {\r\n theme: \"#2c11a3\",\r\n launcherText: \"#ffffff\",\r\n header: \"#1cf2e2\",\r\n },\r\n helpCenter: {\r\n searchPlaceholder: {\r\n \"*\": \"Search our Help Center\",\r\n },\r\n title: {\r\n \"en-US\": \"Search for help\",\r\n },\r\n },\r\n chat: {\r\n suppress: false,\r\n notifications: {\r\n mobile: {\r\n disable: true,\r\n },\r\n },\r\n title: {\r\n \"*\": \"Chat with us!\",\r\n },\r\n },\r\n },\r\n};\r\n\r\nconst WidgetZendesk = () => {\r\n const [loaded, setLoaded] = React.useState(false);\r\n const profile = useAppState((state) => state.profile);\r\n const currentCompanyId = profile?.conum;\r\n const companyName = profile?.companyName;\r\n const conumRef = useRef(currentCompanyId);\r\n const coNameRef = useRef(companyName);\r\n const loadedRef = useRef(loaded);\r\n const { pathname } = useLocation();\r\n\r\n const setChatCoInfo = async () => {\r\n if (conumRef.current && loadedRef.current) {\r\n window?.zE(\"messenger:set\", \"conversationTags\", [\r\n conumRef.current.toString(),\r\n coNameRef.current,\r\n ]);\r\n window?.zE(\"messenger:set\", \"conversationFields\", [\r\n { id: \"360011866433\", value: coNameRef.current },\r\n ]);\r\n window?.zE(\"messenger:set\", \"conversationFields\", [\r\n { id: \"360011866093\", value: conumRef.current.toString() },\r\n ]);\r\n }\r\n };\r\n\r\n const handleScriptLoaded = () => {\r\n setLoaded(true);\r\n window?.zE(\"messenger:on\", \"open\", function () {\r\n setChatCoInfo();\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n if (loaded) return;\r\n const script = document.createElement(\"script\");\r\n script.src = `https://static.zdassets.com/ekr/snippet.js?key=${ZENDESK_KEY}`;\r\n script.defer = true;\r\n script.id = \"ze-snippet\";\r\n script.addEventListener(\"load\", handleScriptLoaded);\r\n document.body.appendChild(script);\r\n window.zESettings = setting;\r\n return () => {\r\n document.body.removeChild(script);\r\n };\r\n }, [loaded, currentCompanyId]);\r\n\r\n React.useEffect(() => {\r\n conumRef.current = currentCompanyId;\r\n coNameRef.current = companyName;\r\n loadedRef.current = loaded;\r\n setChatCoInfo();\r\n if (loaded && currentCompanyId && authService.isCompanyAuthenticated()) {\r\n window?.zE(\"messenger\", \"loginUser\", async function (callback) {\r\n const token = await getToken();\r\n callback(token);\r\n setChatCoInfo();\r\n });\r\n } else if (loaded && !currentCompanyId) {\r\n window?.zE(\"messenger\", \"logoutUser\");\r\n }\r\n }, [currentCompanyId, companyName, loaded]);\r\n\r\n React.useEffect(() => {\r\n if (!loaded) return;\r\n if (\r\n pathname === \"/swipe-clock\" ||\r\n pathname.startsWith(\"/ess/\") ||\r\n pathname.startsWith(\"/ess/setup\") ||\r\n pathname.startsWith(\"/payrolls\") ||\r\n pathname.startsWith(\"/custom-reports\")\r\n ) {\r\n window?.zE(\"messenger\", \"hide\");\r\n } else {\r\n window?.zE(\"messenger\", \"show\");\r\n }\r\n }, [pathname, loaded]);\r\n\r\n React.useEffect(() => {\r\n const setZIndex = async () => {\r\n await sleep(500);\r\n window?.zE(\"messenger:set\", \"zIndex\", 1200);\r\n };\r\n if (loaded) setZIndex();\r\n }, [loaded]);\r\n\r\n return null;\r\n};\r\n\r\nconst WrappedWidgetZendesk = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default WrappedWidgetZendesk;\r\n","import React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Button from \"@mui/material/Button\";\r\n\r\nimport { PAGES } from \"../../routes/pages\";\r\nimport { authService } from \"../../core\";\r\n\r\nfunction InternalServerErrorPage() {\r\n const handleClickDashboard = () => {\r\n window.location.replace(PAGES.dashboard.path);\r\n };\r\n\r\n const handleClickLogout = () => {\r\n authService.removeToken();\r\n window.location.replace(PAGES.brandsLogin.path);\r\n };\r\n\r\n return (\r\n \r\n \r\n Error 500\r\n \r\n \r\n Oops something went wrong...\r\n \r\n \r\n Our engineering team has been alerted to this issue, and will work promptly to resolve it\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nInternalServerErrorPage.propTypes = {};\r\n\r\nexport default InternalServerErrorPage;\r\n","import { useEffect } from \"react\";\r\nimport { setUser } from \"@sentry/react\";\r\n\r\nimport ErrorBoundary from \"../ErrorBoundary\";\r\nimport { authService } from \"../../core\";\r\nimport { localStorageSyncApi } from \"../../core/localStorageSyncApi\";\r\nimport { sessionStorageSyncApi } from \"../../core/sessionStorageSyncApi\";\r\nimport { useAppState } from \"@/states/app-state\";\r\n\r\nfunction SentryUserManager() {\r\n const profile = useAppState((state) => state.profile);\r\n\r\n useEffect(() => {\r\n if (!profile) return;\r\n const jwtGuid = authService.getJwtGuid();\r\n const bfp = localStorageSyncApi.getOrSetBfp();\r\n const sfp = sessionStorageSyncApi.getOrSetSfp();\r\n setUser({\r\n ...profile,\r\n jwtGuid,\r\n bfp,\r\n sfp,\r\n \"x-react-app-version\": process.env.REACT_APP_VERSION,\r\n });\r\n }, [profile]);\r\n return null;\r\n}\r\n\r\nconst WrappedSentryUserManager = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default WrappedSentryUserManager;\r\n","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');","import React from \"react\";\r\nimport SvgIcon from \"@mui/material/SvgIcon\";\r\n\r\nfunction CheckedIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CheckedIcon;\r\n","import React from \"react\";\r\nimport SvgIcon from \"@mui/material/SvgIcon\";\r\n\r\nfunction UncheckedIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default UncheckedIcon;\r\n","import React from \"react\";\r\nimport SvgIcon from \"@mui/material/SvgIcon\";\r\n\r\nfunction RadioButtonIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default RadioButtonIcon;\r\n","import React from \"react\";\r\nimport SvgIcon from \"@mui/material/SvgIcon\";\r\n\r\nfunction RadioButtonCheckedIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default RadioButtonCheckedIcon;\r\n","import React from \"react\";\r\nimport SvgIcon from \"@mui/material/SvgIcon\";\r\n\r\nconst CheckMarkIcon = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckMarkIcon;\r\n","import React from \"react\";\r\nimport { createTheme } from \"@mui/material/styles\";\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\r\n\r\nimport CheckedIcon from \"./components/Icons/CheckedIcon\";\r\nimport UncheckedIcon from \"./components/Icons/UncheckedIcon\";\r\nimport RadioButtonIcon from \"./components/Icons/RadioButtonIcon\";\r\nimport RadioButtonCheckedIcon from \"./components/Icons/RadioButtonCheckedIcon\";\r\nimport ArrowForwardIosIcon from \"./components/Icons/ArrowForwardIosIcon\";\r\n\r\nconst basePaletteTheme = createTheme({\r\n palette: {\r\n grey: {\r\n 50: \"#F6F6F6\",\r\n 100: \"#E7E7E7\",\r\n 200: \"#D1D1D1\",\r\n 300: \"#B0B0B0\",\r\n 400: \"#898989\",\r\n 500: \"#6D6D6D\",\r\n 600: \"#5D5D5D\",\r\n 700: \"#4F4F4F\",\r\n 800: \"#454545\",\r\n 900: \"#3D3D3D\",\r\n },\r\n },\r\n});\r\n\r\nexport const theme = createTheme({\r\n mixins: {\r\n scrollbar: {\r\n \"& ::-webkit-scrollbar\": {\r\n width: 6,\r\n },\r\n \"& ::-webkit-scrollbar:horizontal\": {\r\n height: 6,\r\n },\r\n \"& ::-webkit-scrollbar-track\": {\r\n background: \"transparent\",\r\n },\r\n \"& ::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"transparent\",\r\n borderRadius: 2.5,\r\n border: \"3px solid transparent\",\r\n backgroundClip: \"padding-box\",\r\n },\r\n \"&:hover\": {\r\n \"& ::-webkit-scrollbar-thumb\": {\r\n border: \"3px solid #000000\",\r\n },\r\n },\r\n scrollbarWidth: \"thin\",\r\n scrollbarColor: \"transparent\",\r\n },\r\n scrollbarLight: {\r\n overflowY: \"auto\",\r\n \"&::-webkit-scrollbar\": {\r\n width: 2,\r\n },\r\n \"&::-webkit-scrollbar-track\": {\r\n background: \"transparent\",\r\n },\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"transparent\",\r\n borderRadius: 20,\r\n border: \"3px solid transparent\",\r\n backgroundClip: \"padding-box\",\r\n },\r\n \"&:hover\": {\r\n \"&::-webkit-scrollbar\": {\r\n width: 2,\r\n marginTop: 3,\r\n },\r\n \"&::-webkit-scrollbar-thumb\": {\r\n border: \"3px solid #c4c4c4\",\r\n },\r\n },\r\n },\r\n scrollbarLarge: {\r\n \"& ::-webkit-scrollbar\": {\r\n width: 12,\r\n },\r\n \"& ::-webkit-scrollbar:horizontal\": {\r\n height: 12,\r\n },\r\n \"& ::-webkit-scrollbar-track\": {\r\n background: \"transparent\",\r\n },\r\n \"& ::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"transparent\",\r\n borderRadius: 5,\r\n border: \"6px solid #000000\",\r\n backgroundClip: \"padding-box\",\r\n },\r\n \"&:hover\": {\r\n \"& ::-webkit-scrollbar-thumb\": {\r\n border: \"6px solid #000000\",\r\n },\r\n },\r\n scrollbarWidth: \"thin\",\r\n scrollbarColor: \"transparent\",\r\n },\r\n drawerWidth: 260,\r\n navBarHeight: 48,\r\n },\r\n breakpoints: {\r\n values: {\r\n xs: 0,\r\n sm: 600,\r\n md: 960,\r\n lg: 1280,\r\n xl: 1920,\r\n },\r\n },\r\n typography: {\r\n fontFamily: \"TTNorms\",\r\n h1: {\r\n fontSize: 32,\r\n lineHeight: \"41px\",\r\n fontWeight: 500,\r\n color: \"#3F1AC4\",\r\n },\r\n h2: {\r\n fontSize: 24,\r\n lineHeight: \"31px\",\r\n fontWeight: 500,\r\n color: \"#140936\",\r\n },\r\n h3: {\r\n fontSize: 16,\r\n lineHeight: \"20px\",\r\n fontWeight: 500,\r\n color: \"#140936\",\r\n },\r\n h4: {\r\n fontSize: 14,\r\n lineHeight: \"18px\",\r\n fontWeight: 500,\r\n color: \"#140936\",\r\n },\r\n h5: {\r\n fontWeight: \"bold\",\r\n },\r\n h6: {\r\n fontWeight: \"bold\",\r\n },\r\n body1: {\r\n fontSize: 14,\r\n lineHeight: \"18px\",\r\n fontWeight: 400,\r\n color: \"#6D6979\",\r\n },\r\n body2: {\r\n fontSize: 12,\r\n lineHeight: \"15px\",\r\n fontWeight: 400,\r\n color: \"#6D6979\",\r\n },\r\n navLink: {\r\n fontWeight: 400,\r\n fontSize: \"15px\",\r\n lineHeight: \"19px\",\r\n },\r\n button: {\r\n fontWeight: 700,\r\n fontSize: \"14px\",\r\n lineHeight: \"18px\",\r\n },\r\n sectionTitle: {\r\n color: \"#140936\",\r\n fontSize: 16,\r\n fontWeight: 500,\r\n },\r\n sectionLabel: {\r\n color: \"#666666\",\r\n fontSize: 12,\r\n },\r\n },\r\n palette: {\r\n text: {\r\n primary: basePaletteTheme.palette.grey[900],\r\n secondary: basePaletteTheme.palette.grey[500],\r\n disabled: basePaletteTheme.palette.grey[300],\r\n },\r\n primary: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#2c11a3\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: will be calculated to contrast with palette.primary.main\r\n },\r\n secondary: {\r\n light: \"#E8FFFF\",\r\n main: \"#1cf2e2\",\r\n // dark: will be calculated from palette.secondary.main,\r\n contrastText: \"#ffcc00\",\r\n },\r\n purpleLight: {\r\n light: \"#F7F9F9\",\r\n main: \"#E2E0EF\",\r\n dark: \"#FAFAFC\",\r\n },\r\n purple: {\r\n light: \"#E7E5EA\",\r\n main: \"#320DA0\",\r\n dark: \"#140936\",\r\n },\r\n purpleDark: {\r\n light: \"#3F1AC4\",\r\n main: \"#200868\",\r\n dark: \"#F5F4F8\",\r\n },\r\n gold: {\r\n main: \"#d6c155\",\r\n },\r\n green: {\r\n light: \"#64C52A\",\r\n main: \"#12EA12\",\r\n dark: \"#7EF1E2\",\r\n },\r\n greenLight: {\r\n main: \"#E9FFFD\",\r\n },\r\n greenMain: {\r\n main: \"#61B54B\",\r\n },\r\n greenDark: {\r\n main: \"#008000\",\r\n },\r\n yellowLight: {\r\n main: \"#FFFCEF\",\r\n },\r\n yellow: {\r\n light: \"#FFFDEF\",\r\n main: \"#DB8C15\",\r\n },\r\n orange: {\r\n light: \"#FFA200\",\r\n main: \"#FFA500\",\r\n },\r\n red: {\r\n alpha: \"#E859591A\",\r\n light: \"#E85959\",\r\n main: \"#FF0000\",\r\n dark: \"#B94040\",\r\n },\r\n blue: {\r\n dark: \"#151395\",\r\n },\r\n error: {\r\n main: \"#B94040\",\r\n dark: \"#B94040\",\r\n },\r\n black: {\r\n main: \"#140936\",\r\n },\r\n grey: {\r\n 50: \"#F1F1F1\",\r\n 100: \"#f6f9f9\",\r\n 200: \"#6D6979\",\r\n 300: \"#ecf3f6\",\r\n 400: \"#656565\",\r\n 500: \"#6f7374\",\r\n 600: \"#666666\",\r\n 700: \"#707070\",\r\n 800: \"#444444\",\r\n 900: \"#a9a9a9\",\r\n // A100: \"#fafafa\",\r\n // A200: \"#fafafa\",\r\n // A400: \"#fafafa\",\r\n // A700: \"#fafafa\",\r\n },\r\n },\r\n components: {\r\n MuiCssBaseline: {\r\n styleOverrides: (theme) => ({\r\n body: {\r\n backgroundColor: theme.palette.grey[100],\r\n },\r\n }),\r\n },\r\n MuiTypography: {\r\n defaultProps: {\r\n variantMapping: {\r\n sectionTitle: \"h6\",\r\n sectionLabel: \"p1\",\r\n },\r\n },\r\n },\r\n MuiAppBar: {\r\n defaultProps: {\r\n color: \"inherit\",\r\n variant: \"outlined\",\r\n elevation: 0,\r\n },\r\n },\r\n MuiPaper: {\r\n defaultProps: {\r\n variant: \"outlined\",\r\n elevation: 0,\r\n },\r\n styleOverrides: {\r\n outlined: ({ theme }) => ({\r\n borderColor: theme.palette.purpleLight.main,\r\n }),\r\n },\r\n },\r\n MuiButton: {\r\n defaultProps: {\r\n disableElevation: true,\r\n },\r\n styleOverrides: {\r\n root: ({}) => ({\r\n textTransform: \"none\",\r\n }),\r\n containedPrimary: () => ({\r\n backgroundColor: \"#3F1AC4\",\r\n \"&:hover\": {\r\n backgroundColor: \"#2C1093\",\r\n },\r\n }),\r\n containedSecondary: () => ({\r\n backgroundColor: \"rgba(63, 26, 196, 0.08)\",\r\n color: \"#3F1AC4\",\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(63, 26, 196, 0.08)\",\r\n outline: \"1px solid rgba(63, 26, 196, 0.5)\",\r\n },\r\n }),\r\n outlinedPrimary: () => ({\r\n border: \"1px solid #3F1AC4\",\r\n color: \"#3F1AC4\",\r\n \"&:hover\": {\r\n border: \"1px solid #3F1AC4\",\r\n color: \"#3F1AC4\",\r\n backgroundColor: \"#EDEBF5\",\r\n },\r\n }),\r\n outlinedInfo: () => ({\r\n border: \"1px solid rgba(109, 105, 121, 0.25)\",\r\n color: \"#6D6979\",\r\n \"&:hover\": {\r\n border: \"1px solid rgba(109, 105, 121, 0.5)\",\r\n color: \"#6D6979\",\r\n backgroundColor: \"rgba(109, 105, 121, 0.05)\",\r\n },\r\n }),\r\n outlinedSuccess: ({ theme }) => ({\r\n border: \"1px solid\",\r\n borderColor: theme.palette.green.dark,\r\n color: \"#3F1AC4\",\r\n \"&:hover\": {\r\n borderColor: theme.palette.green.dark,\r\n backgroundColor: theme.palette.green.dark,\r\n color: \"#3F1AC4\",\r\n },\r\n }),\r\n textInfo: () => ({\r\n color: \"#6D6979\",\r\n \"&:hover\": {\r\n color: \"#6D6979\",\r\n backgroundColor: \"rgba(109, 105, 121, 0.05)\",\r\n },\r\n }),\r\n sizeLarge: ({ theme }) => ({\r\n padding: theme.spacing(1.9375, 2.75),\r\n borderRadius: theme.spacing(0.625),\r\n fontSize: 15,\r\n fontWeight: 500,\r\n lineHeight: \"19px\",\r\n }),\r\n outlinedSizeLarge: ({ theme }) => ({\r\n padding: theme.spacing(1.8125, 2.75),\r\n }),\r\n sizeMedium: ({ theme }) => ({\r\n padding: theme.spacing(1.625, 1.875),\r\n borderRadius: theme.spacing(0.625),\r\n fontSize: 14,\r\n fontWeight: 500,\r\n lineHeight: \"18px\",\r\n }),\r\n outlinedSizeMedium: ({ theme }) => ({\r\n padding: theme.spacing(1.5, 1.875),\r\n }),\r\n sizeSmall: ({ theme, ownerState }) => ({\r\n padding: theme.spacing(1.25, 1.875),\r\n borderRadius: theme.spacing(0.625),\r\n fontSize: 14,\r\n fontWeight: 500,\r\n lineHeight: \"18px\",\r\n ...(ownerState.variant === \"outlined\" && { padding: theme.spacing(1.125, 1.875) }),\r\n }),\r\n startIcon: () => ({\r\n \">*:nth-of-type(1)\": {\r\n fontSize: 14,\r\n },\r\n }),\r\n endIcon: ({ theme, ownerState }) => ({\r\n stroke: theme.palette.common.white,\r\n ...(ownerState.color === \"primary\" &&\r\n ownerState.variant === \"outlined\" && {\r\n stroke: \"#3F1AC4\",\r\n }),\r\n path: {\r\n opacity: 1,\r\n },\r\n \".MuiSvgIcon-root\": {\r\n fontSize: 14,\r\n },\r\n }),\r\n },\r\n },\r\n MuiFab: {\r\n defaultProps: {\r\n color: \"primary\",\r\n size: \"medium\",\r\n },\r\n styleOverrides: {\r\n root: () => ({\r\n boxShadow: \"none\",\r\n width: 34,\r\n height: 34,\r\n }),\r\n primary: ({ theme }) => ({\r\n backgroundColor: theme.palette.green.dark,\r\n \".MuiSvgIcon-root\": {\r\n fontSize: 16,\r\n },\r\n \"&:hover\": {\r\n backgroundColor: `${theme.palette.green.dark}80`,\r\n },\r\n }),\r\n },\r\n },\r\n MuiCheckbox: {\r\n defaultProps: {\r\n icon: ,\r\n checkedIcon: ,\r\n },\r\n },\r\n MuiRadio: {\r\n defaultProps: {\r\n icon: ,\r\n checkedIcon: ,\r\n },\r\n },\r\n MuiFormControl: {\r\n defaultProps: {\r\n fullWidth: true,\r\n variant: \"standard\",\r\n },\r\n },\r\n MuiFormControlLabel: {\r\n styleOverrides: {\r\n label: ({ theme }) => ({\r\n ...theme.typography.h4,\r\n fontWeight: 400,\r\n \"& span\": {\r\n ...theme.typography.body2,\r\n },\r\n }),\r\n },\r\n },\r\n MuiInputBase: {\r\n defaultProps: {\r\n fullWidth: true,\r\n },\r\n styleOverrides: {\r\n root: ({ theme, ownerState }) => ({\r\n backgroundColor: theme.palette.purpleLight.light,\r\n \"label + &\": {\r\n marginTop: theme.spacing(1.75),\r\n },\r\n \"&.MuiOutlinedInput-root\": {\r\n backgroundColor: theme.palette.common.white,\r\n ...(ownerState.color === \"secondary\" && {\r\n backgroundColor: theme.palette.purpleLight.light,\r\n }),\r\n },\r\n }),\r\n input: ({ theme, ownerState }) => ({\r\n borderRadius: 4,\r\n position: \"relative\",\r\n backgroundColor: theme.palette.common.white,\r\n fontSize: 16,\r\n padding: \"10px 12px\",\r\n transition: theme.transitions.create([\"border-color\", \"background-color\", \"box-shadow\"]),\r\n \"&:focus\": {\r\n borderColor: theme.palette.primary.main,\r\n },\r\n \"::-webkit-input-placeholder\": {\r\n color: \"#6D6979\",\r\n },\r\n \":-moz-placeholder\": {\r\n color: \"#6D6979\",\r\n opacity: 0.5,\r\n },\r\n \"::-moz-placeholder\": {\r\n color: \"#6D6979\",\r\n opacity: 0.5,\r\n },\r\n \":-ms-input-placeholder\": {\r\n color: \"#6D6979\",\r\n },\r\n \"::-ms-input-placeholder\": {\r\n color: \"#6D6979\",\r\n },\r\n\r\n \"::placeholder\": {\r\n color: \"#6D6979\",\r\n },\r\n ...(ownerState.color === \"secondary\" && {\r\n backgroundColor: theme.palette.purpleLight.light,\r\n \"::-webkit-input-placeholder\": {\r\n color: theme.palette.purple.dark,\r\n },\r\n \":-moz-placeholder\": {\r\n color: theme.palette.purple.dark,\r\n opacity: 0.5,\r\n },\r\n \"::-moz-placeholder\": {\r\n color: theme.palette.purple.dark,\r\n opacity: 0.5,\r\n },\r\n \":-ms-input-placeholder\": {\r\n color: theme.palette.purple.dark,\r\n },\r\n \"::-ms-input-placeholder\": {\r\n color: theme.palette.purple.dark,\r\n },\r\n\r\n \"::placeholder\": {\r\n color: theme.palette.purple.dark,\r\n },\r\n }),\r\n }),\r\n },\r\n },\r\n MuiInputLabel: {\r\n defaultProps: {\r\n shrink: true,\r\n disableAnimation: true,\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n fontSize: 14,\r\n color: theme.palette.purple.dark,\r\n lineHeight: \"18px\",\r\n transform: \"translate(0px, -8px) scale(1)\",\r\n \"&.Mui-focused\": {\r\n color: theme.palette.purple.dark,\r\n },\r\n \"&.Mui-error\": {\r\n color: theme.palette.error.main,\r\n },\r\n }),\r\n },\r\n },\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n lineHeight: \"18px\",\r\n borderColor: theme.palette.purpleLight.main,\r\n \"& .MuiOutlinedInput-notchedOutline\": {},\r\n \"&.Mui-focused\": {\r\n \"& .MuiOutlinedInput-notchedOutline\": {\r\n borderWidth: 1,\r\n borderColor: \"#6D6979\",\r\n },\r\n },\r\n \"&:hover\": {\r\n \"& .MuiOutlinedInput-notchedOutline\": {\r\n borderColor: \"#6D6979\",\r\n },\r\n },\r\n }),\r\n input: ({ theme, ownerState }) => ({\r\n height: \"unset\",\r\n padding: theme.spacing(1.5, 1.5),\r\n ...(ownerState.size === \"large\" && {\r\n padding: theme.spacing(2, 1.5),\r\n }),\r\n }),\r\n notchedOutline: ({ theme }) => ({\r\n borderColor: theme.palette.purpleLight.main,\r\n legend: {\r\n maxWidth: 0,\r\n },\r\n }),\r\n },\r\n },\r\n MuiSelect: {\r\n defaultProps: {\r\n variant: \"outlined\",\r\n IconComponent: ExpandMoreIcon,\r\n },\r\n styleOverrides: {\r\n outlined: () => ({\r\n minHeight: \"unset\",\r\n padding: theme.spacing(1.5, 1.5),\r\n }),\r\n },\r\n },\r\n MuiTableContainer: {\r\n styleOverrides: {\r\n root: () => ({\r\n // boxShadow: \"0px 1px 3px #00000014\"\r\n }),\r\n },\r\n },\r\n MuiTable: {\r\n defaultProps: {\r\n size: \"small\",\r\n },\r\n styleOverrides: {},\r\n },\r\n MuiTableRow: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n backgroundColor: \"rgba(245, 244, 248, 0.5) !important\",\r\n \"&:nth-of-type(even)\": {\r\n backgroundColor: \"rgba(245, 244, 248, 0.5) !important\",\r\n },\r\n \"&.Mui-selected\": {\r\n backgroundColor: theme.palette.secondary.light,\r\n },\r\n }),\r\n },\r\n },\r\n MuiTableCell: {\r\n styleOverrides: {\r\n head: ({ theme }) => ({\r\n backgroundColor: theme.palette.purpleDark.dark,\r\n color: theme.palette.purple.dark,\r\n fontSize: 14,\r\n fontWeight: 500,\r\n }),\r\n body: () => ({\r\n fontSize: 14,\r\n color: theme.palette.grey[200],\r\n border: \"none\",\r\n \"& a\": {\r\n color: theme.palette.purple.main,\r\n },\r\n }),\r\n },\r\n },\r\n MuiTablePagination: {\r\n defaultProps: {\r\n SelectProps: {\r\n fullWidth: false,\r\n },\r\n },\r\n },\r\n MuiAccordion: {\r\n defaultProps: {},\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n border: `1px solid ${theme.palette.purpleLight.main}`,\r\n borderRadius: theme.spacing(0.625),\r\n marginBottom: theme.spacing(1.875),\r\n \"&:before\": {\r\n display: \"none\",\r\n },\r\n \"&.Mui-disabled\": {\r\n border: `1px solid ${theme.palette.purpleLight.main}`,\r\n },\r\n }),\r\n },\r\n },\r\n MuiAccordionSummary: {\r\n defaultProps: {\r\n expandIcon: (\r\n \r\n ),\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n backgroundColor: theme.palette.common.white,\r\n paddingLeft: theme.spacing(1),\r\n borderRadius: theme.spacing(0.625),\r\n flexDirection: \"row-reverse\",\r\n \"& .MuiAccordionSummary-expandIconWrapper\": {\r\n transform: \"rotate(90deg)\",\r\n padding: theme.spacing(1.5),\r\n },\r\n \"& .MuiAccordionSummary-expandIconWrapper.Mui-expanded\": {\r\n transform: \"rotate(270deg)\",\r\n },\r\n \"& .MuiAccordionSummary-content\": {\r\n marginLeft: theme.spacing(0),\r\n },\r\n }),\r\n content: ({ theme }) => ({\r\n color: theme.palette.purple.dark,\r\n }),\r\n },\r\n },\r\n MuiAccordionDetails: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n padding: theme.spacing(2, 2, 2, 5.5),\r\n }),\r\n },\r\n },\r\n MuiSwitch: {\r\n styleOverrides: {\r\n root: () => ({\r\n width: 28,\r\n height: 20,\r\n padding: 0,\r\n margin: theme.spacing(1),\r\n }),\r\n sizeSmall: () => ({\r\n width: 24,\r\n height: 16,\r\n padding: 0,\r\n \"& .MuiSwitch-switchBase\": {\r\n padding: 3,\r\n \"&.Mui-checked\": {\r\n transform: \"translateX(7px)\",\r\n },\r\n },\r\n \"& .MuiSwitch-thumb\": {\r\n width: 10,\r\n height: 10,\r\n borderRadius: 5,\r\n },\r\n \"& .MuiSwitch-track\": {\r\n borderRadius: 16 / 2,\r\n },\r\n }),\r\n switchBase: ({ theme }) => ({\r\n padding: 4,\r\n \"&.Mui-checked\": {\r\n transform: \"translateX(8px)\",\r\n color: theme.palette.common.white,\r\n \"& + .MuiSwitch-track\": {\r\n backgroundColor: \"#4426D9\",\r\n opacity: 1,\r\n border: \"none\",\r\n },\r\n },\r\n }),\r\n thumb: () => ({\r\n width: 12,\r\n height: 12,\r\n borderRadius: 6,\r\n transition: theme.transitions.create([\"width\"], {\r\n duration: 200,\r\n }),\r\n }),\r\n track: () => ({\r\n borderRadius: 20 / 2,\r\n opacity: 0.5,\r\n backgroundColor: theme.palette.grey[700],\r\n boxSizing: \"border-box\",\r\n transition: theme.transitions.create([\"background-color\"]),\r\n }),\r\n },\r\n },\r\n MuiToggleButton: {\r\n styleOverrides: {\r\n root: () => ({\r\n textTransform: \"none\",\r\n }),\r\n },\r\n },\r\n MuiDataGrid: {\r\n defaultProps: {\r\n getRowClassName: (params) => (params.indexRelativeToCurrentPage % 2 === 0 ? \"even\" : \"odd\"),\r\n rowsPerPageOptions: [5, 10, 25, 50, 100],\r\n pagination: true,\r\n componentsProps: {\r\n filterPanel: {\r\n filterFormProps: {\r\n sx: { gap: 1, pt: 2 },\r\n deleteIconProps: {\r\n sx: {\r\n width: \"auto\",\r\n },\r\n },\r\n columnInputProps: {\r\n variant: \"outlined\",\r\n },\r\n operatorInputProps: {\r\n variant: \"outlined\",\r\n },\r\n valueInputProps: {\r\n InputComponentProps: {\r\n variant: \"outlined\",\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n styleOverrides: {\r\n root: () => ({\r\n border: \"none\",\r\n }),\r\n columnHeaderTitle: ({ theme }) => ({\r\n fontSize: 14,\r\n lineHeight: \"18px\",\r\n fontWeight: 500,\r\n color: theme.palette.purple.dark,\r\n }),\r\n columnHeaderRow: ({ theme }) => ({\r\n backgroundColor: theme.palette.purpleDark.dark,\r\n color: theme.palette.purple.dark,\r\n \"> .MuiDataGrid-columnHeader\": {\r\n paddingLeft: 20,\r\n },\r\n \"> .MuiDataGrid-columnHeader ~ .MuiDataGrid-columnHeader\": {\r\n paddingLeft: 10,\r\n },\r\n \"& .MuiDataGrid-columnHeaderCheckbox\": {\r\n paddingLeft: 14,\r\n },\r\n }),\r\n columnHeaders: () => ({\r\n backgroundColor: theme.palette.purpleDark.dark,\r\n borderRadius: 0,\r\n }),\r\n columnHeader: () => ({\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n }),\r\n row: ({ theme }) => ({\r\n borderBottom: `1px solid ${theme.palette.purpleDark.dark}`,\r\n \"> div:first-of-type\": {\r\n paddingLeft: 20,\r\n },\r\n \"&:hover\": {\r\n backgroundColor: \"#F8F5FF\",\r\n },\r\n }),\r\n cell: ({ theme }) => ({\r\n fontSize: 14,\r\n color: theme.palette.grey[600],\r\n border: \"none\",\r\n \"& a\": {\r\n color: theme.palette.purple.dark,\r\n textDecoration: \"none\",\r\n fontWeight: 500,\r\n },\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n }),\r\n main: ({ theme }) => ({\r\n ...theme.mixins.scrollbar,\r\n }),\r\n filterFormLinkOperatorInput: {\r\n width: \"auto\",\r\n },\r\n filterFormLogicOperatorInput: {\r\n maxWidth: 80,\r\n },\r\n },\r\n },\r\n MuiAutocomplete: {\r\n styleOverrides: {\r\n root: () => ({\r\n \"& .MuiOutlinedInput-root\": {\r\n padding: 0,\r\n \"& .MuiAutocomplete-input\": {\r\n padding: theme.spacing(1.5, 1.5),\r\n },\r\n },\r\n }),\r\n },\r\n },\r\n MuiTextField: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n \".MuiFormHelperText-root\": {\r\n marginLeft: 0,\r\n marginTop: theme.spacing(1),\r\n },\r\n }),\r\n },\r\n },\r\n MuiLink: {\r\n styleOverrides: {\r\n root: ({ theme, ownerState }) => ({\r\n color: theme.palette.purple.main,\r\n fontSize: 14,\r\n lineHeight: \"18px\",\r\n fontWeight: 400,\r\n ...(ownerState.variant === \"body2\" && {\r\n ...theme.typography.body2,\r\n color: theme.palette.purple.main,\r\n }),\r\n }),\r\n },\r\n },\r\n },\r\n});\r\n","const token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nexport default function decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n","export default function splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n","export function includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport function excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n","import decodeComponent from 'decode-uri-component';\nimport splitOnFirst from 'split-on-first';\nimport {includeKeys} from 'filter-obj';\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : (value === null ? value : decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: value.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nexport function extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nexport function parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replace(/\\+/g, ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options));\n\t\tformatter(decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tvalue[key2] = parseValue(value2, options);\n\t\t\t}\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexport function stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {encode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',', ...options};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nexport function parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}),\n\t};\n}\n\nexport function stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nexport function pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nexport function exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage, statusCode) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message, innerErrors) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.innerErrors = innerErrors;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n//# sourceMappingURL=Errors.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n//# sourceMappingURL=HttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n//# sourceMappingURL=Loggers.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"8.0.0\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return !Platform.isNode && typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return typeof process !== \"undefined\" && process.release && process.release.name === \"node\";\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n//# sourceMappingURL=Utils.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { Platform } from \"./Utils\";\r\n/** @private */\r\nexport function configureFetch(obj) {\r\n // Node added a fetch implementation to the global scope starting in v18.\r\n // We need to add a cookie jar in node to be able to share cookies with WebSocket\r\n if (typeof fetch === \"undefined\" || Platform.isNode) {\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n obj._jar = new (require(\"tough-cookie\")).CookieJar();\r\n if (typeof fetch === \"undefined\") {\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n obj._fetchType = require(\"node-fetch\");\r\n }\r\n else {\r\n // Use fetch from Node if available\r\n obj._fetchType = fetch;\r\n }\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n obj._fetchType = require(\"fetch-cookie\")(obj._fetchType, obj._jar);\r\n return true;\r\n }\r\n return false;\r\n}\r\n/** @private */\r\nexport function configureAbortController(obj) {\r\n if (typeof AbortController === \"undefined\") {\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n obj._abortControllerType = require(\"abort-controller\");\r\n return true;\r\n }\r\n return false;\r\n}\r\n/** @private */\r\nexport function getWS() {\r\n return require(\"ws\");\r\n}\r\n/** @private */\r\nexport function getEventSource() {\r\n return require(\"eventsource\");\r\n}\r\n//# sourceMappingURL=DynamicImports.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\nimport { configureAbortController, configureFetch } from \"./DynamicImports\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n // This is how you do \"reference\" arguments\r\n const fetchObj = { _fetchType: undefined, _jar: undefined };\r\n if (configureFetch(fetchObj)) {\r\n this._fetchType = fetchObj._fetchType;\r\n this._jar = fetchObj._jar;\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n this._abortControllerType = AbortController;\r\n const abortObj = { _abortControllerType: this._abortControllerType };\r\n if (configureAbortController(abortObj)) {\r\n this._abortControllerType = abortObj._abortControllerType;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n }\r\n else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n//# sourceMappingURL=FetchHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n }\r\n else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n writeHandshakeRequest(handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n parseHandshakeResponse(data) {\r\n let messageData;\r\n let remainingData;\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n const textData = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n//# sourceMappingURL=HandshakeProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n MessageType[MessageType[\"Ack\"] = 8] = \"Ack\";\r\n MessageType[MessageType[\"Sequence\"] = 9] = \"Sequence\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n//# sourceMappingURL=Subject.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class MessageBuffer {\r\n constructor(protocol, connection, bufferSize) {\r\n this._bufferSize = 100000;\r\n this._messages = [];\r\n this._totalMessageCount = 0;\r\n this._waitForSequenceMessage = false;\r\n // Message IDs start at 1 and always increment by 1\r\n this._nextReceivingSequenceId = 1;\r\n this._latestReceivedSequenceId = 0;\r\n this._bufferedByteCount = 0;\r\n this._reconnectInProgress = false;\r\n this._protocol = protocol;\r\n this._connection = connection;\r\n this._bufferSize = bufferSize;\r\n }\r\n async _send(message) {\r\n const serializedMessage = this._protocol.writeMessage(message);\r\n let backpressurePromise = Promise.resolve();\r\n // Only count invocation messages. Acks, pings, etc. don't need to be resent on reconnect\r\n if (this._isInvocationMessage(message)) {\r\n this._totalMessageCount++;\r\n let backpressurePromiseResolver = () => { };\r\n let backpressurePromiseRejector = () => { };\r\n if (isArrayBuffer(serializedMessage)) {\r\n this._bufferedByteCount += serializedMessage.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount += serializedMessage.length;\r\n }\r\n if (this._bufferedByteCount >= this._bufferSize) {\r\n backpressurePromise = new Promise((resolve, reject) => {\r\n backpressurePromiseResolver = resolve;\r\n backpressurePromiseRejector = reject;\r\n });\r\n }\r\n this._messages.push(new BufferedItem(serializedMessage, this._totalMessageCount, backpressurePromiseResolver, backpressurePromiseRejector));\r\n }\r\n try {\r\n // If this is set it means we are reconnecting or resending\r\n // We don't want to send on a disconnected connection\r\n // And we don't want to send if resend is running since that would mean sending\r\n // this message twice\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(serializedMessage);\r\n }\r\n }\r\n catch {\r\n this._disconnected();\r\n }\r\n await backpressurePromise;\r\n }\r\n _ack(ackMessage) {\r\n let newestAckedMessage = -1;\r\n // Find index of newest message being acked\r\n for (let index = 0; index < this._messages.length; index++) {\r\n const element = this._messages[index];\r\n if (element._id <= ackMessage.sequenceId) {\r\n newestAckedMessage = index;\r\n if (isArrayBuffer(element._message)) {\r\n this._bufferedByteCount -= element._message.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount -= element._message.length;\r\n }\r\n // resolve items that have already been sent and acked\r\n element._resolver();\r\n }\r\n else if (this._bufferedByteCount < this._bufferSize) {\r\n // resolve items that now fall under the buffer limit but haven't been acked\r\n element._resolver();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (newestAckedMessage !== -1) {\r\n // We're removing everything including the message pointed to, so add 1\r\n this._messages = this._messages.slice(newestAckedMessage + 1);\r\n }\r\n }\r\n _shouldProcessMessage(message) {\r\n if (this._waitForSequenceMessage) {\r\n if (message.type !== MessageType.Sequence) {\r\n return false;\r\n }\r\n else {\r\n this._waitForSequenceMessage = false;\r\n return true;\r\n }\r\n }\r\n // No special processing for acks, pings, etc.\r\n if (!this._isInvocationMessage(message)) {\r\n return true;\r\n }\r\n const currentId = this._nextReceivingSequenceId;\r\n this._nextReceivingSequenceId++;\r\n if (currentId <= this._latestReceivedSequenceId) {\r\n if (currentId === this._latestReceivedSequenceId) {\r\n // Should only hit this if we just reconnected and the server is sending\r\n // Messages it has buffered, which would mean it hasn't seen an Ack for these messages\r\n this._ackTimer();\r\n }\r\n // Ignore, this is a duplicate message\r\n return false;\r\n }\r\n this._latestReceivedSequenceId = currentId;\r\n // Only start the timer for sending an Ack message when we have a message to ack. This also conveniently solves\r\n // timer throttling by not having a recursive timer, and by starting the timer via a network call (recv)\r\n this._ackTimer();\r\n return true;\r\n }\r\n _resetSequence(message) {\r\n if (message.sequenceId > this._nextReceivingSequenceId) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._connection.stop(new Error(\"Sequence ID greater than amount of messages we've received.\"));\r\n return;\r\n }\r\n this._nextReceivingSequenceId = message.sequenceId;\r\n }\r\n _disconnected() {\r\n this._reconnectInProgress = true;\r\n this._waitForSequenceMessage = true;\r\n }\r\n async _resend() {\r\n const sequenceId = this._messages.length !== 0\r\n ? this._messages[0]._id\r\n : this._totalMessageCount + 1;\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Sequence, sequenceId }));\r\n // Get a local variable to the _messages, just in case messages are acked while resending\r\n // Which would slice the _messages array (which creates a new copy)\r\n const messages = this._messages;\r\n for (const element of messages) {\r\n await this._connection.send(element._message);\r\n }\r\n this._reconnectInProgress = false;\r\n }\r\n _dispose(error) {\r\n error !== null && error !== void 0 ? error : (error = new Error(\"Unable to reconnect to server.\"));\r\n // Unblock backpressure if any\r\n for (const element of this._messages) {\r\n element._rejector(error);\r\n }\r\n }\r\n _isInvocationMessage(message) {\r\n // There is no way to check if something implements an interface.\r\n // So we individually check the messages in a switch statement.\r\n // To make sure we don't miss any message types we rely on the compiler\r\n // seeing the function returns a value and it will do the\r\n // exhaustive check for us on the switch statement, since we don't use 'case default'\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n case MessageType.StreamInvocation:\r\n case MessageType.CancelInvocation:\r\n return true;\r\n case MessageType.Close:\r\n case MessageType.Sequence:\r\n case MessageType.Ping:\r\n case MessageType.Ack:\r\n return false;\r\n }\r\n }\r\n _ackTimer() {\r\n if (this._ackTimerHandle === undefined) {\r\n this._ackTimerHandle = setTimeout(async () => {\r\n try {\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Ack, sequenceId: this._latestReceivedSequenceId }));\r\n }\r\n // Ignore errors, that means the connection is closed and we don't care about the Ack message anymore.\r\n }\r\n catch { }\r\n clearTimeout(this._ackTimerHandle);\r\n this._ackTimerHandle = undefined;\r\n // 1 second delay so we don't spam Ack messages if there are many messages being received at once.\r\n }, 1000);\r\n }\r\n }\r\n}\r\nclass BufferedItem {\r\n constructor(message, id, resolver, rejector) {\r\n this._message = message;\r\n this._id = id;\r\n this._resolver = resolver;\r\n this._rejector = rejector;\r\n }\r\n}\r\n//# sourceMappingURL=MessageBuffer.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nimport { MessageBuffer } from \"./MessageBuffer\";\r\nconst DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\nconst DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE = 100000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[\"Disconnected\"] = \"Disconnected\";\r\n /** The hub connection is connecting. */\r\n HubConnectionState[\"Connecting\"] = \"Connecting\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[\"Connected\"] = \"Connected\";\r\n /** The hub connection is disconnecting. */\r\n HubConnectionState[\"Disconnecting\"] = \"Disconnecting\";\r\n /** The hub connection is reconnecting. */\r\n HubConnectionState[\"Reconnecting\"] = \"Reconnecting\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n static create(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize);\r\n }\r\n constructor(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n this._nextKeepAlive = 0;\r\n this._freezeEventListener = () => {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = serverTimeoutInMilliseconds !== null && serverTimeoutInMilliseconds !== void 0 ? serverTimeoutInMilliseconds : DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = keepAliveIntervalInMilliseconds !== null && keepAliveIntervalInMilliseconds !== void 0 ? keepAliveIntervalInMilliseconds : DEFAULT_PING_INTERVAL_IN_MS;\r\n this._statefulReconnectBufferSize = statefulReconnectBufferSize !== null && statefulReconnectBufferSize !== void 0 ? statefulReconnectBufferSize : DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE;\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = (data) => this._processIncomingData(data);\r\n this.connection.onclose = (error) => this._connectionClosed(error);\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state() {\r\n return this._connectionState;\r\n }\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId() {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl() {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n this.connection.baseUrl = url;\r\n }\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n start() {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n async _startWithStateTransitions() {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n try {\r\n await this._startInternal();\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n }\r\n catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n await this.connection.start(this._protocol.transferFormat);\r\n try {\r\n let version = this._protocol.version;\r\n if (!this.connection.features.reconnect) {\r\n // Stateful Reconnect starts with HubProtocol version 2, newer clients connecting to older servers will fail to connect due to\r\n // the handshake only supporting version 1, so we will try to send version 1 during the handshake to keep old servers working.\r\n version = 1;\r\n }\r\n const handshakeRequest = {\r\n protocol: this._protocol.name,\r\n version,\r\n };\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n await handshakePromise;\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n const useStatefulReconnect = this.connection.features.reconnect || false;\r\n if (useStatefulReconnect) {\r\n this._messageBuffer = new MessageBuffer(this._protocol, this.connection, this._statefulReconnectBufferSize);\r\n this.connection.features.disconnected = this._messageBuffer._disconnected.bind(this._messageBuffer);\r\n this.connection.features.resend = () => {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._resend();\r\n }\r\n };\r\n }\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n async stop() {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this.connection.features.reconnect = false;\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n _stopInternal(error) {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n const state = this._connectionState;\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n if (state === HubConnectionState.Connected) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._sendCloseMessage();\r\n }\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n async _sendCloseMessage() {\r\n try {\r\n await this._sendWithProtocol(this._createCloseMessage());\r\n }\r\n catch {\r\n // Ignore, this is a best effort attempt to let the server know the client closed gracefully.\r\n }\r\n }\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n stream(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue;\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n return subject;\r\n }\r\n _sendMessage(message) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n _sendWithProtocol(message) {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._send(message);\r\n }\r\n else {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n send(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n this._launchStreams(streams, sendPromise);\r\n return sendPromise;\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n invoke(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n return p;\r\n }\r\n on(methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this._methods[methodName].push(newMethod);\r\n }\r\n off(methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n onclose(callback) {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n onreconnecting(callback) {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n onreconnected(callback) {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n _processIncomingData(data) {\r\n this._cleanupTimeout();\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n for (const message of messages) {\r\n if (this._messageBuffer && !this._messageBuffer._shouldProcessMessage(message)) {\r\n // Don't process the message, we are either waiting for a SequenceMessage or received a duplicate message\r\n continue;\r\n }\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n }\r\n else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n break;\r\n }\r\n case MessageType.Ack:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._ack(message);\r\n }\r\n break;\r\n case MessageType.Sequence:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._resetSequence(message);\r\n }\r\n break;\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n this._resetTimeoutPeriod();\r\n }\r\n _processHandshakeResponse(data) {\r\n let responseMessage;\r\n let remainingData;\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n }\r\n catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n this._cleanupPingTimer();\r\n }\r\n _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined) {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n async _invokeClientMethod(invocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n }\r\n catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `${exception}`, null);\r\n }\r\n else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, null, res);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n _connectionClosed(error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n _completeClose(error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (this._messageBuffer) {\r\n this._messageBuffer._dispose(error !== null && error !== void 0 ? error : new Error(\"Connection closed.\"));\r\n this._messageBuffer = undefined;\r\n }\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n async _reconnect(error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n try {\r\n await this._startInternal();\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n return;\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n this._completeClose();\r\n }\r\n _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {\r\n try {\r\n return this._reconnectPolicy.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n _cancelCallbacksWithError(error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n _cleanupPingTimer() {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n _cleanupTimeout() {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n _createInvocation(methodName, args, nonblocking, streamIds) {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n _launchStreams(streams, promiseQueue) {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n }\r\n else if (err && err.toString) {\r\n message = err.toString();\r\n }\r\n else {\r\n message = \"Unknown error\";\r\n }\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n _replaceStreamingParams(args) {\r\n const streams = [];\r\n const streamIds = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n return [streams, streamIds];\r\n }\r\n _isObservable(arg) {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n _createStreamInvocation(methodName, args, streamIds) {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n _createCancelInvocation(id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n _createStreamItemMessage(id, item) {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n _createCompletionMessage(id, error, result) {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n _createCloseMessage() {\r\n return { type: MessageType.Close };\r\n }\r\n}\r\n//# sourceMappingURL=HubConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n//# sourceMappingURL=DefaultReconnectPolicy.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n//# sourceMappingURL=HeaderNames.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n constructor(innerClient, accessTokenFactory) {\r\n super();\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n async send(request) {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n _setAuthorizationHeader(request) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`;\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n getCookieString(url) {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=AccessTokenHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n//# sourceMappingURL=AbortController.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n constructor(httpClient, logger, options) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n let error;\r\n try {\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n }\r\n catch (err) {\r\n error = err;\r\n }\r\n if (error) {\r\n if (error instanceof HttpError) {\r\n if (error.statusCode === 404) {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) A 404 response was returned from sending a DELETE request.\");\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Error sending a DELETE request: ${error}`);\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request accepted.\");\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessToken, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n let token;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { getEventSource, getWS } from \"./DynamicImports\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n webSocketModule = getWS();\r\n eventSourceModule = getEventSource();\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* ConnectionState.Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new AbortError(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* ConnectionState.Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */ || this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* ConnectionState.Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n if (negotiateResponse.useStatefulReconnect && this._options._useStatefulReconnect !== true) {\r\n return Promise.reject(new FailedToNegotiateWithServerError(\"Client didn't negotiate Stateful Reconnect but the server did.\"));\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, (negotiate === null || negotiate === void 0 ? void 0 : negotiate.useStatefulReconnect) === true);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* ConnectionState.Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n if (this.features.reconnect) {\r\n this.transport.onclose = async (e) => {\r\n let callStop = false;\r\n if (this.features.reconnect) {\r\n try {\r\n this.features.disconnected();\r\n await this.transport.connect(url, transferFormat);\r\n await this.features.resend();\r\n }\r\n catch {\r\n callStop = true;\r\n }\r\n }\r\n else {\r\n this._stopConnection(e);\r\n return;\r\n }\r\n if (callStop) {\r\n this._stopConnection(e);\r\n }\r\n };\r\n }\r\n else {\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n }\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, useStatefulReconnect) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n this.features.reconnect = transport === HttpTransportType.WebSockets ? useStatefulReconnect : undefined;\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const negotiateUrl = new URL(url);\r\n if (negotiateUrl.pathname.endsWith('/')) {\r\n negotiateUrl.pathname += \"negotiate\";\r\n }\r\n else {\r\n negotiateUrl.pathname += \"/negotiate\";\r\n }\r\n const searchParams = new URLSearchParams(negotiateUrl.searchParams);\r\n if (!searchParams.has(\"negotiateVersion\")) {\r\n searchParams.append(\"negotiateVersion\", this._negotiateVersion.toString());\r\n }\r\n if (searchParams.has(\"useStatefulReconnect\")) {\r\n if (searchParams.get(\"useStatefulReconnect\") === \"true\") {\r\n this._options._useStatefulReconnect = true;\r\n }\r\n }\r\n else if (this._options._useStatefulReconnect === true) {\r\n searchParams.append(\"useStatefulReconnect\", \"true\");\r\n }\r\n negotiateUrl.search = searchParams.toString();\r\n return negotiateUrl.toString();\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 2;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n case MessageType.Ack:\r\n this._isAckMessage(parsedMessage);\r\n break;\r\n case MessageType.Sequence:\r\n this._isSequenceMessage(parsedMessage);\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _isAckMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Ack message.\");\r\n }\r\n }\r\n _isSequenceMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Sequence message.\");\r\n }\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.serverTimeoutInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withServerTimeout(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._serverTimeoutInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.keepAliveIntervalInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withKeepAliveInterval(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._keepAliveIntervalInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Enables and configures options for the Stateful Reconnect feature.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withStatefulReconnect(options) {\r\n if (this.httpConnectionOptions === undefined) {\r\n this.httpConnectionOptions = {};\r\n }\r\n this.httpConnectionOptions._useStatefulReconnect = true;\r\n this._statefulReconnectBufferSize = options === null || options === void 0 ? void 0 : options.bufferSize;\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy, this._serverTimeoutInMilliseconds, this._keepAliveIntervalInMilliseconds, this._statefulReconnectBufferSize);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","import React from \"react\";\r\nimport { authService, logErrorsService } from \"../core\";\r\n\r\nexport const signalRAutoStartAndCleanUp = connection => {\r\n const start = async () => {\r\n if (authService.getTokenClaim(\"BrandsPay_UserType\") === \"Brands\" && !authService.isTokenExpired()) {\r\n try {\r\n console.log(\"signalR: \", \"Connecting\");\r\n await connection?.start();\r\n console.log(\"signalR: \", \"Connected\");\r\n logErrorsService.info('signalR Connected.');\r\n return;\r\n } catch (err) {\r\n logErrorsService.error(`signalR: Error. isUserAuthenticated: ${authService.isUserAuthenticated()}`, err);\r\n if (!authService.isUserAuthenticated()) {\r\n shouldAutoStart = false;\r\n }\r\n }\r\n }\r\n setTimeout(() => start(), 5000);\r\n };\r\n\r\n let shouldAutoStart = true;\r\n connection?.onclose(function (error) {\r\n logErrorsService.info(`signalR: onclose. shouldAutoStart: ${shouldAutoStart}`, error);\r\n if (shouldAutoStart) {\r\n start();\r\n }\r\n });\r\n\r\n \r\n start();\r\n\r\n return function cleanUp() {\r\n console.log(\"signalR: \", \"cleanUp\");\r\n shouldAutoStart = false;\r\n try {\r\n connection?.stop();\r\n } catch (err) {\r\n logErrorsService.error(\"Error in cleaUp\", err);\r\n }\r\n };\r\n};\r\n\r\nexport const SignalRContext = React.createContext(null);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { authService, logErrorsService, urlHelpers } from \"./core\";\r\nimport { selectCpaClient } from \"./redux/ducks/appDuck\";\r\nimport querystring from \"query-string\";\r\nimport { HttpTransportType, HubConnectionBuilder } from \"@microsoft/signalr\";\r\nimport { signalRAutoStartAndCleanUp, SignalRContext } from \"./utils/signalR\";\r\nimport { useLocation } from \"react-router\";\r\nimport ErrorBoundary from \"./containers/ErrorBoundary\";\r\nimport { localStorageSyncApi } from \"./core/localStorageSyncApi\";\r\nimport { sessionStorageSyncApi } from \"./core/sessionStorageSyncApi\";\r\nimport { useAppState } from \"@/states/app-state\";\r\n\r\nfunction SignalRProvider(props) {\r\n const profile = useAppState((state) => state.profile);\r\n const selectedCpaClientId = useSelector(selectCpaClient);\r\n const [signalRConnection, setSignalRConnection] = useState();\r\n const location = useLocation();\r\n\r\n const companyId = profile && profile.conum;\r\n const employeeCompanyNumber =\r\n profile &&\r\n profile.employee &&\r\n profile.employee.empConum &&\r\n parseInt(profile.employee.empConum, 10);\r\n const employeeNumber =\r\n profile && profile.employee && profile.employee.empnum && parseInt(profile.employee.empnum, 10);\r\n const version = profile && profile.version;\r\n\r\n // SignalR\r\n useEffect(() => {\r\n try {\r\n const conumOrCpa = authService.isCpaUser() ? selectedCpaClientId : companyId;\r\n const qsData = {\r\n conum: conumOrCpa,\r\n empConum: employeeCompanyNumber,\r\n empnum: employeeNumber,\r\n version,\r\n reactAppVersion: process.env.REACT_APP_VERSION,\r\n jwtGuid: authService.getJwtGuid(),\r\n currentUrl: location.pathname,\r\n bfp: localStorageSyncApi.getOrSetBfp(),\r\n sfp: sessionStorageSyncApi.getOrSetSfp(),\r\n };\r\n const qs = querystring.stringify(qsData);\r\n const connection = new HubConnectionBuilder()\r\n .withUrl(urlHelpers.getAbsoluteURL(`/hub/Main?${qs}`), {\r\n skipNegotiation: true,\r\n transport: HttpTransportType.WebSockets,\r\n accessTokenFactory: () => authService.getToken(),\r\n })\r\n .configureLogging(\"warn\")\r\n .build();\r\n\r\n const userId = authService.isUserAuthenticated();\r\n if (conumOrCpa && userId) {\r\n setSignalRConnection(connection);\r\n return signalRAutoStartAndCleanUp(connection);\r\n }\r\n } catch (err) {\r\n logErrorsService.error(\"Error connecting signalR\");\r\n }\r\n }, [companyId, selectedCpaClientId]);\r\n\r\n return (\r\n {props.children}\r\n );\r\n}\r\n\r\nconst WrappedSignalRProvider = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default WrappedSignalRProvider;\r\n","import useThemeProps from '../styles/useThemeProps';\nexport { default as styled } from '../styles/styled';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function createUseThemeProps(name) {\n return useThemeProps;\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"elementType\", \"ownerState\", \"externalForwardedProps\", \"getSlotOwnerState\", \"internalForwardedProps\"],\n _excluded2 = [\"component\", \"slots\", \"slotProps\"],\n _excluded3 = [\"component\"];\nimport useForkRef from '@mui/utils/useForkRef';\nimport { appendOwnerState, resolveComponentProps, mergeSlotProps } from '@mui/base/utils';\n/**\n * An internal function to create a Material UI slot.\n *\n * This is an advanced version of Base UI `useSlotProps` because Material UI allows leaf component to be customized via `component` prop\n * while Base UI does not need to support leaf component customization.\n *\n * @param {string} name: name of the slot\n * @param {object} parameters\n * @returns {[Slot, slotProps]} The slot's React component and the slot's props\n *\n * Note: the returned slot's props\n * - will never contain `component` prop.\n * - might contain `as` prop.\n */\nexport default function useSlot(\n/**\n * The slot's name. All Material UI components should have `root` slot.\n *\n * If the name is `root`, the logic behaves differently from other slots,\n * e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.\n */\nname, parameters) {\n const {\n className,\n elementType: initialElementType,\n ownerState,\n externalForwardedProps,\n getSlotOwnerState,\n internalForwardedProps\n } = parameters,\n useSlotPropsParams = _objectWithoutPropertiesLoose(parameters, _excluded);\n const {\n component: rootComponent,\n slots = {\n [name]: undefined\n },\n slotProps = {\n [name]: undefined\n }\n } = externalForwardedProps,\n other = _objectWithoutPropertiesLoose(externalForwardedProps, _excluded2);\n const elementType = slots[name] || initialElementType;\n\n // `slotProps[name]` can be a callback that receives the component's ownerState.\n // `resolvedComponentsProps` is always a plain object.\n const resolvedComponentsProps = resolveComponentProps(slotProps[name], ownerState);\n const _mergeSlotProps = mergeSlotProps(_extends({\n className\n }, useSlotPropsParams, {\n externalForwardedProps: name === 'root' ? other : undefined,\n externalSlotProps: resolvedComponentsProps\n })),\n {\n props: {\n component: slotComponent\n },\n internalRef\n } = _mergeSlotProps,\n mergedProps = _objectWithoutPropertiesLoose(_mergeSlotProps.props, _excluded3);\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, parameters.ref);\n const slotOwnerState = getSlotOwnerState ? getSlotOwnerState(mergedProps) : {};\n const finalOwnerState = _extends({}, ownerState, slotOwnerState);\n const LeafComponent = name === 'root' ? slotComponent || rootComponent : slotComponent;\n const props = appendOwnerState(elementType, _extends({}, name === 'root' && !rootComponent && !slots[name] && internalForwardedProps, name !== 'root' && !slots[name] && internalForwardedProps, mergedProps, LeafComponent && {\n as: LeafComponent\n }, {\n ref\n }), finalOwnerState);\n Object.keys(slotOwnerState).forEach(propName => {\n delete props[propName];\n });\n return [elementType, props];\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAlertUtilityClass(slot) {\n return generateUtilityClass('MuiAlert', slot);\n}\nconst alertClasses = generateUtilityClasses('MuiAlert', ['root', 'action', 'icon', 'message', 'filled', 'colorSuccess', 'colorInfo', 'colorWarning', 'colorError', 'filledSuccess', 'filledInfo', 'filledWarning', 'filledError', 'outlined', 'outlinedSuccess', 'outlinedInfo', 'outlinedWarning', 'outlinedError', 'standard', 'standardSuccess', 'standardInfo', 'standardWarning', 'standardError']);\nexport default alertClasses;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z\"\n}), 'SuccessOutlined');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\"\n}), 'ReportProblemOutlined');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'ErrorOutline');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z\"\n}), 'InfoOutlined');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n *\n * Alias to `Clear`.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"action\", \"children\", \"className\", \"closeText\", \"color\", \"components\", \"componentsProps\", \"icon\", \"iconMapping\", \"onClose\", \"role\", \"severity\", \"slotProps\", \"slots\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { darken, lighten } from '@mui/system/colorManipulator';\nimport { styled, createUseThemeProps } from '../zero-styled';\nimport useSlot from '../utils/useSlot';\nimport capitalize from '../utils/capitalize';\nimport Paper from '../Paper';\nimport alertClasses, { getAlertUtilityClass } from './alertClasses';\nimport IconButton from '../IconButton';\nimport SuccessOutlinedIcon from '../internal/svg-icons/SuccessOutlined';\nimport ReportProblemOutlinedIcon from '../internal/svg-icons/ReportProblemOutlined';\nimport ErrorOutlineIcon from '../internal/svg-icons/ErrorOutline';\nimport InfoOutlinedIcon from '../internal/svg-icons/InfoOutlined';\nimport CloseIcon from '../internal/svg-icons/Close';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useThemeProps = createUseThemeProps('MuiAlert');\nconst useUtilityClasses = ownerState => {\n const {\n variant,\n color,\n severity,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color || severity)}`, `${variant}${capitalize(color || severity)}`, `${variant}`],\n icon: ['icon'],\n message: ['message'],\n action: ['action']\n };\n return composeClasses(slots, getAlertUtilityClass, classes);\n};\nconst AlertRoot = styled(Paper, {\n name: 'MuiAlert',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`${ownerState.variant}${capitalize(ownerState.color || ownerState.severity)}`]];\n }\n})(({\n theme\n}) => {\n const getColor = theme.palette.mode === 'light' ? darken : lighten;\n const getBackgroundColor = theme.palette.mode === 'light' ? lighten : darken;\n return _extends({}, theme.typography.body2, {\n backgroundColor: 'transparent',\n display: 'flex',\n padding: '6px 16px',\n variants: [...Object.entries(theme.palette).filter(([, value]) => value.main && value.light).map(([color]) => ({\n props: {\n colorSeverity: color,\n variant: 'standard'\n },\n style: {\n color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),\n backgroundColor: theme.vars ? theme.vars.palette.Alert[`${color}StandardBg`] : getBackgroundColor(theme.palette[color].light, 0.9),\n [`& .${alertClasses.icon}`]: theme.vars ? {\n color: theme.vars.palette.Alert[`${color}IconColor`]\n } : {\n color: theme.palette[color].main\n }\n }\n })), ...Object.entries(theme.palette).filter(([, value]) => value.main && value.light).map(([color]) => ({\n props: {\n colorSeverity: color,\n variant: 'outlined'\n },\n style: {\n color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),\n border: `1px solid ${(theme.vars || theme).palette[color].light}`,\n [`& .${alertClasses.icon}`]: theme.vars ? {\n color: theme.vars.palette.Alert[`${color}IconColor`]\n } : {\n color: theme.palette[color].main\n }\n }\n })), ...Object.entries(theme.palette).filter(([, value]) => value.main && value.dark).map(([color]) => ({\n props: {\n colorSeverity: color,\n variant: 'filled'\n },\n style: _extends({\n fontWeight: theme.typography.fontWeightMedium\n }, theme.vars ? {\n color: theme.vars.palette.Alert[`${color}FilledColor`],\n backgroundColor: theme.vars.palette.Alert[`${color}FilledBg`]\n } : {\n backgroundColor: theme.palette.mode === 'dark' ? theme.palette[color].dark : theme.palette[color].main,\n color: theme.palette.getContrastText(theme.palette[color].main)\n })\n }))]\n });\n});\nconst AlertIcon = styled('div', {\n name: 'MuiAlert',\n slot: 'Icon',\n overridesResolver: (props, styles) => styles.icon\n})({\n marginRight: 12,\n padding: '7px 0',\n display: 'flex',\n fontSize: 22,\n opacity: 0.9\n});\nconst AlertMessage = styled('div', {\n name: 'MuiAlert',\n slot: 'Message',\n overridesResolver: (props, styles) => styles.message\n})({\n padding: '8px 0',\n minWidth: 0,\n overflow: 'auto'\n});\nconst AlertAction = styled('div', {\n name: 'MuiAlert',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n display: 'flex',\n alignItems: 'flex-start',\n padding: '4px 0 0 16px',\n marginLeft: 'auto',\n marginRight: -8\n});\nconst defaultIconMapping = {\n success: /*#__PURE__*/_jsx(SuccessOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n warning: /*#__PURE__*/_jsx(ReportProblemOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n error: /*#__PURE__*/_jsx(ErrorOutlineIcon, {\n fontSize: \"inherit\"\n }),\n info: /*#__PURE__*/_jsx(InfoOutlinedIcon, {\n fontSize: \"inherit\"\n })\n};\nconst Alert = /*#__PURE__*/React.forwardRef(function Alert(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAlert'\n });\n const {\n action,\n children,\n className,\n closeText = 'Close',\n color,\n components = {},\n componentsProps = {},\n icon,\n iconMapping = defaultIconMapping,\n onClose,\n role = 'alert',\n severity = 'success',\n slotProps = {},\n slots = {},\n variant = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n severity,\n variant,\n colorSeverity: color || severity\n });\n const classes = useUtilityClasses(ownerState);\n const externalForwardedProps = {\n slots: _extends({\n closeButton: components.CloseButton,\n closeIcon: components.CloseIcon\n }, slots),\n slotProps: _extends({}, componentsProps, slotProps)\n };\n const [CloseButtonSlot, closeButtonProps] = useSlot('closeButton', {\n elementType: IconButton,\n externalForwardedProps,\n ownerState\n });\n const [CloseIconSlot, closeIconProps] = useSlot('closeIcon', {\n elementType: CloseIcon,\n externalForwardedProps,\n ownerState\n });\n return /*#__PURE__*/_jsxs(AlertRoot, _extends({\n role: role,\n elevation: 0,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: [icon !== false ? /*#__PURE__*/_jsx(AlertIcon, {\n ownerState: ownerState,\n className: classes.icon,\n children: icon || iconMapping[severity] || defaultIconMapping[severity]\n }) : null, /*#__PURE__*/_jsx(AlertMessage, {\n ownerState: ownerState,\n className: classes.message,\n children: children\n }), action != null ? /*#__PURE__*/_jsx(AlertAction, {\n ownerState: ownerState,\n className: classes.action,\n children: action\n }) : null, action == null && onClose ? /*#__PURE__*/_jsx(AlertAction, {\n ownerState: ownerState,\n className: classes.action,\n children: /*#__PURE__*/_jsx(CloseButtonSlot, _extends({\n size: \"small\",\n \"aria-label\": closeText,\n title: closeText,\n color: \"inherit\",\n onClick: onClose\n }, closeButtonProps, {\n children: /*#__PURE__*/_jsx(CloseIconSlot, _extends({\n fontSize: \"small\"\n }, closeIconProps))\n }))\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Alert.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The action to display. It renders after the message, at the end of the alert.\n */\n action: PropTypes.node,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Override the default label for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Close'\n */\n closeText: PropTypes.string,\n /**\n * The color of the component. Unless provided, the value is taken from the `severity` prop.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).\n *\n * @default {}\n */\n components: PropTypes.shape({\n CloseButton: PropTypes.elementType,\n CloseIcon: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n closeButton: PropTypes.object,\n closeIcon: PropTypes.object\n }),\n /**\n * Override the icon displayed before the children.\n * Unless provided, the icon is mapped to the value of the `severity` prop.\n * Set to `false` to remove the `icon`.\n */\n icon: PropTypes.node,\n /**\n * The component maps the `severity` prop to a range of different icons,\n * for instance success to ``.\n * If you wish to change this mapping, you can provide your own.\n * Alternatively, you can use the `icon` prop to override the icon displayed.\n */\n iconMapping: PropTypes.shape({\n error: PropTypes.node,\n info: PropTypes.node,\n success: PropTypes.node,\n warning: PropTypes.node\n }),\n /**\n * Callback fired when the component requests to be closed.\n * When provided and no `action` prop is set, a close icon button is displayed that triggers the callback when clicked.\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onClose: PropTypes.func,\n /**\n * The ARIA role attribute of the element.\n * @default 'alert'\n */\n role: PropTypes.string,\n /**\n * The severity of the alert. This defines the color and icon used.\n * @default 'success'\n */\n severity: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n closeButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n closeIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n closeButton: PropTypes.elementType,\n closeIcon: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['filled', 'outlined', 'standard']), PropTypes.string])\n} : void 0;\nexport default Alert;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAlertTitleUtilityClass(slot) {\n return generateUtilityClass('MuiAlertTitle', slot);\n}\nconst alertTitleClasses = generateUtilityClasses('MuiAlertTitle', ['root']);\nexport default alertTitleClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled, createUseThemeProps } from '../zero-styled';\nimport Typography from '../Typography';\nimport { getAlertTitleUtilityClass } from './alertTitleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useThemeProps = createUseThemeProps('MuiAlertTitle');\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getAlertTitleUtilityClass, classes);\n};\nconst AlertTitleRoot = styled(Typography, {\n name: 'MuiAlertTitle',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => {\n return {\n fontWeight: theme.typography.fontWeightMedium,\n marginTop: -2\n };\n});\nconst AlertTitle = /*#__PURE__*/React.forwardRef(function AlertTitle(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAlertTitle'\n });\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AlertTitleRoot, _extends({\n gutterBottom: true,\n component: \"div\",\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AlertTitle.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AlertTitle;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAppBarUtilityClass(slot) {\n return generateUtilityClass('MuiAppBar', slot);\n}\nconst appBarClasses = generateUtilityClasses('MuiAppBar', ['root', 'positionFixed', 'positionAbsolute', 'positionSticky', 'positionStatic', 'positionRelative', 'colorDefault', 'colorPrimary', 'colorSecondary', 'colorInherit', 'colorTransparent', 'colorError', 'colorInfo', 'colorSuccess', 'colorWarning']);\nexport default appBarClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"enableColorOnDark\", \"position\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport Paper from '../Paper';\nimport { getAppBarUtilityClass } from './appBarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n position,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, `position${capitalize(position)}`]\n };\n return composeClasses(slots, getAppBarUtilityClass, classes);\n};\n\n// var2 is the fallback.\n// Ex. var1: 'var(--a)', var2: 'var(--b)'; return: 'var(--a, var(--b))'\nconst joinVars = (var1, var2) => var1 ? `${var1 == null ? void 0 : var1.replace(')', '')}, ${var2})` : var2;\nconst AppBarRoot = styled(Paper, {\n name: 'MuiAppBar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n const backgroundColorDefault = theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900];\n return _extends({\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n boxSizing: 'border-box',\n // Prevent padding issue with the Modal and fixed positioned AppBar.\n flexShrink: 0\n }, ownerState.position === 'fixed' && {\n position: 'fixed',\n zIndex: (theme.vars || theme).zIndex.appBar,\n top: 0,\n left: 'auto',\n right: 0,\n '@media print': {\n // Prevent the app bar to be visible on each printed page.\n position: 'absolute'\n }\n }, ownerState.position === 'absolute' && {\n position: 'absolute',\n zIndex: (theme.vars || theme).zIndex.appBar,\n top: 0,\n left: 'auto',\n right: 0\n }, ownerState.position === 'sticky' && {\n // ⚠️ sticky is not supported by IE11.\n position: 'sticky',\n zIndex: (theme.vars || theme).zIndex.appBar,\n top: 0,\n left: 'auto',\n right: 0\n }, ownerState.position === 'static' && {\n position: 'static'\n }, ownerState.position === 'relative' && {\n position: 'relative'\n }, !theme.vars && _extends({}, ownerState.color === 'default' && {\n backgroundColor: backgroundColorDefault,\n color: theme.palette.getContrastText(backgroundColorDefault)\n }, ownerState.color && ownerState.color !== 'default' && ownerState.color !== 'inherit' && ownerState.color !== 'transparent' && {\n backgroundColor: theme.palette[ownerState.color].main,\n color: theme.palette[ownerState.color].contrastText\n }, ownerState.color === 'inherit' && {\n color: 'inherit'\n }, theme.palette.mode === 'dark' && !ownerState.enableColorOnDark && {\n backgroundColor: null,\n color: null\n }, ownerState.color === 'transparent' && _extends({\n backgroundColor: 'transparent',\n color: 'inherit'\n }, theme.palette.mode === 'dark' && {\n backgroundImage: 'none'\n })), theme.vars && _extends({}, ownerState.color === 'default' && {\n '--AppBar-background': ownerState.enableColorOnDark ? theme.vars.palette.AppBar.defaultBg : joinVars(theme.vars.palette.AppBar.darkBg, theme.vars.palette.AppBar.defaultBg),\n '--AppBar-color': ownerState.enableColorOnDark ? theme.vars.palette.text.primary : joinVars(theme.vars.palette.AppBar.darkColor, theme.vars.palette.text.primary)\n }, ownerState.color && !ownerState.color.match(/^(default|inherit|transparent)$/) && {\n '--AppBar-background': ownerState.enableColorOnDark ? theme.vars.palette[ownerState.color].main : joinVars(theme.vars.palette.AppBar.darkBg, theme.vars.palette[ownerState.color].main),\n '--AppBar-color': ownerState.enableColorOnDark ? theme.vars.palette[ownerState.color].contrastText : joinVars(theme.vars.palette.AppBar.darkColor, theme.vars.palette[ownerState.color].contrastText)\n }, {\n backgroundColor: 'var(--AppBar-background)',\n color: ownerState.color === 'inherit' ? 'inherit' : 'var(--AppBar-color)'\n }, ownerState.color === 'transparent' && {\n backgroundImage: 'none',\n backgroundColor: 'transparent',\n color: 'inherit'\n }));\n});\nconst AppBar = /*#__PURE__*/React.forwardRef(function AppBar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAppBar'\n });\n const {\n className,\n color = 'primary',\n enableColorOnDark = false,\n position = 'fixed'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n position,\n enableColorOnDark\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AppBarRoot, _extends({\n square: true,\n component: \"header\",\n ownerState: ownerState,\n elevation: 4,\n className: clsx(classes.root, className, position === 'fixed' && 'mui-fixed'),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AppBar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary', 'transparent', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If true, the `color` prop is applied in dark mode.\n * @default false\n */\n enableColorOnDark: PropTypes.bool,\n /**\n * The positioning type. The behavior of the different options is described\n * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).\n * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.\n * @default 'fixed'\n */\n position: PropTypes.oneOf(['absolute', 'fixed', 'relative', 'static', 'sticky']),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AppBar;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAutocompleteUtilityClass(slot) {\n return generateUtilityClass('MuiAutocomplete', slot);\n}\nconst autocompleteClasses = generateUtilityClasses('MuiAutocomplete', ['root', 'expanded', 'fullWidth', 'focused', 'focusVisible', 'tag', 'tagSizeSmall', 'tagSizeMedium', 'hasPopupIcon', 'hasClearIcon', 'inputRoot', 'input', 'inputFocused', 'endAdornment', 'clearIndicator', 'popupIndicator', 'popupIndicatorOpen', 'popper', 'popperDisablePortal', 'paper', 'listbox', 'loading', 'noOptions', 'option', 'groupLabel', 'groupUl']);\nexport default autocompleteClasses;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiAvatar', slot);\n}\nconst avatarClasses = generateUtilityClasses('MuiAvatar', ['root', 'colorDefault', 'circular', 'rounded', 'square', 'img', 'fallback']);\nexport default avatarClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"alt\", \"children\", \"className\", \"component\", \"slots\", \"slotProps\", \"imgProps\", \"sizes\", \"src\", \"srcSet\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled, createUseThemeProps } from '../zero-styled';\nimport Person from '../internal/svg-icons/Person';\nimport { getAvatarUtilityClass } from './avatarClasses';\nimport useSlot from '../utils/useSlot';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useThemeProps = createUseThemeProps('MuiAvatar');\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n colorDefault\n } = ownerState;\n const slots = {\n root: ['root', variant, colorDefault && 'colorDefault'],\n img: ['img'],\n fallback: ['fallback']\n };\n return composeClasses(slots, getAvatarUtilityClass, classes);\n};\nconst AvatarRoot = styled('div', {\n name: 'MuiAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], ownerState.colorDefault && styles.colorDefault];\n }\n})(({\n theme\n}) => ({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: 40,\n height: 40,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(20),\n lineHeight: 1,\n borderRadius: '50%',\n overflow: 'hidden',\n userSelect: 'none',\n variants: [{\n props: {\n variant: 'rounded'\n },\n style: {\n borderRadius: (theme.vars || theme).shape.borderRadius\n }\n }, {\n props: {\n variant: 'square'\n },\n style: {\n borderRadius: 0\n }\n }, {\n props: {\n colorDefault: true\n },\n style: _extends({\n color: (theme.vars || theme).palette.background.default\n }, theme.vars ? {\n backgroundColor: theme.vars.palette.Avatar.defaultBg\n } : _extends({\n backgroundColor: theme.palette.grey[400]\n }, theme.applyStyles('dark', {\n backgroundColor: theme.palette.grey[600]\n })))\n }]\n}));\nconst AvatarImg = styled('img', {\n name: 'MuiAvatar',\n slot: 'Img',\n overridesResolver: (props, styles) => styles.img\n})({\n width: '100%',\n height: '100%',\n textAlign: 'center',\n // Handle non-square image. The property isn't supported by IE11.\n objectFit: 'cover',\n // Hide alt text.\n color: 'transparent',\n // Hide the image broken icon, only works on Chrome.\n textIndent: 10000\n});\nconst AvatarFallback = styled(Person, {\n name: 'MuiAvatar',\n slot: 'Fallback',\n overridesResolver: (props, styles) => styles.fallback\n})({\n width: '75%',\n height: '75%'\n});\nfunction useLoaded({\n crossOrigin,\n referrerPolicy,\n src,\n srcSet\n}) {\n const [loaded, setLoaded] = React.useState(false);\n React.useEffect(() => {\n if (!src && !srcSet) {\n return undefined;\n }\n setLoaded(false);\n let active = true;\n const image = new Image();\n image.onload = () => {\n if (!active) {\n return;\n }\n setLoaded('loaded');\n };\n image.onerror = () => {\n if (!active) {\n return;\n }\n setLoaded('error');\n };\n image.crossOrigin = crossOrigin;\n image.referrerPolicy = referrerPolicy;\n image.src = src;\n if (srcSet) {\n image.srcset = srcSet;\n }\n return () => {\n active = false;\n };\n }, [crossOrigin, referrerPolicy, src, srcSet]);\n return loaded;\n}\nconst Avatar = /*#__PURE__*/React.forwardRef(function Avatar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAvatar'\n });\n const {\n alt,\n children: childrenProp,\n className,\n component = 'div',\n slots = {},\n slotProps = {},\n imgProps,\n sizes,\n src,\n srcSet,\n variant = 'circular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n let children = null;\n\n // Use a hook instead of onError on the img element to support server-side rendering.\n const loaded = useLoaded(_extends({}, imgProps, {\n src,\n srcSet\n }));\n const hasImg = src || srcSet;\n const hasImgNotFailing = hasImg && loaded !== 'error';\n const ownerState = _extends({}, props, {\n colorDefault: !hasImgNotFailing,\n component,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const [ImgSlot, imgSlotProps] = useSlot('img', {\n className: classes.img,\n elementType: AvatarImg,\n externalForwardedProps: {\n slots,\n slotProps: {\n img: _extends({}, imgProps, slotProps.img)\n }\n },\n additionalProps: {\n alt,\n src,\n srcSet,\n sizes\n },\n ownerState\n });\n if (hasImgNotFailing) {\n children = /*#__PURE__*/_jsx(ImgSlot, _extends({}, imgSlotProps));\n // We only render valid children, non valid children are rendered with a fallback\n // We consider that invalid children are all falsy values, except 0, which is valid.\n } else if (!!childrenProp || childrenProp === 0) {\n children = childrenProp;\n } else if (hasImg && alt) {\n children = alt[0];\n } else {\n children = /*#__PURE__*/_jsx(AvatarFallback, {\n ownerState: ownerState,\n className: classes.fallback\n });\n }\n return /*#__PURE__*/_jsx(AvatarRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Avatar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Used in combination with `src` or `srcSet` to\n * provide an alt attribute for the rendered `img` element.\n */\n alt: PropTypes.string,\n /**\n * Used to render icon or text elements inside the Avatar if `src` is not set.\n * This can be an element, or just a string.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attributes) applied to the `img` element if the component is used to display an image.\n * It can be used to listen for the loading error event.\n * @deprecated Use `slotProps.img` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).\n */\n imgProps: PropTypes.object,\n /**\n * The `sizes` attribute for the `img` element.\n */\n sizes: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n img: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n img: PropTypes.elementType\n }),\n /**\n * The `src` attribute for the `img` element.\n */\n src: PropTypes.string,\n /**\n * The `srcSet` attribute for the `img` element.\n * Use this attribute for responsive image display.\n */\n srcSet: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The shape of the avatar.\n * @default 'circular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['circular', 'rounded', 'square']), PropTypes.string])\n} : void 0;\nexport default Avatar;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSwitchBaseUtilityClass(slot) {\n return generateUtilityClass('PrivateSwitchBase', slot);\n}\nconst switchBaseClasses = generateUtilityClasses('PrivateSwitchBase', ['root', 'checked', 'disabled', 'input', 'edgeStart', 'edgeEnd']);\nexport default switchBaseClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"checked\", \"checkedIcon\", \"className\", \"defaultChecked\", \"disabled\", \"disableFocusRipple\", \"edge\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useControlled from '../utils/useControlled';\nimport useFormControl from '../FormControl/useFormControl';\nimport ButtonBase from '../ButtonBase';\nimport { getSwitchBaseUtilityClass } from './switchBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n checked,\n disabled,\n edge\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', edge && `edge${capitalize(edge)}`],\n input: ['input']\n };\n return composeClasses(slots, getSwitchBaseUtilityClass, classes);\n};\nconst SwitchBaseRoot = styled(ButtonBase)(({\n ownerState\n}) => _extends({\n padding: 9,\n borderRadius: '50%'\n}, ownerState.edge === 'start' && {\n marginLeft: ownerState.size === 'small' ? -3 : -12\n}, ownerState.edge === 'end' && {\n marginRight: ownerState.size === 'small' ? -3 : -12\n}));\nconst SwitchBaseInput = styled('input', {\n shouldForwardProp: rootShouldForwardProp\n})({\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n});\n\n/**\n * @ignore - internal component.\n */\nconst SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n const {\n autoFocus,\n checked: checkedProp,\n checkedIcon,\n className,\n defaultChecked,\n disabled: disabledProp,\n disableFocusRipple = false,\n edge = false,\n icon,\n id,\n inputProps,\n inputRef,\n name,\n onBlur,\n onChange,\n onFocus,\n readOnly,\n required = false,\n tabIndex,\n type,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n });\n const muiFormControl = useFormControl();\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n const handleInputChange = event => {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n if (onChange) {\n // TODO v6: remove the second argument.\n onChange(event, newChecked);\n }\n };\n let disabled = disabledProp;\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n const hasLabelFor = type === 'checkbox' || type === 'radio';\n const ownerState = _extends({}, props, {\n checked,\n disabled,\n disableFocusRipple,\n edge\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SwitchBaseRoot, _extends({\n component: \"span\",\n className: clsx(classes.root, className),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SwitchBaseInput, _extends({\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor ? id : undefined,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n ownerState: ownerState,\n tabIndex: tabIndex,\n type: type\n }, type === 'checkbox' && value === undefined ? {} : {\n value\n }, inputProps)), checked ? checkedIcon : icon]\n }));\n});\n\n// NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /*\n * @ignore\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object,\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default SwitchBase;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"disableShrink\", \"size\", \"style\", \"thickness\", \"value\", \"variant\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { keyframes, css } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getCircularProgressUtilityClass } from './circularProgressClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`));\nconst circularDashKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`));\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n display: 'inline-block'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('transform')\n}, ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].main\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && css(_t3 || (_t3 = _`\n animation: ${0} 1.4s linear infinite;\n `), circularRotateKeyframe));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n stroke: 'currentColor'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('stroke-dashoffset')\n}, ownerState.variant === 'indeterminate' && {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink && css(_t4 || (_t4 = _`\n animation: ${0} 1.4s ease-in-out infinite;\n `), circularDashKeyframe));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n return /*#__PURE__*/_jsx(CircularProgressRoot, _extends({\n className: clsx(classes.root, className),\n style: _extends({\n width: size,\n height: size\n }, rootStyle, style),\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\"\n }, rootProps, other, {\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n return null;\n }),\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, for example '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"id\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Typography from '../Typography';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogTitleUtilityClass } from './dialogTitleClasses';\nimport DialogContext from '../Dialog/DialogContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getDialogTitleUtilityClass, classes);\n};\nconst DialogTitleRoot = styled(Typography, {\n name: 'MuiDialogTitle',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: '16px 24px',\n flex: '0 0 auto'\n});\nconst DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogTitle'\n });\n const {\n className,\n id: idProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const {\n titleId = idProp\n } = React.useContext(DialogContext);\n return /*#__PURE__*/_jsx(DialogTitleRoot, _extends({\n component: \"h2\",\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n variant: \"h6\",\n id: idProp != null ? idProp : titleId\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n id: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogTitle;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"container\", \"direction\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport debounce from '../utils/debounce';\nimport useForkRef from '../utils/useForkRef';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport { ownerWindow } from '../utils';\n\n// Translate the node so it can't be seen on the screen.\n// Later, we're going to translate the node back to its original location with `none`.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getTranslateValue(direction, node, resolvedContainer) {\n const rect = node.getBoundingClientRect();\n const containerRect = resolvedContainer && resolvedContainer.getBoundingClientRect();\n const containerWindow = ownerWindow(node);\n let transform;\n if (node.fakeTransform) {\n transform = node.fakeTransform;\n } else {\n const computedStyle = containerWindow.getComputedStyle(node);\n transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n }\n let offsetX = 0;\n let offsetY = 0;\n if (transform && transform !== 'none' && typeof transform === 'string') {\n const transformValues = transform.split('(')[1].split(')')[0].split(',');\n offsetX = parseInt(transformValues[4], 10);\n offsetY = parseInt(transformValues[5], 10);\n }\n if (direction === 'left') {\n if (containerRect) {\n return `translateX(${containerRect.right + offsetX - rect.left}px)`;\n }\n return `translateX(${containerWindow.innerWidth + offsetX - rect.left}px)`;\n }\n if (direction === 'right') {\n if (containerRect) {\n return `translateX(-${rect.right - containerRect.left - offsetX}px)`;\n }\n return `translateX(-${rect.left + rect.width - offsetX}px)`;\n }\n if (direction === 'up') {\n if (containerRect) {\n return `translateY(${containerRect.bottom + offsetY - rect.top}px)`;\n }\n return `translateY(${containerWindow.innerHeight + offsetY - rect.top}px)`;\n }\n\n // direction === 'down'\n if (containerRect) {\n return `translateY(-${rect.top - containerRect.top + rect.height - offsetY}px)`;\n }\n return `translateY(-${rect.top + rect.height - offsetY}px)`;\n}\nfunction resolveContainer(containerPropProp) {\n return typeof containerPropProp === 'function' ? containerPropProp() : containerPropProp;\n}\nexport function setTranslateValue(direction, node, containerProp) {\n const resolvedContainer = resolveContainer(containerProp);\n const transform = getTranslateValue(direction, node, resolvedContainer);\n if (transform) {\n node.style.webkitTransform = transform;\n node.style.transform = transform;\n }\n}\n\n/**\n * The Slide transition is used by the [Drawer](/material-ui/react-drawer/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {\n const theme = useTheme();\n const defaultEasing = {\n enter: theme.transitions.easing.easeOut,\n exit: theme.transitions.easing.sharp\n };\n const defaultTimeout = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n addEndListener,\n appear = true,\n children,\n container: containerProp,\n direction = 'down',\n easing: easingProp = defaultEasing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const childrenRef = React.useRef(null);\n const handleRef = useForkRef(children.ref, childrenRef, ref);\n const normalizedTransitionCallback = callback => isAppearing => {\n if (callback) {\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (isAppearing === undefined) {\n callback(childrenRef.current);\n } else {\n callback(childrenRef.current, isAppearing);\n }\n }\n };\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n setTranslateValue(direction, node, containerProp);\n reflow(node);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', _extends({}, transitionProps));\n node.style.transition = theme.transitions.create('transform', _extends({}, transitionProps));\n node.style.webkitTransform = 'none';\n node.style.transform = 'none';\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', transitionProps);\n node.style.transition = theme.transitions.create('transform', transitionProps);\n setTranslateValue(direction, node, containerProp);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(node => {\n // No need for transitions when the component is hidden\n node.style.webkitTransition = '';\n node.style.transition = '';\n if (onExited) {\n onExited(node);\n }\n });\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(childrenRef.current, next);\n }\n };\n const updatePosition = React.useCallback(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n }, [direction, containerProp]);\n React.useEffect(() => {\n // Skip configuration where the position is screen size invariant.\n if (inProp || direction === 'down' || direction === 'right') {\n return undefined;\n }\n const handleResize = debounce(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n });\n const containerWindow = ownerWindow(childrenRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [direction, inProp, containerProp]);\n React.useEffect(() => {\n if (!inProp) {\n // We need to update the position of the drawer when the direction change and\n // when it's hidden.\n updatePosition();\n }\n }, [inProp, updatePosition]);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n nodeRef: childrenRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n appear: appear,\n in: inProp,\n timeout: timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n ref: handleRef,\n style: _extends({\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, style, children.props.style)\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slide.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * An HTML element, or a function that returns one.\n * It's used to set the container the Slide is transitioning from.\n */\n container: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), props => {\n if (props.open) {\n const resolvedContainer = resolveContainer(props.container);\n if (resolvedContainer && resolvedContainer.nodeType === 1) {\n const box = resolvedContainer.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedContainer || typeof resolvedContainer.getBoundingClientRect !== 'function' || resolvedContainer.contextElement != null && resolvedContainer.contextElement.nodeType !== 1) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'It should be an HTML element instance.'].join('\\n'));\n }\n }\n return null;\n }),\n /**\n * Direction the child node will enter from.\n * @default 'down'\n */\n direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n * @default {\n * enter: theme.transitions.easing.easeOut,\n * exit: theme.transitions.easing.sharp,\n * }\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Slide;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDrawerUtilityClass(slot) {\n return generateUtilityClass('MuiDrawer', slot);\n}\nconst drawerClasses = generateUtilityClasses('MuiDrawer', ['root', 'docked', 'paper', 'paperAnchorLeft', 'paperAnchorRight', 'paperAnchorTop', 'paperAnchorBottom', 'paperAnchorDockedLeft', 'paperAnchorDockedRight', 'paperAnchorDockedTop', 'paperAnchorDockedBottom', 'modal']);\nexport default drawerClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"BackdropProps\"],\n _excluded2 = [\"anchor\", \"BackdropProps\", \"children\", \"className\", \"elevation\", \"hideBackdrop\", \"ModalProps\", \"onClose\", \"open\", \"PaperProps\", \"SlideProps\", \"TransitionComponent\", \"transitionDuration\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport Modal from '../Modal';\nimport Slide from '../Slide';\nimport Paper from '../Paper';\nimport capitalize from '../utils/capitalize';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { getDrawerUtilityClass } from './drawerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, (ownerState.variant === 'permanent' || ownerState.variant === 'persistent') && styles.docked, styles.modal];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n anchor,\n variant\n } = ownerState;\n const slots = {\n root: ['root'],\n docked: [(variant === 'permanent' || variant === 'persistent') && 'docked'],\n modal: ['modal'],\n paper: ['paper', `paperAnchor${capitalize(anchor)}`, variant !== 'temporary' && `paperAnchorDocked${capitalize(anchor)}`]\n };\n return composeClasses(slots, getDrawerUtilityClass, classes);\n};\nconst DrawerRoot = styled(Modal, {\n name: 'MuiDrawer',\n slot: 'Root',\n overridesResolver\n})(({\n theme\n}) => ({\n zIndex: (theme.vars || theme).zIndex.drawer\n}));\nconst DrawerDockedRoot = styled('div', {\n shouldForwardProp: rootShouldForwardProp,\n name: 'MuiDrawer',\n slot: 'Docked',\n skipVariantsResolver: false,\n overridesResolver\n})({\n flex: '0 0 auto'\n});\nconst DrawerPaper = styled(Paper, {\n name: 'MuiDrawer',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`paperAnchor${capitalize(ownerState.anchor)}`], ownerState.variant !== 'temporary' && styles[`paperAnchorDocked${capitalize(ownerState.anchor)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n flex: '1 0 auto',\n zIndex: (theme.vars || theme).zIndex.drawer,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n // temporary style\n position: 'fixed',\n top: 0,\n // We disable the focus ring for mouse, touch and keyboard users.\n // At some point, it would be better to keep it for keyboard users.\n // :focus-ring CSS pseudo-class will help.\n outline: 0\n}, ownerState.anchor === 'left' && {\n left: 0\n}, ownerState.anchor === 'top' && {\n top: 0,\n left: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n}, ownerState.anchor === 'right' && {\n right: 0\n}, ownerState.anchor === 'bottom' && {\n top: 'auto',\n left: 0,\n bottom: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n}, ownerState.anchor === 'left' && ownerState.variant !== 'temporary' && {\n borderRight: `1px solid ${(theme.vars || theme).palette.divider}`\n}, ownerState.anchor === 'top' && ownerState.variant !== 'temporary' && {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n}, ownerState.anchor === 'right' && ownerState.variant !== 'temporary' && {\n borderLeft: `1px solid ${(theme.vars || theme).palette.divider}`\n}, ownerState.anchor === 'bottom' && ownerState.variant !== 'temporary' && {\n borderTop: `1px solid ${(theme.vars || theme).palette.divider}`\n}));\nconst oppositeDirection = {\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up'\n};\nexport function isHorizontal(anchor) {\n return ['left', 'right'].indexOf(anchor) !== -1;\n}\nexport function getAnchor({\n direction\n}, anchor) {\n return direction === 'rtl' && isHorizontal(anchor) ? oppositeDirection[anchor] : anchor;\n}\n\n/**\n * The props of the [Modal](/material-ui/api/modal/) component are available\n * when `variant=\"temporary\"` is set.\n */\nconst Drawer = /*#__PURE__*/React.forwardRef(function Drawer(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDrawer'\n });\n const theme = useTheme();\n const isRtl = useRtl();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n anchor: anchorProp = 'left',\n BackdropProps,\n children,\n className,\n elevation = 16,\n hideBackdrop = false,\n ModalProps: {\n BackdropProps: BackdropPropsProp\n } = {},\n onClose,\n open = false,\n PaperProps = {},\n SlideProps,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Slide,\n transitionDuration = defaultTransitionDuration,\n variant = 'temporary'\n } = props,\n ModalProps = _objectWithoutPropertiesLoose(props.ModalProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n\n // Let's assume that the Drawer will always be rendered on user space.\n // We use this state is order to skip the appear transition during the\n // initial mount of the component.\n const mounted = React.useRef(false);\n React.useEffect(() => {\n mounted.current = true;\n }, []);\n const anchorInvariant = getAnchor({\n direction: isRtl ? 'rtl' : 'ltr'\n }, anchorProp);\n const anchor = anchorProp;\n const ownerState = _extends({}, props, {\n anchor,\n elevation,\n open,\n variant\n }, other);\n const classes = useUtilityClasses(ownerState);\n const drawer = /*#__PURE__*/_jsx(DrawerPaper, _extends({\n elevation: variant === 'temporary' ? elevation : 0,\n square: true\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: children\n }));\n if (variant === 'permanent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, _extends({\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: drawer\n }));\n }\n const slidingDrawer = /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: open,\n direction: oppositeDirection[anchorInvariant],\n timeout: transitionDuration,\n appear: mounted.current\n }, SlideProps, {\n children: drawer\n }));\n if (variant === 'persistent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, _extends({\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: slidingDrawer\n }));\n }\n\n // variant === temporary\n return /*#__PURE__*/_jsx(DrawerRoot, _extends({\n BackdropProps: _extends({}, BackdropProps, BackdropPropsProp, {\n transitionDuration\n }),\n className: clsx(classes.root, classes.modal, className),\n open: open,\n ownerState: ownerState,\n onClose: onClose,\n hideBackdrop: hideBackdrop,\n ref: ref\n }, other, ModalProps, {\n children: slidingDrawer\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Drawer.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Side from which the drawer will appear.\n * @default 'left'\n */\n anchor: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The elevation of the drawer.\n * @default 16\n */\n elevation: integerPropType,\n /**\n * If `true`, the backdrop is not rendered.\n * @default false\n */\n hideBackdrop: PropTypes.bool,\n /**\n * Props applied to the [`Modal`](/material-ui/api/modal/) element.\n * @default {}\n */\n ModalProps: PropTypes.object,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * Props applied to the [`Paper`](/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Props applied to the [`Slide`](/material-ui/api/slide/) element.\n */\n SlideProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * The variant to use.\n * @default 'temporary'\n */\n variant: PropTypes.oneOf(['permanent', 'persistent', 'temporary'])\n} : void 0;\nexport default Drawer;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFormControlLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControlLabel', slot);\n}\nconst formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error', 'required', 'asterisk']);\nexport default formControlLabelClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checked\", \"className\", \"componentsProps\", \"control\", \"disabled\", \"disableTypography\", \"inputRef\", \"label\", \"labelPlacement\", \"name\", \"onChange\", \"required\", \"slotProps\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useFormControl } from '../FormControl';\nimport Stack from '../Stack';\nimport Typography from '../Typography';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport formControlLabelClasses, { getFormControlLabelUtilityClasses } from './formControlLabelClasses';\nimport formControlState from '../FormControl/formControlState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disabled,\n labelPlacement,\n error,\n required\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', `labelPlacement${capitalize(labelPlacement)}`, error && 'error', required && 'required'],\n label: ['label', disabled && 'disabled'],\n asterisk: ['asterisk', error && 'error']\n };\n return composeClasses(slots, getFormControlLabelUtilityClasses, classes);\n};\nexport const FormControlLabelRoot = styled('label', {\n name: 'MuiFormControlLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formControlLabelClasses.label}`]: styles.label\n }, styles.root, styles[`labelPlacement${capitalize(ownerState.labelPlacement)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n WebkitTapHighlightColor: 'transparent',\n marginLeft: -11,\n marginRight: 16,\n // used for row presentation of radio/checkbox\n [`&.${formControlLabelClasses.disabled}`]: {\n cursor: 'default'\n }\n}, ownerState.labelPlacement === 'start' && {\n flexDirection: 'row-reverse',\n marginLeft: 16,\n // used for row presentation of radio/checkbox\n marginRight: -11\n}, ownerState.labelPlacement === 'top' && {\n flexDirection: 'column-reverse',\n marginLeft: 16\n}, ownerState.labelPlacement === 'bottom' && {\n flexDirection: 'column',\n marginLeft: 16\n}, {\n [`& .${formControlLabelClasses.label}`]: {\n [`&.${formControlLabelClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n }\n}));\nconst AsteriskComponent = styled('span', {\n name: 'MuiFormControlLabel',\n slot: 'Asterisk',\n overridesResolver: (props, styles) => styles.asterisk\n})(({\n theme\n}) => ({\n [`&.${formControlLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\n\n/**\n * Drop-in replacement of the `Radio`, `Switch` and `Checkbox` component.\n * Use this component if you want to display an extra label.\n */\nconst FormControlLabel = /*#__PURE__*/React.forwardRef(function FormControlLabel(inProps, ref) {\n var _ref, _slotProps$typography;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormControlLabel'\n });\n const {\n className,\n componentsProps = {},\n control,\n disabled: disabledProp,\n disableTypography,\n label: labelProp,\n labelPlacement = 'end',\n required: requiredProp,\n slotProps = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const disabled = (_ref = disabledProp != null ? disabledProp : control.props.disabled) != null ? _ref : muiFormControl == null ? void 0 : muiFormControl.disabled;\n const required = requiredProp != null ? requiredProp : control.props.required;\n const controlProps = {\n disabled,\n required\n };\n ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(key => {\n if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {\n controlProps[key] = props[key];\n }\n });\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n const ownerState = _extends({}, props, {\n disabled,\n labelPlacement,\n required,\n error: fcs.error\n });\n const classes = useUtilityClasses(ownerState);\n const typographySlotProps = (_slotProps$typography = slotProps.typography) != null ? _slotProps$typography : componentsProps.typography;\n let label = labelProp;\n if (label != null && label.type !== Typography && !disableTypography) {\n label = /*#__PURE__*/_jsx(Typography, _extends({\n component: \"span\"\n }, typographySlotProps, {\n className: clsx(classes.label, typographySlotProps == null ? void 0 : typographySlotProps.className),\n children: label\n }));\n }\n return /*#__PURE__*/_jsxs(FormControlLabelRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/React.cloneElement(control, controlProps), required ? /*#__PURE__*/_jsxs(Stack, {\n display: \"block\",\n children: [label, /*#__PURE__*/_jsxs(AsteriskComponent, {\n ownerState: ownerState,\n \"aria-hidden\": true,\n className: classes.asterisk,\n children: [\"\\u2009\", '*']\n })]\n }) : label]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControlLabel.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component appears selected.\n */\n checked: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n typography: PropTypes.object\n }),\n /**\n * A control element. For instance, it can be a `Radio`, a `Switch` or a `Checkbox`.\n */\n control: PropTypes.element.isRequired,\n /**\n * If `true`, the control is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is rendered as it is passed without an additional typography node.\n */\n disableTypography: PropTypes.bool,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * A text or an element to be used in an enclosing label element.\n */\n label: PropTypes.node,\n /**\n * The position of the label.\n * @default 'end'\n */\n labelPlacement: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n /**\n * @ignore\n */\n name: PropTypes.string,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n typography: PropTypes.object\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default FormControlLabel;","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst GridContext = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n GridContext.displayName = 'GridContext';\n}\nexport default GridContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getGridUtilityClass(slot) {\n return generateUtilityClass('MuiGrid', slot);\n}\nconst SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst DIRECTIONS = ['column-reverse', 'column', 'row-reverse', 'row'];\nconst WRAPS = ['nowrap', 'wrap-reverse', 'wrap'];\nconst GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\nconst gridClasses = generateUtilityClasses('MuiGrid', ['root', 'container', 'item', 'zeroMinWidth',\n// spacings\n...SPACINGS.map(spacing => `spacing-xs-${spacing}`),\n// direction values\n...DIRECTIONS.map(direction => `direction-xs-${direction}`),\n// wrap values\n...WRAPS.map(wrap => `wrap-xs-${wrap}`),\n// grid sizes for all breakpoints\n...GRID_SIZES.map(size => `grid-xs-${size}`), ...GRID_SIZES.map(size => `grid-sm-${size}`), ...GRID_SIZES.map(size => `grid-md-${size}`), ...GRID_SIZES.map(size => `grid-lg-${size}`), ...GRID_SIZES.map(size => `grid-xl-${size}`)]);\nexport default gridClasses;","'use client';\n\n// A grid component using the following libs as inspiration.\n//\n// For the implementation:\n// - https://getbootstrap.com/docs/4.3/layout/grid/\n// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css\n// - https://github.com/roylee0704/react-flexbox-grid\n// - https://material.angularjs.org/latest/layout/introduction\n//\n// Follow this flexbox Guide to better understand the underlying model:\n// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"columns\", \"columnSpacing\", \"component\", \"container\", \"direction\", \"item\", \"rowSpacing\", \"spacing\", \"wrap\", \"zeroMinWidth\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { handleBreakpoints, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { extendSxProp } from '@mui/system/styleFunctionSx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport requirePropFactory from '../utils/requirePropFactory';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport GridContext from './GridContext';\nimport gridClasses, { getGridUtilityClass } from './gridClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getOffset(val) {\n const parse = parseFloat(val);\n return `${parse}${String(val).replace(String(parse), '') || 'px'}`;\n}\nexport function generateGrid({\n theme,\n ownerState\n}) {\n let size;\n return theme.breakpoints.keys.reduce((globalStyles, breakpoint) => {\n // Use side effect over immutability for better performance.\n let styles = {};\n if (ownerState[breakpoint]) {\n size = ownerState[breakpoint];\n }\n if (!size) {\n return globalStyles;\n }\n if (size === true) {\n // For the auto layouting\n styles = {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: '100%'\n };\n } else if (size === 'auto') {\n styles = {\n flexBasis: 'auto',\n flexGrow: 0,\n flexShrink: 0,\n maxWidth: 'none',\n width: 'auto'\n };\n } else {\n const columnsBreakpointValues = resolveBreakpointValues({\n values: ownerState.columns,\n breakpoints: theme.breakpoints.values\n });\n const columnValue = typeof columnsBreakpointValues === 'object' ? columnsBreakpointValues[breakpoint] : columnsBreakpointValues;\n if (columnValue === undefined || columnValue === null) {\n return globalStyles;\n }\n // Keep 7 significant numbers.\n const width = `${Math.round(size / columnValue * 10e7) / 10e5}%`;\n let more = {};\n if (ownerState.container && ownerState.item && ownerState.columnSpacing !== 0) {\n const themeSpacing = theme.spacing(ownerState.columnSpacing);\n if (themeSpacing !== '0px') {\n const fullWidth = `calc(${width} + ${getOffset(themeSpacing)})`;\n more = {\n flexBasis: fullWidth,\n maxWidth: fullWidth\n };\n }\n }\n\n // Close to the bootstrap implementation:\n // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41\n styles = _extends({\n flexBasis: width,\n flexGrow: 0,\n maxWidth: width\n }, more);\n }\n\n // No need for a media query for the first size.\n if (theme.breakpoints.values[breakpoint] === 0) {\n Object.assign(globalStyles, styles);\n } else {\n globalStyles[theme.breakpoints.up(breakpoint)] = styles;\n }\n return globalStyles;\n }, {});\n}\nexport function generateDirection({\n theme,\n ownerState\n}) {\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n });\n return handleBreakpoints({\n theme\n }, directionValues, propValue => {\n const output = {\n flexDirection: propValue\n };\n if (propValue.indexOf('column') === 0) {\n output[`& > .${gridClasses.item}`] = {\n maxWidth: 'none'\n };\n }\n return output;\n });\n}\n\n/**\n * Extracts zero value breakpoint keys before a non-zero value breakpoint key.\n * @example { xs: 0, sm: 0, md: 2, lg: 0, xl: 0 } or [0, 0, 2, 0, 0]\n * @returns [xs, sm]\n */\nfunction extractZeroValueBreakpointKeys({\n breakpoints,\n values\n}) {\n let nonZeroKey = '';\n Object.keys(values).forEach(key => {\n if (nonZeroKey !== '') {\n return;\n }\n if (values[key] !== 0) {\n nonZeroKey = key;\n }\n });\n const sortedBreakpointKeysByValue = Object.keys(breakpoints).sort((a, b) => {\n return breakpoints[a] - breakpoints[b];\n });\n return sortedBreakpointKeysByValue.slice(0, sortedBreakpointKeysByValue.indexOf(nonZeroKey));\n}\nexport function generateRowGap({\n theme,\n ownerState\n}) {\n const {\n container,\n rowSpacing\n } = ownerState;\n let styles = {};\n if (container && rowSpacing !== 0) {\n const rowSpacingValues = resolveBreakpointValues({\n values: rowSpacing,\n breakpoints: theme.breakpoints.values\n });\n let zeroValueBreakpointKeys;\n if (typeof rowSpacingValues === 'object') {\n zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({\n breakpoints: theme.breakpoints.values,\n values: rowSpacingValues\n });\n }\n styles = handleBreakpoints({\n theme\n }, rowSpacingValues, (propValue, breakpoint) => {\n var _zeroValueBreakpointK;\n const themeSpacing = theme.spacing(propValue);\n if (themeSpacing !== '0px') {\n return {\n marginTop: `-${getOffset(themeSpacing)}`,\n [`& > .${gridClasses.item}`]: {\n paddingTop: getOffset(themeSpacing)\n }\n };\n }\n if ((_zeroValueBreakpointK = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK.includes(breakpoint)) {\n return {};\n }\n return {\n marginTop: 0,\n [`& > .${gridClasses.item}`]: {\n paddingTop: 0\n }\n };\n });\n }\n return styles;\n}\nexport function generateColumnGap({\n theme,\n ownerState\n}) {\n const {\n container,\n columnSpacing\n } = ownerState;\n let styles = {};\n if (container && columnSpacing !== 0) {\n const columnSpacingValues = resolveBreakpointValues({\n values: columnSpacing,\n breakpoints: theme.breakpoints.values\n });\n let zeroValueBreakpointKeys;\n if (typeof columnSpacingValues === 'object') {\n zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({\n breakpoints: theme.breakpoints.values,\n values: columnSpacingValues\n });\n }\n styles = handleBreakpoints({\n theme\n }, columnSpacingValues, (propValue, breakpoint) => {\n var _zeroValueBreakpointK2;\n const themeSpacing = theme.spacing(propValue);\n if (themeSpacing !== '0px') {\n return {\n width: `calc(100% + ${getOffset(themeSpacing)})`,\n marginLeft: `-${getOffset(themeSpacing)}`,\n [`& > .${gridClasses.item}`]: {\n paddingLeft: getOffset(themeSpacing)\n }\n };\n }\n if ((_zeroValueBreakpointK2 = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK2.includes(breakpoint)) {\n return {};\n }\n return {\n width: '100%',\n marginLeft: 0,\n [`& > .${gridClasses.item}`]: {\n paddingLeft: 0\n }\n };\n });\n }\n return styles;\n}\nexport function resolveSpacingStyles(spacing, breakpoints, styles = {}) {\n // undefined/null or `spacing` <= 0\n if (!spacing || spacing <= 0) {\n return [];\n }\n // in case of string/number `spacing`\n if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {\n return [styles[`spacing-xs-${String(spacing)}`]];\n }\n // in case of object `spacing`\n const spacingStyles = [];\n breakpoints.forEach(breakpoint => {\n const value = spacing[breakpoint];\n if (Number(value) > 0) {\n spacingStyles.push(styles[`spacing-${breakpoint}-${String(value)}`]);\n }\n });\n return spacingStyles;\n}\n\n// Default CSS values\n// flex: '0 1 auto',\n// flexDirection: 'row',\n// alignItems: 'flex-start',\n// flexWrap: 'nowrap',\n// justifyContent: 'flex-start',\nconst GridRoot = styled('div', {\n name: 'MuiGrid',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n container,\n direction,\n item,\n spacing,\n wrap,\n zeroMinWidth,\n breakpoints\n } = ownerState;\n let spacingStyles = [];\n\n // in case of grid item\n if (container) {\n spacingStyles = resolveSpacingStyles(spacing, breakpoints, styles);\n }\n const breakpointsStyles = [];\n breakpoints.forEach(breakpoint => {\n const value = ownerState[breakpoint];\n if (value) {\n breakpointsStyles.push(styles[`grid-${breakpoint}-${String(value)}`]);\n }\n });\n return [styles.root, container && styles.container, item && styles.item, zeroMinWidth && styles.zeroMinWidth, ...spacingStyles, direction !== 'row' && styles[`direction-xs-${String(direction)}`], wrap !== 'wrap' && styles[`wrap-xs-${String(wrap)}`], ...breakpointsStyles];\n }\n})(({\n ownerState\n}) => _extends({\n boxSizing: 'border-box'\n}, ownerState.container && {\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%'\n}, ownerState.item && {\n margin: 0 // For instance, it's useful when used with a `figure` element.\n}, ownerState.zeroMinWidth && {\n minWidth: 0\n}, ownerState.wrap !== 'wrap' && {\n flexWrap: ownerState.wrap\n}), generateDirection, generateRowGap, generateColumnGap, generateGrid);\nexport function resolveSpacingClasses(spacing, breakpoints) {\n // undefined/null or `spacing` <= 0\n if (!spacing || spacing <= 0) {\n return [];\n }\n // in case of string/number `spacing`\n if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {\n return [`spacing-xs-${String(spacing)}`];\n }\n // in case of object `spacing`\n const classes = [];\n breakpoints.forEach(breakpoint => {\n const value = spacing[breakpoint];\n if (Number(value) > 0) {\n const className = `spacing-${breakpoint}-${String(value)}`;\n classes.push(className);\n }\n });\n return classes;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n container,\n direction,\n item,\n spacing,\n wrap,\n zeroMinWidth,\n breakpoints\n } = ownerState;\n let spacingClasses = [];\n\n // in case of grid item\n if (container) {\n spacingClasses = resolveSpacingClasses(spacing, breakpoints);\n }\n const breakpointsClasses = [];\n breakpoints.forEach(breakpoint => {\n const value = ownerState[breakpoint];\n if (value) {\n breakpointsClasses.push(`grid-${breakpoint}-${String(value)}`);\n }\n });\n const slots = {\n root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...spacingClasses, direction !== 'row' && `direction-xs-${String(direction)}`, wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...breakpointsClasses]\n };\n return composeClasses(slots, getGridUtilityClass, classes);\n};\nconst Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiGrid'\n });\n const {\n breakpoints\n } = useTheme();\n const props = extendSxProp(themeProps);\n const {\n className,\n columns: columnsProp,\n columnSpacing: columnSpacingProp,\n component = 'div',\n container = false,\n direction = 'row',\n item = false,\n rowSpacing: rowSpacingProp,\n spacing = 0,\n wrap = 'wrap',\n zeroMinWidth = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rowSpacing = rowSpacingProp || spacing;\n const columnSpacing = columnSpacingProp || spacing;\n const columnsContext = React.useContext(GridContext);\n\n // columns set with default breakpoint unit of 12\n const columns = container ? columnsProp || 12 : columnsContext;\n const breakpointsValues = {};\n const otherFiltered = _extends({}, other);\n breakpoints.keys.forEach(breakpoint => {\n if (other[breakpoint] != null) {\n breakpointsValues[breakpoint] = other[breakpoint];\n delete otherFiltered[breakpoint];\n }\n });\n const ownerState = _extends({}, props, {\n columns,\n container,\n direction,\n item,\n rowSpacing,\n columnSpacing,\n wrap,\n zeroMinWidth,\n spacing\n }, breakpointsValues, {\n breakpoints: breakpoints.keys\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(GridContext.Provider, {\n value: columns,\n children: /*#__PURE__*/_jsx(GridRoot, _extends({\n ownerState: ownerState,\n className: clsx(classes.root, className),\n as: component,\n ref: ref\n }, otherFiltered))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grid.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The number of columns.\n * @default 12\n */\n columns: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number, PropTypes.object]),\n /**\n * Defines the horizontal space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n columnSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the component will have the flex *container* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n container: PropTypes.bool,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'row'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * If `true`, the component will have the flex *item* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n item: PropTypes.bool,\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `lg` breakpoint and wider screens if not overridden.\n * @default false\n */\n lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `md` breakpoint and wider screens if not overridden.\n * @default false\n */\n md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * Defines the vertical space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n rowSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `sm` breakpoint and wider screens if not overridden.\n * @default false\n */\n sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * Defines the space between the type `item` components.\n * It can only be used on a type `container` component.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Defines the `flex-wrap` style property.\n * It's applied for all screen sizes.\n * @default 'wrap'\n */\n wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `xl` breakpoint and wider screens if not overridden.\n * @default false\n */\n xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for all the screen sizes with the lowest priority.\n * @default false\n */\n xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If `true`, it sets `min-width: 0` on the item.\n * Refer to the limitations section of the documentation to better understand the use case.\n * @default false\n */\n zeroMinWidth: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n const requireProp = requirePropFactory('Grid', Grid);\n // eslint-disable-next-line no-useless-concat\n Grid['propTypes' + ''] = _extends({}, Grid.propTypes, {\n direction: requireProp('container'),\n lg: requireProp('item'),\n md: requireProp('item'),\n sm: requireProp('item'),\n spacing: requireProp('container'),\n wrap: requireProp('container'),\n xs: requireProp('item'),\n zeroMinWidth: requireProp('item')\n });\n}\nexport default Grid;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSwitchUtilityClass(slot) {\n return generateUtilityClass('MuiSwitch', slot);\n}\nconst switchClasses = generateUtilityClasses('MuiSwitch', ['root', 'edgeStart', 'edgeEnd', 'switchBase', 'colorPrimary', 'colorSecondary', 'sizeSmall', 'sizeMedium', 'checked', 'disabled', 'input', 'thumb', 'track']);\nexport default switchClasses;","'use client';\n\n// @inheritedComponent IconButton\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"edge\", \"size\", \"sx\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha, darken, lighten } from '@mui/system/colorManipulator';\nimport capitalize from '../utils/capitalize';\nimport SwitchBase from '../internal/SwitchBase';\nimport { styled, createUseThemeProps } from '../zero-styled';\nimport switchClasses, { getSwitchUtilityClass } from './switchClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useThemeProps = createUseThemeProps('MuiSwitch');\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n edge,\n size,\n color,\n checked,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', edge && `edge${capitalize(edge)}`, `size${capitalize(size)}`],\n switchBase: ['switchBase', `color${capitalize(color)}`, checked && 'checked', disabled && 'disabled'],\n thumb: ['thumb'],\n track: ['track'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getSwitchUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst SwitchRoot = styled('span', {\n name: 'MuiSwitch',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.edge && styles[`edge${capitalize(ownerState.edge)}`], styles[`size${capitalize(ownerState.size)}`]];\n }\n})({\n display: 'inline-flex',\n width: 34 + 12 * 2,\n height: 14 + 12 * 2,\n overflow: 'hidden',\n padding: 12,\n boxSizing: 'border-box',\n position: 'relative',\n flexShrink: 0,\n zIndex: 0,\n // Reset the stacking context.\n verticalAlign: 'middle',\n // For correct alignment with the text.\n '@media print': {\n colorAdjust: 'exact'\n },\n variants: [{\n props: {\n edge: 'start'\n },\n style: {\n marginLeft: -8\n }\n }, {\n props: {\n edge: 'end'\n },\n style: {\n marginRight: -8\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n width: 40,\n height: 24,\n padding: 7,\n [`& .${switchClasses.thumb}`]: {\n width: 16,\n height: 16\n },\n [`& .${switchClasses.switchBase}`]: {\n padding: 4,\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(16px)'\n }\n }\n }\n }]\n});\nconst SwitchSwitchBase = styled(SwitchBase, {\n name: 'MuiSwitch',\n slot: 'SwitchBase',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.switchBase, {\n [`& .${switchClasses.input}`]: styles.input\n }, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme\n}) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n // Render above the focus ripple.\n color: theme.vars ? theme.vars.palette.Switch.defaultColor : `${theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.grey[300]}`,\n transition: theme.transitions.create(['left', 'transform'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(20px)'\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.vars ? theme.vars.palette.Switch.defaultDisabledColor : `${theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[600]}`\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n opacity: 0.5\n },\n [`&.${switchClasses.disabled} + .${switchClasses.track}`]: {\n opacity: theme.vars ? theme.vars.opacity.switchTrackDisabled : `${theme.palette.mode === 'light' ? 0.12 : 0.2}`\n },\n [`& .${switchClasses.input}`]: {\n left: '-100%',\n width: '300%'\n }\n}), ({\n theme\n}) => ({\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n variants: [...Object.entries(theme.palette).filter(([, value]) => value.main && value.light) // check all the used fields in the style below\n .map(([color]) => ({\n props: {\n color\n },\n style: {\n [`&.${switchClasses.checked}`]: {\n color: (theme.vars || theme).palette[color].main,\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[color].main, theme.palette.action.hoverOpacity),\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.vars ? theme.vars.palette.Switch[`${color}DisabledColor`] : `${theme.palette.mode === 'light' ? lighten(theme.palette[color].main, 0.62) : darken(theme.palette[color].main, 0.55)}`\n }\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n backgroundColor: (theme.vars || theme).palette[color].main\n }\n }\n }))]\n}));\nconst SwitchTrack = styled('span', {\n name: 'MuiSwitch',\n slot: 'Track',\n overridesResolver: (props, styles) => styles.track\n})(({\n theme\n}) => ({\n height: '100%',\n width: '100%',\n borderRadius: 14 / 2,\n zIndex: -1,\n transition: theme.transitions.create(['opacity', 'background-color'], {\n duration: theme.transitions.duration.shortest\n }),\n backgroundColor: theme.vars ? theme.vars.palette.common.onBackground : `${theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white}`,\n opacity: theme.vars ? theme.vars.opacity.switchTrack : `${theme.palette.mode === 'light' ? 0.38 : 0.3}`\n}));\nconst SwitchThumb = styled('span', {\n name: 'MuiSwitch',\n slot: 'Thumb',\n overridesResolver: (props, styles) => styles.thumb\n})(({\n theme\n}) => ({\n boxShadow: (theme.vars || theme).shadows[1],\n backgroundColor: 'currentColor',\n width: 20,\n height: 20,\n borderRadius: '50%'\n}));\nconst Switch = /*#__PURE__*/React.forwardRef(function Switch(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSwitch'\n });\n const {\n className,\n color = 'primary',\n edge = false,\n size = 'medium',\n sx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n edge,\n size\n });\n const classes = useUtilityClasses(ownerState);\n const icon = /*#__PURE__*/_jsx(SwitchThumb, {\n className: classes.thumb,\n ownerState: ownerState\n });\n return /*#__PURE__*/_jsxs(SwitchRoot, {\n className: clsx(classes.root, className),\n sx: sx,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(SwitchSwitchBase, _extends({\n type: \"checkbox\",\n icon: icon,\n checkedIcon: icon,\n ref: ref,\n ownerState: ownerState\n }, other, {\n classes: _extends({}, classes, {\n root: classes.switchBase\n })\n })), /*#__PURE__*/_jsx(SwitchTrack, {\n className: classes.track,\n ownerState: ownerState\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Switch.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense switch styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Switch;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiToolbar', slot);\n}\nconst toolbarClasses = generateUtilityClasses('MuiToolbar', ['root', 'gutters', 'regular', 'dense']);\nexport default toolbarClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"disableGutters\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getToolbarUtilityClass } from './toolbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableGutters,\n variant\n } = ownerState;\n const slots = {\n root: ['root', !disableGutters && 'gutters', variant]\n };\n return composeClasses(slots, getToolbarUtilityClass, classes);\n};\nconst ToolbarRoot = styled('div', {\n name: 'MuiToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableGutters && styles.gutters, styles[ownerState.variant]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n}, !ownerState.disableGutters && {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n}, ownerState.variant === 'dense' && {\n minHeight: 48\n}), ({\n theme,\n ownerState\n}) => ownerState.variant === 'regular' && theme.mixins.toolbar);\nconst Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiToolbar'\n });\n const {\n className,\n component = 'div',\n disableGutters = false,\n variant = 'regular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n disableGutters,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ToolbarRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Toolbar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\n * The Toolbar is a flex container, allowing flex item properties to be used to lay out the children.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, disables gutter padding.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'regular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['dense', 'regular']), PropTypes.string])\n} : void 0;\nexport default Toolbar;","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","import React from \"react\";\r\nimport Type from \"prop-types\";\r\nimport Box from \"@mui/material/Box\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\n\r\nfunction SnackbarNotificationsClose(props) {\r\n const { onClick } = props;\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nSnackbarNotificationsClose.propTypes = {\r\n onClick: Type.func.isRequired\r\n};\r\n\r\nexport default SnackbarNotificationsClose;\r\n","import React from \"react\";\r\n\r\nimport SnackbarNotificationsClose from \"../components/SnackbarNotificationsClose\";\r\n\r\nimport { store } from \"../redux/configureStore\";\r\nimport { hideSnackbar } from \"../redux/ducks/snackbarDuck\";\r\n\r\nconst createAction = closeSnackbar => key => (\r\n {\r\n closeSnackbar(key);\r\n }}\r\n />\r\n);\r\n\r\nconst onClose = () => {\r\n store.dispatch(hideSnackbar());\r\n};\r\n\r\nexport const getErrorSnackbarOptions = closeSnackbar => ({\r\n variant: \"error\",\r\n autoHideDuration: 4000,\r\n onClose: onClose,\r\n action: createAction(closeSnackbar)\r\n});\r\n\r\nexport const getSuccessSnackbarOptions = closeSnackbar => ({\r\n variant: \"success\",\r\n autoHideDuration: 3000,\r\n onClose: onClose,\r\n action: createAction(closeSnackbar)\r\n});\r\n","import React, { useState, useRef, useContext, useEffect } from \"react\";\r\nimport {\r\n Alert,\r\n AlertTitle,\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { Box } from \"@mui/system\";\r\nimport ErrorBoundary from \"../containers/ErrorBoundary\";\r\nimport { axiosError } from \"../core\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { loadingFinishAC, loadingStartAC } from \"../redux/ducks/appDuck\";\r\nimport { getErrorSnackbarOptions } from \"./snackbarNotifications\";\r\nimport { useSnackbar } from \"notistack\";\r\n\r\nconst AppUiContext = React.createContext({\r\n showConfirmation: (title, message) => {},\r\n showConfirmYesNo: (title, message) => {},\r\n showCustomConfirm: (title, customContent) => {},\r\n showErrorMessage: (ex, title) => {},\r\n showMessage: (title, message) => {},\r\n showCustomDialog: (title, customContent) => {},\r\n showLoading: () => {},\r\n hideLoading: () => {},\r\n showErrorSnackbar: (error) => {},\r\n showErrorStringSnackbar: (message) => {},\r\n});\r\n\r\nconst AppUiProvider = (props) => {\r\n const dispatch = useDispatch();\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\r\n const [data, setData] = useState({});\r\n const resolver = useRef();\r\n\r\n const handleShowLoading = () => {\r\n dispatch(loadingStartAC());\r\n };\r\n\r\n const handleHideLoading = () => {\r\n dispatch(loadingFinishAC());\r\n };\r\n\r\n const handleShowErrorSnackbar = (err) => {\r\n let message = axiosError.errorDescription(err);\r\n enqueueSnackbar(message, getErrorSnackbarOptions(closeSnackbar));\r\n };\r\n\r\n const handleShowErrorStringSnackbar = (message) => {\r\n enqueueSnackbar(message, getErrorSnackbarOptions(closeSnackbar));\r\n };\r\n\r\n const handleShow = (title, message) => {\r\n setData({ title, message, noBtn: \"Ok\" });\r\n setShowConfirmationModal(true);\r\n return new Promise(function (resolve) {\r\n resolver.current = resolve;\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const keyDownHandler = (event) => {\r\n if (showConfirmationModal && event.key === \"Enter\") {\r\n event.preventDefault();\r\n handleOk();\r\n }\r\n };\r\n document.addEventListener(\"keydown\", keyDownHandler);\r\n return () => {\r\n document.removeEventListener(\"keydown\", keyDownHandler);\r\n };\r\n }, [showConfirmationModal]);\r\n\r\n const confirm = (title, message, { yesBtn = \"Yes\", noBtn = \"No\" } = {}) => {\r\n setData({ title, message, yesBtn, noBtn });\r\n setShowConfirmationModal(true);\r\n return new Promise(function (resolve) {\r\n resolver.current = resolve;\r\n });\r\n };\r\n\r\n const showCustomConfirm = (title, customContent, { yesBtn = \"Yes\", noBtn = \"No\" } = {}) => {\r\n setData({ title, customContent, yesBtn, noBtn });\r\n setShowConfirmationModal(true);\r\n return new Promise(function (resolve) {\r\n resolver.current = resolve;\r\n });\r\n };\r\n\r\n const errorMessage = (ex, title) => {\r\n setData({ title, error: axiosError.errorDescription(ex), yesBtn: \"\", noBtn: \"Ok\" });\r\n setShowConfirmationModal(true);\r\n return new Promise(function (resolve) {\r\n resolver.current = resolve;\r\n });\r\n };\r\n\r\n const message = (title, message) => {\r\n setData({ title, message, yesBtn: \"\", noBtn: \"Ok\" });\r\n setShowConfirmationModal(true);\r\n return new Promise(function (resolve) {\r\n resolver.current = resolve;\r\n });\r\n };\r\n\r\n const showCustomDialog = (title, customContent) => {\r\n setData({ title, customContent, yesBtn: \"\", noBtn: \"Close\" });\r\n setShowConfirmationModal(true);\r\n return new Promise(function (resolve) {\r\n resolver.current = resolve;\r\n });\r\n };\r\n\r\n const handleOk = () => {\r\n resolver.current && resolver.current(true);\r\n setShowConfirmationModal(false);\r\n };\r\n\r\n const handleCancel = () => {\r\n resolver.current && resolver.current(false);\r\n setShowConfirmationModal(false);\r\n };\r\n return (\r\n \r\n {props.children}\r\n \r\n {data.error && (\r\n \r\n \r\n {data.title ?? \"Error\"}\r\n {data.error}\r\n \r\n \r\n )}\r\n {!data.error && (\r\n <>\r\n {data.title}\r\n \r\n {!data.customContent && data.message}\r\n {data.customContent ?? data.customContent}\r\n \r\n \r\n )}\r\n \r\n \r\n {data.yesBtn && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst WrappedAppUiProvider = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default WrappedAppUiProvider;\r\n\r\nexport const useAppUiContext = () => useContext(AppUiContext);\r\n","import addCpaIcon from '~/assets/NavBarIcons/add-cpa-company.svg'\r\nimport cpaDashboard from '~/assets/NavBarIcons/cpa_dashboard.svg'\r\nimport dashboardIcon from '~/assets/NavBarIcons/dashboard_icon.svg'\r\nimport payrollIcon from '~/assets/NavBarIcons/dollar.svg'\r\nimport feedbackIcon from '~/assets/NavBarIcons/feedback_icon.svg'\r\nimport reportsIconV2 from '~/assets/NavBarIcons/folder.svg'\r\nimport helpCenterIcon from '~/assets/NavBarIcons/help_center.svg'\r\nimport manageHrIcon from '~/assets/NavBarIcons/manage_hr_icon.svg'\r\nimport manageIcon from '~/assets/NavBarIcons/manage_icon.svg'\r\nimport payrollFinancingIcon from '~/assets/NavBarIcons/payroll_financing_icon.svg'\r\nimport powerImportIcon from '~/assets/NavBarIcons/power_import_icon.svg'\r\nimport servicesIcon from '~/assets/NavBarIcons/services.svg'\r\nimport settings from '~/assets/NavBarIcons/settings-gear-icon.svg'\r\nimport settingsIcon from '~/assets/NavBarIcons/settings.svg'\r\nimport swipeClockIcon from '~/assets/NavBarIcons/swipe_clock_icon.svg'\r\nimport employeesIcon from '~/assets/NavBarIcons/users.svg'\r\n\r\ninterface PageConfig {\r\n id: string\r\n path: string\r\n title?: string\r\n iconSrc?: string\r\n}\r\n\r\nexport const PAGES = {\r\n authConfirmAccount: {\r\n id: 'authConfirmAccount',\r\n title: 'Confirm Account',\r\n path: '/auth/confirm-account',\r\n },\r\n brandsLogin: {\r\n id: 'brandsLogin',\r\n title: 'Brands Login',\r\n path: '/auth/login',\r\n },\r\n loginVerifyPassword: {\r\n id: 'loginVerifyPassword',\r\n title: 'Enter Your Password',\r\n path: '/verify_password',\r\n },\r\n brandsLoginSelectCompany: {\r\n id: 'loginSelectCompany',\r\n title: 'Please Select a Company',\r\n path: '/auth/select-company',\r\n },\r\n impersonate: {\r\n id: 'impersonate',\r\n title: 'Log out',\r\n path: '/auth/logout',\r\n },\r\n\r\n setUpAccountPassword: {\r\n id: 'setUpAccountPassword',\r\n title: 'SetUp Account: Password',\r\n path: '/auth/set-up-account/password',\r\n },\r\n\r\n resetPasswordEmail: {\r\n id: 'resetPasswordEmail',\r\n title: 'Reset Password: Email Authentication',\r\n path: '/auth/reset-password/email',\r\n },\r\n resetPasswordInput: {\r\n id: 'resetPasswordInput',\r\n title: 'Reset Password: Input',\r\n path: '/auth/reset-password/input',\r\n },\r\n resetPasswordComplete: {\r\n id: 'resetPasswordComplete',\r\n title: 'Reset Password: Complete',\r\n path: '/auth/reset-password/complete',\r\n },\r\n twoFactorAuthLogin: {\r\n id: 'twoFactorAuthLogin',\r\n title: 'Two Factor Authentication',\r\n path: '/auth/login/mfa',\r\n },\r\n authFrillSso: {\r\n id: 'authFrillSso',\r\n title: 'Frill SSO',\r\n path: '/auth/frillSso',\r\n },\r\n\r\n authorizePayroll: {\r\n id: 'authorizePayroll',\r\n title: 'Authorize Payroll',\r\n path: '/authorize-payroll',\r\n },\r\n\r\n restrictedIp: {\r\n id: 'restrictedIp',\r\n path: '/restricted',\r\n },\r\n\r\n employeeForm: {\r\n id: 'employeeForm',\r\n title: 'Employee Form',\r\n path: '/employee-form',\r\n },\r\n\r\n // DASHBOARD\r\n dashboard: {\r\n id: 'Dashboard',\r\n title: 'Dashboard',\r\n path: '/dashboard',\r\n iconSrc: dashboardIcon,\r\n },\r\n dashboardOld: {\r\n id: 'dashboardOld',\r\n title: 'Dashboard Old',\r\n path: '/dashboardOld',\r\n },\r\n // EMPLOYEES\r\n payHistoryEmployee: {\r\n id: 'payHistoryEmployee', // Must come before payHistory\r\n title: 'Employee Pay History',\r\n path: '/pay-history/employee',\r\n },\r\n payrollFinancing: {\r\n id: 'payrollFinancing',\r\n title: 'Payroll Financing',\r\n path: '/payroll-financing',\r\n iconSrc: payrollFinancingIcon,\r\n },\r\n employeesOnboarding: {\r\n id: 'employeesOnboarding',\r\n title: 'Onboarding',\r\n path: '/employees-onboarding',\r\n },\r\n employees: {\r\n id: 'employees',\r\n title: 'Employees',\r\n path: '/employees',\r\n iconSrc: employeesIcon,\r\n },\r\n newEmployees: {\r\n id: 'new-employee',\r\n title: 'Add new employee',\r\n path: '/employees-new',\r\n },\r\n usersbyCompany: {\r\n id: 'usersbyCompany',\r\n title: 'Users by company',\r\n path: '/usersbycompany',\r\n },\r\n\r\n // USERS\r\n settings: {\r\n id: 'settingsUsers',\r\n title: 'Settings',\r\n path: '/settings/users',\r\n iconSrc: settingsIcon,\r\n },\r\n\r\n settingsUsers: {\r\n id: 'settingsUsers',\r\n title: 'Users & Roles',\r\n path: '/settings/users',\r\n },\r\n\r\n settingsManageCpaPortal: {\r\n id: 'settingsManageCpaPortal',\r\n title: 'CPA Portal',\r\n path: '/settings/cpaportal',\r\n },\r\n\r\n settingsBankAccounts: {\r\n id: 'settingsBankAccounts',\r\n title: 'Bank Account(s)',\r\n path: '/settings?option=bankAccounts',\r\n },\r\n\r\n settingsIpRestrictions: {\r\n id: 'settingsIpRestrictions',\r\n title: 'IP Restrictions',\r\n path: '/settings/ip-restrictions',\r\n },\r\n\r\n settingsNotifications: {\r\n id: 'settingsNotifications',\r\n title: 'Notifications',\r\n path: '/settings/notifications',\r\n },\r\n\r\n // EMPLOYEE DECK SETTINGS\r\n employeeDeckSettings: {\r\n id: 'employee-deck-settings',\r\n title: 'Employee Deck Settings',\r\n path: '/settings/employeedeck',\r\n },\r\n\r\n settingsMain: {\r\n id: 'settingsMain',\r\n title: 'Settings',\r\n path: '/settings',\r\n },\r\n\r\n // SERVICES\r\n services: {\r\n id: 'services',\r\n title: 'Services & Apps',\r\n path: '/services',\r\n iconSrc: servicesIcon,\r\n },\r\n\r\n // REPORTS\r\n reportsPrimary: {\r\n id: 'reportsPrimary',\r\n title: 'Primary Reports',\r\n path: '/reports/primary',\r\n },\r\n standardReportsOld: {\r\n id: 'standardReports',\r\n title: 'Archived Reports',\r\n path: '/standard_reports',\r\n },\r\n reportsRun: {\r\n id: 'reportsRun',\r\n title: 'Run a Report',\r\n path: '/reports/run',\r\n iconSrc: reportsIconV2,\r\n },\r\n reports: {\r\n id: 'reports',\r\n title: 'Reports',\r\n path: '/reports',\r\n iconSrc: reportsIconV2,\r\n },\r\n reportsRunV2: {\r\n id: 'reportsRun',\r\n title: 'Run a Report',\r\n path: '/reports/run-v2',\r\n iconSrc: reportsIconV2,\r\n },\r\n liveReports: {\r\n id: 'liveReports',\r\n title: 'Live Reports',\r\n path: '/reports/live',\r\n iconSrc: reportsIconV2,\r\n },\r\n runReportOld: {\r\n id: 'runReport',\r\n title: 'Reports on Demand',\r\n path: '/run_report',\r\n },\r\n reportsPosted: {\r\n id: 'reportsPosted',\r\n title: 'Posted Reports',\r\n path: '/reports/posted',\r\n },\r\n myReportsOld: {\r\n id: 'myReports',\r\n title: 'My Reports',\r\n path: '/my_reports',\r\n },\r\n newReport: {\r\n id: 'newReport',\r\n title: 'Data Studio / Untitled Report',\r\n path: '/new_report',\r\n },\r\n supportOvertime: {\r\n id: 'supportOvertime',\r\n title: 'Data Studio / Support Dep',\r\n path: '/support_overtime',\r\n },\r\n helpCenter: {\r\n id: 'helpCenter',\r\n title: 'Help Center',\r\n path: 'https://support.brandspaycheck.com/hc/en-us',\r\n iconSrc: helpCenterIcon,\r\n },\r\n feedback: {\r\n id: 'feedback',\r\n title: 'Client Feedback',\r\n path: '/feedback',\r\n iconSrc: feedbackIcon,\r\n },\r\n platinumPayExpress: {\r\n id: 'Manage Payroll',\r\n title: 'Payroll (PPX Legacy)',\r\n path: '/platinum-pay-express',\r\n iconSrc: manageIcon,\r\n },\r\n swipeClock: {\r\n id: 'swipeClock',\r\n title: 'Timekeeping',\r\n path: '/swipe-clock',\r\n iconSrc: swipeClockIcon,\r\n },\r\n hrNextDirect: {\r\n id: 'hrNextDirect',\r\n title: 'Hr Next Direct',\r\n path: '/hrNextDirect',\r\n iconSrc: manageHrIcon,\r\n },\r\n // POWER IMPORTS\r\n powerImports: {\r\n id: 'powerImport',\r\n title: 'Power Imports',\r\n path: '/powerImports',\r\n iconSrc: powerImportIcon,\r\n },\r\n // ERRORS\r\n testReactErrorBoundaries: {\r\n id: 'testReactErrorBoundaries',\r\n path: '/test_react_error_boundaries',\r\n },\r\n // ONBOARDING\r\n onboarding: {\r\n id: 'onboarding',\r\n title: 'Onboarding',\r\n path: '/onboarding',\r\n },\r\n onboardingSetup: {\r\n id: 'onboardingSetup',\r\n title: 'Onboarding',\r\n path: '/onboarding/setup',\r\n },\r\n onboardingNew: {\r\n id: 'onboardingNew',\r\n title: 'Onboarding',\r\n path: '/onboarding/new',\r\n },\r\n // EMPLOYEE DECK USERS\r\n employeeDeckUsers: {\r\n id: 'employee-deck-users',\r\n title: 'Employee Deck Users',\r\n path: '/employee-deck/users',\r\n },\r\n // CPA PORTAL\r\n cpaClients: {\r\n id: 'cpa-clients',\r\n title: 'CPA Clients',\r\n path: '/cpa/clients',\r\n iconSrc: cpaDashboard,\r\n },\r\n cpaSettings: {\r\n id: 'cpa-settings',\r\n title: 'CPA Settings',\r\n path: '/cpa/settings',\r\n iconSrc: settings,\r\n },\r\n cpaSignup: {\r\n id: 'cpa-signup',\r\n title: 'CPA Signup',\r\n path: '/cpa/signup',\r\n },\r\n cpaProfile: {\r\n id: 'cpa-profile',\r\n title: 'CPA Profile',\r\n path: '/cpa/profile',\r\n },\r\n cpaReports: {\r\n id: 'cpa-reports',\r\n title: 'CPA Reports',\r\n path: '/cpa/reports',\r\n iconSrc: reportsIconV2,\r\n },\r\n cpaClientOverview: {\r\n id: 'cpa-client-overview',\r\n title: 'Overview',\r\n path: '/cpa/overview',\r\n iconSrc: cpaDashboard,\r\n },\r\n cpaClientSettings: {\r\n id: 'cpa-client-settings',\r\n title: 'Settings',\r\n path: '/cpa/settings',\r\n iconSrc: settings,\r\n },\r\n cpaAddCompany: {\r\n id: 'cpa-add',\r\n title: 'CPA Add Company',\r\n path: '/cpa/add',\r\n iconSrc: addCpaIcon,\r\n },\r\n //QBO\r\n qboConnect: {\r\n id: 'qbo-connect',\r\n title: 'QBO Connect',\r\n path: '/qbo/connect',\r\n },\r\n payrollsPowerImports: {\r\n id: 'payrollsPowerImports',\r\n title: 'Power Imports',\r\n path: '/payrolls/power-imports',\r\n },\r\n payrollsManualChecks: {\r\n id: 'payrollsManualChecks',\r\n title: 'Manual & Voided Checks',\r\n path: '/payrolls/manual-checks',\r\n },\r\n payrollsPreferences: {\r\n id: 'payrollsPreferences',\r\n title: 'Preferences',\r\n path: '/payrolls/preferences',\r\n },\r\n payrollsList: {\r\n id: 'payrollsList',\r\n title: 'Preferences - Payroll Lists',\r\n path: '/payrolls/preferences/lists',\r\n },\r\n newPayrollsList: {\r\n id: 'newPayrollsList',\r\n title: 'Preferences - Payroll Lists - New',\r\n path: '/payrolls/preferences/new-list',\r\n },\r\n editPayrollsList: {\r\n id: 'editPayrollsList',\r\n title: 'Preferences - Payroll Lists - Edit',\r\n path: '/payrolls/preferences/edit-list',\r\n },\r\n payrolls: {\r\n id: 'payrolls',\r\n title: 'Payrolls',\r\n path: '/payrolls',\r\n iconSrc: payrollIcon,\r\n },\r\n payrollsOverview: {\r\n id: 'payrollsOverview',\r\n title: 'Overview',\r\n path: '/payrolls',\r\n },\r\n payrollStart: {\r\n id: 'payrollStart',\r\n title: 'Start Payroll',\r\n path: '/payrolls/new',\r\n },\r\n payrollStartEmployees: {\r\n id: 'payrollStart',\r\n title: 'Start Payroll - Select Employees',\r\n path: '/payrolls/new/start/employees',\r\n },\r\n payrollStartManualEmployees: {\r\n id: 'payrollStart',\r\n title: 'Start Payroll - Select Employees',\r\n path: '/payrolls/new/start/employees/manual',\r\n },\r\n payrollStartSubmit: {\r\n id: 'payrollSubmit',\r\n title: 'Start Payroll - Submit',\r\n path: '/payrolls/new/start/submit',\r\n },\r\n // ESS\r\n essDashboard: {\r\n id: 'essDashboard',\r\n title: 'Dashboard',\r\n path: '/ess/dashboard',\r\n },\r\n essPayHistory: {\r\n id: 'essPayHistory',\r\n title: 'Pay History',\r\n path: '/ess/pay-history',\r\n },\r\n essPayHistoryDetail: {\r\n id: 'essPayHistoryDetail',\r\n title: 'Pay History Detail',\r\n path: '/ess/pay-history/:id',\r\n },\r\n essProfile: {\r\n id: 'essProfile',\r\n title: 'Profile',\r\n path: '/ess/profile',\r\n },\r\n essDocuments: {\r\n id: 'essDocuments',\r\n title: 'Documents',\r\n path: '/ess/documents',\r\n },\r\n essTaxWithholdings: {\r\n id: 'essTaxWithholdings',\r\n title: 'Tax withholdings - W4',\r\n path: '/ess/tax-withholdings',\r\n },\r\n essDirectDeposit: {\r\n id: 'essDirectDeposit',\r\n title: 'Direct Despoit',\r\n path: '/ess/direct-deposit',\r\n },\r\n essTimeKeeping: {\r\n id: 'essTimeKeeping',\r\n title: 'Time Keeping',\r\n path: '/ess/time-keeping',\r\n },\r\n essPosterElite: {\r\n id: 'essPostElite',\r\n title: 'Poster Elite',\r\n path: '/ess/posterElite',\r\n },\r\n devextremeEmployees: {\r\n id: 'devextremeEmployees',\r\n title: 'Employees',\r\n path: '/devextreme/employees',\r\n },\r\n essSetup: {\r\n id: 'essSetup',\r\n title: 'Setup',\r\n path: '/ess/setup',\r\n },\r\n employeeOnboarding: {\r\n id: 'employeeOnboarding',\r\n title: 'Employee Onboarding',\r\n path: '/employee-onboarding',\r\n },\r\n designGuidelines: {\r\n id: 'designGuidelines',\r\n title: 'Design Guidelines',\r\n path: '/design-guidelines',\r\n },\r\n customReports: {\r\n id: 'customReports',\r\n title: 'Custom Reports',\r\n path: '/custom-reports',\r\n },\r\n} satisfies Record\r\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { Redirect, Route, useLocation } from \"react-router-dom\";\r\nimport { PAGES } from \"./pages\";\r\nimport { authService, logErrorsService } from \"../core\";\r\nimport { useAppState } from \"@/states/app-state\";\r\n\r\nconst ProtectedRoute = ({\r\n component: Component,\r\n path,\r\n title,\r\n userOnlyAuthenticated,\r\n permission,\r\n disabled,\r\n render,\r\n}) => {\r\n const profile = useAppState((state) => state.profile);\r\n const initiated = useAppState((state) => state.initiated);\r\n const permissions = profile?.permission;\r\n const location = useLocation();\r\n const locationName = location.pathname;\r\n const [routeProps, setRouteProps] = useState();\r\n const profileRef = useRef();\r\n\r\n function delay(time) {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(), time);\r\n });\r\n }\r\n\r\n const defaultPath = useMemo(() => {\r\n if (!permissions) return null;\r\n if (permissions.dashboard) {\r\n return PAGES.dashboard.path;\r\n }\r\n if (permissions.managePayroll) {\r\n return PAGES.platinumPayExpress.path;\r\n }\r\n if (permissions.runReports) {\r\n return PAGES.reports.path;\r\n }\r\n if (permissions.manageContactsAndUsers) {\r\n return PAGES.settingsUsers.path;\r\n }\r\n if (permissions.payrollFunding) {\r\n return PAGES.payrollFunding.path;\r\n }\r\n if (permissions.powerImports) {\r\n return PAGES.powerImports.path;\r\n }\r\n if (permissions.Onboarding) {\r\n return `${PAGES.onboarding.path}/setup`;\r\n }\r\n if (permissions?.employee) {\r\n return `${PAGES.employees.path}`;\r\n }\r\n if (profile?.swipeClockLoginName) {\r\n return PAGES.swipeClock.path;\r\n }\r\n return null;\r\n }, [permissions]);\r\n\r\n const validatePathPermission = async (profile) => {\r\n let _profile = profile;\r\n\r\n await delay(50);\r\n if (_profile !== profileRef.current) {\r\n return;\r\n }\r\n\r\n const pushLog = (message) => logErrorsService.error(`${message}. Path: ${path}`);\r\n\r\n if (!initiated) {\r\n setRouteProps();\r\n } else if (authService.isCpaUser()) {\r\n setRouteProps({ type: \"route\" });\r\n } else if (authService.isEssUser()) {\r\n setRouteProps({ type: \"route\" });\r\n } else if (authService.isIpRestricted() && location.pathname !== PAGES.restrictedIp.path) {\r\n setRouteProps({\r\n type: \"redirect\",\r\n props: {\r\n to: {\r\n pathname: PAGES.restrictedIp.path,\r\n state: { prevLocation: locationName, error: \"ip restricted\" },\r\n },\r\n },\r\n });\r\n } else if (!authService.isCompanyAuthenticated() && !authService.isUserAuthenticated()) {\r\n pushLog(\"user is not authenticated at all\");\r\n authService.logToken();\r\n setRouteProps({\r\n type: \"redirect\",\r\n props: {\r\n to: {\r\n pathname: PAGES.brandsLogin.path,\r\n state: { prevLocation: locationName, error: \"Not logged in\" },\r\n },\r\n },\r\n });\r\n } else if (!userOnlyAuthenticated && !authService.isCompanyAuthenticated()) {\r\n pushLog(\"user is not authenticated to any company\");\r\n setRouteProps({\r\n type: \"redirect\",\r\n props: {\r\n to: {\r\n pathname: PAGES.brandsLogin.path,\r\n state: { prevLocation: locationName, error: \"Not logged in\" },\r\n },\r\n },\r\n });\r\n } else if (userOnlyAuthenticated && authService.isUserAuthenticated()) {\r\n setRouteProps({ type: \"route\" });\r\n } else if (!profile) {\r\n pushLog(\"user profile is null\");\r\n setRouteProps({\r\n type: \"redirect\",\r\n props: {\r\n to: {\r\n pathname: PAGES.brandsLogin.path,\r\n state: { prevLocation: locationName, error: \"Not logged in\" },\r\n },\r\n },\r\n });\r\n } else if (!permissions && defaultPath) {\r\n pushLog(\"user permissions array is null\");\r\n setRouteProps({\r\n type: \"redirect\",\r\n props: {\r\n to: {\r\n pathname: defaultPath,\r\n state: { prevLocation: locationName, error: \"Not logged in\" },\r\n },\r\n },\r\n });\r\n } else if (!profile?.permission) {\r\n pushLog(\"user does not have enough permissions\");\r\n if (!defaultPath && locationName === PAGES.dashboard.path) {\r\n authService.signOut();\r\n }\r\n setRouteProps({\r\n type: \"redirect\",\r\n props: {\r\n to: {\r\n pathname: defaultPath,\r\n state: { prevLocation: locationName, error: \"Not authorized\" },\r\n },\r\n },\r\n });\r\n } else if (permission) {\r\n setRouteProps({ type: \"route\" });\r\n } else if (!permission) {\r\n setRouteProps({\r\n type: \"redirect\",\r\n props: {\r\n to: {\r\n pathname: defaultPath,\r\n state: { prevLocation: locationName, error: \"Not authorized\" },\r\n },\r\n },\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n profileRef.current = profile;\r\n validatePathPermission(profile);\r\n }, [\r\n initiated,\r\n location,\r\n path,\r\n defaultPath,\r\n permissions,\r\n permission,\r\n profile,\r\n locationName,\r\n userOnlyAuthenticated,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (disabled && path) {\r\n logErrorsService.error(`User conum or selectedCpaFirmId are not set. Path: ${path}`);\r\n }\r\n }, [disabled, path]);\r\n\r\n if (disabled) {\r\n return null;\r\n }\r\n\r\n if (!routeProps) {\r\n return null;\r\n }\r\n\r\n if (routeProps.type === \"redirect\" && routeProps.props?.to?.pathname !== location.pathname) {\r\n return ;\r\n }\r\n\r\n if (!permission && !userOnlyAuthenticated) {\r\n logErrorsService.warning(\"displaying unauth div.\", { path, defaultPath });\r\n return (\r\n
\r\n Access to the requested resource at {path} is unauthorized. You are being redirected to{\" \"}\r\n {defaultPath} as a default destination. Please contact the administrator or support team if\r\n you believe you should have access to this resource.\r\n
\r\n );\r\n }\r\n\r\n return (\r\n (Component ? : null))}\r\n />\r\n );\r\n};\r\n\r\nexport default ProtectedRoute;\r\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z\"\n}), 'Menu');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6m0 14c-2.03 0-4.43-.82-6.14-2.88C7.55 15.8 9.68 15 12 15s4.45.8 6.14 2.12C16.43 19.18 14.03 20 12 20\"\n}), 'AccountCircle');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 13h8V3H3zm0 8h8v-6H3zm10 0h8V11h-8zm0-18v6h8V3z\"\n}), 'Dashboard');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2M8 20H4v-4h4zm0-6H4v-4h4zm0-6H4V4h4zm6 12h-4v-4h4zm0-6h-4v-4h4zm0-6h-4V4h4zm6 12h-4v-4h4zm0-6h-4v-4h4zm0-6h-4V4h4z\"\n}), 'GridOn');","import { useState } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { AppBar, Box, Drawer, IconButton, List, ListItemButton, ListItemIcon, ListItemText, Toolbar, Typography } from \"@mui/material\";\r\nimport MenuIcon from '@mui/icons-material/Menu';\r\nimport AccountCircle from '@mui/icons-material/AccountCircle';\r\nimport Menu from '@mui/material/Menu';\r\nimport DashboardIcon from '@mui/icons-material/Dashboard';\r\nimport GridOnIcon from '@mui/icons-material/GridOn';\r\n\r\nconst drawerWidth = 240;\r\n\r\nexport default function SuperAdminLayout(props) {\r\n const [drawerOpen, setDrawerOpen] = useState(true);\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n const handleMenu = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => setAnchorEl(null);\r\n\r\n const handleLogout = () => {\r\n sessionStorage.removeItem('jwtToken');\r\n history.push('/login');\r\n }\r\n\r\n const listItemButtonClick = (path) => () => {\r\n history.push({ pathname: path, search: \"\" });\r\n }\r\n\r\n const isSelected = (path) => {\r\n return location.pathname.startsWith(path);\r\n }\r\n\r\n return (\r\n \r\n theme.zIndex.drawer + 1 }}>\r\n \r\n setDrawerOpen(!drawerOpen)}\r\n >\r\n \r\n \r\n \r\n Brand's Admin\r\n \r\n \r\n \r\n \r\n \r\n {/* Login Name: {user?.loginName} */}\r\n {/* Logout\r\n \r\n Logs\r\n Users */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n}\r\n\r\n","/**\r\n * DevExtreme (esm/core/utils/type.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar types = {\r\n \"[object Array]\": \"array\",\r\n \"[object Date]\": \"date\",\r\n \"[object Object]\": \"object\",\r\n \"[object String]\": \"string\"\r\n};\r\nvar type = function(object) {\r\n if (null === object) {\r\n return \"null\"\r\n }\r\n var typeOfObject = Object.prototype.toString.call(object);\r\n return \"object\" === typeof object ? types[typeOfObject] || \"object\" : typeof object\r\n};\r\nvar isBoolean = function(object) {\r\n return \"boolean\" === typeof object\r\n};\r\nvar isExponential = function(value) {\r\n return isNumeric(value) && -1 !== value.toString().indexOf(\"e\")\r\n};\r\nvar isDate = function(object) {\r\n return \"date\" === type(object)\r\n};\r\nvar isDefined = function(object) {\r\n return null !== object && void 0 !== object\r\n};\r\nvar isFunction = function(object) {\r\n return \"function\" === typeof object\r\n};\r\nvar isString = function(object) {\r\n return \"string\" === typeof object\r\n};\r\nvar isNumeric = function(object) {\r\n return \"number\" === typeof object && isFinite(object) || !isNaN(object - parseFloat(object))\r\n};\r\nvar isObject = function(object) {\r\n return \"object\" === type(object)\r\n};\r\nvar isEmptyObject = function(object) {\r\n var property;\r\n for (property in object) {\r\n return false\r\n }\r\n return true\r\n};\r\nvar isPlainObject = function(object) {\r\n if (!object || \"object\" !== type(object)) {\r\n return false\r\n }\r\n var proto = Object.getPrototypeOf(object);\r\n if (!proto) {\r\n return true\r\n }\r\n var ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\r\n return \"function\" === typeof ctor && Object.toString.call(ctor) === Object.toString.call(Object)\r\n};\r\nvar isPrimitive = function(value) {\r\n return -1 === [\"object\", \"array\", \"function\"].indexOf(type(value))\r\n};\r\nvar isWindow = function(object) {\r\n return null != object && object === object.window\r\n};\r\nvar isRenderer = function(object) {\r\n return !!object && !!(object.jquery || object.dxRenderer)\r\n};\r\nvar isPromise = function(object) {\r\n return !!object && isFunction(object.then)\r\n};\r\nvar isDeferred = function(object) {\r\n return !!object && isFunction(object.done) && isFunction(object.fail)\r\n};\r\nvar isEvent = function(object) {\r\n return !!(object && object.preventDefault)\r\n};\r\nexport {\r\n isBoolean,\r\n isExponential,\r\n isDate,\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isNumeric,\r\n isObject,\r\n isEmptyObject,\r\n isPlainObject,\r\n isPrimitive,\r\n isWindow,\r\n isRenderer,\r\n isPromise,\r\n isDeferred,\r\n type,\r\n isEvent\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/extend.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isPlainObject\r\n} from \"./type\";\r\nexport var extendFromObject = function(target, source, overrideExistingValues) {\r\n target = target || {};\r\n for (var prop in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, prop)) {\r\n var value = source[prop];\r\n if (!(prop in target) || overrideExistingValues) {\r\n target[prop] = value\r\n }\r\n }\r\n }\r\n return target\r\n};\r\nexport var extend = function extend(target) {\r\n target = target || {};\r\n var i = 1;\r\n var deep = false;\r\n if (\"boolean\" === typeof target) {\r\n deep = target;\r\n target = arguments[1] || {};\r\n i++\r\n }\r\n for (; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n if (null == source) {\r\n continue\r\n }\r\n for (var key in source) {\r\n var targetValue = target[key];\r\n var sourceValue = source[key];\r\n var sourceValueIsArray = false;\r\n var clone = void 0;\r\n if (\"__proto__\" === key || \"constructor\" === key || target === sourceValue) {\r\n continue\r\n }\r\n if (deep && sourceValue && (isPlainObject(sourceValue) || (sourceValueIsArray = Array.isArray(sourceValue)))) {\r\n if (sourceValueIsArray) {\r\n clone = targetValue && Array.isArray(targetValue) ? targetValue : []\r\n } else {\r\n clone = targetValue && isPlainObject(targetValue) ? targetValue : {}\r\n }\r\n target[key] = extend(deep, clone, sourceValue)\r\n } else if (void 0 !== sourceValue) {\r\n target[key] = sourceValue\r\n }\r\n }\r\n }\r\n return target\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/iterator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar map = (values, callback) => {\r\n if (Array.isArray(values)) {\r\n return values.map(callback)\r\n }\r\n var result = [];\r\n for (var key in values) {\r\n result.push(callback(values[key], key))\r\n }\r\n return result\r\n};\r\nvar each = (values, callback) => {\r\n if (!values) {\r\n return\r\n }\r\n if (\"length\" in values) {\r\n for (var i = 0; i < values.length; i++) {\r\n if (false === callback.call(values[i], i, values[i])) {\r\n break\r\n }\r\n }\r\n } else {\r\n for (var key in values) {\r\n if (false === callback.call(values[key], key, values[key])) {\r\n break\r\n }\r\n }\r\n }\r\n return values\r\n};\r\nvar reverseEach = (array, callback) => {\r\n if (!array || !(\"length\" in array) || 0 === array.length) {\r\n return\r\n }\r\n for (var i = array.length - 1; i >= 0; i--) {\r\n if (false === callback.call(array[i], i, array[i])) {\r\n break\r\n }\r\n }\r\n};\r\nexport {\r\n map,\r\n each,\r\n reverseEach\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/console.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nvar noop = function() {};\r\nvar getConsoleMethod = function(method) {\r\n if (\"undefined\" === typeof console || !isFunction(console[method])) {\r\n return noop\r\n }\r\n return console[method].bind(console)\r\n};\r\nexport var logger = {\r\n log: getConsoleMethod(\"log\"),\r\n info: getConsoleMethod(\"info\"),\r\n warn: getConsoleMethod(\"warn\"),\r\n error: getConsoleMethod(\"error\")\r\n};\r\nexport var debug = function() {\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message)\r\n }\r\n }\r\n return {\r\n assert: assert,\r\n assertParam: function(parameter, message) {\r\n assert(null !== parameter && void 0 !== parameter, message)\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/utils/string.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"./type\";\r\nexport var encodeHtml = function() {\r\n var encodeRegExp = [new RegExp(\"&\", \"g\"), new RegExp('\"', \"g\"), new RegExp(\"'\", \"g\"), new RegExp(\"<\", \"g\"), new RegExp(\">\", \"g\")];\r\n return function(str) {\r\n return String(str).replace(encodeRegExp[0], \"&\").replace(encodeRegExp[1], \""\").replace(encodeRegExp[2], \"'\").replace(encodeRegExp[3], \"<\").replace(encodeRegExp[4], \">\")\r\n }\r\n}();\r\nvar splitQuad = function(raw) {\r\n switch (typeof raw) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 4);\r\n case \"object\":\r\n return [raw.x || raw.h || raw.left, raw.y || raw.v || raw.top, raw.x || raw.h || raw.right, raw.y || raw.v || raw.bottom];\r\n case \"number\":\r\n return [raw];\r\n default:\r\n return raw\r\n }\r\n};\r\nexport var quadToObject = function(raw) {\r\n var quad = splitQuad(raw);\r\n var left = parseInt(quad && quad[0], 10);\r\n var top = parseInt(quad && quad[1], 10);\r\n var right = parseInt(quad && quad[2], 10);\r\n var bottom = parseInt(quad && quad[3], 10);\r\n if (!isFinite(left)) {\r\n left = 0\r\n }\r\n if (!isFinite(top)) {\r\n top = left\r\n }\r\n if (!isFinite(right)) {\r\n right = left\r\n }\r\n if (!isFinite(bottom)) {\r\n bottom = top\r\n }\r\n return {\r\n top: top,\r\n right: right,\r\n bottom: bottom,\r\n left: left\r\n }\r\n};\r\nexport function format(template) {\r\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n values[_key - 1] = arguments[_key]\r\n }\r\n if (isFunction(template)) {\r\n return template(...values)\r\n }\r\n values.forEach((value, index) => {\r\n if (isString(value)) {\r\n value = value.replace(/\\$/g, \"$$$$\")\r\n }\r\n var placeholderReg = new RegExp(\"\\\\{\" + index + \"\\\\}\", \"gm\");\r\n template = template.replace(placeholderReg, value)\r\n });\r\n return template\r\n}\r\nexport var isEmpty = function() {\r\n var SPACE_REGEXP = /\\s/g;\r\n return function(text) {\r\n return !text || !text.replace(SPACE_REGEXP, \"\")\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/version.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var version = \"23.2.9\";\r\n","/**\r\n * DevExtreme (esm/core/utils/error.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport {\r\n format\r\n} from \"./string\";\r\nimport {\r\n version\r\n} from \"../version\";\r\nvar ERROR_URL = \"https://js.devexpress.com/error/\" + version.split(\".\").slice(0, 2).join(\"_\") + \"/\";\r\nexport default function(baseErrors, errors) {\r\n var exports = {\r\n ERROR_MESSAGES: extend(errors, baseErrors),\r\n Error: function() {\r\n return makeError([].slice.call(arguments))\r\n },\r\n log: function(id) {\r\n var method = \"log\";\r\n if (/^E\\d+$/.test(id)) {\r\n method = \"error\"\r\n } else if (/^W\\d+$/.test(id)) {\r\n method = \"warn\"\r\n }\r\n logger[method](\"log\" === method ? id : combineMessage([].slice.call(arguments)))\r\n }\r\n };\r\n\r\n function combineMessage(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n return formatMessage(id, formatDetails(id, args))\r\n }\r\n\r\n function formatDetails(id, args) {\r\n args = [exports.ERROR_MESSAGES[id]].concat(args);\r\n return format.apply(this, args).replace(/\\.*\\s*?$/, \"\")\r\n }\r\n\r\n function formatMessage(id, details) {\r\n var kind = null !== id && void 0 !== id && id.startsWith(\"W\") ? \"warning\" : \"error\";\r\n return format.apply(this, [\"{0} - {1}.\\n\\nFor additional information on this {2} message, see: {3}\", id, details, kind, getErrorUrl(id)])\r\n }\r\n\r\n function makeError(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n var details = formatDetails(id, args);\r\n var url = getErrorUrl(id);\r\n var message = formatMessage(id, details);\r\n return extend(new Error(message), {\r\n __id: id,\r\n __details: details,\r\n url: url\r\n })\r\n }\r\n\r\n function getErrorUrl(id) {\r\n return ERROR_URL + id\r\n }\r\n return exports\r\n}\r\n","/**\r\n * DevExtreme (esm/core/errors.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"./utils/error\";\r\nexport default errorUtils({\r\n E0001: \"Method is not implemented\",\r\n E0002: \"Member name collision: {0}\",\r\n E0003: \"A class must be instantiated using the 'new' keyword\",\r\n E0004: \"The NAME property of the component is not specified\",\r\n E0005: \"Unknown device\",\r\n E0006: \"Unknown endpoint key is requested\",\r\n E0007: \"'Invalidate' method is called outside the update transaction\",\r\n E0008: \"Type of the option name is not appropriate to create an action\",\r\n E0009: \"Component '{0}' has not been initialized for an element\",\r\n E0010: \"Animation configuration with the '{0}' type requires '{1}' configuration as {2}\",\r\n E0011: \"Unknown animation type '{0}'\",\r\n E0012: \"jQuery version is too old. Please upgrade jQuery to 1.10.0 or later\",\r\n E0013: \"KnockoutJS version is too old. Please upgrade KnockoutJS to 2.3.0 or later\",\r\n E0014: \"The 'release' method shouldn't be called for an unlocked Lock object\",\r\n E0015: \"Queued task returned an unexpected result\",\r\n E0017: \"Event namespace is not defined\",\r\n E0018: \"DevExpress.ui.DevExpressPopup widget is required\",\r\n E0020: \"Template engine '{0}' is not supported\",\r\n E0021: \"Unknown theme is set: {0}\",\r\n E0022: \"LINK[rel=DevExpress-theme] tags must go before DevExpress included scripts\",\r\n E0023: \"Template name is not specified\",\r\n E0024: \"DevExtreme bundle already included\",\r\n E0025: \"Unexpected argument type\",\r\n E0100: \"Unknown validation type is detected\",\r\n E0101: \"Misconfigured range validation rule is detected\",\r\n E0102: \"Misconfigured comparison validation rule is detected\",\r\n E0103: \"validationCallback of an asynchronous rule should return a jQuery or a native promise\",\r\n E0110: \"Unknown validation group is detected\",\r\n E0120: \"Adapter for a DevExpressValidator component cannot be configured\",\r\n E0121: \"The 'customItem' parameter of the 'onCustomItemCreating' function is empty or contains invalid data. Assign a custom object or a Promise that is resolved after the item is created.\",\r\n W0000: \"'{0}' is deprecated in {1}. {2}\",\r\n W0001: \"{0} - '{1}' option is deprecated in {2}. {3}\",\r\n W0002: \"{0} - '{1}' method is deprecated in {2}. {3}\",\r\n W0003: \"{0} - '{1}' property is deprecated in {2}. {3}\",\r\n W0004: \"Timeout for theme loading is over: {0}\",\r\n W0005: \"'{0}' event is deprecated in {1}. {2}\",\r\n W0006: \"Invalid recurrence rule: '{0}'\",\r\n W0007: \"'{0}' Globalize culture is not defined\",\r\n W0008: \"Invalid view name: '{0}'\",\r\n W0009: \"Invalid time zone name: '{0}'\",\r\n W0010: \"{0} is deprecated in {1}. {2}\",\r\n W0011: \"Number parsing is invoked while the parser is not defined\",\r\n W0012: \"Date parsing is invoked while the parser is not defined\",\r\n W0013: \"'{0}' file is deprecated in {1}. {2}\",\r\n W0014: \"{0} - '{1}' type is deprecated in {2}. {3}\",\r\n W0015: \"Instead of returning a value from the '{0}' function, write it into the '{1}' field of the function's parameter.\",\r\n W0016: 'The \"{0}\" option does not accept the \"{1}\" value since v{2}. {3}.',\r\n W0017: 'Setting the \"{0}\" property with a function is deprecated since v21.2',\r\n W0018: 'Setting the \"position\" property with a function is deprecated since v21.2',\r\n W0019: \"DevExtreme: Unable to Locate a Valid License Key.\\n\\nIf you are using a 30-day trial version of DevExtreme, you must uninstall all copies of DevExtreme once your 30-day trial period expires. For terms and conditions that govern use of DevExtreme UI components/libraries, please refer to the DevExtreme End User License Agreement: https://js.devexpress.com/EULAs/DevExtremeComplete.\\n\\nTo use DevExtreme in a commercial project, you must purchase a license. For pricing/licensing options, please visit: https://js.devexpress.com/Buy.\\n\\nIf you have licensing-related questions or need help with a purchase, please email clientservices@devexpress.com.\\n\\n\",\r\n W0020: \"DevExtreme: License Key Has Expired.\\n\\nA mismatch exists between the license key used and the DevExtreme version referenced in this project.\\n\\nTo proceed, you can:\\n\\u2022 use a version of DevExtreme linked to your license key: https://www.devexpress.com/ClientCenter/DownloadManager\\n\\u2022 renew your DevExpress Subscription: https://www.devexpress.com/buy/renew (once you renew your subscription, you will be entitled to product updates and support service as defined in the DevExtreme End User License Agreement)\\n\\nIf you have licensing-related questions or need help with a renewal, please email clientservices@devexpress.com.\\n\\n\",\r\n W0021: \"DevExtreme: License Key Verification Has Failed.\\n\\nTo verify your DevExtreme license, make certain to specify a correct key in the GlobalConfig. If you continue to encounter this error, please visit https://www.devexpress.com/ClientCenter/DownloadManager to obtain a valid license key.\\n\\nIf you have a valid license and this problem persists, please submit a support ticket via the DevExpress Support Center. We will be happy to follow-up: https://supportcenter.devexpress.com/ticket/create.\\n\\n\",\r\n W0022: \"DevExtreme: Pre-release software. Not suitable for commercial use.\\n\\nPre-release software may contain deficiencies and as such, should not be considered for use or integrated in any mission critical application.\\n\\n\",\r\n W0023: \"DevExtreme: the following 'devextreme' package version does not match versions of other DevExpress products used in this application:\\n\\n{0}\\n\\nInteroperability between different versions of the products listed herein cannot be guaranteed.\\n\\n\"\r\n});\r\n","/**\r\n * DevExtreme (esm/core/class.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"./errors\";\r\nimport {\r\n isWindow\r\n} from \"./utils/type\";\r\nvar wrapOverridden = function(baseProto, methodName, method) {\r\n return function() {\r\n var prevCallBase = this.callBase;\r\n this.callBase = baseProto[methodName];\r\n try {\r\n return method.apply(this, arguments)\r\n } finally {\r\n this.callBase = prevCallBase\r\n }\r\n }\r\n};\r\nvar clonePrototype = function(obj) {\r\n var func = function() {};\r\n func.prototype = obj.prototype;\r\n return new func\r\n};\r\nvar redefine = function(members) {\r\n var overridden;\r\n var memberName;\r\n var member;\r\n if (!members) {\r\n return this\r\n }\r\n for (memberName in members) {\r\n member = members[memberName];\r\n overridden = \"function\" === typeof this.prototype[memberName] && \"function\" === typeof member;\r\n this.prototype[memberName] = overridden ? wrapOverridden(this.parent.prototype, memberName, member) : member\r\n }\r\n return this\r\n};\r\nvar include = function() {\r\n var classObj = this;\r\n var argument;\r\n var name;\r\n var i;\r\n var hasClassObjOwnProperty = Object.prototype.hasOwnProperty.bind(classObj);\r\n var isES6Class = !hasClassObjOwnProperty(\"_includedCtors\") && !hasClassObjOwnProperty(\"_includedPostCtors\");\r\n if (isES6Class) {\r\n classObj._includedCtors = classObj._includedCtors.slice(0);\r\n classObj._includedPostCtors = classObj._includedPostCtors.slice(0)\r\n }\r\n for (i = 0; i < arguments.length; i++) {\r\n argument = arguments[i];\r\n if (argument.ctor) {\r\n classObj._includedCtors.push(argument.ctor)\r\n }\r\n if (argument.postCtor) {\r\n classObj._includedPostCtors.push(argument.postCtor)\r\n }\r\n for (name in argument) {\r\n if (\"ctor\" === name || \"postCtor\" === name || \"default\" === name) {\r\n continue\r\n }\r\n classObj.prototype[name] = argument[name]\r\n }\r\n }\r\n return classObj\r\n};\r\nvar subclassOf = function(parentClass) {\r\n var hasParentProperty = Object.prototype.hasOwnProperty.bind(this)(\"parent\");\r\n var isES6Class = !hasParentProperty && this.parent;\r\n if (isES6Class) {\r\n var baseClass = Object.getPrototypeOf(this);\r\n return baseClass === parentClass || baseClass.subclassOf(parentClass)\r\n } else {\r\n if (this.parent === parentClass) {\r\n return true\r\n }\r\n if (!this.parent || !this.parent.subclassOf) {\r\n return false\r\n }\r\n return this.parent.subclassOf(parentClass)\r\n }\r\n};\r\nvar abstract = function() {\r\n throw errors.Error(\"E0001\")\r\n};\r\nvar copyStatic = function() {\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n return function(source, destination) {\r\n for (var key in source) {\r\n if (!hasOwn.call(source, key)) {\r\n return\r\n }\r\n destination[key] = source[key]\r\n }\r\n }\r\n}();\r\nvar classImpl = function() {};\r\nclassImpl.inherit = function(members) {\r\n var inheritor = function() {\r\n if (!this || isWindow(this) || \"function\" !== typeof this.constructor) {\r\n throw errors.Error(\"E0003\")\r\n }\r\n var instance = this;\r\n var ctor = instance.ctor;\r\n var includedCtors = instance.constructor._includedCtors;\r\n var includedPostCtors = instance.constructor._includedPostCtors;\r\n var i;\r\n for (i = 0; i < includedCtors.length; i++) {\r\n includedCtors[i].call(instance)\r\n }\r\n if (ctor) {\r\n ctor.apply(instance, arguments)\r\n }\r\n for (i = 0; i < includedPostCtors.length; i++) {\r\n includedPostCtors[i].call(instance)\r\n }\r\n };\r\n inheritor.prototype = clonePrototype(this);\r\n copyStatic(this, inheritor);\r\n inheritor.inherit = this.inherit;\r\n inheritor.abstract = abstract;\r\n inheritor.redefine = redefine;\r\n inheritor.include = include;\r\n inheritor.subclassOf = subclassOf;\r\n inheritor.parent = this;\r\n inheritor._includedCtors = this._includedCtors ? this._includedCtors.slice(0) : [];\r\n inheritor._includedPostCtors = this._includedPostCtors ? this._includedPostCtors.slice(0) : [];\r\n inheritor.prototype.constructor = inheritor;\r\n inheritor.redefine(members);\r\n return inheritor\r\n};\r\nclassImpl.abstract = abstract;\r\nexport default classImpl;\r\n","/**\r\n * DevExtreme (esm/core/utils/dependency_injector.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport Class from \"../class\";\r\nexport default function(object) {\r\n var BaseClass = Class.inherit(object);\r\n var InjectedClass = BaseClass;\r\n var instance = new InjectedClass(object);\r\n var initialFields = {};\r\n var injectFields = function(injectionObject, initial) {\r\n each(injectionObject, (function(key) {\r\n if (isFunction(instance[key])) {\r\n if (initial || !object[key]) {\r\n object[key] = function() {\r\n return instance[key].apply(object, arguments)\r\n }\r\n }\r\n } else {\r\n if (initial) {\r\n initialFields[key] = object[key]\r\n }\r\n object[key] = instance[key]\r\n }\r\n }))\r\n };\r\n injectFields(object, true);\r\n object.inject = function(injectionObject) {\r\n InjectedClass = InjectedClass.inherit(injectionObject);\r\n instance = new InjectedClass;\r\n injectFields(injectionObject)\r\n };\r\n object.resetInjection = function() {\r\n extend(object, initialFields);\r\n InjectedClass = BaseClass;\r\n instance = new BaseClass\r\n };\r\n return object\r\n}\r\n","/**\r\n * DevExtreme (esm/core/config.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport errors from \"./errors\";\r\nvar config = {\r\n rtlEnabled: false,\r\n defaultCurrency: \"USD\",\r\n defaultUseCurrencyAccountingStyle: true,\r\n oDataFilterToLower: true,\r\n serverDecimalSeparator: \".\",\r\n decimalSeparator: \".\",\r\n thousandsSeparator: \",\",\r\n forceIsoDateParsing: true,\r\n wrapActionsBeforeExecute: true,\r\n useLegacyStoreResult: false,\r\n useJQuery: void 0,\r\n editorStylingMode: void 0,\r\n useLegacyVisibleIndex: false,\r\n floatingActionButtonConfig: {\r\n icon: \"add\",\r\n closeIcon: \"close\",\r\n label: \"\",\r\n position: {\r\n at: \"right bottom\",\r\n my: \"right bottom\",\r\n offset: {\r\n x: -16,\r\n y: -16\r\n }\r\n },\r\n maxSpeedDialActionCount: 5,\r\n shading: false,\r\n direction: \"auto\"\r\n },\r\n optionsParser: optionsString => {\r\n if (\"{\" !== optionsString.trim().charAt(0)) {\r\n optionsString = \"{\" + optionsString + \"}\"\r\n }\r\n try {\r\n return JSON.parse(optionsString)\r\n } catch (ex) {\r\n try {\r\n return JSON.parse(normalizeToJSONString(optionsString))\r\n } catch (exNormalize) {\r\n throw errors.Error(\"E3018\", ex, optionsString)\r\n }\r\n }\r\n }\r\n};\r\nvar normalizeToJSONString = optionsString => optionsString.replace(/'/g, '\"').replace(/,\\s*([\\]}])/g, \"$1\").replace(/([{,])\\s*([^\":\\s]+)\\s*:/g, '$1\"$2\":');\r\nvar deprecatedFields = [\"decimalSeparator\", \"thousandsSeparator\"];\r\nvar configMethod = function() {\r\n if (!arguments.length) {\r\n return config\r\n }\r\n var newConfig = arguments.length <= 0 ? void 0 : arguments[0];\r\n deprecatedFields.forEach(deprecatedField => {\r\n if (newConfig[deprecatedField]) {\r\n var message = \"Now, the \".concat(deprecatedField, \" is selected based on the specified locale.\");\r\n errors.log(\"W0003\", \"config\", deprecatedField, \"19.2\", message)\r\n }\r\n });\r\n extend(config, newConfig)\r\n};\r\nif (\"undefined\" !== typeof DevExpress && DevExpress.config) {\r\n configMethod(DevExpress.config)\r\n}\r\nexport default configMethod;\r\n","/**\r\n * DevExtreme (esm/core/guid.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"./class\";\r\nvar Guid = Class.inherit({\r\n ctor: function(value) {\r\n if (value) {\r\n value = String(value)\r\n }\r\n this._value = this._normalize(value || this._generate())\r\n },\r\n _normalize: function(value) {\r\n value = value.replace(/[^a-f0-9]/gi, \"\").toLowerCase();\r\n while (value.length < 32) {\r\n value += \"0\"\r\n }\r\n return [value.substr(0, 8), value.substr(8, 4), value.substr(12, 4), value.substr(16, 4), value.substr(20, 12)].join(\"-\")\r\n },\r\n _generate: function() {\r\n var value = \"\";\r\n for (var i = 0; i < 32; i++) {\r\n value += Math.round(15 * Math.random()).toString(16)\r\n }\r\n return value\r\n },\r\n toString: function() {\r\n return this._value\r\n },\r\n valueOf: function() {\r\n return this._value\r\n },\r\n toJSON: function() {\r\n return this._value\r\n }\r\n});\r\nexport default Guid;\r\n","/**\r\n * DevExtreme (esm/core/utils/callbacks.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar Callback = function(options) {\r\n this._options = options || {};\r\n this._list = [];\r\n this._queue = [];\r\n this._firing = false;\r\n this._fired = false;\r\n this._firingIndexes = []\r\n};\r\nCallback.prototype._fireCore = function(context, args) {\r\n var firingIndexes = this._firingIndexes;\r\n var list = this._list;\r\n var stopOnFalse = this._options.stopOnFalse;\r\n var step = firingIndexes.length;\r\n for (firingIndexes[step] = 0; firingIndexes[step] < list.length; firingIndexes[step]++) {\r\n var result = list[firingIndexes[step]].apply(context, args);\r\n if (false === result && stopOnFalse) {\r\n break\r\n }\r\n }\r\n firingIndexes.pop()\r\n};\r\nCallback.prototype.add = function(fn) {\r\n if (\"function\" === typeof fn && (!this._options.unique || !this.has(fn))) {\r\n this._list.push(fn)\r\n }\r\n return this\r\n};\r\nCallback.prototype.remove = function(fn) {\r\n var list = this._list;\r\n var firingIndexes = this._firingIndexes;\r\n var index = list.indexOf(fn);\r\n if (index > -1) {\r\n list.splice(index, 1);\r\n if (this._firing && firingIndexes.length) {\r\n for (var step = 0; step < firingIndexes.length; step++) {\r\n if (index <= firingIndexes[step]) {\r\n firingIndexes[step]--\r\n }\r\n }\r\n }\r\n }\r\n return this\r\n};\r\nCallback.prototype.has = function(fn) {\r\n var list = this._list;\r\n return fn ? list.indexOf(fn) > -1 : !!list.length\r\n};\r\nCallback.prototype.empty = function(fn) {\r\n this._list = [];\r\n return this\r\n};\r\nCallback.prototype.fireWith = function(context, args) {\r\n var queue = this._queue;\r\n args = args || [];\r\n args = args.slice ? args.slice() : args;\r\n if (this._options.syncStrategy) {\r\n this._firing = true;\r\n this._fireCore(context, args)\r\n } else {\r\n queue.push([context, args]);\r\n if (this._firing) {\r\n return\r\n }\r\n this._firing = true;\r\n while (queue.length) {\r\n var memory = queue.shift();\r\n this._fireCore(memory[0], memory[1])\r\n }\r\n }\r\n this._firing = false;\r\n this._fired = true;\r\n return this\r\n};\r\nCallback.prototype.fire = function() {\r\n this.fireWith(this, arguments)\r\n};\r\nCallback.prototype.fired = function() {\r\n return this._fired\r\n};\r\nvar Callbacks = function(options) {\r\n return new Callback(options)\r\n};\r\nexport default Callbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/deferred.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isPromise\r\n} from \"../utils/type\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nvar deferredConfig = [{\r\n method: \"resolve\",\r\n handler: \"done\",\r\n state: \"resolved\"\r\n}, {\r\n method: \"reject\",\r\n handler: \"fail\",\r\n state: \"rejected\"\r\n}, {\r\n method: \"notify\",\r\n handler: \"progress\"\r\n}];\r\nvar _DeferredObj = function() {\r\n var that = this;\r\n this._state = \"pending\";\r\n this._promise = {};\r\n deferredConfig.forEach(function(config) {\r\n var methodName = config.method;\r\n this[methodName + \"Callbacks\"] = Callbacks();\r\n this[methodName] = function() {\r\n return this[methodName + \"With\"](this._promise, arguments)\r\n }.bind(this);\r\n this._promise[config.handler] = function(handler) {\r\n if (!handler) {\r\n return this\r\n }\r\n var callbacks = that[methodName + \"Callbacks\"];\r\n if (callbacks.fired()) {\r\n handler.apply(that[methodName + \"Context\"], that[methodName + \"Args\"])\r\n } else {\r\n callbacks.add(function(context, args) {\r\n handler.apply(context, args)\r\n }.bind(this))\r\n }\r\n return this\r\n }\r\n }.bind(this));\r\n this._promise.always = function(handler) {\r\n return this.done(handler).fail(handler)\r\n };\r\n this._promise.catch = function(handler) {\r\n return this.then(null, handler)\r\n };\r\n this._promise.then = function(resolve, reject) {\r\n var result = new _DeferredObj;\r\n [\"done\", \"fail\"].forEach(function(method) {\r\n var callback = \"done\" === method ? resolve : reject;\r\n this[method]((function() {\r\n if (!callback) {\r\n result[\"done\" === method ? \"resolve\" : \"reject\"].apply(this, arguments);\r\n return\r\n }\r\n var callbackResult = callback && callback.apply(this, arguments);\r\n if (isDeferred(callbackResult)) {\r\n callbackResult.done(result.resolve).fail(result.reject)\r\n } else if (isPromise(callbackResult)) {\r\n callbackResult.then(result.resolve, result.reject)\r\n } else {\r\n result.resolve.apply(this, isDefined(callbackResult) ? [callbackResult] : arguments)\r\n }\r\n }))\r\n }.bind(this));\r\n return result.promise()\r\n };\r\n this._promise.state = function() {\r\n return that._state\r\n };\r\n this._promise.promise = function(args) {\r\n return args ? extend(args, that._promise) : that._promise\r\n };\r\n this._promise.promise(this)\r\n};\r\ndeferredConfig.forEach((function(config) {\r\n var methodName = config.method;\r\n var state = config.state;\r\n _DeferredObj.prototype[methodName + \"With\"] = function(context, args) {\r\n var callbacks = this[methodName + \"Callbacks\"];\r\n if (\"pending\" === this.state()) {\r\n this[methodName + \"Args\"] = args;\r\n this[methodName + \"Context\"] = context;\r\n if (state) {\r\n this._state = state\r\n }\r\n callbacks.fire(context, args);\r\n if (\"pending\" !== state) {\r\n this.resolveCallbacks.empty();\r\n this.rejectCallbacks.empty()\r\n }\r\n }\r\n return this\r\n }\r\n}));\r\nexport function fromPromise(promise, context) {\r\n if (isDeferred(promise)) {\r\n return promise\r\n } else if (isPromise(promise)) {\r\n var d = new _DeferredObj;\r\n promise.then((function() {\r\n d.resolveWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }), (function() {\r\n d.rejectWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }));\r\n return d\r\n }\r\n return (new _DeferredObj).resolveWith(context, [promise])\r\n}\r\nvar whenFunc = function() {\r\n if (1 === arguments.length) {\r\n return fromPromise(arguments[0])\r\n }\r\n var values = [].slice.call(arguments);\r\n var contexts = [];\r\n var resolvedCount = 0;\r\n var deferred = new _DeferredObj;\r\n var updateState = function(i) {\r\n return function(value) {\r\n contexts[i] = this;\r\n values[i] = arguments.length > 1 ? [].slice.call(arguments) : value;\r\n resolvedCount++;\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n }\r\n };\r\n for (var i = 0; i < values.length; i++) {\r\n if (isDeferred(values[i])) {\r\n values[i].promise().done(updateState(i)).fail(deferred.reject)\r\n } else {\r\n resolvedCount++\r\n }\r\n }\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n return deferred.promise()\r\n};\r\nexport function setStrategy(value) {\r\n _DeferredObj = value.Deferred;\r\n whenFunc = value.when\r\n}\r\nexport function Deferred() {\r\n return new _DeferredObj\r\n}\r\nexport function when() {\r\n return whenFunc.apply(this, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/variable_wrapper.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport dependencyInjector from \"./dependency_injector\";\r\nexport default dependencyInjector({\r\n isWrapped: function() {\r\n return false\r\n },\r\n isWritableWrapped: function() {\r\n return false\r\n },\r\n wrap: function(value) {\r\n return value\r\n },\r\n unwrap: function(value) {\r\n return value\r\n },\r\n assign: function() {\r\n logger.error(\"Method 'assign' should not be used for not wrapped variables. Use 'isWrapped' method for ensuring.\")\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/object.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric,\r\n isPlainObject,\r\n isObject\r\n} from \"./type\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar clone = function() {\r\n function Clone() {}\r\n return function(obj) {\r\n Clone.prototype = obj;\r\n return new Clone\r\n }\r\n}();\r\nvar orderEach = function(map, func) {\r\n var keys = [];\r\n var key;\r\n var i;\r\n for (key in map) {\r\n if (Object.prototype.hasOwnProperty.call(map, key)) {\r\n keys.push(key)\r\n }\r\n }\r\n keys.sort((function(x, y) {\r\n var isNumberX = isNumeric(x);\r\n var isNumberY = isNumeric(y);\r\n if (isNumberX && isNumberY) {\r\n return x - y\r\n }\r\n if (isNumberX && !isNumberY) {\r\n return -1\r\n }\r\n if (!isNumberX && isNumberY) {\r\n return 1\r\n }\r\n if (x < y) {\r\n return -1\r\n }\r\n if (x > y) {\r\n return 1\r\n }\r\n return 0\r\n }));\r\n for (i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n func(key, map[key])\r\n }\r\n};\r\nvar assignValueToProperty = function(target, property, value, assignByReference) {\r\n if (!assignByReference && variableWrapper.isWrapped(target[property])) {\r\n variableWrapper.assign(target[property], value)\r\n } else {\r\n target[property] = value\r\n }\r\n};\r\nvar deepExtendArraySafe = function deepExtendArraySafe(target, changes, extendComplexObject, assignByReference) {\r\n var prevValue;\r\n var newValue;\r\n for (var name in changes) {\r\n prevValue = target[name];\r\n newValue = changes[name];\r\n if (\"__proto__\" === name || \"constructor\" === name || target === newValue) {\r\n continue\r\n }\r\n if (isPlainObject(newValue)) {\r\n var goDeeper = extendComplexObject ? isObject(prevValue) : isPlainObject(prevValue);\r\n newValue = deepExtendArraySafe(goDeeper ? prevValue : {}, newValue, extendComplexObject, assignByReference)\r\n }\r\n if (void 0 !== newValue && prevValue !== newValue) {\r\n assignValueToProperty(target, name, newValue, assignByReference)\r\n }\r\n }\r\n return target\r\n};\r\nexport {\r\n clone,\r\n orderEach,\r\n deepExtendArraySafe\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/data.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport Class from \"../class\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"./object\";\r\nimport {\r\n isObject,\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar unwrapVariable = variableWrapper.unwrap;\r\nvar isWrapped = variableWrapper.isWrapped;\r\nvar assign = variableWrapper.assign;\r\nvar bracketsToDots = function(expr) {\r\n return expr.replace(/\\[/g, \".\").replace(/\\]/g, \"\")\r\n};\r\nexport var getPathParts = function(name) {\r\n return bracketsToDots(name).split(\".\")\r\n};\r\nvar readPropValue = function(obj, propName, options) {\r\n options = options || {};\r\n if (\"this\" === propName) {\r\n return unwrap(obj, options)\r\n }\r\n return unwrap(obj[propName], options)\r\n};\r\nvar assignPropValue = function(obj, propName, value, options) {\r\n if (\"this\" === propName) {\r\n throw new errors.Error(\"E4016\")\r\n }\r\n var propValue = obj[propName];\r\n if (options.unwrapObservables && isWrapped(propValue)) {\r\n assign(propValue, value)\r\n } else {\r\n obj[propName] = value\r\n }\r\n};\r\nvar prepareOptions = function(options) {\r\n options = options || {};\r\n options.unwrapObservables = void 0 !== options.unwrapObservables ? options.unwrapObservables : true;\r\n return options\r\n};\r\n\r\nfunction unwrap(value, options) {\r\n return options.unwrapObservables ? unwrapVariable(value) : value\r\n}\r\nexport var compileGetter = function(expr) {\r\n if (arguments.length > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n if (!expr || \"this\" === expr) {\r\n return function(obj) {\r\n return obj\r\n }\r\n }\r\n if (\"string\" === typeof expr) {\r\n var path = getPathParts(expr);\r\n return function(obj, options) {\r\n options = prepareOptions(options);\r\n var functionAsIs = options.functionsAsIs;\r\n var hasDefaultValue = \"defaultValue\" in options;\r\n var current = unwrap(obj, options);\r\n for (var i = 0; i < path.length; i++) {\r\n if (!current) {\r\n if (null == current && hasDefaultValue) {\r\n return options.defaultValue\r\n }\r\n break\r\n }\r\n var pathPart = path[i];\r\n if (hasDefaultValue && isObject(current) && !(pathPart in current)) {\r\n return options.defaultValue\r\n }\r\n var next = unwrap(current[pathPart], options);\r\n if (!functionAsIs && isFunction(next)) {\r\n next = next.call(current)\r\n }\r\n current = next\r\n }\r\n return current\r\n }\r\n }\r\n if (Array.isArray(expr)) {\r\n return combineGetters(expr)\r\n }\r\n if (isFunction(expr)) {\r\n return expr\r\n }\r\n};\r\n\r\nfunction combineGetters(getters) {\r\n var compiledGetters = {};\r\n for (var i = 0, l = getters.length; i < l; i++) {\r\n var getter = getters[i];\r\n compiledGetters[getter] = compileGetter(getter)\r\n }\r\n return function(obj, options) {\r\n var result;\r\n each(compiledGetters, (function(name) {\r\n var value = this(obj, options);\r\n if (void 0 === value) {\r\n return\r\n }\r\n var current = result || (result = {});\r\n var path = name.split(\".\");\r\n var last = path.length - 1;\r\n for (var _i = 0; _i < last; _i++) {\r\n var pathItem = path[_i];\r\n if (!(pathItem in current)) {\r\n current[pathItem] = {}\r\n }\r\n current = current[pathItem]\r\n }\r\n current[path[last]] = value\r\n }));\r\n return result\r\n }\r\n}\r\n\r\nfunction toLowerCase(value, options) {\r\n return null !== options && void 0 !== options && options.locale ? value.toLocaleLowerCase(options.locale) : value.toLowerCase()\r\n}\r\n\r\nfunction toUpperCase(value, options) {\r\n return null !== options && void 0 !== options && options.locale ? value.toLocaleUpperCase(options.locale) : value.toUpperCase()\r\n}\r\nvar ensurePropValueDefined = function(obj, propName, value, options) {\r\n if (isDefined(value)) {\r\n return value\r\n }\r\n var newValue = {};\r\n assignPropValue(obj, propName, newValue, options);\r\n return newValue\r\n};\r\nexport var compileSetter = function(expr) {\r\n expr = getPathParts(expr || \"this\");\r\n var lastLevelIndex = expr.length - 1;\r\n return function(obj, value, options) {\r\n options = prepareOptions(options);\r\n var currentValue = unwrap(obj, options);\r\n expr.forEach((function(propertyName, levelIndex) {\r\n var propertyValue = readPropValue(currentValue, propertyName, options);\r\n var isPropertyFunc = !options.functionsAsIs && isFunction(propertyValue) && !isWrapped(propertyValue);\r\n if (levelIndex === lastLevelIndex) {\r\n if (options.merge && isPlainObject(value) && (!isDefined(propertyValue) || isPlainObject(propertyValue))) {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n deepExtendArraySafe(propertyValue, value, false, true)\r\n } else if (isPropertyFunc) {\r\n currentValue[propertyName](value)\r\n } else {\r\n assignPropValue(currentValue, propertyName, value, options)\r\n }\r\n } else {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n if (isPropertyFunc) {\r\n propertyValue = propertyValue.call(currentValue)\r\n }\r\n currentValue = propertyValue\r\n }\r\n }))\r\n }\r\n};\r\nexport var toComparable = function(value, caseSensitive) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (value instanceof Date) {\r\n return value.getTime()\r\n }\r\n if (value && value instanceof Class && value.valueOf) {\r\n return value.valueOf()\r\n }\r\n if (!caseSensitive && \"string\" === typeof value) {\r\n var _options$collatorOpti, _options$locale;\r\n if (\"base\" === (null === options || void 0 === options ? void 0 : null === (_options$collatorOpti = options.collatorOptions) || void 0 === _options$collatorOpti ? void 0 : _options$collatorOpti.sensitivity)) {\r\n var REMOVE_DIACRITICAL_MARKS_REGEXP = /[\\u0300-\\u036f]/g;\r\n value = value.normalize(\"NFD\").replace(REMOVE_DIACRITICAL_MARKS_REGEXP, \"\")\r\n }\r\n var locale = null === options || void 0 === options ? void 0 : null === (_options$locale = options.locale) || void 0 === _options$locale ? void 0 : _options$locale.toLowerCase();\r\n var useUpperCase = locale && !![\"hy\", \"el\"].find(code => locale === code || locale.startsWith(\"\".concat(code, \"-\")));\r\n return (useUpperCase ? toUpperCase : toLowerCase)(value, options)\r\n }\r\n return value\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/common.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport config from \"../config\";\r\nimport Guid from \"../guid\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../utils/deferred\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isObject,\r\n type\r\n} from \"./type\";\r\nexport var ensureDefined = function(value, defaultValue) {\r\n return isDefined(value) ? value : defaultValue\r\n};\r\nexport var executeAsync = function(action, context) {\r\n var deferred = new Deferred;\r\n var normalizedContext = context || this;\r\n var task = {\r\n promise: deferred.promise(),\r\n abort: function() {\r\n clearTimeout(timerId);\r\n deferred.rejectWith(normalizedContext)\r\n }\r\n };\r\n var callback = function() {\r\n var result = action.call(normalizedContext);\r\n if (result && result.done && isFunction(result.done)) {\r\n result.done((function() {\r\n deferred.resolveWith(normalizedContext)\r\n }))\r\n } else {\r\n deferred.resolveWith(normalizedContext)\r\n }\r\n };\r\n var timerId = (arguments[2] || setTimeout)(callback, \"number\" === typeof context ? context : 0);\r\n return task\r\n};\r\nvar delayedFuncs = [];\r\nvar delayedNames = [];\r\nvar delayedDeferreds = [];\r\nvar executingName;\r\nvar deferExecute = function(name, func, deferred) {\r\n if (executingName && executingName !== name) {\r\n delayedFuncs.push(func);\r\n delayedNames.push(name);\r\n deferred = deferred || new Deferred;\r\n delayedDeferreds.push(deferred);\r\n return deferred\r\n } else {\r\n var oldExecutingName = executingName;\r\n var currentDelayedCount = delayedDeferreds.length;\r\n executingName = name;\r\n var result = func();\r\n if (!result) {\r\n if (delayedDeferreds.length > currentDelayedCount) {\r\n result = when.apply(this, delayedDeferreds.slice(currentDelayedCount))\r\n } else if (deferred) {\r\n deferred.resolve()\r\n }\r\n }\r\n executingName = oldExecutingName;\r\n if (deferred && result && result.done) {\r\n result.done(deferred.resolve).fail(deferred.reject)\r\n }\r\n if (!executingName && delayedFuncs.length) {\r\n (\"render\" === delayedNames.shift() ? deferRender : deferUpdate)(delayedFuncs.shift(), delayedDeferreds.shift())\r\n }\r\n return result || when()\r\n }\r\n};\r\nexport var deferRender = function(func, deferred) {\r\n return deferExecute(\"render\", func, deferred)\r\n};\r\nexport var deferUpdate = function(func, deferred) {\r\n return deferExecute(\"update\", func, deferred)\r\n};\r\nexport var deferRenderer = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"render\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var deferUpdater = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"update\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var findBestMatches = function(targetFilter, items, mapFn) {\r\n var bestMatches = [];\r\n var maxMatchCount = 0;\r\n each(items, (index, itemSrc) => {\r\n var matchCount = 0;\r\n var item = mapFn ? mapFn(itemSrc) : itemSrc;\r\n each(targetFilter, (paramName, targetValue) => {\r\n var value = item[paramName];\r\n if (void 0 === value) {\r\n return\r\n }\r\n if (match(value, targetValue)) {\r\n matchCount++;\r\n return\r\n }\r\n matchCount = -1;\r\n return false\r\n });\r\n if (matchCount < maxMatchCount) {\r\n return\r\n }\r\n if (matchCount > maxMatchCount) {\r\n bestMatches.length = 0;\r\n maxMatchCount = matchCount\r\n }\r\n bestMatches.push(itemSrc)\r\n });\r\n return bestMatches\r\n};\r\nvar match = function(value, targetValue) {\r\n if (Array.isArray(value) && Array.isArray(targetValue)) {\r\n var mismatch = false;\r\n each(value, (index, valueItem) => {\r\n if (valueItem !== targetValue[index]) {\r\n mismatch = true;\r\n return false\r\n }\r\n });\r\n if (mismatch) {\r\n return false\r\n }\r\n return true\r\n }\r\n if (value === targetValue) {\r\n return true\r\n }\r\n return false\r\n};\r\nexport var splitPair = function(raw) {\r\n var _raw$x, _raw$y;\r\n switch (type(raw)) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 2);\r\n case \"object\":\r\n return [null !== (_raw$x = raw.x) && void 0 !== _raw$x ? _raw$x : raw.h, null !== (_raw$y = raw.y) && void 0 !== _raw$y ? _raw$y : raw.v];\r\n case \"number\":\r\n return [raw];\r\n case \"array\":\r\n return raw;\r\n default:\r\n return null\r\n }\r\n};\r\nexport var normalizeKey = function(id) {\r\n var key = isString(id) ? id : id.toString();\r\n var arr = key.match(/[^a-zA-Z0-9_]/g);\r\n arr && each(arr, (_, sign) => {\r\n key = key.replace(sign, \"__\" + sign.charCodeAt() + \"__\")\r\n });\r\n return key\r\n};\r\nexport var denormalizeKey = function(key) {\r\n var arr = key.match(/__\\d+__/g);\r\n arr && arr.forEach(char => {\r\n var charCode = parseInt(char.replace(\"__\", \"\"));\r\n key = key.replace(char, String.fromCharCode(charCode))\r\n });\r\n return key\r\n};\r\nexport var pairToObject = function(raw, preventRound) {\r\n var pair = splitPair(raw);\r\n var h = preventRound ? parseFloat(pair && pair[0]) : parseInt(pair && pair[0], 10);\r\n var v = preventRound ? parseFloat(pair && pair[1]) : parseInt(pair && pair[1], 10);\r\n if (!isFinite(h)) {\r\n h = 0\r\n }\r\n if (!isFinite(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nexport var getKeyHash = function(key) {\r\n if (key instanceof Guid) {\r\n return key.toString()\r\n } else if (isObject(key) || Array.isArray(key)) {\r\n try {\r\n var keyHash = JSON.stringify(key);\r\n return \"{}\" === keyHash ? key : keyHash\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nexport var escapeRegExp = function(string) {\r\n return string.replace(/[[\\]{}\\-()*+?.\\\\^$|\\s]/g, \"\\\\$&\")\r\n};\r\nexport var applyServerDecimalSeparator = function(value) {\r\n var separator = config().serverDecimalSeparator;\r\n if (isDefined(value)) {\r\n value = value.toString().replace(\".\", separator)\r\n }\r\n return value\r\n};\r\nexport var noop = function() {};\r\nexport var asyncNoop = function() {\r\n return (new Deferred).resolve().promise()\r\n};\r\nexport var grep = function(elements, checkFunction, invert) {\r\n var result = [];\r\n var check;\r\n var expectedCheck = !invert;\r\n for (var i = 0; i < elements.length; i++) {\r\n check = !!checkFunction(elements[i], i);\r\n if (check === expectedCheck) {\r\n result.push(elements[i])\r\n }\r\n }\r\n return result\r\n};\r\nvar compareArrays = (array1, array2, depth, options) => {\r\n if (array1.length !== array2.length) {\r\n return false\r\n }\r\n return !array1.some((item, idx) => !compareByValue(item, array2[idx], depth + 1, _extends({}, options, {\r\n strict: true\r\n })))\r\n};\r\nvar compareObjects = (object1, object2, depth, options) => {\r\n var keys1 = Object.keys(object1);\r\n var keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false\r\n }\r\n var keys2Set = new Set(keys2);\r\n return !keys1.some(key => !keys2Set.has(key) || !compareByValue(object1[key], object2[key], depth + 1, options))\r\n};\r\nvar DEFAULT_EQUAL_BY_VALUE_OPTS = {\r\n maxDepth: 3,\r\n strict: true\r\n};\r\nvar compareByValue = (value1, value2, depth, options) => {\r\n var {\r\n strict: strict,\r\n maxDepth: maxDepth\r\n } = options;\r\n var comparable1 = toComparable(value1, true);\r\n var comparable2 = toComparable(value2, true);\r\n var comparisonResult = strict ? comparable1 === comparable2 : comparable1 == comparable2;\r\n switch (true) {\r\n case comparisonResult:\r\n case depth >= maxDepth:\r\n return true;\r\n case isObject(comparable1) && isObject(comparable2):\r\n return compareObjects(comparable1, comparable2, depth, options);\r\n case Array.isArray(comparable1) && Array.isArray(comparable2):\r\n return compareArrays(comparable1, comparable2, depth, options);\r\n default:\r\n return false\r\n }\r\n};\r\nexport var equalByValue = function(value1, value2) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : DEFAULT_EQUAL_BY_VALUE_OPTS;\r\n var compareOptions = _extends({}, DEFAULT_EQUAL_BY_VALUE_OPTS, options);\r\n return compareByValue(value1, value2, 0, compareOptions)\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/shadow_dom.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar DX_RULE_PREFIX = \"dx-\";\r\nvar ownerDocumentStyleSheet = null;\r\n\r\nfunction createConstructedStyleSheet(rootNode) {\r\n try {\r\n return new CSSStyleSheet\r\n } catch (err) {\r\n var styleElement = rootNode.ownerDocument.createElement(\"style\");\r\n rootNode.appendChild(styleElement);\r\n return styleElement.sheet\r\n }\r\n}\r\n\r\nfunction processRules(targetStyleSheet, styleSheets, needApplyAllStyles) {\r\n for (var i = 0; i < styleSheets.length; i++) {\r\n var sheet = styleSheets[i];\r\n try {\r\n for (var j = 0; j < sheet.cssRules.length; j++) {\r\n insertRule(targetStyleSheet, sheet.cssRules[j], needApplyAllStyles)\r\n }\r\n } catch (err) {}\r\n }\r\n}\r\n\r\nfunction insertRule(targetStyleSheet, rule, needApplyAllStyles) {\r\n var _rule$selectorText, _rule$cssRules, _rule$cssRules$, _rule$cssRules$$selec, _rule$name, _rule$style;\r\n var isDxRule = needApplyAllStyles || (null === (_rule$selectorText = rule.selectorText) || void 0 === _rule$selectorText ? void 0 : _rule$selectorText.includes(DX_RULE_PREFIX)) || (null === (_rule$cssRules = rule.cssRules) || void 0 === _rule$cssRules ? void 0 : null === (_rule$cssRules$ = _rule$cssRules[0]) || void 0 === _rule$cssRules$ ? void 0 : null === (_rule$cssRules$$selec = _rule$cssRules$.selectorText) || void 0 === _rule$cssRules$$selec ? void 0 : _rule$cssRules$$selec.includes(DX_RULE_PREFIX)) || (null === (_rule$name = rule.name) || void 0 === _rule$name ? void 0 : _rule$name.startsWith(DX_RULE_PREFIX)) || \"DXIcons\" === (null === (_rule$style = rule.style) || void 0 === _rule$style ? void 0 : _rule$style.fontFamily);\r\n if (isDxRule) {\r\n targetStyleSheet.insertRule(rule.cssText, targetStyleSheet.cssRules.length)\r\n }\r\n}\r\nexport function addShadowDomStyles($element) {\r\n var _el$getRootNode;\r\n var el = $element.get(0);\r\n var root = null === (_el$getRootNode = el.getRootNode) || void 0 === _el$getRootNode ? void 0 : _el$getRootNode.call(el);\r\n if (!(null !== root && void 0 !== root && root.host)) {\r\n return\r\n }\r\n if (!ownerDocumentStyleSheet) {\r\n ownerDocumentStyleSheet = createConstructedStyleSheet(root);\r\n processRules(ownerDocumentStyleSheet, el.ownerDocument.styleSheets, false)\r\n }\r\n var currentShadowDomStyleSheet = createConstructedStyleSheet(root);\r\n processRules(currentShadowDomStyleSheet, root.styleSheets, true);\r\n root.adoptedStyleSheets = [ownerDocumentStyleSheet, currentShadowDomStyleSheet]\r\n}\r\n\r\nfunction isPositionInElementRectangle(element, x, y) {\r\n var rect = element.getBoundingClientRect();\r\n return rect && x >= rect.left && x < rect.right && y >= rect.top && y < rect.bottom\r\n}\r\n\r\nfunction createQueue() {\r\n var shiftIndex = 0;\r\n var items = [];\r\n return {\r\n push(item) {\r\n items.push(item);\r\n return this\r\n },\r\n shift() {\r\n shiftIndex++;\r\n return items[shiftIndex - 1]\r\n },\r\n get length() {\r\n return items.length - shiftIndex\r\n },\r\n get items() {\r\n return items\r\n }\r\n }\r\n}\r\nexport function getShadowElementsFromPoint(x, y, root) {\r\n var elementQueue = createQueue().push(root);\r\n while (elementQueue.length) {\r\n var el = elementQueue.shift();\r\n for (var i = 0; i < el.childNodes.length; i++) {\r\n var childNode = el.childNodes[i];\r\n if (childNode.nodeType === Node.ELEMENT_NODE && isPositionInElementRectangle(childNode, x, y) && \"none\" !== getComputedStyle(childNode).pointerEvents) {\r\n elementQueue.push(childNode)\r\n }\r\n }\r\n }\r\n var result = elementQueue.items.reverse();\r\n result.pop();\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/core/dom_adapter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport injector from \"./utils/dependency_injector\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getShadowElementsFromPoint\r\n} from \"./utils/shadow_dom\";\r\nvar ELEMENT_NODE = 1;\r\nvar TEXT_NODE = 3;\r\nvar DOCUMENT_NODE = 9;\r\nvar DOCUMENT_FRAGMENT_NODE = 11;\r\nvar nativeDOMAdapterStrategy = {\r\n querySelectorAll: (element, selector) => element.querySelectorAll(selector),\r\n elementMatches(element, selector) {\r\n var matches = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector || (selector => {\r\n var doc = element.document || element.ownerDocument;\r\n if (!doc) {\r\n return false\r\n }\r\n var items = this.querySelectorAll(doc, selector);\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] === element) {\r\n return true\r\n }\r\n }\r\n });\r\n return matches.call(element, selector)\r\n },\r\n createElement(tagName, context) {\r\n context = context || this._document;\r\n return context.createElement(tagName)\r\n },\r\n createElementNS(ns, tagName, context) {\r\n context = context || this._document;\r\n return context.createElementNS(ns, tagName)\r\n },\r\n createTextNode(text, context) {\r\n context = context || this._document;\r\n return context.createTextNode(text)\r\n },\r\n createAttribute(text, context) {\r\n context = context || this._document;\r\n return context.createAttribute(text)\r\n },\r\n isNode: element => element && \"object\" === typeof element && \"nodeType\" in element && \"nodeName\" in element,\r\n isElementNode: element => element && element.nodeType === ELEMENT_NODE,\r\n isTextNode: element => element && element.nodeType === TEXT_NODE,\r\n isDocument: element => element && element.nodeType === DOCUMENT_NODE,\r\n isDocumentFragment: element => element && element.nodeType === DOCUMENT_FRAGMENT_NODE,\r\n removeElement(element) {\r\n var parentNode = element && element.parentNode;\r\n if (parentNode) {\r\n parentNode.removeChild(element)\r\n }\r\n },\r\n insertElement(parentElement, newElement, nextSiblingElement) {\r\n if (parentElement && newElement && parentElement !== newElement) {\r\n if (nextSiblingElement) {\r\n parentElement.insertBefore(newElement, nextSiblingElement)\r\n } else {\r\n parentElement.appendChild(newElement)\r\n }\r\n }\r\n },\r\n getAttribute: (element, name) => element.getAttribute(name),\r\n setAttribute(element, name, value) {\r\n if (\"style\" === name) {\r\n element.style.cssText = value\r\n } else {\r\n element.setAttribute(name, value)\r\n }\r\n },\r\n removeAttribute(element, name) {\r\n element.removeAttribute(name)\r\n },\r\n setProperty(element, name, value) {\r\n element[name] = value\r\n },\r\n setText(element, text) {\r\n if (element) {\r\n element.textContent = text\r\n }\r\n },\r\n setClass(element, className, isAdd) {\r\n if (1 === element.nodeType && className) {\r\n isAdd ? element.classList.add(className) : element.classList.remove(className)\r\n }\r\n },\r\n setStyle(element, name, value) {\r\n element.style[name] = value || \"\"\r\n },\r\n _document: \"undefined\" === typeof document ? void 0 : document,\r\n getDocument() {\r\n return this._document\r\n },\r\n getActiveElement(element) {\r\n var activeElementHolder = this.getRootNode(element);\r\n return activeElementHolder.activeElement\r\n },\r\n getRootNode(element) {\r\n var _element$getRootNode, _element$getRootNode2;\r\n return null !== (_element$getRootNode = null === element || void 0 === element ? void 0 : null === (_element$getRootNode2 = element.getRootNode) || void 0 === _element$getRootNode2 ? void 0 : _element$getRootNode2.call(element)) && void 0 !== _element$getRootNode ? _element$getRootNode : this._document\r\n },\r\n getBody() {\r\n return this._document.body\r\n },\r\n createDocumentFragment() {\r\n return this._document.createDocumentFragment()\r\n },\r\n getDocumentElement() {\r\n return this._document.documentElement\r\n },\r\n getLocation() {\r\n return this._document.location\r\n },\r\n getSelection() {\r\n return this._document.selection\r\n },\r\n getReadyState() {\r\n return this._document.readyState\r\n },\r\n getHead() {\r\n return this._document.head\r\n },\r\n hasDocumentProperty(property) {\r\n return property in this._document\r\n },\r\n listen(element, event, callback, options) {\r\n if (!element || !(\"addEventListener\" in element)) {\r\n return noop\r\n }\r\n element.addEventListener(event, callback, options);\r\n return () => {\r\n element.removeEventListener(event, callback)\r\n }\r\n },\r\n elementsFromPoint(x, y, element) {\r\n var activeElementHolder = this.getRootNode(element);\r\n if (activeElementHolder.host) {\r\n return getShadowElementsFromPoint(x, y, activeElementHolder)\r\n }\r\n return activeElementHolder.elementsFromPoint(x, y)\r\n }\r\n};\r\nexport default injector(nativeDOMAdapterStrategy);\r\n","/**\r\n * DevExtreme (esm/core/memorized_callbacks.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nexport default class MemorizedCallbacks {\r\n constructor() {\r\n this.memory = [];\r\n this.callbacks = Callbacks()\r\n }\r\n add(fn) {\r\n each(this.memory, (_, item) => fn.apply(fn, item));\r\n this.callbacks.add(fn)\r\n }\r\n remove(fn) {\r\n this.callbacks.remove(fn)\r\n }\r\n fire() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.memory.push(args);\r\n this.callbacks.fire.apply(this.callbacks, args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator_callbacks.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"../../core/memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/window.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar hasWindowValue = \"undefined\" !== typeof window;\r\nvar hasWindow = () => hasWindowValue;\r\nvar windowObject = hasWindow() ? window : void 0;\r\nif (!windowObject) {\r\n windowObject = {};\r\n windowObject.window = windowObject\r\n}\r\nvar getWindow = () => windowObject;\r\nvar setWindow = (newWindowObject, hasWindow) => {\r\n if (void 0 === hasWindow) {\r\n hasWindowValue = \"undefined\" !== typeof window && window === newWindowObject\r\n } else {\r\n hasWindowValue = hasWindow\r\n }\r\n windowObject = newWindowObject\r\n};\r\nvar hasProperty = prop => hasWindow() && prop in windowObject;\r\nvar defaultScreenFactorFunc = width => {\r\n if (width < 768) {\r\n return \"xs\"\r\n } else if (width < 992) {\r\n return \"sm\"\r\n } else if (width < 1200) {\r\n return \"md\"\r\n } else {\r\n return \"lg\"\r\n }\r\n};\r\nvar getCurrentScreenFactor = screenFactorCallback => {\r\n var screenFactorFunc = screenFactorCallback || defaultScreenFactorFunc;\r\n var windowWidth = domAdapter.getDocumentElement().clientWidth;\r\n return screenFactorFunc(windowWidth)\r\n};\r\nvar getNavigator = () => hasWindow() ? windowObject.navigator : {\r\n userAgent: \"\"\r\n};\r\nexport {\r\n hasWindow,\r\n getWindow,\r\n setWindow,\r\n hasProperty,\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n getNavigator\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/hook_touch_props.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar touchPropsToHook = [\"pageX\", \"pageY\", \"screenX\", \"screenY\", \"clientX\", \"clientY\"];\r\nvar touchPropHook = function(name, event) {\r\n if (event[name] && !event.touches || !event.touches) {\r\n return event[name]\r\n }\r\n var touches = event.touches.length ? event.touches : event.changedTouches;\r\n if (!touches.length) {\r\n return\r\n }\r\n return touches[0][name]\r\n};\r\nexport default function(callback) {\r\n touchPropsToHook.forEach((function(name) {\r\n callback(name, (function(event) {\r\n return touchPropHook(name, event)\r\n }))\r\n }), this)\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/call_once.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar callOnce = function(handler) {\r\n var result;\r\n var _wrappedHandler = function() {\r\n result = handler.apply(this, arguments);\r\n _wrappedHandler = function() {\r\n return result\r\n };\r\n return result\r\n };\r\n return function() {\r\n return _wrappedHandler.apply(this, arguments)\r\n }\r\n};\r\nexport default callOnce;\r\n","/**\r\n * DevExtreme (esm/events/core/events_engine.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerEventCallbacks from \"./event_registrator_callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"../../core/utils/dependency_injector\";\r\nimport {\r\n isWindow,\r\n isFunction,\r\n isString,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport errors from \"../../core/errors\";\r\nimport hookTouchProps from \"../../events/core/hook_touch_props\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nvar EMPTY_EVENT_NAME = \"dxEmptyEventType\";\r\nvar NATIVE_EVENTS_TO_SUBSCRIBE = {\r\n mouseenter: \"mouseover\",\r\n mouseleave: \"mouseout\",\r\n pointerenter: \"pointerover\",\r\n pointerleave: \"pointerout\"\r\n};\r\nvar NATIVE_EVENTS_TO_TRIGGER = {\r\n focusin: \"focus\",\r\n focusout: \"blur\"\r\n};\r\nvar NO_BUBBLE_EVENTS = [\"blur\", \"focus\", \"load\"];\r\nvar forcePassiveFalseEventNames = [\"touchmove\", \"wheel\", \"mousewheel\", \"touchstart\"];\r\nvar EVENT_PROPERTIES = [\"target\", \"relatedTarget\", \"delegateTarget\", \"altKey\", \"bubbles\", \"cancelable\", \"changedTouches\", \"ctrlKey\", \"detail\", \"eventPhase\", \"metaKey\", \"shiftKey\", \"view\", \"char\", \"code\", \"charCode\", \"key\", \"keyCode\", \"button\", \"buttons\", \"offsetX\", \"offsetY\", \"pointerId\", \"pointerType\", \"targetTouches\", \"toElement\", \"touches\"];\r\n\r\nfunction matchesSafe(target, selector) {\r\n return !isWindow(target) && \"#document\" !== target.nodeName && domAdapter.elementMatches(target, selector)\r\n}\r\nvar elementDataMap = new WeakMap;\r\nvar guid = 0;\r\nvar skipEvent;\r\nvar special = function() {\r\n var specialData = {};\r\n registerEventCallbacks.add((function(eventName, eventObject) {\r\n specialData[eventName] = eventObject\r\n }));\r\n return {\r\n getField: function(eventName, field) {\r\n return specialData[eventName] && specialData[eventName][field]\r\n },\r\n callMethod: function(eventName, methodName, context, args) {\r\n return specialData[eventName] && specialData[eventName][methodName] && specialData[eventName][methodName].apply(context, args)\r\n }\r\n }\r\n}();\r\nvar eventsEngine = injector({\r\n on: getHandler(normalizeOnArguments(iterate((function(element, eventName, selector, data, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.addHandler(handler, selector, data)\r\n })))),\r\n one: getHandler(normalizeOnArguments((function(element, eventName, selector, data, handler) {\r\n eventsEngine.on(element, eventName, selector, data, (function oneTimeHandler() {\r\n eventsEngine.off(element, eventName, selector, oneTimeHandler);\r\n handler.apply(this, arguments)\r\n }))\r\n }))),\r\n off: getHandler(normalizeOffArguments(iterate((function(element, eventName, selector, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.removeHandler(handler, selector)\r\n })))),\r\n trigger: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var eventName = event.type;\r\n var handlersController = getHandlersController(element, event.type);\r\n special.callMethod(eventName, \"trigger\", element, [event, extraParameters]);\r\n handlersController.callHandlers(event, extraParameters);\r\n var noBubble = special.getField(eventName, \"noBubble\") || event.isPropagationStopped() || -1 !== NO_BUBBLE_EVENTS.indexOf(eventName);\r\n if (!noBubble) {\r\n var parents = [];\r\n ! function getParents(element) {\r\n var _element$parentNode;\r\n var parent = null !== (_element$parentNode = element.parentNode) && void 0 !== _element$parentNode ? _element$parentNode : isObject(element.host) ? element.host : null;\r\n if (parent) {\r\n parents.push(parent);\r\n getParents(parent)\r\n }\r\n }(element);\r\n parents.push(window);\r\n var i = 0;\r\n while (parents[i] && !event.isPropagationStopped()) {\r\n var parentDataByEvent = getHandlersController(parents[i], event.type);\r\n parentDataByEvent.callHandlers(extend(event, {\r\n currentTarget: parents[i]\r\n }), extraParameters);\r\n i++\r\n }\r\n }\r\n if (element.nodeType || isWindow(element)) {\r\n special.callMethod(eventName, \"_default\", element, [event, extraParameters]);\r\n callNativeMethod(eventName, element)\r\n }\r\n }))),\r\n triggerHandler: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var handlersController = getHandlersController(element, event.type);\r\n handlersController.callHandlers(event, extraParameters)\r\n })))\r\n});\r\n\r\nfunction applyForEach(args, method) {\r\n var element = args[0];\r\n if (!element) {\r\n return\r\n }\r\n if (domAdapter.isNode(element) || isWindow(element)) {\r\n method.apply(eventsEngine, args)\r\n } else if (!isString(element) && \"length\" in element) {\r\n var itemArgs = Array.prototype.slice.call(args, 0);\r\n Array.prototype.forEach.call(element, (function(itemElement) {\r\n itemArgs[0] = itemElement;\r\n applyForEach(itemArgs, method)\r\n }))\r\n } else {\r\n throw errors.Error(\"E0025\")\r\n }\r\n}\r\n\r\nfunction getHandler(method) {\r\n return function() {\r\n applyForEach(arguments, method)\r\n }\r\n}\r\n\r\nfunction detectPassiveEventHandlersSupport() {\r\n var isSupported = false;\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function() {\r\n isSupported = true;\r\n return true\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options)\r\n } catch (e) {}\r\n return isSupported\r\n}\r\nvar passiveEventHandlersSupported = callOnce(detectPassiveEventHandlersSupport);\r\nvar contains = (container, element) => {\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\n\r\nfunction getHandlersController(element, eventName) {\r\n var elementData = elementDataMap.get(element);\r\n eventName = eventName || \"\";\r\n var eventNameParts = eventName.split(\".\");\r\n var namespaces = eventNameParts.slice(1);\r\n var eventNameIsDefined = !!eventNameParts[0];\r\n eventName = eventNameParts[0] || EMPTY_EVENT_NAME;\r\n if (!elementData) {\r\n elementData = {};\r\n elementDataMap.set(element, elementData)\r\n }\r\n if (!elementData[eventName]) {\r\n elementData[eventName] = {\r\n handleObjects: [],\r\n nativeHandler: null\r\n }\r\n }\r\n var eventData = elementData[eventName];\r\n return {\r\n addHandler: function(handler, selector, data) {\r\n var callHandler = function(e, extraParameters) {\r\n var handlerArgs = [e];\r\n var target = e.currentTarget;\r\n var relatedTarget = e.relatedTarget;\r\n var secondaryTargetIsInside;\r\n var result;\r\n if (eventName in NATIVE_EVENTS_TO_SUBSCRIBE) {\r\n secondaryTargetIsInside = relatedTarget && target && (relatedTarget === target || contains(target, relatedTarget))\r\n }\r\n if (void 0 !== extraParameters) {\r\n handlerArgs.push(extraParameters)\r\n }\r\n special.callMethod(eventName, \"handle\", element, [e, data]);\r\n if (!secondaryTargetIsInside) {\r\n result = handler.apply(target, handlerArgs)\r\n }\r\n if (false === result) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n };\r\n var handleObject = {\r\n handler: handler,\r\n wrappedHandler: function(e, extraParameters) {\r\n if (skipEvent && e.type === skipEvent) {\r\n return\r\n }\r\n e.data = data;\r\n e.delegateTarget = element;\r\n if (selector) {\r\n var currentTarget = e.target;\r\n while (currentTarget && currentTarget !== element) {\r\n if (matchesSafe(currentTarget, selector)) {\r\n e.currentTarget = currentTarget;\r\n callHandler(e, extraParameters)\r\n }\r\n currentTarget = currentTarget.parentNode\r\n }\r\n } else {\r\n e.currentTarget = e.delegateTarget || e.target;\r\n callHandler(e, extraParameters)\r\n }\r\n },\r\n selector: selector,\r\n type: eventName,\r\n data: data,\r\n namespace: namespaces.join(\".\"),\r\n namespaces: namespaces,\r\n guid: ++guid\r\n };\r\n eventData.handleObjects.push(handleObject);\r\n var firstHandlerForTheType = 1 === eventData.handleObjects.length;\r\n var shouldAddNativeListener = firstHandlerForTheType && eventNameIsDefined;\r\n var nativeListenerOptions;\r\n if (shouldAddNativeListener) {\r\n shouldAddNativeListener = !special.callMethod(eventName, \"setup\", element, [data, namespaces, handler])\r\n }\r\n if (shouldAddNativeListener) {\r\n eventData.nativeHandler = getNativeHandler(eventName);\r\n if (passiveEventHandlersSupported() && forcePassiveFalseEventNames.indexOf(eventName) > -1) {\r\n nativeListenerOptions = {\r\n passive: false\r\n }\r\n }\r\n eventData.removeListener = domAdapter.listen(element, NATIVE_EVENTS_TO_SUBSCRIBE[eventName] || eventName, eventData.nativeHandler, nativeListenerOptions)\r\n }\r\n special.callMethod(eventName, \"add\", element, [handleObject])\r\n },\r\n removeHandler: function(handler, selector) {\r\n var removeByEventName = function(eventName) {\r\n var eventData = elementData[eventName];\r\n if (!eventData.handleObjects.length) {\r\n delete elementData[eventName];\r\n return\r\n }\r\n var removedHandler;\r\n eventData.handleObjects = eventData.handleObjects.filter((function(handleObject) {\r\n var skip = namespaces.length && !isSubset(handleObject.namespaces, namespaces) || handler && handleObject.handler !== handler || selector && handleObject.selector !== selector;\r\n if (!skip) {\r\n removedHandler = handleObject.handler;\r\n special.callMethod(eventName, \"remove\", element, [handleObject])\r\n }\r\n return skip\r\n }));\r\n var lastHandlerForTheType = !eventData.handleObjects.length;\r\n var shouldRemoveNativeListener = lastHandlerForTheType && eventName !== EMPTY_EVENT_NAME;\r\n if (shouldRemoveNativeListener) {\r\n special.callMethod(eventName, \"teardown\", element, [namespaces, removedHandler]);\r\n if (eventData.nativeHandler) {\r\n eventData.removeListener()\r\n }\r\n delete elementData[eventName]\r\n }\r\n };\r\n if (eventNameIsDefined) {\r\n removeByEventName(eventName)\r\n } else {\r\n for (var name in elementData) {\r\n removeByEventName(name)\r\n }\r\n }\r\n var elementDataIsEmpty = 0 === Object.keys(elementData).length;\r\n if (elementDataIsEmpty) {\r\n elementDataMap.delete(element)\r\n }\r\n },\r\n callHandlers: function(event, extraParameters) {\r\n var forceStop = false;\r\n var handleCallback = function(handleObject) {\r\n if (forceStop) {\r\n return\r\n }\r\n if (!namespaces.length || isSubset(handleObject.namespaces, namespaces)) {\r\n handleObject.wrappedHandler(event, extraParameters);\r\n forceStop = event.isImmediatePropagationStopped()\r\n }\r\n };\r\n eventData.handleObjects.forEach(handleCallback);\r\n if (namespaces.length && elementData[EMPTY_EVENT_NAME]) {\r\n elementData[EMPTY_EVENT_NAME].handleObjects.forEach(handleCallback)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getNativeHandler(subscribeName) {\r\n return function(event, extraParameters) {\r\n var handlersController = getHandlersController(this, subscribeName);\r\n event = eventsEngine.Event(event);\r\n handlersController.callHandlers(event, extraParameters)\r\n }\r\n}\r\n\r\nfunction isSubset(original, checked) {\r\n for (var i = 0; i < checked.length; i++) {\r\n if (original.indexOf(checked[i]) < 0) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction normalizeOnArguments(callback) {\r\n return function(element, eventName, selector, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n data = void 0\r\n }\r\n if (\"string\" !== typeof selector) {\r\n data = selector;\r\n selector = void 0\r\n }\r\n if (!handler && \"string\" === typeof eventName) {\r\n handler = data || selector;\r\n selector = void 0;\r\n data = void 0\r\n }\r\n callback(element, eventName, selector, data, handler)\r\n }\r\n}\r\n\r\nfunction normalizeOffArguments(callback) {\r\n return function(element, eventName, selector, handler) {\r\n if (\"function\" === typeof selector) {\r\n handler = selector;\r\n selector = void 0\r\n }\r\n callback(element, eventName, selector, handler)\r\n }\r\n}\r\n\r\nfunction normalizeTriggerArguments(callback) {\r\n return function(element, src, extraParameters) {\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!src.target) {\r\n src.target = element\r\n }\r\n src.currentTarget = element;\r\n if (!src.delegateTarget) {\r\n src.delegateTarget = element\r\n }\r\n if (!src.type && src.originalEvent) {\r\n src.type = src.originalEvent.type\r\n }\r\n callback(element, src instanceof eventsEngine.Event ? src : eventsEngine.Event(src), extraParameters)\r\n }\r\n}\r\n\r\nfunction normalizeEventArguments(callback) {\r\n eventsEngine.Event = function(src, config) {\r\n if (!(this instanceof eventsEngine.Event)) {\r\n return new eventsEngine.Event(src, config)\r\n }\r\n if (!src) {\r\n src = {}\r\n }\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!config) {\r\n config = {}\r\n }\r\n callback.call(this, src, config)\r\n };\r\n _extends(eventsEngine.Event.prototype, {\r\n _propagationStopped: false,\r\n _immediatePropagationStopped: false,\r\n _defaultPrevented: false,\r\n isPropagationStopped: function() {\r\n return !!(this._propagationStopped || this.originalEvent && this.originalEvent.propagationStopped)\r\n },\r\n stopPropagation: function() {\r\n this._propagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopPropagation()\r\n },\r\n isImmediatePropagationStopped: function() {\r\n return this._immediatePropagationStopped\r\n },\r\n stopImmediatePropagation: function() {\r\n this.stopPropagation();\r\n this._immediatePropagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopImmediatePropagation()\r\n },\r\n isDefaultPrevented: function() {\r\n return !!(this._defaultPrevented || this.originalEvent && this.originalEvent.defaultPrevented)\r\n },\r\n preventDefault: function() {\r\n this._defaultPrevented = true;\r\n this.originalEvent && this.originalEvent.preventDefault()\r\n }\r\n });\r\n return eventsEngine.Event\r\n}\r\n\r\nfunction iterate(callback) {\r\n var iterateEventNames = function(element, eventName) {\r\n if (eventName && eventName.indexOf(\" \") > -1) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n eventName.split(\" \").forEach((function(eventName) {\r\n args[1] = eventName;\r\n callback.apply(this, args)\r\n }))\r\n } else {\r\n callback.apply(this, arguments)\r\n }\r\n };\r\n return function(element, eventName) {\r\n if (\"object\" === typeof eventName) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n for (var name in eventName) {\r\n args[1] = name;\r\n args[args.length - 1] = eventName[name];\r\n iterateEventNames.apply(this, args)\r\n }\r\n } else {\r\n iterateEventNames.apply(this, arguments)\r\n }\r\n }\r\n}\r\n\r\nfunction callNativeMethod(eventName, element) {\r\n var nativeMethodName = NATIVE_EVENTS_TO_TRIGGER[eventName] || eventName;\r\n if (function(eventName, element) {\r\n return \"click\" === eventName && \"a\" === element.localName\r\n }(eventName, element)) {\r\n return\r\n }\r\n if (isFunction(element[nativeMethodName])) {\r\n skipEvent = eventName;\r\n element[nativeMethodName]();\r\n skipEvent = void 0\r\n }\r\n}\r\n\r\nfunction calculateWhich(event) {\r\n if (function(event) {\r\n return null == event.which && 0 === event.type.indexOf(\"key\")\r\n }(event)) {\r\n return null != event.charCode ? event.charCode : event.keyCode\r\n }\r\n if (function(event) {\r\n return !event.which && void 0 !== event.button && /^(?:mouse|pointer|contextmenu|drag|drop)|click/.test(event.type)\r\n }(event)) {\r\n return {\r\n 1: 1,\r\n 2: 3,\r\n 3: 1,\r\n 4: 2\r\n } [event.button]\r\n }\r\n return event.which\r\n}\r\n\r\nfunction initEvent(EventClass) {\r\n if (EventClass) {\r\n eventsEngine.Event = EventClass;\r\n eventsEngine.Event.prototype = EventClass.prototype\r\n }\r\n}\r\ninitEvent(normalizeEventArguments((function(src, config) {\r\n var _src$view;\r\n var srcIsEvent = src instanceof eventsEngine.Event || hasWindow() && src instanceof window.Event || (null === (_src$view = src.view) || void 0 === _src$view ? void 0 : _src$view.Event) && src instanceof src.view.Event;\r\n if (srcIsEvent) {\r\n this.originalEvent = src;\r\n this.type = src.type;\r\n this.currentTarget = void 0;\r\n if (Object.prototype.hasOwnProperty.call(src, \"isTrusted\")) {\r\n this.isTrusted = src.isTrusted\r\n }\r\n this.timeStamp = src.timeStamp || Date.now()\r\n } else {\r\n _extends(this, src)\r\n }\r\n addProperty(\"which\", calculateWhich, this);\r\n if (0 === src.type.indexOf(\"touch\")) {\r\n delete config.pageX;\r\n delete config.pageY\r\n }\r\n _extends(this, config);\r\n this.guid = ++guid\r\n})));\r\n\r\nfunction addProperty(propName, hook, eventInstance) {\r\n Object.defineProperty(eventInstance || eventsEngine.Event.prototype, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return this.originalEvent && hook(this.originalEvent)\r\n },\r\n set: function(value) {\r\n Object.defineProperty(this, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: value\r\n })\r\n }\r\n })\r\n}\r\nEVENT_PROPERTIES.forEach(prop => addProperty(prop, event => event[prop]));\r\nhookTouchProps(addProperty);\r\nvar beforeSetStrategy = Callbacks();\r\nvar afterSetStrategy = Callbacks();\r\neventsEngine.set = function(engine) {\r\n beforeSetStrategy.fire();\r\n eventsEngine.inject(engine);\r\n initEvent(engine.Event);\r\n afterSetStrategy.fire()\r\n};\r\neventsEngine.subscribeGlobal = function() {\r\n applyForEach(arguments, normalizeOnArguments((function() {\r\n var args = arguments;\r\n eventsEngine.on.apply(this, args);\r\n beforeSetStrategy.add((function() {\r\n var offArgs = Array.prototype.slice.call(args, 0);\r\n offArgs.splice(3, 1);\r\n eventsEngine.off.apply(this, offArgs)\r\n }));\r\n afterSetStrategy.add((function() {\r\n eventsEngine.on.apply(this, args)\r\n }))\r\n })))\r\n};\r\neventsEngine.forcePassiveFalseEventNames = forcePassiveFalseEventNames;\r\neventsEngine.passiveEventHandlersSupported = passiveEventHandlersSupported;\r\nexport default eventsEngine;\r\n","/**\r\n * DevExtreme (esm/core/element_data.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"./dom_adapter\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nvar dataMap = new WeakMap;\r\nvar strategy;\r\nexport var strategyChanging = new MemorizedCallbacks;\r\nvar beforeCleanDataFunc = function() {};\r\nvar afterCleanDataFunc = function() {};\r\nexport var setDataStrategy = function(value) {\r\n strategyChanging.fire(value);\r\n strategy = value;\r\n var cleanData = strategy.cleanData;\r\n strategy.cleanData = function(nodes) {\r\n beforeCleanDataFunc(nodes);\r\n var result = cleanData.call(this, nodes);\r\n afterCleanDataFunc(nodes);\r\n return result\r\n }\r\n};\r\nsetDataStrategy({\r\n data: function() {\r\n var element = arguments[0];\r\n var key = arguments[1];\r\n var value = arguments[2];\r\n if (!element) {\r\n return\r\n }\r\n var elementData = dataMap.get(element);\r\n if (!elementData) {\r\n elementData = {};\r\n dataMap.set(element, elementData)\r\n }\r\n if (void 0 === key) {\r\n return elementData\r\n }\r\n if (2 === arguments.length) {\r\n return elementData[key]\r\n }\r\n elementData[key] = value;\r\n return value\r\n },\r\n removeData: function(element, key) {\r\n if (!element) {\r\n return\r\n }\r\n if (void 0 === key) {\r\n dataMap.delete(element)\r\n } else {\r\n var elementData = dataMap.get(element);\r\n if (elementData) {\r\n delete elementData[key]\r\n }\r\n }\r\n },\r\n cleanData: function(elements) {\r\n for (var i = 0; i < elements.length; i++) {\r\n eventsEngine.off(elements[i]);\r\n dataMap.delete(elements[i])\r\n }\r\n }\r\n});\r\nexport function getDataStrategy() {\r\n return strategy\r\n}\r\nexport function data() {\r\n return strategy.data.apply(this, arguments)\r\n}\r\nexport function beforeCleanData(callback) {\r\n beforeCleanDataFunc = callback\r\n}\r\nexport function afterCleanData(callback) {\r\n afterCleanDataFunc = callback\r\n}\r\nexport function cleanData(nodes) {\r\n return strategy.cleanData.call(this, nodes)\r\n}\r\nexport function removeData(element, key) {\r\n return strategy.removeData.call(this, element, key)\r\n}\r\nexport function cleanDataRecursive(element, cleanSelf) {\r\n if (!domAdapter.isElementNode(element)) {\r\n return\r\n }\r\n var childElements = element.getElementsByTagName(\"*\");\r\n strategy.cleanData(childElements);\r\n if (cleanSelf) {\r\n strategy.cleanData([element])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/inflector.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"./iterator\";\r\nvar _normalize = function(text) {\r\n if (void 0 === text || null === text) {\r\n return \"\"\r\n }\r\n return String(text)\r\n};\r\nvar _upperCaseFirst = function(text) {\r\n return _normalize(text).charAt(0).toUpperCase() + text.substr(1)\r\n};\r\nvar _chop = function(text) {\r\n return _normalize(text).replace(/([a-z\\d])([A-Z])/g, \"$1 $2\").split(/[\\s_-]+/)\r\n};\r\nexport var dasherize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return p.toLowerCase()\r\n })).join(\"-\")\r\n};\r\nexport var underscore = function(text) {\r\n return dasherize(text).replace(/-/g, \"_\")\r\n};\r\nexport var camelize = function(text, upperFirst) {\r\n return map(_chop(text), (function(p, i) {\r\n p = p.toLowerCase();\r\n if (upperFirst || i > 0) {\r\n p = _upperCaseFirst(p)\r\n }\r\n return p\r\n })).join(\"\")\r\n};\r\nexport var humanize = function(text) {\r\n return _upperCaseFirst(dasherize(text).replace(/-/g, \" \"))\r\n};\r\nexport var titleize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return _upperCaseFirst(p.toLowerCase())\r\n })).join(\" \")\r\n};\r\nvar DIGIT_CHARS = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\r\nexport var captionize = function(name) {\r\n var captionList = [];\r\n var i;\r\n var char;\r\n var isPrevCharNewWord = false;\r\n var isNewWord = false;\r\n for (i = 0; i < name.length; i++) {\r\n char = name.charAt(i);\r\n isNewWord = char === char.toUpperCase() && \"-\" !== char && \")\" !== char && \"/\" !== char || char in DIGIT_CHARS;\r\n if (\"_\" === char || \".\" === char) {\r\n char = \" \";\r\n isNewWord = true\r\n } else if (0 === i) {\r\n char = char.toUpperCase();\r\n isNewWord = true\r\n } else if (!isPrevCharNewWord && isNewWord) {\r\n if (captionList.length > 0) {\r\n captionList.push(\" \")\r\n }\r\n }\r\n captionList.push(char);\r\n isPrevCharNewWord = isNewWord\r\n }\r\n return captionList.join(\"\")\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/style.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n isNumeric,\r\n isString\r\n} from \"./type\";\r\nimport domAdapter from \"../dom_adapter\";\r\nvar jsPrefixes = [\"\", \"Webkit\", \"Moz\", \"O\", \"Ms\"];\r\nvar cssPrefixes = {\r\n \"\": \"\",\r\n Webkit: \"-webkit-\",\r\n Moz: \"-moz-\",\r\n O: \"-o-\",\r\n ms: \"-ms-\"\r\n};\r\nvar getStyles = callOnce((function() {\r\n return domAdapter.createElement(\"dx\").style\r\n}));\r\nvar forEachPrefixes = function(prop, callBack) {\r\n prop = camelize(prop, true);\r\n var result;\r\n for (var i = 0, cssPrefixesCount = jsPrefixes.length; i < cssPrefixesCount; i++) {\r\n var jsPrefix = jsPrefixes[i];\r\n var prefixedProp = jsPrefix + prop;\r\n var lowerPrefixedProp = camelize(prefixedProp);\r\n result = callBack(lowerPrefixedProp, jsPrefix);\r\n if (void 0 === result) {\r\n result = callBack(prefixedProp, jsPrefix)\r\n }\r\n if (void 0 !== result) {\r\n break\r\n }\r\n }\r\n return result || \"\"\r\n};\r\nvar styleProp = function(name) {\r\n if (name in getStyles()) {\r\n return name\r\n }\r\n var originalName = name;\r\n name = name.charAt(0).toUpperCase() + name.substr(1);\r\n for (var i = 1; i < jsPrefixes.length; i++) {\r\n var prefixedProp = jsPrefixes[i].toLowerCase() + name;\r\n if (prefixedProp in getStyles()) {\r\n return prefixedProp\r\n }\r\n }\r\n return originalName\r\n};\r\nvar stylePropPrefix = function(prop) {\r\n return forEachPrefixes(prop, (function(specific, jsPrefix) {\r\n if (specific in getStyles()) {\r\n return cssPrefixes[jsPrefix]\r\n }\r\n }))\r\n};\r\nvar pxExceptions = [\"fillOpacity\", \"columnCount\", \"flexGrow\", \"flexShrink\", \"fontWeight\", \"lineHeight\", \"opacity\", \"zIndex\", \"zoom\"];\r\nvar parsePixelValue = function(value) {\r\n if (isNumeric(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return Number(value.replace(\"px\", \"\"))\r\n }\r\n return NaN\r\n};\r\nvar normalizeStyleProp = function(prop, value) {\r\n if (isNumeric(value) && -1 === pxExceptions.indexOf(prop)) {\r\n value += \"px\"\r\n }\r\n return value\r\n};\r\nvar setDimensionProperty = function(elements, propertyName, value) {\r\n if (elements) {\r\n value = isNumeric(value) ? value += \"px\" : value;\r\n for (var i = 0; i < elements.length; ++i) {\r\n elements[i].style[propertyName] = value\r\n }\r\n }\r\n};\r\nvar setWidth = function(elements, value) {\r\n setDimensionProperty(elements, \"width\", value)\r\n};\r\nvar setHeight = function(elements, value) {\r\n setDimensionProperty(elements, \"height\", value)\r\n};\r\nvar setStyle = function(element, styleString) {\r\n var resetStyle = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;\r\n if (resetStyle) {\r\n var styleList = [].slice.call(element.style);\r\n styleList.forEach(propertyName => {\r\n element.style.removeProperty(propertyName)\r\n })\r\n }\r\n styleString.split(\";\").forEach(style => {\r\n var parts = style.split(\":\").map(stylePart => stylePart.trim());\r\n if (2 === parts.length) {\r\n var [property, value] = parts;\r\n element.style[property] = value\r\n }\r\n })\r\n};\r\nexport {\r\n styleProp,\r\n setStyle,\r\n stylePropPrefix,\r\n normalizeStyleProp,\r\n parsePixelValue,\r\n setWidth,\r\n setHeight\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/size.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isString,\r\n isNumeric,\r\n isRenderer\r\n} from \"../utils/type\";\r\nvar window = getWindow();\r\nvar SPECIAL_HEIGHT_VALUES = [\"auto\", \"none\", \"inherit\", \"initial\"];\r\nvar getSizeByStyles = function(elementStyles, styles) {\r\n var result = 0;\r\n styles.forEach((function(style) {\r\n result += parseFloat(elementStyles[style]) || 0\r\n }));\r\n return result\r\n};\r\nexport var getElementBoxParams = function(name, elementStyles) {\r\n var beforeName = \"width\" === name ? \"Left\" : \"Top\";\r\n var afterName = \"width\" === name ? \"Right\" : \"Bottom\";\r\n return {\r\n padding: getSizeByStyles(elementStyles, [\"padding\" + beforeName, \"padding\" + afterName]),\r\n border: getSizeByStyles(elementStyles, [\"border\" + beforeName + \"Width\", \"border\" + afterName + \"Width\"]),\r\n margin: getSizeByStyles(elementStyles, [\"margin\" + beforeName, \"margin\" + afterName])\r\n }\r\n};\r\nvar getElementComputedStyle = function(element) {\r\n var _element$ownerDocumen;\r\n var view = (null === element || void 0 === element ? void 0 : null === (_element$ownerDocumen = element.ownerDocument) || void 0 === _element$ownerDocumen ? void 0 : _element$ownerDocumen.defaultView) || window;\r\n return view.getComputedStyle && view.getComputedStyle(element)\r\n};\r\nvar getCSSProperty = function(element, styles, name, defaultValue) {\r\n var _element$style;\r\n return (null === styles || void 0 === styles ? void 0 : styles[name]) || (null === (_element$style = element.style) || void 0 === _element$style ? void 0 : _element$style[name]) || defaultValue\r\n};\r\nvar boxIndices = {\r\n content: 0,\r\n padding: 1,\r\n border: 2,\r\n margin: 3,\r\n \"content-box\": 0,\r\n \"border-box\": 2\r\n};\r\nvar dimensionComponents = {\r\n width: [\"left\", \"right\"],\r\n height: [\"top\", \"bottom\"]\r\n};\r\n\r\nfunction getComponentThickness(elem, dimension, component, styles) {\r\n var get = (elem, styles, field) => parseFloat(getCSSProperty(elem, styles, field, \"0\")) || 0;\r\n var suffix = \"border\" === component ? \"-width\" : \"\";\r\n return get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][0]).concat(suffix)) + get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][1]).concat(suffix))\r\n}\r\nexport var getSize = function(element, dimension, box) {\r\n var offsetFieldName = \"width\" === dimension ? \"offsetWidth\" : \"offsetHeight\";\r\n var styles = getElementComputedStyle(element);\r\n var result = getCSSProperty(element, styles, dimension);\r\n if (\"\" === result || \"auto\" === result) {\r\n result = element[offsetFieldName]\r\n }\r\n result = parseFloat(result) || 0;\r\n var currentBox = getCSSProperty(element, styles, \"boxSizing\", \"content-box\");\r\n var targetBox = box || currentBox;\r\n var targetBoxIndex = boxIndices[targetBox];\r\n var currentBoxIndex = boxIndices[currentBox];\r\n if (void 0 === targetBoxIndex || void 0 === currentBoxIndex) {\r\n throw new Error\r\n }\r\n if (currentBoxIndex === targetBoxIndex) {\r\n return result\r\n }\r\n var coeff = Math.sign(targetBoxIndex - currentBoxIndex);\r\n var padding = false;\r\n var border = false;\r\n var margin = false;\r\n var scrollThickness = false;\r\n if (1 === coeff) {\r\n targetBoxIndex += 1;\r\n currentBoxIndex += 1\r\n }\r\n for (var boxPart = currentBoxIndex; boxPart !== targetBoxIndex; boxPart += coeff) {\r\n switch (boxPart) {\r\n case boxIndices.content:\r\n break;\r\n case boxIndices.padding:\r\n padding = coeff * getComponentThickness(element, dimension, \"padding\", styles);\r\n break;\r\n case boxIndices.border:\r\n border = coeff * getComponentThickness(element, dimension, \"border\", styles);\r\n break;\r\n case boxIndices.margin:\r\n margin = coeff * getComponentThickness(element, dimension, \"margin\", styles)\r\n }\r\n }\r\n if (padding || border) {\r\n var paddingAndBorder = (false === padding ? coeff * getComponentThickness(element, dimension, \"padding\", styles) : padding) + (false === border ? coeff * getComponentThickness(element, dimension, \"border\", styles) : border);\r\n scrollThickness = coeff * Math.max(0, Math.floor(element[offsetFieldName] - result - coeff * paddingAndBorder)) || 0\r\n }\r\n return result + margin + padding + border + scrollThickness\r\n};\r\nvar getContainerHeight = function(container) {\r\n return isWindow(container) ? container.innerHeight : container.offsetHeight\r\n};\r\nexport var parseHeight = function(value, container, element) {\r\n if (value.indexOf(\"px\") > 0) {\r\n value = parseInt(value.replace(\"px\", \"\"))\r\n } else if (value.indexOf(\"%\") > 0) {\r\n value = parseInt(value.replace(\"%\", \"\")) * getContainerHeight(container) / 100\r\n } else if (!isNaN(value)) {\r\n value = parseInt(value)\r\n } else if (value.indexOf(\"vh\") > 0) {\r\n value = window.innerHeight / 100 * parseInt(value.replace(\"vh\", \"\"))\r\n } else if (element && value.indexOf(\"em\") > 0) {\r\n value = parseFloat(value.replace(\"em\", \"\")) * parseFloat(window.getComputedStyle(element).fontSize)\r\n }\r\n return value\r\n};\r\nvar getHeightWithOffset = function(value, offset, container) {\r\n if (!value) {\r\n return null\r\n }\r\n if (SPECIAL_HEIGHT_VALUES.indexOf(value) > -1) {\r\n return offset ? null : value\r\n }\r\n if (isString(value)) {\r\n value = parseHeight(value, container)\r\n }\r\n if (isNumeric(value)) {\r\n return Math.max(0, value + offset)\r\n }\r\n var operationString = offset < 0 ? \" - \" : \" \";\r\n return \"calc(\" + value + operationString + Math.abs(offset) + \"px)\"\r\n};\r\nexport var addOffsetToMaxHeight = function(value, offset, container) {\r\n var maxHeight = getHeightWithOffset(value, offset, container);\r\n return null !== maxHeight ? maxHeight : \"none\"\r\n};\r\nexport var addOffsetToMinHeight = function(value, offset, container) {\r\n var minHeight = getHeightWithOffset(value, offset, container);\r\n return null !== minHeight ? minHeight : 0\r\n};\r\nexport var getVerticalOffsets = function(element, withMargins) {\r\n if (!element) {\r\n return 0\r\n }\r\n var boxParams = getElementBoxParams(\"height\", window.getComputedStyle(element));\r\n return boxParams.padding + boxParams.border + (withMargins ? boxParams.margin : 0)\r\n};\r\nexport var getVisibleHeight = function(element) {\r\n if (element) {\r\n var boundingClientRect = element.getBoundingClientRect();\r\n if (boundingClientRect.height) {\r\n return boundingClientRect.height\r\n }\r\n }\r\n return 0\r\n};\r\nexport var implementationsMap = {\r\n getWidth: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n setWidth: function() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n getHeight: function() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n setHeight: function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n getOuterWidth: function() {\r\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\r\n args[_key5] = arguments[_key5]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n setOuterWidth: function() {\r\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\r\n args[_key6] = arguments[_key6]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n getOuterHeight: function() {\r\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\r\n args[_key7] = arguments[_key7]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n setOuterHeight: function() {\r\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\r\n args[_key8] = arguments[_key8]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n getInnerWidth: function() {\r\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\r\n args[_key9] = arguments[_key9]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n setInnerWidth: function() {\r\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\r\n args[_key10] = arguments[_key10]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n getInnerHeight: function() {\r\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\r\n args[_key11] = arguments[_key11]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n },\r\n setInnerHeight: function() {\r\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\r\n args[_key12] = arguments[_key12]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n }\r\n};\r\n\r\nfunction elementSizeHelper(sizeProperty, el, value) {\r\n return 2 === arguments.length ? elementSize(el, sizeProperty) : elementSize(el, sizeProperty, value)\r\n}\r\nexport var getWidth = el => implementationsMap.getWidth(el);\r\nexport var setWidth = (el, value) => implementationsMap.setWidth(el, value);\r\nexport var getHeight = el => implementationsMap.getHeight(el);\r\nexport var setHeight = (el, value) => implementationsMap.setHeight(el, value);\r\nexport var getOuterWidth = (el, includeMargin) => implementationsMap.getOuterWidth(el, includeMargin || false);\r\nexport var setOuterWidth = (el, value) => implementationsMap.setOuterWidth(el, value);\r\nexport var getOuterHeight = (el, includeMargin) => implementationsMap.getOuterHeight(el, includeMargin || false);\r\nexport var setOuterHeight = (el, value) => implementationsMap.setOuterHeight(el, value);\r\nexport var getInnerWidth = el => implementationsMap.getInnerWidth(el);\r\nexport var setInnerWidth = (el, value) => implementationsMap.setInnerWidth(el, value);\r\nexport var getInnerHeight = el => implementationsMap.getInnerHeight(el);\r\nexport var setInnerHeight = (el, value) => implementationsMap.setInnerHeight(el, value);\r\nvar elementSize = function elementSize(el, sizeProperty, value) {\r\n var partialName = sizeProperty.toLowerCase().indexOf(\"width\") >= 0 ? \"Width\" : \"Height\";\r\n var propName = partialName.toLowerCase();\r\n var isOuter = 0 === sizeProperty.indexOf(\"outer\");\r\n var isInner = 0 === sizeProperty.indexOf(\"inner\");\r\n var isGetter = 2 === arguments.length || \"boolean\" === typeof value;\r\n if (isRenderer(el)) {\r\n if (el.length > 1 && !isGetter) {\r\n for (var i = 0; i < el.length; i++) {\r\n elementSize(el[i], sizeProperty, value)\r\n }\r\n return\r\n }\r\n el = el[0]\r\n }\r\n if (!el) {\r\n return\r\n }\r\n if (isWindow(el)) {\r\n return isOuter ? el[\"inner\" + partialName] : domAdapter.getDocumentElement()[\"client\" + partialName]\r\n }\r\n if (domAdapter.isDocument(el)) {\r\n var documentElement = domAdapter.getDocumentElement();\r\n var body = domAdapter.getBody();\r\n return Math.max(body[\"scroll\" + partialName], body[\"offset\" + partialName], documentElement[\"scroll\" + partialName], documentElement[\"offset\" + partialName], documentElement[\"client\" + partialName])\r\n }\r\n if (isGetter) {\r\n var box = \"content\";\r\n if (isOuter) {\r\n box = value ? \"margin\" : \"border\"\r\n }\r\n if (isInner) {\r\n box = \"padding\"\r\n }\r\n return getSize(el, propName, box)\r\n }\r\n if (isNumeric(value)) {\r\n var elementStyles = getElementComputedStyle(el);\r\n var sizeAdjustment = getElementBoxParams(propName, elementStyles);\r\n var isBorderBox = \"border-box\" === elementStyles.boxSizing;\r\n value = Number(value);\r\n if (isOuter) {\r\n value -= isBorderBox ? 0 : sizeAdjustment.border + sizeAdjustment.padding\r\n } else if (isInner) {\r\n value += isBorderBox ? sizeAdjustment.border : -sizeAdjustment.padding\r\n } else if (isBorderBox) {\r\n value += sizeAdjustment.border + sizeAdjustment.padding\r\n }\r\n }\r\n value += isNumeric(value) ? \"px\" : \"\";\r\n domAdapter.setStyle(el, propName, value);\r\n return null\r\n};\r\nexport var getWindowByElement = el => isWindow(el) ? el : el.defaultView;\r\nexport var getOffset = el => {\r\n if (!el.getClientRects().length) {\r\n return {\r\n top: 0,\r\n left: 0\r\n }\r\n }\r\n var rect = el.getBoundingClientRect();\r\n var win = getWindowByElement(el.ownerDocument);\r\n var docElem = el.ownerDocument.documentElement;\r\n return {\r\n top: rect.top + win.pageYOffset - docElem.clientTop,\r\n left: rect.left + win.pageXOffset - docElem.clientLeft\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/html_parser.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar isTagName = /<([a-z][^/\\0>\\x20\\t\\r\\n\\f]+)/i;\r\nvar tagWrappers = {\r\n default: {\r\n tagsCount: 0,\r\n startTags: \"\",\r\n endTags: \"\"\r\n },\r\n thead: {\r\n tagsCount: 1,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n td: {\r\n tagsCount: 3,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n col: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n tr: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n }\r\n};\r\ntagWrappers.tbody = tagWrappers.colgroup = tagWrappers.caption = tagWrappers.tfoot = tagWrappers.thead;\r\ntagWrappers.th = tagWrappers.td;\r\nexport var parseHTML = function(html) {\r\n if (\"string\" !== typeof html) {\r\n return null\r\n }\r\n var fragment = domAdapter.createDocumentFragment();\r\n var container = fragment.appendChild(domAdapter.createElement(\"div\"));\r\n var tags = isTagName.exec(html);\r\n var firstRootTag = tags && tags[1].toLowerCase();\r\n var tagWrapper = tagWrappers[firstRootTag] || tagWrappers.default;\r\n container.innerHTML = tagWrapper.startTags + html + tagWrapper.endTags;\r\n for (var i = 0; i < tagWrapper.tagsCount; i++) {\r\n container = container.lastChild\r\n }\r\n return [...container.childNodes]\r\n};\r\nexport var isTablePart = function(html) {\r\n var tags = isTagName.exec(html);\r\n return tags && tags[1] in tagWrappers\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer_base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n cleanDataRecursive,\r\n removeData,\r\n data as elementData\r\n} from \"./element_data\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isObject,\r\n isWindow,\r\n isPlainObject,\r\n isString,\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n type\r\n} from \"./utils/type\";\r\nimport {\r\n styleProp,\r\n normalizeStyleProp\r\n} from \"./utils/style\";\r\nimport {\r\n getOffset,\r\n getWindowByElement\r\n} from \"./utils/size\";\r\nimport {\r\n parseHTML,\r\n isTablePart\r\n} from \"./utils/html_parser\";\r\nvar window = getWindow();\r\nvar renderer;\r\nvar initRender = function(selector, context) {\r\n if (!selector) {\r\n this.length = 0;\r\n return this\r\n }\r\n if (\"string\" === typeof selector) {\r\n if (\"body\" === selector) {\r\n this[0] = context ? context.body : domAdapter.getBody();\r\n this.length = 1;\r\n return this\r\n }\r\n context = context || domAdapter.getDocument();\r\n if (\"<\" === selector[0]) {\r\n this[0] = domAdapter.createElement(selector.slice(1, -1), context);\r\n this.length = 1;\r\n return this\r\n } [].push.apply(this, domAdapter.querySelectorAll(context, selector));\r\n return this\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n this[0] = selector;\r\n this.length = 1;\r\n return this\r\n } else if (Array.isArray(selector)) {\r\n [].push.apply(this, selector);\r\n return this\r\n }\r\n return renderer(selector.toArray ? selector.toArray() : [selector])\r\n};\r\nrenderer = function(selector, context) {\r\n return new initRender(selector, context)\r\n};\r\nrenderer.fn = {\r\n dxRenderer: true\r\n};\r\ninitRender.prototype = renderer.fn;\r\nvar repeatMethod = function(methodName, args) {\r\n for (var i = 0; i < this.length; i++) {\r\n var item = renderer(this[i]);\r\n item[methodName].apply(item, args)\r\n }\r\n return this\r\n};\r\nvar setAttributeValue = function(element, attrName, value) {\r\n if (void 0 !== value && null !== value && false !== value) {\r\n domAdapter.setAttribute(element, attrName, value)\r\n } else {\r\n domAdapter.removeAttribute(element, attrName)\r\n }\r\n};\r\ninitRender.prototype.show = function() {\r\n return this.toggle(true)\r\n};\r\ninitRender.prototype.hide = function() {\r\n return this.toggle(false)\r\n};\r\ninitRender.prototype.toggle = function(value) {\r\n if (this[0]) {\r\n this.toggleClass(\"dx-state-invisible\", !value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.attr = function(attrName, value) {\r\n if (this.length > 1 && arguments.length > 1) {\r\n return repeatMethod.call(this, \"attr\", arguments)\r\n }\r\n if (!this[0]) {\r\n if (isObject(attrName) || void 0 !== value) {\r\n return this\r\n } else {\r\n return\r\n }\r\n }\r\n if (!this[0].getAttribute) {\r\n return this.prop(attrName, value)\r\n }\r\n if (\"string\" === typeof attrName && 1 === arguments.length) {\r\n var result = this[0].getAttribute(attrName);\r\n return null == result ? void 0 : result\r\n } else if (isPlainObject(attrName)) {\r\n for (var key in attrName) {\r\n this.attr(key, attrName[key])\r\n }\r\n } else {\r\n setAttributeValue(this[0], attrName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.removeAttr = function(attrName) {\r\n this[0] && domAdapter.removeAttribute(this[0], attrName);\r\n return this\r\n};\r\ninitRender.prototype.prop = function(propName, value) {\r\n if (!this[0]) {\r\n return this\r\n }\r\n if (\"string\" === typeof propName && 1 === arguments.length) {\r\n return this[0][propName]\r\n } else if (isPlainObject(propName)) {\r\n for (var key in propName) {\r\n this.prop(key, propName[key])\r\n }\r\n } else {\r\n domAdapter.setProperty(this[0], propName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.addClass = function(className) {\r\n return this.toggleClass(className, true)\r\n};\r\ninitRender.prototype.removeClass = function(className) {\r\n return this.toggleClass(className, false)\r\n};\r\ninitRender.prototype.hasClass = function(className) {\r\n if (!this[0] || void 0 === this[0].className) {\r\n return false\r\n }\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (this[0].classList) {\r\n if (this[0].classList.contains(classNames[i])) {\r\n return true\r\n }\r\n } else {\r\n var _className = isString(this[0].className) ? this[0].className : domAdapter.getAttribute(this[0], \"class\");\r\n if ((_className || \"\").split(\" \").indexOf(classNames[i]) >= 0) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n};\r\ninitRender.prototype.toggleClass = function(className, value) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"toggleClass\", arguments)\r\n }\r\n if (!this[0] || !className) {\r\n return this\r\n }\r\n value = void 0 === value ? !this.hasClass(className) : value;\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n domAdapter.setClass(this[0], classNames[i], value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.html = function(value) {\r\n if (!arguments.length) {\r\n return this[0].innerHTML\r\n }\r\n this.empty();\r\n if (\"string\" === typeof value && !isTablePart(value) || \"number\" === typeof value) {\r\n this[0].innerHTML = value;\r\n return this\r\n }\r\n return this.append(parseHTML(value))\r\n};\r\nvar appendElements = function(element, nextSibling) {\r\n if (!this[0] || !element) {\r\n return\r\n }\r\n if (\"string\" === typeof element) {\r\n element = parseHTML(element)\r\n } else if (element.nodeType) {\r\n element = [element]\r\n } else if (isNumeric(element)) {\r\n element = [domAdapter.createTextNode(element)]\r\n }\r\n for (var i = 0; i < element.length; i++) {\r\n var item = element[i];\r\n var container = this[0];\r\n var wrapTR = \"TABLE\" === container.tagName && \"TR\" === item.tagName;\r\n if (wrapTR && container.tBodies && container.tBodies.length) {\r\n container = container.tBodies[0]\r\n }\r\n domAdapter.insertElement(container, item.nodeType ? item : item[0], nextSibling)\r\n }\r\n};\r\nvar setCss = function(name, value) {\r\n if (!this[0] || !this[0].style) {\r\n return\r\n }\r\n if (null === value || \"number\" === typeof value && isNaN(value)) {\r\n return\r\n }\r\n name = styleProp(name);\r\n for (var i = 0; i < this.length; i++) {\r\n this[i].style[name] = normalizeStyleProp(name, value)\r\n }\r\n};\r\ninitRender.prototype.css = function(name, value) {\r\n if (isString(name)) {\r\n if (2 === arguments.length) {\r\n setCss.call(this, name, value)\r\n } else {\r\n if (!this[0]) {\r\n return\r\n }\r\n name = styleProp(name);\r\n var result = window.getComputedStyle(this[0])[name] || this[0].style[name];\r\n return isNumeric(result) ? result.toString() : result\r\n }\r\n } else if (isPlainObject(name)) {\r\n for (var key in name) {\r\n setCss.call(this, key, name[key])\r\n }\r\n }\r\n return this\r\n};\r\ninitRender.prototype.prepend = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.prepend(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element, this[0].firstChild]);\r\n return this\r\n};\r\ninitRender.prototype.append = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.append(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element]);\r\n return this\r\n};\r\ninitRender.prototype.prependTo = function(element) {\r\n if (this.length > 1) {\r\n for (var i = this.length - 1; i >= 0; i--) {\r\n renderer(this[i]).prependTo(element)\r\n }\r\n return this\r\n }\r\n element = renderer(element);\r\n if (element[0]) {\r\n domAdapter.insertElement(element[0], this[0], element[0].firstChild)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.appendTo = function(element) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"appendTo\", arguments)\r\n }\r\n domAdapter.insertElement(renderer(element)[0], this[0]);\r\n return this\r\n};\r\ninitRender.prototype.insertBefore = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.insertAfter = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.before = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.after = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrap = function(wrapper) {\r\n if (this[0]) {\r\n var wrap = renderer(wrapper);\r\n wrap.insertBefore(this);\r\n wrap.append(this)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrapInner = function(wrapper) {\r\n var contents = this.contents();\r\n if (contents.length) {\r\n contents.wrap(wrapper)\r\n } else {\r\n this.append(wrapper)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.replaceWith = function(element) {\r\n if (!(element && element[0])) {\r\n return\r\n }\r\n if (element.is(this)) {\r\n return this\r\n }\r\n element.insertBefore(this);\r\n this.remove();\r\n return element\r\n};\r\ninitRender.prototype.remove = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"remove\", arguments)\r\n }\r\n cleanDataRecursive(this[0], true);\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.detach = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"detach\", arguments)\r\n }\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.empty = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"empty\", arguments)\r\n }\r\n cleanDataRecursive(this[0]);\r\n domAdapter.setText(this[0], \"\");\r\n return this\r\n};\r\ninitRender.prototype.clone = function() {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n result.push(this[i].cloneNode(true))\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.text = function(value) {\r\n if (!arguments.length) {\r\n var result = \"\";\r\n for (var i = 0; i < this.length; i++) {\r\n result += this[i] && this[i].textContent || \"\"\r\n }\r\n return result\r\n }\r\n var text = isFunction(value) ? value() : value;\r\n cleanDataRecursive(this[0], false);\r\n domAdapter.setText(this[0], isDefined(text) ? text : \"\");\r\n return this\r\n};\r\ninitRender.prototype.val = function(value) {\r\n if (1 === arguments.length) {\r\n return this.prop(\"value\", isDefined(value) ? value : \"\")\r\n }\r\n return this.prop(\"value\")\r\n};\r\ninitRender.prototype.contents = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = [];\r\n result.push.apply(result, this[0].childNodes);\r\n return renderer(result)\r\n};\r\ninitRender.prototype.find = function(selector) {\r\n var result = renderer();\r\n if (!selector) {\r\n return result\r\n }\r\n var nodes = [];\r\n var i;\r\n if (\"string\" === typeof selector) {\r\n selector = selector.trim();\r\n for (i = 0; i < this.length; i++) {\r\n var element = this[i];\r\n if (domAdapter.isElementNode(element)) {\r\n var elementId = element.getAttribute(\"id\");\r\n var queryId = elementId || \"dx-query-children\";\r\n if (!elementId) {\r\n setAttributeValue(element, \"id\", queryId)\r\n }\r\n queryId = \"[id='\" + queryId + \"'] \";\r\n var querySelector = queryId + selector.replace(/([^\\\\])(,)/g, \"$1, \" + queryId);\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, querySelector));\r\n setAttributeValue(element, \"id\", elementId)\r\n } else if (domAdapter.isDocument(element) || domAdapter.isDocumentFragment(element)) {\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, selector))\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < this.length; i++) {\r\n selector = domAdapter.isNode(selector) ? selector : selector[0];\r\n if (this[i] !== selector && this[i].contains(selector)) {\r\n nodes.push(selector)\r\n }\r\n }\r\n }\r\n return result.add(nodes)\r\n};\r\nvar isVisible = function(_, element) {\r\n var _element$host;\r\n element = null !== (_element$host = element.host) && void 0 !== _element$host ? _element$host : element;\r\n if (!element.nodeType) {\r\n return true\r\n }\r\n return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length)\r\n};\r\ninitRender.prototype.filter = function(selector) {\r\n if (!selector) {\r\n return renderer()\r\n }\r\n if (\":visible\" === selector) {\r\n return this.filter(isVisible)\r\n } else if (\":hidden\" === selector) {\r\n return this.filter((function(_, element) {\r\n return !isVisible(_, element)\r\n }))\r\n }\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n if (domAdapter.isElementNode(item) && \"string\" === type(selector)) {\r\n domAdapter.elementMatches(item, selector) && result.push(item)\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n selector === item && result.push(item)\r\n } else if (isFunction(selector)) {\r\n selector.call(item, i, item) && result.push(item)\r\n } else {\r\n for (var j = 0; j < selector.length; j++) {\r\n selector[j] === item && result.push(item)\r\n }\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.not = function(selector) {\r\n var result = [];\r\n var nodes = this.filter(selector).toArray();\r\n for (var i = 0; i < this.length; i++) {\r\n if (-1 === nodes.indexOf(this[i])) {\r\n result.push(this[i])\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.is = function(selector) {\r\n return !!this.filter(selector).length\r\n};\r\ninitRender.prototype.children = function(selector) {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var nodes = this[i] ? this[i].childNodes : [];\r\n for (var j = 0; j < nodes.length; j++) {\r\n if (domAdapter.isElementNode(nodes[j])) {\r\n result.push(nodes[j])\r\n }\r\n }\r\n }\r\n result = renderer(result);\r\n return selector ? result.filter(selector) : result\r\n};\r\ninitRender.prototype.siblings = function() {\r\n var element = this[0];\r\n if (!element || !element.parentNode) {\r\n return renderer()\r\n }\r\n var result = [];\r\n var parentChildNodes = element.parentNode.childNodes || [];\r\n for (var i = 0; i < parentChildNodes.length; i++) {\r\n var node = parentChildNodes[i];\r\n if (domAdapter.isElementNode(node) && node !== element) {\r\n result.push(node)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.each = function(callback) {\r\n for (var i = 0; i < this.length; i++) {\r\n if (false === callback.call(this[i], i, this[i])) {\r\n break\r\n }\r\n }\r\n};\r\ninitRender.prototype.index = function(element) {\r\n if (!element) {\r\n return this.parent().children().index(this)\r\n }\r\n element = renderer(element);\r\n return this.toArray().indexOf(element[0])\r\n};\r\ninitRender.prototype.get = function(index) {\r\n return this[index < 0 ? this.length + index : index]\r\n};\r\ninitRender.prototype.eq = function(index) {\r\n index = index < 0 ? this.length + index : index;\r\n return renderer(this[index])\r\n};\r\ninitRender.prototype.first = function() {\r\n return this.eq(0)\r\n};\r\ninitRender.prototype.last = function() {\r\n return this.eq(-1)\r\n};\r\ninitRender.prototype.select = function() {\r\n for (var i = 0; i < this.length; i += 1) {\r\n this[i].select && this[i].select()\r\n }\r\n return this\r\n};\r\ninitRender.prototype.parent = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = renderer(this[0].parentNode);\r\n return !selector || result.is(selector) ? result : renderer()\r\n};\r\ninitRender.prototype.parents = function(selector) {\r\n var result = [];\r\n var parent = this.parent();\r\n while (parent && parent[0] && !domAdapter.isDocument(parent[0])) {\r\n if (domAdapter.isElementNode(parent[0])) {\r\n if (!selector || parent.is(selector)) {\r\n result.push(parent.get(0))\r\n }\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.closest = function(selector) {\r\n if (this.is(selector)) {\r\n return this\r\n }\r\n var parent = this.parent();\r\n while (parent && parent.length) {\r\n if (parent.is(selector)) {\r\n return parent\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.next = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var next = renderer(this[0].nextSibling);\r\n if (!arguments.length) {\r\n return next\r\n }\r\n while (next && next.length) {\r\n if (next.is(selector)) {\r\n return next\r\n }\r\n next = next.next()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.prev = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n return renderer(this[0].previousSibling)\r\n};\r\ninitRender.prototype.add = function(selector) {\r\n var targets = renderer(selector);\r\n var result = this.toArray();\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n if (-1 === result.indexOf(target)) {\r\n result.push(target)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\nvar emptyArray = [];\r\ninitRender.prototype.splice = function() {\r\n return renderer(emptyArray.splice.apply(this, arguments))\r\n};\r\ninitRender.prototype.slice = function() {\r\n return renderer(emptyArray.slice.apply(this, arguments))\r\n};\r\ninitRender.prototype.toArray = function() {\r\n return emptyArray.slice.call(this)\r\n};\r\ninitRender.prototype.offset = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n return getOffset(this[0])\r\n};\r\ninitRender.prototype.offsetParent = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var offsetParent = renderer(this[0].offsetParent);\r\n while (offsetParent[0] && \"static\" === offsetParent.css(\"position\")) {\r\n offsetParent = renderer(offsetParent[0].offsetParent)\r\n }\r\n offsetParent = offsetParent[0] ? offsetParent : renderer(domAdapter.getDocumentElement());\r\n return offsetParent\r\n};\r\ninitRender.prototype.position = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n var offset;\r\n var marginTop = parseFloat(this.css(\"marginTop\"));\r\n var marginLeft = parseFloat(this.css(\"marginLeft\"));\r\n if (\"fixed\" === this.css(\"position\")) {\r\n offset = this[0].getBoundingClientRect();\r\n return {\r\n top: offset.top - marginTop,\r\n left: offset.left - marginLeft\r\n }\r\n }\r\n offset = this.offset();\r\n var offsetParent = this.offsetParent();\r\n var parentOffset = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (\"HTML\" !== offsetParent[0].nodeName) {\r\n parentOffset = offsetParent.offset()\r\n }\r\n parentOffset = {\r\n top: parentOffset.top + parseFloat(offsetParent.css(\"borderTopWidth\")),\r\n left: parentOffset.left + parseFloat(offsetParent.css(\"borderLeftWidth\"))\r\n };\r\n return {\r\n top: offset.top - parentOffset.top - marginTop,\r\n left: offset.left - parentOffset.left - marginLeft\r\n }\r\n};\r\n[{\r\n name: \"scrollLeft\",\r\n offsetProp: \"pageXOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(value, win.pageYOffset)\r\n }\r\n}, {\r\n name: \"scrollTop\",\r\n offsetProp: \"pageYOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(win.pageXOffset, value)\r\n }\r\n}].forEach((function(directionStrategy) {\r\n var propName = directionStrategy.name;\r\n initRender.prototype[propName] = function(value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n var window = getWindowByElement(this[0]);\r\n if (void 0 === value) {\r\n return window ? window[directionStrategy.offsetProp] : this[0][propName]\r\n }\r\n if (window) {\r\n directionStrategy.scrollWindow(window, value)\r\n } else {\r\n this[0][propName] = value\r\n }\r\n return this\r\n }\r\n}));\r\ninitRender.prototype.data = function(key, value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n if (arguments.length < 2) {\r\n return elementData.call(renderer, this[0], key)\r\n }\r\n elementData.call(renderer, this[0], key, value);\r\n return this\r\n};\r\ninitRender.prototype.removeData = function(key) {\r\n this[0] && removeData(this[0], key);\r\n return this\r\n};\r\nvar rendererWrapper = function() {\r\n return renderer.apply(this, arguments)\r\n};\r\nObject.defineProperty(rendererWrapper, \"fn\", {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return renderer.fn\r\n },\r\n set: function(value) {\r\n renderer.fn = value\r\n }\r\n});\r\nexport default {\r\n set: function(strategy) {\r\n renderer = strategy\r\n },\r\n get: function() {\r\n return rendererWrapper\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport rendererBase from \"./renderer_base\";\r\nexport default rendererBase.get();\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/parent_locales.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport default {\r\n \"en-150\": \"en-001\",\r\n \"en-AG\": \"en-001\",\r\n \"en-AI\": \"en-001\",\r\n \"en-AU\": \"en-001\",\r\n \"en-BB\": \"en-001\",\r\n \"en-BM\": \"en-001\",\r\n \"en-BS\": \"en-001\",\r\n \"en-BW\": \"en-001\",\r\n \"en-BZ\": \"en-001\",\r\n \"en-CC\": \"en-001\",\r\n \"en-CK\": \"en-001\",\r\n \"en-CM\": \"en-001\",\r\n \"en-CX\": \"en-001\",\r\n \"en-CY\": \"en-001\",\r\n \"en-DG\": \"en-001\",\r\n \"en-DM\": \"en-001\",\r\n \"en-ER\": \"en-001\",\r\n \"en-FJ\": \"en-001\",\r\n \"en-FK\": \"en-001\",\r\n \"en-FM\": \"en-001\",\r\n \"en-GB\": \"en-001\",\r\n \"en-GD\": \"en-001\",\r\n \"en-GG\": \"en-001\",\r\n \"en-GH\": \"en-001\",\r\n \"en-GI\": \"en-001\",\r\n \"en-GM\": \"en-001\",\r\n \"en-GY\": \"en-001\",\r\n \"en-HK\": \"en-001\",\r\n \"en-IE\": \"en-001\",\r\n \"en-IL\": \"en-001\",\r\n \"en-IM\": \"en-001\",\r\n \"en-IN\": \"en-001\",\r\n \"en-IO\": \"en-001\",\r\n \"en-JE\": \"en-001\",\r\n \"en-JM\": \"en-001\",\r\n \"en-KE\": \"en-001\",\r\n \"en-KI\": \"en-001\",\r\n \"en-KN\": \"en-001\",\r\n \"en-KY\": \"en-001\",\r\n \"en-LC\": \"en-001\",\r\n \"en-LR\": \"en-001\",\r\n \"en-LS\": \"en-001\",\r\n \"en-MG\": \"en-001\",\r\n \"en-MO\": \"en-001\",\r\n \"en-MS\": \"en-001\",\r\n \"en-MT\": \"en-001\",\r\n \"en-MU\": \"en-001\",\r\n \"en-MV\": \"en-001\",\r\n \"en-MW\": \"en-001\",\r\n \"en-MY\": \"en-001\",\r\n \"en-NA\": \"en-001\",\r\n \"en-NF\": \"en-001\",\r\n \"en-NG\": \"en-001\",\r\n \"en-NR\": \"en-001\",\r\n \"en-NU\": \"en-001\",\r\n \"en-NZ\": \"en-001\",\r\n \"en-PG\": \"en-001\",\r\n \"en-PK\": \"en-001\",\r\n \"en-PN\": \"en-001\",\r\n \"en-PW\": \"en-001\",\r\n \"en-RW\": \"en-001\",\r\n \"en-SB\": \"en-001\",\r\n \"en-SC\": \"en-001\",\r\n \"en-SD\": \"en-001\",\r\n \"en-SG\": \"en-001\",\r\n \"en-SH\": \"en-001\",\r\n \"en-SL\": \"en-001\",\r\n \"en-SS\": \"en-001\",\r\n \"en-SX\": \"en-001\",\r\n \"en-SZ\": \"en-001\",\r\n \"en-TC\": \"en-001\",\r\n \"en-TK\": \"en-001\",\r\n \"en-TO\": \"en-001\",\r\n \"en-TT\": \"en-001\",\r\n \"en-TV\": \"en-001\",\r\n \"en-TZ\": \"en-001\",\r\n \"en-UG\": \"en-001\",\r\n \"en-VC\": \"en-001\",\r\n \"en-VG\": \"en-001\",\r\n \"en-VU\": \"en-001\",\r\n \"en-WS\": \"en-001\",\r\n \"en-ZA\": \"en-001\",\r\n \"en-ZM\": \"en-001\",\r\n \"en-ZW\": \"en-001\",\r\n \"en-AT\": \"en-150\",\r\n \"en-BE\": \"en-150\",\r\n \"en-CH\": \"en-150\",\r\n \"en-DE\": \"en-150\",\r\n \"en-DK\": \"en-150\",\r\n \"en-FI\": \"en-150\",\r\n \"en-NL\": \"en-150\",\r\n \"en-SE\": \"en-150\",\r\n \"en-SI\": \"en-150\",\r\n \"hi-Latn\": \"en-IN\",\r\n \"es-AR\": \"es-419\",\r\n \"es-BO\": \"es-419\",\r\n \"es-BR\": \"es-419\",\r\n \"es-BZ\": \"es-419\",\r\n \"es-CL\": \"es-419\",\r\n \"es-CO\": \"es-419\",\r\n \"es-CR\": \"es-419\",\r\n \"es-CU\": \"es-419\",\r\n \"es-DO\": \"es-419\",\r\n \"es-EC\": \"es-419\",\r\n \"es-GT\": \"es-419\",\r\n \"es-HN\": \"es-419\",\r\n \"es-MX\": \"es-419\",\r\n \"es-NI\": \"es-419\",\r\n \"es-PA\": \"es-419\",\r\n \"es-PE\": \"es-419\",\r\n \"es-PR\": \"es-419\",\r\n \"es-PY\": \"es-419\",\r\n \"es-SV\": \"es-419\",\r\n \"es-US\": \"es-419\",\r\n \"es-UY\": \"es-419\",\r\n \"es-VE\": \"es-419\",\r\n nb: \"no\",\r\n nn: \"no\",\r\n \"pt-AO\": \"pt-PT\",\r\n \"pt-CH\": \"pt-PT\",\r\n \"pt-CV\": \"pt-PT\",\r\n \"pt-FR\": \"pt-PT\",\r\n \"pt-GQ\": \"pt-PT\",\r\n \"pt-GW\": \"pt-PT\",\r\n \"pt-LU\": \"pt-PT\",\r\n \"pt-MO\": \"pt-PT\",\r\n \"pt-MZ\": \"pt-PT\",\r\n \"pt-ST\": \"pt-PT\",\r\n \"pt-TL\": \"pt-PT\",\r\n \"az-Arab\": \"und\",\r\n \"az-Cyrl\": \"und\",\r\n \"bal-Latn\": \"und\",\r\n \"blt-Latn\": \"und\",\r\n \"bm-Nkoo\": \"und\",\r\n \"bs-Cyrl\": \"und\",\r\n \"byn-Latn\": \"und\",\r\n \"cu-Glag\": \"und\",\r\n \"dje-Arab\": \"und\",\r\n \"dyo-Arab\": \"und\",\r\n \"en-Dsrt\": \"und\",\r\n \"en-Shaw\": \"und\",\r\n \"ff-Adlm\": \"und\",\r\n \"ff-Arab\": \"und\",\r\n \"ha-Arab\": \"und\",\r\n \"iu-Latn\": \"und\",\r\n \"kk-Arab\": \"und\",\r\n \"ks-Deva\": \"und\",\r\n \"ku-Arab\": \"und\",\r\n \"ky-Arab\": \"und\",\r\n \"ky-Latn\": \"und\",\r\n \"ml-Arab\": \"und\",\r\n \"mn-Mong\": \"und\",\r\n \"mni-Mtei\": \"und\",\r\n \"ms-Arab\": \"und\",\r\n \"pa-Arab\": \"und\",\r\n \"sat-Deva\": \"und\",\r\n \"sd-Deva\": \"und\",\r\n \"sd-Khoj\": \"und\",\r\n \"sd-Sind\": \"und\",\r\n \"shi-Latn\": \"und\",\r\n \"so-Arab\": \"und\",\r\n \"sr-Latn\": \"und\",\r\n \"sw-Arab\": \"und\",\r\n \"tg-Arab\": \"und\",\r\n \"ug-Cyrl\": \"und\",\r\n \"uz-Arab\": \"und\",\r\n \"uz-Cyrl\": \"und\",\r\n \"vai-Latn\": \"und\",\r\n \"wo-Arab\": \"und\",\r\n \"yo-Arab\": \"und\",\r\n \"yue-Hans\": \"und\",\r\n \"zh-Hant\": \"und\",\r\n \"zh-Hant-MO\": \"zh-Hant-HK\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/parentLocale.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar PARENT_LOCALE_SEPARATOR = \"-\";\r\nexport default (parentLocales, locale) => {\r\n var parentLocale = parentLocales[locale];\r\n if (parentLocale) {\r\n return \"root\" !== parentLocale && parentLocale\r\n }\r\n return locale.substr(0, locale.lastIndexOf(PARENT_LOCALE_SEPARATOR))\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/core.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport parentLocales from \"./cldr-data/parent_locales\";\r\nimport getParentLocale from \"./parentLocale\";\r\nvar DEFAULT_LOCALE = \"en\";\r\nexport default dependencyInjector({\r\n locale: (() => {\r\n var currentLocale = DEFAULT_LOCALE;\r\n return locale => {\r\n if (!locale) {\r\n return currentLocale\r\n }\r\n currentLocale = locale\r\n }\r\n })(),\r\n getValueByClosestLocale: function(getter) {\r\n var locale = this.locale();\r\n var value = getter(locale);\r\n var isRootLocale;\r\n while (!value && !isRootLocale) {\r\n locale = getParentLocale(parentLocales, locale);\r\n if (locale) {\r\n value = getter(locale)\r\n } else {\r\n isRootLocale = true\r\n }\r\n }\r\n if (void 0 === value && locale !== DEFAULT_LOCALE) {\r\n return getter(DEFAULT_LOCALE)\r\n }\r\n return value\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/localization/default_messages.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport var defaultMessages = {\r\n en: {\r\n Yes: \"Yes\",\r\n No: \"No\",\r\n Cancel: \"Cancel\",\r\n Close: \"Close\",\r\n Clear: \"Clear\",\r\n Done: \"Done\",\r\n Loading: \"Loading...\",\r\n Select: \"Select...\",\r\n Search: \"Search\",\r\n Back: \"Back\",\r\n OK: \"OK\",\r\n \"dxCollectionWidget-noDataText\": \"No data to display\",\r\n \"dxDropDownEditor-selectLabel\": \"Select\",\r\n \"validation-required\": \"Required\",\r\n \"validation-required-formatted\": \"{0} is required\",\r\n \"validation-numeric\": \"Value must be a number\",\r\n \"validation-numeric-formatted\": \"{0} must be a number\",\r\n \"validation-range\": \"Value is out of range\",\r\n \"validation-range-formatted\": \"{0} is out of range\",\r\n \"validation-stringLength\": \"The length of the value is not correct\",\r\n \"validation-stringLength-formatted\": \"The length of {0} is not correct\",\r\n \"validation-custom\": \"Value is invalid\",\r\n \"validation-custom-formatted\": \"{0} is invalid\",\r\n \"validation-async\": \"Value is invalid\",\r\n \"validation-async-formatted\": \"{0} is invalid\",\r\n \"validation-compare\": \"Values do not match\",\r\n \"validation-compare-formatted\": \"{0} does not match\",\r\n \"validation-pattern\": \"Value does not match pattern\",\r\n \"validation-pattern-formatted\": \"{0} does not match pattern\",\r\n \"validation-email\": \"Email is invalid\",\r\n \"validation-email-formatted\": \"{0} is invalid\",\r\n \"validation-mask\": \"Value is invalid\",\r\n \"dxLookup-searchPlaceholder\": \"Minimum character number: {0}\",\r\n \"dxList-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxList-pulledDownText\": \"Release to refresh...\",\r\n \"dxList-refreshingText\": \"Refreshing...\",\r\n \"dxList-pageLoadingText\": \"Loading...\",\r\n \"dxList-nextButtonText\": \"More\",\r\n \"dxList-selectAll\": \"Select All\",\r\n \"dxListEditDecorator-delete\": \"Delete\",\r\n \"dxListEditDecorator-more\": \"More\",\r\n \"dxScrollView-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxScrollView-pulledDownText\": \"Release to refresh...\",\r\n \"dxScrollView-refreshingText\": \"Refreshing...\",\r\n \"dxScrollView-reachBottomText\": \"Loading...\",\r\n \"dxDateBox-simulatedDataPickerTitleTime\": \"Select time\",\r\n \"dxDateBox-simulatedDataPickerTitleDate\": \"Select date\",\r\n \"dxDateBox-simulatedDataPickerTitleDateTime\": \"Select date and time\",\r\n \"dxDateBox-validation-datetime\": \"Value must be a date or time\",\r\n \"dxDateRangeBox-invalidStartDateMessage\": \"Start value must be a date\",\r\n \"dxDateRangeBox-invalidEndDateMessage\": \"End value must be a date\",\r\n \"dxDateRangeBox-startDateOutOfRangeMessage\": \"Start date is out of range\",\r\n \"dxDateRangeBox-endDateOutOfRangeMessage\": \"End date is out of range\",\r\n \"dxDateRangeBox-startDateLabel\": \"Start Date\",\r\n \"dxDateRangeBox-endDateLabel\": \"End Date\",\r\n \"dxFileUploader-selectFile\": \"Select a file\",\r\n \"dxFileUploader-dropFile\": \"or Drop a file here\",\r\n \"dxFileUploader-bytes\": \"bytes\",\r\n \"dxFileUploader-kb\": \"KB\",\r\n \"dxFileUploader-Mb\": \"MB\",\r\n \"dxFileUploader-Gb\": \"GB\",\r\n \"dxFileUploader-upload\": \"Upload\",\r\n \"dxFileUploader-uploaded\": \"Uploaded\",\r\n \"dxFileUploader-readyToUpload\": \"Ready to upload\",\r\n \"dxFileUploader-uploadAbortedMessage\": \"Upload cancelled\",\r\n \"dxFileUploader-uploadFailedMessage\": \"Upload failed\",\r\n \"dxFileUploader-invalidFileExtension\": \"File type is not allowed\",\r\n \"dxFileUploader-invalidMaxFileSize\": \"File is too large\",\r\n \"dxFileUploader-invalidMinFileSize\": \"File is too small\",\r\n \"dxRangeSlider-ariaFrom\": \"From\",\r\n \"dxRangeSlider-ariaTill\": \"Till\",\r\n \"dxSwitch-switchedOnText\": \"ON\",\r\n \"dxSwitch-switchedOffText\": \"OFF\",\r\n \"dxForm-optionalMark\": \"optional\",\r\n \"dxForm-requiredMessage\": \"{0} is required\",\r\n \"dxNumberBox-invalidValueMessage\": \"Value must be a number\",\r\n \"dxNumberBox-noDataText\": \"No data\",\r\n \"dxDataGrid-emptyHeaderWithColumnChooserText\": \"Use {0} to display columns\",\r\n \"dxDataGrid-emptyHeaderWithGroupPanelText\": \"Drag a column from the group panel here\",\r\n \"dxDataGrid-emptyHeaderWithColumnChooserAndGroupPanelText\": \"Use {0} or drag a column from the group panel\",\r\n \"dxDataGrid-emptyHeaderColumnChooserText\": \"column chooser\",\r\n \"dxDataGrid-columnChooserTitle\": \"Column Chooser\",\r\n \"dxDataGrid-columnChooserEmptyText\": \"Drag a column here to hide it\",\r\n \"dxDataGrid-groupContinuesMessage\": \"Continues on the next page\",\r\n \"dxDataGrid-groupContinuedMessage\": \"Continued from the previous page\",\r\n \"dxDataGrid-groupHeaderText\": \"Group by This Column\",\r\n \"dxDataGrid-ungroupHeaderText\": \"Ungroup\",\r\n \"dxDataGrid-ungroupAllText\": \"Ungroup All\",\r\n \"dxDataGrid-editingEditRow\": \"Edit\",\r\n \"dxDataGrid-editingSaveRowChanges\": \"Save\",\r\n \"dxDataGrid-editingCancelRowChanges\": \"Cancel\",\r\n \"dxDataGrid-editingDeleteRow\": \"Delete\",\r\n \"dxDataGrid-editingUndeleteRow\": \"Undelete\",\r\n \"dxDataGrid-editingConfirmDeleteMessage\": \"Are you sure you want to delete this record?\",\r\n \"dxDataGrid-validationCancelChanges\": \"Cancel changes\",\r\n \"dxDataGrid-groupPanelEmptyText\": \"Drag a column header here to group by that column\",\r\n \"dxDataGrid-noDataText\": \"No data\",\r\n \"dxDataGrid-searchPanelPlaceholder\": \"Search...\",\r\n \"dxDataGrid-filterRowShowAllText\": \"(All)\",\r\n \"dxDataGrid-filterRowResetOperationText\": \"Reset\",\r\n \"dxDataGrid-filterRowOperationEquals\": \"Equals\",\r\n \"dxDataGrid-filterRowOperationNotEquals\": \"Does not equal\",\r\n \"dxDataGrid-filterRowOperationLess\": \"Less than\",\r\n \"dxDataGrid-filterRowOperationLessOrEquals\": \"Less than or equal to\",\r\n \"dxDataGrid-filterRowOperationGreater\": \"Greater than\",\r\n \"dxDataGrid-filterRowOperationGreaterOrEquals\": \"Greater than or equal to\",\r\n \"dxDataGrid-filterRowOperationStartsWith\": \"Starts with\",\r\n \"dxDataGrid-filterRowOperationContains\": \"Contains\",\r\n \"dxDataGrid-filterRowOperationNotContains\": \"Does not contain\",\r\n \"dxDataGrid-filterRowOperationEndsWith\": \"Ends with\",\r\n \"dxDataGrid-filterRowOperationBetween\": \"Between\",\r\n \"dxDataGrid-filterRowOperationBetweenStartText\": \"Start\",\r\n \"dxDataGrid-filterRowOperationBetweenEndText\": \"End\",\r\n \"dxDataGrid-ariaSearchBox\": \"Search box\",\r\n \"dxDataGrid-applyFilterText\": \"Apply filter\",\r\n \"dxDataGrid-trueText\": \"true\",\r\n \"dxDataGrid-falseText\": \"false\",\r\n \"dxDataGrid-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxDataGrid-sortingDescendingText\": \"Sort Descending\",\r\n \"dxDataGrid-sortingClearText\": \"Clear Sorting\",\r\n \"dxDataGrid-ariaNotSortedColumn\": \"Not sorted column\",\r\n \"dxDataGrid-ariaSortedAscendingColumn\": \"Column sorted in ascending order\",\r\n \"dxDataGrid-ariaSortedDescendingColumn\": \"Column sorted in descending order\",\r\n \"dxDataGrid-ariaSortIndex\": \"Sort index {0}\",\r\n \"dxDataGrid-editingSaveAllChanges\": \"Save changes\",\r\n \"dxDataGrid-editingCancelAllChanges\": \"Discard changes\",\r\n \"dxDataGrid-editingAddRow\": \"Add a row\",\r\n \"dxDataGrid-summaryMin\": \"Min: {0}\",\r\n \"dxDataGrid-summaryMinOtherColumn\": \"Min of {1} is {0}\",\r\n \"dxDataGrid-summaryMax\": \"Max: {0}\",\r\n \"dxDataGrid-summaryMaxOtherColumn\": \"Max of {1} is {0}\",\r\n \"dxDataGrid-summaryAvg\": \"Avg: {0}\",\r\n \"dxDataGrid-summaryAvgOtherColumn\": \"Avg of {1} is {0}\",\r\n \"dxDataGrid-summarySum\": \"Sum: {0}\",\r\n \"dxDataGrid-summarySumOtherColumn\": \"Sum of {1} is {0}\",\r\n \"dxDataGrid-summaryCount\": \"Count: {0}\",\r\n \"dxDataGrid-columnFixingFix\": \"Fix\",\r\n \"dxDataGrid-columnFixingUnfix\": \"Unfix\",\r\n \"dxDataGrid-columnFixingLeftPosition\": \"To the left\",\r\n \"dxDataGrid-columnFixingRightPosition\": \"To the right\",\r\n \"dxDataGrid-exportTo\": \"Export\",\r\n \"dxDataGrid-exportToExcel\": \"Export to Excel file\",\r\n \"dxDataGrid-exporting\": \"Exporting...\",\r\n \"dxDataGrid-excelFormat\": \"Excel file\",\r\n \"dxDataGrid-selectedRows\": \"Selected rows\",\r\n \"dxDataGrid-exportSelectedRows\": \"Export selected rows to {0}\",\r\n \"dxDataGrid-exportAll\": \"Export all data to {0}\",\r\n \"dxDataGrid-headerFilterLabel\": \"Filter options\",\r\n \"dxDataGrid-headerFilterIndicatorLabel\": \"Show filter options for column '{0}'\",\r\n \"dxDataGrid-headerFilterEmptyValue\": \"(Blanks)\",\r\n \"dxDataGrid-headerFilterOK\": \"OK\",\r\n \"dxDataGrid-headerFilterCancel\": \"Cancel\",\r\n \"dxDataGrid-ariaAdaptiveCollapse\": \"Hide additional data\",\r\n \"dxDataGrid-ariaAdaptiveExpand\": \"Display additional data\",\r\n \"dxDataGrid-ariaColumn\": \"Column\",\r\n \"dxDataGrid-ariaColumnHeader\": \"Column header\",\r\n \"dxDataGrid-ariaValue\": \"Value\",\r\n \"dxDataGrid-ariaError\": \"Error\",\r\n \"dxDataGrid-ariaRevertButton\": \"Press Escape to discard the changes\",\r\n \"dxDataGrid-ariaFilterCell\": \"Filter cell\",\r\n \"dxDataGrid-ariaCollapse\": \"Collapse\",\r\n \"dxDataGrid-ariaModifiedCell\": \"Modified\",\r\n \"dxDataGrid-ariaDeletedCell\": \"Deleted\",\r\n \"dxDataGrid-ariaEditableCell\": \"Editable\",\r\n \"dxDataGrid-ariaExpand\": \"Expand\",\r\n \"dxDataGrid-ariaCollapsedRow\": \"Collapsed row\",\r\n \"dxDataGrid-ariaExpandedRow\": \"Expanded row\",\r\n \"dxDataGrid-ariaDataGrid\": \"Data grid with {0} rows and {1} columns\",\r\n \"dxDataGrid-ariaSearchInGrid\": \"Search in the data grid\",\r\n \"dxDataGrid-ariaSelectAll\": \"Select all\",\r\n \"dxDataGrid-ariaSelectRow\": \"Select row\",\r\n \"dxDataGrid-ariaToolbar\": \"Data grid toolbar\",\r\n \"dxDataGrid-ariaEditForm\": \"Edit form\",\r\n \"dxDataGrid-filterBuilderPopupTitle\": \"Filter Builder\",\r\n \"dxDataGrid-filterPanelCreateFilter\": \"Create Filter\",\r\n \"dxDataGrid-filterPanelClearFilter\": \"Clear\",\r\n \"dxDataGrid-filterPanelFilterEnabledHint\": \"Enable the filter\",\r\n \"dxTreeList-ariaTreeList\": \"Tree list with {0} rows and {1} columns\",\r\n \"dxTreeList-ariaSearchInGrid\": \"Search in the tree list\",\r\n \"dxTreeList-ariaToolbar\": \"Tree list toolbar\",\r\n \"dxTreeList-editingAddRowToNode\": \"Add\",\r\n \"dxPager-infoText\": \"Page {0} of {1} ({2} items)\",\r\n \"dxPager-pagesCountText\": \"of\",\r\n \"dxPager-pageSize\": \"Items per page: {0}\",\r\n \"dxPager-pageSizesAllText\": \"All\",\r\n \"dxPager-page\": \"Page {0}\",\r\n \"dxPager-prevPage\": \"Previous Page\",\r\n \"dxPager-nextPage\": \"Next Page\",\r\n \"dxPager-ariaLabel\": \"Page Navigation\",\r\n \"dxPager-ariaPageSize\": \"Page size\",\r\n \"dxPager-ariaPageNumber\": \"Page number\",\r\n \"dxPivotGrid-grandTotal\": \"Grand Total\",\r\n \"dxPivotGrid-total\": \"{0} Total\",\r\n \"dxPivotGrid-fieldChooserTitle\": \"Field Chooser\",\r\n \"dxPivotGrid-showFieldChooser\": \"Show Field Chooser\",\r\n \"dxPivotGrid-expandAll\": \"Expand All\",\r\n \"dxPivotGrid-collapseAll\": \"Collapse All\",\r\n \"dxPivotGrid-sortColumnBySummary\": 'Sort \"{0}\" by This Column',\r\n \"dxPivotGrid-sortRowBySummary\": 'Sort \"{0}\" by This Row',\r\n \"dxPivotGrid-removeAllSorting\": \"Remove All Sorting\",\r\n \"dxPivotGrid-dataNotAvailable\": \"N/A\",\r\n \"dxPivotGrid-rowFields\": \"Row Fields\",\r\n \"dxPivotGrid-columnFields\": \"Column Fields\",\r\n \"dxPivotGrid-dataFields\": \"Data Fields\",\r\n \"dxPivotGrid-filterFields\": \"Filter Fields\",\r\n \"dxPivotGrid-allFields\": \"All Fields\",\r\n \"dxPivotGrid-columnFieldArea\": \"Drop Column Fields Here\",\r\n \"dxPivotGrid-dataFieldArea\": \"Drop Data Fields Here\",\r\n \"dxPivotGrid-rowFieldArea\": \"Drop Row Fields Here\",\r\n \"dxPivotGrid-filterFieldArea\": \"Drop Filter Fields Here\",\r\n \"dxScheduler-editorLabelTitle\": \"Subject\",\r\n \"dxScheduler-editorLabelStartDate\": \"Start Date\",\r\n \"dxScheduler-editorLabelEndDate\": \"End Date\",\r\n \"dxScheduler-editorLabelDescription\": \"Description\",\r\n \"dxScheduler-editorLabelRecurrence\": \"Repeat\",\r\n \"dxScheduler-openAppointment\": \"Open appointment\",\r\n \"dxScheduler-recurrenceNever\": \"Never\",\r\n \"dxScheduler-recurrenceMinutely\": \"Every minute\",\r\n \"dxScheduler-recurrenceHourly\": \"Hourly\",\r\n \"dxScheduler-recurrenceDaily\": \"Daily\",\r\n \"dxScheduler-recurrenceWeekly\": \"Weekly\",\r\n \"dxScheduler-recurrenceMonthly\": \"Monthly\",\r\n \"dxScheduler-recurrenceYearly\": \"Yearly\",\r\n \"dxScheduler-recurrenceRepeatEvery\": \"Repeat Every\",\r\n \"dxScheduler-recurrenceRepeatOn\": \"Repeat On\",\r\n \"dxScheduler-recurrenceEnd\": \"End repeat\",\r\n \"dxScheduler-recurrenceAfter\": \"After\",\r\n \"dxScheduler-recurrenceOn\": \"On\",\r\n \"dxScheduler-recurrenceRepeatMinutely\": \"minute(s)\",\r\n \"dxScheduler-recurrenceRepeatHourly\": \"hour(s)\",\r\n \"dxScheduler-recurrenceRepeatDaily\": \"day(s)\",\r\n \"dxScheduler-recurrenceRepeatWeekly\": \"week(s)\",\r\n \"dxScheduler-recurrenceRepeatMonthly\": \"month(s)\",\r\n \"dxScheduler-recurrenceRepeatYearly\": \"year(s)\",\r\n \"dxScheduler-switcherDay\": \"Day\",\r\n \"dxScheduler-switcherWeek\": \"Week\",\r\n \"dxScheduler-switcherWorkWeek\": \"Work Week\",\r\n \"dxScheduler-switcherMonth\": \"Month\",\r\n \"dxScheduler-switcherAgenda\": \"Agenda\",\r\n \"dxScheduler-switcherTimelineDay\": \"Timeline Day\",\r\n \"dxScheduler-switcherTimelineWeek\": \"Timeline Week\",\r\n \"dxScheduler-switcherTimelineWorkWeek\": \"Timeline Work Week\",\r\n \"dxScheduler-switcherTimelineMonth\": \"Timeline Month\",\r\n \"dxScheduler-recurrenceRepeatOnDate\": \"on date\",\r\n \"dxScheduler-recurrenceRepeatCount\": \"occurrence(s)\",\r\n \"dxScheduler-allDay\": \"All day\",\r\n \"dxScheduler-confirmRecurrenceEditTitle\": \"Edit Recurring Appointment\",\r\n \"dxScheduler-confirmRecurrenceDeleteTitle\": \"Delete Recurring Appointment\",\r\n \"dxScheduler-confirmRecurrenceEditMessage\": \"Do you want to edit only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceDeleteMessage\": \"Do you want to delete only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceEditSeries\": \"Edit series\",\r\n \"dxScheduler-confirmRecurrenceDeleteSeries\": \"Delete series\",\r\n \"dxScheduler-confirmRecurrenceEditOccurrence\": \"Edit appointment\",\r\n \"dxScheduler-confirmRecurrenceDeleteOccurrence\": \"Delete appointment\",\r\n \"dxScheduler-noTimezoneTitle\": \"No timezone\",\r\n \"dxScheduler-moreAppointments\": \"{0} more\",\r\n \"dxCalendar-todayButtonText\": \"Today\",\r\n \"dxCalendar-ariaWidgetName\": \"Calendar\",\r\n \"dxCalendar-previousMonthButtonLabel\": \"Previous month\",\r\n \"dxCalendar-previousYearButtonLabel\": \"Previous year\",\r\n \"dxCalendar-previousDecadeButtonLabel\": \"Previous decade\",\r\n \"dxCalendar-previousCenturyButtonLabel\": \"Previous century\",\r\n \"dxCalendar-nextMonthButtonLabel\": \"Next month\",\r\n \"dxCalendar-nextYearButtonLabel\": \"Next year\",\r\n \"dxCalendar-nextDecadeButtonLabel\": \"Next decade\",\r\n \"dxCalendar-nextCenturyButtonLabel\": \"Next century\",\r\n \"dxCalendar-captionMonthLabel\": \"Month selection\",\r\n \"dxCalendar-captionYearLabel\": \"Year selection\",\r\n \"dxCalendar-captionDecadeLabel\": \"Decade selection\",\r\n \"dxCalendar-captionCenturyLabel\": \"Century selection\",\r\n \"dxColorView-ariaRed\": \"Red\",\r\n \"dxColorView-ariaGreen\": \"Green\",\r\n \"dxColorView-ariaBlue\": \"Blue\",\r\n \"dxColorView-ariaAlpha\": \"Transparency\",\r\n \"dxColorView-ariaHex\": \"Color code\",\r\n \"dxTagBox-selected\": \"{0} selected\",\r\n \"dxTagBox-allSelected\": \"All selected ({0})\",\r\n \"dxTagBox-moreSelected\": \"{0} more\",\r\n \"vizExport-printingButtonText\": \"Print\",\r\n \"vizExport-titleMenuText\": \"Exporting/Printing\",\r\n \"vizExport-exportButtonText\": \"{0} file\",\r\n \"dxFilterBuilder-and\": \"And\",\r\n \"dxFilterBuilder-or\": \"Or\",\r\n \"dxFilterBuilder-notAnd\": \"Not And\",\r\n \"dxFilterBuilder-notOr\": \"Not Or\",\r\n \"dxFilterBuilder-addCondition\": \"Add Condition\",\r\n \"dxFilterBuilder-addGroup\": \"Add Group\",\r\n \"dxFilterBuilder-enterValueText\": \"\",\r\n \"dxFilterBuilder-filterOperationEquals\": \"Equals\",\r\n \"dxFilterBuilder-filterOperationNotEquals\": \"Does not equal\",\r\n \"dxFilterBuilder-filterOperationLess\": \"Is less than\",\r\n \"dxFilterBuilder-filterOperationLessOrEquals\": \"Is less than or equal to\",\r\n \"dxFilterBuilder-filterOperationGreater\": \"Is greater than\",\r\n \"dxFilterBuilder-filterOperationGreaterOrEquals\": \"Is greater than or equal to\",\r\n \"dxFilterBuilder-filterOperationStartsWith\": \"Starts with\",\r\n \"dxFilterBuilder-filterOperationContains\": \"Contains\",\r\n \"dxFilterBuilder-filterOperationNotContains\": \"Does not contain\",\r\n \"dxFilterBuilder-filterOperationEndsWith\": \"Ends with\",\r\n \"dxFilterBuilder-filterOperationIsBlank\": \"Is blank\",\r\n \"dxFilterBuilder-filterOperationIsNotBlank\": \"Is not blank\",\r\n \"dxFilterBuilder-filterOperationBetween\": \"Is between\",\r\n \"dxFilterBuilder-filterOperationAnyOf\": \"Is any of\",\r\n \"dxFilterBuilder-filterOperationNoneOf\": \"Is none of\",\r\n \"dxHtmlEditor-dialogColorCaption\": \"Change Font Color\",\r\n \"dxHtmlEditor-dialogBackgroundCaption\": \"Change Background Color\",\r\n \"dxHtmlEditor-dialogLinkCaption\": \"Add Link\",\r\n \"dxHtmlEditor-dialogLinkUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogLinkTextField\": \"Text\",\r\n \"dxHtmlEditor-dialogLinkTargetField\": \"Open link in new window\",\r\n \"dxHtmlEditor-dialogImageCaption\": \"Add Image\",\r\n \"dxHtmlEditor-dialogImageUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogImageAltField\": \"Alternate text\",\r\n \"dxHtmlEditor-dialogImageWidthField\": \"Width (px)\",\r\n \"dxHtmlEditor-dialogImageHeightField\": \"Height (px)\",\r\n \"dxHtmlEditor-dialogInsertTableRowsField\": \"Rows\",\r\n \"dxHtmlEditor-dialogInsertTableColumnsField\": \"Columns\",\r\n \"dxHtmlEditor-dialogInsertTableCaption\": \"Insert Table\",\r\n \"dxHtmlEditor-dialogUpdateImageCaption\": \"Update Image\",\r\n \"dxHtmlEditor-dialogImageUpdateButton\": \"Update\",\r\n \"dxHtmlEditor-dialogImageAddButton\": \"Add\",\r\n \"dxHtmlEditor-dialogImageSpecifyUrl\": \"From the Web\",\r\n \"dxHtmlEditor-dialogImageSelectFile\": \"From This Device\",\r\n \"dxHtmlEditor-dialogImageKeepAspectRatio\": \"Keep Aspect Ratio\",\r\n \"dxHtmlEditor-dialogImageEncodeToBase64\": \"Encode to Base64\",\r\n \"dxHtmlEditor-heading\": \"Heading\",\r\n \"dxHtmlEditor-normalText\": \"Normal text\",\r\n \"dxHtmlEditor-background\": \"Background Color\",\r\n \"dxHtmlEditor-bold\": \"Bold\",\r\n \"dxHtmlEditor-color\": \"Font Color\",\r\n \"dxHtmlEditor-font\": \"Font\",\r\n \"dxHtmlEditor-italic\": \"Italic\",\r\n \"dxHtmlEditor-link\": \"Add Link\",\r\n \"dxHtmlEditor-image\": \"Add Image\",\r\n \"dxHtmlEditor-size\": \"Size\",\r\n \"dxHtmlEditor-strike\": \"Strikethrough\",\r\n \"dxHtmlEditor-subscript\": \"Subscript\",\r\n \"dxHtmlEditor-superscript\": \"Superscript\",\r\n \"dxHtmlEditor-underline\": \"Underline\",\r\n \"dxHtmlEditor-blockquote\": \"Blockquote\",\r\n \"dxHtmlEditor-header\": \"Header\",\r\n \"dxHtmlEditor-increaseIndent\": \"Increase Indent\",\r\n \"dxHtmlEditor-decreaseIndent\": \"Decrease Indent\",\r\n \"dxHtmlEditor-orderedList\": \"Ordered List\",\r\n \"dxHtmlEditor-bulletList\": \"Bullet List\",\r\n \"dxHtmlEditor-alignLeft\": \"Align Left\",\r\n \"dxHtmlEditor-alignCenter\": \"Align Center\",\r\n \"dxHtmlEditor-alignRight\": \"Align Right\",\r\n \"dxHtmlEditor-alignJustify\": \"Align Justify\",\r\n \"dxHtmlEditor-codeBlock\": \"Code Block\",\r\n \"dxHtmlEditor-variable\": \"Add Variable\",\r\n \"dxHtmlEditor-undo\": \"Undo\",\r\n \"dxHtmlEditor-redo\": \"Redo\",\r\n \"dxHtmlEditor-clear\": \"Clear Formatting\",\r\n \"dxHtmlEditor-insertTable\": \"Insert Table\",\r\n \"dxHtmlEditor-insertHeaderRow\": \"Insert Header Row\",\r\n \"dxHtmlEditor-insertRowAbove\": \"Insert Row Above\",\r\n \"dxHtmlEditor-insertRowBelow\": \"Insert Row Below\",\r\n \"dxHtmlEditor-insertColumnLeft\": \"Insert Column Left\",\r\n \"dxHtmlEditor-insertColumnRight\": \"Insert Column Right\",\r\n \"dxHtmlEditor-deleteColumn\": \"Delete Column\",\r\n \"dxHtmlEditor-deleteRow\": \"Delete Row\",\r\n \"dxHtmlEditor-deleteTable\": \"Delete Table\",\r\n \"dxHtmlEditor-cellProperties\": \"Cell Properties\",\r\n \"dxHtmlEditor-tableProperties\": \"Table Properties\",\r\n \"dxHtmlEditor-insert\": \"Insert\",\r\n \"dxHtmlEditor-delete\": \"Delete\",\r\n \"dxHtmlEditor-border\": \"Border\",\r\n \"dxHtmlEditor-style\": \"Style\",\r\n \"dxHtmlEditor-width\": \"Width\",\r\n \"dxHtmlEditor-height\": \"Height\",\r\n \"dxHtmlEditor-borderColor\": \"Color\",\r\n \"dxHtmlEditor-borderWidth\": \"Border Width\",\r\n \"dxHtmlEditor-tableBackground\": \"Background\",\r\n \"dxHtmlEditor-dimensions\": \"Dimensions\",\r\n \"dxHtmlEditor-alignment\": \"Alignment\",\r\n \"dxHtmlEditor-horizontal\": \"Horizontal\",\r\n \"dxHtmlEditor-vertical\": \"Vertical\",\r\n \"dxHtmlEditor-paddingVertical\": \"Vertical Padding\",\r\n \"dxHtmlEditor-paddingHorizontal\": \"Horizontal Padding\",\r\n \"dxHtmlEditor-pixels\": \"Pixels\",\r\n \"dxHtmlEditor-list\": \"List\",\r\n \"dxHtmlEditor-ordered\": \"Ordered\",\r\n \"dxHtmlEditor-bullet\": \"Bullet\",\r\n \"dxHtmlEditor-align\": \"Align\",\r\n \"dxHtmlEditor-center\": \"Center\",\r\n \"dxHtmlEditor-left\": \"Left\",\r\n \"dxHtmlEditor-right\": \"Right\",\r\n \"dxHtmlEditor-indent\": \"Indent\",\r\n \"dxHtmlEditor-justify\": \"Justify\",\r\n \"dxHtmlEditor-borderStyleNone\": \"none\",\r\n \"dxHtmlEditor-borderStyleHidden\": \"hidden\",\r\n \"dxHtmlEditor-borderStyleDotted\": \"dotted\",\r\n \"dxHtmlEditor-borderStyleDashed\": \"dashed\",\r\n \"dxHtmlEditor-borderStyleSolid\": \"solid\",\r\n \"dxHtmlEditor-borderStyleDouble\": \"double\",\r\n \"dxHtmlEditor-borderStyleGroove\": \"groove\",\r\n \"dxHtmlEditor-borderStyleRidge\": \"ridge\",\r\n \"dxHtmlEditor-borderStyleInset\": \"inset\",\r\n \"dxHtmlEditor-borderStyleOutset\": \"outset\",\r\n \"dxFileManager-newDirectoryName\": \"Untitled directory\",\r\n \"dxFileManager-rootDirectoryName\": \"Files\",\r\n \"dxFileManager-errorNoAccess\": \"Access Denied. Operation could not be completed.\",\r\n \"dxFileManager-errorDirectoryExistsFormat\": \"Directory '{0}' already exists.\",\r\n \"dxFileManager-errorFileExistsFormat\": \"File '{0}' already exists.\",\r\n \"dxFileManager-errorFileNotFoundFormat\": \"File '{0}' not found.\",\r\n \"dxFileManager-errorDirectoryNotFoundFormat\": \"Directory '{0}' not found.\",\r\n \"dxFileManager-errorWrongFileExtension\": \"File extension is not allowed.\",\r\n \"dxFileManager-errorMaxFileSizeExceeded\": \"File size exceeds the maximum allowed size.\",\r\n \"dxFileManager-errorInvalidSymbols\": \"This name contains invalid characters.\",\r\n \"dxFileManager-errorDefault\": \"Unspecified error.\",\r\n \"dxFileManager-errorDirectoryOpenFailed\": \"The directory cannot be opened\",\r\n \"dxFileManager-commandCreate\": \"New directory\",\r\n \"dxFileManager-commandRename\": \"Rename\",\r\n \"dxFileManager-commandMove\": \"Move to\",\r\n \"dxFileManager-commandCopy\": \"Copy to\",\r\n \"dxFileManager-commandDelete\": \"Delete\",\r\n \"dxFileManager-commandDownload\": \"Download\",\r\n \"dxFileManager-commandUpload\": \"Upload files\",\r\n \"dxFileManager-commandRefresh\": \"Refresh\",\r\n \"dxFileManager-commandThumbnails\": \"Thumbnails View\",\r\n \"dxFileManager-commandDetails\": \"Details View\",\r\n \"dxFileManager-commandClearSelection\": \"Clear selection\",\r\n \"dxFileManager-commandShowNavPane\": \"Toggle navigation pane\",\r\n \"dxFileManager-dialogDirectoryChooserMoveTitle\": \"Move to\",\r\n \"dxFileManager-dialogDirectoryChooserMoveButtonText\": \"Move\",\r\n \"dxFileManager-dialogDirectoryChooserCopyTitle\": \"Copy to\",\r\n \"dxFileManager-dialogDirectoryChooserCopyButtonText\": \"Copy\",\r\n \"dxFileManager-dialogRenameItemTitle\": \"Rename\",\r\n \"dxFileManager-dialogRenameItemButtonText\": \"Save\",\r\n \"dxFileManager-dialogCreateDirectoryTitle\": \"New directory\",\r\n \"dxFileManager-dialogCreateDirectoryButtonText\": \"Create\",\r\n \"dxFileManager-dialogDeleteItemTitle\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemButtonText\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemSingleItemConfirmation\": \"Are you sure you want to delete {0}?\",\r\n \"dxFileManager-dialogDeleteItemMultipleItemsConfirmation\": \"Are you sure you want to delete {0} items?\",\r\n \"dxFileManager-dialogButtonCancel\": \"Cancel\",\r\n \"dxFileManager-editingCreateSingleItemProcessingMessage\": \"Creating a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemSuccessMessage\": \"Created a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingCreateCommonErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingRenameSingleItemProcessingMessage\": \"Renaming an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemSuccessMessage\": \"Renamed an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingRenameCommonErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingDeleteSingleItemProcessingMessage\": \"Deleting an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsProcessingMessage\": \"Deleting {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemSuccessMessage\": \"Deleted an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsSuccessMessage\": \"Deleted {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemErrorMessage\": \"Item was not deleted\",\r\n \"dxFileManager-editingDeleteMultipleItemsErrorMessage\": \"{0} items were not deleted\",\r\n \"dxFileManager-editingDeleteCommonErrorMessage\": \"Some items were not deleted\",\r\n \"dxFileManager-editingMoveSingleItemProcessingMessage\": \"Moving an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsProcessingMessage\": \"Moving {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemSuccessMessage\": \"Moved an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsSuccessMessage\": \"Moved {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemErrorMessage\": \"Item was not moved\",\r\n \"dxFileManager-editingMoveMultipleItemsErrorMessage\": \"{0} items were not moved\",\r\n \"dxFileManager-editingMoveCommonErrorMessage\": \"Some items were not moved\",\r\n \"dxFileManager-editingCopySingleItemProcessingMessage\": \"Copying an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsProcessingMessage\": \"Copying {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemSuccessMessage\": \"Copied an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsSuccessMessage\": \"Copied {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemErrorMessage\": \"Item was not copied\",\r\n \"dxFileManager-editingCopyMultipleItemsErrorMessage\": \"{0} items were not copied\",\r\n \"dxFileManager-editingCopyCommonErrorMessage\": \"Some items were not copied\",\r\n \"dxFileManager-editingUploadSingleItemProcessingMessage\": \"Uploading an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsProcessingMessage\": \"Uploading {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemSuccessMessage\": \"Uploaded an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsSuccessMessage\": \"Uploaded {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemErrorMessage\": \"Item was not uploaded\",\r\n \"dxFileManager-editingUploadMultipleItemsErrorMessage\": \"{0} items were not uploaded\",\r\n \"dxFileManager-editingUploadCanceledMessage\": \"Canceled\",\r\n \"dxFileManager-editingDownloadSingleItemErrorMessage\": \"Item was not downloaded\",\r\n \"dxFileManager-editingDownloadMultipleItemsErrorMessage\": \"{0} items were not downloaded\",\r\n \"dxFileManager-listDetailsColumnCaptionName\": \"Name\",\r\n \"dxFileManager-listDetailsColumnCaptionDateModified\": \"Date Modified\",\r\n \"dxFileManager-listDetailsColumnCaptionFileSize\": \"File Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextSize\": \"Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextDateModified\": \"Date Modified\",\r\n \"dxFileManager-notificationProgressPanelTitle\": \"Progress\",\r\n \"dxFileManager-notificationProgressPanelEmptyListText\": \"No operations\",\r\n \"dxFileManager-notificationProgressPanelOperationCanceled\": \"Canceled\",\r\n \"dxDiagram-categoryGeneral\": \"General\",\r\n \"dxDiagram-categoryFlowchart\": \"Flowchart\",\r\n \"dxDiagram-categoryOrgChart\": \"Org Chart\",\r\n \"dxDiagram-categoryContainers\": \"Containers\",\r\n \"dxDiagram-categoryCustom\": \"Custom\",\r\n \"dxDiagram-commandExportToSvg\": \"Export to SVG\",\r\n \"dxDiagram-commandExportToPng\": \"Export to PNG\",\r\n \"dxDiagram-commandExportToJpg\": \"Export to JPEG\",\r\n \"dxDiagram-commandUndo\": \"Undo\",\r\n \"dxDiagram-commandRedo\": \"Redo\",\r\n \"dxDiagram-commandFontName\": \"Font Name\",\r\n \"dxDiagram-commandFontSize\": \"Font Size\",\r\n \"dxDiagram-commandBold\": \"Bold\",\r\n \"dxDiagram-commandItalic\": \"Italic\",\r\n \"dxDiagram-commandUnderline\": \"Underline\",\r\n \"dxDiagram-commandTextColor\": \"Font Color\",\r\n \"dxDiagram-commandLineColor\": \"Line Color\",\r\n \"dxDiagram-commandLineWidth\": \"Line Width\",\r\n \"dxDiagram-commandLineStyle\": \"Line Style\",\r\n \"dxDiagram-commandLineStyleSolid\": \"Solid\",\r\n \"dxDiagram-commandLineStyleDotted\": \"Dotted\",\r\n \"dxDiagram-commandLineStyleDashed\": \"Dashed\",\r\n \"dxDiagram-commandFillColor\": \"Fill Color\",\r\n \"dxDiagram-commandAlignLeft\": \"Align Left\",\r\n \"dxDiagram-commandAlignCenter\": \"Align Center\",\r\n \"dxDiagram-commandAlignRight\": \"Align Right\",\r\n \"dxDiagram-commandConnectorLineType\": \"Connector Line Type\",\r\n \"dxDiagram-commandConnectorLineStraight\": \"Straight\",\r\n \"dxDiagram-commandConnectorLineOrthogonal\": \"Orthogonal\",\r\n \"dxDiagram-commandConnectorLineStart\": \"Connector Line Start\",\r\n \"dxDiagram-commandConnectorLineEnd\": \"Connector Line End\",\r\n \"dxDiagram-commandConnectorLineNone\": \"None\",\r\n \"dxDiagram-commandConnectorLineArrow\": \"Arrow\",\r\n \"dxDiagram-commandFullscreen\": \"Full Screen\",\r\n \"dxDiagram-commandUnits\": \"Units\",\r\n \"dxDiagram-commandPageSize\": \"Page Size\",\r\n \"dxDiagram-commandPageOrientation\": \"Page Orientation\",\r\n \"dxDiagram-commandPageOrientationLandscape\": \"Landscape\",\r\n \"dxDiagram-commandPageOrientationPortrait\": \"Portrait\",\r\n \"dxDiagram-commandPageColor\": \"Page Color\",\r\n \"dxDiagram-commandShowGrid\": \"Show Grid\",\r\n \"dxDiagram-commandSnapToGrid\": \"Snap to Grid\",\r\n \"dxDiagram-commandGridSize\": \"Grid Size\",\r\n \"dxDiagram-commandZoomLevel\": \"Zoom Level\",\r\n \"dxDiagram-commandAutoZoom\": \"Auto Zoom\",\r\n \"dxDiagram-commandFitToContent\": \"Fit to Content\",\r\n \"dxDiagram-commandFitToWidth\": \"Fit to Width\",\r\n \"dxDiagram-commandAutoZoomByContent\": \"Auto Zoom by Content\",\r\n \"dxDiagram-commandAutoZoomByWidth\": \"Auto Zoom by Width\",\r\n \"dxDiagram-commandSimpleView\": \"Simple View\",\r\n \"dxDiagram-commandCut\": \"Cut\",\r\n \"dxDiagram-commandCopy\": \"Copy\",\r\n \"dxDiagram-commandPaste\": \"Paste\",\r\n \"dxDiagram-commandSelectAll\": \"Select All\",\r\n \"dxDiagram-commandDelete\": \"Delete\",\r\n \"dxDiagram-commandBringToFront\": \"Bring to Front\",\r\n \"dxDiagram-commandSendToBack\": \"Send to Back\",\r\n \"dxDiagram-commandLock\": \"Lock\",\r\n \"dxDiagram-commandUnlock\": \"Unlock\",\r\n \"dxDiagram-commandInsertShapeImage\": \"Insert Image...\",\r\n \"dxDiagram-commandEditShapeImage\": \"Change Image...\",\r\n \"dxDiagram-commandDeleteShapeImage\": \"Delete Image\",\r\n \"dxDiagram-commandLayoutLeftToRight\": \"Left-to-right\",\r\n \"dxDiagram-commandLayoutRightToLeft\": \"Right-to-left\",\r\n \"dxDiagram-commandLayoutTopToBottom\": \"Top-to-bottom\",\r\n \"dxDiagram-commandLayoutBottomToTop\": \"Bottom-to-top\",\r\n \"dxDiagram-unitIn\": \"in\",\r\n \"dxDiagram-unitCm\": \"cm\",\r\n \"dxDiagram-unitPx\": \"px\",\r\n \"dxDiagram-dialogButtonOK\": \"OK\",\r\n \"dxDiagram-dialogButtonCancel\": \"Cancel\",\r\n \"dxDiagram-dialogInsertShapeImageTitle\": \"Insert Image\",\r\n \"dxDiagram-dialogEditShapeImageTitle\": \"Change Image\",\r\n \"dxDiagram-dialogEditShapeImageSelectButton\": \"Select image\",\r\n \"dxDiagram-dialogEditShapeImageLabelText\": \"or drop a file here\",\r\n \"dxDiagram-uiExport\": \"Export\",\r\n \"dxDiagram-uiProperties\": \"Properties\",\r\n \"dxDiagram-uiSettings\": \"Settings\",\r\n \"dxDiagram-uiShowToolbox\": \"Show Toolbox\",\r\n \"dxDiagram-uiSearch\": \"Search\",\r\n \"dxDiagram-uiStyle\": \"Style\",\r\n \"dxDiagram-uiLayout\": \"Layout\",\r\n \"dxDiagram-uiLayoutTree\": \"Tree\",\r\n \"dxDiagram-uiLayoutLayered\": \"Layered\",\r\n \"dxDiagram-uiDiagram\": \"Diagram\",\r\n \"dxDiagram-uiText\": \"Text\",\r\n \"dxDiagram-uiObject\": \"Object\",\r\n \"dxDiagram-uiConnector\": \"Connector\",\r\n \"dxDiagram-uiPage\": \"Page\",\r\n \"dxDiagram-shapeText\": \"Text\",\r\n \"dxDiagram-shapeRectangle\": \"Rectangle\",\r\n \"dxDiagram-shapeEllipse\": \"Ellipse\",\r\n \"dxDiagram-shapeCross\": \"Cross\",\r\n \"dxDiagram-shapeTriangle\": \"Triangle\",\r\n \"dxDiagram-shapeDiamond\": \"Diamond\",\r\n \"dxDiagram-shapeHeart\": \"Heart\",\r\n \"dxDiagram-shapePentagon\": \"Pentagon\",\r\n \"dxDiagram-shapeHexagon\": \"Hexagon\",\r\n \"dxDiagram-shapeOctagon\": \"Octagon\",\r\n \"dxDiagram-shapeStar\": \"Star\",\r\n \"dxDiagram-shapeArrowLeft\": \"Left Arrow\",\r\n \"dxDiagram-shapeArrowUp\": \"Up Arrow\",\r\n \"dxDiagram-shapeArrowRight\": \"Right Arrow\",\r\n \"dxDiagram-shapeArrowDown\": \"Down Arrow\",\r\n \"dxDiagram-shapeArrowUpDown\": \"Up Down Arrow\",\r\n \"dxDiagram-shapeArrowLeftRight\": \"Left Right Arrow\",\r\n \"dxDiagram-shapeProcess\": \"Process\",\r\n \"dxDiagram-shapeDecision\": \"Decision\",\r\n \"dxDiagram-shapeTerminator\": \"Terminator\",\r\n \"dxDiagram-shapePredefinedProcess\": \"Predefined Process\",\r\n \"dxDiagram-shapeDocument\": \"Document\",\r\n \"dxDiagram-shapeMultipleDocuments\": \"Multiple Documents\",\r\n \"dxDiagram-shapeManualInput\": \"Manual Input\",\r\n \"dxDiagram-shapePreparation\": \"Preparation\",\r\n \"dxDiagram-shapeData\": \"Data\",\r\n \"dxDiagram-shapeDatabase\": \"Database\",\r\n \"dxDiagram-shapeHardDisk\": \"Hard Disk\",\r\n \"dxDiagram-shapeInternalStorage\": \"Internal Storage\",\r\n \"dxDiagram-shapePaperTape\": \"Paper Tape\",\r\n \"dxDiagram-shapeManualOperation\": \"Manual Operation\",\r\n \"dxDiagram-shapeDelay\": \"Delay\",\r\n \"dxDiagram-shapeStoredData\": \"Stored Data\",\r\n \"dxDiagram-shapeDisplay\": \"Display\",\r\n \"dxDiagram-shapeMerge\": \"Merge\",\r\n \"dxDiagram-shapeConnector\": \"Connector\",\r\n \"dxDiagram-shapeOr\": \"Or\",\r\n \"dxDiagram-shapeSummingJunction\": \"Summing Junction\",\r\n \"dxDiagram-shapeContainerDefaultText\": \"Container\",\r\n \"dxDiagram-shapeVerticalContainer\": \"Vertical Container\",\r\n \"dxDiagram-shapeHorizontalContainer\": \"Horizontal Container\",\r\n \"dxDiagram-shapeCardDefaultText\": \"Person's Name\",\r\n \"dxDiagram-shapeCardWithImageOnLeft\": \"Card with Image on the Left\",\r\n \"dxDiagram-shapeCardWithImageOnTop\": \"Card with Image on the Top\",\r\n \"dxDiagram-shapeCardWithImageOnRight\": \"Card with Image on the Right\",\r\n \"dxGantt-dialogTitle\": \"Title\",\r\n \"dxGantt-dialogStartTitle\": \"Start\",\r\n \"dxGantt-dialogEndTitle\": \"End\",\r\n \"dxGantt-dialogProgressTitle\": \"Progress\",\r\n \"dxGantt-dialogResourcesTitle\": \"Resources\",\r\n \"dxGantt-dialogResourceManagerTitle\": \"Resource Manager\",\r\n \"dxGantt-dialogTaskDetailsTitle\": \"Task Details\",\r\n \"dxGantt-dialogEditResourceListHint\": \"Edit Resource List\",\r\n \"dxGantt-dialogEditNoResources\": \"No resources\",\r\n \"dxGantt-dialogButtonAdd\": \"Add\",\r\n \"dxGantt-contextMenuNewTask\": \"New Task\",\r\n \"dxGantt-contextMenuNewSubtask\": \"New Subtask\",\r\n \"dxGantt-contextMenuDeleteTask\": \"Delete Task\",\r\n \"dxGantt-contextMenuDeleteDependency\": \"Delete Dependency\",\r\n \"dxGantt-dialogTaskDeleteConfirmation\": \"Deleting a task also deletes all its dependencies and subtasks. Are you sure you want to delete this task?\",\r\n \"dxGantt-dialogDependencyDeleteConfirmation\": \"Are you sure you want to delete the dependency from the task?\",\r\n \"dxGantt-dialogResourcesDeleteConfirmation\": \"Deleting a resource also deletes it from tasks to which this resource is assigned. Are you sure you want to delete these resources? Resources: {0}\",\r\n \"dxGantt-dialogConstraintCriticalViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. How would you like to proceed?\",\r\n \"dxGantt-dialogCancelOperationMessage\": \"Cancel the operation\",\r\n \"dxGantt-dialogDeleteDependencyMessage\": \"Delete the dependency\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependencyMessage\": \"Move the task and keep the dependency\",\r\n \"dxGantt-dialogConstraintCriticalViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. How would you like to proceed?\",\r\n \"dxGantt-dialogDeleteDependenciesMessage\": \"Delete the dependency relations\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependenciesMessage\": \"Move the task and keep the dependencies\",\r\n \"dxGantt-undo\": \"Undo\",\r\n \"dxGantt-redo\": \"Redo\",\r\n \"dxGantt-expandAll\": \"Expand All\",\r\n \"dxGantt-collapseAll\": \"Collapse All\",\r\n \"dxGantt-addNewTask\": \"Add New Task\",\r\n \"dxGantt-deleteSelectedTask\": \"Delete Selected Task\",\r\n \"dxGantt-zoomIn\": \"Zoom In\",\r\n \"dxGantt-zoomOut\": \"Zoom Out\",\r\n \"dxGantt-fullScreen\": \"Full Screen\",\r\n \"dxGantt-quarter\": \"Q{0}\",\r\n \"dxGantt-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxGantt-sortingDescendingText\": \"Sort Descending\",\r\n \"dxGantt-sortingClearText\": \"Clear Sorting\",\r\n \"dxGantt-showResources\": \"Show Resources\",\r\n \"dxGantt-showDependencies\": \"Show Dependencies\",\r\n \"dxGantt-dialogStartDateValidation\": \"Start date must be after {0}\",\r\n \"dxGantt-dialogEndDateValidation\": \"End date must be after {0}\",\r\n \"dxGallery-itemName\": \"Gallery item\",\r\n \"dxMultiView-elementAriaRoleDescription\": \"MultiView\",\r\n \"dxMultiView-elementAriaLabel\": \"Use the arrow keys or swipe to navigate between views\",\r\n \"dxMultiView-itemAriaRoleDescription\": \"View\",\r\n \"dxMultiView-itemAriaLabel\": \"{0} of {1}\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/message.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n format as stringFormat\r\n} from \"../core/utils/string\";\r\nimport {\r\n humanize\r\n} from \"../core/utils/inflector\";\r\nimport coreLocalization from \"./core\";\r\nimport {\r\n defaultMessages\r\n} from \"./default_messages\";\r\nvar baseDictionary = extend(true, {}, defaultMessages);\r\nvar getDataByLocale = (localeData, locale) => {\r\n var _Object$entries$find;\r\n return localeData[locale] || (null === locale || void 0 === locale ? void 0 : locale.toLowerCase) && (null === (_Object$entries$find = Object.entries(localeData).find(_ref => {\r\n var [key] = _ref;\r\n return key.toLowerCase() === locale.toLowerCase()\r\n })) || void 0 === _Object$entries$find ? void 0 : _Object$entries$find[1]) || {}\r\n};\r\nvar newMessages = {};\r\nvar messageLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _dictionary: baseDictionary,\r\n load: function(messages) {\r\n extend(true, this._dictionary, messages)\r\n },\r\n _localizablePrefix: \"@\",\r\n setup: function(localizablePrefix) {\r\n this._localizablePrefix = localizablePrefix\r\n },\r\n localizeString: function(text) {\r\n var that = this;\r\n var regex = new RegExp(\"(^|[^a-zA-Z_0-9\" + that._localizablePrefix + \"-]+)(\" + that._localizablePrefix + \"{1,2})([a-zA-Z_0-9-]+)\", \"g\");\r\n var escapeString = that._localizablePrefix + that._localizablePrefix;\r\n return text.replace(regex, (str, prefix, escape, localizationKey) => {\r\n var defaultResult = that._localizablePrefix + localizationKey;\r\n var result;\r\n if (escape !== escapeString) {\r\n result = that.format(localizationKey)\r\n }\r\n if (!result) {\r\n newMessages[localizationKey] = humanize(localizationKey)\r\n }\r\n return prefix + (result || defaultResult)\r\n })\r\n },\r\n getMessagesByLocales: function() {\r\n return this._dictionary\r\n },\r\n getDictionary: function(onlyNew) {\r\n if (onlyNew) {\r\n return newMessages\r\n }\r\n return extend({}, newMessages, this.getMessagesByLocales()[coreLocalization.locale()])\r\n },\r\n getFormatter: function(key) {\r\n return this._getFormatterBase(key) || this._getFormatterBase(key, \"en\")\r\n },\r\n _getFormatterBase: function(key, locale) {\r\n var message = coreLocalization.getValueByClosestLocale(locale => getDataByLocale(this._dictionary, locale)[key]);\r\n if (message) {\r\n return function() {\r\n var args = 1 === arguments.length && Array.isArray(arguments[0]) ? arguments[0].slice(0) : Array.prototype.slice.call(arguments, 0);\r\n args.unshift(message);\r\n return stringFormat.apply(this, args)\r\n }\r\n }\r\n },\r\n format: function(key) {\r\n var formatter = this.getFormatter(key);\r\n var values = Array.prototype.slice.call(arguments, 1);\r\n return formatter && formatter.apply(this, values) || \"\"\r\n }\r\n});\r\nexport default messageLocalization;\r\n","/**\r\n * DevExtreme (esm/events/utils/add_namespace.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../core/errors\";\r\nvar addNamespace = (eventNames, namespace) => {\r\n if (!namespace) {\r\n throw errors.Error(\"E0017\")\r\n }\r\n if (Array.isArray(eventNames)) {\r\n return eventNames.map(eventName => addNamespace(eventName, namespace)).join(\" \")\r\n }\r\n if (-1 !== eventNames.indexOf(\" \")) {\r\n return addNamespace(eventNames.split(/\\s+/g), namespace)\r\n }\r\n return \"\".concat(eventNames, \".\").concat(namespace)\r\n};\r\nexport default addNamespace;\r\n","/**\r\n * DevExtreme (esm/ui/widget/selectors.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar focusableFn = function(element, tabIndex) {\r\n if (!visible(element)) {\r\n return false\r\n }\r\n var nodeName = element.nodeName.toLowerCase();\r\n var isTabIndexNotNaN = !isNaN(tabIndex);\r\n var isDisabled = element.disabled;\r\n var isDefaultFocus = /^(input|select|textarea|button|object|iframe)$/.test(nodeName);\r\n var isHyperlink = \"a\" === nodeName;\r\n var isFocusable;\r\n var isContentEditable = element.isContentEditable;\r\n if (isDefaultFocus || isContentEditable) {\r\n isFocusable = !isDisabled\r\n } else if (isHyperlink) {\r\n isFocusable = element.href || isTabIndexNotNaN\r\n } else {\r\n isFocusable = isTabIndexNotNaN\r\n }\r\n return isFocusable\r\n};\r\n\r\nfunction visible(element) {\r\n var $element = $(element);\r\n return $element.is(\":visible\") && \"hidden\" !== $element.css(\"visibility\") && \"hidden\" !== $element.parents().css(\"visibility\")\r\n}\r\nexport var focusable = function(index, element) {\r\n return focusableFn(element, $(element).attr(\"tabIndex\"))\r\n};\r\nexport var tabbable = function(index, element) {\r\n var tabIndex = $(element).attr(\"tabIndex\");\r\n return (isNaN(tabIndex) || tabIndex >= 0) && focusableFn(element, tabIndex)\r\n};\r\nexport var focused = function($element) {\r\n var element = $($element).get(0);\r\n return domAdapter.getActiveElement(element) === element\r\n};\r\n","/**\r\n * DevExtreme (esm/events/utils/index.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport mappedAddNamespace from \"./add_namespace\";\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../../ui/widget/selectors\";\r\nvar KEY_MAP = {\r\n backspace: \"backspace\",\r\n tab: \"tab\",\r\n enter: \"enter\",\r\n escape: \"escape\",\r\n pageup: \"pageUp\",\r\n pagedown: \"pageDown\",\r\n end: \"end\",\r\n home: \"home\",\r\n arrowleft: \"leftArrow\",\r\n arrowup: \"upArrow\",\r\n arrowright: \"rightArrow\",\r\n arrowdown: \"downArrow\",\r\n delete: \"del\",\r\n \" \": \"space\",\r\n f: \"F\",\r\n a: \"A\",\r\n \"*\": \"asterisk\",\r\n \"-\": \"minus\",\r\n alt: \"alt\",\r\n control: \"control\",\r\n shift: \"shift\"\r\n};\r\nvar LEGACY_KEY_CODES = {\r\n 8: \"backspace\",\r\n 9: \"tab\",\r\n 13: \"enter\",\r\n 27: \"escape\",\r\n 33: \"pageUp\",\r\n 34: \"pageDown\",\r\n 35: \"end\",\r\n 36: \"home\",\r\n 37: \"leftArrow\",\r\n 38: \"upArrow\",\r\n 39: \"rightArrow\",\r\n 40: \"downArrow\",\r\n 46: \"del\",\r\n 32: \"space\",\r\n 70: \"F\",\r\n 65: \"A\",\r\n 106: \"asterisk\",\r\n 109: \"minus\",\r\n 189: \"minus\",\r\n 173: \"minus\",\r\n 16: \"shift\",\r\n 17: \"control\",\r\n 18: \"alt\"\r\n};\r\nvar EVENT_SOURCES_REGEX = {\r\n dx: /^dx/i,\r\n mouse: /(mouse|wheel)/i,\r\n touch: /^touch/i,\r\n keyboard: /^key/i,\r\n pointer: /^(ms)?pointer/i\r\n};\r\nvar fixMethod = e => e;\r\nvar copyEvent = originalEvent => fixMethod(eventsEngine.Event(originalEvent, originalEvent), originalEvent);\r\nvar isDxEvent = e => \"dx\" === eventSource(e);\r\nvar isNativeMouseEvent = e => \"mouse\" === eventSource(e);\r\nvar isNativeTouchEvent = e => \"touch\" === eventSource(e);\r\nexport var eventSource = _ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n var result = \"other\";\r\n each(EVENT_SOURCES_REGEX, (function(key) {\r\n if (this.test(type)) {\r\n result = key;\r\n return false\r\n }\r\n }));\r\n return result\r\n};\r\nexport var isPointerEvent = e => \"pointer\" === eventSource(e);\r\nexport var isMouseEvent = e => isNativeMouseEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"mouse\" === e.pointerType;\r\nexport var isDxMouseWheelEvent = e => e && \"dxmousewheel\" === e.type;\r\nexport var isTouchEvent = e => isNativeTouchEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"touch\" === e.pointerType;\r\nexport var isKeyboardEvent = e => \"keyboard\" === eventSource(e);\r\nexport var isFakeClickEvent = _ref2 => {\r\n var {\r\n screenX: screenX,\r\n offsetX: offsetX,\r\n pageX: pageX\r\n } = _ref2;\r\n return 0 === screenX && !offsetX && 0 === pageX\r\n};\r\nexport var eventData = _ref3 => {\r\n var {\r\n pageX: pageX,\r\n pageY: pageY,\r\n timeStamp: timeStamp\r\n } = _ref3;\r\n return {\r\n x: pageX,\r\n y: pageY,\r\n time: timeStamp\r\n }\r\n};\r\nexport var eventDelta = (from, to) => ({\r\n x: to.x - from.x,\r\n y: to.y - from.y,\r\n time: to.time - from.time || 1\r\n});\r\nexport var hasTouches = e => {\r\n var {\r\n originalEvent: originalEvent,\r\n pointers: pointers\r\n } = e;\r\n if (isNativeTouchEvent(e)) {\r\n return (originalEvent.touches || []).length\r\n }\r\n if (isDxEvent(e)) {\r\n return (pointers || []).length\r\n }\r\n return 0\r\n};\r\nvar skipEvents = false;\r\nexport var forceSkipEvents = () => skipEvents = true;\r\nexport var stopEventsSkipping = () => skipEvents = false;\r\nexport var needSkipEvent = e => {\r\n if (skipEvents) {\r\n return true\r\n }\r\n var {\r\n target: target\r\n } = e;\r\n var $target = $(target);\r\n var isContentEditable = (null === target || void 0 === target ? void 0 : target.isContentEditable) || (null === target || void 0 === target ? void 0 : target.hasAttribute(\"contenteditable\"));\r\n var touchInEditable = $target.is(\"input, textarea, select\") || isContentEditable;\r\n if (isDxMouseWheelEvent(e)) {\r\n var isTextArea = $target.is(\"textarea\") && $target.hasClass(\"dx-texteditor-input\");\r\n if (isTextArea || isContentEditable) {\r\n return false\r\n }\r\n var isInputFocused = $target.is(\"input[type='number'], textarea, select\") && $target.is(\":focus\");\r\n return isInputFocused\r\n }\r\n if (isMouseEvent(e)) {\r\n return touchInEditable || e.which > 1\r\n }\r\n if (isTouchEvent(e)) {\r\n return touchInEditable && focused($target)\r\n }\r\n};\r\nexport var setEventFixMethod = func => fixMethod = func;\r\nexport var createEvent = (originalEvent, args) => {\r\n var event = copyEvent(originalEvent);\r\n args && extend(event, args);\r\n return event\r\n};\r\nexport var fireEvent = props => {\r\n var {\r\n originalEvent: originalEvent,\r\n delegateTarget: delegateTarget\r\n } = props;\r\n var event = createEvent(originalEvent, props);\r\n eventsEngine.trigger(delegateTarget || event.target, event);\r\n return event\r\n};\r\nexport var normalizeKeyName = _ref4 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref4;\r\n var normalizedKey = KEY_MAP[null === key || void 0 === key ? void 0 : key.toLowerCase()] || key;\r\n var normalizedKeyFromWhich = LEGACY_KEY_CODES[which];\r\n if (normalizedKeyFromWhich && normalizedKey === key) {\r\n return normalizedKeyFromWhich\r\n } else if (!normalizedKey && which) {\r\n return String.fromCharCode(which)\r\n }\r\n return normalizedKey\r\n};\r\nexport var getChar = _ref5 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref5;\r\n return key || String.fromCharCode(which)\r\n};\r\nexport var addNamespace = mappedAddNamespace;\r\nexport var isCommandKeyPressed = _ref6 => {\r\n var {\r\n ctrlKey: ctrlKey,\r\n metaKey: metaKey\r\n } = _ref6;\r\n return ctrlKey || metaKey\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = normalizeKeyName(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n}\r\nexport function saveFocusedElementInfo(target, instance) {\r\n var $target = $(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = extend({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = $(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors, element) {\r\n var root = (null === element || void 0 === element ? void 0 : element.getRootNode()) || domAdapter.getDocument();\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = $(root).find(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === domAdapter.getDocument().visibilityState\r\n}\r\nexport function subscribeVisibilityChange() {\r\n eventsEngine.on(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function unsubscribeVisibilityChange() {\r\n eventsEngine.off(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function hiddenFocus(element, preventScroll) {\r\n isHiddenFocusing = true;\r\n element.focus({\r\n preventScroll: preventScroll\r\n });\r\n isHiddenFocusing = false\r\n}\r\nexport function registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return noop\r\n }\r\n var getMainElement = () => $(instance.element());\r\n var keyDownHandler = e => processKeyDown(viewName, instance, e, action, getMainElement(), executeKeyDown);\r\n var mouseDownHandler = () => {\r\n isMouseDown = true;\r\n getMainElement().removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = () => {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n getMainElement().addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n eventsEngine.on($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.on($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.on($element, \"focusin\", selector, focusinHandler);\r\n return () => {\r\n eventsEngine.off($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.off($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\nexport function restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n eventsEngine.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\nexport function selectView(viewName, instance, event) {\r\n var keyName = normalizeKeyName(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors, event.target);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n eventsEngine.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\nexport function setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_accessibility.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as accessibility from \"../../../ui/shared/accessibility\";\r\nexport var registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, args => {\r\n instance.executeAction(\"onKeyDown\", args)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/core/element.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getPublicElementNonJquery(element) {\r\n if (element && element.get) {\r\n return element.get(0)\r\n }\r\n return element\r\n}\r\nvar strategy = getPublicElementNonJquery;\r\nexport function getPublicElement(element) {\r\n return strategy(element)\r\n}\r\nexport function setPublicElementWrapper(newStrategy) {\r\n strategy = newStrategy\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/browser.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n getNavigator\r\n} from \"./window\";\r\nvar navigator = getNavigator();\r\nvar webkitRegExp = /(webkit)[ /]([\\w.]+)/;\r\nvar mozillaRegExp = /(mozilla)(?:.*? rv:([\\w.]+))/;\r\nvar browserFromUA = ua => {\r\n ua = ua.toLowerCase();\r\n var result = {};\r\n var matches = webkitRegExp.exec(ua) || ua.indexOf(\"compatible\") < 0 && mozillaRegExp.exec(ua) || [];\r\n var browserName = matches[1];\r\n var browserVersion = matches[2];\r\n if (\"webkit\" === browserName) {\r\n result.webkit = true;\r\n if (ua.indexOf(\"chrome\") >= 0 || ua.indexOf(\"crios\") >= 0) {\r\n browserName = \"chrome\";\r\n browserVersion = /(?:chrome|crios)\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"fxios\") >= 0) {\r\n browserName = \"mozilla\";\r\n browserVersion = /fxios\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"safari\") >= 0 && /version|phantomjs/.test(ua)) {\r\n browserName = \"safari\";\r\n browserVersion = /(?:version|phantomjs)\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else {\r\n browserName = \"unknown\";\r\n browserVersion = /applewebkit\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n }\r\n }\r\n if (browserName) {\r\n result[browserName] = true;\r\n result.version = browserVersion\r\n }\r\n return result\r\n};\r\nexport default extend({\r\n _fromUA: browserFromUA\r\n}, browserFromUA(navigator.userAgent));\r\n","/**\r\n * DevExtreme (esm/core/utils/position.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n isWindow\r\n} from \"../utils/type\";\r\nvar getDefaultAlignment = isRtlEnabled => {\r\n var rtlEnabled = null !== isRtlEnabled && void 0 !== isRtlEnabled ? isRtlEnabled : config().rtlEnabled;\r\n return rtlEnabled ? \"right\" : \"left\"\r\n};\r\nvar getBoundingRect = element => {\r\n if (isWindow(element)) {\r\n return {\r\n width: element.outerWidth,\r\n height: element.outerHeight\r\n }\r\n }\r\n return element.getBoundingClientRect()\r\n};\r\nexport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/ready_callbacks.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport injector from \"./dependency_injector\";\r\nimport {\r\n hasWindow\r\n} from \"./window\";\r\nimport callOnce from \"./call_once\";\r\nvar callbacks = [];\r\nvar subscribeReady = callOnce(() => {\r\n var removeListener = domAdapter.listen(domAdapter.getDocument(), \"DOMContentLoaded\", () => {\r\n readyCallbacks.fire();\r\n removeListener()\r\n })\r\n});\r\nvar readyCallbacks = {\r\n add: callback => {\r\n var windowExists = hasWindow();\r\n if (windowExists && \"loading\" !== domAdapter.getReadyState()) {\r\n callback()\r\n } else {\r\n callbacks.push(callback);\r\n windowExists && subscribeReady()\r\n }\r\n },\r\n fire: () => {\r\n callbacks.forEach(callback => callback());\r\n callbacks = []\r\n }\r\n};\r\nexport default injector(readyCallbacks);\r\n","/**\r\n * DevExtreme (esm/core/utils/resize_callbacks.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"./window\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"./callbacks\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nimport callOnce from \"./call_once\";\r\nvar resizeCallbacks = function() {\r\n var prevSize;\r\n var callbacks = Callbacks();\r\n var originalCallbacksAdd = callbacks.add;\r\n var originalCallbacksRemove = callbacks.remove;\r\n if (!hasWindow()) {\r\n return callbacks\r\n }\r\n var formatSize = function() {\r\n var window = getWindow();\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n }\r\n };\r\n var handleResize = function() {\r\n var now = formatSize();\r\n if (now.width === prevSize.width && now.height === prevSize.height) {\r\n return\r\n }\r\n var changedDimension;\r\n if (now.width === prevSize.width) {\r\n changedDimension = \"height\"\r\n }\r\n if (now.height === prevSize.height) {\r\n changedDimension = \"width\"\r\n }\r\n prevSize = now;\r\n callbacks.fire(changedDimension)\r\n };\r\n var setPrevSize = callOnce((function() {\r\n prevSize = formatSize()\r\n }));\r\n var removeListener;\r\n callbacks.add = function() {\r\n var result = originalCallbacksAdd.apply(callbacks, arguments);\r\n setPrevSize();\r\n readyCallbacks.add((function() {\r\n if (!removeListener && callbacks.has()) {\r\n removeListener = domAdapter.listen(getWindow(), \"resize\", handleResize)\r\n }\r\n }));\r\n return result\r\n };\r\n callbacks.remove = function() {\r\n var result = originalCallbacksRemove.apply(callbacks, arguments);\r\n if (!callbacks.has() && removeListener) {\r\n removeListener();\r\n removeListener = void 0\r\n }\r\n return result\r\n };\r\n return callbacks\r\n}();\r\nexport default resizeCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/events_strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"./utils/type\";\r\nexport class EventsStrategy {\r\n constructor(owner) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n this._events = {};\r\n this._owner = owner;\r\n this._options = options\r\n }\r\n static create(owner, strategy) {\r\n if (strategy) {\r\n return isFunction(strategy) ? strategy(owner) : strategy\r\n } else {\r\n return new EventsStrategy(owner)\r\n }\r\n }\r\n hasEvent(eventName) {\r\n var callbacks = this._events[eventName];\r\n return callbacks ? callbacks.has() : false\r\n }\r\n fireEvent(eventName, eventArgs) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n callbacks.fireWith(this._owner, eventArgs)\r\n }\r\n return this._owner\r\n }\r\n on(eventName, eventHandler) {\r\n if (isPlainObject(eventName)) {\r\n each(eventName, (e, h) => {\r\n this.on(e, h)\r\n })\r\n } else {\r\n var callbacks = this._events[eventName];\r\n if (!callbacks) {\r\n callbacks = Callbacks({\r\n syncStrategy: this._options.syncStrategy\r\n });\r\n this._events[eventName] = callbacks\r\n }\r\n var addFn = callbacks.originalAdd || callbacks.add;\r\n addFn.call(callbacks, eventHandler)\r\n }\r\n }\r\n off(eventName, eventHandler) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n if (isFunction(eventHandler)) {\r\n callbacks.remove(eventHandler)\r\n } else {\r\n callbacks.empty()\r\n }\r\n }\r\n }\r\n dispose() {\r\n each(this._events, (eventName, event) => {\r\n event.empty()\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/storage.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nvar getSessionStorage = function() {\r\n var sessionStorage;\r\n try {\r\n sessionStorage = window.sessionStorage\r\n } catch (e) {}\r\n return sessionStorage\r\n};\r\nexport {\r\n getSessionStorage as sessionStorage\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/view_port.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport callbacks from \"./callbacks\";\r\nvar changeCallback = callbacks();\r\nvar $originalViewPort = $();\r\nvar value = function() {\r\n var $current;\r\n return function(element) {\r\n if (!arguments.length) {\r\n return $current\r\n }\r\n var $element = $(element);\r\n $originalViewPort = $element;\r\n var isNewViewportFound = !!$element.length;\r\n var prevViewPort = value();\r\n $current = isNewViewportFound ? $element : $(\"body\");\r\n changeCallback.fire(isNewViewportFound ? value() : $(), prevViewPort)\r\n }\r\n}();\r\nready((function() {\r\n value(\".dx-viewport\")\r\n}));\r\nexport {\r\n value,\r\n changeCallback\r\n};\r\nexport function originalViewPort() {\r\n return $originalViewPort\r\n}\r\n","/**\r\n * DevExtreme (esm/core/devices.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"./utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow,\r\n getNavigator,\r\n hasWindow\r\n} from \"./utils/window\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"./utils/type\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport readyCallbacks from \"./utils/ready_callbacks\";\r\nimport resizeCallbacks from \"./utils/resize_callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n sessionStorage as SessionStorage\r\n} from \"./utils/storage\";\r\nimport {\r\n changeCallback,\r\n value as viewPort\r\n} from \"./utils/view_port\";\r\nimport Config from \"./config\";\r\nvar window = getWindow();\r\nvar KNOWN_UA_TABLE = {\r\n iPhone: \"iPhone\",\r\n iPhone5: \"iPhone\",\r\n iPhone6: \"iPhone\",\r\n iPhone6plus: \"iPhone\",\r\n iPad: \"iPad\",\r\n iPadMini: \"iPad Mini\",\r\n androidPhone: \"Android Mobile\",\r\n androidTablet: \"Android\",\r\n msSurface: \"Windows ARM Tablet PC\",\r\n desktop: \"desktop\"\r\n};\r\nvar DEFAULT_DEVICE = {\r\n deviceType: \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n phone: false,\r\n tablet: false,\r\n android: false,\r\n ios: false,\r\n generic: true,\r\n grade: \"A\",\r\n mac: false\r\n};\r\nvar UA_PARSERS = {\r\n generic(userAgent) {\r\n var isPhone = /windows phone/i.test(userAgent) || userAgent.match(/WPDesktop/);\r\n var isTablet = !isPhone && /Windows(.*)arm(.*)Tablet PC/i.test(userAgent);\r\n var isDesktop = !isPhone && !isTablet && /msapphost/i.test(userAgent);\r\n var isMac = /((intel|ppc) mac os x)/.test(userAgent.toLowerCase());\r\n if (!(isPhone || isTablet || isDesktop || isMac)) {\r\n return null\r\n }\r\n return {\r\n deviceType: isPhone ? \"phone\" : isTablet ? \"tablet\" : \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n grade: \"A\",\r\n mac: isMac\r\n }\r\n },\r\n appleTouchDevice(userAgent) {\r\n var navigator = getNavigator();\r\n var isIpadOs = /Macintosh/i.test(userAgent) && (null === navigator || void 0 === navigator ? void 0 : navigator.maxTouchPoints) > 2;\r\n var isAppleDevice = /ip(hone|od|ad)/i.test(userAgent);\r\n if (!isAppleDevice && !isIpadOs) {\r\n return null\r\n }\r\n var isPhone = /ip(hone|od)/i.test(userAgent);\r\n var matches = userAgent.match(/os\\s{0,}X? (\\d+)_(\\d+)_?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2], 10), parseInt(matches[3] || 0, 10)] : [];\r\n var isIPhone4 = 480 === window.screen.height;\r\n var grade = isIPhone4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"ios\",\r\n version: version,\r\n grade: grade\r\n }\r\n },\r\n android(userAgent) {\r\n var isAndroid = /android|htc_|silk/i.test(userAgent);\r\n var isWinPhone = /windows phone/i.test(userAgent);\r\n if (!isAndroid || isWinPhone) {\r\n return null\r\n }\r\n var isPhone = /mobile/i.test(userAgent);\r\n var matches = userAgent.match(/android (\\d+)\\.?(\\d+)?\\.?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2] || 0, 10), parseInt(matches[3] || 0, 10)] : [];\r\n var worseThan4_4 = version.length > 1 && (version[0] < 4 || 4 === version[0] && version[1] < 4);\r\n var grade = worseThan4_4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"android\",\r\n version: version,\r\n grade: grade\r\n }\r\n }\r\n};\r\nvar UA_PARSERS_ARRAY = [UA_PARSERS.appleTouchDevice, UA_PARSERS.android, UA_PARSERS.generic];\r\nclass Devices {\r\n constructor(options) {\r\n this._window = (null === options || void 0 === options ? void 0 : options.window) || window;\r\n this._realDevice = this._getDevice();\r\n this._currentDevice = void 0;\r\n this._currentOrientation = void 0;\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.changed = Callbacks();\r\n if (hasWindow()) {\r\n readyCallbacks.add(this._recalculateOrientation.bind(this));\r\n resizeCallbacks.add(this._recalculateOrientation.bind(this))\r\n }\r\n }\r\n current(deviceOrName) {\r\n if (deviceOrName) {\r\n this._currentDevice = this._getDevice(deviceOrName);\r\n this._forced = true;\r\n this.changed.fire();\r\n return\r\n }\r\n if (!this._currentDevice) {\r\n deviceOrName = void 0;\r\n try {\r\n deviceOrName = this._getDeviceOrNameFromWindowScope()\r\n } catch (e) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n } finally {\r\n if (!deviceOrName) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n }\r\n if (deviceOrName) {\r\n this._forced = true\r\n }\r\n }\r\n this._currentDevice = this._getDevice(deviceOrName)\r\n }\r\n return this._currentDevice\r\n }\r\n real(forceDevice) {\r\n return extend({}, this._realDevice)\r\n }\r\n orientation() {\r\n return this._currentOrientation\r\n }\r\n isForced() {\r\n return this._forced\r\n }\r\n isRippleEmulator() {\r\n return !!this._window.tinyHippos\r\n }\r\n _getCssClasses(device) {\r\n var result = [];\r\n var realDevice = this._realDevice;\r\n device = device || this.current();\r\n if (device.deviceType) {\r\n result.push(\"dx-device-\".concat(device.deviceType));\r\n if (\"desktop\" !== device.deviceType) {\r\n result.push(\"dx-device-mobile\")\r\n }\r\n }\r\n result.push(\"dx-device-\".concat(realDevice.platform));\r\n if (realDevice.version && realDevice.version.length) {\r\n result.push(\"dx-device-\".concat(realDevice.platform, \"-\").concat(realDevice.version[0]))\r\n }\r\n if (this.isSimulator()) {\r\n result.push(\"dx-simulator\")\r\n }\r\n if (Config().rtlEnabled) {\r\n result.push(\"dx-rtl\")\r\n }\r\n return result\r\n }\r\n attachCssClasses(element, device) {\r\n this._deviceClasses = this._getCssClasses(device).join(\" \");\r\n $(element).addClass(this._deviceClasses)\r\n }\r\n detachCssClasses(element) {\r\n $(element).removeClass(this._deviceClasses)\r\n }\r\n isSimulator() {\r\n try {\r\n return this._isSimulator || hasWindow() && this._window.top !== this._window.self && this._window.top[\"dx-force-device\"] || this.isRippleEmulator()\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n forceSimulator() {\r\n this._isSimulator = true\r\n }\r\n _getDevice(deviceName) {\r\n if (\"genericPhone\" === deviceName) {\r\n deviceName = {\r\n deviceType: \"phone\",\r\n platform: \"generic\",\r\n generic: true\r\n }\r\n }\r\n if (isPlainObject(deviceName)) {\r\n return this._fromConfig(deviceName)\r\n } else {\r\n var ua;\r\n if (deviceName) {\r\n ua = KNOWN_UA_TABLE[deviceName];\r\n if (!ua) {\r\n throw errors.Error(\"E0005\")\r\n }\r\n } else {\r\n var navigator = getNavigator();\r\n ua = navigator.userAgent\r\n }\r\n return this._fromUA(ua)\r\n }\r\n }\r\n _getDeviceOrNameFromWindowScope() {\r\n var result;\r\n if (hasWindow() && (this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"])) {\r\n result = this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"]\r\n }\r\n return result\r\n }\r\n _getDeviceNameFromSessionStorage() {\r\n var sessionStorage = SessionStorage();\r\n if (!sessionStorage) {\r\n return\r\n }\r\n var deviceOrName = sessionStorage.getItem(\"dx-force-device\");\r\n try {\r\n return JSON.parse(deviceOrName)\r\n } catch (ex) {\r\n return deviceOrName\r\n }\r\n }\r\n _fromConfig(config) {\r\n var result = extend({}, DEFAULT_DEVICE, this._currentDevice, config);\r\n var shortcuts = {\r\n phone: \"phone\" === result.deviceType,\r\n tablet: \"tablet\" === result.deviceType,\r\n android: \"android\" === result.platform,\r\n ios: \"ios\" === result.platform,\r\n generic: \"generic\" === result.platform\r\n };\r\n return extend(result, shortcuts)\r\n }\r\n _fromUA(ua) {\r\n for (var idx = 0; idx < UA_PARSERS_ARRAY.length; idx += 1) {\r\n var parser = UA_PARSERS_ARRAY[idx];\r\n var config = parser(ua);\r\n if (config) {\r\n return this._fromConfig(config)\r\n }\r\n }\r\n return DEFAULT_DEVICE\r\n }\r\n _changeOrientation() {\r\n var $window = $(this._window);\r\n var orientation = getHeight($window) > getWidth($window) ? \"portrait\" : \"landscape\";\r\n if (this._currentOrientation === orientation) {\r\n return\r\n }\r\n this._currentOrientation = orientation;\r\n this._eventsStrategy.fireEvent(\"orientationChanged\", [{\r\n orientation: orientation\r\n }])\r\n }\r\n _recalculateOrientation() {\r\n var windowWidth = getWidth(this._window);\r\n if (this._currentWidth === windowWidth) {\r\n return\r\n }\r\n this._currentWidth = windowWidth;\r\n this._changeOrientation()\r\n }\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n }\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n}\r\nvar devices = new Devices;\r\nvar viewPortElement = viewPort();\r\nif (viewPortElement) {\r\n devices.attachCssClasses(viewPortElement)\r\n}\r\nchangeCallback.add((viewPort, prevViewport) => {\r\n devices.detachCssClasses(prevViewport);\r\n devices.attachCssClasses(viewPort)\r\n});\r\nexport default devices;\r\n","/**\r\n * DevExtreme (esm/core/utils/support.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n getNavigator,\r\n hasProperty\r\n} from \"./window\";\r\nimport devices from \"../devices\";\r\nimport {\r\n stylePropPrefix,\r\n styleProp\r\n} from \"./style\";\r\nvar {\r\n maxTouchPoints: maxTouchPoints\r\n} = getNavigator();\r\nvar transitionEndEventNames = {\r\n webkitTransition: \"webkitTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n transition: \"transitionend\"\r\n};\r\nvar supportProp = function(prop) {\r\n return !!styleProp(prop)\r\n};\r\nvar isNativeScrollingSupported = function() {\r\n var {\r\n platform: platform,\r\n mac: isMac\r\n } = devices.real();\r\n var isNativeScrollDevice = \"ios\" === platform || \"android\" === platform || isMac;\r\n return isNativeScrollDevice\r\n};\r\nvar inputType = function(type) {\r\n if (\"text\" === type) {\r\n return true\r\n }\r\n var input = domAdapter.createElement(\"input\");\r\n try {\r\n input.setAttribute(\"type\", type);\r\n input.value = \"wrongValue\";\r\n return !input.value\r\n } catch (e) {\r\n return false\r\n }\r\n};\r\nvar detectTouchEvents = function(hasWindowProperty, maxTouchPoints) {\r\n return (hasWindowProperty(\"ontouchstart\") || !!maxTouchPoints) && !hasWindowProperty(\"callPhantom\")\r\n};\r\nvar detectPointerEvent = function(hasWindowProperty) {\r\n return hasWindowProperty(\"PointerEvent\")\r\n};\r\nvar touchEvents = detectTouchEvents(hasProperty, maxTouchPoints);\r\nvar pointerEvents = detectPointerEvent(hasProperty);\r\nvar touchPointersPresent = !!maxTouchPoints;\r\nexport {\r\n touchEvents,\r\n pointerEvents,\r\n styleProp,\r\n stylePropPrefix,\r\n supportProp,\r\n inputType\r\n};\r\nexport var touch = touchEvents || pointerEvents && touchPointersPresent;\r\nexport var transition = callOnce((function() {\r\n return supportProp(\"transition\")\r\n}));\r\nexport var transitionEndEventName = callOnce((function() {\r\n return transitionEndEventNames[styleProp(\"transition\")]\r\n}));\r\nexport var animation = callOnce((function() {\r\n return supportProp(\"animation\")\r\n}));\r\nexport var nativeScrolling = isNativeScrollingSupported();\r\n","/**\r\n * DevExtreme (esm/core/utils/dom.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isWindow,\r\n isString\r\n} from \"./type\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nvar window = getWindow();\r\nvar getRootNodeHost = element => {\r\n if (!element.getRootNode) {\r\n return\r\n }\r\n var host = element.getRootNode().host;\r\n if (isString(host)) {\r\n return\r\n }\r\n return host\r\n};\r\nexport var resetActiveElement = () => {\r\n var activeElement = domAdapter.getActiveElement();\r\n if (activeElement && activeElement !== domAdapter.getBody()) {\r\n var _activeElement$blur;\r\n null === (_activeElement$blur = activeElement.blur) || void 0 === _activeElement$blur ? void 0 : _activeElement$blur.call(activeElement)\r\n }\r\n};\r\nexport var clearSelection = () => {\r\n var selection = window.getSelection();\r\n if (!selection) {\r\n return\r\n }\r\n if (\"Caret\" === selection.type) {\r\n return\r\n }\r\n if (selection.empty) {\r\n selection.empty()\r\n } else if (selection.removeAllRanges) {\r\n try {\r\n selection.removeAllRanges()\r\n } catch (e) {}\r\n }\r\n};\r\nexport var closestCommonParent = (startTarget, endTarget) => {\r\n var $startTarget = $(startTarget);\r\n var $endTarget = $(endTarget);\r\n if ($startTarget[0] === $endTarget[0]) {\r\n return $startTarget[0]\r\n }\r\n var $startParents = $startTarget.parents();\r\n var $endParents = $endTarget.parents();\r\n var startingParent = Math.min($startParents.length, $endParents.length);\r\n for (var i = -startingParent; i < 0; i++) {\r\n if ($startParents.get(i) === $endParents.get(i)) {\r\n return $startParents.get(i)\r\n }\r\n }\r\n};\r\nexport var extractTemplateMarkup = element => {\r\n element = $(element);\r\n var templateTag = element.length && element.filter((function() {\r\n var $node = $(this);\r\n return $node.is(\"script[type]\") && $node.attr(\"type\").indexOf(\"script\") < 0\r\n }));\r\n if (templateTag.length) {\r\n return templateTag.eq(0).html()\r\n } else {\r\n element = $(\"
\").append(element);\r\n return element.html()\r\n }\r\n};\r\nexport var normalizeTemplateElement = element => {\r\n var $element = isDefined(element) && (element.nodeType || isRenderer(element)) ? $(element) : $(\"
\").html(element).contents();\r\n if (1 === $element.length) {\r\n if ($element.is(\"script\")) {\r\n $element = normalizeTemplateElement($element.html().trim())\r\n } else if ($element.is(\"table\")) {\r\n $element = $element.children(\"tbody\").contents()\r\n }\r\n }\r\n return $element\r\n};\r\nexport var clipboardText = (event, text) => {\r\n var clipboard = event.originalEvent && event.originalEvent.clipboardData || window.clipboardData;\r\n if (!text) {\r\n return clipboard && clipboard.getData(\"Text\")\r\n }\r\n clipboard && clipboard.setData(\"Text\", text)\r\n};\r\nexport var contains = (container, element) => {\r\n if (!element) {\r\n return false\r\n }\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains(element) || contains(container, getRootNodeHost(element))\r\n};\r\nexport var createTextElementHiddenCopy = (element, text, options) => {\r\n var elementStyles = window.getComputedStyle($(element).get(0));\r\n var includePaddings = options && options.includePaddings;\r\n return $(\"
\").text(text).css({\r\n fontStyle: elementStyles.fontStyle,\r\n fontVariant: elementStyles.fontVariant,\r\n fontWeight: elementStyles.fontWeight,\r\n fontSize: elementStyles.fontSize,\r\n fontFamily: elementStyles.fontFamily,\r\n letterSpacing: elementStyles.letterSpacing,\r\n border: elementStyles.border,\r\n paddingTop: includePaddings ? elementStyles.paddingTop : \"\",\r\n paddingRight: includePaddings ? elementStyles.paddingRight : \"\",\r\n paddingBottom: includePaddings ? elementStyles.paddingBottom : \"\",\r\n paddingLeft: includePaddings ? elementStyles.paddingLeft : \"\",\r\n visibility: \"hidden\",\r\n whiteSpace: \"pre\",\r\n position: \"absolute\",\r\n float: \"left\"\r\n })\r\n};\r\nexport var insertBefore = (element, newElement) => {\r\n if (newElement) {\r\n domAdapter.insertElement(element.parentNode, newElement, element)\r\n }\r\n return element\r\n};\r\nexport var replaceWith = (element, newElement) => {\r\n if (!(newElement && newElement[0])) {\r\n return\r\n }\r\n if (newElement.is(element)) {\r\n return element\r\n }\r\n each(newElement, (_, currentElement) => {\r\n insertBefore(element[0], currentElement)\r\n });\r\n element.remove();\r\n return newElement\r\n};\r\nexport var isElementInDom = $element => {\r\n var element = null === $element || void 0 === $element ? void 0 : $element.get(0);\r\n var shadowHost = null === element || void 0 === element ? void 0 : element.getRootNode().host;\r\n return !!$(shadowHost || element).closest(getWindow().document).length\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/frame.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = hasWindow() ? getWindow() : {};\r\nimport callOnce from \"../core/utils/call_once\";\r\nvar FRAME_ANIMATION_STEP_TIME = 1e3 / 60;\r\nvar request = function(callback) {\r\n return setTimeout(callback, FRAME_ANIMATION_STEP_TIME)\r\n};\r\nvar cancel = function(requestID) {\r\n clearTimeout(requestID)\r\n};\r\nvar setAnimationFrameMethods = callOnce((function() {\r\n var nativeRequest = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;\r\n var nativeCancel = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;\r\n if (nativeRequest && nativeCancel) {\r\n request = nativeRequest;\r\n cancel = nativeCancel\r\n }\r\n}));\r\nexport function requestAnimationFrame() {\r\n setAnimationFrameMethods();\r\n return request.apply(window, arguments)\r\n}\r\nexport function cancelAnimationFrame() {\r\n setAnimationFrameMethods();\r\n cancel.apply(window, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport callbacks from \"./event_registrator_callbacks\";\r\nvar registerEvent = function(name, eventObject) {\r\n var strategy = {};\r\n if (\"noBubble\" in eventObject) {\r\n strategy.noBubble = eventObject.noBubble\r\n }\r\n if (\"bindType\" in eventObject) {\r\n strategy.bindType = eventObject.bindType\r\n }\r\n if (\"delegateType\" in eventObject) {\r\n strategy.delegateType = eventObject.delegateType\r\n }\r\n each([\"setup\", \"teardown\", \"add\", \"remove\", \"trigger\", \"handle\", \"_default\", \"dispose\"], (function(_, methodName) {\r\n if (!eventObject[methodName]) {\r\n return\r\n }\r\n strategy[methodName] = function() {\r\n var args = [].slice.call(arguments);\r\n args.unshift(this);\r\n return eventObject[methodName].apply(eventObject, args)\r\n }\r\n }));\r\n callbacks.fire(name, strategy)\r\n};\r\nregisterEvent.callbacks = callbacks;\r\nexport default registerEvent;\r\n","/**\r\n * DevExtreme (esm/events/remove.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n beforeCleanData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nexport var removeEvent = \"dxremove\";\r\nvar eventPropName = \"dxRemoveEvent\";\r\nbeforeCleanData((function(elements) {\r\n elements = [].slice.call(elements);\r\n for (var i = 0; i < elements.length; i++) {\r\n var $element = $(elements[i]);\r\n if ($element.prop(eventPropName)) {\r\n $element[0][eventPropName] = null;\r\n eventsEngine.triggerHandler($element, removeEvent)\r\n }\r\n }\r\n}));\r\nregisterEvent(removeEvent, {\r\n noBubble: true,\r\n setup: function(element) {\r\n $(element).prop(eventPropName, true)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/events/utils/event_nodes_disposing.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../remove\";\r\n\r\nfunction nodesByEvent(event) {\r\n return event && [event.target, event.delegateTarget, event.relatedTarget, event.currentTarget].filter(node => !!node)\r\n}\r\nexport var subscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.one(nodesByEvent(event), removeEvent, callback)\r\n};\r\nexport var unsubscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.off(nodesByEvent(event), removeEvent, callback)\r\n};\r\n","/**\r\n * DevExtreme (esm/events/pointer/base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n eventSource,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar POINTER_EVENTS_NAMESPACE = \"dxPointerEvents\";\r\nvar BaseStrategy = Class.inherit({\r\n ctor: function(eventName, originalEvents) {\r\n this._eventName = eventName;\r\n this._originalEvents = addNamespace(originalEvents, POINTER_EVENTS_NAMESPACE);\r\n this._handlerCount = 0;\r\n this.noBubble = this._isNoBubble()\r\n },\r\n _isNoBubble: function() {\r\n var eventName = this._eventName;\r\n return \"dxpointerenter\" === eventName || \"dxpointerleave\" === eventName\r\n },\r\n _handler: function(e) {\r\n var _originalEvent$target;\r\n var delegateTarget = this._getDelegateTarget(e);\r\n var event = {\r\n type: this._eventName,\r\n pointerType: e.pointerType || eventSource(e),\r\n originalEvent: e,\r\n delegateTarget: delegateTarget,\r\n timeStamp: browser.mozilla ? (new Date).getTime() : e.timeStamp\r\n };\r\n var originalEvent = e.originalEvent;\r\n if (null !== originalEvent && void 0 !== originalEvent && null !== (_originalEvent$target = originalEvent.target) && void 0 !== _originalEvent$target && _originalEvent$target.shadowRoot) {\r\n var _originalEvent$path, _originalEvent$compos;\r\n var path = null !== (_originalEvent$path = originalEvent.path) && void 0 !== _originalEvent$path ? _originalEvent$path : null === (_originalEvent$compos = originalEvent.composedPath) || void 0 === _originalEvent$compos ? void 0 : _originalEvent$compos.call(originalEvent);\r\n event.target = path[0]\r\n }\r\n return this._fireEvent(event)\r\n },\r\n _getDelegateTarget: function(e) {\r\n var delegateTarget;\r\n if (this.noBubble) {\r\n delegateTarget = e.delegateTarget\r\n }\r\n return delegateTarget\r\n },\r\n _fireEvent: function(args) {\r\n return fireEvent(args)\r\n },\r\n _setSelector: function(handleObj) {\r\n this._selector = this.noBubble && handleObj ? handleObj.selector : null\r\n },\r\n _getSelector: function() {\r\n return this._selector\r\n },\r\n setup: function() {\r\n return true\r\n },\r\n add: function(element, handleObj) {\r\n if (this._handlerCount <= 0 || this.noBubble) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n this._setSelector(handleObj);\r\n var that = this;\r\n eventsEngine.on(element, this._originalEvents, this._getSelector(), (function(e) {\r\n that._handler(e)\r\n }))\r\n }\r\n if (!this.noBubble) {\r\n this._handlerCount++\r\n }\r\n },\r\n remove: function(handleObj) {\r\n this._setSelector(handleObj);\r\n if (!this.noBubble) {\r\n this._handlerCount--\r\n }\r\n },\r\n teardown: function(element) {\r\n if (this._handlerCount && !this.noBubble) {\r\n return\r\n }\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n if (this._originalEvents !== \".\" + POINTER_EVENTS_NAMESPACE) {\r\n eventsEngine.off(element, this._originalEvents, this._getSelector())\r\n }\r\n },\r\n dispose: function(element) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n eventsEngine.off(element, this._originalEvents)\r\n }\r\n});\r\nexport default BaseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/touch.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport BaseStrategy from \"./base\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart\",\r\n dxpointermove: \"touchmove\",\r\n dxpointerup: \"touchend\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"\",\r\n dxpointerout: \"\",\r\n dxpointerenter: \"\",\r\n dxpointerleave: \"\"\r\n};\r\nvar normalizeTouchEvent = function(e) {\r\n var pointers = [];\r\n each(e.touches, (function(_, touch) {\r\n pointers.push(extend({\r\n pointerId: touch.identifier\r\n }, touch))\r\n }));\r\n return {\r\n pointers: pointers,\r\n pointerId: e.changedTouches[0].identifier\r\n }\r\n};\r\nvar skipTouchWithSameIdentifier = function(pointerEvent) {\r\n return \"ios\" === devices.real().platform && (\"dxpointerdown\" === pointerEvent || \"dxpointerup\" === pointerEvent)\r\n};\r\nvar TouchStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerId = 0\r\n },\r\n _handler: function(e) {\r\n if (skipTouchWithSameIdentifier(this._eventName)) {\r\n var touch = e.changedTouches[0];\r\n if (this._pointerId === touch.identifier && 0 !== this._pointerId) {\r\n return\r\n }\r\n this._pointerId = touch.identifier\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeTouchEvent(args.originalEvent), args))\r\n }\r\n});\r\nTouchStrategy.map = eventMap;\r\nTouchStrategy.normalize = normalizeTouchEvent;\r\nexport default TouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/observer.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar addEventsListener = function(events, handler) {\r\n readyCallbacks.add((function() {\r\n events.split(\" \").forEach((function(event) {\r\n domAdapter.listen(domAdapter.getDocument(), event, handler, true)\r\n }))\r\n }))\r\n};\r\nvar Observer = function(eventMap, pointerEquals, onPointerAdding) {\r\n onPointerAdding = onPointerAdding || function() {};\r\n var pointers = [];\r\n var getPointerIndex = function(e) {\r\n var index = -1;\r\n each(pointers, (function(i, pointer) {\r\n if (!pointerEquals(e, pointer)) {\r\n return true\r\n }\r\n index = i;\r\n return false\r\n }));\r\n return index\r\n };\r\n var removePointer = function(e) {\r\n var index = getPointerIndex(e);\r\n if (index > -1) {\r\n pointers.splice(index, 1)\r\n }\r\n };\r\n addEventsListener(eventMap.dxpointerdown, (function(e) {\r\n if (-1 === getPointerIndex(e)) {\r\n onPointerAdding(e);\r\n pointers.push(e)\r\n }\r\n }));\r\n addEventsListener(eventMap.dxpointermove, (function(e) {\r\n pointers[getPointerIndex(e)] = e\r\n }));\r\n addEventsListener(eventMap.dxpointerup, removePointer);\r\n addEventsListener(eventMap.dxpointercancel, removePointer);\r\n this.pointers = function() {\r\n return pointers\r\n };\r\n this.reset = function() {\r\n pointers = []\r\n }\r\n};\r\nexport default Observer;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport Observer from \"./observer\";\r\nvar eventMap = {\r\n dxpointerdown: \"mousedown\",\r\n dxpointermove: \"mousemove\",\r\n dxpointerup: \"mouseup\",\r\n dxpointercancel: \"\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar normalizeMouseEvent = function(e) {\r\n e.pointerId = 1;\r\n return {\r\n pointers: observer.pointers(),\r\n pointerId: 1\r\n }\r\n};\r\nvar observer;\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n observer = new Observer(eventMap, (function() {\r\n return true\r\n }));\r\n activated = true\r\n};\r\nvar MouseStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeMouseEvent(args.originalEvent), args))\r\n }\r\n});\r\nMouseStrategy.map = eventMap;\r\nMouseStrategy.normalize = normalizeMouseEvent;\r\nMouseStrategy.activate = activateStrategy;\r\nMouseStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nexport default MouseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse_and_touch.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport MouseStrategy from \"./mouse\";\r\nimport TouchStrategy from \"./touch\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart mousedown\",\r\n dxpointermove: \"touchmove mousemove\",\r\n dxpointerup: \"touchend mouseup\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n MouseStrategy.activate();\r\n activated = true\r\n};\r\nvar MouseAndTouchStrategy = BaseStrategy.inherit({\r\n EVENT_LOCK_TIMEOUT: 100,\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _handler: function(e) {\r\n var isMouse = isMouseEvent(e);\r\n if (!isMouse) {\r\n this._skipNextEvents = true\r\n }\r\n if (isMouse && this._mouseLocked) {\r\n return\r\n }\r\n if (isMouse && this._skipNextEvents) {\r\n this._skipNextEvents = false;\r\n this._mouseLocked = true;\r\n clearTimeout(this._unlockMouseTimer);\r\n var that = this;\r\n this._unlockMouseTimer = setTimeout((function() {\r\n that._mouseLocked = false\r\n }), this.EVENT_LOCK_TIMEOUT);\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _fireEvent: function(args) {\r\n var normalizer = isMouseEvent(args.originalEvent) ? MouseStrategy.normalize : TouchStrategy.normalize;\r\n return this.callBase(extend(normalizer(args.originalEvent), args))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._skipNextEvents = false;\r\n this._mouseLocked = false;\r\n clearTimeout(this._unlockMouseTimer)\r\n }\r\n});\r\nMouseAndTouchStrategy.map = eventMap;\r\nMouseAndTouchStrategy.resetObserver = MouseStrategy.resetObserver;\r\nexport default MouseAndTouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport GlobalConfig from \"../core/config\";\r\nimport * as support from \"../core/utils/support\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport TouchStrategy from \"./pointer/touch\";\r\nimport MouseStrategy from \"./pointer/mouse\";\r\nimport MouseAndTouchStrategy from \"./pointer/mouse_and_touch\";\r\nvar getStrategy = (support, _ref) => {\r\n var {\r\n tablet: tablet,\r\n phone: phone\r\n } = _ref;\r\n var pointerEventStrategy = getStrategyFromGlobalConfig();\r\n if (pointerEventStrategy) {\r\n return pointerEventStrategy\r\n }\r\n if (support.touch && !(tablet || phone)) {\r\n return MouseAndTouchStrategy\r\n }\r\n if (support.touch) {\r\n return TouchStrategy\r\n }\r\n return MouseStrategy\r\n};\r\nvar EventStrategy = getStrategy(support, devices.real());\r\neach(EventStrategy.map, (pointerEvent, originalEvents) => {\r\n registerEvent(pointerEvent, new EventStrategy(pointerEvent, originalEvents))\r\n});\r\nvar pointer = {\r\n down: \"dxpointerdown\",\r\n up: \"dxpointerup\",\r\n move: \"dxpointermove\",\r\n cancel: \"dxpointercancel\",\r\n enter: \"dxpointerenter\",\r\n leave: \"dxpointerleave\",\r\n over: \"dxpointerover\",\r\n out: \"dxpointerout\"\r\n};\r\n\r\nfunction getStrategyFromGlobalConfig() {\r\n var eventStrategyName = GlobalConfig().pointerEventStrategy;\r\n return {\r\n \"mouse-and-touch\": MouseAndTouchStrategy,\r\n touch: TouchStrategy,\r\n mouse: MouseStrategy\r\n } [eventStrategyName]\r\n}\r\nexport default pointer;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n hasTouches,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar Emitter = Class.inherit({\r\n ctor: function(element) {\r\n this._$element = $(element);\r\n this._cancelCallback = Callbacks();\r\n this._acceptCallback = Callbacks()\r\n },\r\n getElement: function() {\r\n return this._$element\r\n },\r\n validate: function(e) {\r\n return !isDxMouseWheelEvent(e)\r\n },\r\n validatePointers: function(e) {\r\n return 1 === hasTouches(e)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n extend(this, data)\r\n },\r\n addCancelCallback: function(callback) {\r\n this._cancelCallback.add(callback)\r\n },\r\n removeCancelCallback: function() {\r\n this._cancelCallback.empty()\r\n },\r\n _cancel: function(e) {\r\n this._cancelCallback.fire(this, e)\r\n },\r\n addAcceptCallback: function(callback) {\r\n this._acceptCallback.add(callback)\r\n },\r\n removeAcceptCallback: function() {\r\n this._acceptCallback.empty()\r\n },\r\n _accept: function(e) {\r\n this._acceptCallback.fire(this, e)\r\n },\r\n _requestAccept: function(e) {\r\n this._acceptRequestEvent = e\r\n },\r\n _forgetAccept: function() {\r\n this._accept(this._acceptRequestEvent);\r\n this._acceptRequestEvent = null\r\n },\r\n start: noop,\r\n move: noop,\r\n end: noop,\r\n cancel: noop,\r\n reset: function() {\r\n if (this._acceptRequestEvent) {\r\n this._accept(this._acceptRequestEvent)\r\n }\r\n },\r\n _fireEvent: function(eventName, e, params) {\r\n var eventData = extend({\r\n type: eventName,\r\n originalEvent: e,\r\n target: this._getEmitterTarget(e),\r\n delegateTarget: this.getElement().get(0)\r\n }, params);\r\n e = fireEvent(eventData);\r\n if (e.cancel) {\r\n this._cancel(e)\r\n }\r\n return e\r\n },\r\n _getEmitterTarget: function(e) {\r\n return (this.delegateSelector ? $(e.target).closest(this.delegateSelector) : this.getElement()).get(0)\r\n },\r\n dispose: noop\r\n});\r\nexport default Emitter;\r\n","/**\r\n * DevExtreme (esm/events/core/wheel.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar EVENT_NAME = \"dxmousewheel\";\r\nvar EVENT_NAMESPACE = \"dxWheel\";\r\nvar NATIVE_EVENT_NAME = \"wheel\";\r\nvar PIXEL_MODE = 0;\r\nvar DELTA_MUTLIPLIER = 30;\r\nvar wheel = {\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, addNamespace(NATIVE_EVENT_NAME, EVENT_NAMESPACE), wheel._wheelHandler.bind(wheel))\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\".concat(EVENT_NAMESPACE))\r\n },\r\n _wheelHandler: function(e) {\r\n var {\r\n deltaMode: deltaMode,\r\n deltaY: deltaY,\r\n deltaX: deltaX,\r\n deltaZ: deltaZ\r\n } = e.originalEvent;\r\n fireEvent({\r\n type: EVENT_NAME,\r\n originalEvent: e,\r\n delta: this._normalizeDelta(deltaY, deltaMode),\r\n deltaX: deltaX,\r\n deltaY: deltaY,\r\n deltaZ: deltaZ,\r\n deltaMode: deltaMode,\r\n pointerType: \"mouse\"\r\n });\r\n e.stopPropagation()\r\n },\r\n _normalizeDelta(delta) {\r\n var deltaMode = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : PIXEL_MODE;\r\n if (deltaMode === PIXEL_MODE) {\r\n return -delta\r\n } else {\r\n return -DELTA_MUTLIPLIER * delta\r\n }\r\n }\r\n};\r\nregisterEvent(EVENT_NAME, wheel);\r\nexport {\r\n EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/emitter_registrator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport {\r\n name as wheelEventName\r\n} from \"./wheel\";\r\nvar MANAGER_EVENT = \"dxEventManager\";\r\nvar EMITTER_DATA = \"dxEmitter\";\r\nvar EventManager = Class.inherit({\r\n ctor: function() {\r\n this._attachHandlers();\r\n this.reset();\r\n this._proxiedCancelHandler = this._cancelHandler.bind(this);\r\n this._proxiedAcceptHandler = this._acceptHandler.bind(this)\r\n },\r\n _attachHandlers: function() {\r\n readyCallbacks.add(function() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, MANAGER_EVENT), this._pointerDownHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.move, MANAGER_EVENT), this._pointerMoveHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace([pointerEvents.up, pointerEvents.cancel].join(\" \"), MANAGER_EVENT), this._pointerUpHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(wheelEventName, MANAGER_EVENT), this._mouseWheelHandler.bind(this))\r\n }.bind(this))\r\n },\r\n _eachEmitter: function(callback) {\r\n var activeEmitters = this._activeEmitters || [];\r\n var i = 0;\r\n while (activeEmitters.length > i) {\r\n var emitter = activeEmitters[i];\r\n if (false === callback(emitter)) {\r\n break\r\n }\r\n if (activeEmitters[i] === emitter) {\r\n i++\r\n }\r\n }\r\n },\r\n _applyToEmitters: function(method, arg) {\r\n this._eachEmitter((function(emitter) {\r\n emitter[method].call(emitter, arg)\r\n }))\r\n },\r\n reset: function() {\r\n this._eachEmitter(this._proxiedCancelHandler);\r\n this._activeEmitters = []\r\n },\r\n resetEmitter: function(emitter) {\r\n this._proxiedCancelHandler(emitter)\r\n },\r\n _pointerDownHandler: function(e) {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n return\r\n }\r\n this._updateEmitters(e)\r\n },\r\n _updateEmitters: function(e) {\r\n if (!this._isSetChanged(e)) {\r\n return\r\n }\r\n this._cleanEmitters(e);\r\n this._fetchEmitters(e)\r\n },\r\n _isSetChanged: function(e) {\r\n var currentSet = this._closestEmitter(e);\r\n var previousSet = this._emittersSet || [];\r\n var setChanged = currentSet.length !== previousSet.length;\r\n each(currentSet, (function(index, emitter) {\r\n setChanged = setChanged || previousSet[index] !== emitter;\r\n return !setChanged\r\n }));\r\n this._emittersSet = currentSet;\r\n return setChanged\r\n },\r\n _closestEmitter: function(e) {\r\n var that = this;\r\n var result = [];\r\n var $element = $(e.target);\r\n\r\n function handleEmitter(_, emitter) {\r\n if (!!emitter && emitter.validatePointers(e) && emitter.validate(e)) {\r\n emitter.addCancelCallback(that._proxiedCancelHandler);\r\n emitter.addAcceptCallback(that._proxiedAcceptHandler);\r\n result.push(emitter)\r\n }\r\n }\r\n while ($element.length) {\r\n var emitters = elementData($element.get(0), EMITTER_DATA) || [];\r\n each(emitters, handleEmitter);\r\n $element = $element.parent()\r\n }\r\n return result\r\n },\r\n _acceptHandler: function(acceptedEmitter, e) {\r\n var that = this;\r\n this._eachEmitter((function(emitter) {\r\n if (emitter !== acceptedEmitter) {\r\n that._cancelEmitter(emitter, e)\r\n }\r\n }))\r\n },\r\n _cancelHandler: function(canceledEmitter, e) {\r\n this._cancelEmitter(canceledEmitter, e)\r\n },\r\n _cancelEmitter: function(emitter, e) {\r\n var activeEmitters = this._activeEmitters;\r\n if (e) {\r\n emitter.cancel(e)\r\n } else {\r\n emitter.reset()\r\n }\r\n emitter.removeCancelCallback();\r\n emitter.removeAcceptCallback();\r\n var emitterIndex = activeEmitters.indexOf(emitter);\r\n if (emitterIndex > -1) {\r\n activeEmitters.splice(emitterIndex, 1)\r\n }\r\n },\r\n _cleanEmitters: function(e) {\r\n this._applyToEmitters(\"end\", e);\r\n this.reset(e)\r\n },\r\n _fetchEmitters: function(e) {\r\n this._activeEmitters = this._emittersSet.slice();\r\n this._applyToEmitters(\"start\", e)\r\n },\r\n _pointerMoveHandler: function(e) {\r\n this._applyToEmitters(\"move\", e)\r\n },\r\n _pointerUpHandler: function(e) {\r\n this._updateEmitters(e)\r\n },\r\n _mouseWheelHandler: function(e) {\r\n if (!this._allowInterruptionByMouseWheel()) {\r\n return\r\n }\r\n e.pointers = [null];\r\n this._pointerDownHandler(e);\r\n this._adjustWheelEvent(e);\r\n this._pointerMoveHandler(e);\r\n e.pointers = [];\r\n this._pointerUpHandler(e)\r\n },\r\n _allowInterruptionByMouseWheel: function() {\r\n var allowInterruption = true;\r\n this._eachEmitter((function(emitter) {\r\n allowInterruption = emitter.allowInterruptionByMouseWheel() && allowInterruption;\r\n return allowInterruption\r\n }));\r\n return allowInterruption\r\n },\r\n _adjustWheelEvent: function(e) {\r\n var closestGestureEmitter = null;\r\n this._eachEmitter((function(emitter) {\r\n if (!emitter.gesture) {\r\n return\r\n }\r\n var direction = emitter.getDirection(e);\r\n if (\"horizontal\" !== direction && !e.shiftKey || \"vertical\" !== direction && e.shiftKey) {\r\n closestGestureEmitter = emitter;\r\n return false\r\n }\r\n }));\r\n if (!closestGestureEmitter) {\r\n return\r\n }\r\n var direction = closestGestureEmitter.getDirection(e);\r\n var verticalGestureDirection = \"both\" === direction && !e.shiftKey || \"vertical\" === direction;\r\n var prop = verticalGestureDirection ? \"pageY\" : \"pageX\";\r\n e[prop] += e.delta\r\n },\r\n isActive: function(element) {\r\n var result = false;\r\n this._eachEmitter((function(emitter) {\r\n result = result || emitter.getElement().is(element)\r\n }));\r\n return result\r\n }\r\n});\r\nvar eventManager = new EventManager;\r\nvar EMITTER_SUBSCRIPTION_DATA = \"dxEmitterSubscription\";\r\nvar registerEmitter = function(emitterConfig) {\r\n var emitterClass = emitterConfig.emitter;\r\n var emitterName = emitterConfig.events[0];\r\n var emitterEvents = emitterConfig.events;\r\n each(emitterEvents, (function(_, eventName) {\r\n registerEvent(eventName, {\r\n noBubble: !emitterConfig.bubble,\r\n setup: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA) || {};\r\n var emitters = elementData(element, EMITTER_DATA) || {};\r\n var emitter = emitters[emitterName] || new emitterClass(element);\r\n subscriptions[eventName] = true;\r\n emitters[emitterName] = emitter;\r\n elementData(element, EMITTER_DATA, emitters);\r\n elementData(element, EMITTER_SUBSCRIPTION_DATA, subscriptions)\r\n },\r\n add: function(element, handleObj) {\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n emitter.configure(extend({\r\n delegateSelector: handleObj.selector\r\n }, handleObj.data), handleObj.type)\r\n },\r\n teardown: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA);\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n delete subscriptions[eventName];\r\n var disposeEmitter = true;\r\n each(emitterEvents, (function(_, eventName) {\r\n disposeEmitter = disposeEmitter && !subscriptions[eventName];\r\n return disposeEmitter\r\n }));\r\n if (disposeEmitter) {\r\n if (eventManager.isActive(element)) {\r\n eventManager.resetEmitter(emitter)\r\n }\r\n emitter && emitter.dispose();\r\n delete emitters[emitterName]\r\n }\r\n }\r\n })\r\n }))\r\n};\r\nexport default registerEmitter;\r\n","/**\r\n * DevExtreme (esm/events/click.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../animation/frame\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport {\r\n subscribeNodesDisposing,\r\n unsubscribeNodesDisposing\r\n} from \"./utils/event_nodes_disposing\";\r\nimport pointerEvents from \"./pointer\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar CLICK_EVENT_NAME = \"dxclick\";\r\nvar misc = {\r\n requestAnimationFrame: requestAnimationFrame,\r\n cancelAnimationFrame: cancelAnimationFrame\r\n};\r\nvar prevented = null;\r\nvar lastFiredEvent = null;\r\nvar onNodeRemove = () => {\r\n lastFiredEvent = null\r\n};\r\nvar clickHandler = function(e) {\r\n var originalEvent = e.originalEvent;\r\n var eventAlreadyFired = lastFiredEvent === originalEvent || originalEvent && originalEvent.DXCLICK_FIRED;\r\n var leftButton = !e.which || 1 === e.which;\r\n if (leftButton && !prevented && !eventAlreadyFired) {\r\n if (originalEvent) {\r\n originalEvent.DXCLICK_FIRED = true\r\n }\r\n unsubscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n lastFiredEvent = originalEvent;\r\n subscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n fireEvent({\r\n type: CLICK_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n }\r\n};\r\nvar ClickEmitter = Emitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n eventsEngine.on(this.getElement(), \"click\", clickHandler)\r\n },\r\n start: function(e) {\r\n prevented = null\r\n },\r\n cancel: function() {\r\n prevented = true\r\n },\r\n dispose: function() {\r\n eventsEngine.off(this.getElement(), \"click\", clickHandler)\r\n }\r\n});\r\n! function() {\r\n var desktopDevice = devices.real().generic;\r\n if (!desktopDevice) {\r\n var startTarget = null;\r\n var blurPrevented = false;\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n startTarget = e.target;\r\n blurPrevented = e.isDefaultPrevented()\r\n }));\r\n eventsEngine.subscribeGlobal(document, addNamespace(\"click\", \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n var $target = function(e) {\r\n var _originalEvent$target;\r\n var originalEvent = e.originalEvent;\r\n if (null !== originalEvent && void 0 !== originalEvent && null !== (_originalEvent$target = originalEvent.target) && void 0 !== _originalEvent$target && _originalEvent$target.shadowRoot) {\r\n var _originalEvent$path, _originalEvent$compos;\r\n var path = null !== (_originalEvent$path = originalEvent.path) && void 0 !== _originalEvent$path ? _originalEvent$path : null === (_originalEvent$compos = originalEvent.composedPath) || void 0 === _originalEvent$compos ? void 0 : _originalEvent$compos.call(originalEvent);\r\n return $(path[0])\r\n }\r\n return $(e.target)\r\n }(e);\r\n if (!blurPrevented && startTarget && !$target.is(startTarget) && !$(startTarget).is(\"label\") && (element = $target, $(element).is(\"input, textarea, select, button ,:focus, :focus *\"))) {\r\n resetActiveElement()\r\n }\r\n var element;\r\n startTarget = null;\r\n blurPrevented = false\r\n }))\r\n }\r\n}();\r\nregisterEmitter({\r\n emitter: ClickEmitter,\r\n bubble: true,\r\n events: [CLICK_EVENT_NAME]\r\n});\r\nexport {\r\n CLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/events/dblclick.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n closestCommonParent\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"../../events/utils/index\";\r\nvar DBLCLICK_EVENT_NAME = \"dxdblclick\";\r\nvar DBLCLICK_NAMESPACE = \"dxDblClick\";\r\nvar NAMESPACED_CLICK_EVENT = addNamespace(clickEventName, DBLCLICK_NAMESPACE);\r\nvar DBLCLICK_TIMEOUT = 300;\r\nvar DblClick = Class.inherit({\r\n ctor() {\r\n this._handlerCount = 0;\r\n this._forgetLastClick()\r\n },\r\n _forgetLastClick() {\r\n this._firstClickTarget = null;\r\n this._lastClickTimeStamp = -DBLCLICK_TIMEOUT\r\n },\r\n add() {\r\n if (this._handlerCount <= 0) {\r\n eventsEngine.on(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT, this._clickHandler.bind(this))\r\n }\r\n this._handlerCount += 1\r\n },\r\n _clickHandler(e) {\r\n var timeStamp = e.timeStamp || Date.now();\r\n var timeBetweenClicks = timeStamp - this._lastClickTimeStamp;\r\n var isSimulated = timeBetweenClicks < 0;\r\n var isDouble = !isSimulated && timeBetweenClicks < DBLCLICK_TIMEOUT;\r\n if (isDouble) {\r\n fireEvent({\r\n type: DBLCLICK_EVENT_NAME,\r\n target: closestCommonParent(this._firstClickTarget, e.target),\r\n originalEvent: e\r\n });\r\n this._forgetLastClick()\r\n } else {\r\n this._firstClickTarget = e.target;\r\n this._lastClickTimeStamp = timeStamp;\r\n clearTimeout(this._lastClickClearTimeout);\r\n this._lastClickClearTimeout = setTimeout(() => {\r\n this._forgetLastClick()\r\n }, 2 * DBLCLICK_TIMEOUT)\r\n }\r\n },\r\n remove() {\r\n this._handlerCount -= 1;\r\n if (this._handlerCount <= 0) {\r\n this._forgetLastClick();\r\n eventsEngine.off(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT, void 0);\r\n clearTimeout(this._lastClickClearTimeout);\r\n this._handlerCount = 0\r\n }\r\n }\r\n});\r\nvar dblClick = new DblClick;\r\nexport {\r\n dblClick,\r\n DBLCLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/double_click.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n name,\r\n dblClick\r\n} from \"../__internal/events/dblclick\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nregisterEvent(name, dblClick);\r\nexport {\r\n name\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nexport var ColumnStateMixin = Base => class extends Base {\r\n _applyColumnState(options) {\r\n var _a;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = this._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = extend(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = this._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = $(\"\").addClass(this._getIndicatorClassName(options.name));\r\n var columnsController = null === (_a = this.component) || void 0 === _a ? void 0 : _a.getController(\"columns\");\r\n var indicatorAlignment = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getHeaderContentAlignment(columnAlignment)) || columnAlignment;\r\n parameters.container = $indicatorsContainer;\r\n parameters.indicator = $span;\r\n this._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n }\r\n _getIndicatorClassName(name) {}\r\n _getColumnAlignment(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : getDefaultAlignment(rtlEnabled)\r\n }\r\n _createIndicatorContainer(options, ignoreIndicatorAlignment) {\r\n var $indicatorsContainer = this._getIndicatorContainer(options.rootElement);\r\n var indicatorAlignment = \"left\" === options.columnAlignment ? \"right\" : \"left\";\r\n if (!$indicatorsContainer.length) {\r\n $indicatorsContainer = $(\"
\").addClass(COLUMN_INDICATORS_CLASS)\r\n }\r\n this.setAria(\"role\", \"presentation\", $indicatorsContainer);\r\n return $indicatorsContainer.css(\"float\", options.showColumnLines && !ignoreIndicatorAlignment ? indicatorAlignment : null)\r\n }\r\n _getIndicatorContainer($cell) {\r\n return $cell && $cell.find(\".\".concat(COLUMN_INDICATORS_CLASS))\r\n }\r\n _getIndicatorElements($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n }\r\n _renderIndicator(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n $container && $indicator && $container.append($indicator)\r\n }\r\n _updateIndicators(indicatorName) {\r\n var columns = this.getColumns();\r\n var $cells = this.getColumnElements();\r\n var $cell;\r\n if (!$cells || columns.length !== $cells.length) {\r\n return\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = $cells.eq(i);\r\n this._updateIndicator($cell, columns[i], indicatorName);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n if (rowOptions && rowOptions.cells) {\r\n rowOptions.cells[$cell.index()].column = columns[i]\r\n }\r\n }\r\n }\r\n _updateIndicator($cell, column, indicatorName) {\r\n if (!column.command) {\r\n return this._applyColumnState({\r\n name: indicatorName,\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n return\r\n }\r\n};\r\nexport default ColumnStateMixin;\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.errors.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E1001: \"Module '{0}'. Controller '{1}' is already registered\",\r\n E1002: \"Module '{0}'. Controller '{1}' does not inherit from DevExpress.ui.dxDataGrid.Controller\",\r\n E1003: \"Module '{0}'. View '{1}' is already registered\",\r\n E1004: \"Module '{0}'. View '{1}' does not inherit from DevExpress.ui.dxDataGrid.View\",\r\n E1005: \"Public method '{0}' is already registered\",\r\n E1006: \"Public method '{0}.{1}' does not exist\",\r\n E1007: \"State storing cannot be provided due to the restrictions of the browser\",\r\n E1010: \"The template does not contain the TextBox widget\",\r\n E1011: 'Items cannot be deleted from the List. Implement the \"remove\" function in the data store',\r\n E1012: \"Editing type '{0}' with the name '{1}' is unsupported\",\r\n E1016: \"Unexpected type of data source is provided for a lookup column\",\r\n E1018: \"The 'collapseAll' method cannot be called if you use a remote data source\",\r\n E1019: \"Search mode '{0}' is unavailable\",\r\n E1020: \"The type cannot be changed after initialization\",\r\n E1021: \"{0} '{1}' you are trying to remove does not exist\",\r\n E1022: 'The \"markers\" option is given an invalid value. Assign an array instead',\r\n E1023: 'The \"routes\" option is given an invalid value. Assign an array instead',\r\n E1025: \"This layout is too complex to render\",\r\n E1026: 'The \"calculateCustomSummary\" function is missing from a field whose \"summaryType\" option is set to \"custom\"',\r\n E1031: \"Unknown subscription in the Scheduler widget: '{0}'\",\r\n E1032: \"Unknown start date in an appointment: '{0}'\",\r\n E1033: \"Unknown step in the date navigator: '{0}'\",\r\n E1034: \"The browser does not implement an API for saving files\",\r\n E1035: \"The editor cannot be created: {0}\",\r\n E1037: \"Invalid structure of grouped data\",\r\n E1038: \"The browser does not support local storages for local web pages\",\r\n E1039: \"A cell's position cannot be calculated\",\r\n E1040: \"The '{0}' key value is not unique within the data array\",\r\n E1041: \"The '{0}' script is referenced after the DevExtreme scripts or not referenced at all\",\r\n E1042: \"{0} requires the key field to be specified\",\r\n E1043: \"Changes cannot be processed due to the incorrectly set key\",\r\n E1044: \"The key field specified by the keyExpr option does not match the key field specified in the data store\",\r\n E1045: \"Editing requires the key field to be specified in the data store\",\r\n E1046: \"The '{0}' key field is not found in data objects\",\r\n E1047: 'The \"{0}\" field is not found in the fields array',\r\n E1048: 'The \"{0}\" operation is not found in the filterOperations array',\r\n E1049: \"Column '{0}': filtering is allowed but the 'dataField' or 'name' option is not specified\",\r\n E1050: \"The validationRules option does not apply to third-party editors defined in the editCellTemplate\",\r\n E1051: 'HtmlEditor\\'s valueType is \"{0}\", but the {0} converter was not imported.',\r\n E1052: '{0} should have the \"dataSource\" option specified',\r\n E1053: 'The \"buttons\" option accepts an array that contains only objects or string values',\r\n E1054: \"All text editor buttons must have names\",\r\n E1055: 'One or several text editor buttons have invalid or non-unique \"name\" values',\r\n E1056: 'The {0} widget does not support buttons of the \"{1}\" type',\r\n E1058: 'The \"startDayHour\" and \"endDayHour\" options must be integers in the [0, 24] range, with \"endDayHour\" being greater than \"startDayHour\".',\r\n E1059: \"The following column names are not unique: {0}\",\r\n E1060: \"All editable columns must have names\",\r\n E1061: 'The \"offset\" option must be an integer in the [-1440, 1440] range, divisible by 5 without a remainder.',\r\n E1062: 'The \"cellDuration\" must be a positive integer, evenly dividing the (\"endDayHour\" - \"startDayHour\") interval into minutes.',\r\n W1001: 'The \"key\" option cannot be modified after initialization',\r\n W1002: \"An item with the key '{0}' does not exist\",\r\n W1003: \"A group with the key '{0}' in which you are trying to select items does not exist\",\r\n W1004: \"The item '{0}' you are trying to select in the group '{1}' does not exist\",\r\n W1005: \"Due to column data types being unspecified, data has been loaded twice in order to apply initial filter settings. To resolve this issue, specify data types for all grid columns.\",\r\n W1006: \"The map service returned the following error: '{0}'\",\r\n W1007: \"No item with key {0} was found in the data source, but this key was used as the parent key for item {1}\",\r\n W1008: \"Cannot scroll to the '{0}' date because it does not exist on the current view\",\r\n W1009: \"Searching works only if data is specified using the dataSource option\",\r\n W1010: \"The capability to select all items works with source data of plain structure only\",\r\n W1011: 'The \"keyExpr\" option is not applied when dataSource is not an array',\r\n W1012: \"The '{0}' key field is not found in data objects\",\r\n W1013: 'The \"message\" field in the dialog component was renamed to \"messageHtml\". Change your code correspondingly. In addition, if you used HTML code in the message, make sure that it is secure',\r\n W1014: \"The Floating Action Button exceeds the recommended speed dial action count. If you need to display more speed dial actions, increase the maxSpeedDialActionCount option value in the global config.\",\r\n W1016: \"The '{0}' field in the HTML Editor toolbar item configuration was renamed to '{1}'. Please make a corresponding change in your code.\",\r\n W1017: \"The 'key' property is not specified for a lookup data source. Please specify it to prevent requests for the entire dataset when users filter data.\",\r\n W1018: \"Infinite scrolling may not work properly with multiple selection. To use these features together, set 'selection.deferred' to true or set 'selection.selectAllMode' to 'page'.\",\r\n W1019: \"Filter query string exceeds maximum length limit of {0} characters.\",\r\n W1020: \"hideEvent is ignored when the shading property is true\",\r\n W1021: \"The '{0}' is not rendered because none of the DOM elements match the value of the \\\"container\\\" property.\",\r\n W1022: \"{0} JSON parsing error: '{1}'\",\r\n W1023: \"Appointments require unique keys. Otherwise, the agenda view may not work correctly.\",\r\n W1024: \"The client-side export is enabled. Implement the 'onExporting' function.\",\r\n W1025: \"'scrolling.mode' is set to 'virtual' or 'infinite'. Specify the height of the component.\"\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/utils/update_views_borders.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport {\r\n isDefined\r\n} from \"../../../../../core/utils/type\";\r\nvar CLASSES = {\r\n borderedTop: \"dx-bordered-top-view\",\r\n borderedBottom: \"dx-bordered-bottom-view\"\r\n};\r\nvar getFirstVisibleViewElement = _ref => {\r\n var {\r\n columnHeadersView: columnHeadersView,\r\n rowsView: rowsView\r\n } = _ref;\r\n if (null === columnHeadersView || void 0 === columnHeadersView ? void 0 : columnHeadersView.isVisible()) {\r\n return columnHeadersView.element()\r\n }\r\n return rowsView.element()\r\n};\r\nvar getLastVisibleViewElement = _ref2 => {\r\n var {\r\n filterPanelView: filterPanelView,\r\n footerView: footerView,\r\n rowsView: rowsView\r\n } = _ref2;\r\n if (null === filterPanelView || void 0 === filterPanelView ? void 0 : filterPanelView.isVisible()) {\r\n return filterPanelView.element()\r\n }\r\n if (null === footerView || void 0 === footerView ? void 0 : footerView.isVisible()) {\r\n return footerView.element()\r\n }\r\n return rowsView.element()\r\n};\r\nvar getViewElementWithClass = (viewsWithBorder, className) => {\r\n var _a;\r\n var borderedView = Object.values(viewsWithBorder).find(view => {\r\n var _a;\r\n return null === (_a = null === view || void 0 === view ? void 0 : view.element()) || void 0 === _a ? void 0 : _a.hasClass(className)\r\n });\r\n return null !== (_a = null === borderedView || void 0 === borderedView ? void 0 : borderedView.element()) && void 0 !== _a ? _a : null\r\n};\r\nvar shouldUpdateBorders = (viewName, viewsWithBorder) => {\r\n var _a;\r\n if (!Object.keys(viewsWithBorder).includes(viewName)) {\r\n return false\r\n }\r\n var {\r\n rowsView: rowsView\r\n } = viewsWithBorder, otherViews = __rest(viewsWithBorder, [\"rowsView\"]);\r\n if (!isDefined(null === (_a = null === rowsView || void 0 === rowsView ? void 0 : rowsView.element) || void 0 === _a ? void 0 : _a.call(rowsView))) {\r\n return false\r\n }\r\n return Object.values(otherViews).filter(view => {\r\n var _a;\r\n return null === (_a = null === view || void 0 === view ? void 0 : view.isVisible) || void 0 === _a ? void 0 : _a.call(view)\r\n }).every(view => isDefined(null === view || void 0 === view ? void 0 : view.element()))\r\n};\r\nexport var updateViewsBorders = (viewName, viewsWithBorder) => {\r\n if (!shouldUpdateBorders(viewName, viewsWithBorder)) {\r\n return\r\n }\r\n var $oldFirst = getViewElementWithClass(viewsWithBorder, CLASSES.borderedTop);\r\n var $oldLast = getViewElementWithClass(viewsWithBorder, CLASSES.borderedBottom);\r\n var $newFirst = getFirstVisibleViewElement(viewsWithBorder);\r\n var $newLast = getLastVisibleViewElement(viewsWithBorder);\r\n if ($oldFirst && !$oldFirst.is($newFirst)) {\r\n $oldFirst.removeClass(CLASSES.borderedTop)\r\n }\r\n if ($oldLast && !$oldLast.is($newLast)) {\r\n $oldLast.removeClass(CLASSES.borderedBottom)\r\n }\r\n if (!$newFirst.hasClass(CLASSES.borderedTop)) {\r\n $newFirst.addClass(CLASSES.borderedTop)\r\n }\r\n if (!$newLast.hasClass(CLASSES.borderedBottom)) {\r\n $newLast.addClass(CLASSES.borderedBottom)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_modules.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n grep\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n updateViewsBorders\r\n} from \"./views/utils/update_views_borders\";\r\nvar WIDGET_WITH_LEGACY_CONTAINER_NAME = \"dxDataGrid\";\r\nexport class ModuleItem {\r\n constructor(component) {\r\n var that = this;\r\n that._updateLockCount = 0;\r\n that.component = component;\r\n that._actions = {};\r\n that._actionConfigs = {};\r\n each(this.callbackNames() || [], (function(index, name) {\r\n var flags = that.callbackFlags(name) || {};\r\n flags.unique = true;\r\n flags.syncStrategy = true;\r\n that[this] = Callbacks(flags)\r\n }))\r\n }\r\n _endUpdateCore() {}\r\n init() {}\r\n callbackNames() {\r\n return\r\n }\r\n callbackFlags(name) {}\r\n publicMethods() {\r\n return []\r\n }\r\n beginUpdate() {\r\n this._updateLockCount++\r\n }\r\n endUpdate() {\r\n if (this._updateLockCount > 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n }\r\n option(name) {\r\n var {\r\n component: component\r\n } = this;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n }\r\n _silentOption(name, value) {\r\n var {\r\n component: component\r\n } = this;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n }\r\n localize(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n }\r\n on(event, callback) {\r\n return this.component.on.apply(this.component, arguments)\r\n }\r\n off() {\r\n return this.component.off.apply(this.component, arguments)\r\n }\r\n optionChanged(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n }\r\n getAction(actionName) {\r\n return this._actions[actionName]\r\n }\r\n setAria(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n }\r\n _createComponent($container, component, options) {\r\n return this.component._createComponent($container, component, options)\r\n }\r\n getController(name) {\r\n return this.component._controllers[name]\r\n }\r\n createAction(actionName, config) {\r\n if (isFunction(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n }\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config;\r\n return\r\n }\r\n executeAction(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n }\r\n dispose() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n }\r\n addWidgetPrefix(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\".concat(componentName.slice(2).toLowerCase()).concat(className ? \"-\".concat(className) : \"\")\r\n }\r\n getWidgetContainerClass() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n }\r\n elementIsInsideGrid($element) {\r\n var $gridElement = $element.closest(\".\".concat(this.getWidgetContainerClass())).parent();\r\n return $gridElement.is(this.component.$element())\r\n }\r\n}\r\nexport class Controller extends ModuleItem {}\r\nexport class ViewController extends Controller {\r\n getView(name) {\r\n return this.component._views[name]\r\n }\r\n getViews() {\r\n return this.component._views\r\n }\r\n}\r\nexport class View extends ModuleItem {\r\n constructor(component) {\r\n super(component);\r\n this.renderCompleted = Callbacks();\r\n this.resizeCompleted = Callbacks()\r\n }\r\n _isReady() {\r\n return this.component.isReady()\r\n }\r\n _endUpdateCore() {\r\n super._endUpdateCore();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n }\r\n _invalidate(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = hasWindow() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n }\r\n _renderCore(options) {}\r\n _resizeCore() {}\r\n _parentElement() {\r\n return this._$parent\r\n }\r\n element() {\r\n return this._$element\r\n }\r\n getElementHeight() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var {\r\n offsetHeight: offsetHeight\r\n } = $element.get(0);\r\n return offsetHeight + marginTop + marginBottom\r\n }\r\n isVisible() {\r\n return true\r\n }\r\n getTemplate(name) {\r\n return this.component._getTemplate(name)\r\n }\r\n getView(name) {\r\n return this.component._views[name]\r\n }\r\n _getBorderedViews() {\r\n return {\r\n columnHeadersView: this.component._views.columnHeadersView,\r\n rowsView: this.component._views.rowsView,\r\n filterPanelView: this.component._views.filterPanelView,\r\n footerView: this.component._views.footerView\r\n }\r\n }\r\n render($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = $(\"
\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (this.component._views) {\r\n updateViewsBorders(this.name, this._getBorderedViews())\r\n }\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n var deferred = this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n if (deferred) {\r\n deferred.done(() => {\r\n this.renderCompleted.fire(options)\r\n })\r\n } else {\r\n this.renderCompleted.fire(options)\r\n }\r\n }\r\n }\r\n resize() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n }\r\n focus(preventScroll) {\r\n this.element().get(0).focus({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n}\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\n\r\nfunction getExtendedTypes(types) {\r\n var moduleExtenders = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var extendTypes = {};\r\n Object.entries(moduleExtenders).forEach(_ref => {\r\n var [name, extender] = _ref;\r\n var currentType = types[name];\r\n if (currentType) {\r\n if (isFunction(extender)) {\r\n extendTypes[name] = extender(currentType)\r\n } else {\r\n var classType = currentType;\r\n extendTypes[name] = classType.inherit(extender)\r\n }\r\n }\r\n });\r\n return extendTypes\r\n}\r\n\r\nfunction registerPublicMethods(componentInstance, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n each(publicMethods, (_, methodName) => {\r\n if (moduleItem[methodName]) {\r\n if (!componentInstance[methodName]) {\r\n componentInstance[methodName] = function() {\r\n return moduleItem[methodName](...arguments)\r\n }\r\n } else {\r\n throw errors.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw errors.Error(\"E1006\", name, methodName)\r\n }\r\n })\r\n }\r\n}\r\nexport function processModules(componentInstance, componentClass) {\r\n var {\r\n modules: modules\r\n } = componentClass;\r\n var {\r\n modulesOrder: modulesOrder\r\n } = componentClass;\r\n\r\n function createModuleItems(moduleTypes) {\r\n var moduleItems = {};\r\n each(moduleTypes, (name, moduleType) => {\r\n var moduleItem = new moduleType(componentInstance);\r\n moduleItem.name = name;\r\n registerPublicMethods(componentInstance, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n });\r\n return moduleItems\r\n }\r\n if (modulesOrder) {\r\n modules.sort((module1, module2) => {\r\n var orderIndex1 = modulesOrder.indexOf(module1.name);\r\n var orderIndex2 = modulesOrder.indexOf(module2.name);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n })\r\n }\r\n var rootControllerTypes = {};\r\n var rootViewTypes = {};\r\n modules.forEach(_ref2 => {\r\n var {\r\n name: moduleName,\r\n controllers: controllers = {},\r\n views: views = {}\r\n } = _ref2;\r\n Object.entries(controllers).forEach(_ref3 => {\r\n var [name, type] = _ref3;\r\n if (rootControllerTypes[name]) {\r\n throw errors.Error(\"E1001\", moduleName, name)\r\n } else if (!((null === type || void 0 === type ? void 0 : type.prototype) instanceof Controller)) {\r\n throw errors.Error(\"E1002\", moduleName, name)\r\n }\r\n rootControllerTypes[name] = type\r\n });\r\n Object.entries(views).forEach(_ref4 => {\r\n var [name, type] = _ref4;\r\n if (rootViewTypes[name]) {\r\n throw errors.Error(\"E1003\", moduleName, name)\r\n } else if (!((null === type || void 0 === type ? void 0 : type.prototype) instanceof View)) {\r\n throw errors.Error(\"E1004\", moduleName, name)\r\n }\r\n rootViewTypes[name] = type\r\n })\r\n });\r\n var moduleExtenders = modules.filter(_ref5 => {\r\n var {\r\n extenders: extenders\r\n } = _ref5;\r\n return !!extenders\r\n });\r\n var controllerTypes = moduleExtenders.reduce((types, _ref6) => {\r\n var {\r\n extenders: extenders\r\n } = _ref6;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.controllers))\r\n }, rootControllerTypes);\r\n var viewTypes = moduleExtenders.reduce((types, _ref7) => {\r\n var {\r\n extenders: extenders\r\n } = _ref7;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.views))\r\n }, rootViewTypes);\r\n componentInstance._controllers = createModuleItems(controllerTypes);\r\n componentInstance._views = createModuleItems(viewTypes)\r\n}\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n each(that._controllers, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n if (that._views) {\r\n each(that._views, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n};\r\nexport default {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule(name, module) {\r\n var {\r\n modules: modules\r\n } = this;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module)\r\n },\r\n registerModulesOrder(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule(name) {\r\n this.modules = grep(this.modules, module => module.name !== name)\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\n","/**\r\n * DevExtreme (esm/data/utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nvar ready = readyCallbacks.add;\r\nexport var XHR_ERROR_UNLOAD = \"DEVEXTREME_XHR_ERROR_UNLOAD\";\r\nexport var normalizeBinaryCriterion = function(crit) {\r\n return [crit[0], crit.length < 3 ? \"=\" : String(crit[1]).toLowerCase(), crit.length < 2 ? true : crit[crit.length - 1]]\r\n};\r\nexport var normalizeSortingInfo = function(info) {\r\n if (!Array.isArray(info)) {\r\n info = [info]\r\n }\r\n return map(info, (function(i) {\r\n var result = {\r\n selector: isFunction(i) || \"string\" === typeof i ? i : i.getter || i.field || i.selector,\r\n desc: !!(i.desc || \"d\" === String(i.dir).charAt(0).toLowerCase())\r\n };\r\n if (i.compare) {\r\n result.compare = i.compare\r\n }\r\n return result\r\n }))\r\n};\r\nexport var errorMessageFromXhr = function() {\r\n var textStatusMessages = {\r\n timeout: \"Network connection timeout\",\r\n error: \"Unspecified network error\",\r\n parsererror: \"Unexpected server response\"\r\n };\r\n var unloading;\r\n ready((function() {\r\n var window = getWindow();\r\n domAdapter.listen(window, \"beforeunload\", (function() {\r\n unloading = true\r\n }))\r\n }));\r\n return function(xhr, textStatus) {\r\n if (unloading) {\r\n return XHR_ERROR_UNLOAD\r\n }\r\n if (xhr.status < 400) {\r\n return function(textStatus) {\r\n var result = textStatusMessages[textStatus];\r\n if (!result) {\r\n return textStatus\r\n }\r\n return result\r\n }(textStatus)\r\n }\r\n return xhr.statusText\r\n }\r\n}();\r\nexport var aggregators = {\r\n count: {\r\n seed: 0,\r\n step: function(count) {\r\n return 1 + count\r\n }\r\n },\r\n sum: {\r\n seed: 0,\r\n step: function(sum, item) {\r\n return sum + item\r\n }\r\n },\r\n min: {\r\n step: function(min, item) {\r\n return item < min ? item : min\r\n }\r\n },\r\n max: {\r\n step: function(max, item) {\r\n return item > max ? item : max\r\n }\r\n },\r\n avg: {\r\n seed: [0, 0],\r\n step: function(pair, value) {\r\n return [pair[0] + value, pair[1] + 1]\r\n },\r\n finalize: function(pair) {\r\n return pair[1] ? pair[0] / pair[1] : NaN\r\n }\r\n }\r\n};\r\nexport var processRequestResultLock = function() {\r\n var lockCount = 0;\r\n var lockDeferred;\r\n return {\r\n obtain: function() {\r\n if (0 === lockCount) {\r\n lockDeferred = new Deferred\r\n }\r\n lockCount++\r\n },\r\n release: function() {\r\n lockCount--;\r\n if (lockCount < 1) {\r\n lockDeferred.resolve()\r\n }\r\n },\r\n promise: function() {\r\n var deferred = 0 === lockCount ? (new Deferred).resolve() : lockDeferred;\r\n return deferred.promise()\r\n },\r\n reset: function() {\r\n lockCount = 0;\r\n if (lockDeferred) {\r\n lockDeferred.resolve()\r\n }\r\n }\r\n }\r\n}();\r\nexport function isDisjunctiveOperator(condition) {\r\n return /^(or|\\|\\||\\|)$/i.test(condition)\r\n}\r\nexport function isConjunctiveOperator(condition) {\r\n return /^(and|&&|&)$/i.test(condition)\r\n}\r\nexport var keysEqual = function(keyExpr, key1, key2) {\r\n if (Array.isArray(keyExpr)) {\r\n var names = map(key1, (function(v, k) {\r\n return k\r\n }));\r\n var name;\r\n for (var i = 0; i < names.length; i++) {\r\n name = names[i];\r\n if (!equalByValue(key1[name], key2[name], {\r\n strict: false\r\n })) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return equalByValue(key1, key2, {\r\n strict: false\r\n })\r\n};\r\nvar BASE64_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nexport var base64_encode = function(input) {\r\n if (!Array.isArray(input)) {\r\n input = stringToByteArray(String(input))\r\n }\r\n var result = \"\";\r\n\r\n function getBase64Char(index) {\r\n return BASE64_CHARS.charAt(index)\r\n }\r\n for (var i = 0; i < input.length; i += 3) {\r\n var octet1 = input[i];\r\n var octet2 = input[i + 1];\r\n var octet3 = input[i + 2];\r\n result += map([octet1 >> 2, (3 & octet1) << 4 | octet2 >> 4, isNaN(octet2) ? 64 : (15 & octet2) << 2 | octet3 >> 6, isNaN(octet3) ? 64 : 63 & octet3], getBase64Char).join(\"\")\r\n }\r\n return result\r\n};\r\n\r\nfunction stringToByteArray(str) {\r\n var bytes = [];\r\n var code;\r\n var i;\r\n for (i = 0; i < str.length; i++) {\r\n code = str.charCodeAt(i);\r\n if (code < 128) {\r\n bytes.push(code)\r\n } else if (code < 2048) {\r\n bytes.push(192 + (code >> 6), 128 + (63 & code))\r\n } else if (code < 65536) {\r\n bytes.push(224 + (code >> 12), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n } else if (code < 2097152) {\r\n bytes.push(240 + (code >> 18), 128 + (code >> 12 & 63), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n }\r\n }\r\n return bytes\r\n}\r\nexport var isUnaryOperation = function(crit) {\r\n return \"!\" === crit[0] && Array.isArray(crit[1])\r\n};\r\nvar isGroupOperator = function(value) {\r\n return \"and\" === value || \"or\" === value\r\n};\r\nexport var isUniformEqualsByOr = function(crit) {\r\n if (crit.length > 2 && Array.isArray(crit[0]) && \"or\" === crit[1] && \"string\" === typeof crit[0][0] && \"=\" === crit[0][1]) {\r\n var [prop] = crit[0];\r\n return !crit.find((el, i) => i % 2 !== 0 ? \"or\" !== el : !Array.isArray(el) || 3 !== el.length || el[0] !== prop || \"=\" !== el[1])\r\n }\r\n return false\r\n};\r\nexport var isGroupCriterion = function(crit) {\r\n var first = crit[0];\r\n var second = crit[1];\r\n if (Array.isArray(first)) {\r\n return true\r\n }\r\n if (isFunction(first)) {\r\n if (Array.isArray(second) || isFunction(second) || isGroupOperator(second)) {\r\n return true\r\n }\r\n }\r\n return false\r\n};\r\nexport var trivialPromise = function() {\r\n var d = new Deferred;\r\n return d.resolve.apply(d, arguments).promise()\r\n};\r\nexport var rejectedPromise = function() {\r\n var d = new Deferred;\r\n return d.reject.apply(d, arguments).promise()\r\n};\r\n\r\nfunction throttle(func, timeout) {\r\n var timeoutId;\r\n return function() {\r\n if (!timeoutId) {\r\n timeoutId = setTimeout(() => {\r\n timeoutId = void 0;\r\n func.call(this)\r\n }, isFunction(timeout) ? timeout() : timeout)\r\n }\r\n return timeoutId\r\n }\r\n}\r\nexport function throttleChanges(func, timeout) {\r\n var cache = [];\r\n var throttled = throttle((function() {\r\n func.call(this, cache);\r\n cache = []\r\n }), timeout);\r\n return function(changes) {\r\n if (Array.isArray(changes)) {\r\n cache.push(...changes)\r\n }\r\n return throttled.call(this, cache)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/errors.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../core/utils/error\";\r\nimport coreErrors from \"../core/errors\";\r\nexport var errors = errorUtils(coreErrors.ERROR_MESSAGES, {\r\n E4000: \"[DevExpress.data]: {0}\",\r\n E4001: \"Unknown aggregating function is detected: '{0}'\",\r\n E4002: \"Unsupported OData protocol version is used\",\r\n E4003: \"Unknown filter operation is used: {0}\",\r\n E4004: \"The thenby() method is called before the sortby() method\",\r\n E4005: \"Store requires a key expression for this operation\",\r\n E4006: \"ArrayStore 'data' option must be an array\",\r\n E4007: \"Compound keys cannot be auto-generated\",\r\n E4008: \"Attempt to insert an item with a duplicated key\",\r\n E4009: \"Data item cannot be found\",\r\n E4010: \"CustomStore does not support creating queries\",\r\n E4011: \"Custom Store method is not implemented or is not a function: {0}\",\r\n E4012: \"Custom Store method returns an invalid value: {0}\",\r\n E4013: \"Local Store requires the 'name' configuration option is specified\",\r\n E4014: \"Unknown data type is specified for ODataStore: {0}\",\r\n E4015: \"Unknown entity name or alias is used: {0}\",\r\n E4016: \"The compileSetter(expr) method is called with 'self' passed as a parameter\",\r\n E4017: \"Keys cannot be modified\",\r\n E4018: \"The server has returned a non-numeric value in a response to an item count request\",\r\n E4019: \"Mixing of group operators inside a single group of filter expression is not allowed\",\r\n E4020: \"Unknown store type is detected: {0}\",\r\n E4021: \"The server response does not provide the totalCount value\",\r\n E4022: \"The server response does not provide the groupCount value\",\r\n E4023: \"Could not parse the following XML: {0}\",\r\n E4024: \"String function {0} cannot be used with the data field {1} of type {2}.\",\r\n W4000: \"Data returned from the server has an incorrect structure\",\r\n W4001: 'The {0} field is listed in both \"keyType\" and \"fieldTypes\". The value of \"fieldTypes\" is used.',\r\n W4002: \"Data loading has failed for some cells due to the following error: {0}\"\r\n});\r\nexport var errorHandler = null;\r\nexport var handleError = function(error) {\r\n var _errorHandler;\r\n null === (_errorHandler = errorHandler) || void 0 === _errorHandler ? void 0 : _errorHandler(error)\r\n};\r\nexport var setErrorHandler = handler => errorHandler = handler;\r\n","/**\r\n * DevExtreme (esm/data/array_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../core/utils/object\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n keysEqual,\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\n\r\nfunction hasKey(target, keyOrKeys) {\r\n var key;\r\n var keys = \"string\" === typeof keyOrKeys ? keyOrKeys.split() : keyOrKeys.slice();\r\n while (keys.length) {\r\n key = keys.shift();\r\n if (key in target) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction findItems(keyInfo, items, key, groupCount) {\r\n var childItems;\r\n var result;\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n childItems = items[i].items || items[i].collapsedItems || [];\r\n result = findItems(keyInfo, childItems || [], key, groupCount - 1);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n } else if (indexByKey(keyInfo, items, key) >= 0) {\r\n return items\r\n }\r\n}\r\n\r\nfunction getItems(keyInfo, items, key, groupCount) {\r\n if (groupCount) {\r\n return findItems(keyInfo, items, key, groupCount) || []\r\n }\r\n return items\r\n}\r\n\r\nfunction generateDataByKeyMap(keyInfo, array) {\r\n if (keyInfo.key() && (!array._dataByKeyMap || array._dataByKeyMapLength !== array.length)) {\r\n var dataByKeyMap = {};\r\n var arrayLength = array.length;\r\n for (var i = 0; i < arrayLength; i++) {\r\n dataByKeyMap[JSON.stringify(keyInfo.keyOf(array[i]))] = array[i]\r\n }\r\n array._dataByKeyMap = dataByKeyMap;\r\n array._dataByKeyMapLength = arrayLength\r\n }\r\n}\r\n\r\nfunction getCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n}\r\n\r\nfunction getHasKeyCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n return true\r\n}\r\n\r\nfunction setDataByKeyMapValue(array, key, data) {\r\n if (array._dataByKeyMap) {\r\n array._dataByKeyMap[JSON.stringify(key)] = data;\r\n array._dataByKeyMapLength += data ? 1 : -1\r\n }\r\n}\r\n\r\nfunction cloneInstanceWithChangedPaths(instance, changes, clonedInstances) {\r\n clonedInstances = clonedInstances || new WeakMap;\r\n var result = instance ? Object.create(Object.getPrototypeOf(instance)) : {};\r\n if (instance) {\r\n clonedInstances.set(instance, result)\r\n }\r\n var instanceWithoutPrototype = _extends({}, instance);\r\n deepExtendArraySafe(result, instanceWithoutPrototype, true, true);\r\n for (var name in instanceWithoutPrototype) {\r\n var value = instanceWithoutPrototype[name];\r\n var change = null === changes || void 0 === changes ? void 0 : changes[name];\r\n if (isObject(value) && !isPlainObject(value) && isObject(change) && !clonedInstances.has(value)) {\r\n result[name] = cloneInstanceWithChangedPaths(value, change, clonedInstances)\r\n }\r\n }\r\n for (var _name in result) {\r\n var prop = result[_name];\r\n if (isObject(prop) && clonedInstances.has(prop)) {\r\n result[_name] = clonedInstances.get(prop)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction createObjectWithChanges(target, changes) {\r\n var result = cloneInstanceWithChangedPaths(target, changes);\r\n return deepExtendArraySafe(result, changes, true, true)\r\n}\r\n\r\nfunction applyBatch(_ref) {\r\n var {\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: useInsertIndex,\r\n immutable: immutable,\r\n disableCache: disableCache,\r\n logError: logError,\r\n skipCopying: skipCopying\r\n } = _ref;\r\n var resultItems = true === immutable ? [...data] : data;\r\n changes.forEach(item => {\r\n var items = \"insert\" === item.type ? resultItems : getItems(keyInfo, resultItems, item.key, groupCount);\r\n !disableCache && generateDataByKeyMap(keyInfo, items);\r\n switch (item.type) {\r\n case \"update\":\r\n update(keyInfo, items, item.key, item.data, true, immutable, logError);\r\n break;\r\n case \"insert\":\r\n insert(keyInfo, items, item.data, useInsertIndex && isDefined(item.index) ? item.index : -1, true, logError, skipCopying);\r\n break;\r\n case \"remove\":\r\n remove(keyInfo, items, item.key, true, logError)\r\n }\r\n });\r\n return resultItems\r\n}\r\n\r\nfunction getErrorResult(isBatch, logError, errorCode) {\r\n return !isBatch ? rejectedPromise(errors.Error(errorCode)) : logError && errors.log(errorCode)\r\n}\r\n\r\nfunction applyChanges(data, changes) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var {\r\n keyExpr: keyExpr = \"id\",\r\n immutable: immutable = true\r\n } = options;\r\n var keyGetter = compileGetter(keyExpr);\r\n var keyInfo = {\r\n key: () => keyExpr,\r\n keyOf: obj => keyGetter(obj)\r\n };\r\n return applyBatch({\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n immutable: immutable,\r\n disableCache: true,\r\n logError: true\r\n })\r\n}\r\n\r\nfunction update(keyInfo, array, key, data, isBatch, immutable, logError) {\r\n var target;\r\n var keyExpr = keyInfo.key();\r\n if (keyExpr) {\r\n if (hasKey(data, keyExpr) && !keysEqual(keyExpr, key, keyInfo.keyOf(data))) {\r\n return getErrorResult(isBatch, logError, \"E4017\")\r\n }\r\n target = getCacheValue(array, key);\r\n if (!target) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n target = array[index];\r\n if (true === immutable && isDefined(target)) {\r\n var newTarget = createObjectWithChanges(target, data);\r\n array[index] = newTarget;\r\n return !isBatch && trivialPromise(newTarget, key)\r\n }\r\n }\r\n } else {\r\n target = key\r\n }\r\n deepExtendArraySafe(target, data, true);\r\n if (!isBatch) {\r\n if (config().useLegacyStoreResult) {\r\n return trivialPromise(key, data)\r\n } else {\r\n return trivialPromise(target, key)\r\n }\r\n }\r\n}\r\n\r\nfunction insert(keyInfo, array, data, index, isBatch, logError, skipCopying) {\r\n var keyValue;\r\n var keyExpr = keyInfo.key();\r\n var obj = isPlainObject(data) && !skipCopying ? extend({}, data) : data;\r\n if (keyExpr) {\r\n keyValue = keyInfo.keyOf(obj);\r\n if (void 0 === keyValue || \"object\" === typeof keyValue && isEmptyObject(keyValue)) {\r\n if (Array.isArray(keyExpr)) {\r\n throw errors.Error(\"E4007\")\r\n }\r\n keyValue = obj[keyExpr] = String(new Guid)\r\n } else if (void 0 !== array[indexByKey(keyInfo, array, keyValue)]) {\r\n return getErrorResult(isBatch, logError, \"E4008\")\r\n }\r\n } else {\r\n keyValue = obj\r\n }\r\n if (index >= 0) {\r\n array.splice(index, 0, obj)\r\n } else {\r\n array.push(obj)\r\n }\r\n setDataByKeyMapValue(array, keyValue, obj);\r\n if (!isBatch) {\r\n return trivialPromise(config().useLegacyStoreResult ? data : obj, keyValue)\r\n }\r\n}\r\n\r\nfunction remove(keyInfo, array, key, isBatch, logError) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n setDataByKeyMapValue(array, key, null)\r\n }\r\n if (!isBatch) {\r\n return trivialPromise(key)\r\n } else if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n}\r\n\r\nfunction indexByKey(keyInfo, array, key) {\r\n var keyExpr = keyInfo.key();\r\n if (!getHasKeyCacheValue(array, key)) {\r\n return -1\r\n }\r\n for (var i = 0, arrayLength = array.length; i < arrayLength; i++) {\r\n if (keysEqual(keyExpr, keyInfo.keyOf(array[i]), key)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n}\r\nexport {\r\n applyBatch,\r\n createObjectWithChanges,\r\n update,\r\n insert,\r\n remove,\r\n indexByKey,\r\n applyChanges\r\n};\r\n","/**\r\n * DevExtreme (esm/data/array_query.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n isFunction,\r\n isDefined,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n errors,\r\n handleError as handleDataError\r\n} from \"./errors\";\r\nimport {\r\n aggregators,\r\n isGroupCriterion,\r\n isUnaryOperation,\r\n normalizeBinaryCriterion,\r\n isUniformEqualsByOr,\r\n isConjunctiveOperator as isConjunctiveOperatorChecker\r\n} from \"./utils\";\r\nvar Iterator = Class.inherit({\r\n toArray: function() {\r\n var result = [];\r\n this.reset();\r\n while (this.next()) {\r\n result.push(this.current())\r\n }\r\n return result\r\n },\r\n countable: function() {\r\n return false\r\n }\r\n});\r\nvar ArrayIterator = Iterator.inherit({\r\n ctor: function(array) {\r\n this.array = array;\r\n this.index = -1\r\n },\r\n next: function() {\r\n if (this.index + 1 < this.array.length) {\r\n this.index++;\r\n return true\r\n }\r\n return false\r\n },\r\n current: function() {\r\n return this.array[this.index]\r\n },\r\n reset: function() {\r\n this.index = -1\r\n },\r\n toArray: function() {\r\n return this.array.slice(0)\r\n },\r\n countable: function() {\r\n return true\r\n },\r\n count: function() {\r\n return this.array.length\r\n }\r\n});\r\nvar WrappedIterator = Iterator.inherit({\r\n ctor: function(iter) {\r\n this.iter = iter\r\n },\r\n next: function() {\r\n return this.iter.next()\r\n },\r\n current: function() {\r\n return this.iter.current()\r\n },\r\n reset: function() {\r\n return this.iter.reset()\r\n }\r\n});\r\nvar MapIterator = WrappedIterator.inherit({\r\n ctor: function(iter, mapper) {\r\n this.callBase(iter);\r\n this.index = -1;\r\n this.mapper = mapper\r\n },\r\n current: function() {\r\n return this.mapper(this.callBase(), this.index)\r\n },\r\n next: function() {\r\n var hasNext = this.callBase();\r\n if (hasNext) {\r\n this.index++\r\n }\r\n return hasNext\r\n }\r\n});\r\nvar defaultCompare = function(xValue, yValue, options) {\r\n if (isString(xValue) && isString(yValue) && (null !== options && void 0 !== options && options.locale || null !== options && void 0 !== options && options.collatorOptions)) {\r\n return new Intl.Collator((null === options || void 0 === options ? void 0 : options.locale) || void 0, (null === options || void 0 === options ? void 0 : options.collatorOptions) || void 0).compare(xValue, yValue)\r\n }\r\n xValue = toComparable(xValue, false, options);\r\n yValue = toComparable(yValue, false, options);\r\n if (null === xValue && null !== yValue) {\r\n return -1\r\n }\r\n if (null !== xValue && null === yValue) {\r\n return 1\r\n }\r\n if (void 0 === xValue && void 0 !== yValue) {\r\n return 1\r\n }\r\n if (void 0 !== xValue && void 0 === yValue) {\r\n return -1\r\n }\r\n if (xValue < yValue) {\r\n return -1\r\n }\r\n if (xValue > yValue) {\r\n return 1\r\n }\r\n return 0\r\n};\r\nvar SortIterator = Iterator.inherit({\r\n ctor: function(iter, getter, desc, compare) {\r\n this.langParams = iter.langParams;\r\n if (!(iter instanceof MapIterator)) {\r\n iter = new MapIterator(iter, this._wrap);\r\n iter.langParams = this.langParams\r\n }\r\n this.iter = iter;\r\n this.rules = [{\r\n getter: getter,\r\n desc: desc,\r\n compare: compare,\r\n langParams: this.langParams\r\n }]\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n var result = new SortIterator(this.sortedIter || this.iter, getter, desc, compare);\r\n if (!this.sortedIter) {\r\n result.rules = this.rules.concat(result.rules)\r\n }\r\n return result\r\n },\r\n next: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.next()\r\n },\r\n current: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.current()\r\n },\r\n reset: function() {\r\n delete this.sortedIter\r\n },\r\n countable: function() {\r\n return this.sortedIter || this.iter.countable()\r\n },\r\n count: function() {\r\n if (this.sortedIter) {\r\n return this.sortedIter.count()\r\n }\r\n return this.iter.count()\r\n },\r\n _ensureSorted: function() {\r\n var that = this;\r\n if (that.sortedIter) {\r\n return\r\n }\r\n each(that.rules, (function() {\r\n this.getter = compileGetter(this.getter)\r\n }));\r\n that.sortedIter = new MapIterator(new ArrayIterator(this.iter.toArray().sort((function(x, y) {\r\n return that._compare(x, y)\r\n }))), that._unwrap)\r\n },\r\n _wrap: function(record, index) {\r\n return {\r\n index: index,\r\n value: record\r\n }\r\n },\r\n _unwrap: function(wrappedItem) {\r\n return wrappedItem.value\r\n },\r\n _getDefaultCompare: langParams => (xValue, yValue) => defaultCompare(xValue, yValue, langParams),\r\n _compare: function(x, y) {\r\n var xIndex = x.index;\r\n var yIndex = y.index;\r\n x = x.value;\r\n y = y.value;\r\n if (x === y) {\r\n return xIndex - yIndex\r\n }\r\n for (var i = 0, rulesCount = this.rules.length; i < rulesCount; i++) {\r\n var rule = this.rules[i];\r\n var xValue = rule.getter(x);\r\n var yValue = rule.getter(y);\r\n var compare = rule.compare || this._getDefaultCompare(rule.langParams);\r\n var compareResult = compare(xValue, yValue);\r\n if (compareResult) {\r\n return rule.desc ? -compareResult : compareResult\r\n }\r\n }\r\n return xIndex - yIndex\r\n }\r\n});\r\nvar compileCriteria = function() {\r\n var langParams = {};\r\n var _toComparable = value => toComparable(value, false, langParams);\r\n var compileGroup = function(crit) {\r\n if (isUniformEqualsByOr(crit)) {\r\n return (crit => {\r\n var getter = compileGetter(crit[0][0]);\r\n var filterValues = crit.reduce((acc, item, i) => {\r\n if (i % 2 === 0) {\r\n acc.push(_toComparable(item[2]))\r\n }\r\n return acc\r\n }, []);\r\n return obj => {\r\n var value = _toComparable(getter(obj));\r\n return filterValues.some(filterValue => useStrictComparison(filterValue) ? value === filterValue : value == filterValue)\r\n }\r\n })(crit)\r\n }\r\n var ops = [];\r\n var isConjunctiveOperator = false;\r\n var isConjunctiveNextOperator = false;\r\n each(crit, (function() {\r\n if (Array.isArray(this) || isFunction(this)) {\r\n if (ops.length > 1 && isConjunctiveOperator !== isConjunctiveNextOperator) {\r\n throw new errors.Error(\"E4019\")\r\n }\r\n ops.push(compileCriteria(this, langParams));\r\n isConjunctiveOperator = isConjunctiveNextOperator;\r\n isConjunctiveNextOperator = true\r\n } else {\r\n isConjunctiveNextOperator = isConjunctiveOperatorChecker(this)\r\n }\r\n }));\r\n return function(d) {\r\n var result = isConjunctiveOperator;\r\n for (var i = 0; i < ops.length; i++) {\r\n if (ops[i](d) !== isConjunctiveOperator) {\r\n result = !isConjunctiveOperator;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n };\r\n var toString = function(value) {\r\n var _langParams;\r\n return isDefined(value) ? null !== (_langParams = langParams) && void 0 !== _langParams && _langParams.locale ? value.toLocaleString(langParams.locale) : value.toString() : \"\"\r\n };\r\n\r\n function compileEquals(getter, value, negate) {\r\n return function(obj) {\r\n obj = _toComparable(getter(obj));\r\n var result = useStrictComparison(value) ? obj === value : obj == value;\r\n if (negate) {\r\n result = !result\r\n }\r\n return result\r\n }\r\n }\r\n\r\n function useStrictComparison(value) {\r\n return \"\" === value || 0 === value || false === value\r\n }\r\n return function(crit, options) {\r\n langParams = options || {};\r\n if (isFunction(crit)) {\r\n return crit\r\n }\r\n if (isGroupCriterion(crit)) {\r\n return compileGroup(crit)\r\n }\r\n if (isUnaryOperation(crit)) {\r\n return function(crit) {\r\n var op = crit[0];\r\n var criteria = compileCriteria(crit[1], langParams);\r\n if (\"!\" === op) {\r\n return function(obj) {\r\n return !criteria(obj)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n return function(crit) {\r\n crit = normalizeBinaryCriterion(crit);\r\n var getter = compileGetter(crit[0]);\r\n var op = crit[1];\r\n var value = crit[2];\r\n value = _toComparable(value);\r\n var compare = (obj, operatorFn) => {\r\n obj = _toComparable(getter(obj));\r\n return (null == value || null == obj) && value !== obj ? false : operatorFn(obj, value)\r\n };\r\n switch (op.toLowerCase()) {\r\n case \"=\":\r\n return compileEquals(getter, value);\r\n case \"<>\":\r\n return compileEquals(getter, value, true);\r\n case \">\":\r\n return obj => compare(obj, (a, b) => a > b);\r\n case \"<\":\r\n return obj => compare(obj, (a, b) => a < b);\r\n case \">=\":\r\n return obj => compare(obj, (a, b) => a >= b);\r\n case \"<=\":\r\n return obj => compare(obj, (a, b) => a <= b);\r\n case \"startswith\":\r\n return function(obj) {\r\n return 0 === _toComparable(toString(getter(obj))).indexOf(value)\r\n };\r\n case \"endswith\":\r\n return function(obj) {\r\n var getterValue = _toComparable(toString(getter(obj)));\r\n var searchValue = toString(value);\r\n if (getterValue.length < searchValue.length) {\r\n return false\r\n }\r\n var index = getterValue.lastIndexOf(value);\r\n return -1 !== index && index === getterValue.length - value.length\r\n };\r\n case \"contains\":\r\n return function(obj) {\r\n return _toComparable(toString(getter(obj))).indexOf(value) > -1\r\n };\r\n case \"notcontains\":\r\n return function(obj) {\r\n return -1 === _toComparable(toString(getter(obj))).indexOf(value)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n}();\r\nvar FilterIterator = WrappedIterator.inherit({\r\n ctor: function(iter, criteria) {\r\n this.callBase(iter);\r\n this.langParams = iter.langParams;\r\n this.criteria = compileCriteria(criteria, this.langParams)\r\n },\r\n next: function() {\r\n while (this.iter.next()) {\r\n if (this.criteria(this.current())) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n});\r\nvar GroupIterator = Iterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.iter = iter;\r\n this.getter = getter\r\n },\r\n next: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.next()\r\n },\r\n current: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.current()\r\n },\r\n reset: function() {\r\n delete this.groupedIter\r\n },\r\n countable: function() {\r\n return !!this.groupedIter\r\n },\r\n count: function() {\r\n return this.groupedIter.count()\r\n },\r\n _ensureGrouped: function() {\r\n if (this.groupedIter) {\r\n return\r\n }\r\n var hash = {};\r\n var keys = [];\r\n var iter = this.iter;\r\n var getter = compileGetter(this.getter);\r\n iter.reset();\r\n while (iter.next()) {\r\n var current = iter.current();\r\n var key = getter(current);\r\n if (key in hash) {\r\n hash[key].push(current)\r\n } else {\r\n hash[key] = [current];\r\n keys.push(key)\r\n }\r\n }\r\n this.groupedIter = new ArrayIterator(map(keys, (function(key) {\r\n return {\r\n key: key,\r\n items: hash[key]\r\n }\r\n })))\r\n }\r\n});\r\nvar SelectIterator = WrappedIterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.callBase(iter);\r\n this.getter = compileGetter(getter)\r\n },\r\n current: function() {\r\n return this.getter(this.callBase())\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return this.iter.count()\r\n }\r\n});\r\nvar SliceIterator = WrappedIterator.inherit({\r\n ctor: function(iter, skip, take) {\r\n this.callBase(iter);\r\n this.skip = Math.max(0, skip);\r\n this.take = Math.max(0, take);\r\n this.pos = 0\r\n },\r\n next: function() {\r\n if (this.pos >= this.skip + this.take) {\r\n return false\r\n }\r\n while (this.pos < this.skip && this.iter.next()) {\r\n this.pos++\r\n }\r\n this.pos++;\r\n return this.iter.next()\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this.pos = 0\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return Math.min(this.iter.count() - this.skip, this.take)\r\n }\r\n});\r\nvar arrayQueryImpl = function arrayQueryImpl(iter, queryOptions) {\r\n queryOptions = queryOptions || {};\r\n if (!(iter instanceof Iterator)) {\r\n iter = new ArrayIterator(iter)\r\n }\r\n if (queryOptions.langParams) {\r\n iter.langParams = queryOptions.langParams\r\n }\r\n var handleError = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleDataError(error)\r\n };\r\n var aggregateCore = function(aggregator) {\r\n var d = (new Deferred).fail(handleError);\r\n var seed;\r\n var step = aggregator.step;\r\n var finalize = aggregator.finalize;\r\n try {\r\n iter.reset();\r\n if (\"seed\" in aggregator) {\r\n seed = aggregator.seed\r\n } else {\r\n seed = iter.next() ? iter.current() : NaN\r\n }\r\n var accumulator = seed;\r\n while (iter.next()) {\r\n accumulator = step(accumulator, iter.current())\r\n }\r\n d.resolve(finalize ? finalize(accumulator) : accumulator)\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n };\r\n var standardAggregate = function(name) {\r\n return aggregateCore(aggregators[name])\r\n };\r\n var select = function(getter) {\r\n if (!isFunction(getter) && !Array.isArray(getter)) {\r\n getter = [].slice.call(arguments)\r\n }\r\n return chainQuery(new SelectIterator(iter, getter))\r\n };\r\n var selectProp = function(name) {\r\n return select(compileGetter(name))\r\n };\r\n\r\n function chainQuery(iter) {\r\n return arrayQueryImpl(iter, queryOptions)\r\n }\r\n return {\r\n toArray: function() {\r\n return iter.toArray()\r\n },\r\n enumerate: function() {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.toArray())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n },\r\n setLangParams(options) {\r\n iter.langParams = options\r\n },\r\n sortBy: function(getter, desc, compare) {\r\n return chainQuery(new SortIterator(iter, getter, desc, compare))\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n if (iter instanceof SortIterator) {\r\n return chainQuery(iter.thenBy(getter, desc, compare))\r\n }\r\n throw errors.Error(\"E4004\")\r\n },\r\n filter: function(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n criteria = [].slice.call(arguments)\r\n }\r\n return chainQuery(new FilterIterator(iter, criteria))\r\n },\r\n slice: function(skip, take) {\r\n if (void 0 === take) {\r\n take = Number.MAX_VALUE\r\n }\r\n return chainQuery(new SliceIterator(iter, skip, take))\r\n },\r\n select: select,\r\n groupBy: function(getter) {\r\n return chainQuery(new GroupIterator(iter, getter))\r\n },\r\n aggregate: function(seed, step, finalize) {\r\n if (arguments.length < 2) {\r\n return aggregateCore({\r\n step: arguments[0]\r\n })\r\n }\r\n return aggregateCore({\r\n seed: seed,\r\n step: step,\r\n finalize: finalize\r\n })\r\n },\r\n count: function() {\r\n if (iter.countable()) {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.count())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n }\r\n return standardAggregate(\"count\")\r\n },\r\n sum: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).sum()\r\n }\r\n return standardAggregate(\"sum\")\r\n },\r\n min: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).min()\r\n }\r\n return standardAggregate(\"min\")\r\n },\r\n max: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).max()\r\n }\r\n return standardAggregate(\"max\")\r\n },\r\n avg: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).avg()\r\n }\r\n return standardAggregate(\"avg\")\r\n }\r\n }\r\n};\r\nexport default arrayQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/store_helper.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport arrayQuery from \"./array_query\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"./utils\";\r\n\r\nfunction multiLevelGroup(query, groupInfo) {\r\n query = query.groupBy(groupInfo[0].selector);\r\n if (groupInfo.length > 1) {\r\n query = query.select((function(g) {\r\n return extend({}, g, {\r\n items: multiLevelGroup(arrayQuery(g.items), groupInfo.slice(1)).toArray()\r\n })\r\n }))\r\n }\r\n return query\r\n}\r\n\r\nfunction arrangeSortingInfo(groupInfo, sortInfo) {\r\n var filteredGroup = [];\r\n each(groupInfo, (function(_, group) {\r\n var collision = grep(sortInfo, (function(sort) {\r\n return group.selector === sort.selector\r\n }));\r\n if (collision.length < 1) {\r\n filteredGroup.push(group)\r\n }\r\n }));\r\n return filteredGroup.concat(sortInfo)\r\n}\r\n\r\nfunction queryByOptions(query, options, isCountQuery) {\r\n var _options;\r\n options = options || {};\r\n var filter = options.filter;\r\n if (null !== (_options = options) && void 0 !== _options && _options.langParams) {\r\n var _query$setLangParams, _query;\r\n null === (_query$setLangParams = (_query = query).setLangParams) || void 0 === _query$setLangParams ? void 0 : _query$setLangParams.call(_query, options.langParams)\r\n }\r\n if (filter) {\r\n query = query.filter(filter)\r\n }\r\n if (isCountQuery) {\r\n return query\r\n }\r\n var sort = options.sort;\r\n var select = options.select;\r\n var group = options.group;\r\n var skip = options.skip;\r\n var take = options.take;\r\n if (group) {\r\n group = normalizeSortingInfo(group);\r\n group.keepInitialKeyOrder = !!options.group.keepInitialKeyOrder\r\n }\r\n if (sort || group) {\r\n sort = normalizeSortingInfo(sort || []);\r\n if (group && !group.keepInitialKeyOrder) {\r\n sort = arrangeSortingInfo(group, sort)\r\n }\r\n each(sort, (function(index) {\r\n query = query[index ? \"thenBy\" : \"sortBy\"](this.selector, this.desc, this.compare)\r\n }))\r\n }\r\n if (select) {\r\n query = query.select(select)\r\n }\r\n if (group) {\r\n query = multiLevelGroup(query, group)\r\n }\r\n if (take || skip) {\r\n query = query.slice(skip || 0, take)\r\n }\r\n return query\r\n}\r\nexport default {\r\n multiLevelGroup: multiLevelGroup,\r\n arrangeSortingInfo: arrangeSortingInfo,\r\n queryByOptions: queryByOptions\r\n};\r\n","/**\r\n * DevExtreme (esm/data/abstract_store.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n processRequestResultLock\r\n} from \"./utils\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport storeHelper from \"./store_helper\";\r\nvar queryByOptions = storeHelper.queryByOptions;\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nvar storeImpl = {};\r\nvar Store = Class.inherit({\r\n _langParams: {},\r\n ctor: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy = new EventsStrategy(this);\r\n each([\"onLoaded\", \"onLoading\", \"onInserted\", \"onInserting\", \"onUpdated\", \"onUpdating\", \"onPush\", \"onRemoved\", \"onRemoving\", \"onModified\", \"onModifying\"], (function(_, optionName) {\r\n if (optionName in options) {\r\n that.on(optionName.slice(2).toLowerCase(), options[optionName])\r\n }\r\n }));\r\n this._key = options.key;\r\n this._errorHandler = options.errorHandler;\r\n this._useDefaultSearch = true\r\n },\r\n _clearCache: noop,\r\n _customLoadOptions: function() {\r\n return null\r\n },\r\n key: function() {\r\n return this._key\r\n },\r\n keyOf: function(obj) {\r\n if (!this._keyGetter) {\r\n this._keyGetter = compileGetter(this.key())\r\n }\r\n return this._keyGetter(obj)\r\n },\r\n _requireKey: function() {\r\n if (!this.key()) {\r\n throw errors.Error(\"E4005\")\r\n }\r\n },\r\n load: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy.fireEvent(\"loading\", [options]);\r\n return this._withLock(this._loadImpl(options)).done((function(result) {\r\n that._eventsStrategy.fireEvent(\"loaded\", [result, options])\r\n }))\r\n },\r\n _loadImpl: function(options) {\r\n if (!isEmptyObject(this._langParams)) {\r\n options = options || {};\r\n options._langParams = _extends({}, this._langParams, options._langParams)\r\n }\r\n return queryByOptions(this.createQuery(options), options).enumerate()\r\n },\r\n _withLock: function(task) {\r\n var result = new Deferred;\r\n task.done((function() {\r\n var that = this;\r\n var args = arguments;\r\n processRequestResultLock.promise().done((function() {\r\n result.resolveWith(that, args)\r\n }))\r\n })).fail((function() {\r\n result.rejectWith(this, arguments)\r\n }));\r\n return result\r\n },\r\n createQuery: abstract,\r\n totalCount: function(options) {\r\n return this._totalCountImpl(options)\r\n },\r\n _totalCountImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options, true).count()\r\n },\r\n byKey: function(key, extraOptions) {\r\n return this._addFailHandlers(this._withLock(this._byKeyImpl(key, extraOptions)))\r\n },\r\n _byKeyImpl: abstract,\r\n insert: function(values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"inserting\", [values]);\r\n return that._addFailHandlers(that._insertImpl(values).done((function(callbackValues, callbackKey) {\r\n that._eventsStrategy.fireEvent(\"inserted\", [callbackValues, callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _insertImpl: abstract,\r\n update: function(key, values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"updating\", [key, values]);\r\n return that._addFailHandlers(that._updateImpl(key, values).done((function() {\r\n that._eventsStrategy.fireEvent(\"updated\", [key, values]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _updateImpl: abstract,\r\n push: function(changes) {\r\n var beforePushArgs = {\r\n changes: changes,\r\n waitFor: []\r\n };\r\n this._eventsStrategy.fireEvent(\"beforePushAggregation\", [beforePushArgs]);\r\n when(...beforePushArgs.waitFor).done(() => {\r\n this._pushImpl(changes);\r\n this._eventsStrategy.fireEvent(\"beforePush\", [{\r\n changes: changes\r\n }]);\r\n this._eventsStrategy.fireEvent(\"push\", [changes])\r\n })\r\n },\r\n _pushImpl: noop,\r\n remove: function(key) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"removing\", [key]);\r\n return that._addFailHandlers(that._removeImpl(key).done((function(callbackKey) {\r\n that._eventsStrategy.fireEvent(\"removed\", [callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _removeImpl: abstract,\r\n _addFailHandlers: function(deferred) {\r\n return deferred.fail(this._errorHandler).fail(handleError)\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nStore.create = function(alias, options) {\r\n if (!(alias in storeImpl)) {\r\n throw errors.Error(\"E4020\", alias)\r\n }\r\n return new storeImpl[alias](options)\r\n};\r\nStore.registerClass = function(type, alias) {\r\n if (alias) {\r\n storeImpl[alias] = type\r\n }\r\n return type\r\n};\r\nStore.inherit = function(inheritor) {\r\n return function(members, alias) {\r\n var type = inheritor.apply(this, [members]);\r\n Store.registerClass(type, alias);\r\n return type\r\n }\r\n}(Store.inherit);\r\nexport default Store;\r\n","/**\r\n * DevExtreme (esm/data/custom_store.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n keysEqual,\r\n XHR_ERROR_UNLOAD,\r\n errorMessageFromXhr as errorMessageFromXhrUtility\r\n} from \"./utils\";\r\nimport {\r\n applyBatch\r\n} from \"./array_utils\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport arrayQuery from \"./array_query\";\r\nimport storeHelper from \"./store_helper\";\r\nimport {\r\n Deferred,\r\n when,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar TOTAL_COUNT = \"totalCount\";\r\nvar LOAD = \"load\";\r\nvar BY_KEY = \"byKey\";\r\nvar INSERT = \"insert\";\r\nvar UPDATE = \"update\";\r\nvar REMOVE = \"remove\";\r\n\r\nfunction isPromise(obj) {\r\n return obj && isFunction(obj.then)\r\n}\r\n\r\nfunction trivialPromise(value) {\r\n return (new Deferred).resolve(value).promise()\r\n}\r\n\r\nfunction ensureRequiredFuncOption(name, obj) {\r\n if (!isFunction(obj)) {\r\n throw errors.Error(\"E4011\", name)\r\n }\r\n}\r\n\r\nfunction throwInvalidUserFuncResult(name) {\r\n throw errors.Error(\"E4012\", name)\r\n}\r\n\r\nfunction createUserFuncFailureHandler(pendingDeferred) {\r\n function errorMessageFromXhr(promiseArguments) {\r\n var xhr = promiseArguments[0];\r\n var textStatus = promiseArguments[1];\r\n if (!xhr || !xhr.getResponseHeader) {\r\n return null\r\n }\r\n return errorMessageFromXhrUtility(xhr, textStatus)\r\n }\r\n return function(arg) {\r\n var error;\r\n if (arg instanceof Error) {\r\n error = arg\r\n } else {\r\n error = new Error(errorMessageFromXhr(arguments) || arg && String(arg) || \"Unknown error\")\r\n }\r\n if (error.message !== XHR_ERROR_UNLOAD) {\r\n pendingDeferred.reject(error)\r\n }\r\n }\r\n}\r\n\r\nfunction invokeUserLoad(store, options) {\r\n var userFunc = store._loadFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(LOAD, userFunc);\r\n userResult = userFunc.apply(store, [options]);\r\n if (Array.isArray(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n } else if (null === userResult || void 0 === userResult) {\r\n userResult = trivialPromise([])\r\n } else if (!isPromise(userResult)) {\r\n throwInvalidUserFuncResult(LOAD)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserTotalCountFunc(store, options) {\r\n var userFunc = store._totalCountFunc;\r\n var userResult;\r\n if (!isFunction(userFunc)) {\r\n throw errors.Error(\"E4021\")\r\n }\r\n userResult = userFunc.apply(store, [options]);\r\n if (!isPromise(userResult)) {\r\n userResult = Number(userResult);\r\n if (!isFinite(userResult)) {\r\n throwInvalidUserFuncResult(TOTAL_COUNT)\r\n }\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserByKeyFunc(store, key, extraOptions) {\r\n var userFunc = store._byKeyFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(BY_KEY, userFunc);\r\n userResult = userFunc.apply(store, [key, extraOptions]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction runRawLoad(pendingDeferred, store, userFuncOptions, continuation) {\r\n if (store.__rawData) {\r\n continuation(store.__rawData)\r\n } else {\r\n var loadPromise = store.__rawDataPromise || invokeUserLoad(store, userFuncOptions);\r\n if (store._cacheRawData) {\r\n store.__rawDataPromise = loadPromise\r\n }\r\n loadPromise.always((function() {\r\n delete store.__rawDataPromise\r\n })).done((function(rawData) {\r\n if (store._cacheRawData) {\r\n store.__rawData = rawData\r\n }\r\n continuation(rawData)\r\n })).fail(error => {\r\n var _store$_errorHandler;\r\n var userFuncFailureHandler = createUserFuncFailureHandler(pendingDeferred);\r\n null === (_store$_errorHandler = store._errorHandler) || void 0 === _store$_errorHandler ? void 0 : _store$_errorHandler.call(store, error);\r\n userFuncFailureHandler(error)\r\n })\r\n }\r\n}\r\n\r\nfunction runRawLoadWithQuery(pendingDeferred, store, options, countOnly) {\r\n options = options || {};\r\n var userFuncOptions = {};\r\n if (\"userData\" in options) {\r\n userFuncOptions.userData = options.userData\r\n }\r\n runRawLoad(pendingDeferred, store, userFuncOptions, (function(rawData) {\r\n var rawDataQuery = arrayQuery(rawData, {\r\n errorHandler: store._errorHandler\r\n });\r\n var itemsQuery;\r\n var totalCountQuery;\r\n var waitList = [];\r\n var items;\r\n var totalCount;\r\n if (!countOnly) {\r\n itemsQuery = storeHelper.queryByOptions(rawDataQuery, options);\r\n if (itemsQuery === rawDataQuery) {\r\n items = rawData.slice(0)\r\n } else {\r\n waitList.push(itemsQuery.enumerate().done((function(asyncResult) {\r\n items = asyncResult\r\n })))\r\n }\r\n }\r\n if (options.requireTotalCount || countOnly) {\r\n totalCountQuery = storeHelper.queryByOptions(rawDataQuery, options, true);\r\n if (totalCountQuery === rawDataQuery) {\r\n totalCount = rawData.length\r\n } else {\r\n waitList.push(totalCountQuery.count().done((function(asyncResult) {\r\n totalCount = asyncResult\r\n })))\r\n }\r\n }\r\n when.apply($, waitList).done((function() {\r\n if (countOnly) {\r\n pendingDeferred.resolve(totalCount)\r\n } else if (options.requireTotalCount) {\r\n pendingDeferred.resolve(items, {\r\n totalCount: totalCount\r\n })\r\n } else {\r\n pendingDeferred.resolve(items)\r\n }\r\n })).fail((function(x) {\r\n pendingDeferred.reject(x)\r\n }))\r\n }))\r\n}\r\n\r\nfunction runRawLoadWithKey(pendingDeferred, store, key) {\r\n runRawLoad(pendingDeferred, store, {}, (function(rawData) {\r\n var keyExpr = store.key();\r\n var item;\r\n for (var i = 0, len = rawData.length; i < len; i++) {\r\n item = rawData[i];\r\n if (keysEqual(keyExpr, store.keyOf(rawData[i]), key)) {\r\n pendingDeferred.resolve(item);\r\n return\r\n }\r\n }\r\n pendingDeferred.reject(errors.Error(\"E4009\"))\r\n }))\r\n}\r\nvar CustomStore = Store.inherit({\r\n ctor: function(options) {\r\n options = options || {};\r\n this.callBase(options);\r\n this._useDefaultSearch = !!options.useDefaultSearch || \"raw\" === options.loadMode;\r\n this._loadMode = options.loadMode;\r\n this._cacheRawData = false !== options.cacheRawData;\r\n this._loadFunc = options[LOAD];\r\n this._totalCountFunc = options[TOTAL_COUNT];\r\n this._byKeyFunc = options[BY_KEY];\r\n this._insertFunc = options[INSERT];\r\n this._updateFunc = options[UPDATE];\r\n this._removeFunc = options[REMOVE]\r\n },\r\n _clearCache() {\r\n delete this.__rawData\r\n },\r\n createQuery: function() {\r\n throw errors.Error(\"E4010\")\r\n },\r\n clearRawDataCache: function() {\r\n this._clearCache()\r\n },\r\n _totalCountImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode && !this._totalCountFunc) {\r\n runRawLoadWithQuery(d, this, options, true)\r\n } else {\r\n invokeUserTotalCountFunc(this, options).done((function(count) {\r\n d.resolve(Number(count))\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _pushImpl: function(changes) {\r\n if (this.__rawData) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this.__rawData,\r\n changes: changes\r\n })\r\n }\r\n },\r\n _loadImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode) {\r\n runRawLoadWithQuery(d, this, options, false)\r\n } else {\r\n invokeUserLoad(this, options).done((function(data, extra) {\r\n d.resolve(data, extra)\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _byKeyImpl: function(key, extraOptions) {\r\n var d = new Deferred;\r\n if (this._byKeyViaLoad()) {\r\n this._requireKey();\r\n runRawLoadWithKey(d, this, key)\r\n } else {\r\n invokeUserByKeyFunc(this, key, extraOptions).done((function(obj) {\r\n d.resolve(obj)\r\n })).fail(createUserFuncFailureHandler(d))\r\n }\r\n return d.promise()\r\n },\r\n _byKeyViaLoad: function() {\r\n return \"raw\" === this._loadMode && !this._byKeyFunc\r\n },\r\n _insertImpl: function(values) {\r\n var that = this;\r\n var userFunc = that._insertFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(INSERT, userFunc);\r\n userResult = userFunc.apply(that, [values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(values, serverResponse)\r\n } else {\r\n d.resolve(serverResponse || values, that.keyOf(serverResponse))\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _updateImpl: function(key, values) {\r\n var userFunc = this._updateFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(UPDATE, userFunc);\r\n userResult = userFunc.apply(this, [key, values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(key, values)\r\n } else {\r\n d.resolve(serverResponse || values, key)\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _removeImpl: function(key) {\r\n var userFunc = this._removeFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(REMOVE, userFunc);\r\n userResult = userFunc.apply(this, [key]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise()\r\n }\r\n fromPromise(userResult).done((function() {\r\n d.resolve(key)\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n }\r\n});\r\nexport default CustomStore;\r\n","/**\r\n * DevExtreme (esm/core/utils/queue.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction createQueue(discardPendingTasks) {\r\n var _tasks = [];\r\n var _busy = false;\r\n\r\n function exec() {\r\n while (_tasks.length) {\r\n _busy = true;\r\n var task = _tasks.shift();\r\n var result = task();\r\n if (void 0 === result) {\r\n continue\r\n }\r\n if (result.then) {\r\n when(result).always(exec);\r\n return\r\n }\r\n throw errors.Error(\"E0015\")\r\n }\r\n _busy = false\r\n }\r\n return {\r\n add: function(task, removeTaskCallback) {\r\n if (!discardPendingTasks) {\r\n _tasks.push(task)\r\n } else {\r\n if (_tasks[0] && removeTaskCallback) {\r\n removeTaskCallback(_tasks[0])\r\n }\r\n _tasks = [task]\r\n }\r\n if (!_busy) {\r\n exec()\r\n }\r\n },\r\n busy: function() {\r\n return _busy\r\n }\r\n }\r\n}\r\nexport {\r\n createQueue as create\r\n};\r\nexport var enqueue = createQueue().add;\r\n","/**\r\n * DevExtreme (esm/core/http_request.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"./utils/dependency_injector\";\r\nvar nativeXMLHttpRequest = {\r\n getXhr: function() {\r\n return new window.XMLHttpRequest\r\n }\r\n};\r\nexport default injector(nativeXMLHttpRequest);\r\n","/**\r\n * DevExtreme (esm/core/utils/ajax.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"./deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport httpRequest from \"../../core/http_request\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extendFromObject\r\n} from \"./extend\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport injector from \"./dependency_injector\";\r\nvar SUCCESS = \"success\";\r\nvar ERROR = \"error\";\r\nvar TIMEOUT = \"timeout\";\r\nvar NO_CONTENT = \"nocontent\";\r\nvar PARSER_ERROR = \"parsererror\";\r\nvar isStatusSuccess = function(status) {\r\n return 200 <= status && status < 300\r\n};\r\nvar hasContent = function(status) {\r\n return 204 !== status\r\n};\r\nvar paramsConvert = function(params) {\r\n var result = [];\r\n for (var name in params) {\r\n var value = params[name];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (\"function\" === typeof value) {\r\n value = value()\r\n }\r\n result.push(encodeURIComponent(name) + \"=\" + encodeURIComponent(value))\r\n }\r\n return result.join(\"&\")\r\n};\r\nvar createScript = function(options) {\r\n var script = domAdapter.createElement(\"script\");\r\n for (var name in options) {\r\n script[name] = options[name]\r\n }\r\n return script\r\n};\r\nvar removeScript = function(scriptNode) {\r\n scriptNode.parentNode.removeChild(scriptNode)\r\n};\r\nvar appendToHead = function(element) {\r\n return domAdapter.getHead().appendChild(element)\r\n};\r\nvar evalScript = function(code) {\r\n var script = createScript({\r\n text: code\r\n });\r\n appendToHead(script);\r\n removeScript(script)\r\n};\r\nvar evalCrossDomainScript = function(url) {\r\n var script = createScript({\r\n src: url\r\n });\r\n return new Promise((function(resolve, reject) {\r\n var events = {\r\n load: resolve,\r\n error: reject\r\n };\r\n var loadHandler = function(e) {\r\n events[e.type]();\r\n removeScript(script)\r\n };\r\n for (var event in events) {\r\n domAdapter.listen(script, event, loadHandler)\r\n }\r\n appendToHead(script)\r\n }))\r\n};\r\nvar getAcceptHeader = function(options) {\r\n var dataType = options.dataType || \"*\";\r\n var scriptAccept = \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\";\r\n var accepts = {\r\n \"*\": \"*/*\",\r\n text: \"text/plain\",\r\n html: \"text/html\",\r\n xml: \"application/xml, text/xml\",\r\n json: \"application/json, text/javascript\",\r\n jsonp: scriptAccept,\r\n script: scriptAccept\r\n };\r\n extendFromObject(accepts, options.accepts, true);\r\n return accepts[dataType] ? accepts[dataType] + (\"*\" !== dataType ? \", */*; q=0.01\" : \"\") : accepts[\"*\"]\r\n};\r\nvar getContentTypeHeader = function(options) {\r\n var defaultContentType;\r\n if (options.data && !options.upload && \"GET\" !== getMethod(options)) {\r\n defaultContentType = \"application/x-www-form-urlencoded;charset=utf-8\"\r\n }\r\n return options.contentType || defaultContentType\r\n};\r\nvar getDataFromResponse = function(xhr) {\r\n return xhr.responseType && \"text\" !== xhr.responseType || \"string\" !== typeof xhr.responseText ? xhr.response : xhr.responseText\r\n};\r\nvar postProcess = function(deferred, xhr, dataType) {\r\n var data = getDataFromResponse(xhr);\r\n switch (dataType) {\r\n case \"jsonp\":\r\n evalScript(data);\r\n break;\r\n case \"script\":\r\n evalScript(data);\r\n deferred.resolve(data, SUCCESS, xhr);\r\n break;\r\n case \"json\":\r\n try {\r\n deferred.resolve(JSON.parse(data), SUCCESS, xhr)\r\n } catch (e) {\r\n deferred.reject(xhr, PARSER_ERROR, e)\r\n }\r\n break;\r\n default:\r\n deferred.resolve(data, SUCCESS, xhr)\r\n }\r\n};\r\nvar isCrossDomain = function(url) {\r\n if (!hasWindow()) {\r\n return true\r\n }\r\n var crossDomain = false;\r\n var originAnchor = domAdapter.createElement(\"a\");\r\n var urlAnchor = domAdapter.createElement(\"a\");\r\n originAnchor.href = window.location.href;\r\n try {\r\n urlAnchor.href = url;\r\n urlAnchor.href = urlAnchor.href;\r\n crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host\r\n } catch (e) {\r\n crossDomain = true\r\n }\r\n return crossDomain\r\n};\r\nvar setHttpTimeout = function(timeout, xhr) {\r\n return timeout && setTimeout((function() {\r\n xhr.customStatus = TIMEOUT;\r\n xhr.abort()\r\n }), timeout)\r\n};\r\nvar getJsonpOptions = function(options) {\r\n if (\"jsonp\" === options.dataType) {\r\n var random = Math.random().toString().replace(/\\D/g, \"\");\r\n var callbackName = options.jsonpCallback || \"dxCallback\" + Date.now() + \"_\" + random;\r\n var callbackParameter = options.jsonp || \"callback\";\r\n options.data = options.data || {};\r\n options.data[callbackParameter] = callbackName;\r\n return callbackName\r\n }\r\n};\r\nvar getRequestOptions = function(options, headers) {\r\n var params = options.data;\r\n var paramsAlreadyString = \"string\" === typeof params;\r\n var url = options.url || window.location.href;\r\n if (!paramsAlreadyString && !options.cache) {\r\n params = params || {};\r\n params._ = Date.now()\r\n }\r\n if (params && !options.upload) {\r\n if (!paramsAlreadyString) {\r\n params = paramsConvert(params)\r\n }\r\n if (\"GET\" === getMethod(options)) {\r\n if (\"\" !== params) {\r\n url += (url.indexOf(\"?\") > -1 ? \"&\" : \"?\") + params\r\n }\r\n params = null\r\n } else if (headers[\"Content-Type\"] && headers[\"Content-Type\"].indexOf(\"application/x-www-form-urlencoded\") > -1) {\r\n params = params.replace(/%20/g, \"+\")\r\n }\r\n }\r\n return {\r\n url: url,\r\n parameters: params\r\n }\r\n};\r\n\r\nfunction getMethod(options) {\r\n return (options.method || \"GET\").toUpperCase()\r\n}\r\nvar getRequestHeaders = function(options) {\r\n var headers = options.headers || {};\r\n headers[\"Content-Type\"] = headers[\"Content-Type\"] || getContentTypeHeader(options);\r\n headers.Accept = headers.Accept || getAcceptHeader(options);\r\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\"\r\n }\r\n return headers\r\n};\r\nvar sendRequest = function(options) {\r\n var xhr = httpRequest.getXhr();\r\n var d = new Deferred;\r\n var result = d.promise();\r\n var async = isDefined(options.async) ? options.async : true;\r\n var dataType = options.dataType;\r\n var timeout = options.timeout || 0;\r\n var timeoutId;\r\n options.crossDomain = isCrossDomain(options.url);\r\n var needScriptEvaluation = \"jsonp\" === dataType || \"script\" === dataType;\r\n if (void 0 === options.cache) {\r\n options.cache = !needScriptEvaluation\r\n }\r\n var callbackName = getJsonpOptions(options);\r\n var headers = getRequestHeaders(options);\r\n var requestOptions = getRequestOptions(options, headers);\r\n var url = requestOptions.url;\r\n var parameters = requestOptions.parameters;\r\n if (callbackName) {\r\n window[callbackName] = function(data) {\r\n d.resolve(data, SUCCESS, xhr)\r\n }\r\n }\r\n if (options.crossDomain && needScriptEvaluation) {\r\n evalCrossDomainScript(url).then((function() {\r\n if (\"jsonp\" === dataType) {\r\n return\r\n }\r\n d.resolve(null, SUCCESS, xhr)\r\n }), (function() {\r\n d.reject(xhr, ERROR)\r\n }));\r\n return result\r\n }\r\n if (options.crossDomain && !(\"withCredentials\" in xhr)) {\r\n d.reject(xhr, ERROR);\r\n return result\r\n }\r\n xhr.open(getMethod(options), url, async, options.username, options.password);\r\n if (async) {\r\n xhr.timeout = timeout;\r\n timeoutId = setHttpTimeout(timeout, xhr)\r\n }\r\n xhr.onreadystatechange = function(e) {\r\n if (4 === xhr.readyState) {\r\n clearTimeout(timeoutId);\r\n if (isStatusSuccess(xhr.status)) {\r\n if (hasContent(xhr.status)) {\r\n postProcess(d, xhr, dataType)\r\n } else {\r\n d.resolve(null, NO_CONTENT, xhr)\r\n }\r\n } else {\r\n d.reject(xhr, xhr.customStatus || ERROR)\r\n }\r\n }\r\n };\r\n if (options.upload) {\r\n xhr.upload.onprogress = options.upload.onprogress;\r\n xhr.upload.onloadstart = options.upload.onloadstart;\r\n xhr.upload.onabort = options.upload.onabort\r\n }\r\n if (options.xhrFields) {\r\n for (var field in options.xhrFields) {\r\n xhr[field] = options.xhrFields[field]\r\n }\r\n }\r\n if (\"arraybuffer\" === options.responseType) {\r\n xhr.responseType = options.responseType\r\n }\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name) && isDefined(headers[name])) {\r\n xhr.setRequestHeader(name, headers[name])\r\n }\r\n }\r\n if (options.beforeSend) {\r\n options.beforeSend(xhr)\r\n }\r\n xhr.send(parameters);\r\n result.abort = function() {\r\n xhr.abort()\r\n };\r\n return result\r\n};\r\nexport default injector({\r\n sendRequest: sendRequest\r\n});\r\n","/**\r\n * DevExtreme (esm/data/query_adapters.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {};\r\n","/**\r\n * DevExtreme (esm/data/remote_query.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport queryAdapters from \"./query_adapters\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport arrayQueryImpl from \"./array_query\";\r\nvar remoteQueryImpl = function remoteQueryImpl(url, queryOptions, tasks) {\r\n tasks = tasks || [];\r\n queryOptions = queryOptions || {};\r\n var createTask = function(name, args) {\r\n return {\r\n name: name,\r\n args: args\r\n }\r\n };\r\n var exec = function(executorTask) {\r\n var d = new Deferred;\r\n var _adapterFactory;\r\n var _adapter;\r\n var _taskQueue;\r\n var _currentTask;\r\n var _mergedSortArgs;\r\n var rejectWithNotify = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleError(error);\r\n d.reject(error)\r\n };\r\n\r\n function mergeSortTask(task) {\r\n switch (task.name) {\r\n case \"sortBy\":\r\n _mergedSortArgs = [task.args];\r\n return true;\r\n case \"thenBy\":\r\n if (!_mergedSortArgs) {\r\n throw errors.Error(\"E4004\")\r\n }\r\n _mergedSortArgs.push(task.args);\r\n return true\r\n }\r\n return false\r\n }\r\n try {\r\n _adapterFactory = queryOptions.adapter;\r\n if (!isFunction(_adapterFactory)) {\r\n _adapterFactory = queryAdapters[_adapterFactory]\r\n }\r\n _adapter = _adapterFactory(queryOptions);\r\n _taskQueue = [].concat(tasks).concat(executorTask);\r\n var optimize = _adapter.optimize;\r\n if (optimize) {\r\n optimize(_taskQueue)\r\n }\r\n while (_taskQueue.length) {\r\n _currentTask = _taskQueue[0];\r\n if (!mergeSortTask(_currentTask)) {\r\n if (_mergedSortArgs) {\r\n _taskQueue.unshift(createTask(\"multiSort\", [_mergedSortArgs]));\r\n _mergedSortArgs = null;\r\n continue\r\n }\r\n if (\"enumerate\" !== String(_currentTask.name)) {\r\n if (!_adapter[_currentTask.name] || false === _adapter[_currentTask.name].apply(_adapter, _currentTask.args)) {\r\n break\r\n }\r\n }\r\n }\r\n _taskQueue.shift()\r\n }! function() {\r\n var head = _taskQueue[0];\r\n var unmergedTasks = [];\r\n if (head && \"multiSort\" === head.name) {\r\n _taskQueue.shift();\r\n each(head.args[0], (function() {\r\n unmergedTasks.push(createTask(unmergedTasks.length ? \"thenBy\" : \"sortBy\", this))\r\n }))\r\n }\r\n _taskQueue = unmergedTasks.concat(_taskQueue)\r\n }();\r\n _adapter.exec(url).done((function(result, extra) {\r\n if (!_taskQueue.length) {\r\n d.resolve(result, extra)\r\n } else {\r\n var clientChain = arrayQueryImpl(result, {\r\n errorHandler: queryOptions.errorHandler\r\n });\r\n each(_taskQueue, (function() {\r\n clientChain = clientChain[this.name].apply(clientChain, this.args)\r\n }));\r\n clientChain.done(d.resolve).fail(d.reject)\r\n }\r\n })).fail(rejectWithNotify)\r\n } catch (x) {\r\n rejectWithNotify(x)\r\n }\r\n return d.promise()\r\n };\r\n var query = {};\r\n each([\"sortBy\", \"thenBy\", \"filter\", \"slice\", \"select\", \"groupBy\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return remoteQueryImpl(url, queryOptions, tasks.concat(createTask(name, arguments)))\r\n }\r\n }));\r\n each([\"count\", \"min\", \"max\", \"sum\", \"avg\", \"aggregate\", \"enumerate\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return exec.call(this, createTask(name, arguments))\r\n }\r\n }));\r\n return query\r\n};\r\nexport default remoteQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/query_implementation.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport arrayQueryImpl from \"./array_query\";\r\nimport remoteQueryImpl from \"./remote_query\";\r\nexport var queryImpl = {\r\n array: arrayQueryImpl,\r\n remote: remoteQueryImpl\r\n};\r\n","/**\r\n * DevExtreme (esm/data/query.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n queryImpl\r\n} from \"./query_implementation\";\r\nvar query = function() {\r\n var impl = Array.isArray(arguments[0]) ? \"array\" : \"remote\";\r\n return queryImpl[impl].apply(this, arguments)\r\n};\r\nexport default query;\r\n","/**\r\n * DevExtreme (esm/data/array_store.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\nimport Query from \"./query\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport {\r\n indexByKey,\r\n insert,\r\n applyBatch,\r\n update,\r\n remove\r\n} from \"./array_utils\";\r\nvar ArrayStore = Store.inherit({\r\n ctor: function(options) {\r\n if (Array.isArray(options)) {\r\n options = {\r\n data: options\r\n }\r\n } else {\r\n options = options || {}\r\n }\r\n this.callBase(options);\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw errors.Error(\"E4006\")\r\n }\r\n this._array = initialArray || []\r\n },\r\n createQuery: function() {\r\n return Query(this._array, {\r\n errorHandler: this._errorHandler\r\n })\r\n },\r\n _byKeyImpl: function(key) {\r\n var index = indexByKey(this, this._array, key);\r\n if (-1 === index) {\r\n return rejectedPromise(errors.Error(\"E4009\"))\r\n }\r\n return trivialPromise(this._array[index])\r\n },\r\n _insertImpl: function(values) {\r\n return insert(this, this._array, values)\r\n },\r\n _pushImpl: function(changes) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this._array,\r\n changes: changes\r\n })\r\n },\r\n _updateImpl: function(key, values) {\r\n return update(this, this._array, key, values)\r\n },\r\n _removeImpl: function(key) {\r\n return remove(this, this._array, key)\r\n },\r\n clear: function() {\r\n this._eventsStrategy.fireEvent(\"modifying\");\r\n this._array = [];\r\n this._eventsStrategy.fireEvent(\"modified\")\r\n }\r\n}, \"array\");\r\nexport default ArrayStore;\r\n","/**\r\n * DevExtreme (esm/data/data_source/utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"items\"];\r\nimport ajaxUtils from \"../../core/utils/ajax\";\r\nimport Store from \"../abstract_store\";\r\nimport ArrayStore from \"../array_store\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../utils\";\r\nexport var CANCELED_TOKEN = \"canceled\";\r\nexport var isPending = deferred => \"pending\" === deferred.state();\r\nexport var normalizeStoreLoadOptionAccessorArguments = originalArguments => {\r\n switch (originalArguments.length) {\r\n case 0:\r\n return;\r\n case 1:\r\n return originalArguments[0]\r\n }\r\n return [].slice.call(originalArguments)\r\n};\r\nvar mapGroup = (group, level, mapper) => map(group, item => {\r\n var restItem = _objectWithoutPropertiesLoose(item, _excluded);\r\n return _extends({}, restItem, {\r\n items: mapRecursive(item.items, level - 1, mapper)\r\n })\r\n});\r\nvar mapRecursive = (items, level, mapper) => {\r\n if (!Array.isArray(items)) {\r\n return items\r\n }\r\n return level ? mapGroup(items, level, mapper) : map(items, mapper)\r\n};\r\nexport var mapDataRespectingGrouping = (items, mapper, groupInfo) => {\r\n var level = groupInfo ? normalizeSortingInfo(groupInfo).length : 0;\r\n return mapRecursive(items, level, mapper)\r\n};\r\nexport var normalizeLoadResult = (data, extra) => {\r\n var _data;\r\n if (null !== (_data = data) && void 0 !== _data && _data.data) {\r\n extra = data;\r\n data = data.data\r\n }\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n return {\r\n data: data,\r\n extra: extra\r\n }\r\n};\r\nvar createCustomStoreFromLoadFunc = options => {\r\n var storeConfig = {};\r\n each([\"useDefaultSearch\", \"key\", \"load\", \"loadMode\", \"cacheRawData\", \"byKey\", \"lookup\", \"totalCount\", \"insert\", \"update\", \"remove\"], (function() {\r\n storeConfig[this] = options[this];\r\n delete options[this]\r\n }));\r\n return new CustomStore(storeConfig)\r\n};\r\nvar createStoreFromConfig = storeConfig => {\r\n var alias = storeConfig.type;\r\n delete storeConfig.type;\r\n return Store.create(alias, storeConfig)\r\n};\r\nvar createCustomStoreFromUrl = (url, normalizationOptions) => new CustomStore({\r\n load: () => ajaxUtils.sendRequest({\r\n url: url,\r\n dataType: \"json\"\r\n }),\r\n loadMode: null === normalizationOptions || void 0 === normalizationOptions ? void 0 : normalizationOptions.fromUrlLoadMode\r\n});\r\nexport var normalizeDataSourceOptions = (options, normalizationOptions) => {\r\n var store;\r\n if (\"string\" === typeof options) {\r\n options = {\r\n paginate: false,\r\n store: createCustomStoreFromUrl(options, normalizationOptions)\r\n }\r\n }\r\n if (void 0 === options) {\r\n options = []\r\n }\r\n if (Array.isArray(options) || options instanceof Store) {\r\n options = {\r\n store: options\r\n }\r\n } else {\r\n options = extend({}, options)\r\n }\r\n if (void 0 === options.store) {\r\n options.store = []\r\n }\r\n store = options.store;\r\n if (\"load\" in options) {\r\n store = createCustomStoreFromLoadFunc(options)\r\n } else if (Array.isArray(store)) {\r\n store = new ArrayStore(store)\r\n } else if (isPlainObject(store)) {\r\n store = createStoreFromConfig(extend({}, store))\r\n }\r\n options.store = store;\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/data/data_source/operation_manager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n CANCELED_TOKEN\r\n} from \"./utils\";\r\nexport default class OperationManager {\r\n constructor() {\r\n this._counter = -1;\r\n this._deferreds = {}\r\n }\r\n add(deferred) {\r\n this._counter++;\r\n this._deferreds[this._counter] = deferred;\r\n return this._counter\r\n }\r\n remove(operationId) {\r\n return delete this._deferreds[operationId]\r\n }\r\n cancel(operationId) {\r\n if (operationId in this._deferreds) {\r\n this._deferreds[operationId].reject(CANCELED_TOKEN);\r\n return true\r\n }\r\n return false\r\n }\r\n cancelAll() {\r\n while (this._counter > -1) {\r\n this.cancel(this._counter);\r\n this._counter--\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/data_source/data_source.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isNumeric,\r\n isBoolean,\r\n isDefined,\r\n isObject,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n throttleChanges\r\n} from \"../utils\";\r\nimport {\r\n applyBatch\r\n} from \"../array_utils\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n errors\r\n} from \"../errors\";\r\nimport {\r\n create\r\n} from \"../../core/utils/queue\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport OperationManager from \"./operation_manager\";\r\nimport {\r\n normalizeDataSourceOptions,\r\n normalizeStoreLoadOptionAccessorArguments,\r\n CANCELED_TOKEN,\r\n isPending,\r\n normalizeLoadResult,\r\n mapDataRespectingGrouping\r\n} from \"./utils\";\r\nexport var DataSource = Class.inherit({\r\n ctor(options) {\r\n var _options$reshapeOnPus;\r\n options = normalizeDataSourceOptions(options);\r\n this._eventsStrategy = new EventsStrategy(this, {\r\n syncStrategy: true\r\n });\r\n this._store = options.store;\r\n this._changedTime = 0;\r\n var needThrottling = 0 !== options.pushAggregationTimeout;\r\n if (needThrottling) {\r\n var throttlingTimeout = void 0 === options.pushAggregationTimeout ? () => 5 * this._changedTime : options.pushAggregationTimeout;\r\n var pushDeferred;\r\n var lastPushWaiters;\r\n var throttlingPushHandler = throttleChanges(changes => {\r\n pushDeferred.resolve();\r\n var storePushPending = when(...lastPushWaiters);\r\n storePushPending.done(() => this._onPush(changes));\r\n lastPushWaiters = void 0;\r\n pushDeferred = void 0\r\n }, throttlingTimeout);\r\n this._onPushHandler = args => {\r\n this._aggregationTimeoutId = throttlingPushHandler(args.changes);\r\n if (!pushDeferred) {\r\n pushDeferred = new Deferred\r\n }\r\n lastPushWaiters = args.waitFor;\r\n args.waitFor.push(pushDeferred.promise())\r\n };\r\n this._store.on(\"beforePushAggregation\", this._onPushHandler)\r\n } else {\r\n this._onPushHandler = changes => this._onPush(changes);\r\n this._store.on(\"push\", this._onPushHandler)\r\n }\r\n this._storeLoadOptions = this._extractLoadOptions(options);\r\n this._mapFunc = options.map;\r\n this._postProcessFunc = options.postProcess;\r\n this._pageIndex = void 0 !== options.pageIndex ? options.pageIndex : 0;\r\n this._pageSize = void 0 !== options.pageSize ? options.pageSize : 20;\r\n this._loadingCount = 0;\r\n this._loadQueue = this._createLoadQueue();\r\n this._searchValue = \"searchValue\" in options ? options.searchValue : null;\r\n this._searchOperation = options.searchOperation || \"contains\";\r\n this._searchExpr = options.searchExpr;\r\n this._paginate = options.paginate;\r\n this._reshapeOnPush = null !== (_options$reshapeOnPus = options.reshapeOnPush) && void 0 !== _options$reshapeOnPus ? _options$reshapeOnPus : false;\r\n each([\"onChanged\", \"onLoadError\", \"onLoadingChanged\", \"onCustomizeLoadResult\", \"onCustomizeStoreLoadOptions\"], (_, optionName) => {\r\n if (optionName in options) {\r\n this.on(optionName.substr(2, 1).toLowerCase() + optionName.substr(3), options[optionName])\r\n }\r\n });\r\n this._operationManager = new OperationManager;\r\n this._init()\r\n },\r\n _init() {\r\n this._items = [];\r\n this._userData = {};\r\n this._totalCount = -1;\r\n this._isLoaded = false;\r\n if (!isDefined(this._paginate)) {\r\n this._paginate = !this.group()\r\n }\r\n this._isLastPage = !this._paginate\r\n },\r\n dispose() {\r\n var _this$_delayedLoadTas;\r\n this._store.off(\"beforePushAggregation\", this._onPushHandler);\r\n this._store.off(\"push\", this._onPushHandler);\r\n this._eventsStrategy.dispose();\r\n clearTimeout(this._aggregationTimeoutId);\r\n null === (_this$_delayedLoadTas = this._delayedLoadTask) || void 0 === _this$_delayedLoadTas ? void 0 : _this$_delayedLoadTas.abort();\r\n this._operationManager.cancelAll();\r\n delete this._store;\r\n delete this._items;\r\n delete this._delayedLoadTask;\r\n this._disposed = true\r\n },\r\n _extractLoadOptions(options) {\r\n var result = {};\r\n var names = [\"sort\", \"filter\", \"langParams\", \"select\", \"group\", \"requireTotalCount\"];\r\n var customNames = this._store._customLoadOptions();\r\n if (customNames) {\r\n names = names.concat(customNames)\r\n }\r\n each(names, (function() {\r\n result[this] = options[this]\r\n }));\r\n return result\r\n },\r\n loadOptions() {\r\n return this._storeLoadOptions\r\n },\r\n items() {\r\n return this._items\r\n },\r\n pageIndex(newIndex) {\r\n if (!isNumeric(newIndex)) {\r\n return this._pageIndex\r\n }\r\n this._pageIndex = newIndex;\r\n this._isLastPage = !this._paginate\r\n },\r\n paginate(value) {\r\n if (!isBoolean(value)) {\r\n return this._paginate\r\n }\r\n if (this._paginate !== value) {\r\n this._paginate = value;\r\n this.pageIndex(0)\r\n }\r\n },\r\n pageSize(value) {\r\n if (!isNumeric(value)) {\r\n return this._pageSize\r\n }\r\n this._pageSize = value\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n generateStoreLoadOptionAccessor(optionName) {\r\n return args => {\r\n var normalizedArgs = normalizeStoreLoadOptionAccessorArguments(args);\r\n if (void 0 === normalizedArgs) {\r\n return this._storeLoadOptions[optionName]\r\n }\r\n this._storeLoadOptions[optionName] = normalizedArgs\r\n }\r\n },\r\n sort() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"sort\")(args)\r\n },\r\n filter() {\r\n var newFilter = normalizeStoreLoadOptionAccessorArguments(arguments);\r\n if (void 0 === newFilter) {\r\n return this._storeLoadOptions.filter\r\n }\r\n this._storeLoadOptions.filter = newFilter;\r\n this.pageIndex(0)\r\n },\r\n group() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"group\")(args)\r\n },\r\n select() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"select\")(args)\r\n },\r\n requireTotalCount(value) {\r\n if (!isBoolean(value)) {\r\n return this._storeLoadOptions.requireTotalCount\r\n }\r\n this._storeLoadOptions.requireTotalCount = value\r\n },\r\n searchValue(value) {\r\n if (arguments.length < 1) {\r\n return this._searchValue\r\n }\r\n this._searchValue = value;\r\n this.pageIndex(0)\r\n },\r\n searchOperation(op) {\r\n if (!isString(op)) {\r\n return this._searchOperation\r\n }\r\n this._searchOperation = op;\r\n this.pageIndex(0)\r\n },\r\n searchExpr(expr) {\r\n var argc = arguments.length;\r\n if (0 === argc) {\r\n return this._searchExpr\r\n }\r\n if (argc > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n this._searchExpr = expr;\r\n this.pageIndex(0)\r\n },\r\n store() {\r\n return this._store\r\n },\r\n key() {\r\n var _this$_store;\r\n return null === (_this$_store = this._store) || void 0 === _this$_store ? void 0 : _this$_store.key()\r\n },\r\n totalCount() {\r\n return this._totalCount\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._loadingCount > 0\r\n },\r\n beginLoading() {\r\n this._changeLoadingCount(1)\r\n },\r\n endLoading() {\r\n this._changeLoadingCount(-1)\r\n },\r\n _createLoadQueue: () => create(),\r\n _changeLoadingCount(increment) {\r\n var oldLoading = this.isLoading();\r\n this._loadingCount += increment;\r\n var newLoading = this.isLoading();\r\n if (oldLoading ^ newLoading) {\r\n this._eventsStrategy.fireEvent(\"loadingChanged\", [newLoading])\r\n }\r\n },\r\n _scheduleLoadCallbacks(deferred) {\r\n this.beginLoading();\r\n deferred.always(() => {\r\n this.endLoading()\r\n })\r\n },\r\n _scheduleFailCallbacks(deferred) {\r\n var _this = this;\r\n deferred.fail((function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n if (args[0] === CANCELED_TOKEN) {\r\n return\r\n }\r\n _this._eventsStrategy.fireEvent(\"loadError\", args)\r\n }))\r\n },\r\n _fireChanged(args) {\r\n var date = new Date;\r\n this._eventsStrategy.fireEvent(\"changed\", args);\r\n this._changedTime = new Date - date\r\n },\r\n _scheduleChangedCallbacks(deferred) {\r\n deferred.done(() => this._fireChanged())\r\n },\r\n loadSingle(propName, propValue) {\r\n var d = new Deferred;\r\n var key = this.key();\r\n var store = this._store;\r\n var options = this._createStoreLoadOptions();\r\n this._scheduleFailCallbacks(d);\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = key\r\n }\r\n delete options.skip;\r\n delete options.group;\r\n delete options.refresh;\r\n delete options.pageIndex;\r\n delete options.searchString;\r\n (() => {\r\n if (propName === key || store instanceof CustomStore && !store._byKeyViaLoad()) {\r\n return store.byKey(propValue, options)\r\n }\r\n options.take = 1;\r\n options.filter = options.filter ? [options.filter, [propName, propValue]] : [propName, propValue];\r\n return store.load(options)\r\n })().fail(d.reject).done(data => {\r\n var isEmptyArray = Array.isArray(data) && !data.length;\r\n if (!isDefined(data) || isEmptyArray) {\r\n d.reject(new errors.Error(\"E4009\"))\r\n } else {\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n d.resolve(this._applyMapFunction(data)[0])\r\n }\r\n });\r\n return d.promise()\r\n },\r\n load() {\r\n var d = new Deferred;\r\n var loadTask = () => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(d)) {\r\n return\r\n }\r\n return this._loadFromStore(loadOperation, d)\r\n };\r\n this._scheduleLoadCallbacks(d);\r\n this._scheduleFailCallbacks(d);\r\n this._scheduleChangedCallbacks(d);\r\n var loadOperation = this._createLoadOperation(d);\r\n this._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [loadOperation]);\r\n this._loadQueue.add(() => {\r\n if (\"number\" === typeof loadOperation.delay) {\r\n this._delayedLoadTask = executeAsync(loadTask, loadOperation.delay)\r\n } else {\r\n loadTask()\r\n }\r\n return d.promise()\r\n });\r\n return d.promise({\r\n operationId: loadOperation.operationId\r\n })\r\n },\r\n _onPush(changes) {\r\n if (this._reshapeOnPush) {\r\n this.load()\r\n } else {\r\n var changingArgs = {\r\n changes: changes\r\n };\r\n this._eventsStrategy.fireEvent(\"changing\", [changingArgs]);\r\n var group = this.group();\r\n var items = this.items();\r\n var groupLevel = 0;\r\n var dataSourceChanges = this.paginate() || group ? changes.filter(item => \"update\" === item.type) : changes;\r\n if (group) {\r\n groupLevel = Array.isArray(group) ? group.length : 1\r\n }\r\n if (this._mapFunc) {\r\n dataSourceChanges.forEach(item => {\r\n if (\"insert\" === item.type) {\r\n item.data = this._mapFunc(item.data)\r\n }\r\n })\r\n }\r\n if (changingArgs.postProcessChanges) {\r\n dataSourceChanges = changingArgs.postProcessChanges(dataSourceChanges)\r\n }\r\n applyBatch({\r\n keyInfo: this.store(),\r\n data: items,\r\n changes: dataSourceChanges,\r\n groupCount: groupLevel,\r\n useInsertIndex: true\r\n });\r\n this._fireChanged([{\r\n changes: changes\r\n }])\r\n }\r\n },\r\n _createLoadOperation(deferred) {\r\n var operationId = this._operationManager.add(deferred);\r\n var storeLoadOptions = this._createStoreLoadOptions();\r\n if (this._store && !isEmptyObject(null === storeLoadOptions || void 0 === storeLoadOptions ? void 0 : storeLoadOptions.langParams)) {\r\n this._store._langParams = _extends({}, this._store._langParams, storeLoadOptions.langParams)\r\n }\r\n deferred.always(() => this._operationManager.remove(operationId));\r\n return {\r\n operationId: operationId,\r\n storeLoadOptions: storeLoadOptions\r\n }\r\n },\r\n reload() {\r\n var store = this.store();\r\n store._clearCache();\r\n this._init();\r\n return this.load()\r\n },\r\n cancel(operationId) {\r\n return this._operationManager.cancel(operationId)\r\n },\r\n cancelAll() {\r\n return this._operationManager.cancelAll()\r\n },\r\n _addSearchOptions(storeLoadOptions) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (this.store()._useDefaultSearch) {\r\n this._addSearchFilter(storeLoadOptions)\r\n } else {\r\n storeLoadOptions.searchOperation = this._searchOperation;\r\n storeLoadOptions.searchValue = this._searchValue;\r\n storeLoadOptions.searchExpr = this._searchExpr\r\n }\r\n },\r\n _createStoreLoadOptions() {\r\n var result = extend({}, this._storeLoadOptions);\r\n this._addSearchOptions(result);\r\n if (this._paginate) {\r\n if (this._pageSize) {\r\n result.skip = this._pageIndex * this._pageSize;\r\n result.take = this._pageSize\r\n }\r\n }\r\n result.userData = this._userData;\r\n return result\r\n },\r\n _addSearchFilter(storeLoadOptions) {\r\n var value = this._searchValue;\r\n var op = this._searchOperation;\r\n var selector = this._searchExpr;\r\n var searchFilter = [];\r\n if (!value) {\r\n return\r\n }\r\n if (!selector) {\r\n selector = \"this\"\r\n }\r\n if (!Array.isArray(selector)) {\r\n selector = [selector]\r\n }\r\n each(selector, (function(i, item) {\r\n if (searchFilter.length) {\r\n searchFilter.push(\"or\")\r\n }\r\n searchFilter.push([item, op, value])\r\n }));\r\n if (storeLoadOptions.filter) {\r\n storeLoadOptions.filter = [searchFilter, storeLoadOptions.filter]\r\n } else {\r\n storeLoadOptions.filter = searchFilter\r\n }\r\n },\r\n _loadFromStore(loadOptions, pendingDeferred) {\r\n var handleSuccess = (data, extra) => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(pendingDeferred)) {\r\n return\r\n }\r\n var loadResult = extend(normalizeLoadResult(data, extra), loadOptions);\r\n this._eventsStrategy.fireEvent(\"customizeLoadResult\", [loadResult]);\r\n when(loadResult.data).done(data => {\r\n loadResult.data = data;\r\n this._processStoreLoadResult(loadResult, pendingDeferred)\r\n }).fail(pendingDeferred.reject)\r\n };\r\n if (loadOptions.data) {\r\n return (new Deferred).resolve(loadOptions.data).done(handleSuccess)\r\n }\r\n return this.store().load(loadOptions.storeLoadOptions).done(handleSuccess).fail(pendingDeferred.reject)\r\n },\r\n _processStoreLoadResult(loadResult, pendingDeferred) {\r\n var data = loadResult.data;\r\n var extra = loadResult.extra;\r\n var storeLoadOptions = loadResult.storeLoadOptions;\r\n var resolvePendingDeferred = () => {\r\n this._isLoaded = true;\r\n this._totalCount = isFinite(extra.totalCount) ? extra.totalCount : -1;\r\n return pendingDeferred.resolve(data, extra)\r\n };\r\n if (this._disposed) {\r\n return\r\n }\r\n data = this._applyPostProcessFunction(this._applyMapFunction(data));\r\n if (!isObject(extra)) {\r\n extra = {}\r\n }\r\n this._items = data;\r\n if (!data.length || !this._paginate || this._pageSize && data.length < this._pageSize) {\r\n this._isLastPage = true\r\n }\r\n if (storeLoadOptions.requireTotalCount && !isFinite(extra.totalCount)) {\r\n (() => {\r\n this.store().totalCount(storeLoadOptions).done((function(count) {\r\n extra.totalCount = count;\r\n resolvePendingDeferred()\r\n })).fail(pendingDeferred.reject)\r\n })()\r\n } else {\r\n resolvePendingDeferred()\r\n }\r\n },\r\n _applyMapFunction(data) {\r\n if (this._mapFunc) {\r\n return mapDataRespectingGrouping(data, this._mapFunc, this.group())\r\n }\r\n return data\r\n },\r\n _applyPostProcessFunction(data) {\r\n if (this._postProcessFunc) {\r\n return this._postProcessFunc(data)\r\n }\r\n return data\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/math.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isExponential\r\n} from \"./type\";\r\nvar sign = function(value) {\r\n if (0 === value) {\r\n return 0\r\n }\r\n return value / Math.abs(value)\r\n};\r\nvar fitIntoRange = function(value, minValue, maxValue) {\r\n var isMinValueUndefined = !minValue && 0 !== minValue;\r\n var isMaxValueUndefined = !maxValue && 0 !== maxValue;\r\n isMinValueUndefined && (minValue = !isMaxValueUndefined ? Math.min(value, maxValue) : value);\r\n isMaxValueUndefined && (maxValue = !isMinValueUndefined ? Math.max(value, minValue) : value);\r\n return Math.min(Math.max(value, minValue), maxValue)\r\n};\r\nvar inRange = function(value, minValue, maxValue) {\r\n return value >= minValue && value <= maxValue\r\n};\r\n\r\nfunction getExponent(value) {\r\n return Math.abs(parseInt(value.toExponential().split(\"e\")[1]))\r\n}\r\n\r\nfunction getExponentialNotation(value) {\r\n var parts = value.toExponential().split(\"e\");\r\n var mantissa = parseFloat(parts[0]);\r\n var exponent = parseInt(parts[1]);\r\n return {\r\n exponent: exponent,\r\n mantissa: mantissa\r\n }\r\n}\r\n\r\nfunction multiplyInExponentialForm(value, exponentShift) {\r\n var exponentialNotation = getExponentialNotation(value);\r\n return parseFloat(\"\".concat(exponentialNotation.mantissa, \"e\").concat(exponentialNotation.exponent + exponentShift))\r\n}\r\n\r\nfunction _isEdgeBug() {\r\n return \"0.000300\" !== 3e-4.toPrecision(3)\r\n}\r\n\r\nfunction adjust(value, interval) {\r\n var precision = getPrecision(interval || 0) + 2;\r\n var separatedValue = value.toString().split(\".\");\r\n var sourceValue = value;\r\n var absValue = Math.abs(value);\r\n var separatedAdjustedValue;\r\n var isExponentValue = isExponential(value);\r\n var integerPart = absValue > 1 ? 10 : 0;\r\n if (1 === separatedValue.length) {\r\n return value\r\n }\r\n if (!isExponentValue) {\r\n if (isExponential(interval)) {\r\n precision = separatedValue[0].length + getExponent(interval)\r\n }\r\n value = absValue;\r\n value = value - Math.floor(value) + integerPart\r\n }\r\n precision = _isEdgeBug() && getExponent(value) > 6 || precision > 7 ? 15 : 7;\r\n if (!isExponentValue) {\r\n separatedAdjustedValue = parseFloat(value.toPrecision(precision)).toString().split(\".\");\r\n if (separatedAdjustedValue[0] === integerPart.toString()) {\r\n return parseFloat(separatedValue[0] + \".\" + separatedAdjustedValue[1])\r\n }\r\n }\r\n return parseFloat(sourceValue.toPrecision(precision))\r\n}\r\n\r\nfunction getPrecision(value) {\r\n var str = value.toString();\r\n if (str.indexOf(\".\") < 0) {\r\n return 0\r\n }\r\n var mantissa = str.split(\".\");\r\n var positionOfDelimiter = mantissa[1].indexOf(\"e\");\r\n return positionOfDelimiter >= 0 ? positionOfDelimiter : mantissa[1].length\r\n}\r\n\r\nfunction getRoot(x, n) {\r\n if (x < 0 && n % 2 !== 1) {\r\n return NaN\r\n }\r\n var y = Math.pow(Math.abs(x), 1 / n);\r\n return n % 2 === 1 && x < 0 ? -y : y\r\n}\r\n\r\nfunction solveCubicEquation(a, b, c, d) {\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n c = d;\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n if (Math.abs(a) < 1e-8) {\r\n return []\r\n }\r\n return [-b / a]\r\n }\r\n var D2 = b * b - 4 * a * c;\r\n if (Math.abs(D2) < 1e-8) {\r\n return [-b / (2 * a)]\r\n } else if (D2 > 0) {\r\n return [(-b + Math.sqrt(D2)) / (2 * a), (-b - Math.sqrt(D2)) / (2 * a)]\r\n }\r\n return []\r\n }\r\n var p = (3 * a * c - b * b) / (3 * a * a);\r\n var q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);\r\n var roots;\r\n var u;\r\n if (Math.abs(p) < 1e-8) {\r\n roots = [getRoot(-q, 3)]\r\n } else if (Math.abs(q) < 1e-8) {\r\n roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : [])\r\n } else {\r\n var D3 = q * q / 4 + p * p * p / 27;\r\n if (Math.abs(D3) < 1e-8) {\r\n roots = [-1.5 * q / p, 3 * q / p]\r\n } else if (D3 > 0) {\r\n u = getRoot(-q / 2 - Math.sqrt(D3), 3);\r\n roots = [u - p / (3 * u)]\r\n } else {\r\n u = 2 * Math.sqrt(-p / 3);\r\n var t = Math.acos(3 * q / p / u) / 3;\r\n var k = 2 * Math.PI / 3;\r\n roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)]\r\n }\r\n }\r\n for (var i = 0; i < roots.length; i++) {\r\n roots[i] -= b / (3 * a)\r\n }\r\n return roots\r\n}\r\n\r\nfunction trunc(value) {\r\n return Math.trunc ? Math.trunc(value) : value > 0 ? Math.floor(value) : Math.ceil(value)\r\n}\r\n\r\nfunction getRemainderByDivision(dividend, divider, digitsCount) {\r\n if (divider === parseInt(divider)) {\r\n return dividend % divider\r\n }\r\n var quotient = roundFloatPart(dividend / divider, digitsCount);\r\n return (quotient - parseInt(quotient)) * divider\r\n}\r\n\r\nfunction getExponentLength(value) {\r\n var _valueString$split$;\r\n var valueString = value.toString();\r\n return (null === (_valueString$split$ = valueString.split(\".\")[1]) || void 0 === _valueString$split$ ? void 0 : _valueString$split$.length) || parseInt(valueString.split(\"e-\")[1]) || 0\r\n}\r\n\r\nfunction roundFloatPart(value) {\r\n var digitsCount = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n return parseFloat(value.toFixed(digitsCount))\r\n}\r\nexport {\r\n sign,\r\n fitIntoRange,\r\n inRange,\r\n adjust,\r\n getPrecision,\r\n getExponent,\r\n getRoot,\r\n solveCubicEquation,\r\n trunc,\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision,\r\n multiplyInExponentialForm\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/date/toMilliseconds.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar timeIntervals = {\r\n millisecond: 1,\r\n second: 1e3,\r\n minute: 6e4,\r\n hour: 36e5,\r\n day: 864e5,\r\n week: 6048e5,\r\n month: 2592e6,\r\n quarter: 7776e6,\r\n year: 31536e6\r\n};\r\nexport function toMilliseconds(value) {\r\n return timeIntervals[value]\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/date.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject,\r\n isString,\r\n isDate,\r\n isDefined,\r\n isNumeric\r\n} from \"./type\";\r\nimport {\r\n adjust\r\n} from \"./math\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport {\r\n toMilliseconds\r\n} from \"../../renovation/ui/common/utils/date/index\";\r\nvar DAYS_IN_WEEK = 7;\r\nvar THURSDAY_WEEK_NUMBER = 4;\r\nvar SUNDAY_WEEK_NUMBER = 7;\r\nvar USUAL_WEEK_COUNT_IN_YEAR = 52;\r\nvar dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\"];\r\nvar getDatesInterval = function(startDate, endDate, intervalUnit) {\r\n var delta = endDate.getTime() - startDate.getTime();\r\n var millisecondCount = toMilliseconds(intervalUnit) || 1;\r\n return Math.floor(delta / millisecondCount)\r\n};\r\nvar getNextDateUnit = function(unit, withWeeks) {\r\n var interval = getDateUnitInterval(unit);\r\n switch (interval) {\r\n case \"millisecond\":\r\n return \"second\";\r\n case \"second\":\r\n return \"minute\";\r\n case \"minute\":\r\n return \"hour\";\r\n case \"hour\":\r\n return \"day\";\r\n case \"day\":\r\n return withWeeks ? \"week\" : \"month\";\r\n case \"week\":\r\n return \"month\";\r\n case \"month\":\r\n return \"quarter\";\r\n case \"quarter\":\r\n case \"year\":\r\n return \"year\";\r\n default:\r\n return 0\r\n }\r\n};\r\nvar convertMillisecondsToDateUnits = function(value) {\r\n var i;\r\n var dateUnitCount;\r\n var dateUnitInterval;\r\n var dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"];\r\n var result = {};\r\n for (i = dateUnitIntervals.length - 1; i >= 0; i--) {\r\n dateUnitInterval = dateUnitIntervals[i];\r\n dateUnitCount = Math.floor(value / toMilliseconds(dateUnitInterval));\r\n if (dateUnitCount > 0) {\r\n result[dateUnitInterval + \"s\"] = dateUnitCount;\r\n value -= convertDateUnitToMilliseconds(dateUnitInterval, dateUnitCount)\r\n }\r\n }\r\n return result\r\n};\r\nvar dateToMilliseconds = function(tickInterval) {\r\n var milliseconds = 0;\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n milliseconds += convertDateUnitToMilliseconds(key.substr(0, key.length - 1), value)\r\n }))\r\n }\r\n if (isString(tickInterval)) {\r\n milliseconds = convertDateUnitToMilliseconds(tickInterval, 1)\r\n }\r\n return milliseconds\r\n};\r\n\r\nfunction convertDateUnitToMilliseconds(dateUnit, count) {\r\n return toMilliseconds(dateUnit) * count\r\n}\r\n\r\nfunction getDateUnitInterval(tickInterval) {\r\n var maxInterval = -1;\r\n var i;\r\n if (isString(tickInterval)) {\r\n return tickInterval\r\n }\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n for (i = 0; i < dateUnitIntervals.length; i++) {\r\n if (value && (key === dateUnitIntervals[i] + \"s\" || key === dateUnitIntervals[i]) && maxInterval < i) {\r\n maxInterval = i\r\n }\r\n }\r\n }));\r\n return dateUnitIntervals[maxInterval]\r\n }\r\n return \"\"\r\n}\r\nvar tickIntervalToFormatMap = {\r\n millisecond: \"millisecond\",\r\n second: \"longtime\",\r\n minute: \"shorttime\",\r\n hour: \"shorttime\",\r\n day: \"day\",\r\n week: \"day\",\r\n month: \"month\",\r\n quarter: \"quarter\",\r\n year: \"year\"\r\n};\r\n\r\nfunction getDateFormatByTickInterval(tickInterval) {\r\n return tickIntervalToFormatMap[getDateUnitInterval(tickInterval)] || \"\"\r\n}\r\nvar getQuarter = function(month) {\r\n return Math.floor(month / 3)\r\n};\r\nvar getFirstQuarterMonth = function(month) {\r\n return 3 * getQuarter(month)\r\n};\r\n\r\nfunction correctDateWithUnitBeginning(date, dateInterval, withCorrection, firstDayOfWeek) {\r\n date = new Date(date.getTime());\r\n var oldDate = new Date(date.getTime());\r\n var firstQuarterMonth;\r\n var month;\r\n var dateUnitInterval = getDateUnitInterval(dateInterval);\r\n switch (dateUnitInterval) {\r\n case \"second\":\r\n date = new Date(1e3 * Math.floor(oldDate.getTime() / 1e3));\r\n break;\r\n case \"minute\":\r\n date = new Date(6e4 * Math.floor(oldDate.getTime() / 6e4));\r\n break;\r\n case \"hour\":\r\n date = new Date(36e5 * Math.floor(oldDate.getTime() / 36e5));\r\n break;\r\n case \"year\":\r\n date.setMonth(0);\r\n case \"month\":\r\n date.setDate(1);\r\n case \"day\":\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"week\":\r\n date = getFirstWeekDate(date, firstDayOfWeek || 0);\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"quarter\":\r\n firstQuarterMonth = getFirstQuarterMonth(date.getMonth());\r\n month = date.getMonth();\r\n date.setDate(1);\r\n date.setHours(0, 0, 0, 0);\r\n if (month !== firstQuarterMonth) {\r\n date.setMonth(firstQuarterMonth)\r\n }\r\n }\r\n if (withCorrection && \"hour\" !== dateUnitInterval && \"minute\" !== dateUnitInterval && \"second\" !== dateUnitInterval) {\r\n fixTimezoneGap(oldDate, date)\r\n }\r\n return date\r\n}\r\n\r\nfunction trimTime(date) {\r\n return correctDateWithUnitBeginning(date, \"day\")\r\n}\r\nvar setToDayEnd = function(date) {\r\n var result = trimTime(date);\r\n result.setDate(result.getDate() + 1);\r\n return new Date(result.getTime() - 1)\r\n};\r\nvar getDatesDifferences = function(date1, date2) {\r\n var counter = 0;\r\n var differences = {\r\n year: date1.getFullYear() !== date2.getFullYear(),\r\n month: date1.getMonth() !== date2.getMonth(),\r\n day: date1.getDate() !== date2.getDate(),\r\n hour: date1.getHours() !== date2.getHours(),\r\n minute: date1.getMinutes() !== date2.getMinutes(),\r\n second: date1.getSeconds() !== date2.getSeconds(),\r\n millisecond: date1.getMilliseconds() !== date2.getMilliseconds()\r\n };\r\n each(differences, (function(key, value) {\r\n if (value) {\r\n counter++\r\n }\r\n }));\r\n if (0 === counter && 0 !== getTimezonesDifference(date1, date2)) {\r\n differences.hour = true;\r\n counter++\r\n }\r\n differences.count = counter;\r\n return differences\r\n};\r\n\r\nfunction addDateInterval(value, interval, dir) {\r\n var result = new Date(value.getTime());\r\n var intervalObject = isString(interval) ? getDateIntervalByString(interval.toLowerCase()) : isNumeric(interval) ? convertMillisecondsToDateUnits(interval) : interval;\r\n if (intervalObject.years) {\r\n result.setFullYear(result.getFullYear() + intervalObject.years * dir)\r\n }\r\n if (intervalObject.quarters) {\r\n result.setMonth(result.getMonth() + 3 * intervalObject.quarters * dir)\r\n }\r\n if (intervalObject.months) {\r\n result.setMonth(result.getMonth() + intervalObject.months * dir)\r\n }\r\n if (intervalObject.weeks) {\r\n result.setDate(result.getDate() + 7 * intervalObject.weeks * dir)\r\n }\r\n if (intervalObject.days) {\r\n result.setDate(result.getDate() + intervalObject.days * dir)\r\n }\r\n if (intervalObject.hours) {\r\n result.setTime(result.getTime() + 36e5 * intervalObject.hours * dir)\r\n }\r\n if (intervalObject.minutes) {\r\n result.setTime(result.getTime() + 6e4 * intervalObject.minutes * dir)\r\n }\r\n if (intervalObject.seconds) {\r\n result.setTime(result.getTime() + 1e3 * intervalObject.seconds * dir)\r\n }\r\n if (intervalObject.milliseconds) {\r\n result.setTime(result.getTime() + intervalObject.milliseconds * dir)\r\n }\r\n return result\r\n}\r\nvar addInterval = function(value, interval, isNegative) {\r\n var dir = isNegative ? -1 : 1;\r\n return isDate(value) ? addDateInterval(value, interval, dir) : adjust(value + interval * dir, interval)\r\n};\r\nvar getSequenceByInterval = function(min, max, interval) {\r\n var intervals = [];\r\n var cur;\r\n intervals.push(isDate(min) ? new Date(min.getTime()) : min);\r\n cur = min;\r\n while (cur < max) {\r\n cur = addInterval(cur, interval);\r\n intervals.push(cur)\r\n }\r\n return intervals\r\n};\r\nvar getViewFirstCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 0, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date), date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date), date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewLastCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), getLastMonthDay(date))\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 11, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date) + 9, date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date) + 90, date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewMinBoundaryDate = function(viewType, date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth(), 1);\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(0);\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date))\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date))\r\n }\r\n return resultDate\r\n};\r\nvar getViewMaxBoundaryDate = function(viewType, date) {\r\n var resultDate = new Date(date);\r\n resultDate.setDate(getLastMonthDay(date));\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(11);\r\n resultDate.setDate(getLastMonthDay(resultDate));\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date) + 9)\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date) + 99)\r\n }\r\n return resultDate\r\n};\r\n\r\nfunction getLastMonthDay(date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return resultDate.getDate()\r\n}\r\nvar getViewUp = function(typeView) {\r\n switch (typeView) {\r\n case \"month\":\r\n return \"year\";\r\n case \"year\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"century\"\r\n }\r\n};\r\nvar getViewDown = function(typeView) {\r\n switch (typeView) {\r\n case \"century\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"year\";\r\n case \"year\":\r\n return \"month\"\r\n }\r\n};\r\nvar getDifferenceInMonth = function(typeView) {\r\n var difference = 1;\r\n if (\"year\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"decade\" === typeView) {\r\n difference = 120\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 1200\r\n }\r\n return difference\r\n};\r\nvar getDifferenceInMonthForCells = function(typeView) {\r\n var difference = 1;\r\n if (\"decade\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 120\r\n }\r\n return difference\r\n};\r\n\r\nfunction getDateIntervalByString(intervalString) {\r\n var result = {};\r\n switch (intervalString) {\r\n case \"year\":\r\n result.years = 1;\r\n break;\r\n case \"month\":\r\n result.months = 1;\r\n break;\r\n case \"quarter\":\r\n result.months = 3;\r\n break;\r\n case \"week\":\r\n result.weeks = 1;\r\n break;\r\n case \"day\":\r\n result.days = 1;\r\n break;\r\n case \"hour\":\r\n result.hours = 1;\r\n break;\r\n case \"minute\":\r\n result.minutes = 1;\r\n break;\r\n case \"second\":\r\n result.seconds = 1;\r\n break;\r\n case \"millisecond\":\r\n result.milliseconds = 1\r\n }\r\n return result\r\n}\r\n\r\nfunction sameDate(date1, date2) {\r\n return sameMonthAndYear(date1, date2) && date1.getDate() === date2.getDate()\r\n}\r\n\r\nfunction sameMonthAndYear(date1, date2) {\r\n return sameYear(date1, date2) && date1.getMonth() === date2.getMonth()\r\n}\r\n\r\nfunction sameYear(date1, date2) {\r\n return date1 && date2 && date1.getFullYear() === date2.getFullYear()\r\n}\r\n\r\nfunction sameHoursAndMinutes(date1, date2) {\r\n return date1 && date2 && date1.getHours() === date2.getHours() && date1.getMinutes() === date2.getMinutes()\r\n}\r\nvar sameDecade = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startDecadeDate1 = date1.getFullYear() - date1.getFullYear() % 10;\r\n var startDecadeDate2 = date2.getFullYear() - date2.getFullYear() % 10;\r\n return date1 && date2 && startDecadeDate1 === startDecadeDate2\r\n};\r\nvar sameCentury = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startCenturyDate1 = date1.getFullYear() - date1.getFullYear() % 100;\r\n var startCenturyDate2 = date2.getFullYear() - date2.getFullYear() % 100;\r\n return date1 && date2 && startCenturyDate1 === startCenturyDate2\r\n};\r\n\r\nfunction getFirstDecadeInCentury(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 100\r\n}\r\n\r\nfunction getFirstYearInDecade(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 10\r\n}\r\nvar getShortDateFormat = function() {\r\n return \"yyyy/MM/dd\"\r\n};\r\nvar getFirstMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n};\r\nvar getLastMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0)\r\n};\r\n\r\nfunction getFirstWeekDate(date, firstDayOfWeek) {\r\n var delta = (date.getDay() - firstDayOfWeek + DAYS_IN_WEEK) % DAYS_IN_WEEK;\r\n var result = new Date(date);\r\n result.setDate(date.getDate() - delta);\r\n return result\r\n}\r\n\r\nfunction getUTCTime(date) {\r\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())\r\n}\r\n\r\nfunction getDayNumber(date) {\r\n var ms = getUTCTime(date) - getUTCTime(getFirstDateInYear(date.getFullYear()));\r\n return 1 + Math.floor(ms / toMilliseconds(\"day\"))\r\n}\r\n\r\nfunction getFirstDateInYear(year) {\r\n return new Date(year, 0, 1)\r\n}\r\n\r\nfunction getLastDateInYear(year) {\r\n return new Date(year, 11, 31)\r\n}\r\n\r\nfunction getDayWeekNumber(date, firstDayOfWeek) {\r\n var day = date.getDay() - firstDayOfWeek + 1;\r\n if (day <= 0) {\r\n day += DAYS_IN_WEEK\r\n }\r\n return day\r\n}\r\n\r\nfunction getWeekNumber(date, firstDayOfWeek, rule) {\r\n var firstWeekDayInYear = getDayWeekNumber(getFirstDateInYear(date.getFullYear()), firstDayOfWeek);\r\n var lastWeekDayInYear = getDayWeekNumber(getLastDateInYear(date.getFullYear()), firstDayOfWeek);\r\n var daysInFirstWeek = DAYS_IN_WEEK - firstWeekDayInYear + 1;\r\n var weekNumber = Math.ceil((getDayNumber(date) - daysInFirstWeek) / 7);\r\n switch (rule) {\r\n case \"fullWeek\":\r\n if (daysInFirstWeek === DAYS_IN_WEEK) {\r\n weekNumber++\r\n }\r\n if (0 === weekNumber) {\r\n var lastDateInPreviousYear = getLastDateInYear(date.getFullYear() - 1);\r\n return getWeekNumber(lastDateInPreviousYear, firstDayOfWeek, rule)\r\n }\r\n return weekNumber;\r\n case \"firstDay\":\r\n if (daysInFirstWeek > 0) {\r\n weekNumber++\r\n }\r\n var isSunday = firstWeekDayInYear === SUNDAY_WEEK_NUMBER || lastWeekDayInYear === SUNDAY_WEEK_NUMBER;\r\n if (weekNumber > USUAL_WEEK_COUNT_IN_YEAR && !isSunday || 54 === weekNumber) {\r\n weekNumber = 1\r\n }\r\n return weekNumber;\r\n case \"firstFourDays\":\r\n if (daysInFirstWeek > 3) {\r\n weekNumber++\r\n }\r\n var isThursday = firstWeekDayInYear === THURSDAY_WEEK_NUMBER || lastWeekDayInYear === THURSDAY_WEEK_NUMBER;\r\n if (weekNumber > USUAL_WEEK_COUNT_IN_YEAR && !isThursday) {\r\n weekNumber = 1\r\n }\r\n if (0 === weekNumber) {\r\n var _lastDateInPreviousYear = getLastDateInYear(date.getFullYear() - 1);\r\n return getWeekNumber(_lastDateInPreviousYear, firstDayOfWeek, rule)\r\n }\r\n return weekNumber\r\n }\r\n}\r\nvar normalizeDateByWeek = function(date, currentDate) {\r\n var differenceInDays = dateUtils.getDatesInterval(date, currentDate, \"day\");\r\n var resultDate = new Date(date);\r\n if (differenceInDays >= 6) {\r\n resultDate = new Date(resultDate.setDate(resultDate.getDate() + 7))\r\n }\r\n return resultDate\r\n};\r\nvar dateInRange = function(date, min, max, format) {\r\n if (\"date\" === format) {\r\n min = min && dateUtils.correctDateWithUnitBeginning(min, \"day\");\r\n max = max && dateUtils.correctDateWithUnitBeginning(max, \"day\");\r\n date = date && dateUtils.correctDateWithUnitBeginning(date, \"day\")\r\n }\r\n return normalizeDate(date, min, max) === date\r\n};\r\nvar intervalsOverlap = function(options) {\r\n var {\r\n firstMin: firstMin,\r\n firstMax: firstMax,\r\n secondMin: secondMin,\r\n secondMax: secondMax\r\n } = options;\r\n return firstMin <= secondMin && secondMin <= firstMax || firstMin > secondMin && firstMin < secondMax || firstMin < secondMax && firstMax > secondMax\r\n};\r\nvar dateTimeFromDecimal = function(number) {\r\n var hours = Math.floor(number);\r\n var minutes = number % 1 * 60;\r\n return {\r\n hours: hours,\r\n minutes: minutes\r\n }\r\n};\r\nvar roundDateByStartDayHour = function(date, startDayHour) {\r\n var startTime = this.dateTimeFromDecimal(startDayHour);\r\n var result = new Date(date);\r\n if (date.getHours() === startTime.hours && date.getMinutes() < startTime.minutes || date.getHours() < startTime.hours) {\r\n result.setHours(startTime.hours, startTime.minutes, 0, 0)\r\n }\r\n return result\r\n};\r\n\r\nfunction normalizeDate(date, min, max) {\r\n var normalizedDate = date;\r\n if (!isDefined(date)) {\r\n return date\r\n }\r\n if (isDefined(min) && date < min) {\r\n normalizedDate = min\r\n }\r\n if (isDefined(max) && date > max) {\r\n normalizedDate = max\r\n }\r\n return normalizedDate\r\n}\r\n\r\nfunction fixTimezoneGap(oldDate, newDate) {\r\n if (!isDefined(oldDate)) {\r\n return\r\n }\r\n var diff = newDate.getHours() - oldDate.getHours();\r\n if (0 === diff) {\r\n return\r\n }\r\n var sign = 1 === diff || -23 === diff ? -1 : 1;\r\n var trial = new Date(newDate.getTime() + 36e5 * sign);\r\n if (sign > 0 || trial.getDate() === newDate.getDate()) {\r\n newDate.setTime(trial.getTime())\r\n }\r\n}\r\nvar roundToHour = function(date) {\r\n var result = new Date(date.getTime());\r\n result.setHours(result.getHours() + 1);\r\n result.setMinutes(0);\r\n return result\r\n};\r\n\r\nfunction getTimezonesDifference(min, max) {\r\n return 60 * (max.getTimezoneOffset() - min.getTimezoneOffset()) * 1e3\r\n}\r\nvar makeDate = function(date) {\r\n return new Date(date)\r\n};\r\nvar getDatesOfInterval = function(startDate, endDate, step) {\r\n var result = [];\r\n var currentDate = new Date(startDate.getTime());\r\n while (currentDate < endDate) {\r\n result.push(new Date(currentDate.getTime()));\r\n currentDate = this.addInterval(currentDate, step)\r\n }\r\n return result\r\n};\r\nvar createDateWithFullYear = function(year) {\r\n var result = new Date(...arguments);\r\n result.setFullYear(year);\r\n return result\r\n};\r\nvar getMachineTimezoneName = () => {\r\n var hasIntl = \"undefined\" !== typeof Intl;\r\n return hasIntl ? Intl.DateTimeFormat().resolvedOptions().timeZone : null\r\n};\r\nvar dateUtils = {\r\n dateUnitIntervals: dateUnitIntervals,\r\n convertMillisecondsToDateUnits: convertMillisecondsToDateUnits,\r\n dateToMilliseconds: dateToMilliseconds,\r\n getNextDateUnit: getNextDateUnit,\r\n convertDateUnitToMilliseconds: convertDateUnitToMilliseconds,\r\n getDateUnitInterval: getDateUnitInterval,\r\n getDateFormatByTickInterval: getDateFormatByTickInterval,\r\n getDatesDifferences: getDatesDifferences,\r\n correctDateWithUnitBeginning: correctDateWithUnitBeginning,\r\n trimTime: trimTime,\r\n setToDayEnd: setToDayEnd,\r\n roundDateByStartDayHour: roundDateByStartDayHour,\r\n dateTimeFromDecimal: dateTimeFromDecimal,\r\n addDateInterval: addDateInterval,\r\n addInterval: addInterval,\r\n getSequenceByInterval: getSequenceByInterval,\r\n getDateIntervalByString: getDateIntervalByString,\r\n sameHoursAndMinutes: sameHoursAndMinutes,\r\n sameDate: sameDate,\r\n sameMonthAndYear: sameMonthAndYear,\r\n sameMonth: sameMonthAndYear,\r\n sameYear: sameYear,\r\n sameDecade: sameDecade,\r\n sameCentury: sameCentury,\r\n getDifferenceInMonth: getDifferenceInMonth,\r\n getDifferenceInMonthForCells: getDifferenceInMonthForCells,\r\n getFirstYearInDecade: getFirstYearInDecade,\r\n getFirstDecadeInCentury: getFirstDecadeInCentury,\r\n getShortDateFormat: getShortDateFormat,\r\n getViewFirstCellDate: getViewFirstCellDate,\r\n getViewLastCellDate: getViewLastCellDate,\r\n getViewDown: getViewDown,\r\n getViewUp: getViewUp,\r\n getLastMonthDay: getLastMonthDay,\r\n getLastMonthDate: getLastMonthDate,\r\n getFirstMonthDate: getFirstMonthDate,\r\n getFirstWeekDate: getFirstWeekDate,\r\n getWeekNumber: getWeekNumber,\r\n normalizeDateByWeek: normalizeDateByWeek,\r\n getQuarter: getQuarter,\r\n getFirstQuarterMonth: getFirstQuarterMonth,\r\n dateInRange: dateInRange,\r\n intervalsOverlap: intervalsOverlap,\r\n roundToHour: roundToHour,\r\n normalizeDate: normalizeDate,\r\n getViewMinBoundaryDate: getViewMinBoundaryDate,\r\n getViewMaxBoundaryDate: getViewMaxBoundaryDate,\r\n fixTimezoneGap: fixTimezoneGap,\r\n getTimezonesDifference: getTimezonesDifference,\r\n makeDate: makeDate,\r\n getDatesInterval: getDatesInterval,\r\n getDatesOfInterval: getDatesOfInterval,\r\n createDateWithFullYear: createDateWithFullYear,\r\n getMachineTimezoneName: getMachineTimezoneName\r\n};\r\ndateUtils.sameView = function(view, date1, date2) {\r\n return dateUtils[camelize(\"same \" + view)](date1, date2)\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/localization/utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sign,\r\n multiplyInExponentialForm\r\n} from \"../core/utils/math\";\r\nvar DECIMAL_BASE = 10;\r\n\r\nfunction roundByAbs(value) {\r\n var valueSign = sign(value);\r\n return valueSign * Math.round(Math.abs(value))\r\n}\r\n\r\nfunction adjustValue(value, precision) {\r\n var precisionMultiplier = Math.pow(DECIMAL_BASE, precision);\r\n var intermediateValue = multiplyInExponentialForm(value, precision);\r\n return roundByAbs(intermediateValue) / precisionMultiplier\r\n}\r\nexport function toFixed(value, precision) {\r\n var valuePrecision = precision || 0;\r\n var adjustedValue = valuePrecision > 0 ? adjustValue(...arguments) : value;\r\n return adjustedValue.toFixed(valuePrecision)\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/ldml/number.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange,\r\n multiplyInExponentialForm\r\n} from \"../../core/utils/math\";\r\nimport {\r\n toFixed\r\n} from \"../utils\";\r\nvar DEFAULT_CONFIG = {\r\n thousandsSeparator: \",\",\r\n decimalSeparator: \".\"\r\n};\r\nvar ESCAPING_CHAR = \"'\";\r\nvar MAXIMUM_NUMBER_LENGTH = 15;\r\nvar PERCENT_EXPONENT_SHIFT = 2;\r\n\r\nfunction getGroupSizes(formatString) {\r\n return formatString.split(\",\").slice(1).map((function(str) {\r\n var singleQuotesLeft = 0;\r\n return str.split(\"\").filter((function(char, index) {\r\n singleQuotesLeft += \"'\" === char;\r\n var isDigit = \"#\" === char || \"0\" === char;\r\n var isInStub = singleQuotesLeft % 2;\r\n return isDigit && !isInStub\r\n })).length\r\n }))\r\n}\r\n\r\nfunction getSignParts(format) {\r\n var signParts = format.split(\";\");\r\n if (1 === signParts.length) {\r\n signParts.push(\"-\" + signParts[0])\r\n }\r\n return signParts\r\n}\r\n\r\nfunction reverseString(str) {\r\n return str.toString().split(\"\").reverse().join(\"\")\r\n}\r\n\r\nfunction isPercentFormat(format) {\r\n return -1 !== format.indexOf(\"%\") && !format.match(/'[^']*%[^']*'/g)\r\n}\r\n\r\nfunction removeStubs(str) {\r\n return str.replace(/'.+'/g, \"\")\r\n}\r\n\r\nfunction getNonRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[#]/g, \"\").length\r\n}\r\n\r\nfunction getRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[0]/g, \"\").length\r\n}\r\n\r\nfunction normalizeValueString(valuePart, minDigitCount, maxDigitCount) {\r\n if (!valuePart) {\r\n return \"\"\r\n }\r\n if (valuePart.length > maxDigitCount) {\r\n valuePart = valuePart.substr(0, maxDigitCount)\r\n }\r\n while (valuePart.length > minDigitCount && \"0\" === valuePart.slice(-1)) {\r\n valuePart = valuePart.substr(0, valuePart.length - 1)\r\n }\r\n while (valuePart.length < minDigitCount) {\r\n valuePart += \"0\"\r\n }\r\n return valuePart\r\n}\r\n\r\nfunction applyGroups(valueString, groupSizes, thousandsSeparator) {\r\n if (!groupSizes.length) {\r\n return valueString\r\n }\r\n var groups = [];\r\n var index = 0;\r\n while (valueString) {\r\n var groupSize = groupSizes[index];\r\n if (!groupSize) {\r\n break\r\n }\r\n groups.push(valueString.slice(0, groupSize));\r\n valueString = valueString.slice(groupSize);\r\n if (index < groupSizes.length - 1) {\r\n index++\r\n }\r\n }\r\n return groups.join(thousandsSeparator)\r\n}\r\n\r\nfunction formatNumberPart(format, valueString) {\r\n return format.split(ESCAPING_CHAR).map((function(formatPart, escapeIndex) {\r\n var isEscape = escapeIndex % 2;\r\n if (!formatPart && isEscape) {\r\n return ESCAPING_CHAR\r\n }\r\n return isEscape ? formatPart : formatPart.replace(/[,#0]+/, valueString)\r\n })).join(\"\")\r\n}\r\n\r\nfunction getFloatPointIndex(format) {\r\n var isEscape = false;\r\n for (var index = 0; index < format.length; index++) {\r\n if (\"'\" === format[index]) {\r\n isEscape = !isEscape\r\n }\r\n if (\".\" === format[index] && !isEscape) {\r\n return index\r\n }\r\n }\r\n return format.length\r\n}\r\nexport function getFormatter(format, config) {\r\n config = config || DEFAULT_CONFIG;\r\n return function(value) {\r\n if (\"number\" !== typeof value || isNaN(value)) {\r\n return \"\"\r\n }\r\n var signFormatParts = getSignParts(format);\r\n var isPositiveZero = 1 / value === 1 / 0;\r\n var isPositive = value > 0 || isPositiveZero;\r\n var numberFormat = signFormatParts[isPositive ? 0 : 1];\r\n var floatPointIndex = getFloatPointIndex(numberFormat);\r\n var floatFormatParts = [numberFormat.substr(0, floatPointIndex), numberFormat.substr(floatPointIndex + 1)];\r\n var minFloatPrecision = getRequiredDigitCount(floatFormatParts[1]);\r\n var maxFloatPrecision = minFloatPrecision + getNonRequiredDigitCount(floatFormatParts[1]);\r\n if (isPercentFormat(numberFormat)) {\r\n value = multiplyInExponentialForm(value, PERCENT_EXPONENT_SHIFT)\r\n }\r\n if (!isPositive) {\r\n value = -value\r\n }\r\n var minIntegerPrecision = getRequiredDigitCount(floatFormatParts[0]);\r\n var maxIntegerPrecision = getNonRequiredDigitCount(floatFormatParts[0]) || config.unlimitedIntegerDigits ? void 0 : minIntegerPrecision;\r\n var integerLength = Math.floor(value).toString().length;\r\n var floatPrecision = fitIntoRange(maxFloatPrecision, 0, MAXIMUM_NUMBER_LENGTH - integerLength);\r\n var groupSizes = getGroupSizes(floatFormatParts[0]).reverse();\r\n var valueParts = toFixed(value, floatPrecision < 0 ? 0 : floatPrecision).split(\".\");\r\n var valueIntegerPart = normalizeValueString(reverseString(valueParts[0]), minIntegerPrecision, maxIntegerPrecision);\r\n var valueFloatPart = normalizeValueString(valueParts[1], minFloatPrecision, maxFloatPrecision);\r\n valueIntegerPart = applyGroups(valueIntegerPart, groupSizes, config.thousandsSeparator);\r\n var integerString = reverseString(formatNumberPart(reverseString(floatFormatParts[0]), valueIntegerPart));\r\n var floatString = maxFloatPrecision ? formatNumberPart(floatFormatParts[1], valueFloatPart) : \"\";\r\n var result = integerString + (floatString.match(/\\d/) ? config.decimalSeparator : \"\") + floatString;\r\n return result\r\n }\r\n}\r\n\r\nfunction parseValue(text, isPercent, isNegative) {\r\n var value = (isPercent ? .01 : 1) * parseFloat(text) || 0;\r\n return isNegative ? -value : value\r\n}\r\n\r\nfunction prepareValueText(valueText, formatter, isPercent, isIntegerPart) {\r\n var nextValueText = valueText;\r\n var char;\r\n var text;\r\n var nextText;\r\n do {\r\n if (nextText) {\r\n char = text.length === nextText.length ? \"0\" : \"1\";\r\n valueText = isIntegerPart ? char + valueText : valueText + char\r\n }\r\n text = nextText || formatter(parseValue(nextValueText, isPercent));\r\n nextValueText = isIntegerPart ? \"1\" + nextValueText : nextValueText + \"1\";\r\n nextText = formatter(parseValue(nextValueText, isPercent))\r\n } while (text !== nextText && (isIntegerPart ? text.length === nextText.length : text.length <= nextText.length));\r\n if (isIntegerPart && nextText.length > text.length) {\r\n var hasGroups = -1 === formatter(12345).indexOf(\"12345\");\r\n do {\r\n valueText = \"1\" + valueText\r\n } while (hasGroups && parseValue(valueText, isPercent) < 1e5)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getFormatByValueText(valueText, formatter, isPercent, isNegative) {\r\n var format = formatter(parseValue(valueText, isPercent, isNegative));\r\n var valueTextParts = valueText.split(\".\");\r\n var valueTextWithModifiedFloat = valueTextParts[0] + \".3\" + valueTextParts[1].slice(1);\r\n var valueWithModifiedFloat = parseValue(valueTextWithModifiedFloat, isPercent, isNegative);\r\n var decimalSeparatorIndex = formatter(valueWithModifiedFloat).indexOf(\"3\") - 1;\r\n format = format.replace(/(\\d)\\D(\\d)/g, \"$1,$2\");\r\n if (decimalSeparatorIndex >= 0) {\r\n format = format.slice(0, decimalSeparatorIndex) + \".\" + format.slice(decimalSeparatorIndex + 1)\r\n }\r\n format = format.replace(/1+/, \"1\").replace(/1/g, \"#\");\r\n if (!isPercent) {\r\n format = format.replace(/%/g, \"'%'\")\r\n }\r\n return format\r\n}\r\nexport function getFormat(formatter) {\r\n var valueText = \".\";\r\n var isPercent = formatter(1).indexOf(\"100\") >= 0;\r\n valueText = prepareValueText(valueText, formatter, isPercent, true);\r\n valueText = prepareValueText(valueText, formatter, isPercent, false);\r\n var positiveFormat = getFormatByValueText(valueText, formatter, isPercent, false);\r\n var negativeFormat = getFormatByValueText(valueText, formatter, isPercent, true);\r\n return negativeFormat === \"-\" + positiveFormat ? positiveFormat : positiveFormat + \";\" + negativeFormat\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/currency.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nexport default {\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"currency\" === format) {\r\n formatConfig.precision = formatConfig.precision || 0;\r\n var result = this.format(value, extend({}, formatConfig, {\r\n type: \"fixedpoint\"\r\n }));\r\n var currencyPart = this.getCurrencySymbol().symbol.replace(/\\$/g, \"$$$$\");\r\n result = result.replace(/^(\\D*)(\\d.*)/, \"$1\" + currencyPart + \"$2\");\r\n return result\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getCurrencySymbol: function() {\r\n return {\r\n symbol: \"$\"\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function() {\r\n return \"$#,##0{0}_);\\\\($#,##0{0}\\\\)\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/open_xml_currency_format.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default (currencySymbol, accountingFormat) => {\r\n if (!accountingFormat) {\r\n return\r\n }\r\n var encodedCurrencySymbol = currencySymbol;\r\n if (\"string\" === typeof currencySymbol) {\r\n encodedCurrencySymbol = \"\";\r\n for (var i = 0; i < currencySymbol.length; i++) {\r\n if (\"$\" !== currencySymbol[i]) {\r\n encodedCurrencySymbol += \"\\\\\"\r\n }\r\n encodedCurrencySymbol += currencySymbol[i]\r\n }\r\n }\r\n var encodeSymbols = {\r\n \".00\": \"{0}\",\r\n \"'\": \"\\\\'\",\r\n \"\\\\(\": \"\\\\(\",\r\n \"\\\\)\": \"\\\\)\",\r\n \" \": \"\\\\ \",\r\n '\"': \""\",\r\n \"\\\\\\xa4\": encodedCurrencySymbol\r\n };\r\n var result = accountingFormat.split(\";\");\r\n for (var _i = 0; _i < result.length; _i++) {\r\n for (var symbol in encodeSymbols) {\r\n if (Object.prototype.hasOwnProperty.call(encodeSymbols, symbol)) {\r\n result[_i] = result[_i].replace(new RegExp(symbol, \"g\"), encodeSymbols[symbol])\r\n }\r\n }\r\n }\r\n return 2 === result.length ? result[0] + \"_);\" + result[1] : result[0]\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/accounting_formats.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport default {\r\n af: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"af-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n agq: \"#,##0.00\\xa4\",\r\n ak: \"\\xa4#,##0.00\",\r\n am: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ar: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-BH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IQ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-JO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-OM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-PS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-QA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-YE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n as: \"\\xa4\\xa0#,##,##0.00\",\r\n asa: \"#,##0.00\\xa0\\xa4\",\r\n ast: \"#,##0.00\\xa0\\xa4\",\r\n az: \"#,##0.00\\xa0\\xa4\",\r\n \"az-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"az-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n bas: \"#,##0.00\\xa0\\xa4\",\r\n be: \"#,##0.00\\xa0\\xa4\",\r\n \"be-tarask\": \"#,##0.00\\xa0\\xa4\",\r\n bem: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bez: \"#,##0.00\\xa4\",\r\n bg: \"0.00\\xa0\\xa4;(0.00\\xa0\\xa4)\",\r\n bm: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bn: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"bn-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n bo: \"\\xa4\\xa0#,##0.00\",\r\n \"bo-IN\": \"\\xa4\\xa0#,##0.00\",\r\n br: \"#,##0.00\\xa0\\xa4\",\r\n brx: \"\\xa4\\xa0#,##,##0.00\",\r\n bs: \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n ca: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-AD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-ES-valencia\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-FR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-IT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ccp: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"ccp-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n ce: \"#,##0.00\\xa0\\xa4\",\r\n ceb: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n cgg: \"\\xa4#,##0.00\",\r\n chr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ckb: \"\\xa4\\xa0#,##0.00\",\r\n \"ckb-IR\": \"\\xa4\\xa0#,##0.00\",\r\n cs: \"#,##0.00\\xa0\\xa4\",\r\n cy: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n da: \"#,##0.00\\xa0\\xa4\",\r\n \"da-GL\": \"#,##0.00\\xa0\\xa4\",\r\n dav: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n de: \"#,##0.00\\xa0\\xa4\",\r\n \"de-AT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-IT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LI\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LU\": \"#,##0.00\\xa0\\xa4\",\r\n dje: \"#,##0.00\\xa4\",\r\n doi: \"\\xa4#,##0.00\",\r\n dsb: \"#,##0.00\\xa0\\xa4\",\r\n dua: \"#,##0.00\\xa0\\xa4\",\r\n dyo: \"#,##0.00\\xa0\\xa4\",\r\n dz: \"\\xa4#,##,##0.00\",\r\n ebu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ee: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ee-TG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n el: \"#,##0.00\\xa0\\xa4\",\r\n \"el-CY\": \"#,##0.00\\xa0\\xa4\",\r\n en: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-001\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-150\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AT\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-AU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-BI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CH\": \"\\xa4\\xa0#,##0.00;\\xa4-#,##0.00\",\r\n \"en-CK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DK\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-FJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MV\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-MW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NF\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NL\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"en-NR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-RW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"en-SL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TV\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-WS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n eo: \"\\xa4\\xa0#,##0.00\",\r\n es: \"#,##0.00\\xa0\\xa4\",\r\n \"es-419\": \"\\xa4#,##0.00\",\r\n \"es-AR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-BO\": \"\\xa4#,##0.00\",\r\n \"es-BR\": \"\\xa4#,##0.00\",\r\n \"es-BZ\": \"\\xa4#,##0.00\",\r\n \"es-CL\": \"\\xa4#,##0.00\",\r\n \"es-CO\": \"\\xa4#,##0.00\",\r\n \"es-CR\": \"\\xa4#,##0.00\",\r\n \"es-CU\": \"\\xa4#,##0.00\",\r\n \"es-DO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"es-EA\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-EC\": \"\\xa4#,##0.00\",\r\n \"es-GQ\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-GT\": \"\\xa4#,##0.00\",\r\n \"es-HN\": \"\\xa4#,##0.00\",\r\n \"es-IC\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-MX\": \"\\xa4#,##0.00\",\r\n \"es-NI\": \"\\xa4#,##0.00\",\r\n \"es-PA\": \"\\xa4#,##0.00\",\r\n \"es-PE\": \"\\xa4#,##0.00\",\r\n \"es-PH\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-PR\": \"\\xa4#,##0.00\",\r\n \"es-PY\": \"\\xa4#,##0.00\",\r\n \"es-SV\": \"\\xa4#,##0.00\",\r\n \"es-US\": \"\\xa4#,##0.00\",\r\n \"es-UY\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-VE\": \"\\xa4#,##0.00\",\r\n et: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n eu: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ewo: \"#,##0.00\\xa0\\xa4\",\r\n fa: \"\\u200e\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n \"fa-AF\": \"\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n ff: \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Adlm\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-BF\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-CM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GW\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-LR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-MR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NE\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NG\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SL\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SN\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-BF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-CM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GH\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GN\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GW\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-LR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-MR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NE\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-SL\": \"#,##0.00\\xa0\\xa4\",\r\n fi: \"#,##0.00\\xa0\\xa4\",\r\n fil: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n fo: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fo-DK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GP\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-HT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-KM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-ML\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SY\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-VU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-WF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-YT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fur: \"\\xa4\\xa0#,##0.00\",\r\n fy: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n ga: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ga-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gl: \"#,##0.00\\xa0\\xa4\",\r\n gsw: \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-FR\": \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-LI\": \"#,##0.00\\xa0\\xa4\",\r\n gu: \"\\xa4#,##,##0.00;(\\xa4#,##,##0.00)\",\r\n guz: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gv: \"\\xa4#,##0.00\",\r\n ha: \"\\xa4\\xa0#,##0.00\",\r\n \"ha-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ha-NE\": \"\\xa4\\xa0#,##0.00\",\r\n haw: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n he: \"#,##0.00\\xa0\\xa4\",\r\n hi: \"\\xa4#,##,##0.00\",\r\n \"hi-Latn\": \"\\xa4#,##,##0.00\",\r\n hr: \"#,##0.00\\xa0\\xa4\",\r\n \"hr-BA\": \"#,##0.00\\xa0\\xa4\",\r\n hsb: \"#,##0.00\\xa0\\xa4\",\r\n hu: \"#,##0.00\\xa0\\xa4\",\r\n hy: \"#,##0.00\\xa0\\xa4\",\r\n ia: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n id: \"\\xa4#,##0.00\",\r\n ig: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ii: \"\\xa4\\xa0#,##0.00\",\r\n is: \"#,##0.00\\xa0\\xa4\",\r\n it: \"#,##0.00\\xa0\\xa4\",\r\n \"it-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-SM\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-VA\": \"#,##0.00\\xa0\\xa4\",\r\n ja: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n jgo: \"\\xa4\\xa0#,##0.00\",\r\n jmc: \"\\xa4#,##0.00\",\r\n jv: \"\\xa4\\xa0#,##0.00\",\r\n ka: \"#,##0.00\\xa0\\xa4\",\r\n kab: \"#,##0.00\\xa4\",\r\n kam: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kde: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kea: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kgp: \"\\xa4\\xa0#,##0.00\",\r\n khq: \"#,##0.00\\xa4\",\r\n ki: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kk: \"#,##0.00\\xa0\\xa4\",\r\n kkj: \"\\xa4\\xa0#,##0.00\",\r\n kl: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n kln: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n km: \"#,##0.00\\xa4;(#,##0.00\\xa4)\",\r\n kn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ko: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ko-KP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kok: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ks: \"\\xa4#,##0.00\",\r\n \"ks-Arab\": \"\\xa4#,##0.00\",\r\n \"ks-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n ksb: \"#,##0.00\\xa4\",\r\n ksf: \"#,##0.00\\xa0\\xa4\",\r\n ksh: \"#,##0.00\\xa0\\xa4\",\r\n ku: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kw: \"\\xa4#,##0.00\",\r\n ky: \"#,##0.00\\xa0\\xa4\",\r\n lag: \"\\xa4\\xa0#,##0.00\",\r\n lb: \"#,##0.00\\xa0\\xa4\",\r\n lg: \"#,##0.00\\xa4\",\r\n lkt: \"\\xa4\\xa0#,##0.00\",\r\n ln: \"#,##0.00\\xa0\\xa4\",\r\n \"ln-AO\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CG\": \"#,##0.00\\xa0\\xa4\",\r\n lo: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n lrc: \"\\xa4\\xa0#,##0.00\",\r\n \"lrc-IQ\": \"\\xa4\\xa0#,##0.00\",\r\n lt: \"#,##0.00\\xa0\\xa4\",\r\n lu: \"#,##0.00\\xa4\",\r\n luo: \"#,##0.00\\xa4\",\r\n luy: \"\\xa4#,##0.00;\\xa4-\\xa0#,##0.00\",\r\n lv: \"#,##0.00\\xa0\\xa4\",\r\n mai: \"\\xa4\\xa0#,##0.00\",\r\n mas: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"mas-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mer: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mfe: \"\\xa4\\xa0#,##0.00\",\r\n mg: \"\\xa4#,##0.00\",\r\n mgh: \"\\xa4\\xa0#,##0.00\",\r\n mgo: \"\\xa4\\xa0#,##0.00\",\r\n mi: \"\\xa4\\xa0#,##0.00\",\r\n mk: \"#,##0.00\\xa0\\xa4\",\r\n ml: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mn: \"\\xa4\\xa0#,##0.00\",\r\n mni: \"\\xa4\\xa0#,##0.00\",\r\n \"mni-Beng\": \"\\xa4\\xa0#,##0.00\",\r\n mr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ms: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-BN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-ID\": \"\\xa4#,##0.00\",\r\n \"ms-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mt: \"\\xa4#,##0.00\",\r\n mua: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n my: \"\\xa4\\xa0#,##0.00\",\r\n mzn: \"\\xa4\\xa0#,##0.00\",\r\n naq: \"\\xa4#,##0.00\",\r\n nb: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nb-SJ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nds: \"\\xa4\\xa0#,##0.00\",\r\n \"nds-NL\": \"\\xa4\\xa0#,##0.00\",\r\n ne: \"\\xa4\\xa0#,##,##0.00\",\r\n \"ne-IN\": \"\\xa4\\xa0#,##,##0.00\",\r\n nl: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-AW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BE\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BQ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-CW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SX\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nmg: \"#,##0.00\\xa0\\xa4\",\r\n nn: \"#,##0.00\\xa0\\xa4\",\r\n nnh: \"\\xa4\\xa0#,##0.00\",\r\n no: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nus: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nyn: \"\\xa4#,##0.00\",\r\n om: \"\\xa4#,##0.00\",\r\n \"om-KE\": \"\\xa4#,##0.00\",\r\n or: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n os: \"\\xa4\\xa0#,##0.00\",\r\n \"os-RU\": \"\\xa4\\xa0#,##0.00\",\r\n pa: \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Guru\": \"\\xa4\\xa0#,##0.00\",\r\n pcm: \"\\xa4#,##0.00\",\r\n pl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ps: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ps-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n pt: \"\\xa4\\xa0#,##0.00\",\r\n \"pt-AO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CV\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-PT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-ST\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-TL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n qu: \"\\xa4\\xa0#,##0.00\",\r\n \"qu-BO\": \"\\xa4\\xa0#,##0.00\",\r\n \"qu-EC\": \"\\xa4\\xa0#,##0.00\",\r\n rm: \"#,##0.00\\xa0\\xa4\",\r\n rn: \"#,##0.00\\xa4\",\r\n ro: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ro-MD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n rof: \"\\xa4#,##0.00\",\r\n ru: \"#,##0.00\\xa0\\xa4\",\r\n \"ru-BY\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KZ\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-MD\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-UA\": \"#,##0.00\\xa0\\xa4\",\r\n rw: \"\\xa4\\xa0#,##0.00\",\r\n rwk: \"#,##0.00\\xa4\",\r\n sa: \"\\xa4\\xa0#,##0.00\",\r\n sah: \"#,##0.00\\xa0\\xa4\",\r\n saq: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sat: \"\\xa4\\xa0#,##0.00\",\r\n \"sat-Olck\": \"\\xa4\\xa0#,##0.00\",\r\n sbp: \"#,##0.00\\xa4\",\r\n sc: \"#,##0.00\\xa0\\xa4\",\r\n sd: \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n se: \"#,##0.00\\xa0\\xa4\",\r\n \"se-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"se-SE\": \"#,##0.00\\xa0\\xa4\",\r\n seh: \"#,##0.00\\xa4\",\r\n ses: \"#,##0.00\\xa4\",\r\n sg: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n shi: \"#,##0.00\\xa4\",\r\n \"shi-Latn\": \"#,##0.00\\xa4\",\r\n \"shi-Tfng\": \"#,##0.00\\xa4\",\r\n si: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sk: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n smn: \"#,##0.00\\xa0\\xa4\",\r\n sn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n so: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-ET\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sq: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-MK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n su: \"\\xa4#,##0.00\",\r\n \"su-Latn\": \"\\xa4#,##0.00\",\r\n sv: \"#,##0.00\\xa0\\xa4\",\r\n \"sv-AX\": \"#,##0.00\\xa0\\xa4\",\r\n \"sv-FI\": \"#,##0.00\\xa0\\xa4\",\r\n sw: \"\\xa4\\xa0#,##0.00\",\r\n \"sw-CD\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-KE\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-UG\": \"\\xa4\\xa0#,##0.00\",\r\n ta: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-LK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n te: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n teo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"teo-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tg: \"#,##0.00\\xa0\\xa4\",\r\n th: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ti: \"\\xa4#,##0.00\",\r\n \"ti-ER\": \"\\xa4#,##0.00\",\r\n tk: \"#,##0.00\\xa0\\xa4\",\r\n to: \"\\xa4\\xa0#,##0.00\",\r\n tr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"tr-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tt: \"#,##0.00\\xa0\\xa4\",\r\n twq: \"#,##0.00\\xa4\",\r\n tzm: \"#,##0.00\\xa0\\xa4\",\r\n ug: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uk: \"#,##0.00\\xa0\\xa4\",\r\n und: \"\\xa4\\xa0#,##0.00\",\r\n ur: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ur-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uz: \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"uz-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n vai: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Latn\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Vaii\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n vi: \"#,##0.00\\xa0\\xa4\",\r\n vun: \"\\xa4#,##0.00\",\r\n wae: \"\\xa4\\xa0#,##0.00\",\r\n wo: \"\\xa4\\xa0#,##0.00\",\r\n xh: \"\\xa4#,##0.00\",\r\n xog: \"#,##0.00\\xa0\\xa4\",\r\n yav: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n yi: \"\\xa4\\xa0#,##0.00\",\r\n yo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yo-BJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n yrl: \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-CO\": \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-VE\": \"\\xa4\\xa0#,##0.00\",\r\n yue: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zgh: \"#,##0.00\\xa4\",\r\n zh: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/number.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dxConfig from \"../../core/config\";\r\nimport localizationCoreUtils from \"../core\";\r\nimport openXmlCurrencyFormat from \"../open_xml_currency_format\";\r\nimport accountingFormats from \"../cldr-data/accounting_formats\";\r\nvar CURRENCY_STYLES = [\"standard\", \"accounting\"];\r\nvar MAX_FRACTION_DIGITS = 20;\r\nvar detectCurrencySymbolRegex = /([^\\s0]+)?(\\s*)0*[.,]*0*(\\s*)([^\\s0]+)?/;\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.NumberFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\nvar getCurrencyFormatter = currency => new Intl.NumberFormat(localizationCoreUtils.locale(), {\r\n style: \"currency\",\r\n currency: currency\r\n});\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getFormatter(this._normalizeFormatConfig(format, formatConfig, value))(value)\r\n },\r\n _normalizeFormatConfig: function(format, formatConfig, value) {\r\n var config;\r\n if (\"decimal\" === format) {\r\n var fractionDigits = String(value).split(\".\")[1];\r\n config = {\r\n minimumIntegerDigits: formatConfig.precision || void 0,\r\n useGrouping: false,\r\n maximumFractionDigits: fractionDigits && fractionDigits.length,\r\n round: value < 0 ? \"ceil\" : \"floor\"\r\n }\r\n } else {\r\n config = this._getPrecisionConfig(formatConfig.precision)\r\n }\r\n if (\"percent\" === format) {\r\n config.style = \"percent\"\r\n } else if (\"currency\" === format) {\r\n var _formatConfig$useCurr;\r\n var useAccountingStyle = null !== (_formatConfig$useCurr = formatConfig.useCurrencyAccountingStyle) && void 0 !== _formatConfig$useCurr ? _formatConfig$useCurr : dxConfig().defaultUseCurrencyAccountingStyle;\r\n config.style = \"currency\";\r\n config.currency = formatConfig.currency || dxConfig().defaultCurrency;\r\n config.currencySign = CURRENCY_STYLES[+useAccountingStyle]\r\n }\r\n return config\r\n },\r\n _getPrecisionConfig: function(precision) {\r\n var config;\r\n if (null === precision) {\r\n config = {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: MAX_FRACTION_DIGITS\r\n }\r\n } else {\r\n config = {\r\n minimumFractionDigits: precision || 0,\r\n maximumFractionDigits: precision || 0\r\n }\r\n }\r\n return config\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (\"default\" === _format.currency) {\r\n _format.currency = dxConfig().defaultCurrency\r\n }\r\n if (!_format || \"function\" !== typeof _format && !_format.type && !_format.formatter) {\r\n return getFormatter(_format)(value)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getCurrencySymbolInfo: function(currency) {\r\n var formatter = getCurrencyFormatter(currency);\r\n return this._extractCurrencySymbolInfo(formatter.format(0))\r\n },\r\n _extractCurrencySymbolInfo: function(currencyValueString) {\r\n var match = detectCurrencySymbolRegex.exec(currencyValueString) || [];\r\n var position = match[1] ? \"before\" : \"after\";\r\n var symbol = match[1] || match[4] || \"\";\r\n var delimiter = match[2] || match[3] || \"\";\r\n return {\r\n position: position,\r\n symbol: symbol,\r\n delimiter: delimiter\r\n }\r\n },\r\n getCurrencySymbol: function(currency) {\r\n if (!currency) {\r\n currency = dxConfig().defaultCurrency\r\n }\r\n var symbolInfo = this._getCurrencySymbolInfo(currency);\r\n return {\r\n symbol: symbolInfo.symbol\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function(currency) {\r\n var targetCurrency = currency || dxConfig().defaultCurrency;\r\n var currencySymbol = this._getCurrencySymbolInfo(targetCurrency).symbol;\r\n var closestAccountingFormat = localizationCoreUtils.getValueByClosestLocale(locale => accountingFormats[locale]);\r\n return openXmlCurrencyFormat(currencySymbol, closestAccountingFormat)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/number.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n escapeRegExp\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n getFormatter\r\n} from \"./ldml/number\";\r\nimport config from \"../core/config\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n toFixed\r\n} from \"./utils\";\r\nimport currencyLocalization from \"./currency\";\r\nimport intlNumberLocalization from \"./intl/number\";\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar MAX_LARGE_NUMBER_POWER = 4;\r\nvar DECIMAL_BASE = 10;\r\nvar NUMERIC_FORMATS = [\"currency\", \"fixedpoint\", \"exponential\", \"percent\", \"decimal\"];\r\nvar LargeNumberFormatPostfixes = {\r\n 1: \"K\",\r\n 2: \"M\",\r\n 3: \"B\",\r\n 4: \"T\"\r\n};\r\nvar LargeNumberFormatPowers = {\r\n largenumber: \"auto\",\r\n thousands: 1,\r\n millions: 2,\r\n billions: 3,\r\n trillions: 4\r\n};\r\nvar numberLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n numericFormats: NUMERIC_FORMATS,\r\n defaultLargeNumberFormatPostfixes: LargeNumberFormatPostfixes,\r\n _parseNumberFormatString: function(formatType) {\r\n var formatObject = {};\r\n if (!formatType || \"string\" !== typeof formatType) {\r\n return\r\n }\r\n var formatList = formatType.toLowerCase().split(\" \");\r\n each(formatList, (index, value) => {\r\n if (NUMERIC_FORMATS.includes(value)) {\r\n formatObject.formatType = value\r\n } else if (value in LargeNumberFormatPowers) {\r\n formatObject.power = LargeNumberFormatPowers[value]\r\n }\r\n });\r\n if (formatObject.power && !formatObject.formatType) {\r\n formatObject.formatType = \"fixedpoint\"\r\n }\r\n if (formatObject.formatType) {\r\n return formatObject\r\n }\r\n },\r\n _calculateNumberPower: function(value, base, minPower, maxPower) {\r\n var number = Math.abs(value);\r\n var power = 0;\r\n if (number > 1) {\r\n while (number && number >= base && (void 0 === maxPower || power < maxPower)) {\r\n power++;\r\n number /= base\r\n }\r\n } else if (number > 0 && number < 1) {\r\n while (number < 1 && (void 0 === minPower || power > minPower)) {\r\n power--;\r\n number *= base\r\n }\r\n }\r\n return power\r\n },\r\n _getNumberByPower: function(number, power, base) {\r\n var result = number;\r\n while (power > 0) {\r\n result /= base;\r\n power--\r\n }\r\n while (power < 0) {\r\n result *= base;\r\n power++\r\n }\r\n return result\r\n },\r\n _formatNumber: function(value, formatObject, formatConfig) {\r\n if (\"auto\" === formatObject.power) {\r\n formatObject.power = this._calculateNumberPower(value, 1e3, 0, MAX_LARGE_NUMBER_POWER)\r\n }\r\n if (formatObject.power) {\r\n value = this._getNumberByPower(value, formatObject.power, 1e3)\r\n }\r\n var powerPostfix = this.defaultLargeNumberFormatPostfixes[formatObject.power] || \"\";\r\n var result = this._formatNumberCore(value, formatObject.formatType, formatConfig);\r\n result = result.replace(/(\\d|.$)(\\D*)$/, \"$1\" + powerPostfix + \"$2\");\r\n return result\r\n },\r\n _formatNumberExponential: function(value, formatConfig) {\r\n var power = this._calculateNumberPower(value, DECIMAL_BASE);\r\n var number = this._getNumberByPower(value, power, DECIMAL_BASE);\r\n if (void 0 === formatConfig.precision) {\r\n formatConfig.precision = 1\r\n }\r\n if (number.toFixed(formatConfig.precision || 0) >= DECIMAL_BASE) {\r\n power++;\r\n number /= DECIMAL_BASE\r\n }\r\n var powString = (power >= 0 ? \"+\" : \"\") + power.toString();\r\n return this._formatNumberCore(number, \"fixedpoint\", formatConfig) + \"E\" + powString\r\n },\r\n _addZeroes: function(value, precision) {\r\n var multiplier = Math.pow(10, precision);\r\n var sign = value < 0 ? \"-\" : \"\";\r\n value = (Math.abs(value) * multiplier >>> 0) / multiplier;\r\n var result = value.toString();\r\n while (result.length < precision) {\r\n result = \"0\" + result\r\n }\r\n return sign + result\r\n },\r\n _addGroupSeparators: function(value) {\r\n var parts = value.toString().split(\".\");\r\n return parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, config().thousandsSeparator) + (parts[1] ? config().decimalSeparator + parts[1] : \"\")\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this._formatNumberExponential(value, formatConfig)\r\n }\r\n if (\"decimal\" !== format && null !== formatConfig.precision) {\r\n formatConfig.precision = formatConfig.precision || 0\r\n }\r\n if (\"percent\" === format) {\r\n value *= 100\r\n }\r\n if (void 0 !== formatConfig.precision) {\r\n if (\"decimal\" === format) {\r\n value = this._addZeroes(value, formatConfig.precision)\r\n } else {\r\n value = null === formatConfig.precision ? value.toPrecision() : toFixed(value, formatConfig.precision)\r\n }\r\n }\r\n if (\"decimal\" !== format) {\r\n value = this._addGroupSeparators(value)\r\n } else {\r\n value = value.toString().replace(\".\", config().decimalSeparator)\r\n }\r\n if (\"percent\" === format) {\r\n value += \"%\"\r\n }\r\n return value\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!format) {\r\n return {}\r\n }\r\n if (\"function\" === typeof format) {\r\n return format\r\n }\r\n if (!isPlainObject(format)) {\r\n format = {\r\n type: format\r\n }\r\n }\r\n return format\r\n },\r\n _getSeparators: function() {\r\n return {\r\n decimalSeparator: this.getDecimalSeparator(),\r\n thousandsSeparator: this.getThousandsSeparator()\r\n }\r\n },\r\n getThousandsSeparator: function() {\r\n return this.format(1e4, \"fixedPoint\")[2]\r\n },\r\n getDecimalSeparator: function() {\r\n return this.format(1.2, {\r\n type: \"fixedPoint\",\r\n precision: 1\r\n })[1]\r\n },\r\n convertDigits: function(value, toStandard) {\r\n var digits = this.format(90, \"decimal\");\r\n if (\"string\" !== typeof value || \"0\" === digits[1]) {\r\n return value\r\n }\r\n var fromFirstDigit = toStandard ? digits[1] : \"0\";\r\n var toFirstDigit = toStandard ? \"0\" : digits[1];\r\n var fromLastDigit = toStandard ? digits[0] : \"9\";\r\n var regExp = new RegExp(\"[\" + fromFirstDigit + \"-\" + fromLastDigit + \"]\", \"g\");\r\n return value.replace(regExp, char => String.fromCharCode(char.charCodeAt(0) + (toFirstDigit.charCodeAt(0) - fromFirstDigit.charCodeAt(0))))\r\n },\r\n getNegativeEtalonRegExp: function(format) {\r\n var separators = this._getSeparators();\r\n var digitalRegExp = new RegExp(\"[0-9\" + escapeRegExp(separators.decimalSeparator + separators.thousandsSeparator) + \"]+\", \"g\");\r\n var negativeEtalon = this.format(-1, format).replace(digitalRegExp, \"1\");\r\n [\"\\\\\", \"(\", \")\", \"[\", \"]\", \"*\", \"+\", \"$\", \"^\", \"?\", \"|\", \"{\", \"}\"].forEach(char => {\r\n negativeEtalon = negativeEtalon.replace(new RegExp(\"\\\\\".concat(char), \"g\"), \"\\\\\".concat(char))\r\n });\r\n negativeEtalon = negativeEtalon.replace(/ /g, \"\\\\s\");\r\n negativeEtalon = negativeEtalon.replace(/1/g, \".*\");\r\n return new RegExp(negativeEtalon, \"g\")\r\n },\r\n getSign: function(text, format) {\r\n if (!format) {\r\n if (\"-\" === text.replace(/[^0-9-]/g, \"\").charAt(0)) {\r\n return -1\r\n }\r\n return 1\r\n }\r\n var negativeEtalon = this.getNegativeEtalonRegExp(format);\r\n return text.match(negativeEtalon) ? -1 : 1\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n if (\"number\" === typeof _format) {\r\n return value\r\n }\r\n _format = _format && _format.formatter || _format;\r\n if (\"function\" === typeof _format) {\r\n return _format(value)\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (!_format.type) {\r\n _format.type = \"decimal\"\r\n }\r\n var numberConfig = this._parseNumberFormatString(_format.type);\r\n if (!numberConfig) {\r\n var formatterConfig = this._getSeparators();\r\n formatterConfig.unlimitedIntegerDigits = _format.unlimitedIntegerDigits;\r\n return this.convertDigits(getFormatter(_format.type, formatterConfig)(value))\r\n }\r\n return this._formatNumber(value, numberConfig, _format)\r\n },\r\n parse: function(text, format) {\r\n if (!text) {\r\n return\r\n }\r\n if (format && format.parser) {\r\n return format.parser(text)\r\n }\r\n text = this.convertDigits(text, true);\r\n if (format && \"string\" !== typeof format) {\r\n errors.log(\"W0011\")\r\n }\r\n var decimalSeparator = this.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var cleanedText = text.replace(regExp, \"\").replace(decimalSeparator, \".\").replace(/\\.$/g, \"\");\r\n if (\".\" === cleanedText || \"\" === cleanedText) {\r\n return null\r\n }\r\n if (this._calcSignificantDigits(cleanedText) > 15) {\r\n return NaN\r\n }\r\n var parsed = +cleanedText * this.getSign(text, format);\r\n format = this._normalizeFormat(format);\r\n var formatConfig = this._parseNumberFormatString(format.type);\r\n var power = null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.power;\r\n if (power) {\r\n if (\"auto\" === power) {\r\n var match = text.match(/\\d(K|M|B|T)/);\r\n if (match) {\r\n power = Object.keys(LargeNumberFormatPostfixes).find(power => LargeNumberFormatPostfixes[power] === match[1])\r\n }\r\n }\r\n parsed *= Math.pow(10, 3 * power)\r\n }\r\n if (\"percent\" === (null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.formatType)) {\r\n parsed /= 100\r\n }\r\n return parsed\r\n },\r\n _calcSignificantDigits: function(text) {\r\n var [integer, fractional] = text.split(\".\");\r\n var calcDigitsAfterLeadingZeros = digits => {\r\n var index = -1;\r\n for (var i = 0; i < digits.length; i++) {\r\n if (\"0\" !== digits[i]) {\r\n index = i;\r\n break\r\n }\r\n }\r\n return index > -1 ? digits.length - index : 0\r\n };\r\n var result = 0;\r\n if (integer) {\r\n result += calcDigitsAfterLeadingZeros(integer.split(\"\"))\r\n }\r\n if (fractional) {\r\n result += calcDigitsAfterLeadingZeros(fractional.split(\"\").reverse())\r\n }\r\n return result\r\n }\r\n});\r\nnumberLocalization.inject(currencyLocalization);\r\nif (hasIntl) {\r\n numberLocalization.inject(intlNumberLocalization)\r\n}\r\nexport default numberLocalization;\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.formatter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nexport var getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (\"'\" === char && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n if (\"'\" === char && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.format.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport numberLocalization from \"../number\";\r\nvar ARABIC_COMMA = \"\\u060c\";\r\nvar FORMAT_SEPARATORS = \" .,:;/\\\\<>()-[]\" + ARABIC_COMMA;\r\nvar AM_PM_PATTERN = \". m.\";\r\nvar checkDigit = function(char) {\r\n var code = char && numberLocalization.convertDigits(char, false).charCodeAt(0);\r\n var zeroCode = numberLocalization.convertDigits(\"0\", false).charCodeAt(0);\r\n return zeroCode <= code && code < zeroCode + 10\r\n};\r\nvar checkPatternContinue = function(text, patterns, index, isDigit) {\r\n var char = text[index];\r\n var nextChar = text[index + 1];\r\n if (!isDigit) {\r\n if (\".\" === char || \" \" === char && text.slice(index - 1, index + 3) === AM_PM_PATTERN) {\r\n return true\r\n }\r\n if (\"-\" === char && !checkDigit(nextChar)) {\r\n return true\r\n }\r\n }\r\n var isDigitChanged = isDigit && patterns.some(pattern => text[index] !== pattern[index]);\r\n return FORMAT_SEPARATORS.indexOf(char) < 0 && isDigit === checkDigit(char) && (!isDigit || isDigitChanged)\r\n};\r\nvar getPatternStartIndex = function(defaultPattern, index) {\r\n if (!checkDigit(defaultPattern[index])) {\r\n while (index > 0 && !checkDigit(defaultPattern[index - 1]) && (\".\" === defaultPattern[index - 1] || FORMAT_SEPARATORS.indexOf(defaultPattern[index - 1]) < 0)) {\r\n index--\r\n }\r\n }\r\n return index\r\n};\r\nvar getDifference = function(defaultPattern, patterns, processedIndexes, isDigit) {\r\n var i = 0;\r\n var result = [];\r\n var patternsFilter = function(pattern) {\r\n return defaultPattern[i] !== pattern[i] && (void 0 === isDigit || checkDigit(defaultPattern[i]) === isDigit)\r\n };\r\n if (!Array.isArray(patterns)) {\r\n patterns = [patterns]\r\n }\r\n for (i = 0; i < defaultPattern.length; i++) {\r\n if (processedIndexes.indexOf(i) < 0 && patterns.filter(patternsFilter).length) {\r\n i = getPatternStartIndex(defaultPattern, i);\r\n do {\r\n isDigit = checkDigit(defaultPattern[i]);\r\n if (!result.length && !isDigit && checkDigit(patterns[0][i])) {\r\n break\r\n }\r\n result.push(i);\r\n processedIndexes.unshift(i);\r\n i++\r\n } while (defaultPattern[i] && checkPatternContinue(defaultPattern, patterns, i, isDigit));\r\n break\r\n }\r\n }\r\n if (1 === result.length && (\"0\" === defaultPattern[processedIndexes[0] - 1] || \"\\u0660\" === defaultPattern[processedIndexes[0] - 1])) {\r\n processedIndexes.unshift(processedIndexes[0] - 1)\r\n }\r\n return result\r\n};\r\nvar replaceCharsCore = function(pattern, indexes, char, patternPositions) {\r\n var baseCharIndex = indexes[0];\r\n var patternIndex = baseCharIndex < patternPositions.length ? patternPositions[baseCharIndex] : baseCharIndex;\r\n indexes.forEach((function(_, index) {\r\n pattern = pattern.substr(0, patternIndex + index) + (char.length > 1 ? char[index] : char) + pattern.substr(patternIndex + index + 1)\r\n }));\r\n if (1 === indexes.length) {\r\n pattern = pattern.replace(\"0\" + char, char + char);\r\n pattern = pattern.replace(\"\\u0660\" + char, char + char)\r\n }\r\n return pattern\r\n};\r\nvar replaceChars = function(pattern, indexes, char, patternPositions) {\r\n var i;\r\n var index;\r\n var patternIndex;\r\n if (!checkDigit(pattern[indexes[0]] || \"0\")) {\r\n var letterCount = Math.max(indexes.length <= 3 ? 3 : 4, char.length);\r\n while (indexes.length > letterCount) {\r\n index = indexes.pop();\r\n patternIndex = patternPositions[index];\r\n patternPositions[index] = -1;\r\n for (i = index + 1; i < patternPositions.length; i++) {\r\n patternPositions[i]--\r\n }\r\n pattern = pattern.substr(0, patternIndex) + pattern.substr(patternIndex + 1)\r\n }\r\n index = indexes[indexes.length - 1] + 1, patternIndex = index < patternPositions.length ? patternPositions[index] : index;\r\n while (indexes.length < letterCount) {\r\n indexes.push(indexes[indexes.length - 1] + 1);\r\n for (i = index; i < patternPositions.length; i++) {\r\n patternPositions[i]++\r\n }\r\n pattern = pattern.substr(0, patternIndex) + \" \" + pattern.substr(patternIndex)\r\n }\r\n }\r\n pattern = replaceCharsCore(pattern, indexes, char, patternPositions);\r\n return pattern\r\n};\r\nvar formatValue = function(value, formatter) {\r\n if (Array.isArray(value)) {\r\n return value.map((function(value) {\r\n return (formatter(value) || \"\").toString()\r\n }))\r\n }\r\n return (formatter(value) || \"\").toString()\r\n};\r\nvar ESCAPE_CHARS_REGEXP = /[a-zA-Z]/g;\r\nvar escapeChars = function(pattern, defaultPattern, processedIndexes, patternPositions) {\r\n var escapeIndexes = defaultPattern.split(\"\").map((function(char, index) {\r\n if (processedIndexes.indexOf(index) < 0 && (char.match(ESCAPE_CHARS_REGEXP) || \"'\" === char)) {\r\n return patternPositions[index]\r\n }\r\n return -1\r\n }));\r\n pattern = pattern.split(\"\").map((function(char, index) {\r\n var result = char;\r\n var isCurrentCharEscaped = escapeIndexes.indexOf(index) >= 0;\r\n var isPrevCharEscaped = index > 0 && escapeIndexes.indexOf(index - 1) >= 0;\r\n var isNextCharEscaped = escapeIndexes.indexOf(index + 1) >= 0;\r\n if (isCurrentCharEscaped) {\r\n if (!isPrevCharEscaped) {\r\n result = \"'\" + result\r\n }\r\n if (!isNextCharEscaped) {\r\n result += \"'\"\r\n }\r\n }\r\n return result\r\n })).join(\"\");\r\n return pattern\r\n};\r\nexport var getFormat = function(formatter) {\r\n var processedIndexes = [];\r\n var defaultPattern = formatValue(new Date(2009, 8, 8, 6, 5, 4), formatter);\r\n var patternPositions = defaultPattern.split(\"\").map((function(_, index) {\r\n return index\r\n }));\r\n var result = defaultPattern;\r\n var replacedPatterns = {};\r\n var datePatterns = [{\r\n date: new Date(2009, 8, 8, 6, 5, 4, 111),\r\n pattern: \"S\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 5, 2),\r\n pattern: \"s\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 2, 4),\r\n pattern: \"m\"\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"H\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 2, 5, 4),\r\n pattern: \"h\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"a\",\r\n isDigit: false\r\n }, {\r\n date: new Date(2009, 8, 1, 6, 5, 4),\r\n pattern: \"d\"\r\n }, {\r\n date: [new Date(2009, 8, 2, 6, 5, 4), new Date(2009, 8, 3, 6, 5, 4), new Date(2009, 8, 4, 6, 5, 4)],\r\n pattern: \"E\"\r\n }, {\r\n date: new Date(2009, 9, 6, 6, 5, 4),\r\n pattern: \"M\"\r\n }, {\r\n date: new Date(1998, 8, 8, 6, 5, 4),\r\n pattern: \"y\"\r\n }];\r\n if (!result) {\r\n return\r\n }\r\n datePatterns.forEach((function(test) {\r\n var diff = getDifference(defaultPattern, formatValue(test.date, formatter), processedIndexes, test.isDigit);\r\n var pattern = \"M\" === test.pattern && !replacedPatterns.d ? \"L\" : test.pattern;\r\n result = replaceChars(result, diff, pattern, patternPositions);\r\n replacedPatterns[pattern] = diff.length\r\n }));\r\n result = escapeChars(result, defaultPattern, processedIndexes, patternPositions);\r\n if (processedIndexes.length) {\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.parser.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar monthRegExpGenerator = function(count, dateParts) {\r\n if (count > 2) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return dateParts.getMonthNames(FORMAT_TYPES[count], type).join(\"|\")\r\n })).join(\"|\")\r\n })).join(\"|\")\r\n }\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n};\r\nvar PATTERN_REGEXPS = {\r\n \":\": function(count, dateParts) {\r\n var countSuffix = count > 1 ? \"{\".concat(count, \"}\") : \"\";\r\n var timeSeparator = escapeRegExp(dateParts.getTimeSeparator());\r\n \":\" !== timeSeparator && (timeSeparator = \"\".concat(timeSeparator, \"|:\"));\r\n return \"\".concat(timeSeparator).concat(countSuffix)\r\n },\r\n y: function(count) {\r\n return 2 === count ? \"[0-9]{\".concat(count, \"}\") : \"[0-9]+?\"\r\n },\r\n M: monthRegExpGenerator,\r\n L: monthRegExpGenerator,\r\n Q: function(count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").join(\"|\")\r\n }\r\n return \"0?[1-4]\"\r\n },\r\n E: function(count, dateParts) {\r\n return \"\\\\D*\"\r\n },\r\n a: function(count, dateParts) {\r\n return dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\").join(\"|\")\r\n },\r\n d: function(count) {\r\n return 2 === count ? \"3[01]|[12][0-9]|0?[1-9]\" : \"0??[1-9]|[12][0-9]|3[01]\"\r\n },\r\n H: function(count) {\r\n return 2 === count ? \"2[0-3]|1[0-9]|0?[0-9]\" : \"0??[0-9]|1[0-9]|2[0-3]\"\r\n },\r\n h: function(count) {\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n },\r\n m: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n s: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n S: function(count) {\r\n return \"[0-9]{1,\".concat(count, \"}\")\r\n },\r\n w: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n x: function(count) {\r\n return 3 === count ? \"[+-](?:2[0-3]|[01][0-9]):(?:[0-5][0-9])|Z\" : \"[+-](?:2[0-3]|[01][0-9])(?:[0-5][0-9])|Z\"\r\n }\r\n};\r\nvar parseNumber = Number;\r\nvar caseInsensitiveIndexOf = function(array, value) {\r\n return array.map(item => item.toLowerCase()).indexOf(value.toLowerCase())\r\n};\r\nvar monthPatternParser = function(text, count, dateParts) {\r\n if (count > 2) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n var monthNames = dateParts.getMonthNames(FORMAT_TYPES[count], type);\r\n return caseInsensitiveIndexOf(monthNames, text)\r\n }))\r\n })).reduce((function(a, b) {\r\n return a.concat(b)\r\n })).filter((function(index) {\r\n return index >= 0\r\n }))[0]\r\n }\r\n return parseNumber(text) - 1\r\n};\r\nvar PATTERN_PARSERS = {\r\n y: function(text, count) {\r\n var year = parseNumber(text);\r\n if (2 === count) {\r\n return year < 30 ? 2e3 + year : 1900 + year\r\n }\r\n return year\r\n },\r\n M: monthPatternParser,\r\n L: monthPatternParser,\r\n Q: function(text, count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").indexOf(text)\r\n }\r\n return parseNumber(text) - 1\r\n },\r\n E: function(text, count, dateParts) {\r\n var dayNames = dateParts.getDayNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(dayNames, text)\r\n },\r\n a: function(text, count, dateParts) {\r\n var periodNames = dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(periodNames, text)\r\n },\r\n d: parseNumber,\r\n H: parseNumber,\r\n h: parseNumber,\r\n m: parseNumber,\r\n s: parseNumber,\r\n S: function(text, count) {\r\n count = Math.max(count, 3);\r\n text = text.slice(0, 3);\r\n while (count < 3) {\r\n text += \"0\";\r\n count++\r\n }\r\n return parseNumber(text)\r\n }\r\n};\r\nvar ORDERED_PATTERNS = [\"y\", \"M\", \"d\", \"h\", \"m\", \"s\", \"S\"];\r\nvar PATTERN_SETTERS = {\r\n y: \"setFullYear\",\r\n M: \"setMonth\",\r\n L: \"setMonth\",\r\n a: function(date, value, datePartValues) {\r\n var hours = date.getHours();\r\n var hourPartValue = datePartValues.h;\r\n if (void 0 !== hourPartValue && hourPartValue !== hours) {\r\n hours--\r\n }\r\n if (!value && 12 === hours) {\r\n hours = 0\r\n } else if (value && 12 !== hours) {\r\n hours += 12\r\n }\r\n date.setHours(hours)\r\n },\r\n d: \"setDate\",\r\n H: \"setHours\",\r\n h: \"setHours\",\r\n m: \"setMinutes\",\r\n s: \"setSeconds\",\r\n S: \"setMilliseconds\"\r\n};\r\nvar getSameCharCount = function(text, index) {\r\n var char = text[index];\r\n if (!char) {\r\n return 0\r\n }\r\n var count = 0;\r\n do {\r\n index++;\r\n count++\r\n } while (text[index] === char);\r\n return count\r\n};\r\nvar createPattern = function(char, count) {\r\n var result = \"\";\r\n for (var i = 0; i < count; i++) {\r\n result += char\r\n }\r\n return result\r\n};\r\nexport var getRegExpInfo = function(format, dateParts) {\r\n var regexpText = \"\";\r\n var stubText = \"\";\r\n var isEscaping;\r\n var patterns = [];\r\n var addPreviousStub = function() {\r\n if (stubText) {\r\n patterns.push(\"'\".concat(stubText, \"'\"));\r\n regexpText += \"\".concat(escapeRegExp(stubText), \")\");\r\n stubText = \"\"\r\n }\r\n };\r\n for (var i = 0; i < format.length; i++) {\r\n var char = format[i];\r\n var isEscapeChar = \"'\" === char;\r\n var regexpPart = PATTERN_REGEXPS[char];\r\n if (isEscapeChar) {\r\n isEscaping = !isEscaping;\r\n if (\"'\" !== format[i - 1]) {\r\n continue\r\n }\r\n }\r\n if (regexpPart && !isEscaping) {\r\n var count = getSameCharCount(format, i);\r\n var pattern = createPattern(char, count);\r\n addPreviousStub();\r\n patterns.push(pattern);\r\n regexpText += \"(\".concat(regexpPart(count, dateParts), \")\");\r\n i += count - 1\r\n } else {\r\n if (!stubText) {\r\n regexpText += \"(\"\r\n }\r\n stubText += char\r\n }\r\n }\r\n addPreviousStub();\r\n if (!isPossibleForParsingFormat(patterns)) {\r\n logger.warn(\"The following format may be parsed incorrectly: \".concat(format, \".\"))\r\n }\r\n return {\r\n patterns: patterns,\r\n regexp: new RegExp(\"^\".concat(regexpText, \"$\"), \"i\")\r\n }\r\n};\r\nvar digitFieldSymbols = [\"d\", \"H\", \"h\", \"m\", \"s\", \"w\", \"M\", \"L\", \"Q\"];\r\nexport var isPossibleForParsingFormat = function(patterns) {\r\n var isDigitPattern = pattern => {\r\n if (!pattern) {\r\n return false\r\n }\r\n var char = pattern[0];\r\n return [\"y\", \"S\"].includes(char) || digitFieldSymbols.includes(char) && pattern.length < 3\r\n };\r\n var possibleForParsing = true;\r\n var ambiguousDigitPatternsCount = 0;\r\n return patterns.every((pattern, index, patterns) => {\r\n if (isDigitPattern(pattern)) {\r\n if ((pattern => \"S\" !== pattern[0] && 2 !== pattern.length)(pattern)) {\r\n possibleForParsing = ++ambiguousDigitPatternsCount < 2\r\n }\r\n if (!isDigitPattern(patterns[index + 1])) {\r\n ambiguousDigitPatternsCount = 0\r\n }\r\n }\r\n return possibleForParsing\r\n })\r\n};\r\nexport var getPatternSetters = function() {\r\n return PATTERN_SETTERS\r\n};\r\nvar setPatternPart = function(date, pattern, text, dateParts, datePartValues) {\r\n var patternChar = pattern[0];\r\n var partSetter = PATTERN_SETTERS[patternChar];\r\n var partParser = PATTERN_PARSERS[patternChar];\r\n if (partSetter && partParser) {\r\n var value = partParser(text, pattern.length, dateParts);\r\n datePartValues[pattern] = value;\r\n if (date[partSetter]) {\r\n date[partSetter](value)\r\n } else {\r\n partSetter(date, value, datePartValues)\r\n }\r\n }\r\n};\r\nvar setPatternPartFromNow = function(date, pattern, now) {\r\n var setterName = PATTERN_SETTERS[pattern];\r\n var getterName = \"g\" + setterName.substr(1);\r\n var value = now[getterName]();\r\n date[setterName](value)\r\n};\r\nvar getShortPatterns = function(fullPatterns) {\r\n return fullPatterns.map((function(pattern) {\r\n if (\"'\" === pattern[0]) {\r\n return \"\"\r\n } else {\r\n return \"H\" === pattern[0] ? \"h\" : pattern[0]\r\n }\r\n }))\r\n};\r\nvar getMaxOrderedPatternIndex = function(patterns) {\r\n var indexes = patterns.map((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern)\r\n }));\r\n return Math.max.apply(Math, indexes)\r\n};\r\nvar getOrderedFormatPatterns = function(formatPatterns) {\r\n var otherPatterns = formatPatterns.filter((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern) < 0\r\n }));\r\n return ORDERED_PATTERNS.concat(otherPatterns)\r\n};\r\nexport var getParser = function(format, dateParts) {\r\n var regExpInfo = getRegExpInfo(format, dateParts);\r\n return function(text) {\r\n var regExpResult = regExpInfo.regexp.exec(text);\r\n if (regExpResult) {\r\n var now = new Date;\r\n var date = new Date(now.getFullYear(), 0, 1);\r\n var formatPatterns = getShortPatterns(regExpInfo.patterns);\r\n var maxPatternIndex = getMaxOrderedPatternIndex(formatPatterns);\r\n var orderedFormatPatterns = getOrderedFormatPatterns(formatPatterns);\r\n var datePartValues = {};\r\n orderedFormatPatterns.forEach((function(pattern, index) {\r\n if (!pattern || index < ORDERED_PATTERNS.length && index > maxPatternIndex) {\r\n return\r\n }\r\n var patternIndex = formatPatterns.indexOf(pattern);\r\n if (patternIndex >= 0) {\r\n var regExpPattern = regExpInfo.patterns[patternIndex];\r\n var regExpText = regExpResult[patternIndex + 1];\r\n setPatternPart(date, regExpPattern, regExpText, dateParts, datePartValues)\r\n } else {\r\n setPatternPartFromNow(date, pattern, now)\r\n }\r\n }));\r\n return date\r\n }\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/default_date_names.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nvar MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nvar PERIODS = [\"AM\", \"PM\"];\r\nvar QUARTERS = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"];\r\nvar cutCaptions = (captions, format) => {\r\n var lengthByFormat = {\r\n abbreviated: 3,\r\n short: 2,\r\n narrow: 1\r\n };\r\n return map(captions, caption => caption.substr(0, lengthByFormat[format]))\r\n};\r\nexport default {\r\n getMonthNames: function(format) {\r\n return cutCaptions(MONTHS, format)\r\n },\r\n getDayNames: function(format) {\r\n return cutCaptions(DAYS, format)\r\n },\r\n getQuarterNames: function(format) {\r\n return QUARTERS\r\n },\r\n getPeriodNames: function(format) {\r\n return PERIODS\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/first_day_of_week_data.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport default {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-MV\": 5,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nnh: 1,\r\n no: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n sc: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/date.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport localizationCoreUtils from \"../core\";\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar NARROW_NO_BREAK_SPACE_REGEX = /[\\u202F]/g;\r\nvar getIntlFormatter = format => date => {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + 400 : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = extend({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\").replace(NARROW_NO_BREAK_SPACE_REGEX, \" \")\r\n}\r\nvar formatNumber = number => new Intl.NumberFormat(localizationCoreUtils.locale()).format(number);\r\nvar getAlternativeNumeralsMap = (() => {\r\n var numeralsMapCache = {};\r\n return locale => {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n})();\r\nvar normalizeNumerals = dateString => {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(localizationCoreUtils.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(sign => sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign).join(\"\")\r\n};\r\nvar removeLeadingZeroes = str => str.replace(/(\\D)0+(\\d)/g, \"$1$2\");\r\nvar dateStringEquals = (actual, expected) => removeLeadingZeroes(actual) === removeLeadingZeroes(expected);\r\nvar normalizeMonth = text => text.replace(\"d\\u2019\", \"de \");\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(localizationCoreUtils.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = format => \"string\" === typeof format && intlFormats[format.toLowerCase()];\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(part => part.indexOf(\"13\") < 0);\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var monthFormat = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map((_, monthIndex) => monthNameStrategies[type](monthIndex, monthFormat))\r\n },\r\n getDayNames: function(format) {\r\n var result = (format => Array.apply(null, new Array(7)).map((_, dayIndex) => getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))))({\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n short: \"narrow\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(hours => {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = typeof _format;\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = date => normalizeMonth(this.format(date, format))\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(part => part.length > 0);\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructValidDate = ampmShift => {\r\n var parsedDate = ((dateArgs, ampmShift) => {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n })(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(this.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach((formatPart, index) => {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getTimeSeparator: function() {\r\n return normalizeNumerals(formatDateTime(new Date(2001, 1, 1, 11, 11), {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n })).replace(/\\d/g, \"\")\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = extend({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n return [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }].map(part => ({\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n })).filter(part => part.index > -1).sort((a, b) => a.index - b.index).map(part => part.name)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/date.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getFormatter as getLDMLDateFormatter\r\n} from \"./ldml/date.formatter\";\r\nimport {\r\n getFormat as getLDMLDateFormat\r\n} from \"./ldml/date.format\";\r\nimport {\r\n getParser as getLDMLDateParser\r\n} from \"./ldml/date.parser\";\r\nimport defaultDateNames from \"./default_date_names\";\r\nimport firstDayOfWeekData from \"./cldr-data/first_day_of_week_data\";\r\nimport localizationCore from \"./core\";\r\nimport numberLocalization from \"./number\";\r\nimport intlDateLocalization from \"./intl/date\";\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"MMMM\")\r\n },\r\n formatUsesDayName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"EEEE\")\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n each(pattern.split(/\\W+/), (_, formatPart) => {\r\n each(possiblePartPatterns, (partName, possiblePatterns) => {\r\n if (possiblePatterns.includes(formatPart)) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return defaultDateNames.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return defaultDateNames.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return defaultDateNames.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return defaultDateNames.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if (isString(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return numberLocalization.convertDigits(getLDMLDateFormatter(_format, this)(date))\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = value => {\r\n var text = that.format(value, format);\r\n return numberLocalization.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = getLDMLDateFormat(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = numberLocalization.convertDigits(text, true);\r\n return getLDMLDateParser(ldmlFormat, this)(text)\r\n }\r\n errors.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = localizationCore.getValueByClosestLocale(locale => firstDayOfWeekData[locale]);\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(intlDateLocalization)\r\n}\r\nexport default dateLocalization;\r\n","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map((function(formatPart) {\r\n return dateLocalization.format(date, formatPart)\r\n })).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/component_registrator_callbacks.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/public_component.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nvar COMPONENT_NAMES_DATA_KEY = \"dxComponents\";\r\nvar ANONYMOUS_COMPONENT_DATA_KEY = \"dxPrivateComponent\";\r\nvar componentNames = new WeakMap;\r\nvar nextAnonymousComponent = 0;\r\nvar getName = function(componentClass, newName) {\r\n if (isDefined(newName)) {\r\n componentNames.set(componentClass, newName);\r\n return\r\n }\r\n if (!componentNames.has(componentClass)) {\r\n var generatedName = ANONYMOUS_COMPONENT_DATA_KEY + nextAnonymousComponent++;\r\n componentNames.set(componentClass, generatedName);\r\n return generatedName\r\n }\r\n return componentNames.get(componentClass)\r\n};\r\nexport function attachInstanceToElement($element, componentInstance, disposeFn) {\r\n var data = elementData($element.get(0));\r\n var name = getName(componentInstance.constructor);\r\n data[name] = componentInstance;\r\n if (disposeFn) {\r\n eventsEngine.one($element, removeEvent, (function() {\r\n disposeFn.call(componentInstance)\r\n }))\r\n }\r\n if (!data[COMPONENT_NAMES_DATA_KEY]) {\r\n data[COMPONENT_NAMES_DATA_KEY] = []\r\n }\r\n data[COMPONENT_NAMES_DATA_KEY].push(name)\r\n}\r\nexport function getInstanceByElement($element, componentClass) {\r\n var name = getName(componentClass);\r\n return elementData($element.get(0), name)\r\n}\r\nexport {\r\n getName as name\r\n};\r\n","/**\r\n * DevExtreme (esm/core/component_registrator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport callbacks from \"./component_registrator_callbacks\";\r\nimport errors from \"./errors\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nvar registerComponent = function(name, namespace, componentClass) {\r\n if (!componentClass) {\r\n componentClass = namespace\r\n } else {\r\n namespace[name] = componentClass\r\n }\r\n publicComponentName(componentClass, name);\r\n callbacks.fire(name, componentClass)\r\n};\r\nvar registerRendererComponent = function(name, componentClass) {\r\n $.fn[name] = function(options) {\r\n var isMemberInvoke = \"string\" === typeof options;\r\n var result;\r\n if (isMemberInvoke) {\r\n var memberName = options;\r\n var memberArgs = [].slice.call(arguments).slice(1);\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (!instance) {\r\n throw errors.Error(\"E0009\", name)\r\n }\r\n var member = instance[memberName];\r\n var memberValue = member.apply(instance, memberArgs);\r\n if (void 0 === result) {\r\n result = memberValue\r\n }\r\n }))\r\n } else {\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (instance) {\r\n instance.option(options)\r\n } else {\r\n new componentClass(this, options)\r\n }\r\n }));\r\n result = this\r\n }\r\n return result\r\n }\r\n};\r\ncallbacks.add(registerRendererComponent);\r\nexport default registerComponent;\r\n","/**\r\n * DevExtreme (esm/ui/themes_callback.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nexport var themeReadyCallback = Callbacks();\r\n","/**\r\n * DevExtreme (esm/ui/themes.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n parseHTML\r\n} from \"../core/utils/html_parser\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n value as viewPortValue,\r\n changeCallback,\r\n originalViewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n themeReadyCallback\r\n} from \"./themes_callback\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar window = getWindow();\r\nvar ready = readyCallbacks.add;\r\nvar viewPort = viewPortValue;\r\nvar viewPortChanged = changeCallback;\r\nvar initDeferred = new Deferred;\r\nvar DX_LINK_SELECTOR = \"link[rel=dx-theme]\";\r\nvar THEME_ATTR = \"data-theme\";\r\nvar ACTIVE_ATTR = \"data-active\";\r\nvar DX_HAIRLINES_CLASS = \"dx-hairlines\";\r\nvar ANY_THEME = \"any\";\r\nvar context;\r\nvar $activeThemeLink;\r\nvar knownThemes;\r\nvar currentThemeName;\r\nvar pendingThemeName;\r\nvar defaultTimeout = 15e3;\r\nvar THEME_MARKER_PREFIX = \"dx.\";\r\n\r\nfunction readThemeMarker() {\r\n if (!hasWindow()) {\r\n return null\r\n }\r\n var element = $(\"
\", context).addClass(\"dx-theme-marker\").appendTo(context.documentElement);\r\n var result;\r\n try {\r\n result = window.getComputedStyle(element.get(0)).fontFamily;\r\n if (!result) {\r\n return null\r\n }\r\n result = result.replace(/[\"']/g, \"\");\r\n if (result.substr(0, THEME_MARKER_PREFIX.length) !== THEME_MARKER_PREFIX) {\r\n return null\r\n }\r\n return result.substr(THEME_MARKER_PREFIX.length)\r\n } finally {\r\n element.remove()\r\n }\r\n}\r\nexport function waitForThemeLoad(themeName) {\r\n var waitStartTime;\r\n var timerId;\r\n var intervalCleared = true;\r\n pendingThemeName = themeName;\r\n\r\n function handleLoaded() {\r\n pendingThemeName = null;\r\n clearInterval(timerId);\r\n intervalCleared = true;\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty();\r\n initDeferred.resolve()\r\n }\r\n if (isPendingThemeLoaded() || !defaultTimeout) {\r\n handleLoaded()\r\n } else {\r\n if (!intervalCleared) {\r\n if (pendingThemeName) {\r\n pendingThemeName = themeName\r\n }\r\n return\r\n }\r\n waitStartTime = Date.now();\r\n intervalCleared = false;\r\n timerId = setInterval((function() {\r\n var isLoaded = isPendingThemeLoaded();\r\n var isTimeout = !isLoaded && Date.now() - waitStartTime > defaultTimeout;\r\n if (isTimeout) {\r\n errors.log(\"W0004\", pendingThemeName)\r\n }\r\n if (isLoaded || isTimeout) {\r\n handleLoaded()\r\n }\r\n }), 10)\r\n }\r\n}\r\nexport function isPendingThemeLoaded() {\r\n if (!pendingThemeName) {\r\n return true\r\n }\r\n var anyThemePending = pendingThemeName === ANY_THEME;\r\n if (\"resolved\" === initDeferred.state() && anyThemePending) {\r\n return true\r\n }\r\n var themeMarker = readThemeMarker();\r\n if (themeMarker && anyThemePending) {\r\n return true\r\n }\r\n return themeMarker === pendingThemeName\r\n}\r\n\r\nfunction processMarkup() {\r\n var $allThemeLinks = $(DX_LINK_SELECTOR, context);\r\n if (!$allThemeLinks.length) {\r\n return\r\n }\r\n knownThemes = {};\r\n $activeThemeLink = $(parseHTML(\"\"), context);\r\n $allThemeLinks.each((function() {\r\n var link = $(this, context);\r\n var fullThemeName = link.attr(THEME_ATTR);\r\n var url = link.attr(\"href\");\r\n var isActive = \"true\" === link.attr(ACTIVE_ATTR);\r\n knownThemes[fullThemeName] = {\r\n url: url,\r\n isActive: isActive\r\n }\r\n }));\r\n $allThemeLinks.last().after($activeThemeLink);\r\n $allThemeLinks.remove()\r\n}\r\n\r\nfunction resolveFullThemeName(desiredThemeName) {\r\n var desiredThemeParts = desiredThemeName ? desiredThemeName.split(\".\") : [];\r\n var result = null;\r\n if (knownThemes) {\r\n if (desiredThemeName in knownThemes) {\r\n return desiredThemeName\r\n }\r\n each(knownThemes, (function(knownThemeName, themeData) {\r\n var knownThemeParts = knownThemeName.split(\".\");\r\n if (desiredThemeParts[0] && knownThemeParts[0] !== desiredThemeParts[0]) {\r\n return\r\n }\r\n if (desiredThemeParts[1] && desiredThemeParts[1] !== knownThemeParts[1]) {\r\n return\r\n }\r\n if (desiredThemeParts[2] && desiredThemeParts[2] !== knownThemeParts[2]) {\r\n return\r\n }\r\n if (!result || themeData.isActive) {\r\n result = knownThemeName\r\n }\r\n if (themeData.isActive) {\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n}\r\n\r\nfunction initContext(newContext) {\r\n try {\r\n if (newContext !== context) {\r\n knownThemes = null\r\n }\r\n } catch (x) {\r\n knownThemes = null\r\n }\r\n context = newContext\r\n}\r\nexport function init(options) {\r\n options = options || {};\r\n initContext(options.context || domAdapter.getDocument());\r\n if (!context) {\r\n return\r\n }\r\n processMarkup();\r\n currentThemeName = void 0;\r\n current(options)\r\n}\r\nexport function current(options) {\r\n if (!arguments.length) {\r\n currentThemeName = currentThemeName || readThemeMarker();\r\n return currentThemeName\r\n }\r\n detachCssClasses(viewPort());\r\n options = options || {};\r\n if (\"string\" === typeof options) {\r\n options = {\r\n theme: options\r\n }\r\n }\r\n var isAutoInit = options._autoInit;\r\n var loadCallback = options.loadCallback;\r\n var currentThemeData;\r\n currentThemeName = resolveFullThemeName(options.theme || currentThemeName);\r\n if (currentThemeName) {\r\n currentThemeData = knownThemes[currentThemeName]\r\n }\r\n if (loadCallback) {\r\n themeReadyCallback.add(loadCallback)\r\n }\r\n if (currentThemeData) {\r\n $activeThemeLink.attr(\"href\", knownThemes[currentThemeName].url);\r\n if (themeReadyCallback.has() || \"resolved\" !== initDeferred.state() || options._forceTimeout) {\r\n waitForThemeLoad(currentThemeName)\r\n }\r\n } else if (isAutoInit) {\r\n if (hasWindow()) {\r\n waitForThemeLoad(ANY_THEME)\r\n }\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty()\r\n } else {\r\n throw errors.Error(\"E0021\", currentThemeName)\r\n }\r\n initDeferred.done(() => attachCssClasses(originalViewPort(), currentThemeName))\r\n}\r\n\r\nfunction getCssClasses(themeName) {\r\n themeName = themeName || current();\r\n var result = [];\r\n var themeNameParts = themeName && themeName.split(\".\");\r\n if (themeNameParts) {\r\n result.push(\"dx-theme-\" + themeNameParts[0], \"dx-theme-\" + themeNameParts[0] + \"-typography\");\r\n if (themeNameParts.length > 1) {\r\n result.push(\"dx-color-scheme-\" + themeNameParts[1] + (isMaterialBased(themeName) ? \"-\" + themeNameParts[2] : \"\"))\r\n }\r\n }\r\n return result\r\n}\r\nvar themeClasses;\r\nexport function attachCssClasses(element, themeName) {\r\n themeClasses = getCssClasses(themeName).join(\" \");\r\n $(element).addClass(themeClasses);\r\n ! function() {\r\n var pixelRatio = hasWindow() && window.devicePixelRatio;\r\n if (!pixelRatio || pixelRatio < 2) {\r\n return\r\n }\r\n var $tester = $(\"
\");\r\n $tester.css(\"border\", \".5px solid transparent\");\r\n $(\"body\").append($tester);\r\n if (1 === getOuterHeight($tester)) {\r\n $(element).addClass(DX_HAIRLINES_CLASS);\r\n themeClasses += \" \" + DX_HAIRLINES_CLASS\r\n }\r\n $tester.remove()\r\n }()\r\n}\r\nexport function detachCssClasses(element) {\r\n $(element).removeClass(themeClasses)\r\n}\r\n\r\nfunction themeReady(callback) {\r\n themeReadyCallback.add(callback)\r\n}\r\n\r\nfunction isTheme(themeRegExp, themeName) {\r\n if (!themeName) {\r\n themeName = currentThemeName || readThemeMarker()\r\n }\r\n return new RegExp(themeRegExp).test(themeName)\r\n}\r\nexport function isMaterialBased(themeName) {\r\n return isMaterial(themeName) || isFluent(themeName)\r\n}\r\nexport function isMaterial(themeName) {\r\n return isTheme(\"material\", themeName)\r\n}\r\nexport function isFluent(themeName) {\r\n return isTheme(\"fluent\", themeName)\r\n}\r\nexport function isGeneric(themeName) {\r\n return isTheme(\"generic\", themeName)\r\n}\r\nexport function isDark(themeName) {\r\n return isTheme(\"dark\", themeName)\r\n}\r\nexport function isCompact(themeName) {\r\n return isTheme(\"compact\", themeName)\r\n}\r\nexport function isWebFontLoaded(text, fontWeight) {\r\n var document = domAdapter.getDocument();\r\n var testElement = document.createElement(\"span\");\r\n testElement.style.position = \"absolute\";\r\n testElement.style.top = \"-9999px\";\r\n testElement.style.left = \"-9999px\";\r\n testElement.style.visibility = \"hidden\";\r\n testElement.style.fontFamily = \"Arial\";\r\n testElement.style.fontSize = \"250px\";\r\n testElement.style.fontWeight = fontWeight;\r\n testElement.innerHTML = text;\r\n document.body.appendChild(testElement);\r\n var etalonFontWidth = testElement.offsetWidth;\r\n testElement.style.fontFamily = \"Roboto, RobotoFallback, Arial\";\r\n var testedFontWidth = testElement.offsetWidth;\r\n testElement.parentNode.removeChild(testElement);\r\n return etalonFontWidth !== testedFontWidth\r\n}\r\nexport function waitWebFont(text, fontWeight) {\r\n return new Promise(resolve => {\r\n var clear = () => {\r\n clearInterval(intervalId);\r\n clearTimeout(timeoutId);\r\n resolve()\r\n };\r\n var intervalId = setInterval(() => {\r\n if (isWebFontLoaded(text, fontWeight)) {\r\n clear()\r\n }\r\n }, 15);\r\n var timeoutId = setTimeout(clear, 2e3)\r\n })\r\n}\r\n\r\nfunction autoInit() {\r\n init({\r\n _autoInit: true,\r\n _forceTimeout: true\r\n });\r\n if ($(DX_LINK_SELECTOR, context).length) {\r\n throw errors.Error(\"E0022\")\r\n }\r\n}\r\nif (hasWindow()) {\r\n autoInit()\r\n} else {\r\n ready(autoInit)\r\n}\r\nviewPortChanged.add((function(viewPort, prevViewPort) {\r\n initDeferred.done((function() {\r\n detachCssClasses(prevViewPort);\r\n attachCssClasses(viewPort)\r\n }))\r\n}));\r\ndevices.changed.add((function() {\r\n init({\r\n _autoInit: true\r\n })\r\n}));\r\nexport {\r\n themeReady as ready\r\n};\r\nexport function resetTheme() {\r\n $activeThemeLink && $activeThemeLink.attr(\"href\", \"about:blank\");\r\n currentThemeName = null;\r\n pendingThemeName = null;\r\n initDeferred = new Deferred\r\n}\r\nexport function initialized(callback) {\r\n initDeferred.done(callback)\r\n}\r\nexport function setDefaultTimeout(timeout) {\r\n defaultTimeout = timeout\r\n}\r\nexport default {\r\n setDefaultTimeout: setDefaultTimeout,\r\n initialized: initialized,\r\n resetTheme: resetTheme,\r\n ready: themeReady,\r\n waitWebFont: waitWebFont,\r\n isWebFontLoaded: isWebFontLoaded,\r\n isCompact: isCompact,\r\n isDark: isDark,\r\n isGeneric: isGeneric,\r\n isMaterial: isMaterial,\r\n isFluent: isFluent,\r\n isMaterialBased: isMaterialBased,\r\n detachCssClasses: detachCssClasses,\r\n attachCssClasses: attachCssClasses,\r\n current: current,\r\n waitForThemeLoad: waitForThemeLoad,\r\n isPendingThemeLoaded: isPendingThemeLoaded\r\n};\r\n","/**\r\n * DevExtreme (esm/core/action.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isPlainObject,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nexport default class Action {\r\n constructor(action, config) {\r\n config = config || {};\r\n this._action = action;\r\n this._context = config.context || getWindow();\r\n this._beforeExecute = config.beforeExecute;\r\n this._afterExecute = config.afterExecute;\r\n this._component = config.component;\r\n this._validatingTargetName = config.validatingTargetName;\r\n var excludeValidators = this._excludeValidators = {};\r\n if (config.excludeValidators) {\r\n for (var i = 0; i < config.excludeValidators.length; i++) {\r\n excludeValidators[config.excludeValidators[i]] = true\r\n }\r\n }\r\n }\r\n execute() {\r\n var e = {\r\n action: this._action,\r\n args: Array.prototype.slice.call(arguments),\r\n context: this._context,\r\n component: this._component,\r\n validatingTargetName: this._validatingTargetName,\r\n cancel: false,\r\n handled: false\r\n };\r\n var beforeExecute = this._beforeExecute;\r\n var afterExecute = this._afterExecute;\r\n var argsBag = e.args[0] || {};\r\n if (!this._validateAction(e)) {\r\n return\r\n }\r\n null === beforeExecute || void 0 === beforeExecute ? void 0 : beforeExecute.call(this._context, e);\r\n if (e.cancel) {\r\n return\r\n }\r\n var result = this._executeAction(e);\r\n if (argsBag.cancel) {\r\n return\r\n }\r\n null === afterExecute || void 0 === afterExecute ? void 0 : afterExecute.call(this._context, e);\r\n return result\r\n }\r\n _validateAction(e) {\r\n var excludeValidators = this._excludeValidators;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n if (!excludeValidators[name]) {\r\n var _executor$validate;\r\n var executor = executors[name];\r\n null === (_executor$validate = executor.validate) || void 0 === _executor$validate ? void 0 : _executor$validate.call(executor, e);\r\n if (e.cancel) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _executeAction(e) {\r\n var result;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n var _executor$execute;\r\n var executor = executors[name];\r\n null === (_executor$execute = executor.execute) || void 0 === _executor$execute ? void 0 : _executor$execute.call(executor, e);\r\n if (e.handled) {\r\n result = e.result;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n static registerExecutor(name, executor) {\r\n if (isPlainObject(name)) {\r\n each(name, Action.registerExecutor);\r\n return\r\n }\r\n Action.executors[name] = executor\r\n }\r\n static unregisterExecutor() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n each(args, (function() {\r\n delete Action.executors[this]\r\n }))\r\n }\r\n}\r\nAction.executors = {};\r\nvar createValidatorByTargetElement = condition => e => {\r\n if (!e.args.length) {\r\n return\r\n }\r\n var args = e.args[0];\r\n var element = args[e.validatingTargetName] || args.element;\r\n if (element && condition($(element))) {\r\n e.cancel = true\r\n }\r\n};\r\nAction.registerExecutor({\r\n disabled: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-disabled, .dx-state-disabled *\"))\r\n },\r\n readOnly: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-readonly, .dx-state-readonly *:not(.dx-state-independent)\"))\r\n },\r\n undefined: {\r\n execute: e => {\r\n if (!e.action) {\r\n e.result = void 0;\r\n e.handled = true\r\n }\r\n }\r\n },\r\n func: {\r\n execute: e => {\r\n if (isFunction(e.action)) {\r\n e.result = e.action.call(e.context, e.args[0]);\r\n e.handled = true\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/comparator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n isRenderer\r\n} from \"./type\";\r\nvar hasNegation = function(oldValue, newValue) {\r\n return 1 / oldValue === 1 / newValue\r\n};\r\nexport var equals = function(oldValue, newValue) {\r\n oldValue = toComparable(oldValue, true);\r\n newValue = toComparable(newValue, true);\r\n if (oldValue && newValue && isRenderer(oldValue) && isRenderer(newValue)) {\r\n return newValue.is(oldValue)\r\n }\r\n var oldValueIsNaN = oldValue !== oldValue;\r\n var newValueIsNaN = newValue !== newValue;\r\n if (oldValueIsNaN && newValueIsNaN) {\r\n return true\r\n }\r\n if (0 === oldValue && 0 === newValue) {\r\n return hasNegation(oldValue, newValue)\r\n }\r\n if (null === oldValue || \"object\" !== typeof oldValue || domAdapter.isElementNode(oldValue)) {\r\n return oldValue === newValue\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../devices\";\r\nimport {\r\n isEmptyObject,\r\n isFunction\r\n} from \"../utils/type\";\r\nimport {\r\n findBestMatches\r\n} from \"../utils/common\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n compileGetter\r\n} from \"../utils/data\";\r\nvar cachedGetters = {};\r\nexport var convertRulesToOptions = rules => {\r\n var currentDevice = devices.current();\r\n return rules.reduce((options, _ref) => {\r\n var {\r\n device: device,\r\n options: ruleOptions\r\n } = _ref;\r\n var deviceFilter = device || {};\r\n var match = isFunction(deviceFilter) ? deviceFilter(currentDevice) : deviceMatch(currentDevice, deviceFilter);\r\n if (match) {\r\n extend(true, options, ruleOptions)\r\n }\r\n return options\r\n }, {})\r\n};\r\nexport var normalizeOptions = (options, value) => \"string\" !== typeof options ? options : {\r\n [options]: value\r\n};\r\nexport var deviceMatch = (device, filter) => isEmptyObject(filter) || findBestMatches(device, [filter]).length > 0;\r\nexport var getFieldName = fullName => fullName.substr(fullName.lastIndexOf(\".\") + 1);\r\nexport var getParentName = fullName => fullName.substr(0, fullName.lastIndexOf(\".\"));\r\nexport var getNestedOptionValue = function(optionsObject, name) {\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](optionsObject, {\r\n functionsAsIs: true\r\n })\r\n};\r\nexport var createDefaultOptionRules = function() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/option_manager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter,\r\n compileSetter,\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n equals\r\n} from \"../utils/comparator\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../utils/type\";\r\nimport {\r\n normalizeOptions\r\n} from \"./utils\";\r\nvar cachedGetters = {};\r\nvar cachedSetters = {};\r\nexport class OptionManager {\r\n constructor(options, optionsByReference) {\r\n this._options = options;\r\n this._optionsByReference = optionsByReference;\r\n this._changingCallback;\r\n this._changedCallback;\r\n this._namePreparedCallbacks\r\n }\r\n _setByReference(options, rulesOptions) {\r\n extend(true, options, rulesOptions);\r\n for (var fieldName in this._optionsByReference) {\r\n if (Object.prototype.hasOwnProperty.call(rulesOptions, fieldName)) {\r\n options[fieldName] = rulesOptions[fieldName]\r\n }\r\n }\r\n }\r\n _setPreparedValue(name, value, merge, silent) {\r\n var previousValue = this.get(this._options, name, false);\r\n if (!equals(previousValue, value)) {\r\n var path = getPathParts(name);\r\n !silent && this._changingCallback(name, previousValue, value);\r\n cachedSetters[name] = cachedSetters[name] || compileSetter(name);\r\n cachedSetters[name](this._options, value, {\r\n functionsAsIs: true,\r\n merge: isDefined(merge) ? merge : !this._optionsByReference[name],\r\n unwrapObservables: path.length > 1 && !!this._optionsByReference[path[0]]\r\n });\r\n !silent && this._changedCallback(name, value, previousValue)\r\n }\r\n }\r\n _prepareRelevantNames(options, name, value, silent) {\r\n if (isPlainObject(value)) {\r\n for (var valueName in value) {\r\n this._prepareRelevantNames(options, \"\".concat(name, \".\").concat(valueName), value[valueName])\r\n }\r\n }\r\n this._namePreparedCallbacks(options, name, value, silent)\r\n }\r\n get() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._options;\r\n var name = arguments.length > 1 ? arguments[1] : void 0;\r\n var unwrapObservables = arguments.length > 2 ? arguments[2] : void 0;\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](options, {\r\n functionsAsIs: true,\r\n unwrapObservables: unwrapObservables\r\n })\r\n }\r\n set(options, value, merge, silent) {\r\n options = normalizeOptions(options, value);\r\n for (var name in options) {\r\n this._prepareRelevantNames(options, name, options[name], silent)\r\n }\r\n for (var _name in options) {\r\n this._setPreparedValue(_name, options[_name], merge, silent)\r\n }\r\n }\r\n onRelevantNamesPrepared(callBack) {\r\n this._namePreparedCallbacks = callBack\r\n }\r\n onChanging(callBack) {\r\n this._changingCallback = callBack\r\n }\r\n onChanged(callBack) {\r\n this._changedCallback = callBack\r\n }\r\n dispose() {\r\n this._changingCallback = noop;\r\n this._changedCallback = noop\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/options/index.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../utils/type\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n OptionManager\r\n} from \"./option_manager\";\r\nimport {\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n getFieldName,\r\n getParentName,\r\n convertRulesToOptions,\r\n getNestedOptionValue\r\n} from \"./utils\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nexport class Options {\r\n constructor(options, defaultOptions, optionsByReference, deprecatedOptions) {\r\n this._deprecatedCallback;\r\n this._startChangeCallback;\r\n this._endChangeCallback;\r\n this._default = defaultOptions;\r\n this._deprecated = deprecatedOptions;\r\n this._deprecatedNames = [];\r\n this._initDeprecatedNames();\r\n this._optionManager = new OptionManager(options, optionsByReference);\r\n this._optionManager.onRelevantNamesPrepared((options, name, value, silent) => this._setRelevantNames(options, name, value, silent));\r\n this._cachedOptions = {};\r\n this._rules = []\r\n }\r\n set _initial(value) {\r\n this._initialOptions = value\r\n }\r\n get _initial() {\r\n if (!this._initialOptions) {\r\n var rulesOptions = this._getByRules(this.silent(\"defaultOptionsRules\"));\r\n this._initialOptions = this._default;\r\n this._optionManager._setByReference(this._initialOptions, rulesOptions)\r\n }\r\n return this._initialOptions\r\n }\r\n _initDeprecatedNames() {\r\n for (var optionName in this._deprecated) {\r\n this._deprecatedNames.push(optionName)\r\n }\r\n }\r\n _getByRules(rules) {\r\n rules = Array.isArray(rules) ? this._rules.concat(rules) : this._rules;\r\n return convertRulesToOptions(rules)\r\n }\r\n _notifyDeprecated(option) {\r\n var info = this._deprecated[option];\r\n if (info) {\r\n this._deprecatedCallback(option, info)\r\n }\r\n }\r\n _setRelevantNames(options, name, value, silent) {\r\n if (name) {\r\n var normalizedName = this._normalizeName(name, silent);\r\n if (normalizedName && normalizedName !== name) {\r\n this._setField(options, normalizedName, value);\r\n this._clearField(options, name)\r\n }\r\n }\r\n }\r\n _setField(options, fullName, value) {\r\n var fieldName = \"\";\r\n var fieldObject = null;\r\n do {\r\n fieldName = fieldName ? \".\".concat(fieldName) : \"\";\r\n fieldName = getFieldName(fullName) + fieldName;\r\n fullName = getParentName(fullName);\r\n fieldObject = fullName ? this._optionManager.get(options, fullName, false) : options\r\n } while (!fieldObject);\r\n fieldObject[fieldName] = value\r\n }\r\n _clearField(options, name) {\r\n delete options[name];\r\n var previousFieldName = getParentName(name);\r\n var fieldObject = previousFieldName ? this._optionManager.get(options, previousFieldName, false) : options;\r\n if (fieldObject) {\r\n delete fieldObject[getFieldName(name)]\r\n }\r\n }\r\n _normalizeName(name, silent) {\r\n if (this._deprecatedNames.length && name) {\r\n for (var i = 0; i < this._deprecatedNames.length; i++) {\r\n if (this._deprecatedNames[i] === name) {\r\n var deprecate = this._deprecated[name];\r\n if (deprecate) {\r\n !silent && this._notifyDeprecated(name);\r\n return deprecate.alias || name\r\n }\r\n }\r\n }\r\n }\r\n return name\r\n }\r\n addRules(rules) {\r\n this._rules = rules.concat(this._rules)\r\n }\r\n applyRules(rules) {\r\n var options = this._getByRules(rules);\r\n this.silent(options)\r\n }\r\n dispose() {\r\n this._deprecatedCallback = noop;\r\n this._startChangeCallback = noop;\r\n this._endChangeCallback = noop;\r\n this._optionManager.dispose()\r\n }\r\n onChanging(callBack) {\r\n this._optionManager.onChanging(callBack)\r\n }\r\n onChanged(callBack) {\r\n this._optionManager.onChanged(callBack)\r\n }\r\n onDeprecated(callBack) {\r\n this._deprecatedCallback = callBack\r\n }\r\n onStartChange(callBack) {\r\n this._startChangeCallback = callBack\r\n }\r\n onEndChange(callBack) {\r\n this._endChangeCallback = callBack\r\n }\r\n isInitial(name) {\r\n var value = this.silent(name);\r\n var initialValue = this.initial(name);\r\n var areFunctions = isFunction(value) && isFunction(initialValue);\r\n return areFunctions ? value.toString() === initialValue.toString() : equalByValue(value, initialValue)\r\n }\r\n initial(name) {\r\n return getNestedOptionValue(this._initial, name)\r\n }\r\n option(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, this._normalizeName(options))\r\n } else {\r\n this._startChangeCallback();\r\n try {\r\n this._optionManager.set(options, value)\r\n } finally {\r\n this._endChangeCallback()\r\n }\r\n }\r\n }\r\n silent(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, options, void 0, true)\r\n } else {\r\n this._optionManager.set(options, value, void 0, true)\r\n }\r\n }\r\n reset(name) {\r\n if (name) {\r\n var fullPath = getPathParts(name);\r\n var value = fullPath.reduce((value, field) => value ? value[field] : this.initial(field), null);\r\n var defaultValue = isObject(value) ? _extends({}, value) : value;\r\n this._optionManager.set(name, defaultValue, false)\r\n }\r\n }\r\n getAliasesByName(name) {\r\n return Object.keys(this._deprecated).filter(aliasName => name === this._deprecated[aliasName].alias)\r\n }\r\n isDeprecated(name) {\r\n return Object.prototype.hasOwnProperty.call(this._deprecated, name)\r\n }\r\n cache(name, options) {\r\n var isGetter = arguments.length < 2;\r\n if (isGetter) {\r\n return this._cachedOptions[name]\r\n } else {\r\n this._cachedOptions[name] = extend(this._cachedOptions[name], options)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/postponed_operations.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"./utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"./utils/type\";\r\nexport class PostponedOperations {\r\n constructor() {\r\n this._postponedOperations = {}\r\n }\r\n add(key, fn, postponedPromise) {\r\n if (key in this._postponedOperations) {\r\n postponedPromise && this._postponedOperations[key].promises.push(postponedPromise)\r\n } else {\r\n var completePromise = new Deferred;\r\n this._postponedOperations[key] = {\r\n fn: fn,\r\n completePromise: completePromise,\r\n promises: postponedPromise ? [postponedPromise] : []\r\n }\r\n }\r\n return this._postponedOperations[key].completePromise.promise()\r\n }\r\n callPostponedOperations() {\r\n for (var key in this._postponedOperations) {\r\n var operation = this._postponedOperations[key];\r\n if (isDefined(operation)) {\r\n if (operation.promises && operation.promises.length) {\r\n when(...operation.promises).done(operation.fn).then(operation.completePromise.resolve)\r\n } else {\r\n operation.fn().done(operation.completePromise.resolve)\r\n }\r\n }\r\n }\r\n this._postponedOperations = {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/component.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Config from \"./config\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n Options\r\n} from \"./options/index\";\r\nimport {\r\n convertRulesToOptions\r\n} from \"./options/utils\";\r\nimport Class from \"./class\";\r\nimport Action from \"./action\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nimport {\r\n PostponedOperations\r\n} from \"./postponed_operations\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getPathParts\r\n} from \"./utils/data\";\r\nvar getEventName = actionName => actionName.charAt(2).toLowerCase() + actionName.substr(3);\r\nvar isInnerOption = optionName => 0 === optionName.indexOf(\"_\", 0);\r\nexport var Component = Class.inherit({\r\n _setDeprecatedOptions() {\r\n this._deprecatedOptions = {}\r\n },\r\n _getDeprecatedOptions() {\r\n return this._deprecatedOptions\r\n },\r\n _getDefaultOptions: () => ({\r\n onInitialized: null,\r\n onOptionChanged: null,\r\n onDisposing: null,\r\n defaultOptionsRules: null\r\n }),\r\n _defaultOptionsRules: () => [],\r\n _setOptionsByDevice(rules) {\r\n this._options.applyRules(rules)\r\n },\r\n _convertRulesToOptions: rules => convertRulesToOptions(rules),\r\n _isInitialOptionValue(name) {\r\n return this._options.isInitial(name)\r\n },\r\n _setOptionsByReference() {\r\n this._optionsByReference = {}\r\n },\r\n _getOptionsByReference() {\r\n return this._optionsByReference\r\n },\r\n ctor() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n _optionChangedCallbacks: _optionChangedCallbacks,\r\n _disposingCallbacks: _disposingCallbacks\r\n } = options;\r\n this.NAME = publicComponentName(this.constructor);\r\n this._eventsStrategy = EventsStrategy.create(this, options.eventsStrategy);\r\n this._updateLockCount = 0;\r\n this._optionChangedCallbacks = _optionChangedCallbacks || Callbacks();\r\n this._disposingCallbacks = _disposingCallbacks || Callbacks();\r\n this.postponedOperations = new PostponedOperations;\r\n this._createOptions(options)\r\n },\r\n _createOptions(options) {\r\n this.beginUpdate();\r\n try {\r\n this._setOptionsByReference();\r\n this._setDeprecatedOptions();\r\n this._options = new Options(this._getDefaultOptions(), this._getDefaultOptions(), this._getOptionsByReference(), this._getDeprecatedOptions());\r\n this._options.onChanging((name, previousValue, value) => this._initialized && this._optionChanging(name, previousValue, value));\r\n this._options.onDeprecated((option, info) => this._logDeprecatedOptionWarning(option, info));\r\n this._options.onChanged((name, value, previousValue) => this._notifyOptionChanged(name, value, previousValue));\r\n this._options.onStartChange(() => this.beginUpdate());\r\n this._options.onEndChange(() => this.endUpdate());\r\n this._options.addRules(this._defaultOptionsRules());\r\n if (options && options.onInitializing) {\r\n options.onInitializing.apply(this, [options])\r\n }\r\n this._setOptionsByDevice(options.defaultOptionsRules);\r\n this._initOptions(options)\r\n } finally {\r\n this.endUpdate()\r\n }\r\n },\r\n _initOptions(options) {\r\n this.option(options)\r\n },\r\n _init() {\r\n this._createOptionChangedAction();\r\n this.on(\"disposing\", args => {\r\n this._disposingCallbacks.fireWith(this, [args])\r\n })\r\n },\r\n _logDeprecatedOptionWarning(option, info) {\r\n var message = info.message || \"Use the '\".concat(info.alias, \"' option instead\");\r\n errors.log(\"W0001\", this.NAME, option, info.since, message)\r\n },\r\n _logDeprecatedComponentWarning(since, alias) {\r\n errors.log(\"W0000\", this.NAME, since, \"Use the '\".concat(alias, \"' widget instead\"))\r\n },\r\n _createOptionChangedAction() {\r\n this._optionChangedAction = this._createActionByOption(\"onOptionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _createDisposingAction() {\r\n this._disposingAction = this._createActionByOption(\"onDisposing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onDisposing\":\r\n case \"onInitialized\":\r\n break;\r\n case \"onOptionChanged\":\r\n this._createOptionChangedAction()\r\n }\r\n },\r\n _dispose() {\r\n this._optionChangedCallbacks.empty();\r\n this._createDisposingAction();\r\n this._disposingAction();\r\n this._eventsStrategy.dispose();\r\n this._options.dispose();\r\n this._disposed = true\r\n },\r\n _lockUpdate() {\r\n this._updateLockCount++\r\n },\r\n _unlockUpdate() {\r\n this._updateLockCount = Math.max(this._updateLockCount - 1, 0)\r\n },\r\n _isUpdateAllowed() {\r\n return 0 === this._updateLockCount\r\n },\r\n _isInitializingRequired() {\r\n return !this._initializing && !this._initialized\r\n },\r\n isInitialized() {\r\n return this._initialized\r\n },\r\n _commitUpdate() {\r\n this.postponedOperations.callPostponedOperations();\r\n this._isInitializingRequired() && this._initializeComponent()\r\n },\r\n _initializeComponent() {\r\n this._initializing = true;\r\n try {\r\n this._init()\r\n } finally {\r\n this._initializing = false;\r\n this._lockUpdate();\r\n this._createActionByOption(\"onInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })();\r\n this._unlockUpdate();\r\n this._initialized = true\r\n }\r\n },\r\n instance() {\r\n return this\r\n },\r\n beginUpdate: function() {\r\n this._lockUpdate()\r\n },\r\n endUpdate: function() {\r\n this._unlockUpdate();\r\n this._isUpdateAllowed() && this._commitUpdate()\r\n },\r\n _optionChanging: noop,\r\n _notifyOptionChanged(option, value, previousValue) {\r\n if (this._initialized) {\r\n var optionNames = [option].concat(this._options.getAliasesByName(option));\r\n for (var i = 0; i < optionNames.length; i++) {\r\n var name = optionNames[i];\r\n var args = {\r\n name: getPathParts(name)[0],\r\n fullName: name,\r\n value: value,\r\n previousValue: previousValue\r\n };\r\n if (!isInnerOption(name)) {\r\n this._optionChangedCallbacks.fireWith(this, [extend(this._defaultActionArgs(), args)]);\r\n this._optionChangedAction(extend({}, args))\r\n }\r\n if (!this._disposed && this._cancelOptionChange !== name) {\r\n this._optionChanged(args)\r\n }\r\n }\r\n }\r\n },\r\n initialOption(name) {\r\n return this._options.initial(name)\r\n },\r\n _defaultActionConfig() {\r\n return {\r\n context: this,\r\n component: this\r\n }\r\n },\r\n _defaultActionArgs() {\r\n return {\r\n component: this\r\n }\r\n },\r\n _createAction(actionSource, config) {\r\n var action;\r\n return e => {\r\n if (!isDefined(e)) {\r\n e = {}\r\n }\r\n if (!isPlainObject(e)) {\r\n e = {\r\n actionValue: e\r\n }\r\n }\r\n action = action || new Action(actionSource, extend({}, config, this._defaultActionConfig()));\r\n return action.execute.call(action, extend(e, this._defaultActionArgs()))\r\n }\r\n },\r\n _createActionByOption(optionName, config) {\r\n var _this = this;\r\n var action;\r\n var eventName;\r\n var actionFunc;\r\n config = extend({}, config);\r\n var result = function() {\r\n if (!eventName) {\r\n config = config || {};\r\n if (\"string\" !== typeof optionName) {\r\n throw errors.Error(\"E0008\")\r\n }\r\n if (0 === optionName.indexOf(\"on\")) {\r\n eventName = getEventName(optionName)\r\n }\r\n actionFunc = _this.option(optionName)\r\n }\r\n if (!action && !actionFunc && !config.beforeExecute && !config.afterExecute && !_this._eventsStrategy.hasEvent(eventName)) {\r\n return\r\n }\r\n if (!action) {\r\n var beforeExecute = config.beforeExecute;\r\n config.beforeExecute = function() {\r\n for (var _len2 = arguments.length, props = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n props[_key2] = arguments[_key2]\r\n }\r\n beforeExecute && beforeExecute.apply(_this, props);\r\n _this._eventsStrategy.fireEvent(eventName, props[0].args)\r\n };\r\n action = _this._createAction(actionFunc, config)\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n if (Config().wrapActionsBeforeExecute) {\r\n var beforeActionExecute = _this.option(\"beforeActionExecute\") || noop;\r\n var wrappedAction = beforeActionExecute(_this, action, config) || action;\r\n return wrappedAction.apply(_this, args)\r\n }\r\n return action.apply(_this, args)\r\n };\r\n if (Config().wrapActionsBeforeExecute) {\r\n return result\r\n }\r\n var onActionCreated = this.option(\"onActionCreated\") || noop;\r\n return onActionCreated(this, result, config) || result\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n },\r\n hasActionSubscription: function(actionName) {\r\n return !!this._options.silent(actionName) || this._eventsStrategy.hasEvent(getEventName(actionName))\r\n },\r\n isOptionDeprecated(name) {\r\n return this._options.isDeprecated(name)\r\n },\r\n _setOptionWithoutOptionChange(name, value) {\r\n this._cancelOptionChange = name;\r\n this.option(name, value);\r\n this._cancelOptionChange = false\r\n },\r\n _getOptionValue(name, context) {\r\n var value = this.option(name);\r\n if (isFunction(value)) {\r\n return value.bind(context)()\r\n }\r\n return value\r\n },\r\n option() {\r\n return this._options.option(...arguments)\r\n },\r\n resetOption(name) {\r\n this.beginUpdate();\r\n this._options.reset(name);\r\n this.endUpdate()\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/events/visibility_change.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nvar triggerVisibilityChangeEvent = function(eventName) {\r\n return function(element) {\r\n var $element = $(element || \"body\");\r\n var changeHandlers = $element.filter(\".dx-visibility-change-handler\").add($element.find(\".dx-visibility-change-handler\"));\r\n for (var i = 0; i < changeHandlers.length; i++) {\r\n eventsEngine.triggerHandler(changeHandlers[i], eventName)\r\n }\r\n }\r\n};\r\nexport var triggerShownEvent = triggerVisibilityChangeEvent(\"dxshown\");\r\nexport var triggerHidingEvent = triggerVisibilityChangeEvent(\"dxhiding\");\r\nexport var triggerResizeEvent = triggerVisibilityChangeEvent(\"dxresize\");\r\n","/**\r\n * DevExtreme (esm/core/templates/template_base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nimport {\r\n contains\r\n} from \"../utils/dom\";\r\nimport {\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport errors from \"../errors\";\r\nexport var renderedCallbacks = Callbacks({\r\n syncStrategy: true\r\n});\r\nexport class TemplateBase {\r\n render(options) {\r\n options = options || {};\r\n var onRendered = options.onRendered;\r\n delete options.onRendered;\r\n var $result;\r\n if (options.renovated && options.transclude && this._element) {\r\n $result = $(\"
\").append(this._element).contents()\r\n } else {\r\n $result = this._renderCore(options)\r\n }\r\n this._ensureResultInContainer($result, options.container);\r\n renderedCallbacks.fire($result, options.container);\r\n onRendered && onRendered();\r\n return $result\r\n }\r\n _ensureResultInContainer($result, container) {\r\n if (!container) {\r\n return\r\n }\r\n var $container = $(container);\r\n var resultInContainer = contains($container.get(0), $result.get(0));\r\n $container.append($result);\r\n if (resultInContainer) {\r\n return\r\n }\r\n var resultInBody = domAdapter.getBody().contains($container.get(0));\r\n if (!resultInBody) {\r\n return\r\n }\r\n triggerShownEvent($result)\r\n }\r\n _renderCore() {\r\n throw errors.Error(\"E0001\")\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/function_template.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nexport class FunctionTemplate extends TemplateBase {\r\n constructor(render) {\r\n super();\r\n this._render = render\r\n }\r\n _renderCore(options) {\r\n return normalizeTemplateElement(this._render(options))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/empty_template.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class EmptyTemplate extends TemplateBase {\r\n _renderCore() {\r\n return $()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/child_default_template.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class ChildDefaultTemplate extends TemplateBase {\r\n constructor(name) {\r\n super();\r\n this.name = name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engine_registry.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../utils/type\";\r\nimport errors from \"../errors\";\r\nvar templateEngines = {};\r\nvar currentTemplateEngine;\r\nexport function registerTemplateEngine(name, templateEngine) {\r\n templateEngines[name] = templateEngine\r\n}\r\nexport function setTemplateEngine(templateEngine) {\r\n if (isString(templateEngine)) {\r\n currentTemplateEngine = templateEngines[templateEngine];\r\n if (!currentTemplateEngine) {\r\n throw errors.Error(\"E0020\", templateEngine)\r\n }\r\n } else {\r\n currentTemplateEngine = templateEngine\r\n }\r\n}\r\nexport function getCurrentTemplateEngine() {\r\n return currentTemplateEngine\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nimport {\r\n getCurrentTemplateEngine,\r\n registerTemplateEngine,\r\n setTemplateEngine\r\n} from \"./template_engine_registry\";\r\nregisterTemplateEngine(\"default\", {\r\n compile: element => normalizeTemplateElement(element),\r\n render: (template, model, index) => template.clone()\r\n});\r\nsetTemplateEngine(\"default\");\r\nexport class Template extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element\r\n }\r\n _renderCore(options) {\r\n var transclude = options.transclude;\r\n if (!transclude && !this._compiledTemplate) {\r\n this._compiledTemplate = getCurrentTemplateEngine().compile(this._element)\r\n }\r\n return $(\"
\").append(transclude ? this._element : getCurrentTemplateEngine().render(this._compiledTemplate, options.model, options.index)).contents()\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/array.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n orderEach\r\n} from \"./object\";\r\nimport config from \"../config\";\r\n\r\nfunction createOccurrenceMap(array) {\r\n return array.reduce((map, value) => {\r\n var _map$get;\r\n var count = (null !== (_map$get = map.get(value)) && void 0 !== _map$get ? _map$get : 0) + 1;\r\n map.set(value, count);\r\n return map\r\n }, new Map)\r\n}\r\nexport var wrapToArray = function(item) {\r\n return Array.isArray(item) ? item : [item]\r\n};\r\nexport var getUniqueValues = function(values) {\r\n return [...new Set(values)]\r\n};\r\nexport var getIntersection = function(firstArray, secondArray) {\r\n var toRemoveMap = createOccurrenceMap(secondArray);\r\n return firstArray.filter(value => {\r\n var occurrencesCount = toRemoveMap.get(value);\r\n occurrencesCount && toRemoveMap.set(value, occurrencesCount - 1);\r\n return occurrencesCount\r\n })\r\n};\r\nexport var removeDuplicates = function() {\r\n var from = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var toRemove = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\r\n var toRemoveMap = createOccurrenceMap(toRemove);\r\n return from.filter(value => {\r\n var occurrencesCount = toRemoveMap.get(value);\r\n occurrencesCount && toRemoveMap.set(value, occurrencesCount - 1);\r\n return !occurrencesCount\r\n })\r\n};\r\nexport var normalizeIndexes = function(items, indexPropName, currentItem, needIndexCallback) {\r\n var indexedItems = {};\r\n var {\r\n useLegacyVisibleIndex: useLegacyVisibleIndex\r\n } = config();\r\n var currentIndex = 0;\r\n var shouldUpdateIndex = item => !isDefined(item[indexPropName]) && (!needIndexCallback || needIndexCallback(item));\r\n items.forEach(item => {\r\n var index = item[indexPropName];\r\n if (index >= 0) {\r\n indexedItems[index] = indexedItems[index] || [];\r\n if (item === currentItem) {\r\n indexedItems[index].unshift(item)\r\n } else {\r\n indexedItems[index].push(item)\r\n }\r\n } else {\r\n item[indexPropName] = void 0\r\n }\r\n });\r\n if (!useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n while (indexedItems[currentIndex]) {\r\n currentIndex++\r\n }\r\n indexedItems[currentIndex] = [item];\r\n currentIndex++\r\n }\r\n })\r\n }\r\n currentIndex = 0;\r\n orderEach(indexedItems, (function(index, items) {\r\n items.forEach(item => {\r\n if (index >= 0) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }));\r\n if (useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }\r\n};\r\nexport var groupBy = (array, getGroupName) => array.reduce((groupedResult, item) => {\r\n var _groupedResult$groupN;\r\n var groupName = getGroupName(item);\r\n groupedResult[groupName] = null !== (_groupedResult$groupN = groupedResult[groupName]) && void 0 !== _groupedResult$groupN ? _groupedResult$groupN : [];\r\n groupedResult[groupName].push(item);\r\n return groupedResult\r\n}, {});\r\n","/**\r\n * DevExtreme (esm/core/utils/template_manager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport config from \"../config\";\r\nimport devices from \"../devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../element\";\r\nimport Errors from \"../errors\";\r\nimport $ from \"../renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../templates/child_default_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../templates/empty_template\";\r\nimport {\r\n Template\r\n} from \"../templates/template\";\r\nimport {\r\n TemplateBase\r\n} from \"../templates/template_base\";\r\nimport {\r\n groupBy\r\n} from \"./array\";\r\nimport {\r\n findBestMatches\r\n} from \"./common\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"./dom\";\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction,\r\n isRenderer\r\n} from \"./type\";\r\nexport var findTemplates = (element, name) => {\r\n var templates = $(element).contents().filter(\"[\".concat(\"data-options\", '*=\"').concat(name, '\"]'));\r\n return [].slice.call(templates).map(element => {\r\n var optionsString = $(element).attr(\"data-options\") || \"\";\r\n return {\r\n element: element,\r\n options: config().optionsParser(optionsString)[name]\r\n }\r\n }).filter(template => !!template.options)\r\n};\r\nexport var suitableTemplatesByName = rawTemplates => {\r\n var templatesMap = groupBy(rawTemplates, template => template.options.name);\r\n if (templatesMap[void 0]) {\r\n throw Errors.Error(\"E0023\")\r\n }\r\n var result = {};\r\n Object.keys(templatesMap).forEach(name => {\r\n var _findBestMatches$;\r\n var suitableTemplate = null === (_findBestMatches$ = findBestMatches(devices.current(), templatesMap[name], template => template.options)[0]) || void 0 === _findBestMatches$ ? void 0 : _findBestMatches$.element;\r\n if (suitableTemplate) {\r\n result[name] = suitableTemplate\r\n }\r\n });\r\n return result\r\n};\r\nexport var addOneRenderedCall = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var templateResult = render(options);\r\n options && options.onRendered && options.onRendered();\r\n return templateResult\r\n }\r\n })\r\n};\r\nexport var addPublicElementNormalization = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var $container = $(options.container);\r\n return render(_extends({}, options, {\r\n container: getPublicElement($container)\r\n }))\r\n }\r\n })\r\n};\r\nexport var getNormalizedTemplateArgs = options => {\r\n var args = [];\r\n if (\"model\" in options) {\r\n args.push(options.model)\r\n }\r\n if (\"index\" in options) {\r\n args.push(options.index)\r\n }\r\n args.push(options.container);\r\n return args\r\n};\r\nexport var validateTemplateSource = templateSource => \"string\" === typeof templateSource ? normalizeTemplateElement(templateSource) : templateSource;\r\nexport var templateKey = templateSource => isRenderer(templateSource) && templateSource[0] || templateSource;\r\nexport var defaultCreateElement = element => new Template(element);\r\nexport var acquireIntegrationTemplate = (templateSource, templates, isAsyncTemplate, skipTemplates) => {\r\n var integrationTemplate = null;\r\n if (!skipTemplates || -1 === skipTemplates.indexOf(templateSource)) {\r\n integrationTemplate = templates[templateSource];\r\n if (integrationTemplate && !(integrationTemplate instanceof TemplateBase)) {\r\n if (isFunction(integrationTemplate.render)) {\r\n integrationTemplate = addPublicElementNormalization(integrationTemplate)\r\n }\r\n if (!isAsyncTemplate) {\r\n integrationTemplate = addOneRenderedCall(integrationTemplate)\r\n }\r\n }\r\n }\r\n return integrationTemplate\r\n};\r\nexport var acquireTemplate = (templateSource, createTemplate, templates, isAsyncTemplate, skipTemplates, defaultTemplates) => {\r\n if (null == templateSource) {\r\n return new EmptyTemplate\r\n }\r\n if (templateSource instanceof ChildDefaultTemplate) {\r\n return defaultTemplates[templateSource.name]\r\n }\r\n if (templateSource instanceof TemplateBase) {\r\n return templateSource\r\n }\r\n if (isFunction(templateSource.render) && !isRenderer(templateSource)) {\r\n return isAsyncTemplate ? templateSource : addOneRenderedCall(templateSource)\r\n }\r\n if (templateSource.nodeType || isRenderer(templateSource)) {\r\n return createTemplate($(templateSource))\r\n }\r\n return acquireIntegrationTemplate(templateSource, templates, isAsyncTemplate, skipTemplates) || defaultTemplates[templateSource] || createTemplate(templateSource)\r\n};\r\n","/**\r\n * DevExtreme (esm/core/template_manager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isRenderer\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n FunctionTemplate\r\n} from \"./templates/function_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"./templates/empty_template\";\r\nimport {\r\n findTemplates,\r\n suitableTemplatesByName,\r\n templateKey,\r\n getNormalizedTemplateArgs,\r\n validateTemplateSource,\r\n defaultCreateElement,\r\n acquireTemplate\r\n} from \"./utils/template_manager\";\r\nvar TEXT_NODE = 3;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"template\";\r\nvar TEMPLATE_OPTIONS_NAME = \"dxTemplate\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar DX_POLYMORPH_WIDGET_TEMPLATE = new FunctionTemplate(_ref => {\r\n var {\r\n model: model,\r\n parent: parent\r\n } = _ref;\r\n var widgetName = model.widget;\r\n if (!widgetName) {\r\n return $()\r\n }\r\n var widgetElement = $(\"
\");\r\n var widgetOptions = model.options || {};\r\n if (parent) {\r\n parent._createComponent(widgetElement, widgetName, widgetOptions)\r\n } else {\r\n widgetElement[widgetName](widgetOptions)\r\n }\r\n return widgetElement\r\n});\r\nexport class TemplateManager {\r\n constructor(createElement, anonymousTemplateName) {\r\n this._tempTemplates = [];\r\n this._defaultTemplates = {};\r\n this._anonymousTemplateName = anonymousTemplateName || ANONYMOUS_TEMPLATE_NAME;\r\n this._createElement = createElement || defaultCreateElement;\r\n this._createTemplateIfNeeded = this._createTemplateIfNeeded.bind(this)\r\n }\r\n static createDefaultOptions() {\r\n return {\r\n integrationOptions: {\r\n watchMethod: function(fn, callback) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (!options.skipImmediate) {\r\n callback(fn())\r\n }\r\n return noop\r\n },\r\n templates: {\r\n \"dx-polymorph-widget\": DX_POLYMORPH_WIDGET_TEMPLATE\r\n },\r\n useDeferUpdateForTemplates: true\r\n }\r\n }\r\n }\r\n get anonymousTemplateName() {\r\n return this._anonymousTemplateName\r\n }\r\n addDefaultTemplates(templates) {\r\n this._defaultTemplates = extend({}, this._defaultTemplates, templates)\r\n }\r\n dispose() {\r\n this._tempTemplates.forEach(tempTemplate => {\r\n tempTemplate.template.dispose && tempTemplate.template.dispose()\r\n });\r\n this._tempTemplates = []\r\n }\r\n extractTemplates($el) {\r\n var templates = this._extractTemplates($el);\r\n var anonymousTemplateMeta = this._extractAnonymousTemplate($el);\r\n return {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n }\r\n }\r\n _extractTemplates($el) {\r\n var templates = findTemplates($el, TEMPLATE_OPTIONS_NAME);\r\n var suitableTemplates = suitableTemplatesByName(templates);\r\n templates.forEach(_ref2 => {\r\n var {\r\n element: element,\r\n options: {\r\n name: name\r\n }\r\n } = _ref2;\r\n if (element === suitableTemplates[name]) {\r\n $(element).addClass(TEMPLATE_WRAPPER_CLASS).detach()\r\n } else {\r\n $(element).remove()\r\n }\r\n });\r\n return Object.keys(suitableTemplates).map(name => ({\r\n name: name,\r\n template: this._createTemplate(suitableTemplates[name])\r\n }))\r\n }\r\n _extractAnonymousTemplate($el) {\r\n var $anonymousTemplate = $el.contents().detach();\r\n var $notJunkTemplateContent = $anonymousTemplate.filter((_, element) => {\r\n var isTextNode = element.nodeType === TEXT_NODE;\r\n var isEmptyText = $(element).text().trim().length < 1;\r\n return !(isTextNode && isEmptyText)\r\n });\r\n return $notJunkTemplateContent.length > 0 ? {\r\n template: this._createTemplate($anonymousTemplate),\r\n name: this._anonymousTemplateName\r\n } : {}\r\n }\r\n _createTemplateIfNeeded(templateSource) {\r\n var cachedTemplate = this._tempTemplates.filter(tempTemplate => tempTemplate.source === templateKey(templateSource))[0];\r\n if (cachedTemplate) {\r\n return cachedTemplate.template\r\n }\r\n var template = this._createTemplate(templateSource);\r\n this._tempTemplates.push({\r\n template: template,\r\n source: templateKey(templateSource)\r\n });\r\n return template\r\n }\r\n _createTemplate(templateSource) {\r\n return this._createElement(validateTemplateSource(templateSource))\r\n }\r\n getTemplate(templateSource, templates, _ref3, context) {\r\n var {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n } = _ref3;\r\n if (!isFunction(templateSource)) {\r\n return acquireTemplate(templateSource, this._createTemplateIfNeeded, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates)\r\n }\r\n return new FunctionTemplate(options => {\r\n var templateSourceResult = templateSource.apply(context, getNormalizedTemplateArgs(options));\r\n if (!isDefined(templateSourceResult)) {\r\n return new EmptyTemplate\r\n }\r\n var dispose = false;\r\n var template = acquireTemplate(templateSourceResult, templateSource => {\r\n if (templateSource.nodeType || isRenderer(templateSource) && !$(templateSource).is(\"script\")) {\r\n return new FunctionTemplate(() => templateSource)\r\n }\r\n dispose = true;\r\n return this._createTemplate(templateSource)\r\n }, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates);\r\n var result = template.render(options);\r\n dispose && template.dispose && template.dispose();\r\n return result\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/keyboard_processor.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar COMPOSITION_START_EVENT = \"compositionstart\";\r\nvar COMPOSITION_END_EVENT = \"compositionend\";\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar NAMESPACE = \"KeyboardProcessor\";\r\nvar createKeyDownOptions = e => ({\r\n keyName: normalizeKeyName(e),\r\n key: e.key,\r\n code: e.code,\r\n ctrl: e.ctrlKey,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n shift: e.shiftKey,\r\n alt: e.altKey,\r\n which: e.which,\r\n originalEvent: e\r\n});\r\nvar KeyboardProcessor = Class.inherit({\r\n _keydown: addNamespace(KEYDOWN_EVENT, NAMESPACE),\r\n _compositionStart: addNamespace(COMPOSITION_START_EVENT, NAMESPACE),\r\n _compositionEnd: addNamespace(COMPOSITION_END_EVENT, NAMESPACE),\r\n ctor: function(options) {\r\n options = options || {};\r\n if (options.element) {\r\n this._element = $(options.element)\r\n }\r\n if (options.focusTarget) {\r\n this._focusTarget = options.focusTarget\r\n }\r\n this._handler = options.handler;\r\n if (this._element) {\r\n this._processFunction = e => {\r\n var focusTargets = $(this._focusTarget).toArray();\r\n var isNotFocusTarget = this._focusTarget && this._focusTarget !== e.target && !focusTargets.includes(e.target);\r\n var shouldSkipProcessing = this._isComposingJustFinished && 229 === e.which || this._isComposing || isNotFocusTarget;\r\n this._isComposingJustFinished = false;\r\n if (!shouldSkipProcessing) {\r\n this.process(e)\r\n }\r\n };\r\n this._toggleProcessingWithContext = this.toggleProcessing.bind(this);\r\n eventsEngine.on(this._element, this._keydown, this._processFunction);\r\n eventsEngine.on(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.on(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._element) {\r\n eventsEngine.off(this._element, this._keydown, this._processFunction);\r\n eventsEngine.off(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.off(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n this._element = void 0;\r\n this._handler = void 0\r\n },\r\n process: function(e) {\r\n this._handler(createKeyDownOptions(e))\r\n },\r\n toggleProcessing: function(_ref) {\r\n var {\r\n type: type\r\n } = _ref;\r\n this._isComposing = type === COMPOSITION_START_EVENT;\r\n this._isComposingJustFinished = !this._isComposing\r\n }\r\n});\r\nKeyboardProcessor.createKeyDownOptions = createKeyDownOptions;\r\nexport default KeyboardProcessor;\r\n","/**\r\n * DevExtreme (esm/events/short.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport KeyboardProcessor from \"./core/keyboard_processor\";\r\nimport {\r\n addNamespace as pureAddNamespace\r\n} from \"./utils/index\";\r\n\r\nfunction addNamespace(event, namespace) {\r\n return namespace ? pureAddNamespace(event, namespace) : event\r\n}\r\n\r\nfunction executeAction(action, args) {\r\n return \"function\" === typeof action ? action(args) : action.execute(args)\r\n}\r\nexport var active = {\r\n on: ($el, active, inactive, opts) => {\r\n var {\r\n selector: selector,\r\n showTimeout: showTimeout,\r\n hideTimeout: hideTimeout,\r\n namespace: namespace\r\n } = opts;\r\n eventsEngine.on($el, addNamespace(\"dxactive\", namespace), selector, {\r\n timeout: showTimeout\r\n }, event => executeAction(active, {\r\n event: event,\r\n element: event.currentTarget\r\n }));\r\n eventsEngine.on($el, addNamespace(\"dxinactive\", namespace), selector, {\r\n timeout: hideTimeout\r\n }, event => executeAction(inactive, {\r\n event: event,\r\n element: event.currentTarget\r\n }))\r\n },\r\n off: ($el, _ref) => {\r\n var {\r\n namespace: namespace,\r\n selector: selector\r\n } = _ref;\r\n eventsEngine.off($el, addNamespace(\"dxactive\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxinactive\", namespace), selector)\r\n }\r\n};\r\nexport var resize = {\r\n on: function($el, resize) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxresize\", namespace), resize)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxresize\", namespace))\r\n }\r\n};\r\nexport var hover = {\r\n on: ($el, start, end, _ref2) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref2;\r\n eventsEngine.on($el, addNamespace(\"dxhoverend\", namespace), selector, event => end(event));\r\n eventsEngine.on($el, addNamespace(\"dxhoverstart\", namespace), selector, event => executeAction(start, {\r\n element: event.target,\r\n event: event\r\n }))\r\n },\r\n off: ($el, _ref3) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref3;\r\n eventsEngine.off($el, addNamespace(\"dxhoverstart\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxhoverend\", namespace), selector)\r\n }\r\n};\r\nexport var visibility = {\r\n on: ($el, shown, hiding, _ref4) => {\r\n var {\r\n namespace: namespace\r\n } = _ref4;\r\n eventsEngine.on($el, addNamespace(\"dxhiding\", namespace), hiding);\r\n eventsEngine.on($el, addNamespace(\"dxshown\", namespace), shown)\r\n },\r\n off: ($el, _ref5) => {\r\n var {\r\n namespace: namespace\r\n } = _ref5;\r\n eventsEngine.off($el, addNamespace(\"dxhiding\", namespace));\r\n eventsEngine.off($el, addNamespace(\"dxshown\", namespace))\r\n }\r\n};\r\nexport var focus = {\r\n on: ($el, focusIn, focusOut, _ref6) => {\r\n var {\r\n namespace: namespace\r\n } = _ref6;\r\n eventsEngine.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n eventsEngine.on($el, addNamespace(\"focusout\", namespace), focusOut)\r\n },\r\n off: ($el, _ref7) => {\r\n var {\r\n namespace: namespace\r\n } = _ref7;\r\n eventsEngine.off($el, addNamespace(\"focusin\", namespace));\r\n eventsEngine.off($el, addNamespace(\"focusout\", namespace))\r\n },\r\n trigger: $el => eventsEngine.trigger($el, \"focus\")\r\n};\r\nexport var dxClick = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxclick\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxclick\", namespace))\r\n }\r\n};\r\nexport var click = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"click\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"click\", namespace))\r\n }\r\n};\r\nvar index = 0;\r\nvar keyboardProcessors = {};\r\nvar generateListenerId = () => \"keyboardProcessorId\".concat(index++);\r\nexport var keyboard = {\r\n on: (element, focusTarget, handler) => {\r\n var listenerId = generateListenerId();\r\n keyboardProcessors[listenerId] = new KeyboardProcessor({\r\n element: element,\r\n focusTarget: focusTarget,\r\n handler: handler\r\n });\r\n return listenerId\r\n },\r\n off: listenerId => {\r\n if (listenerId && keyboardProcessors[listenerId]) {\r\n keyboardProcessors[listenerId].dispose();\r\n delete keyboardProcessors[listenerId]\r\n }\r\n },\r\n _getProcessor: listenerId => keyboardProcessors[listenerId]\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/utils/version.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../core/errors\";\r\nvar assertedVersions = [];\r\nvar VERSION_SPLITTER = \".\";\r\n\r\nfunction stringifyVersion(version) {\r\n var {\r\n major: major,\r\n minor: minor,\r\n patch: patch\r\n } = version;\r\n return [major, minor, patch].join(VERSION_SPLITTER)\r\n}\r\nexport function parseVersion(version) {\r\n var [major, minor, patch] = version.split(\".\").map(Number);\r\n return {\r\n major: major,\r\n minor: minor,\r\n patch: patch\r\n }\r\n}\r\nexport function assertDevExtremeVersion(packageName, version) {\r\n assertedVersions.push({\r\n packageName: packageName,\r\n version: version\r\n })\r\n}\r\nexport function clearAssertedVersions() {}\r\n\r\nfunction stringifyVersionList(assertedVersionList) {\r\n return assertedVersionList.map(assertedVersion => \"\".concat(assertedVersion.packageName, \": \").concat(assertedVersion.version)).join(\"\\n\")\r\n}\r\n\r\nfunction versionsEqual(versionA, versionB) {\r\n return versionA.major === versionB.major && versionA.minor === versionB.minor && versionA.patch === versionB.patch\r\n}\r\nexport function assertedVersionsCompatible(currentVersion) {\r\n var mismatchingVersions = assertedVersions.filter(assertedVersion => !versionsEqual(parseVersion(assertedVersion.version), currentVersion));\r\n if (mismatchingVersions.length) {\r\n errors.log(\"W0023\", stringifyVersionList([{\r\n packageName: \"devextreme\",\r\n version: stringifyVersion(currentVersion)\r\n }, ...mismatchingVersions]));\r\n return false\r\n }\r\n return true\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/byte_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function base64ToBytes(base64) {\r\n return new Uint8Array(atob(base64).split(\"\").map(s => s.charCodeAt(0)))\r\n}\r\nexport function hexToBytes(string) {\r\n var _a, _b;\r\n return new Uint8Array(null !== (_b = null === (_a = string.match(/.{1,2}/g)) || void 0 === _a ? void 0 : _a.map(byte => parseInt(byte, 16))) && void 0 !== _b ? _b : [])\r\n}\r\nexport function stringToBytes(string) {\r\n var bytes = new Uint8Array(string.length);\r\n for (var k = 0; k < string.length; k += 1) {\r\n bytes[k] = 255 & string.charCodeAt(k)\r\n }\r\n return bytes\r\n}\r\nexport function wordsToBytes(words) {\r\n var bytes = new Uint8Array(4 * words.length);\r\n for (var k = 0; k < bytes.length; k += 1) {\r\n bytes[k] = words[k >> 2] >>> 8 * (3 - k % 4)\r\n }\r\n return bytes\r\n}\r\nexport function bytesToWords(bytes) {\r\n var words = new Uint32Array(1 + (bytes.length - 1 >> 2));\r\n for (var k = 0; k < bytes.length; k += 1) {\r\n words[k >> 2] |= bytes[k] << 8 * (3 - k % 4)\r\n }\r\n return words\r\n}\r\nexport function wordsToHex(words) {\r\n return [...words].map(w => w.toString(16).padStart(8, \"0\")).join(\"\")\r\n}\r\nexport function bytesToHex(bytes) {\r\n return [...bytes].map(b => b.toString(16).padStart(2, \"0\")).join(\"\")\r\n}\r\nexport function leftRotate(x, n) {\r\n return (x << n | x >>> 32 - n) >>> 0\r\n}\r\nexport function concatBytes(a, b) {\r\n var result = new Uint8Array(a.length + b.length);\r\n result.set(a, 0);\r\n result.set(b, a.length);\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/key.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var PUBLIC_KEY = {\r\n e: 65537,\r\n n: new Uint8Array([200, 219, 153, 203, 140, 7, 228, 253, 193, 243, 62, 137, 139, 60, 68, 242, 48, 142, 113, 88, 185, 235, 253, 105, 80, 74, 32, 170, 96, 74, 111, 250, 7, 205, 154, 3, 146, 115, 153, 53, 45, 132, 123, 56, 61, 208, 184, 201, 63, 24, 109, 223, 0, 179, 169, 102, 139, 224, 73, 233, 45, 173, 138, 66, 98, 88, 69, 76, 177, 111, 113, 218, 192, 33, 101, 152, 25, 134, 34, 173, 32, 82, 230, 44, 247, 200, 253, 170, 192, 246, 30, 12, 96, 205, 100, 249, 181, 93, 0, 231])\r\n};\r\nexport var INTERNAL_USAGE_ID = \"HhU2fQTvxUmw_vzfg2XZkg\";\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/pkcs1.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n concatBytes,\r\n hexToBytes\r\n} from \"./byte_utils\";\r\nimport {\r\n PUBLIC_KEY\r\n} from \"./key\";\r\nvar ASN1_SHA1 = \"3021300906052b0e03021a05000414\";\r\nexport function pad(hash) {\r\n var dataLength = (8 * PUBLIC_KEY.n.length + 6) / 8;\r\n var data = concatBytes(hexToBytes(ASN1_SHA1), hash);\r\n if (data.length + 10 > dataLength) {\r\n throw Error(\"Key is too short for SHA1 signing algorithm\")\r\n }\r\n var padding = new Uint8Array(dataLength - data.length);\r\n padding.fill(255, 0, padding.length - 1);\r\n padding[0] = 0;\r\n padding[1] = 1;\r\n padding[padding.length - 1] = 0;\r\n return concatBytes(padding, data)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/rsa_bigint.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compareSignatures(args) {\r\n try {\r\n var zero = BigInt(0);\r\n var one = BigInt(1);\r\n var eight = BigInt(8);\r\n var bigIntFromBytes = bytes => bytes.reduce((acc, cur) => (acc << eight) + BigInt(cur), zero);\r\n var actual = bigIntFromBytes(args.actual);\r\n var signature = bigIntFromBytes(args.signature);\r\n var exponent = BigInt(args.key.e);\r\n var modulus = bigIntFromBytes(args.key.n);\r\n var expected = ((base, exponent, modulus) => {\r\n var result = one;\r\n var b = base;\r\n var e = exponent;\r\n while (e) {\r\n if (e & one) {\r\n result = result * b % modulus\r\n }\r\n b = b * b % modulus;\r\n e >>= one\r\n }\r\n return result\r\n })(signature, exponent, modulus);\r\n return expected === actual\r\n } catch (_a) {\r\n return true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/sha1.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n bytesToWords,\r\n leftRotate,\r\n stringToBytes,\r\n wordsToBytes\r\n} from \"./byte_utils\";\r\nexport function preprocess(text) {\r\n var bytes = new Uint8Array(text.length + 1);\r\n bytes.set(stringToBytes(text));\r\n bytes[bytes.length - 1] = 128;\r\n var words = bytesToWords(new Uint8Array(bytes));\r\n var result = new Uint32Array(16 * Math.ceil((words.length + 2) / 16));\r\n result.set(words, 0);\r\n result[result.length - 1] = 8 * (bytes.length - 1);\r\n return result\r\n}\r\nexport function sha1(text) {\r\n var message = preprocess(text);\r\n var h = new Uint32Array([1732584193, 4023233417, 2562383102, 271733878, 3285377520]);\r\n for (var i = 0; i < message.length; i += 16) {\r\n var w = new Uint32Array(80);\r\n for (var j = 0; j < 16; j += 1) {\r\n w[j] = message[i + j]\r\n }\r\n for (var _j = 16; _j < 80; _j += 1) {\r\n var n = w[_j - 3] ^ w[_j - 8] ^ w[_j - 14] ^ w[_j - 16];\r\n w[_j] = n << 1 | n >>> 31\r\n }\r\n var a = h[0];\r\n var b = h[1];\r\n var c = h[2];\r\n var d = h[3];\r\n var e = h[4];\r\n for (var _j2 = 0; _j2 < 80; _j2 += 1) {\r\n var [f, k] = _j2 < 20 ? [b & c | ~b & d, 1518500249] : _j2 < 40 ? [b ^ c ^ d, 1859775393] : _j2 < 60 ? [b & c | b & d | c & d, 2400959708] : [b ^ c ^ d, 3395469782];\r\n var temp = leftRotate(a, 5) + f + e + k + w[_j2];\r\n e = d;\r\n d = c;\r\n c = leftRotate(b, 30);\r\n b = a;\r\n a = temp\r\n }\r\n h[0] += a;\r\n h[1] += b;\r\n h[2] += c;\r\n h[3] += d;\r\n h[4] += e\r\n }\r\n return wordsToBytes(h)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/types.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TokenKind;\r\n! function(TokenKind) {\r\n TokenKind.corrupted = \"corrupted\";\r\n TokenKind.verified = \"verified\";\r\n TokenKind.internal = \"internal\"\r\n}(TokenKind || (TokenKind = {}));\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/license_validation.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport errors from \"../../../core/errors\";\r\nimport {\r\n version as packageVersion\r\n} from \"../../../core/version\";\r\nimport {\r\n assertedVersionsCompatible,\r\n parseVersion\r\n} from \"../../utils/version\";\r\nimport {\r\n base64ToBytes\r\n} from \"./byte_utils\";\r\nimport {\r\n INTERNAL_USAGE_ID,\r\n PUBLIC_KEY\r\n} from \"./key\";\r\nimport {\r\n pad\r\n} from \"./pkcs1\";\r\nimport {\r\n compareSignatures\r\n} from \"./rsa_bigint\";\r\nimport {\r\n sha1\r\n} from \"./sha1\";\r\nimport {\r\n TokenKind\r\n} from \"./types\";\r\nvar SPLITTER = \".\";\r\nvar FORMAT = 1;\r\nvar RTM_MIN_PATCH_VERSION = 3;\r\nvar GENERAL_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"general\"\r\n};\r\nvar VERIFICATION_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"verification\"\r\n};\r\nvar DECODING_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"decoding\"\r\n};\r\nvar DESERIALIZATION_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"deserialization\"\r\n};\r\nvar PAYLOAD_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"payload\"\r\n};\r\nvar VERSION_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"version\"\r\n};\r\nvar validationPerformed = false;\r\n\r\nfunction verifySignature(_ref) {\r\n var {\r\n text: text,\r\n signature: encodedSignature\r\n } = _ref;\r\n return compareSignatures({\r\n key: PUBLIC_KEY,\r\n signature: base64ToBytes(encodedSignature),\r\n actual: pad(sha1(text))\r\n })\r\n}\r\n\r\nfunction isPreview(patch) {\r\n return isNaN(patch) || patch < RTM_MIN_PATCH_VERSION\r\n}\r\nexport function parseLicenseKey(encodedKey) {\r\n if (void 0 === encodedKey) {\r\n return GENERAL_ERROR\r\n }\r\n var parts = encodedKey.split(SPLITTER);\r\n if (2 !== parts.length || 0 === parts[0].length || 0 === parts[1].length) {\r\n return GENERAL_ERROR\r\n }\r\n if (!verifySignature({\r\n text: parts[0],\r\n signature: parts[1]\r\n })) {\r\n return VERIFICATION_ERROR\r\n }\r\n var decodedPayload = \"\";\r\n try {\r\n decodedPayload = atob(parts[0])\r\n } catch (_a) {\r\n return DECODING_ERROR\r\n }\r\n var payload = {};\r\n try {\r\n payload = JSON.parse(decodedPayload)\r\n } catch (_b) {\r\n return DESERIALIZATION_ERROR\r\n }\r\n var {\r\n customerId: customerId,\r\n maxVersionAllowed: maxVersionAllowed,\r\n format: format,\r\n internalUsageId: internalUsageId\r\n } = payload, rest = __rest(payload, [\"customerId\", \"maxVersionAllowed\", \"format\", \"internalUsageId\"]);\r\n if (void 0 !== internalUsageId) {\r\n return {\r\n kind: TokenKind.internal,\r\n internalUsageId: internalUsageId\r\n }\r\n }\r\n if (void 0 === customerId || void 0 === maxVersionAllowed || void 0 === format) {\r\n return PAYLOAD_ERROR\r\n }\r\n if (format !== FORMAT) {\r\n return VERSION_ERROR\r\n }\r\n return {\r\n kind: TokenKind.verified,\r\n payload: _extends({\r\n customerId: customerId,\r\n maxVersionAllowed: maxVersionAllowed\r\n }, rest)\r\n }\r\n}\r\n\r\nfunction getLicenseCheckParams(_ref2) {\r\n var {\r\n licenseKey: licenseKey,\r\n version: version\r\n } = _ref2;\r\n var preview = false;\r\n try {\r\n preview = isPreview(version.patch);\r\n var {\r\n major: major,\r\n minor: minor\r\n } = version;\r\n if (!licenseKey) {\r\n return {\r\n preview: preview,\r\n error: \"W0019\"\r\n }\r\n }\r\n var license = parseLicenseKey(licenseKey);\r\n if (license.kind === TokenKind.corrupted) {\r\n return {\r\n preview: preview,\r\n error: \"W0021\"\r\n }\r\n }\r\n if (license.kind === TokenKind.internal) {\r\n return {\r\n preview: preview,\r\n internal: true,\r\n error: license.internalUsageId === INTERNAL_USAGE_ID ? void 0 : \"W0020\"\r\n }\r\n }\r\n if (!(major && minor)) {\r\n return {\r\n preview: preview,\r\n error: \"W0021\"\r\n }\r\n }\r\n if (10 * major + minor > license.payload.maxVersionAllowed) {\r\n return {\r\n preview: preview,\r\n error: \"W0020\"\r\n }\r\n }\r\n return {\r\n preview: preview,\r\n error: void 0\r\n }\r\n } catch (_a) {\r\n return {\r\n preview: preview,\r\n error: \"W0021\"\r\n }\r\n }\r\n}\r\nexport function validateLicense(licenseKey) {\r\n var versionStr = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : packageVersion;\r\n if (validationPerformed) {\r\n return\r\n }\r\n validationPerformed = true;\r\n var version = parseVersion(versionStr);\r\n var versionsCompatible = assertedVersionsCompatible(version);\r\n var {\r\n preview: preview,\r\n internal: internal,\r\n error: error\r\n } = getLicenseCheckParams({\r\n licenseKey: licenseKey,\r\n version: version\r\n });\r\n if (!versionsCompatible && internal) {\r\n return\r\n }\r\n if (error) {\r\n errors.log(preview ? \"W0022\" : error);\r\n return\r\n }\r\n if (preview && !internal) {\r\n errors.log(\"W0022\")\r\n }\r\n}\r\nexport function peekValidationPerformed() {\r\n return validationPerformed\r\n}\r\nexport function setLicenseCheckSkipCondition() {}\r\nexport default {\r\n validateLicense: validateLicense\r\n};\r\n","/**\r\n * DevExtreme (esm/core/dom_component.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport config from \"./config\";\r\nimport errors from \"./errors\";\r\nimport windowResizeCallbacks from \"../core/utils/resize_callbacks\";\r\nimport {\r\n Component\r\n} from \"./component\";\r\nimport {\r\n TemplateManager\r\n} from \"./template_manager\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"./utils/public_component\";\r\nimport {\r\n addShadowDomStyles\r\n} from \"./utils/shadow_dom\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n resize as resizeEvent,\r\n visibility as visibilityEvents\r\n} from \"../events/short\";\r\nimport license, {\r\n peekValidationPerformed\r\n} from \"../__internal/core/license/license_validation\";\r\nvar {\r\n abstract: abstract\r\n} = Component;\r\nvar DOMComponent = Component.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n width: void 0,\r\n height: void 0,\r\n rtlEnabled: config().rtlEnabled,\r\n elementAttr: {},\r\n disabled: false,\r\n integrationOptions: {}\r\n }, this._useTemplates() ? TemplateManager.createDefaultOptions() : {})\r\n },\r\n ctor(element, options) {\r\n this._customClass = null;\r\n this._createElement(element);\r\n attachInstanceToElement(this._$element, this, this._dispose);\r\n this.callBase(options);\r\n var validationAlreadyPerformed = peekValidationPerformed();\r\n license.validateLicense(config().licenseKey);\r\n if (!validationAlreadyPerformed && peekValidationPerformed()) {\r\n config({\r\n licenseKey: \"\"\r\n })\r\n }\r\n },\r\n _createElement(element) {\r\n this._$element = $(element)\r\n },\r\n _getSynchronizableOptionsForCreateComponent: () => [\"rtlEnabled\", \"disabled\", \"templatesRenderAsynchronously\"],\r\n _checkFunctionValueDeprecation: function(optionNames) {\r\n if (!this.option(\"_ignoreFunctionValueDeprecation\")) {\r\n optionNames.forEach(optionName => {\r\n if (isFunction(this.option(optionName))) {\r\n errors.log(\"W0017\", optionName)\r\n }\r\n })\r\n }\r\n },\r\n _visibilityChanged: abstract,\r\n _dimensionChanged: abstract,\r\n _init() {\r\n this.callBase();\r\n this._checkFunctionValueDeprecation([\"width\", \"height\", \"maxHeight\", \"maxWidth\", \"minHeight\", \"minWidth\", \"popupHeight\", \"popupWidth\"]);\r\n this._attachWindowResizeCallback();\r\n this._initTemplateManager()\r\n },\r\n _setOptionsByDevice(instanceCustomRules) {\r\n this.callBase([].concat(this.constructor._classCustomRules || [], instanceCustomRules || []))\r\n },\r\n _isInitialOptionValue(name) {\r\n var isCustomOption = this.constructor._classCustomRules && Object.prototype.hasOwnProperty.call(this._convertRulesToOptions(this.constructor._classCustomRules), name);\r\n return !isCustomOption && this.callBase(name)\r\n },\r\n _attachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n var windowResizeCallBack = this._windowResizeCallBack = this._dimensionChanged.bind(this);\r\n windowResizeCallbacks.add(windowResizeCallBack)\r\n }\r\n },\r\n _isDimensionChangeSupported() {\r\n return this._dimensionChanged !== abstract\r\n },\r\n _renderComponent() {\r\n this._initMarkup();\r\n hasWindow() && this._render()\r\n },\r\n _initMarkup() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.option() || {};\r\n this._renderElementAttributes();\r\n this._toggleRTLDirection(rtlEnabled);\r\n this._renderVisibilityChange();\r\n this._renderDimensions()\r\n },\r\n _render() {\r\n this._attachVisibilityChangeHandlers();\r\n addShadowDomStyles(this.$element())\r\n },\r\n _renderElementAttributes() {\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option() || {};\r\n var attributes = extend({}, elementAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$element().attr(attributes).removeClass(this._customClass).addClass(classNames);\r\n this._customClass = classNames\r\n },\r\n _renderVisibilityChange() {\r\n if (this._isDimensionChangeSupported()) {\r\n this._attachDimensionChangeHandlers()\r\n }\r\n if (this._isVisibilityChangeSupported()) {\r\n var $element = this.$element();\r\n $element.addClass(\"dx-visibility-change-handler\")\r\n }\r\n },\r\n _renderDimensions() {\r\n var $element = this.$element();\r\n var element = $element.get(0);\r\n var width = this._getOptionValue(\"width\", element);\r\n var height = this._getOptionValue(\"height\", element);\r\n if (this._isCssUpdateRequired(element, height, width)) {\r\n $element.css({\r\n width: null === width ? \"\" : width,\r\n height: null === height ? \"\" : height\r\n })\r\n }\r\n },\r\n _isCssUpdateRequired: (element, height, width) => !!(isDefined(width) || isDefined(height) || element.style.width || element.style.height),\r\n _attachDimensionChangeHandlers() {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n resizeEvent.off($el, {\r\n namespace: namespace\r\n });\r\n resizeEvent.on($el, () => this._dimensionChanged(), {\r\n namespace: namespace\r\n })\r\n },\r\n _attachVisibilityChangeHandlers() {\r\n if (this._isVisibilityChangeSupported()) {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n this._isHidden = !this._isVisible();\r\n visibilityEvents.off($el, {\r\n namespace: namespace\r\n });\r\n visibilityEvents.on($el, () => this._checkVisibilityChanged(\"shown\"), () => this._checkVisibilityChanged(\"hiding\"), {\r\n namespace: namespace\r\n })\r\n }\r\n },\r\n _isVisible() {\r\n var $element = this.$element();\r\n return $element.is(\":visible\")\r\n },\r\n _checkVisibilityChanged(action) {\r\n var isVisible = this._isVisible();\r\n if (isVisible) {\r\n if (\"hiding\" === action && !this._isHidden) {\r\n this._visibilityChanged(false);\r\n this._isHidden = true\r\n } else if (\"shown\" === action && this._isHidden) {\r\n this._isHidden = false;\r\n this._visibilityChanged(true)\r\n }\r\n }\r\n },\r\n _isVisibilityChangeSupported() {\r\n return this._visibilityChanged !== abstract && hasWindow()\r\n },\r\n _clean: noop,\r\n _modelByElement() {\r\n var {\r\n modelByElement: modelByElement\r\n } = this.option();\r\n var $element = this.$element();\r\n return modelByElement ? modelByElement($element) : void 0\r\n },\r\n _invalidate() {\r\n if (this._isUpdateAllowed()) {\r\n throw errors.Error(\"E0007\")\r\n }\r\n this._requireRefresh = true\r\n },\r\n _refresh() {\r\n this._clean();\r\n this._renderComponent()\r\n },\r\n _dispose() {\r\n this._templateManager && this._templateManager.dispose();\r\n this.callBase();\r\n this._clean();\r\n this._detachWindowResizeCallback()\r\n },\r\n _detachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n windowResizeCallbacks.remove(this._windowResizeCallBack)\r\n }\r\n },\r\n _toggleRTLDirection(rtl) {\r\n var $element = this.$element();\r\n $element.toggleClass(\"dx-rtl\", rtl)\r\n },\r\n _createComponent(element, component) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var synchronizableOptions = grep(this._getSynchronizableOptionsForCreateComponent(), value => !(value in config));\r\n var {\r\n integrationOptions: integrationOptions\r\n } = this.option();\r\n var {\r\n nestedComponentOptions: nestedComponentOptions\r\n } = this.option();\r\n nestedComponentOptions = nestedComponentOptions || noop;\r\n var nestedComponentConfig = extend({\r\n integrationOptions: integrationOptions\r\n }, nestedComponentOptions(this));\r\n synchronizableOptions.forEach(optionName => nestedComponentConfig[optionName] = this.option(optionName));\r\n this._extendConfig(config, nestedComponentConfig);\r\n var instance = void 0;\r\n if (isString(component)) {\r\n var $element = $(element)[component](config);\r\n instance = $element[component](\"instance\")\r\n } else if (element) {\r\n instance = component.getInstance(element);\r\n if (instance) {\r\n instance.option(config)\r\n } else {\r\n instance = new component(element, config)\r\n }\r\n }\r\n if (instance) {\r\n var optionChangedHandler = _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (synchronizableOptions.includes(name)) {\r\n instance.option(name, value)\r\n }\r\n };\r\n this.on(\"optionChanged\", optionChangedHandler);\r\n instance.on(\"disposing\", () => this.off(\"optionChanged\", optionChangedHandler))\r\n }\r\n return instance\r\n },\r\n _extendConfig(config, extendConfig) {\r\n each(extendConfig, (key, value) => {\r\n !Object.prototype.hasOwnProperty.call(config, key) && (config[key] = value)\r\n })\r\n },\r\n _defaultActionConfig() {\r\n var $element = this.$element();\r\n var context = this._modelByElement($element);\r\n return extend(this.callBase(), {\r\n context: context\r\n })\r\n },\r\n _defaultActionArgs() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var element = this.element();\r\n return extend(this.callBase(), {\r\n element: element,\r\n model: model\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this._renderDimensions();\r\n break;\r\n case \"rtlEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"elementAttr\":\r\n this._renderElementAttributes();\r\n break;\r\n case \"disabled\":\r\n case \"integrationOptions\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _removeAttributes(element) {\r\n var attrs = element.attributes;\r\n for (var i = attrs.length - 1; i >= 0; i--) {\r\n var attr = attrs[i];\r\n if (attr) {\r\n var {\r\n name: name\r\n } = attr;\r\n if (!name.indexOf(\"aria-\") || -1 !== name.indexOf(\"dx-\") || \"role\" === name || \"style\" === name || \"tabindex\" === name) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n }\r\n },\r\n _removeClasses(element) {\r\n element.className = element.className.split(\" \").filter(cssClass => 0 !== cssClass.lastIndexOf(\"dx-\", 0)).join(\" \")\r\n },\r\n _updateDOMComponent(renderRequired) {\r\n if (renderRequired) {\r\n this._renderComponent()\r\n } else if (this._requireRefresh) {\r\n this._requireRefresh = false;\r\n this._refresh()\r\n }\r\n },\r\n endUpdate() {\r\n var renderRequired = this._isInitializingRequired();\r\n this.callBase();\r\n this._isUpdateAllowed() && this._updateDOMComponent(renderRequired)\r\n },\r\n $element() {\r\n return this._$element\r\n },\r\n element() {\r\n var $element = this.$element();\r\n return getPublicElement($element)\r\n },\r\n dispose() {\r\n var element = this.$element().get(0);\r\n cleanDataRecursive(element, true);\r\n element.textContent = \"\";\r\n this._removeAttributes(element);\r\n this._removeClasses(element)\r\n },\r\n resetOption(optionName) {\r\n this.callBase(optionName);\r\n if (\"width\" === optionName || \"height\" === optionName) {\r\n var initialOption = this.initialOption(optionName);\r\n !isDefined(initialOption) && this.$element().css(optionName, \"\")\r\n }\r\n },\r\n _getAnonymousTemplateName() {\r\n return\r\n },\r\n _initTemplateManager() {\r\n if (this._templateManager || !this._useTemplates()) {\r\n return\r\n }\r\n var {\r\n integrationOptions: integrationOptions = {}\r\n } = this.option();\r\n var {\r\n createTemplate: createTemplate\r\n } = integrationOptions;\r\n this._templateManager = new TemplateManager(createTemplate, this._getAnonymousTemplateName());\r\n this._initTemplates()\r\n },\r\n _initTemplates() {\r\n var {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n } = this._templateManager.extractTemplates(this.$element());\r\n var anonymousTemplate = this.option(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name));\r\n templates.forEach(_ref2 => {\r\n var {\r\n name: name,\r\n template: template\r\n } = _ref2;\r\n this._options.silent(\"integrationOptions.templates.\".concat(name), template)\r\n });\r\n if (anonymousTemplateMeta.name && !anonymousTemplate) {\r\n this._options.silent(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name), anonymousTemplateMeta.template);\r\n this._options.silent(\"_hasAnonymousTemplateContent\", true)\r\n }\r\n },\r\n _getTemplateByOption(optionName) {\r\n return this._getTemplate(this.option(optionName))\r\n },\r\n _getTemplate(templateSource) {\r\n var templates = this.option(\"integrationOptions.templates\");\r\n var isAsyncTemplate = this.option(\"templatesRenderAsynchronously\");\r\n var skipTemplates = this.option(\"integrationOptions.skipTemplates\");\r\n return this._templateManager.getTemplate(templateSource, templates, {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n }, this)\r\n },\r\n _saveTemplate(name, template) {\r\n this._setOptionWithoutOptionChange(\"integrationOptions.templates.\" + name, this._templateManager._createTemplate(template))\r\n },\r\n _useTemplates: () => true\r\n});\r\nDOMComponent.getInstance = function(element) {\r\n return getInstanceByElement($(element), this)\r\n};\r\nDOMComponent.defaultOptions = function(rule) {\r\n this._classCustomRules = this._classCustomRules || [];\r\n this._classCustomRules.push(rule)\r\n};\r\nexport default DOMComponent;\r\n","/**\r\n * DevExtreme (esm/core/utils/version.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compare(x, y, maxLevel) {\r\n function normalizeArg(value) {\r\n if (\"string\" === typeof value) {\r\n return value.split(\".\")\r\n }\r\n if (\"number\" === typeof value) {\r\n return [value]\r\n }\r\n return value\r\n }\r\n x = normalizeArg(x);\r\n y = normalizeArg(y);\r\n var length = Math.max(x.length, y.length);\r\n if (isFinite(maxLevel)) {\r\n length = Math.min(length, maxLevel)\r\n }\r\n for (var i = 0; i < length; i++) {\r\n var xItem = parseInt(x[i] || 0, 10);\r\n var yItem = parseInt(y[i] || 0, 10);\r\n if (xItem < yItem) {\r\n return -1\r\n }\r\n if (xItem > yItem) {\r\n return 1\r\n }\r\n }\r\n return 0\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.feedback.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport Emitter from \"./emitter\";\r\nimport registerEmitter from \"./emitter_registrator\";\r\nvar ACTIVE_EVENT_NAME = \"dxactive\";\r\nvar INACTIVE_EVENT_NAME = \"dxinactive\";\r\nvar ACTIVE_TIMEOUT = 30;\r\nvar INACTIVE_TIMEOUT = 400;\r\nvar FeedbackEvent = Class.inherit({\r\n ctor: function(timeout, fire) {\r\n this._timeout = timeout;\r\n this._fire = fire\r\n },\r\n start: function() {\r\n var that = this;\r\n this._schedule((function() {\r\n that.force()\r\n }))\r\n },\r\n _schedule: function(fn) {\r\n this.stop();\r\n this._timer = setTimeout(fn, this._timeout)\r\n },\r\n stop: function() {\r\n clearTimeout(this._timer)\r\n },\r\n force: function() {\r\n if (this._fired) {\r\n return\r\n }\r\n this.stop();\r\n this._fire();\r\n this._fired = true\r\n },\r\n fired: function() {\r\n return this._fired\r\n }\r\n});\r\nvar activeFeedback;\r\nvar FeedbackEmitter = Emitter.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._active = new FeedbackEvent(0, noop);\r\n this._inactive = new FeedbackEvent(0, noop)\r\n },\r\n configure: function(data, eventName) {\r\n switch (eventName) {\r\n case ACTIVE_EVENT_NAME:\r\n data.activeTimeout = data.timeout;\r\n break;\r\n case INACTIVE_EVENT_NAME:\r\n data.inactiveTimeout = data.timeout\r\n }\r\n this.callBase(data)\r\n },\r\n start: function(e) {\r\n if (activeFeedback) {\r\n var activeChildExists = contains(this.getElement().get(0), activeFeedback.getElement().get(0));\r\n var childJustActivated = !activeFeedback._active.fired();\r\n if (activeChildExists && childJustActivated) {\r\n this._cancel();\r\n return\r\n }\r\n activeFeedback._inactive.force()\r\n }\r\n activeFeedback = this;\r\n this._initEvents(e);\r\n this._active.start()\r\n },\r\n _initEvents: function(e) {\r\n var that = this;\r\n var eventTarget = this._getEmitterTarget(e);\r\n var mouseEvent = isMouseEvent(e);\r\n var isSimulator = devices.isSimulator();\r\n var deferFeedback = isSimulator || !mouseEvent;\r\n var activeTimeout = ensureDefined(this.activeTimeout, ACTIVE_TIMEOUT);\r\n var inactiveTimeout = ensureDefined(this.inactiveTimeout, INACTIVE_TIMEOUT);\r\n this._active = new FeedbackEvent(deferFeedback ? activeTimeout : 0, (function() {\r\n that._fireEvent(ACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n })\r\n }));\r\n this._inactive = new FeedbackEvent(deferFeedback ? inactiveTimeout : 0, (function() {\r\n that._fireEvent(INACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n });\r\n activeFeedback = null\r\n }))\r\n },\r\n cancel: function(e) {\r\n this.end(e)\r\n },\r\n end: function(e) {\r\n var skipTimers = e.type !== pointerEvents.up;\r\n if (skipTimers) {\r\n this._active.stop()\r\n } else {\r\n this._active.force()\r\n }\r\n this._inactive.start();\r\n if (skipTimers) {\r\n this._inactive.force()\r\n }\r\n },\r\n dispose: function() {\r\n this._active.stop();\r\n this._inactive.stop();\r\n if (activeFeedback === this) {\r\n activeFeedback = null\r\n }\r\n this.callBase()\r\n },\r\n lockInactive: function() {\r\n this._active.force();\r\n this._inactive.stop();\r\n activeFeedback = null;\r\n this._cancel();\r\n return this._inactive.force.bind(this._inactive)\r\n }\r\n});\r\nFeedbackEmitter.lock = function(deferred) {\r\n var lockInactive = activeFeedback ? activeFeedback.lockInactive() : noop;\r\n deferred.done(lockInactive)\r\n};\r\nregisterEmitter({\r\n emitter: FeedbackEmitter,\r\n events: [ACTIVE_EVENT_NAME, INACTIVE_EVENT_NAME]\r\n});\r\nexport var lock = FeedbackEmitter.lock;\r\nexport {\r\n ACTIVE_EVENT_NAME as active, INACTIVE_EVENT_NAME as inactive\r\n};\r\n","/**\r\n * DevExtreme (esm/events/hover.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n removeData,\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Class from \"../core/class\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n isTouchEvent,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport pointerEvents from \"./pointer\";\r\nvar HOVERSTART_NAMESPACE = \"dxHoverStart\";\r\nvar HOVERSTART = \"dxhoverstart\";\r\nvar POINTERENTER_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.enter, HOVERSTART_NAMESPACE);\r\nvar HOVEREND_NAMESPACE = \"dxHoverEnd\";\r\nvar HOVEREND = \"dxhoverend\";\r\nvar POINTERLEAVE_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.leave, HOVEREND_NAMESPACE);\r\nvar Hover = Class.inherit({\r\n noBubble: true,\r\n ctor: function() {\r\n this._handlerArrayKeyPath = this._eventNamespace + \"_HandlerStore\"\r\n },\r\n setup: function(element) {\r\n elementData(element, this._handlerArrayKeyPath, {})\r\n },\r\n add: function(element, handleObj) {\r\n var that = this;\r\n var handler = function(e) {\r\n that._handler(e)\r\n };\r\n eventsEngine.on(element, this._originalEventName, handleObj.selector, handler);\r\n elementData(element, this._handlerArrayKeyPath)[handleObj.guid] = handler\r\n },\r\n _handler: function(e) {\r\n if (isTouchEvent(e) || devices.isSimulator()) {\r\n return\r\n }\r\n fireEvent({\r\n type: this._eventName,\r\n originalEvent: e,\r\n delegateTarget: e.delegateTarget\r\n })\r\n },\r\n remove: function(element, handleObj) {\r\n var handler = elementData(element, this._handlerArrayKeyPath)[handleObj.guid];\r\n eventsEngine.off(element, this._originalEventName, handleObj.selector, handler)\r\n },\r\n teardown: function(element) {\r\n removeData(element, this._handlerArrayKeyPath)\r\n }\r\n});\r\nvar HoverStart = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVERSTART_NAMESPACE;\r\n this._eventName = HOVERSTART;\r\n this._originalEventName = POINTERENTER_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n },\r\n _handler: function(e) {\r\n var pointers = e.pointers || [];\r\n if (!pointers.length) {\r\n this.callBase(e)\r\n }\r\n }\r\n});\r\nvar HoverEnd = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVEREND_NAMESPACE;\r\n this._eventName = HOVEREND;\r\n this._originalEventName = POINTERLEAVE_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n }\r\n});\r\nregisterEvent(HOVERSTART, new HoverStart);\r\nregisterEvent(HOVEREND, new HoverEnd);\r\nexport {\r\n HOVERSTART as start, HOVEREND as end\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.widget.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Action from \"../../core/action\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n active,\r\n focus,\r\n hover,\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focusable as focusableSelector\r\n} from \"./selectors\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport \"../../events/click\";\r\nimport \"../../events/core/emitter.feedback\";\r\nimport \"../../events/hover\";\r\n\r\nfunction setAttribute(name, value, target) {\r\n name = \"role\" === name || \"id\" === name ? name : \"aria-\".concat(name);\r\n value = isDefined(value) ? value.toString() : null;\r\n target.attr(name, value)\r\n}\r\nvar Widget = DOMComponent.inherit({\r\n _feedbackHideTimeout: 400,\r\n _feedbackShowTimeout: 30,\r\n _supportedKeys: () => ({}),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoveredElement: null,\r\n isActive: false,\r\n disabled: false,\r\n visible: true,\r\n hint: void 0,\r\n activeStateEnabled: false,\r\n onContentReady: null,\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n tabIndex: 0,\r\n accessKey: void 0,\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyboardHandled: null,\r\n ignoreParentReadOnly: false,\r\n useResizeObserver: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var device = devices.real();\r\n var platform = device.platform;\r\n var version = device.version;\r\n return \"ios\" === platform && compareVersions(version, \"13.3\") <= 0\r\n },\r\n options: {\r\n useResizeObserver: false\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initContentReadyAction()\r\n },\r\n _innerWidgetOptionChanged: function(innerWidget, args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n innerWidget && innerWidget.option(options);\r\n this._options.cache(args.name, options)\r\n },\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var syncOptions = () => this._options.silent(optionsContainer, extend({}, innerWidget.option()));\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n },\r\n _getAriaTarget() {\r\n return this._focusTarget()\r\n },\r\n _initContentReadyAction() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup() {\r\n var {\r\n disabled: disabled,\r\n visible: visible\r\n } = this.option();\r\n this.$element().addClass(\"dx-widget\");\r\n this._toggleDisabledState(disabled);\r\n this._toggleVisibility(visible);\r\n this._renderHint();\r\n this._isFocusable() && this._renderFocusTarget();\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderContent();\r\n this._renderFocusState();\r\n this._attachFeedbackEvents();\r\n this._attachHoverEvents();\r\n this._toggleIndependentState()\r\n },\r\n _renderHint() {\r\n var {\r\n hint: hint\r\n } = this.option();\r\n this.$element().attr(\"title\", hint || null)\r\n },\r\n _renderContent() {\r\n deferRender(() => !this._disposed ? this._renderContentImpl() : void 0).done(() => !this._disposed ? this._fireContentReadyAction() : void 0)\r\n },\r\n _renderContentImpl: noop,\r\n _fireContentReadyAction: deferRenderer((function() {\r\n return this._contentReadyAction()\r\n })),\r\n _dispose() {\r\n this._contentReadyAction = null;\r\n this._detachKeyboardEvents();\r\n this.callBase()\r\n },\r\n _resetActiveState() {\r\n this._toggleActiveState(this._eventBindingTarget(), false)\r\n },\r\n _clean() {\r\n this._cleanFocusState();\r\n this._resetActiveState();\r\n this.callBase();\r\n this.$element().empty()\r\n },\r\n _toggleVisibility(visible) {\r\n this.$element().toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _renderFocusState() {\r\n this._attachKeyboardEvents();\r\n if (this._isFocusable()) {\r\n this._renderFocusTarget();\r\n this._attachFocusEvents();\r\n this._renderAccessKey()\r\n }\r\n },\r\n _renderAccessKey() {\r\n var $el = this._focusTarget();\r\n var {\r\n accessKey: accessKey\r\n } = this.option();\r\n $el.attr(\"accesskey\", accessKey)\r\n },\r\n _isFocusable() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n disabled: disabled\r\n } = this.option();\r\n return focusStateEnabled && !disabled\r\n },\r\n _eventBindingTarget() {\r\n return this.$element()\r\n },\r\n _focusTarget() {\r\n return this._getActiveElement()\r\n },\r\n _isFocusTarget: function(element) {\r\n var focusTargets = $(this._focusTarget()).toArray();\r\n return focusTargets.includes(element)\r\n },\r\n _findActiveTarget($element) {\r\n return $element.find(this._activeStateUnit).not(\".dx-state-disabled\")\r\n },\r\n _getActiveElement() {\r\n var activeElement = this._eventBindingTarget();\r\n if (this._activeStateUnit) {\r\n return this._findActiveTarget(activeElement)\r\n }\r\n return activeElement\r\n },\r\n _renderFocusTarget() {\r\n var {\r\n tabIndex: tabIndex\r\n } = this.option();\r\n this._focusTarget().attr(\"tabIndex\", tabIndex)\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._eventBindingTarget()\r\n },\r\n _refreshFocusEvent() {\r\n this._detachFocusEvents();\r\n this._attachFocusEvents()\r\n },\r\n _focusEventTarget() {\r\n return this._focusTarget()\r\n },\r\n _focusInHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusIn\", {\r\n beforeExecute: () => this._updateFocusState(event, true),\r\n excludeValidators: [\"readOnly\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _focusOutHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusOut\", {\r\n beforeExecute: () => this._updateFocusState(event, false),\r\n excludeValidators: [\"readOnly\", \"disabled\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _updateFocusState(_ref, isFocused) {\r\n var {\r\n target: target\r\n } = _ref;\r\n if (this._isFocusTarget(target)) {\r\n this._toggleFocusClass(isFocused, $(target))\r\n }\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n var $focusTarget = $element && $element.length ? $element : this._focusTarget();\r\n $focusTarget.toggleClass(\"dx-state-focused\", isFocused)\r\n },\r\n _hasFocusClass(element) {\r\n var $focusTarget = $(element || this._focusTarget());\r\n return $focusTarget.hasClass(\"dx-state-focused\")\r\n },\r\n _isFocused() {\r\n return this._hasFocusClass()\r\n },\r\n _getKeyboardListeners: () => [],\r\n _attachKeyboardEvents() {\r\n this._detachKeyboardEvents();\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n var hasChildListeners = this._getKeyboardListeners().length;\r\n var hasKeyboardEventHandler = !!onKeyboardHandled;\r\n var shouldAttach = focusStateEnabled || hasChildListeners || hasKeyboardEventHandler;\r\n if (shouldAttach) {\r\n this._keyboardListenerId = keyboard.on(this._keyboardEventBindingTarget(), this._focusTarget(), opts => this._keyboardHandler(opts))\r\n }\r\n },\r\n _keyboardHandler(options, onlyChildProcessing) {\r\n if (!onlyChildProcessing) {\r\n var {\r\n originalEvent: originalEvent,\r\n keyName: keyName,\r\n which: which\r\n } = options;\r\n var keys = this._supportedKeys(originalEvent);\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n return false\r\n }\r\n }\r\n }\r\n var keyboardListeners = this._getKeyboardListeners();\r\n var {\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n keyboardListeners.forEach(listener => listener && listener._keyboardHandler(options));\r\n onKeyboardHandled && onKeyboardHandled(options);\r\n return true\r\n },\r\n _refreshFocusState() {\r\n this._cleanFocusState();\r\n this._renderFocusState()\r\n },\r\n _cleanFocusState() {\r\n var $element = this._focusTarget();\r\n $element.removeAttr(\"tabIndex\");\r\n this._toggleFocusClass(false);\r\n this._detachFocusEvents();\r\n this._detachKeyboardEvents()\r\n },\r\n _detachKeyboardEvents() {\r\n keyboard.off(this._keyboardListenerId);\r\n this._keyboardListenerId = null\r\n },\r\n _attachHoverEvents() {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n hover.off($el, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n });\r\n if (hoverStateEnabled) {\r\n hover.on($el, new Action(_ref2 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref2;\r\n this._hoverStartHandler(event);\r\n this.option(\"hoveredElement\", $(element))\r\n }, {\r\n excludeValidators: [\"readOnly\"]\r\n }), event => {\r\n this.option(\"hoveredElement\", null);\r\n this._hoverEndHandler(event)\r\n }, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _attachFeedbackEvents() {\r\n var {\r\n activeStateEnabled: activeStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n active.off($el, {\r\n namespace: \"UIFeedback\",\r\n selector: selector\r\n });\r\n if (activeStateEnabled) {\r\n active.on($el, new Action(_ref3 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref3;\r\n return this._toggleActiveState($(element), true, event)\r\n }), new Action(_ref4 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref4;\r\n return this._toggleActiveState($(element), false, event)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }), {\r\n showTimeout: this._feedbackShowTimeout,\r\n hideTimeout: this._feedbackHideTimeout,\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _detachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.off($el, {\r\n namespace: \"\".concat(this.NAME, \"Focus\")\r\n })\r\n },\r\n _attachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.on($el, e => this._focusInHandler(e), e => this._focusOutHandler(e), {\r\n namespace: \"\".concat(this.NAME, \"Focus\"),\r\n isFocusable: (index, el) => $(el).is(focusableSelector)\r\n })\r\n },\r\n _hoverStartHandler: noop,\r\n _hoverEndHandler: noop,\r\n _toggleActiveState($element, value) {\r\n this.option(\"isActive\", value);\r\n $element.toggleClass(\"dx-state-active\", value)\r\n },\r\n _updatedHover() {\r\n var hoveredElement = this._options.silent(\"hoveredElement\");\r\n this._hover(hoveredElement, hoveredElement)\r\n },\r\n _findHoverTarget($el) {\r\n return $el && $el.closest(this._activeStateUnit || this._eventBindingTarget())\r\n },\r\n _hover($el, $previous) {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled,\r\n disabled: disabled,\r\n isActive: isActive\r\n } = this.option();\r\n $previous = this._findHoverTarget($previous);\r\n $previous && $previous.toggleClass(\"dx-state-hover\", false);\r\n if ($el && hoverStateEnabled && !disabled && !isActive) {\r\n var newHoveredElement = this._findHoverTarget($el);\r\n newHoveredElement && newHoveredElement.toggleClass(\"dx-state-hover\", true)\r\n }\r\n },\r\n _toggleDisabledState(value) {\r\n this.$element().toggleClass(\"dx-state-disabled\", Boolean(value));\r\n this.setAria(\"disabled\", value || void 0)\r\n },\r\n _toggleIndependentState() {\r\n this.$element().toggleClass(\"dx-state-independent\", this.option(\"ignoreParentReadOnly\"))\r\n },\r\n _setWidgetOption(widgetName, args) {\r\n if (!this[widgetName]) {\r\n return\r\n }\r\n if (isPlainObject(args[0])) {\r\n each(args[0], (option, value) => this._setWidgetOption(widgetName, [option, value]));\r\n return\r\n }\r\n var optionName = args[0];\r\n var value = args[1];\r\n if (1 === args.length) {\r\n value = this.option(optionName)\r\n }\r\n var widgetOptionMap = this[\"\".concat(widgetName, \"OptionMap\")];\r\n this[widgetName].option(widgetOptionMap ? widgetOptionMap(optionName) : optionName, value)\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"disabled\":\r\n this._toggleDisabledState(value);\r\n this._updatedHover();\r\n this._refreshFocusState();\r\n break;\r\n case \"hint\":\r\n this._renderHint();\r\n break;\r\n case \"ignoreParentReadOnly\":\r\n this._toggleIndependentState();\r\n break;\r\n case \"activeStateEnabled\":\r\n this._attachFeedbackEvents();\r\n break;\r\n case \"hoverStateEnabled\":\r\n this._attachHoverEvents();\r\n this._updatedHover();\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._refreshFocusState();\r\n break;\r\n case \"onFocusIn\":\r\n case \"onFocusOut\":\r\n case \"useResizeObserver\":\r\n break;\r\n case \"accessKey\":\r\n this._renderAccessKey();\r\n break;\r\n case \"hoveredElement\":\r\n this._hover(value, previousValue);\r\n break;\r\n case \"isActive\":\r\n this._updatedHover();\r\n break;\r\n case \"visible\":\r\n this._toggleVisibility(value);\r\n if (this._isVisibilityChangeSupported()) {\r\n this._checkVisibilityChanged(value ? \"shown\" : \"hiding\")\r\n }\r\n break;\r\n case \"onKeyboardHandled\":\r\n this._attachKeyboardEvents();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _isVisible() {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n return this.callBase() && visible\r\n },\r\n beginUpdate() {\r\n this._ready(false);\r\n this.callBase()\r\n },\r\n endUpdate() {\r\n this.callBase();\r\n if (this._initialized) {\r\n this._ready(true)\r\n }\r\n },\r\n _ready(value) {\r\n if (0 === arguments.length) {\r\n return this._isReady\r\n }\r\n this._isReady = value\r\n },\r\n setAria() {\r\n if (!isPlainObject(arguments.length <= 0 ? void 0 : arguments[0])) {\r\n setAttribute(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1], (arguments.length <= 2 ? void 0 : arguments[2]) || this._getAriaTarget())\r\n } else {\r\n var target = (arguments.length <= 1 ? void 0 : arguments[1]) || this._getAriaTarget();\r\n each(arguments.length <= 0 ? void 0 : arguments[0], (name, value) => setAttribute(name, value, target))\r\n }\r\n },\r\n isReady() {\r\n return this._ready()\r\n },\r\n repaint() {\r\n this._refresh()\r\n },\r\n focus() {\r\n focus.trigger(this._focusTarget())\r\n },\r\n registerKeyHandler(key, handler) {\r\n var currentKeys = this._supportedKeys();\r\n this._supportedKeys = () => extend(currentKeys, {\r\n [key]: handler\r\n })\r\n }\r\n});\r\nWidget.getOptionsFromContainer = _ref5 => {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = _ref5;\r\n var options = {};\r\n if (name === fullName) {\r\n options = value\r\n } else {\r\n var option = fullName.split(\".\").pop();\r\n options[option] = value\r\n }\r\n return options\r\n};\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_load_indicator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n animation\r\n} from \"../../core/utils/support\";\r\nimport {\r\n getNavigator\r\n} from \"../../core/utils/window\";\r\nimport {\r\n current,\r\n isGeneric,\r\n isMaterialBased\r\n} from \"../../ui/themes\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nvar navigator = getNavigator();\r\nvar LOADINDICATOR_CLASS = \"dx-loadindicator\";\r\nvar LOADINDICATOR_WRAPPER_CLASS = \"dx-loadindicator-wrapper\";\r\nvar LOADINDICATOR_CONTENT_CLASS = \"dx-loadindicator-content\";\r\nvar LOADINDICATOR_ICON_CLASS = \"dx-loadindicator-icon\";\r\nvar LOADINDICATOR_SEGMENT_CLASS = \"dx-loadindicator-segment\";\r\nvar LOADINDICATOR_SEGMENT_INNER_CLASS = \"dx-loadindicator-segment-inner\";\r\nvar LOADINDICATOR_IMAGE_CLASS = \"dx-loadindicator-image\";\r\nvar LoadIndicator = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n indicatorSrc: \"\",\r\n activeStateEnabled: false,\r\n hoverStateEnabled: false,\r\n _animatingSegmentCount: 1,\r\n _animatingSegmentInner: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device() {\r\n var realDevice = devices.real();\r\n var obsoleteAndroid = \"android\" === realDevice.platform && !/chrome/i.test(navigator.userAgent);\r\n return obsoleteAndroid\r\n },\r\n options: {\r\n viaImage: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(themeName),\r\n options: {\r\n _animatingSegmentCount: 2,\r\n _animatingSegmentInner: true\r\n }\r\n }, {\r\n device: () => isGeneric(themeName),\r\n options: {\r\n _animatingSegmentCount: 7\r\n }\r\n }])\r\n },\r\n _useTemplates: () => false,\r\n _init() {\r\n this.callBase();\r\n this.$element().addClass(LOADINDICATOR_CLASS)\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderWrapper();\r\n this._renderIndicatorContent();\r\n this._renderMarkup()\r\n },\r\n _renderWrapper() {\r\n this._$wrapper = $(\"
\").addClass(LOADINDICATOR_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _renderIndicatorContent() {\r\n this._$content = $(\"
\").addClass(LOADINDICATOR_CONTENT_CLASS);\r\n this._$wrapper.append(this._$content)\r\n },\r\n _renderMarkup() {\r\n var {\r\n viaImage: viaImage,\r\n indicatorSrc: indicatorSrc\r\n } = this.option();\r\n if (animation() && !viaImage && !indicatorSrc) {\r\n this._renderMarkupForAnimation()\r\n } else {\r\n this._renderMarkupForImage()\r\n }\r\n },\r\n _renderMarkupForAnimation() {\r\n var animatingSegmentInner = this.option(\"_animatingSegmentInner\");\r\n this._$indicator = $(\"
\").addClass(LOADINDICATOR_ICON_CLASS);\r\n this._$content.append(this._$indicator);\r\n for (var i = this.option(\"_animatingSegmentCount\"); i >= 0; --i) {\r\n var $segment = $(\"
\").addClass(LOADINDICATOR_SEGMENT_CLASS).addClass(LOADINDICATOR_SEGMENT_CLASS + i);\r\n if (animatingSegmentInner) {\r\n $segment.append($(\"
\").addClass(LOADINDICATOR_SEGMENT_INNER_CLASS))\r\n }\r\n this._$indicator.append($segment)\r\n }\r\n },\r\n _renderMarkupForImage() {\r\n var {\r\n indicatorSrc: indicatorSrc\r\n } = this.option();\r\n if (indicatorSrc) {\r\n this._$wrapper.addClass(LOADINDICATOR_IMAGE_CLASS);\r\n this._$wrapper.css(\"backgroundImage\", \"url(\".concat(indicatorSrc, \")\"))\r\n } else if (animation()) {\r\n this._renderMarkupForAnimation()\r\n }\r\n },\r\n _renderDimensions() {\r\n this.callBase();\r\n this._updateContentSizeForAnimation()\r\n },\r\n _updateContentSizeForAnimation() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n var width = this.option(\"width\");\r\n var height = this.option(\"height\");\r\n if (width || height) {\r\n width = getWidth(this.$element());\r\n height = getHeight(this.$element());\r\n var minDimension = Math.min(height, width);\r\n this._$wrapper.css({\r\n height: minDimension,\r\n width: minDimension,\r\n fontSize: minDimension\r\n })\r\n }\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._removeMarkupForAnimation();\r\n this._removeMarkupForImage()\r\n },\r\n _removeMarkupForAnimation() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n this._$indicator.remove();\r\n delete this._$indicator\r\n },\r\n _removeMarkupForImage() {\r\n this._$wrapper.css(\"backgroundImage\", \"none\")\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_animatingSegmentCount\":\r\n case \"_animatingSegmentInner\":\r\n case \"indicatorSrc\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxLoadIndicator\", LoadIndicator);\r\nexport default LoadIndicator;\r\n","/**\r\n * DevExtreme (esm/animation/translator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n type\r\n} from \"../core/utils/type\";\r\nvar TRANSLATOR_DATA_KEY = \"dxTranslator\";\r\nvar TRANSFORM_MATRIX_REGEX = /matrix(3d)?\\((.+?)\\)/;\r\nvar TRANSLATE_REGEX = /translate(?:3d)?\\((.+?)\\)/;\r\nexport var locate = function($element) {\r\n $element = $($element);\r\n var translate = getTranslate($element);\r\n return {\r\n left: translate.x,\r\n top: translate.y\r\n }\r\n};\r\n\r\nfunction isPercentValue(value) {\r\n return \"string\" === type(value) && \"%\" === value[value.length - 1]\r\n}\r\n\r\nfunction cacheTranslate($element, translate) {\r\n if ($element.length) {\r\n elementData($element.get(0), TRANSLATOR_DATA_KEY, translate)\r\n }\r\n}\r\nexport var clearCache = function($element) {\r\n if ($element.length) {\r\n removeData($element.get(0), TRANSLATOR_DATA_KEY)\r\n }\r\n};\r\nexport var getTranslateCss = function(translate) {\r\n translate.x = translate.x || 0;\r\n translate.y = translate.y || 0;\r\n var xValueString = isPercentValue(translate.x) ? translate.x : translate.x + \"px\";\r\n var yValueString = isPercentValue(translate.y) ? translate.y : translate.y + \"px\";\r\n return \"translate(\" + xValueString + \", \" + yValueString + \")\"\r\n};\r\nexport var getTranslate = function($element) {\r\n var result = $element.length ? elementData($element.get(0), TRANSLATOR_DATA_KEY) : null;\r\n if (!result) {\r\n var transformValue = $element.css(\"transform\") || getTranslateCss({\r\n x: 0,\r\n y: 0\r\n });\r\n var matrix = transformValue.match(TRANSFORM_MATRIX_REGEX);\r\n var is3D = matrix && matrix[1];\r\n if (matrix) {\r\n matrix = matrix[2].split(\",\");\r\n if (\"3d\" === is3D) {\r\n matrix = matrix.slice(12, 15)\r\n } else {\r\n matrix.push(0);\r\n matrix = matrix.slice(4, 7)\r\n }\r\n } else {\r\n matrix = [0, 0, 0]\r\n }\r\n result = {\r\n x: parseFloat(matrix[0]),\r\n y: parseFloat(matrix[1]),\r\n z: parseFloat(matrix[2])\r\n };\r\n cacheTranslate($element, result)\r\n }\r\n return result\r\n};\r\nexport var move = function($element, position) {\r\n $element = $($element);\r\n var left = position.left;\r\n var top = position.top;\r\n var translate;\r\n if (void 0 === left) {\r\n translate = getTranslate($element);\r\n translate.y = top || 0\r\n } else if (void 0 === top) {\r\n translate = getTranslate($element);\r\n translate.x = left || 0\r\n } else {\r\n translate = {\r\n x: left || 0,\r\n y: top || 0,\r\n z: 0\r\n };\r\n cacheTranslate($element, translate)\r\n }\r\n $element.css({\r\n transform: getTranslateCss(translate)\r\n });\r\n if (isPercentValue(left) || isPercentValue(top)) {\r\n clearCache($element)\r\n }\r\n};\r\nexport var resetPosition = function($element, finishTransition) {\r\n $element = $($element);\r\n var originalTransition;\r\n var stylesConfig = {\r\n left: 0,\r\n top: 0,\r\n transform: \"none\"\r\n };\r\n if (finishTransition) {\r\n originalTransition = $element.css(\"transition\");\r\n stylesConfig.transition = \"none\"\r\n }\r\n $element.css(stylesConfig);\r\n clearCache($element);\r\n if (finishTransition) {\r\n $element.get(0).offsetHeight;\r\n $element.css(\"transition\", originalTransition)\r\n }\r\n};\r\nexport var parseTranslate = function(translateString) {\r\n var result = translateString.match(TRANSLATE_REGEX);\r\n if (!result || !result[1]) {\r\n return\r\n }\r\n result = result[1].split(\",\");\r\n result = {\r\n x: parseFloat(result[0]),\r\n y: parseFloat(result[1]),\r\n z: parseFloat(result[2])\r\n };\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nvar CSS_TRANSITION_EASING_REGEX = /cubic-bezier\\((\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\)/;\r\nvar TransitionTimingFuncMap = {\r\n linear: \"cubic-bezier(0, 0, 1, 1)\",\r\n swing: \"cubic-bezier(0.445, 0.05, 0.55, 0.95)\",\r\n ease: \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\r\n \"ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\r\n \"ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\r\n \"ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\"\r\n};\r\nvar polynomBezier = function(x1, y1, x2, y2) {\r\n var Cx = 3 * x1;\r\n var Bx = 3 * (x2 - x1) - Cx;\r\n var Ax = 1 - Cx - Bx;\r\n var Cy = 3 * y1;\r\n var By = 3 * (y2 - y1) - Cy;\r\n var Ay = 1 - Cy - By;\r\n var bezierX = function(t) {\r\n return t * (Cx + t * (Bx + t * Ax))\r\n };\r\n var derivativeX = function(t) {\r\n return Cx + t * (2 * Bx + 3 * t * Ax)\r\n };\r\n return function(t) {\r\n return function(t) {\r\n return t * (Cy + t * (By + t * Ay))\r\n }(function(t) {\r\n var x = t;\r\n var i = 0;\r\n var z;\r\n while (i < 14) {\r\n z = bezierX(x) - t;\r\n if (Math.abs(z) < .001) {\r\n break\r\n }\r\n x -= z / derivativeX(x);\r\n i++\r\n }\r\n return x\r\n }(t))\r\n }\r\n};\r\nvar easing = {};\r\nexport var convertTransitionTimingFuncToEasing = function(cssTransitionEasing) {\r\n cssTransitionEasing = TransitionTimingFuncMap[cssTransitionEasing] || cssTransitionEasing;\r\n var coeffs = cssTransitionEasing.match(CSS_TRANSITION_EASING_REGEX);\r\n var forceName;\r\n if (!coeffs) {\r\n forceName = \"linear\";\r\n coeffs = TransitionTimingFuncMap[forceName].match(CSS_TRANSITION_EASING_REGEX)\r\n }\r\n coeffs = coeffs.slice(1, 5);\r\n for (var i = 0; i < coeffs.length; i++) {\r\n coeffs[i] = parseFloat(coeffs[i])\r\n }\r\n var easingName = forceName || \"cubicbezier_\" + coeffs.join(\"_\").replace(/\\./g, \"p\");\r\n if (!isFunction(easing[easingName])) {\r\n easing[easingName] = function(x, t, b, c, d) {\r\n return c * polynomBezier(coeffs[0], coeffs[1], coeffs[2], coeffs[3])(t / d) + b\r\n }\r\n }\r\n return easingName\r\n};\r\nexport function setEasing(value) {\r\n easing = value\r\n}\r\nexport function getEasing(name) {\r\n return easing[name]\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/position.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n splitPair,\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport browser from \"../core/utils/browser\";\r\nimport {\r\n resetPosition,\r\n move\r\n} from \"./translator\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n setStyle\r\n} from \"../core/utils/style\";\r\nvar horzRe = /left|right/;\r\nvar vertRe = /top|bottom/;\r\nvar collisionRe = /fit|flip|none/;\r\nvar scaleRe = /scale\\(.+?\\)/;\r\nvar IS_SAFARI = browser.safari;\r\nvar normalizeAlign = function(raw) {\r\n var result = {\r\n h: \"center\",\r\n v: \"center\"\r\n };\r\n var pair = splitPair(raw);\r\n if (pair) {\r\n each(pair, (function() {\r\n var w = String(this).toLowerCase();\r\n if (horzRe.test(w)) {\r\n result.h = w\r\n } else if (vertRe.test(w)) {\r\n result.v = w\r\n }\r\n }))\r\n }\r\n return result\r\n};\r\nvar normalizeOffset = function(raw, preventRound) {\r\n return pairToObject(raw, preventRound)\r\n};\r\nvar normalizeCollision = function(raw) {\r\n var pair = splitPair(raw);\r\n var h = String(pair && pair[0]).toLowerCase();\r\n var v = String(pair && pair[1]).toLowerCase();\r\n if (!collisionRe.test(h)) {\r\n h = \"none\"\r\n }\r\n if (!collisionRe.test(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nvar getAlignFactor = function(align) {\r\n switch (align) {\r\n case \"center\":\r\n return .5;\r\n case \"right\":\r\n case \"bottom\":\r\n return 1;\r\n default:\r\n return 0\r\n }\r\n};\r\nvar inverseAlign = function(align) {\r\n switch (align) {\r\n case \"left\":\r\n return \"right\";\r\n case \"right\":\r\n return \"left\";\r\n case \"top\":\r\n return \"bottom\";\r\n case \"bottom\":\r\n return \"top\";\r\n default:\r\n return align\r\n }\r\n};\r\nvar calculateOversize = function(data, bounds) {\r\n var oversize = 0;\r\n if (data.myLocation < bounds.min) {\r\n oversize += bounds.min - data.myLocation\r\n }\r\n if (data.myLocation > bounds.max) {\r\n oversize += data.myLocation - bounds.max\r\n }\r\n return oversize\r\n};\r\nvar collisionSide = function(direction, data, bounds) {\r\n if (data.myLocation < bounds.min) {\r\n return \"h\" === direction ? \"left\" : \"top\"\r\n }\r\n if (data.myLocation > bounds.max) {\r\n return \"h\" === direction ? \"right\" : \"bottom\"\r\n }\r\n return \"none\"\r\n};\r\nvar initMyLocation = function(data) {\r\n data.myLocation = data.atLocation + getAlignFactor(data.atAlign) * data.atSize - getAlignFactor(data.myAlign) * data.mySize + data.offset\r\n};\r\nvar collisionResolvers = {\r\n fit: function(data, bounds) {\r\n var result = false;\r\n if (data.myLocation > bounds.max) {\r\n data.myLocation = bounds.max;\r\n result = true\r\n }\r\n if (data.myLocation < bounds.min) {\r\n data.myLocation = bounds.min;\r\n result = true\r\n }\r\n data.fit = result\r\n },\r\n flip: function(data, bounds) {\r\n data.flip = false;\r\n if (\"center\" === data.myAlign && \"center\" === data.atAlign) {\r\n return\r\n }\r\n if (data.myLocation < bounds.min || data.myLocation > bounds.max) {\r\n var inverseData = extend({}, data, {\r\n myAlign: inverseAlign(data.myAlign),\r\n atAlign: inverseAlign(data.atAlign),\r\n offset: -data.offset\r\n });\r\n initMyLocation(inverseData);\r\n inverseData.oversize = calculateOversize(inverseData, bounds);\r\n if (inverseData.myLocation >= bounds.min && inverseData.myLocation <= bounds.max || data.oversize > inverseData.oversize) {\r\n data.myLocation = inverseData.myLocation;\r\n data.oversize = inverseData.oversize;\r\n data.flip = true\r\n }\r\n }\r\n },\r\n flipfit: function(data, bounds) {\r\n this.flip(data, bounds);\r\n this.fit(data, bounds)\r\n },\r\n none: function(data) {\r\n data.oversize = 0\r\n }\r\n};\r\nvar scrollbarWidth;\r\nvar calculateScrollbarWidth = function() {\r\n var $scrollDiv = $(\"
\").css({\r\n width: 100,\r\n height: 100,\r\n overflow: \"scroll\",\r\n position: \"absolute\",\r\n top: -9999\r\n }).appendTo($(\"body\"));\r\n var result = $scrollDiv.get(0).offsetWidth - $scrollDiv.get(0).clientWidth;\r\n $scrollDiv.remove();\r\n scrollbarWidth = result\r\n};\r\nvar defaultPositionResult = {\r\n h: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n },\r\n v: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n }\r\n};\r\nvar calculatePosition = function(what, options) {\r\n var $what = $(what);\r\n var currentOffset = $what.offset();\r\n var result = extend(true, {}, defaultPositionResult, {\r\n h: {\r\n location: currentOffset.left\r\n },\r\n v: {\r\n location: currentOffset.top\r\n }\r\n });\r\n if (!options) {\r\n return result\r\n }\r\n var my = normalizeAlign(options.my);\r\n var at = normalizeAlign(options.at);\r\n var of = $(options.of).length && options.of || window;\r\n var offset = normalizeOffset(options.offset, options.precise);\r\n var collision = normalizeCollision(options.collision);\r\n var boundary = options.boundary;\r\n var boundaryOffset = normalizeOffset(options.boundaryOffset, options.precise);\r\n var h = {\r\n mySize: getOuterWidth($what),\r\n myAlign: my.h,\r\n atAlign: at.h,\r\n offset: offset.h,\r\n collision: collision.h,\r\n boundaryOffset: boundaryOffset.h\r\n };\r\n var v = {\r\n mySize: getOuterHeight($what),\r\n myAlign: my.v,\r\n atAlign: at.v,\r\n offset: offset.v,\r\n collision: collision.v,\r\n boundaryOffset: boundaryOffset.v\r\n };\r\n if (of.preventDefault) {\r\n h.atLocation = of.pageX;\r\n v.atLocation = of.pageY;\r\n h.atSize = 0;\r\n v.atSize = 0\r\n } else {\r\n of = $(of);\r\n if (isWindow(of [0])) {\r\n h.atLocation = of.scrollLeft();\r\n v.atLocation = of.scrollTop();\r\n if (\"phone\" === devices.real().deviceType && of [0].visualViewport) {\r\n h.atLocation = Math.max(h.atLocation, of [0].visualViewport.offsetLeft);\r\n v.atLocation = Math.max(v.atLocation, of [0].visualViewport.offsetTop);\r\n h.atSize = of [0].visualViewport.width;\r\n v.atSize = of [0].visualViewport.height\r\n } else {\r\n h.atSize = of [0].innerWidth > of [0].outerWidth ? of [0].innerWidth : getWidth(of);\r\n v.atSize = of [0].innerHeight > of [0].outerHeight || IS_SAFARI ? of [0].innerHeight : getHeight(of)\r\n }\r\n } else if (9 === of [0].nodeType) {\r\n h.atLocation = 0;\r\n v.atLocation = 0;\r\n h.atSize = getWidth(of);\r\n v.atSize = getHeight(of)\r\n } else {\r\n var ofRect = getBoundingRect(of.get(0));\r\n var o = getOffsetWithoutScale(of);\r\n h.atLocation = o.left;\r\n v.atLocation = o.top;\r\n h.atSize = Math.max(ofRect.width, getOuterWidth(of));\r\n v.atSize = Math.max(ofRect.height, getOuterHeight(of))\r\n }\r\n }\r\n initMyLocation(h);\r\n initMyLocation(v);\r\n var bounds = function() {\r\n var win = $(window);\r\n var windowWidth = getWidth(win);\r\n var windowHeight = getHeight(win);\r\n var left = win.scrollLeft();\r\n var top = win.scrollTop();\r\n var documentElement = domAdapter.getDocumentElement();\r\n var hZoomLevel = touch ? documentElement.clientWidth / windowWidth : 1;\r\n var vZoomLevel = touch ? documentElement.clientHeight / windowHeight : 1;\r\n if (void 0 === scrollbarWidth) {\r\n calculateScrollbarWidth()\r\n }\r\n var boundaryWidth = windowWidth;\r\n var boundaryHeight = windowHeight;\r\n if (boundary && !isWindow(boundary)) {\r\n var $boundary = $(boundary);\r\n var boundaryPosition = $boundary.offset();\r\n left = boundaryPosition.left;\r\n top = boundaryPosition.top;\r\n boundaryWidth = getWidth($boundary);\r\n boundaryHeight = getHeight($boundary)\r\n }\r\n return {\r\n h: {\r\n min: left + h.boundaryOffset,\r\n max: left + boundaryWidth / hZoomLevel - h.mySize - h.boundaryOffset\r\n },\r\n v: {\r\n min: top + v.boundaryOffset,\r\n max: top + boundaryHeight / vZoomLevel - v.mySize - v.boundaryOffset\r\n }\r\n }\r\n }();\r\n h.oversize = calculateOversize(h, bounds.h);\r\n v.oversize = calculateOversize(v, bounds.v);\r\n h.collisionSide = collisionSide(\"h\", h, bounds.h);\r\n v.collisionSide = collisionSide(\"v\", v, bounds.v);\r\n if (collisionResolvers[h.collision]) {\r\n collisionResolvers[h.collision](h, bounds.h)\r\n }\r\n if (collisionResolvers[v.collision]) {\r\n collisionResolvers[v.collision](v, bounds.v)\r\n }\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n extend(true, result, {\r\n h: {\r\n location: preciser(h.myLocation),\r\n oversize: preciser(h.oversize),\r\n fit: h.fit,\r\n flip: h.flip,\r\n collisionSide: h.collisionSide\r\n },\r\n v: {\r\n location: preciser(v.myLocation),\r\n oversize: preciser(v.oversize),\r\n fit: v.fit,\r\n flip: v.flip,\r\n collisionSide: v.collisionSide\r\n },\r\n precise: options.precise\r\n });\r\n return result\r\n};\r\nvar setScaleProperty = function(element, scale, styleAttr, isEmpty) {\r\n var stylePropIsValid = isDefined(element.style) && !domAdapter.isNode(element.style);\r\n var newStyleValue = isEmpty ? styleAttr.replace(scale, \"\") : styleAttr;\r\n if (stylePropIsValid) {\r\n setStyle(element, newStyleValue, false)\r\n } else {\r\n var styleAttributeNode = domAdapter.createAttribute(\"style\");\r\n styleAttributeNode.value = newStyleValue;\r\n element.setAttributeNode(styleAttributeNode)\r\n }\r\n};\r\nvar getOffsetWithoutScale = function getOffsetWithoutScale($startElement) {\r\n var _currentElement$getAt, _style$match;\r\n var $currentElement = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : $startElement;\r\n var currentElement = $currentElement.get(0);\r\n if (!currentElement) {\r\n return $startElement.offset()\r\n }\r\n var style = (null === (_currentElement$getAt = currentElement.getAttribute) || void 0 === _currentElement$getAt ? void 0 : _currentElement$getAt.call(currentElement, \"style\")) || \"\";\r\n var scale = null === (_style$match = style.match(scaleRe)) || void 0 === _style$match ? void 0 : _style$match[0];\r\n var offset;\r\n if (scale) {\r\n setScaleProperty(currentElement, scale, style, true);\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent());\r\n setScaleProperty(currentElement, scale, style, false)\r\n } else {\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent())\r\n }\r\n return offset\r\n};\r\nvar position = function(what, options) {\r\n var $what = $(what);\r\n if (!options) {\r\n return $what.offset()\r\n }\r\n resetPosition($what, true);\r\n var offset = getOffsetWithoutScale($what);\r\n var targetPosition = options.h && options.v ? options : calculatePosition($what, options);\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n move($what, {\r\n left: targetPosition.h.location - preciser(offset.left),\r\n top: targetPosition.v.location - preciser(offset.top)\r\n });\r\n return targetPosition\r\n};\r\nvar offset = function(element) {\r\n element = $(element).get(0);\r\n if (isWindow(element)) {\r\n return null\r\n } else if (element && \"pageY\" in element && \"pageX\" in element) {\r\n return {\r\n top: element.pageY,\r\n left: element.pageX\r\n }\r\n }\r\n return $(element).offset()\r\n};\r\nif (!position.inverseAlign) {\r\n position.inverseAlign = inverseAlign\r\n}\r\nif (!position.normalizeAlign) {\r\n position.normalizeAlign = normalizeAlign\r\n}\r\nexport default {\r\n calculateScrollbarWidth: calculateScrollbarWidth,\r\n calculate: calculatePosition,\r\n setup: position,\r\n offset: offset\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/fx.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getTranslateCss,\r\n parseTranslate,\r\n clearCache,\r\n locate,\r\n getTranslate\r\n} from \"./translator\";\r\nimport {\r\n convertTransitionTimingFuncToEasing,\r\n getEasing\r\n} from \"./easing\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"./frame\";\r\nimport {\r\n transitionEndEventName,\r\n transition\r\n} from \"../core/utils/support\";\r\nimport positionUtils from \"./position\";\r\nimport {\r\n removeEvent\r\n} from \"../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar removeEventName = addNamespace(removeEvent, \"dxFX\");\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar RELATIVE_VALUE_REGEX = /^([+-])=(.*)/i;\r\nvar ANIM_DATA_KEY = \"dxAnimData\";\r\nvar ANIM_QUEUE_KEY = \"dxAnimQueue\";\r\nvar TRANSFORM_PROP = \"transform\";\r\nvar TransitionAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"none\"\r\n });\r\n if (\"string\" === typeof config.from) {\r\n $element.addClass(config.from)\r\n } else {\r\n setProps($element, config.from)\r\n }\r\n var that = this;\r\n var deferred = new Deferred;\r\n var cleanupWhen = config.cleanupWhen;\r\n config.transitionAnimation = {\r\n deferred: deferred,\r\n finish: function() {\r\n that._finishTransition($element);\r\n if (cleanupWhen) {\r\n when(deferred, cleanupWhen).always((function() {\r\n that._cleanup($element, config)\r\n }))\r\n } else {\r\n that._cleanup($element, config)\r\n }\r\n deferred.resolveWith($element, [config, $element])\r\n }\r\n };\r\n this._completeAnimationCallback($element, config).done((function() {\r\n config.transitionAnimation.finish()\r\n })).fail((function() {\r\n deferred.rejectWith($element, [config, $element])\r\n }));\r\n if (!config.duration) {\r\n config.transitionAnimation.finish()\r\n }\r\n $element.css(\"transform\")\r\n },\r\n animate: function($element, config) {\r\n this._startAnimation($element, config);\r\n return config.transitionAnimation.deferred.promise()\r\n },\r\n _completeAnimationCallback: function($element, config) {\r\n var that = this;\r\n var startTime = Date.now() + config.delay;\r\n var deferred = new Deferred;\r\n var transitionEndFired = new Deferred;\r\n var simulatedTransitionEndFired = new Deferred;\r\n var simulatedEndEventTimer;\r\n var transitionEndEventFullName = transitionEndEventName() + \".dxFX\";\r\n config.transitionAnimation.cleanup = function() {\r\n clearTimeout(simulatedEndEventTimer);\r\n clearTimeout(waitForJSCompleteTimer);\r\n eventsEngine.off($element, transitionEndEventFullName);\r\n eventsEngine.off($element, removeEventName)\r\n };\r\n eventsEngine.one($element, transitionEndEventFullName, (function() {\r\n if (Date.now() - startTime >= config.duration) {\r\n transitionEndFired.reject()\r\n }\r\n }));\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n that.stop($element, config);\r\n deferred.reject()\r\n }));\r\n var waitForJSCompleteTimer = setTimeout((function() {\r\n simulatedEndEventTimer = setTimeout((function() {\r\n simulatedTransitionEndFired.reject()\r\n }), config.duration + config.delay + fx._simulatedTransitionEndDelay);\r\n when(transitionEndFired, simulatedTransitionEndFired).fail(function() {\r\n deferred.resolve()\r\n }.bind(this))\r\n }));\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"all\",\r\n transitionDelay: config.delay + \"ms\",\r\n transitionDuration: config.duration + \"ms\",\r\n transitionTimingFunction: config.easing\r\n });\r\n if (\"string\" === typeof config.to) {\r\n $element[0].className += \" \" + config.to\r\n } else if (config.to) {\r\n setProps($element, config.to)\r\n }\r\n },\r\n _finishTransition: function($element) {\r\n $element.css(\"transition\", \"none\")\r\n },\r\n _cleanup: function($element, config) {\r\n config.transitionAnimation.cleanup();\r\n if (\"string\" === typeof config.from) {\r\n $element.removeClass(config.from);\r\n $element.removeClass(config.to)\r\n }\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n if (!config) {\r\n return\r\n }\r\n if (jumpToEnd) {\r\n config.transitionAnimation.finish()\r\n } else {\r\n if (isPlainObject(config.to)) {\r\n each(config.to, (function(key) {\r\n $element.css(key, $element.css(key))\r\n }))\r\n }\r\n this._finishTransition($element);\r\n this._cleanup($element, config)\r\n }\r\n }\r\n};\r\nvar FrameAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n setProps($element, config.from)\r\n },\r\n animate: function($element, config) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n if (!config) {\r\n return deferred.reject().promise()\r\n }\r\n each(config.to, (function(prop) {\r\n if (void 0 === config.from[prop]) {\r\n config.from[prop] = that._normalizeValue($element.css(prop))\r\n }\r\n }));\r\n if (config.to[TRANSFORM_PROP]) {\r\n config.from[TRANSFORM_PROP] = that._parseTransform(config.from[TRANSFORM_PROP]);\r\n config.to[TRANSFORM_PROP] = that._parseTransform(config.to[TRANSFORM_PROP])\r\n }\r\n config.frameAnimation = {\r\n to: config.to,\r\n from: config.from,\r\n currentValue: config.from,\r\n easing: convertTransitionTimingFuncToEasing(config.easing),\r\n duration: config.duration,\r\n startTime: (new Date).valueOf(),\r\n finish: function() {\r\n this.currentValue = this.to;\r\n this.draw();\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId);\r\n deferred.resolve()\r\n },\r\n draw: function() {\r\n if (config.draw) {\r\n config.draw(this.currentValue);\r\n return\r\n }\r\n var currentValue = extend({}, this.currentValue);\r\n if (currentValue[TRANSFORM_PROP]) {\r\n currentValue[TRANSFORM_PROP] = map(currentValue[TRANSFORM_PROP], (function(value, prop) {\r\n if (\"translate\" === prop) {\r\n return getTranslateCss(value)\r\n } else if (\"scale\" === prop) {\r\n return \"scale(\" + value + \")\"\r\n } else if (\"rotate\" === prop.substr(0, prop.length - 1)) {\r\n return prop + \"(\" + value + \"deg)\"\r\n }\r\n })).join(\" \")\r\n }\r\n $element.css(currentValue)\r\n }\r\n };\r\n if (config.delay) {\r\n config.frameAnimation.startTime += config.delay;\r\n config.frameAnimation.delayTimeout = setTimeout((function() {\r\n that._startAnimation($element, config)\r\n }), config.delay)\r\n } else {\r\n that._startAnimation($element, config)\r\n }\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n if (config.frameAnimation) {\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId)\r\n }\r\n }));\r\n this._animationStep($element, config)\r\n },\r\n _parseTransform: function(transformString) {\r\n var result = {};\r\n each(transformString.match(/\\w+\\d*\\w*\\([^)]*\\)\\s*/g), (function(i, part) {\r\n var translateData = parseTranslate(part);\r\n var scaleData = part.match(/scale\\((.+?)\\)/);\r\n var rotateData = part.match(/(rotate.)\\((.+)deg\\)/);\r\n if (translateData) {\r\n result.translate = translateData\r\n }\r\n if (scaleData && scaleData[1]) {\r\n result.scale = parseFloat(scaleData[1])\r\n }\r\n if (rotateData && rotateData[1]) {\r\n result[rotateData[1]] = parseFloat(rotateData[2])\r\n }\r\n }));\r\n return result\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n cancelAnimationFrame(frameAnimation.animationFrameId);\r\n clearTimeout(frameAnimation.delayTimeout);\r\n if (jumpToEnd) {\r\n frameAnimation.finish()\r\n }\r\n delete config.frameAnimation\r\n },\r\n _animationStep: function($element, config) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n var now = (new Date).valueOf();\r\n if (now >= frameAnimation.startTime + frameAnimation.duration) {\r\n frameAnimation.finish();\r\n return\r\n }\r\n frameAnimation.currentValue = this._calcStepValue(frameAnimation, now - frameAnimation.startTime);\r\n frameAnimation.draw();\r\n var that = this;\r\n frameAnimation.animationFrameId = requestAnimationFrame((function() {\r\n that._animationStep($element, config)\r\n }))\r\n },\r\n _calcStepValue: function(frameAnimation, currentDuration) {\r\n return function calcValueRecursively(from, to) {\r\n var result = Array.isArray(to) ? [] : {};\r\n each(to, (function(propName, endPropValue) {\r\n if (\"string\" === typeof endPropValue && false === parseFloat(endPropValue)) {\r\n return true\r\n }\r\n result[propName] = \"object\" === typeof endPropValue ? calcValueRecursively(from[propName], endPropValue) : function(propName) {\r\n var x = currentDuration / frameAnimation.duration;\r\n var t = currentDuration;\r\n var b = 1 * from[propName];\r\n var c = to[propName] - from[propName];\r\n var d = frameAnimation.duration;\r\n return getEasing(frameAnimation.easing)(x, t, b, c, d)\r\n }(propName)\r\n }));\r\n return result\r\n }(frameAnimation.from, frameAnimation.to)\r\n },\r\n _normalizeValue: function(value) {\r\n var numericValue = parseFloat(value);\r\n if (false === numericValue) {\r\n return value\r\n }\r\n return numericValue\r\n }\r\n};\r\nvar FallbackToNoAnimationStrategy = {\r\n initAnimation: function() {},\r\n animate: function() {\r\n return (new Deferred).resolve().promise()\r\n },\r\n stop: noop,\r\n isSynchronous: true\r\n};\r\nvar getAnimationStrategy = function(config) {\r\n config = config || {};\r\n var animationStrategies = {\r\n transition: transition() ? TransitionAnimationStrategy : FrameAnimationStrategy,\r\n frame: FrameAnimationStrategy,\r\n noAnimation: FallbackToNoAnimationStrategy\r\n };\r\n var strategy = config.strategy || \"transition\";\r\n if (\"css\" === config.type && !transition()) {\r\n strategy = \"noAnimation\"\r\n }\r\n return animationStrategies[strategy]\r\n};\r\nvar baseConfigValidator = function(config, animationType, validate, typeMessage) {\r\n each([\"from\", \"to\"], (function() {\r\n if (!validate(config[this])) {\r\n throw errors.Error(\"E0010\", animationType, this, typeMessage)\r\n }\r\n }))\r\n};\r\nvar isObjectConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return isPlainObject(target)\r\n }), \"a plain object\")\r\n};\r\nvar isStringConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return \"string\" === typeof target\r\n }), \"a string\")\r\n};\r\nvar CustomAnimationConfigurator = {\r\n setup: function() {}\r\n};\r\nvar CssAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isStringConfigValidator(config, \"css\")\r\n },\r\n setup: function() {}\r\n};\r\nvar positionAliases = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\"\r\n }\r\n};\r\nvar SlideAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"slide\")\r\n },\r\n setup: function($element, config) {\r\n var location = locate($element);\r\n if (\"slide\" !== config.type) {\r\n var positioningConfig = \"slideIn\" === config.type ? config.from : config.to;\r\n positioningConfig.position = extend({\r\n of: window\r\n }, positionAliases[config.direction]);\r\n setupPosition($element, positioningConfig)\r\n }\r\n this._setUpConfig(location, config.from);\r\n this._setUpConfig(location, config.to);\r\n clearCache($element)\r\n },\r\n _setUpConfig: function(location, config) {\r\n config.left = \"left\" in config ? config.left : \"+=0\";\r\n config.top = \"top\" in config ? config.top : \"+=0\";\r\n this._initNewPosition(location, config)\r\n },\r\n _initNewPosition: function(location, config) {\r\n var position = {\r\n left: config.left,\r\n top: config.top\r\n };\r\n delete config.left;\r\n delete config.top;\r\n var relativeValue = this._getRelativeValue(position.left);\r\n if (void 0 !== relativeValue) {\r\n position.left = relativeValue + location.left\r\n } else {\r\n config.left = 0\r\n }\r\n relativeValue = this._getRelativeValue(position.top);\r\n if (void 0 !== relativeValue) {\r\n position.top = relativeValue + location.top\r\n } else {\r\n config.top = 0\r\n }\r\n config[TRANSFORM_PROP] = getTranslateCss({\r\n x: position.left,\r\n y: position.top\r\n })\r\n },\r\n _getRelativeValue: function(value) {\r\n var relativeValue;\r\n if (\"string\" === typeof value && (relativeValue = RELATIVE_VALUE_REGEX.exec(value))) {\r\n return parseInt(relativeValue[1] + \"1\") * relativeValue[2]\r\n }\r\n }\r\n};\r\nvar FadeAnimationConfigurator = {\r\n setup: function($element, config) {\r\n var _from$opacity, _to$opacity;\r\n var from = config.from;\r\n var to = config.to;\r\n var defaultFromOpacity = \"fadeOut\" === config.type ? 1 : 0;\r\n var defaultToOpacity = \"fadeOut\" === config.type ? 0 : 1;\r\n var fromOpacity = isPlainObject(from) ? String(null !== (_from$opacity = from.opacity) && void 0 !== _from$opacity ? _from$opacity : defaultFromOpacity) : String(from);\r\n var toOpacity = isPlainObject(to) ? String(null !== (_to$opacity = to.opacity) && void 0 !== _to$opacity ? _to$opacity : defaultToOpacity) : String(to);\r\n if (!config.skipElementInitialStyles) {\r\n fromOpacity = $element.css(\"opacity\")\r\n }\r\n switch (config.type) {\r\n case \"fadeIn\":\r\n toOpacity = 1;\r\n break;\r\n case \"fadeOut\":\r\n toOpacity = 0\r\n }\r\n config.from = {\r\n visibility: \"visible\",\r\n opacity: fromOpacity\r\n };\r\n config.to = {\r\n opacity: toOpacity\r\n }\r\n }\r\n};\r\nvar PopAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"pop\")\r\n },\r\n setup: function($element, config) {\r\n var from = config.from;\r\n var to = config.to;\r\n var fromOpacity = \"opacity\" in from ? from.opacity : $element.css(\"opacity\");\r\n var toOpacity = \"opacity\" in to ? to.opacity : 1;\r\n var fromScale = \"scale\" in from ? from.scale : 0;\r\n var toScale = \"scale\" in to ? to.scale : 1;\r\n config.from = {\r\n opacity: fromOpacity\r\n };\r\n var translate = getTranslate($element);\r\n config.from[TRANSFORM_PROP] = this._getCssTransform(translate, fromScale);\r\n config.to = {\r\n opacity: toOpacity\r\n };\r\n config.to[TRANSFORM_PROP] = this._getCssTransform(translate, toScale)\r\n },\r\n _getCssTransform: function(translate, scale) {\r\n return getTranslateCss(translate) + \"scale(\" + scale + \")\"\r\n }\r\n};\r\nvar animationConfigurators = {\r\n custom: CustomAnimationConfigurator,\r\n slide: SlideAnimationConfigurator,\r\n slideIn: SlideAnimationConfigurator,\r\n slideOut: SlideAnimationConfigurator,\r\n fade: FadeAnimationConfigurator,\r\n fadeIn: FadeAnimationConfigurator,\r\n fadeOut: FadeAnimationConfigurator,\r\n pop: PopAnimationConfigurator,\r\n css: CssAnimationConfigurator\r\n};\r\nvar getAnimationConfigurator = function(config) {\r\n var result = animationConfigurators[config.type];\r\n if (!result) {\r\n throw errors.Error(\"E0011\", config.type)\r\n }\r\n return result\r\n};\r\nvar defaultJSConfig = {\r\n type: \"custom\",\r\n from: {},\r\n to: {},\r\n duration: 400,\r\n start: noop,\r\n complete: noop,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\nvar defaultCssConfig = {\r\n duration: 400,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\n\r\nfunction setupAnimationOnElement() {\r\n var $element = this.element;\r\n var config = this.config;\r\n setupPosition($element, config.from);\r\n setupPosition($element, config.to);\r\n this.configurator.setup($element, config);\r\n $element.data(ANIM_DATA_KEY, this);\r\n if (fx.off) {\r\n config.duration = 0;\r\n config.delay = 0\r\n }\r\n this.strategy.initAnimation($element, config);\r\n if (config.start) {\r\n var element = getPublicElement($element);\r\n config.start.apply(this, [element, config])\r\n }\r\n}\r\nvar onElementAnimationComplete = function(animation) {\r\n var $element = animation.element;\r\n var config = animation.config;\r\n $element.removeData(ANIM_DATA_KEY);\r\n if (config.complete) {\r\n var element = getPublicElement($element);\r\n config.complete.apply(this, [element, config])\r\n }\r\n animation.deferred.resolveWith(this, [$element, config])\r\n};\r\nvar startAnimationOnElement = function() {\r\n var animation = this;\r\n var $element = animation.element;\r\n var config = animation.config;\r\n animation.isStarted = true;\r\n return animation.strategy.animate($element, config).done((function() {\r\n onElementAnimationComplete(animation)\r\n })).fail((function() {\r\n animation.deferred.rejectWith(this, [$element, config])\r\n }))\r\n};\r\nvar stopAnimationOnElement = function(jumpToEnd) {\r\n var $element = this.element;\r\n var config = this.config;\r\n clearTimeout(this.startTimeout);\r\n if (!this.isStarted) {\r\n this.start()\r\n }\r\n this.strategy.stop($element, config, jumpToEnd)\r\n};\r\nvar scopedRemoveEvent = addNamespace(removeEvent, \"dxFXStartAnimation\");\r\nvar subscribeToRemoveEvent = function(animation) {\r\n eventsEngine.off(animation.element, scopedRemoveEvent);\r\n eventsEngine.on(animation.element, scopedRemoveEvent, (function() {\r\n fx.stop(animation.element)\r\n }));\r\n animation.deferred.always((function() {\r\n eventsEngine.off(animation.element, scopedRemoveEvent)\r\n }))\r\n};\r\nvar createAnimation = function(element, initialConfig) {\r\n var defaultConfig = \"css\" === initialConfig.type ? defaultCssConfig : defaultJSConfig;\r\n var config = extend(true, {}, defaultConfig, initialConfig);\r\n var configurator = getAnimationConfigurator(config);\r\n var strategy = getAnimationStrategy(config);\r\n var animation = {\r\n element: $(element),\r\n config: config,\r\n configurator: configurator,\r\n strategy: strategy,\r\n isSynchronous: strategy.isSynchronous,\r\n setup: setupAnimationOnElement,\r\n start: startAnimationOnElement,\r\n stop: stopAnimationOnElement,\r\n deferred: new Deferred\r\n };\r\n if (isFunction(configurator.validateConfig)) {\r\n configurator.validateConfig(config)\r\n }\r\n subscribeToRemoveEvent(animation);\r\n return animation\r\n};\r\nvar animate = function(element, config) {\r\n var $element = $(element);\r\n if (!$element.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var animation = createAnimation($element, config);\r\n pushInAnimationQueue($element, animation);\r\n return animation.deferred.promise()\r\n};\r\n\r\nfunction pushInAnimationQueue($element, animation) {\r\n var queueData = getAnimQueueData($element);\r\n writeAnimQueueData($element, queueData);\r\n queueData.push(animation);\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n}\r\n\r\nfunction getAnimQueueData($element) {\r\n return $element.data(ANIM_QUEUE_KEY) || []\r\n}\r\n\r\nfunction writeAnimQueueData($element, queueData) {\r\n $element.data(ANIM_QUEUE_KEY, queueData)\r\n}\r\nvar destroyAnimQueueData = function($element) {\r\n $element.removeData(ANIM_QUEUE_KEY)\r\n};\r\n\r\nfunction isAnimating($element) {\r\n return !!$element.data(ANIM_DATA_KEY)\r\n}\r\n\r\nfunction shiftFromAnimationQueue($element, queueData) {\r\n queueData = getAnimQueueData($element);\r\n if (!queueData.length) {\r\n return\r\n }\r\n var animation = queueData.shift();\r\n if (0 === queueData.length) {\r\n destroyAnimQueueData($element)\r\n }\r\n executeAnimation(animation).done((function() {\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element)\r\n }\r\n }))\r\n}\r\n\r\nfunction executeAnimation(animation) {\r\n animation.setup();\r\n if (fx.off || animation.isSynchronous) {\r\n animation.start()\r\n } else {\r\n animation.startTimeout = setTimeout((function() {\r\n animation.start()\r\n }))\r\n }\r\n return animation.deferred.promise()\r\n}\r\n\r\nfunction setupPosition($element, config) {\r\n if (!config || !config.position) {\r\n return\r\n }\r\n var win = $(window);\r\n var left = 0;\r\n var top = 0;\r\n var position = positionUtils.calculate($element, config.position);\r\n var offset = $element.offset();\r\n var currentPosition = $element.position();\r\n if (currentPosition.top > offset.top) {\r\n top = win.scrollTop()\r\n }\r\n if (currentPosition.left > offset.left) {\r\n left = win.scrollLeft()\r\n }\r\n extend(config, {\r\n left: position.h.location - offset.left + currentPosition.left - left,\r\n top: position.v.location - offset.top + currentPosition.top - top\r\n });\r\n delete config.position\r\n}\r\n\r\nfunction setProps($element, props) {\r\n each(props, (function(key, value) {\r\n try {\r\n $element.css(key, isFunction(value) ? value() : value)\r\n } catch (e) {}\r\n }))\r\n}\r\nvar stop = function(element, jumpToEnd) {\r\n var $element = $(element);\r\n var queueData = getAnimQueueData($element);\r\n each(queueData, (function(_, animation) {\r\n animation.config.delay = 0;\r\n animation.config.duration = 0;\r\n animation.isSynchronous = true\r\n }));\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n var animation = $element.data(ANIM_DATA_KEY);\r\n if (animation) {\r\n animation.stop(jumpToEnd)\r\n }\r\n $element.removeData(ANIM_DATA_KEY);\r\n destroyAnimQueueData($element)\r\n};\r\nvar fx = {\r\n off: false,\r\n animationTypes: animationConfigurators,\r\n animate: animate,\r\n createAnimation: createAnimation,\r\n isAnimating: isAnimating,\r\n stop: stop,\r\n _simulatedTransitionEndDelay: 100\r\n};\r\nexport default fx;\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n styleProp\r\n} from \"../../core/utils/style\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nimport {\r\n resetActiveElement,\r\n clearSelection\r\n} from \"../../core/utils/dom\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n needSkipEvent,\r\n createEvent,\r\n eventData,\r\n isDxMouseWheelEvent,\r\n eventDelta,\r\n isTouchEvent\r\n} from \"../utils/index\";\r\nimport Emitter from \"../core/emitter\";\r\nvar abs = Math.abs;\r\nvar SLEEP = 0;\r\nvar INITED = 1;\r\nvar STARTED = 2;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar IMMEDIATE_TOUCH_BOUNDARY = 0;\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar supportPointerEvents = function() {\r\n return styleProp(\"pointer-events\")\r\n};\r\nvar setGestureCover = callOnce((function() {\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (!supportPointerEvents() || !isDesktop) {\r\n return noop\r\n }\r\n var $cover = $(\"
\").addClass(\"dx-gesture-cover\").css(\"pointerEvents\", \"none\");\r\n eventsEngine.subscribeGlobal($cover, \"dxmousewheel\", (function(e) {\r\n e.preventDefault()\r\n }));\r\n ready((function() {\r\n $cover.appendTo(\"body\")\r\n }));\r\n return function(toggle, cursor) {\r\n $cover.css(\"pointerEvents\", toggle ? \"all\" : \"none\");\r\n toggle && $cover.css(\"cursor\", cursor)\r\n }\r\n}));\r\nvar gestureCover = function(toggle, cursor) {\r\n var gestureCoverStrategy = setGestureCover();\r\n gestureCoverStrategy(toggle, cursor)\r\n};\r\nvar GestureEmitter = Emitter.inherit({\r\n gesture: true,\r\n configure: function(data) {\r\n this.getElement().css(\"msTouchAction\", data.immediate ? \"pinch-zoom\" : \"\");\r\n this.callBase(data)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return this._stage !== STARTED\r\n },\r\n getDirection: function() {\r\n return this.direction\r\n },\r\n _cancel: function() {\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false);\r\n this._stage = SLEEP\r\n },\r\n start: function(e) {\r\n if (e._needSkipEvent || needSkipEvent(e)) {\r\n this._cancel(e);\r\n return\r\n }\r\n this._startEvent = createEvent(e);\r\n this._startEventData = eventData(e);\r\n this._stage = INITED;\r\n this._init(e);\r\n this._setupImmediateTimer()\r\n },\r\n _setupImmediateTimer: function() {\r\n var _this$immediateTimeou;\r\n clearTimeout(this._immediateTimer);\r\n this._immediateAccepted = false;\r\n if (!this.immediate) {\r\n return\r\n }\r\n if (0 === this.immediateTimeout) {\r\n this._immediateAccepted = true;\r\n return\r\n }\r\n this._immediateTimer = setTimeout(function() {\r\n this._immediateAccepted = true\r\n }.bind(this), null !== (_this$immediateTimeou = this.immediateTimeout) && void 0 !== _this$immediateTimeou ? _this$immediateTimeou : IMMEDIATE_TIMEOUT)\r\n },\r\n move: function(e) {\r\n if (this._stage === INITED && this._directionConfirmed(e)) {\r\n this._stage = STARTED;\r\n this._resetActiveElement();\r\n this._toggleGestureCover(true);\r\n this._clearSelection(e);\r\n this._adjustStartEvent(e);\r\n this._start(this._startEvent);\r\n if (this._stage === SLEEP) {\r\n return\r\n }\r\n this._requestAccept(e);\r\n this._move(e);\r\n this._forgetAccept()\r\n } else if (this._stage === STARTED) {\r\n this._clearSelection(e);\r\n this._move(e)\r\n }\r\n },\r\n _directionConfirmed: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n var deltaX = abs(delta.x);\r\n var deltaY = abs(delta.y);\r\n var horizontalMove = this._validateMove(touchBoundary, deltaX, deltaY);\r\n var verticalMove = this._validateMove(touchBoundary, deltaY, deltaX);\r\n var direction = this.getDirection(e);\r\n var bothAccepted = \"both\" === direction && (horizontalMove || verticalMove);\r\n var horizontalAccepted = \"horizontal\" === direction && horizontalMove;\r\n var verticalAccepted = \"vertical\" === direction && verticalMove;\r\n return bothAccepted || horizontalAccepted || verticalAccepted || this._immediateAccepted\r\n },\r\n _validateMove: function(touchBoundary, mainAxis, crossAxis) {\r\n return mainAxis && mainAxis >= touchBoundary && (this.immediate ? mainAxis >= crossAxis : true)\r\n },\r\n _getTouchBoundary: function(e) {\r\n return this.immediate || isDxMouseWheelEvent(e) ? IMMEDIATE_TOUCH_BOUNDARY : TOUCH_BOUNDARY\r\n },\r\n _adjustStartEvent: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n this._startEvent.pageX += sign(delta.x) * touchBoundary;\r\n this._startEvent.pageY += sign(delta.y) * touchBoundary\r\n },\r\n _resetActiveElement: function() {\r\n if (\"ios\" === devices.real().platform && this.getElement().find(\":focus\").length) {\r\n resetActiveElement()\r\n }\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n },\r\n _toggleGestureCoverImpl: function(toggle) {\r\n var isStarted = this._stage === STARTED;\r\n if (isStarted) {\r\n gestureCover(toggle, this.getElement().css(\"cursor\"))\r\n }\r\n },\r\n _clearSelection: function(e) {\r\n if (isDxMouseWheelEvent(e) || isTouchEvent(e)) {\r\n return\r\n }\r\n clearSelection()\r\n },\r\n end: function(e) {\r\n this._toggleGestureCover(false);\r\n if (this._stage === STARTED) {\r\n this._end(e)\r\n } else if (this._stage === INITED) {\r\n this._stop(e)\r\n }\r\n this._stage = SLEEP\r\n },\r\n dispose: function() {\r\n clearTimeout(this._immediateTimer);\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false)\r\n },\r\n _init: noop,\r\n _start: noop,\r\n _move: noop,\r\n _stop: noop,\r\n _end: noop\r\n});\r\nGestureEmitter.initialTouchBoundary = TOUCH_BOUNDARY;\r\nGestureEmitter.touchBoundary = function(newBoundary) {\r\n if (isDefined(newBoundary)) {\r\n TOUCH_BOUNDARY = newBoundary;\r\n return\r\n }\r\n return TOUCH_BOUNDARY\r\n};\r\nexport default GestureEmitter;\r\n","/**\r\n * DevExtreme (esm/events/drag.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n wrapToArray\r\n} from \"../core/utils/array\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n eventData as eData,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DRAG_START_EVENT = \"dxdragstart\";\r\nvar DRAG_EVENT = \"dxdrag\";\r\nvar DRAG_END_EVENT = \"dxdragend\";\r\nvar DRAG_ENTER_EVENT = \"dxdragenter\";\r\nvar DRAG_LEAVE_EVENT = \"dxdragleave\";\r\nvar DROP_EVENT = \"dxdrop\";\r\nvar DX_DRAG_EVENTS_COUNT_KEY = \"dxDragEventsCount\";\r\nvar knownDropTargets = [];\r\nvar knownDropTargetSelectors = [];\r\nvar knownDropTargetConfigs = [];\r\nvar dropTargetRegistration = {\r\n setup: function(element, data) {\r\n var knownDropTarget = knownDropTargets.includes(element);\r\n if (!knownDropTarget) {\r\n knownDropTargets.push(element);\r\n knownDropTargetSelectors.push([]);\r\n knownDropTargetConfigs.push(data || {})\r\n }\r\n },\r\n add: function(element, handleObj) {\r\n var index = knownDropTargets.indexOf(element);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if (!knownDropTargetSelectors[index].includes(selector)) {\r\n knownDropTargetSelectors[index].push(selector)\r\n }\r\n },\r\n updateEventsCounter: function(element, event, value) {\r\n if ([DRAG_ENTER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT].indexOf(event) > -1) {\r\n var eventsCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY) || 0;\r\n elementData(element, DX_DRAG_EVENTS_COUNT_KEY, Math.max(0, eventsCount + value))\r\n }\r\n },\r\n remove: function(element, handleObj) {\r\n this.updateEventsCounter(element, handleObj.type, -1)\r\n },\r\n teardown: function(element) {\r\n var handlersCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY);\r\n if (!handlersCount) {\r\n var index = knownDropTargets.indexOf(element);\r\n knownDropTargets.splice(index, 1);\r\n knownDropTargetSelectors.splice(index, 1);\r\n knownDropTargetConfigs.splice(index, 1);\r\n removeData(element, DX_DRAG_EVENTS_COUNT_KEY)\r\n }\r\n }\r\n};\r\nregisterEvent(DRAG_ENTER_EVENT, dropTargetRegistration);\r\nregisterEvent(DRAG_LEAVE_EVENT, dropTargetRegistration);\r\nregisterEvent(DROP_EVENT, dropTargetRegistration);\r\nvar getItemDelegatedTargets = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(selector => selector);\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if (knownDropTargetSelectors[dropTargetIndex].includes(void 0)) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = GestureEmitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset;\r\n if (e.targetElements || null === e.targetElements) {\r\n var dropTargets = wrapToArray(e.targetElements || []);\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n } else {\r\n this._dropTargets = knownDropTargets\r\n }\r\n },\r\n _move: function(e) {\r\n var eventData = eData(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n fireEvent(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, (function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = $(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), (function(_, delegatedTarget) {\r\n var $delegatedTarget = $(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, $(result), e)) {\r\n result = delegatedTarget\r\n }\r\n }))\r\n }));\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, (function(_, activeTarget) {\r\n active = active || activeTarget === target || contains(activeTarget, target);\r\n return !active\r\n }));\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === $(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = eData(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\nexport {\r\n DRAG_EVENT as move, DRAG_START_EVENT as start, DRAG_END_EVENT as end, DRAG_ENTER_EVENT as enter, DRAG_LEAVE_EVENT as leave, DROP_EVENT as drop\r\n};\r\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var hideCallback = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(callback) {\r\n if (!callbacks.includes(callback)) {\r\n callbacks.push(callback)\r\n }\r\n },\r\n remove: function(callback) {\r\n var indexOfCallback = callbacks.indexOf(callback);\r\n if (-1 !== indexOfCallback) {\r\n callbacks.splice(indexOfCallback, 1)\r\n }\r\n },\r\n fire: function() {\r\n var callback = callbacks.pop();\r\n var result = !!callback;\r\n if (result) {\r\n callback()\r\n }\r\n return result\r\n },\r\n hasCallback: function() {\r\n return callbacks.length > 0\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/ui/widget/swatch_container.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n value\r\n} from \"../../core/utils/view_port\";\r\nvar SWATCH_CONTAINER_CLASS_PREFIX = \"dx-swatch-\";\r\nvar getSwatchContainer = element => {\r\n var $element = $(element);\r\n var swatchContainer = $element.closest('[class^=\"'.concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"], [class*=\" ').concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"]'));\r\n var viewport = value();\r\n if (!swatchContainer.length) {\r\n return viewport\r\n }\r\n var swatchClassRegex = new RegExp(\"(\\\\s|^)(\".concat(SWATCH_CONTAINER_CLASS_PREFIX, \".*?)(\\\\s|$)\"));\r\n var swatchClass = swatchContainer[0].className.match(swatchClassRegex)[2];\r\n var viewportSwatchContainer = viewport.children(\".\" + swatchClass);\r\n if (!viewportSwatchContainer.length) {\r\n viewportSwatchContainer = $(\"
\").addClass(swatchClass).appendTo(viewport)\r\n }\r\n return viewportSwatchContainer\r\n};\r\nexport default {\r\n getSwatchContainer: getSwatchContainer\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/overlay/m_overlay_position_controller.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport positionUtils from \"../../../animation/position\";\r\nimport {\r\n locate,\r\n move,\r\n resetPosition\r\n} from \"../../../animation/translator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isEvent,\r\n isString,\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport swatch from \"../../../ui/widget/swatch_container\";\r\nvar window = getWindow();\r\nvar OVERLAY_POSITION_ALIASES = {\r\n top: {\r\n my: \"top center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"bottom center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"right center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"left center\",\r\n at: \"left center\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\"\r\n },\r\n \"right bottom\": {\r\n my: \"right bottom\",\r\n at: \"right bottom\"\r\n },\r\n \"right top\": {\r\n my: \"right top\",\r\n at: \"right top\"\r\n },\r\n \"left bottom\": {\r\n my: \"left bottom\",\r\n at: \"left bottom\"\r\n },\r\n \"left top\": {\r\n my: \"left top\",\r\n at: \"left top\"\r\n }\r\n};\r\nvar OVERLAY_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nclass OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: $root,\r\n $content: $content,\r\n $wrapper: $wrapper,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n } = _ref;\r\n this._props = {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n restorePosition: restorePosition,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n };\r\n this._$root = $root;\r\n this._$content = $content;\r\n this._$wrapper = $wrapper;\r\n this._$markupContainer = void 0;\r\n this._$visualContainer = void 0;\r\n this._shouldRenderContentInitialPosition = true;\r\n this._visualPosition = void 0;\r\n this._initialPosition = void 0;\r\n this._previousVisualPosition = void 0;\r\n this.updateContainer(container);\r\n this.updatePosition(position);\r\n this.updateVisualContainer(visualContainer)\r\n }\r\n get $container() {\r\n this.updateContainer();\r\n return this._$markupContainer\r\n }\r\n get $visualContainer() {\r\n return this._$visualContainer\r\n }\r\n get position() {\r\n return this._position\r\n }\r\n set fixWrapperPosition(fixWrapperPosition) {\r\n this._props._fixWrapperPosition = fixWrapperPosition;\r\n this.styleWrapperPosition()\r\n }\r\n set restorePosition(restorePosition) {\r\n this._props.restorePosition = restorePosition\r\n }\r\n restorePositionOnNextRender(value) {\r\n this._shouldRenderContentInitialPosition = value || !this._visualPosition\r\n }\r\n openingHandled() {\r\n var shouldRestorePosition = this._props.restorePosition;\r\n this.restorePositionOnNextRender(shouldRestorePosition)\r\n }\r\n updatePosition(positionProp) {\r\n this._props.position = positionProp;\r\n this._position = this._normalizePosition(positionProp);\r\n this.updateVisualContainer()\r\n }\r\n updateContainer() {\r\n var containerProp = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.container;\r\n this._props.container = containerProp;\r\n this._$markupContainer = containerProp ? $(containerProp) : swatch.getSwatchContainer(this._$root);\r\n this.updateVisualContainer(this._props.visualContainer)\r\n }\r\n updateVisualContainer() {\r\n var visualContainer = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.visualContainer;\r\n this._props.visualContainer = visualContainer;\r\n this._$visualContainer = this._getVisualContainer()\r\n }\r\n detectVisualPositionChange(event) {\r\n this._updateVisualPositionValue();\r\n this._raisePositionedEvents(event)\r\n }\r\n positionContent() {\r\n if (this._shouldRenderContentInitialPosition) {\r\n this._renderContentInitialPosition()\r\n } else {\r\n move(this._$content, this._visualPosition);\r\n this.detectVisualPositionChange()\r\n }\r\n }\r\n positionWrapper() {\r\n if (this._$visualContainer) {\r\n positionUtils.setup(this._$wrapper, {\r\n my: \"top left\",\r\n at: \"top left\",\r\n of: this._$visualContainer\r\n })\r\n }\r\n }\r\n styleWrapperPosition() {\r\n var useFixed = isWindow(this.$visualContainer.get(0)) || this._props._fixWrapperPosition;\r\n var positionStyle = useFixed ? \"fixed\" : \"absolute\";\r\n this._$wrapper.css(\"position\", positionStyle)\r\n }\r\n _updateVisualPositionValue() {\r\n this._previousVisualPosition = this._visualPosition;\r\n this._visualPosition = locate(this._$content)\r\n }\r\n _renderContentInitialPosition() {\r\n this._renderBoundaryOffset();\r\n resetPosition(this._$content);\r\n var wrapperOverflow = this._$wrapper.css(\"overflow\");\r\n this._$wrapper.css(\"overflow\", \"hidden\");\r\n if (!this._props._skipContentPositioning) {\r\n var resultPosition = positionUtils.setup(this._$content, this._position);\r\n this._initialPosition = resultPosition\r\n }\r\n this._$wrapper.css(\"overflow\", wrapperOverflow);\r\n this.detectVisualPositionChange()\r\n }\r\n _raisePositionedEvents(event) {\r\n var previousPosition = this._previousVisualPosition;\r\n var newPosition = this._visualPosition;\r\n var isVisualPositionChanged = (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.top) !== newPosition.top || (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.left) !== newPosition.left;\r\n if (isVisualPositionChanged) {\r\n this._props.onVisualPositionChanged({\r\n previousPosition: previousPosition,\r\n position: newPosition,\r\n event: event\r\n })\r\n }\r\n this._props.onPositioned({\r\n position: this._initialPosition\r\n })\r\n }\r\n _renderBoundaryOffset() {\r\n var _a;\r\n var boundaryOffset = null !== (_a = this._position) && void 0 !== _a ? _a : {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n this._$content.css(\"margin\", \"\".concat(boundaryOffset.v, \"px \").concat(boundaryOffset.h, \"px\"))\r\n }\r\n _getVisualContainer() {\r\n var _a, _b;\r\n var containerProp = this._props.container;\r\n var visualContainerProp = this._props.visualContainer;\r\n var positionOf = isEvent(null === (_a = this._props.position) || void 0 === _a ? void 0 : _a.of) ? this._props.position.of.target : null === (_b = this._props.position) || void 0 === _b ? void 0 : _b.of;\r\n if (visualContainerProp) {\r\n return $(visualContainerProp)\r\n }\r\n if (containerProp) {\r\n return $(containerProp)\r\n }\r\n if (positionOf) {\r\n return $(positionOf)\r\n }\r\n return $(window)\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n if (isDefined(positionProp)) {\r\n return extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n }\r\n return defaultPositionConfig\r\n }\r\n _positionToObject(position) {\r\n if (isString(position)) {\r\n return extend({}, OVERLAY_POSITION_ALIASES[position])\r\n }\r\n return position\r\n }\r\n}\r\nexport {\r\n OVERLAY_POSITION_ALIASES,\r\n OverlayPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/overlay/m_z_index.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined\r\n} from \"../../../core/utils/common\";\r\nvar baseZIndex = 1500;\r\nvar zIndexStack = [];\r\nexport var base = ZIndex => {\r\n baseZIndex = ensureDefined(ZIndex, baseZIndex);\r\n return baseZIndex\r\n};\r\nexport var create = function() {\r\n var baseIndex = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : baseZIndex;\r\n var {\r\n length: length\r\n } = zIndexStack;\r\n var index = (length ? zIndexStack[length - 1] : baseIndex) + 1;\r\n zIndexStack.push(index);\r\n return index\r\n};\r\nexport var remove = zIndex => {\r\n var position = zIndexStack.indexOf(zIndex);\r\n if (position >= 0) {\r\n zIndexStack.splice(position, 1)\r\n }\r\n};\r\nexport var isLastZIndexInStack = zIndex => zIndexStack.length && zIndexStack[zIndexStack.length - 1] === zIndex;\r\nexport var clearStack = () => {\r\n zIndexStack = []\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/overlay/m_overlay.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport errors from \"../../../core/errors\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../../core/templates/empty_template\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n contains,\r\n resetActiveElement\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../../core/utils/ready_callbacks\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n isPromise,\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n changeCallback\r\n} from \"../../../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n move as dragEventMove\r\n} from \"../../../events/drag\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n keyboard\r\n} from \"../../../events/short\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n triggerHidingEvent,\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../../events/visibility_change\";\r\nimport {\r\n hideCallback as hideTopOverlayCallback\r\n} from \"../../../mobile/hide_callback\";\r\nimport {\r\n tabbable\r\n} from \"../../../ui/widget/selectors\";\r\nimport uiErrors from \"../../../ui/widget/ui.errors\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport {\r\n OverlayPositionController\r\n} from \"./m_overlay_position_controller\";\r\nimport * as zIndexPool from \"./m_z_index\";\r\nvar ready = readyCallbacks.add;\r\nvar window = getWindow();\r\nvar viewPortChanged = changeCallback;\r\nvar OVERLAY_CLASS = \"dx-overlay\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar OVERLAY_SHADER_CLASS = \"dx-overlay-shader\";\r\nvar INNER_OVERLAY_CLASS = \"dx-inner-overlay\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar RTL_DIRECTION_CLASS = \"dx-rtl\";\r\nvar OVERLAY_STACK = [];\r\nvar PREVENT_SAFARI_SCROLLING_CLASS = \"dx-prevent-safari-scrolling\";\r\nvar TAB_KEY = \"tab\";\r\nready(() => {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, e => {\r\n for (var i = OVERLAY_STACK.length - 1; i >= 0; i--) {\r\n if (!OVERLAY_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n })\r\n});\r\nvar Overlay = Widget.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n escape() {\r\n this.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n activeStateEnabled: false,\r\n visible: false,\r\n deferRendering: true,\r\n shading: true,\r\n shadingColor: \"\",\r\n wrapperAttr: {},\r\n width: \"80vw\",\r\n minWidth: null,\r\n maxWidth: null,\r\n height: \"80vh\",\r\n minHeight: null,\r\n maxHeight: null,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n scale: .55\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n },\r\n to: {\r\n opacity: 0,\r\n scale: .55\r\n }\r\n }\r\n },\r\n closeOnOutsideClick: false,\r\n hideOnOutsideClick: false,\r\n copyRootClassesToWrapper: false,\r\n _ignoreCopyRootClassesToWrapperDeprecation: false,\r\n _ignoreElementAttrDeprecation: false,\r\n _ignorePreventScrollEventsDeprecation: false,\r\n onShowing: null,\r\n onShown: null,\r\n onHiding: null,\r\n onHidden: null,\r\n contentTemplate: \"content\",\r\n innerOverlay: false,\r\n restorePosition: true,\r\n container: void 0,\r\n visualContainer: void 0,\r\n hideTopOverlayHandler: () => {\r\n this.hide()\r\n },\r\n hideOnParentScroll: false,\r\n preventScrollEvents: true,\r\n onPositioned: null,\r\n propagateOutsideClick: false,\r\n ignoreChildEvents: true,\r\n _checkParentVisibility: true,\r\n _hideOnParentScrollTarget: void 0,\r\n _fixWrapperPosition: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n width: null,\r\n height: null,\r\n animation: null,\r\n _checkParentVisibility: false\r\n }\r\n }])\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n animation: true\r\n })\r\n },\r\n $wrapper() {\r\n return this._$wrapper\r\n },\r\n _eventBindingTarget() {\r\n return this._$content\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.1\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n },\r\n ctor(element, options) {\r\n this.callBase(element, options);\r\n if (options) {\r\n if (options.copyRootClassesToWrapper && !options._ignoreCopyRootClassesToWrapperDeprecation) {\r\n this._logDeprecatedOptionWarning(\"copyRootClassesToWrapper\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n if (options.elementAttr && !options._ignoreElementAttrDeprecation) {\r\n this._logDeprecatedOptionWarning(\"elementAttr\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n if (\"preventScrollEvents\" in options && !options._ignorePreventScrollEventsDeprecation) {\r\n this._logDeprecatedPreventScrollEventsInfo()\r\n }\r\n }\r\n },\r\n _logDeprecatedPreventScrollEventsInfo() {\r\n this._logDeprecatedOptionWarning(\"preventScrollEvents\", {\r\n since: \"23.1\",\r\n message: \"If you enable this option, end-users may experience scrolling issues.\"\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initActions();\r\n this._initHideOnOutsideClickHandler();\r\n this._initTabTerminatorHandler();\r\n this._customWrapperClass = null;\r\n this._$wrapper = $(\"
\").addClass(OVERLAY_WRAPPER_CLASS);\r\n this._$content = $(\"
\").addClass(OVERLAY_CONTENT_CLASS);\r\n this._initInnerOverlayClass();\r\n var $element = this.$element();\r\n if (this.option(\"copyRootClassesToWrapper\")) {\r\n this._$wrapper.addClass($element.attr(\"class\"))\r\n }\r\n $element.addClass(OVERLAY_CLASS);\r\n this._$wrapper.attr(\"data-bind\", \"dxControlsDescendantBindings: true\");\r\n this._toggleViewPortSubscription(true);\r\n this._initHideTopOverlayHandler(this.option(\"hideTopOverlayHandler\"));\r\n this._parentsScrollSubscriptionInfo = {\r\n handler: e => {\r\n this._hideOnParentsScrollHandler(e)\r\n }\r\n };\r\n this.warnPositionAsFunction()\r\n },\r\n warnPositionAsFunction() {\r\n if (isFunction(this.option(\"position\"))) {\r\n errors.log(\"W0018\")\r\n }\r\n },\r\n _initInnerOverlayClass() {\r\n this._$content.toggleClass(INNER_OVERLAY_CLASS, this.option(\"innerOverlay\"))\r\n },\r\n _initHideTopOverlayHandler(handler) {\r\n this._hideTopOverlayHandler = handler\r\n },\r\n _getActionsList: () => [\"onShowing\", \"onShown\", \"onHiding\", \"onHidden\", \"onPositioned\", \"onVisualPositionChanged\"],\r\n _initActions() {\r\n this._actions = {};\r\n var actions = this._getActionsList();\r\n each(actions, (_, action) => {\r\n this._actions[action] = this._createActionByOption(action, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }) || noop\r\n })\r\n },\r\n _initHideOnOutsideClickHandler() {\r\n var _this = this;\r\n this._proxiedDocumentDownHandler = function() {\r\n return _this._documentDownHandler(...arguments)\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderWrapperAttributes();\r\n this._initPositionController()\r\n },\r\n _documentDownHandler(e) {\r\n if (this._showAnimationProcessing) {\r\n this._stopAnimation()\r\n }\r\n var isAttachedTarget = $(window.document).is(e.target) || contains(window.document, e.target);\r\n var isInnerOverlay = $(e.target).closest(\".\".concat(INNER_OVERLAY_CLASS)).length;\r\n var outsideClick = isAttachedTarget && !isInnerOverlay && !(this._$content.is(e.target) || contains(this._$content.get(0), e.target));\r\n if (outsideClick && this._shouldHideOnOutsideClick(e)) {\r\n this._outsideClickHandler(e)\r\n }\r\n return this.option(\"propagateOutsideClick\")\r\n },\r\n _shouldHideOnOutsideClick(e) {\r\n var {\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n }\r\n return hideOnOutsideClick\r\n },\r\n _outsideClickHandler(e) {\r\n if (this.option(\"shading\")) {\r\n e.preventDefault()\r\n }\r\n this.hide()\r\n },\r\n _getAnonymousTemplateName: () => ANONYMOUS_TEMPLATE_NAME,\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _isTopOverlay() {\r\n var overlayStack = this._overlayStack();\r\n for (var i = overlayStack.length - 1; i >= 0; i--) {\r\n var tabbableElements = overlayStack[i]._findTabbableBounds();\r\n if (tabbableElements.first || tabbableElements.last) {\r\n return overlayStack[i] === this\r\n }\r\n }\r\n return false\r\n },\r\n _overlayStack: () => OVERLAY_STACK,\r\n _zIndexInitValue: () => Overlay.baseZIndex(),\r\n _toggleViewPortSubscription(toggle) {\r\n var _this2 = this;\r\n viewPortChanged.remove(this._viewPortChangeHandle);\r\n if (toggle) {\r\n this._viewPortChangeHandle = function() {\r\n _this2._viewPortChangeHandler(...arguments)\r\n };\r\n viewPortChanged.add(this._viewPortChangeHandle)\r\n }\r\n },\r\n _viewPortChangeHandler() {\r\n this._positionController.updateContainer(this.option(\"container\"));\r\n this._refresh()\r\n },\r\n _renderWrapperAttributes() {\r\n var {\r\n wrapperAttr: wrapperAttr\r\n } = this.option();\r\n var attributes = extend({}, wrapperAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$wrapper().attr(attributes).removeClass(this._customWrapperClass).addClass(classNames);\r\n this._customWrapperClass = classNames\r\n },\r\n _renderVisibilityAnimate(visible) {\r\n this._stopAnimation();\r\n return visible ? this._show() : this._hide()\r\n },\r\n _getAnimationConfig() {\r\n return this._getOptionValue(\"animation\", this)\r\n },\r\n _toggleBodyScroll: noop,\r\n _animateShowing() {\r\n var _this3 = this;\r\n var _a, _b, _c;\r\n var animation = null !== (_a = this._getAnimationConfig()) && void 0 !== _a ? _a : {};\r\n var showAnimation = this._normalizeAnimation(animation.show, \"to\");\r\n var startShowAnimation = null !== (_b = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.start) && void 0 !== _b ? _b : noop;\r\n var completeShowAnimation = null !== (_c = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.complete) && void 0 !== _c ? _c : noop;\r\n this._animate(showAnimation, (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n if (_this3.option(\"focusStateEnabled\")) {\r\n eventsEngine.trigger(_this3._focusTarget(), \"focus\")\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n completeShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = false;\r\n _this3._isHidden = false;\r\n _this3._actions.onShown();\r\n _this3._toggleSafariScrolling();\r\n _this3._showingDeferred.resolve()\r\n }), (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n startShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = true\r\n }))\r\n },\r\n _processShowingHidingCancel(cancelArg, applyFunction, cancelFunction) {\r\n if (isPromise(cancelArg)) {\r\n cancelArg.then(shouldCancel => {\r\n if (shouldCancel) {\r\n cancelFunction()\r\n } else {\r\n applyFunction()\r\n }\r\n }).catch(() => applyFunction())\r\n } else {\r\n cancelArg ? cancelFunction() : applyFunction()\r\n }\r\n },\r\n _show() {\r\n this._showingDeferred = Deferred();\r\n this._parentHidden = this._isParentHidden();\r\n this._showingDeferred.done(() => {\r\n delete this._parentHidden\r\n });\r\n if (this._parentHidden) {\r\n this._isHidden = true;\r\n return this._showingDeferred.resolve()\r\n }\r\n if (this._currentVisible) {\r\n return Deferred().resolve().promise()\r\n }\r\n this._currentVisible = true;\r\n if (this._isHidingActionCanceled) {\r\n delete this._isHidingActionCanceled;\r\n this._showingDeferred.reject()\r\n } else {\r\n var show = () => {\r\n this._stopAnimation();\r\n this._toggleBodyScroll(this.option(\"enableBodyScroll\"));\r\n this._toggleVisibility(true);\r\n this._$content.css(\"visibility\", \"hidden\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, false);\r\n this._updateZIndexStackPosition(true);\r\n this._positionController.openingHandled();\r\n this._renderContent();\r\n var showingArgs = {\r\n cancel: false\r\n };\r\n this._actions.onShowing(showingArgs);\r\n this._processShowingHidingCancel(showingArgs.cancel, () => {\r\n this._$content.css(\"visibility\", \"\");\r\n this._renderVisibility(true);\r\n this._animateShowing()\r\n }, () => {\r\n this._toggleVisibility(false);\r\n this._$content.css(\"visibility\", \"\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, true);\r\n this._isShowingActionCanceled = true;\r\n this._moveFromContainer();\r\n this._toggleBodyScroll(true);\r\n this.option(\"visible\", false);\r\n this._showingDeferred.resolve()\r\n })\r\n };\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._stopShowTimer();\r\n this._asyncShowTimeout = setTimeout(show)\r\n } else {\r\n show()\r\n }\r\n }\r\n return this._showingDeferred.promise()\r\n },\r\n _normalizeAnimation(showHideConfig, direction) {\r\n if (showHideConfig) {\r\n showHideConfig = extend({\r\n type: \"slide\",\r\n skipElementInitialStyles: true\r\n }, showHideConfig);\r\n if (isObject(showHideConfig[direction])) {\r\n extend(showHideConfig[direction], {\r\n position: this._positionController.position\r\n })\r\n }\r\n }\r\n return showHideConfig\r\n },\r\n _animateHiding() {\r\n var _this4 = this;\r\n var _a, _b, _c;\r\n var animation = null !== (_a = this._getAnimationConfig()) && void 0 !== _a ? _a : {};\r\n var hideAnimation = this._normalizeAnimation(animation.hide, \"from\");\r\n var startHideAnimation = null !== (_b = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.start) && void 0 !== _b ? _b : noop;\r\n var completeHideAnimation = null !== (_c = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.complete) && void 0 !== _c ? _c : noop;\r\n this._animate(hideAnimation, (function() {\r\n var _a;\r\n _this4._$content.css(\"pointerEvents\", \"\");\r\n _this4._renderVisibility(false);\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n completeHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = false;\r\n null === (_a = _this4._actions) || void 0 === _a ? void 0 : _a.onHidden();\r\n _this4._hidingDeferred.resolve()\r\n }), (function() {\r\n _this4._$content.css(\"pointerEvents\", \"none\");\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n startHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = true\r\n }))\r\n },\r\n _hide() {\r\n if (!this._currentVisible) {\r\n return Deferred().resolve().promise()\r\n }\r\n this._currentVisible = false;\r\n this._hidingDeferred = Deferred();\r\n var hidingArgs = {\r\n cancel: false\r\n };\r\n if (this._isShowingActionCanceled) {\r\n delete this._isShowingActionCanceled;\r\n this._hidingDeferred.reject()\r\n } else {\r\n this._actions.onHiding(hidingArgs);\r\n this._toggleSafariScrolling();\r\n this._toggleBodyScroll(true);\r\n this._processShowingHidingCancel(hidingArgs.cancel, () => {\r\n this._forceFocusLost();\r\n this._toggleShading(false);\r\n this._toggleSubscriptions(false);\r\n this._stopShowTimer();\r\n this._animateHiding()\r\n }, () => {\r\n this._isHidingActionCanceled = true;\r\n this._toggleBodyScroll(this.option(\"enableBodyScroll\"));\r\n this.option(\"visible\", true);\r\n this._hidingDeferred.resolve()\r\n })\r\n }\r\n return this._hidingDeferred.promise()\r\n },\r\n _forceFocusLost() {\r\n var activeElement = domAdapter.getActiveElement();\r\n var shouldResetActiveElement = !!this._$content.find(activeElement).length;\r\n if (shouldResetActiveElement) {\r\n resetActiveElement()\r\n }\r\n },\r\n _animate(animation, completeCallback, startCallback) {\r\n if (animation) {\r\n startCallback = startCallback || animation.start || noop;\r\n fx.animate(this._$content, extend({}, animation, {\r\n start: startCallback,\r\n complete: completeCallback\r\n }))\r\n } else {\r\n completeCallback()\r\n }\r\n },\r\n _stopAnimation() {\r\n fx.stop(this._$content, true)\r\n },\r\n _renderVisibility(visible) {\r\n if (visible && this._isParentHidden()) {\r\n return\r\n }\r\n this._currentVisible = visible;\r\n this._stopAnimation();\r\n if (!visible) {\r\n triggerHidingEvent(this._$content)\r\n }\r\n if (visible) {\r\n this._checkContainerExists();\r\n this._moveToContainer();\r\n this._renderGeometry();\r\n triggerShownEvent(this._$content);\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this._toggleVisibility(visible);\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._updateZIndexStackPosition(visible);\r\n this._moveFromContainer()\r\n }\r\n this._toggleShading(visible);\r\n this._toggleSubscriptions(visible)\r\n },\r\n _updateZIndexStackPosition(pushToStack) {\r\n var overlayStack = this._overlayStack();\r\n var index = overlayStack.indexOf(this);\r\n if (pushToStack) {\r\n if (-1 === index) {\r\n this._zIndex = zIndexPool.create(this._zIndexInitValue());\r\n overlayStack.push(this)\r\n }\r\n this._$wrapper.css(\"zIndex\", this._zIndex);\r\n this._$content.css(\"zIndex\", this._zIndex)\r\n } else if (-1 !== index) {\r\n overlayStack.splice(index, 1);\r\n zIndexPool.remove(this._zIndex)\r\n }\r\n },\r\n _toggleShading(visible) {\r\n this._$wrapper.toggleClass(OVERLAY_SHADER_CLASS, visible && this.option(\"shading\"));\r\n this._$wrapper.css(\"backgroundColor\", this.option(\"shading\") ? this.option(\"shadingColor\") : \"\");\r\n this._toggleTabTerminator(visible && this.option(\"shading\"))\r\n },\r\n _initTabTerminatorHandler() {\r\n var _this5 = this;\r\n this._proxiedTabTerminatorHandler = function() {\r\n _this5._tabKeyHandler(...arguments)\r\n }\r\n },\r\n _toggleTabTerminator(enabled) {\r\n var eventName = addNamespace(\"keydown\", this.NAME);\r\n if (enabled) {\r\n eventsEngine.on(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n } else {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n }\r\n },\r\n _findTabbableBounds() {\r\n var $elements = this._$wrapper.find(\"*\");\r\n var elementsCount = $elements.length - 1;\r\n var result = {\r\n first: null,\r\n last: null\r\n };\r\n for (var i = 0; i <= elementsCount; i++) {\r\n if (!result.first && $elements.eq(i).is(tabbable)) {\r\n result.first = $elements.eq(i)\r\n }\r\n if (!result.last && $elements.eq(elementsCount - i).is(tabbable)) {\r\n result.last = $elements.eq(elementsCount - i)\r\n }\r\n if (result.first && result.last) {\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _tabKeyHandler(e) {\r\n if (normalizeKeyName(e) !== TAB_KEY || !this._isTopOverlay()) {\r\n return\r\n }\r\n var tabbableElements = this._findTabbableBounds();\r\n var $firstTabbable = tabbableElements.first;\r\n var $lastTabbable = tabbableElements.last;\r\n var isTabOnLast = !e.shiftKey && e.target === $lastTabbable.get(0);\r\n var isShiftTabOnFirst = e.shiftKey && e.target === $firstTabbable.get(0);\r\n var isEmptyTabList = 0 === tabbableElements.length;\r\n var isOutsideTarget = !contains(this._$wrapper.get(0), e.target);\r\n if (isTabOnLast || isShiftTabOnFirst || isEmptyTabList || isOutsideTarget) {\r\n e.preventDefault();\r\n var $focusElement = e.shiftKey ? $lastTabbable : $firstTabbable;\r\n eventsEngine.trigger($focusElement, \"focusin\");\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n },\r\n _toggleSubscriptions(enabled) {\r\n if (hasWindow()) {\r\n this._toggleHideTopOverlayCallback(enabled);\r\n this._toggleHideOnParentsScrollSubscription(enabled)\r\n }\r\n },\r\n _toggleHideTopOverlayCallback(subscribe) {\r\n if (!this._hideTopOverlayHandler) {\r\n return\r\n }\r\n if (subscribe) {\r\n hideTopOverlayCallback.add(this._hideTopOverlayHandler)\r\n } else {\r\n hideTopOverlayCallback.remove(this._hideTopOverlayHandler)\r\n }\r\n },\r\n _toggleHideOnParentsScrollSubscription(needSubscribe) {\r\n var _a;\r\n var scrollEvent = addNamespace(\"scroll\", this.NAME);\r\n var {\r\n prevTargets: prevTargets,\r\n handler: handler\r\n } = null !== (_a = this._parentsScrollSubscriptionInfo) && void 0 !== _a ? _a : {};\r\n eventsEngine.off(prevTargets, scrollEvent, handler);\r\n var hideOnScroll = this.option(\"hideOnParentScroll\");\r\n if (needSubscribe && hideOnScroll) {\r\n var $parents = this._getHideOnParentScrollTarget().parents();\r\n if (\"desktop\" === devices.real().deviceType) {\r\n $parents = $parents.add(window)\r\n }\r\n eventsEngine.on($parents, scrollEvent, handler);\r\n this._parentsScrollSubscriptionInfo.prevTargets = $parents\r\n }\r\n },\r\n _hideOnParentsScrollHandler(e) {\r\n var hideHandled = false;\r\n var hideOnScroll = this.option(\"hideOnParentScroll\");\r\n if (isFunction(hideOnScroll)) {\r\n hideHandled = hideOnScroll(e)\r\n }\r\n if (!hideHandled && !this._showAnimationProcessing) {\r\n this.hide()\r\n }\r\n },\r\n _getHideOnParentScrollTarget() {\r\n var $hideOnParentScrollTarget = $(this.option(\"_hideOnParentScrollTarget\"));\r\n if ($hideOnParentScrollTarget.length) {\r\n return $hideOnParentScrollTarget\r\n }\r\n return this._$wrapper\r\n },\r\n _render() {\r\n this.callBase();\r\n this._appendContentToElement();\r\n this._renderVisibilityAnimate(this.option(\"visible\"))\r\n },\r\n _appendContentToElement() {\r\n if (!this._$content.parent().is(this.$element())) {\r\n this._$content.appendTo(this.$element())\r\n }\r\n },\r\n _renderContent() {\r\n var shouldDeferRendering = !this._currentVisible && this.option(\"deferRendering\");\r\n var isParentHidden = this.option(\"visible\") && this._isParentHidden();\r\n if (isParentHidden) {\r\n this._isHidden = true;\r\n return\r\n }\r\n if (this._contentAlreadyRendered || shouldDeferRendering) {\r\n return\r\n }\r\n this._contentAlreadyRendered = true;\r\n this._appendContentToElement();\r\n this.callBase()\r\n },\r\n _isParentHidden() {\r\n if (!this.option(\"_checkParentVisibility\")) {\r\n return false\r\n }\r\n if (void 0 !== this._parentHidden) {\r\n return this._parentHidden\r\n }\r\n var $parent = this.$element().parent();\r\n if ($parent.is(\":visible\")) {\r\n return false\r\n }\r\n var isHidden = false;\r\n $parent.add($parent.parents()).each((index, element) => {\r\n var $element = $(element);\r\n if (\"none\" === $element.css(\"display\")) {\r\n isHidden = true;\r\n return false\r\n }\r\n });\r\n return isHidden || !domAdapter.getBody().contains($parent.get(0))\r\n },\r\n _renderContentImpl() {\r\n var whenContentRendered = Deferred();\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n var transclude = this._templateManager.anonymousTemplateName === contentTemplateOption;\r\n contentTemplate && contentTemplate.render({\r\n container: getPublicElement(this.$content()),\r\n noModel: true,\r\n transclude: transclude,\r\n onRendered: () => {\r\n whenContentRendered.resolve();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._dimensionChanged()\r\n }\r\n }\r\n });\r\n this._toggleWrapperScrollEventsSubscription(this.option(\"preventScrollEvents\"));\r\n whenContentRendered.done(() => {\r\n if (this.option(\"visible\")) {\r\n this._moveToContainer()\r\n }\r\n });\r\n return whenContentRendered.promise()\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n container: container,\r\n visualContainer: visualContainer,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n restorePosition: restorePosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n } = this.option();\r\n return {\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: this.$element(),\r\n $content: this._$content,\r\n $wrapper: this._$wrapper,\r\n onPositioned: this._actions.onPositioned,\r\n onVisualPositionChanged: this._actions.onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n }\r\n },\r\n _initPositionController() {\r\n this._positionController = new OverlayPositionController(this._getPositionControllerConfig())\r\n },\r\n _toggleWrapperScrollEventsSubscription(enabled) {\r\n var eventName = addNamespace(dragEventMove, this.NAME);\r\n eventsEngine.off(this._$wrapper, eventName);\r\n if (enabled) {\r\n eventsEngine.on(this._$wrapper, eventName, {\r\n validate: () => true,\r\n getDirection: () => \"both\",\r\n _toggleGestureCover(toggle) {\r\n if (!toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n }\r\n },\r\n _clearSelection: noop,\r\n isNative: true\r\n }, e => {\r\n var {\r\n originalEvent: originalEvent\r\n } = e.originalEvent;\r\n var {\r\n type: type\r\n } = originalEvent || {};\r\n var isWheel = \"wheel\" === type;\r\n var isMouseMove = \"mousemove\" === type;\r\n var isScrollByWheel = isWheel && !isCommandKeyPressed(e);\r\n e._cancelPreventDefault = true;\r\n if (originalEvent && false !== e.cancelable && (!isMouseMove && !isWheel || isScrollByWheel)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _moveFromContainer() {\r\n this._$content.appendTo(this.$element());\r\n this._$wrapper.detach()\r\n },\r\n _checkContainerExists() {\r\n var $wrapperContainer = this._positionController.$container;\r\n if (void 0 === $wrapperContainer) {\r\n return\r\n }\r\n var containerExists = $wrapperContainer.length > 0;\r\n if (!containerExists) {\r\n uiErrors.log(\"W1021\", this.NAME)\r\n }\r\n },\r\n _moveToContainer() {\r\n var $wrapperContainer = this._positionController.$container;\r\n this._$wrapper.appendTo($wrapperContainer);\r\n this._$content.appendTo(this._$wrapper)\r\n },\r\n _renderGeometry(options) {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n this._stopAnimation();\r\n this._renderGeometryImpl()\r\n }\r\n },\r\n _renderGeometryImpl() {\r\n this._positionController.updatePosition(this._getOptionValue(\"position\"));\r\n this._renderWrapper();\r\n this._renderDimensions();\r\n this._renderPosition()\r\n },\r\n _renderPosition() {\r\n this._positionController.positionContent()\r\n },\r\n _isAllWindowCovered() {\r\n return isWindow(this._positionController.$visualContainer.get(0)) && this.option(\"shading\")\r\n },\r\n _toggleSafariScrolling() {\r\n var visible = this.option(\"visible\");\r\n var $body = $(domAdapter.getBody());\r\n var isIosSafari = \"ios\" === devices.real().platform && browser.safari;\r\n var isAllWindowCovered = this._isAllWindowCovered();\r\n var isScrollingPrevented = $body.hasClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n var shouldPreventScrolling = !isScrollingPrevented && visible && isAllWindowCovered;\r\n var shouldEnableScrolling = isScrollingPrevented && (!visible || !isAllWindowCovered || this._disposed);\r\n if (isIosSafari) {\r\n if (shouldEnableScrolling) {\r\n $body.removeClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n window.scrollTo(0, this._cachedBodyScrollTop);\r\n this._cachedBodyScrollTop = void 0\r\n } else if (shouldPreventScrolling) {\r\n this._cachedBodyScrollTop = window.pageYOffset;\r\n $body.addClass(PREVENT_SAFARI_SCROLLING_CLASS)\r\n }\r\n }\r\n },\r\n _renderWrapper() {\r\n this._positionController.styleWrapperPosition();\r\n this._renderWrapperDimensions();\r\n this._positionController.positionWrapper()\r\n },\r\n _renderWrapperDimensions() {\r\n var {\r\n $visualContainer: $visualContainer\r\n } = this._positionController;\r\n var documentElement = domAdapter.getDocumentElement();\r\n var isVisualContainerWindow = isWindow($visualContainer.get(0));\r\n var wrapperWidth = isVisualContainerWindow ? documentElement.clientWidth : getOuterWidth($visualContainer);\r\n var wrapperHeight = isVisualContainerWindow ? window.innerHeight : getOuterHeight($visualContainer);\r\n this._$wrapper.css({\r\n width: wrapperWidth,\r\n height: wrapperHeight\r\n })\r\n },\r\n _renderDimensions() {\r\n var content = this._$content.get(0);\r\n this._$content.css({\r\n minWidth: this._getOptionValue(\"minWidth\", content),\r\n maxWidth: this._getOptionValue(\"maxWidth\", content),\r\n minHeight: this._getOptionValue(\"minHeight\", content),\r\n maxHeight: this._getOptionValue(\"maxHeight\", content),\r\n width: this._getOptionValue(\"width\", content),\r\n height: this._getOptionValue(\"height\", content)\r\n })\r\n },\r\n _focusTarget() {\r\n return this._$content\r\n },\r\n _attachKeyboardEvents() {\r\n this._keyboardListenerId = keyboard.on(this._$content, null, opts => this._keyboardHandler(opts))\r\n },\r\n _keyboardHandler(options) {\r\n var e = options.originalEvent;\r\n var $target = $(e.target);\r\n if ($target.is(this._$content) || !this.option(\"ignoreChildEvents\")) {\r\n this.callBase(...arguments)\r\n }\r\n },\r\n _isVisible() {\r\n return this.option(\"visible\")\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n if (this.option(\"visible\")) {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n } else {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n },\r\n _dimensionChanged() {\r\n this._renderGeometry()\r\n },\r\n _clean() {\r\n var options = this.option();\r\n if (!this._contentAlreadyRendered && !options.isRenovated) {\r\n this.$content().empty()\r\n }\r\n this._renderVisibility(false);\r\n this._stopShowTimer();\r\n this._cleanFocusState()\r\n },\r\n _stopShowTimer() {\r\n if (this._asyncShowTimeout) {\r\n clearTimeout(this._asyncShowTimeout)\r\n }\r\n this._asyncShowTimeout = null\r\n },\r\n _dispose() {\r\n fx.stop(this._$content, false);\r\n clearTimeout(this._deferShowTimer);\r\n this._toggleViewPortSubscription(false);\r\n this._toggleSubscriptions(false);\r\n this._updateZIndexStackPosition(false);\r\n this._toggleTabTerminator(false);\r\n this._actions = null;\r\n this._parentsScrollSubscriptionInfo = null;\r\n this.callBase();\r\n this._toggleSafariScrolling();\r\n this.option(\"visible\") && zIndexPool.remove(this._zIndex);\r\n this._$wrapper.remove();\r\n this._$content.remove()\r\n },\r\n _toggleRTLDirection(rtl) {\r\n this._$content.toggleClass(RTL_DIRECTION_CLASS, rtl)\r\n },\r\n _optionChanged(args) {\r\n var {\r\n value: value,\r\n name: name\r\n } = args;\r\n if (this._getActionsList().includes(name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (name) {\r\n case \"animation\":\r\n break;\r\n case \"shading\":\r\n this._toggleShading(this.option(\"visible\"));\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"shadingColor\":\r\n this._toggleShading(this.option(\"visible\"));\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this._renderGeometry();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n this._renderGeometry();\r\n break;\r\n case \"position\":\r\n this._positionController.updatePosition(this.option(\"position\"));\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visible\":\r\n this._renderVisibilityAnimate(value).done(() => {\r\n var _a;\r\n return null === (_a = this._animateDeferred) || void 0 === _a ? void 0 : _a.resolveWith(this)\r\n }).fail(() => {\r\n var _a;\r\n return null === (_a = this._animateDeferred) || void 0 === _a ? void 0 : _a.reject()\r\n });\r\n break;\r\n case \"container\":\r\n this._positionController.updateContainer(value);\r\n this._invalidate();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visualContainer\":\r\n this._positionController.updateVisualContainer(value);\r\n this._renderWrapper();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"innerOverlay\":\r\n this._initInnerOverlayClass();\r\n break;\r\n case \"deferRendering\":\r\n case \"contentTemplate\":\r\n this._contentAlreadyRendered = false;\r\n this._clean();\r\n this._invalidate();\r\n break;\r\n case \"hideTopOverlayHandler\":\r\n this._toggleHideTopOverlayCallback(false);\r\n this._initHideTopOverlayHandler(value);\r\n this._toggleHideTopOverlayCallback(this.option(\"visible\"));\r\n break;\r\n case \"hideOnParentScroll\":\r\n case \"_hideOnParentScrollTarget\":\r\n this._toggleHideOnParentsScrollSubscription(this.option(\"visible\"));\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n case \"propagateOutsideClick\":\r\n break;\r\n case \"rtlEnabled\":\r\n this._contentAlreadyRendered = false;\r\n this.callBase(args);\r\n break;\r\n case \"_fixWrapperPosition\":\r\n this._positionController.fixWrapperPosition = value;\r\n break;\r\n case \"wrapperAttr\":\r\n this._renderWrapperAttributes();\r\n break;\r\n case \"restorePosition\":\r\n this._positionController.restorePosition = value;\r\n break;\r\n case \"preventScrollEvents\":\r\n this._logDeprecatedPreventScrollEventsInfo();\r\n this._toggleWrapperScrollEventsSubscription(value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle(showing) {\r\n showing = void 0 === showing ? !this.option(\"visible\") : showing;\r\n var result = Deferred();\r\n if (showing === this.option(\"visible\")) {\r\n return result.resolveWith(this, [showing]).promise()\r\n }\r\n var animateDeferred = Deferred();\r\n this._animateDeferred = animateDeferred;\r\n this.option(\"visible\", showing);\r\n animateDeferred.promise().done(() => {\r\n delete this._animateDeferred;\r\n result.resolveWith(this, [this.option(\"visible\")])\r\n }).fail(() => {\r\n delete this._animateDeferred;\r\n result.reject()\r\n });\r\n return result.promise()\r\n },\r\n $content() {\r\n return this._$content\r\n },\r\n show() {\r\n return this.toggle(true)\r\n },\r\n hide() {\r\n return this.toggle(false)\r\n },\r\n content() {\r\n return getPublicElement(this._$content)\r\n },\r\n repaint() {\r\n if (this._contentAlreadyRendered) {\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry({\r\n forceStopAnimation: true\r\n });\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this.callBase()\r\n }\r\n }\r\n});\r\nOverlay.baseZIndex = zIndex => zIndexPool.base(zIndex);\r\nregisterComponent(\"dxOverlay\", Overlay);\r\nexport default Overlay;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_load_panel.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport LoadIndicator from \"../../ui/load_indicator\";\r\nimport Overlay from \"../../ui/overlay/ui.overlay\";\r\nimport {\r\n isFluent,\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../ui/themes\";\r\nvar LOADPANEL_CLASS = \"dx-loadpanel\";\r\nvar LOADPANEL_WRAPPER_CLASS = \"dx-loadpanel-wrapper\";\r\nvar LOADPANEL_INDICATOR_CLASS = \"dx-loadpanel-indicator\";\r\nvar LOADPANEL_MESSAGE_CLASS = \"dx-loadpanel-message\";\r\nvar LOADPANEL_CONTENT_CLASS = \"dx-loadpanel-content\";\r\nvar LOADPANEL_CONTENT_WRAPPER_CLASS = \"dx-loadpanel-content-wrapper\";\r\nvar LOADPANEL_PANE_HIDDEN_CLASS = \"dx-loadpanel-pane-hidden\";\r\nvar LoadPanel = Overlay.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n escape: noop\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n message: messageLocalization.format(\"Loading\"),\r\n width: 222,\r\n height: 90,\r\n animation: null,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true,\r\n delay: 0,\r\n templatesRenderAsynchronously: false,\r\n hideTopOverlayHandler: null,\r\n focusStateEnabled: false,\r\n propagateOutsideClick: true,\r\n preventScrollEvents: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n shadingColor: \"transparent\"\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n message: \"\",\r\n width: 60,\r\n height: 60,\r\n maxHeight: 60,\r\n maxWidth: 60\r\n }\r\n }, {\r\n device: () => isFluent(),\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render() {\r\n this.callBase();\r\n this.$element().addClass(LOADPANEL_CLASS);\r\n this.$wrapper().addClass(LOADPANEL_WRAPPER_CLASS);\r\n this._setWrapperAria()\r\n },\r\n _setWrapperAria() {\r\n var {\r\n message: message\r\n } = this.option();\r\n var defaultLabel = isMaterialBased() ? message : null;\r\n var label = message ? defaultLabel : messageLocalization.format(\"Loading\");\r\n var aria = {\r\n role: \"alert\",\r\n label: label\r\n };\r\n this.setAria(aria, this.$wrapper())\r\n },\r\n _renderContentImpl() {\r\n this.callBase();\r\n this.$content().addClass(LOADPANEL_CONTENT_CLASS);\r\n this._$loadPanelContentWrapper = $(\"
\").addClass(LOADPANEL_CONTENT_WRAPPER_CLASS);\r\n this._$loadPanelContentWrapper.appendTo(this.$content());\r\n this._togglePaneVisible();\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage()\r\n },\r\n _show() {\r\n var delay = this.option(\"delay\");\r\n if (!delay) {\r\n return this.callBase()\r\n }\r\n var deferred = Deferred();\r\n var callBase = this.callBase.bind(this);\r\n this._clearShowTimeout();\r\n this._showTimeout = setTimeout(() => {\r\n callBase().done(() => {\r\n deferred.resolve()\r\n })\r\n }, delay);\r\n return deferred.promise()\r\n },\r\n _hide() {\r\n this._clearShowTimeout();\r\n return this.callBase()\r\n },\r\n _clearShowTimeout() {\r\n clearTimeout(this._showTimeout)\r\n },\r\n _renderMessage() {\r\n if (!this._$loadPanelContentWrapper) {\r\n return\r\n }\r\n var message = this.option(\"message\");\r\n if (!message) {\r\n return\r\n }\r\n var $message = $(\"
\").addClass(LOADPANEL_MESSAGE_CLASS).text(message);\r\n this._$loadPanelContentWrapper.append($message)\r\n },\r\n _renderLoadIndicator() {\r\n if (!this._$loadPanelContentWrapper || !this.option(\"showIndicator\")) {\r\n return\r\n }\r\n if (!this._$indicator) {\r\n this._$indicator = $(\"
\").addClass(LOADPANEL_INDICATOR_CLASS).appendTo(this._$loadPanelContentWrapper)\r\n }\r\n this._createComponent(this._$indicator, LoadIndicator, {\r\n indicatorSrc: this.option(\"indicatorSrc\")\r\n })\r\n },\r\n _cleanPreviousContent() {\r\n this.$content().find(\".\".concat(LOADPANEL_MESSAGE_CLASS)).remove();\r\n this.$content().find(\".\".concat(LOADPANEL_INDICATOR_CLASS)).remove();\r\n delete this._$indicator\r\n },\r\n _togglePaneVisible() {\r\n this.$content().toggleClass(LOADPANEL_PANE_HIDDEN_CLASS, !this.option(\"showPane\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"delay\":\r\n break;\r\n case \"message\":\r\n case \"showIndicator\":\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage();\r\n this._setWrapperAria();\r\n break;\r\n case \"showPane\":\r\n this._togglePaneVisible();\r\n break;\r\n case \"indicatorSrc\":\r\n this._renderLoadIndicator();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose() {\r\n this._clearShowTimeout();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxLoadPanel\", LoadPanel);\r\nexport default LoadPanel;\r\n","/**\r\n * DevExtreme (esm/ui/shared/filtering.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = dateIntervals.indexOf(interval);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else if (isDefined(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n};\r\nexport default (function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(this, target);\r\n if (Array.isArray(filterValue) && isDefined(filterValue[0]) && isDefined(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(this.dataType) && (date = filterValue[1], date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1)) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === this.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n var date\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = function(dateValue) {\r\n if (isDate(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return map((\"\" + dateValue).split(\"/\"), (function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n }))\r\n }(filterValue);\r\n var selector = getFilterSelector(this, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(this)[values.length - 1]\r\n } else if (\"datetime\" === this.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var selector = getFilterSelector(this, target);\r\n var groupInterval = getGroupInterval(this);\r\n if (\"headerFilter\" === target && groupInterval && isDefined(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else if (isDateType(dataType) && isDefined(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n toComparable\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n format\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport variableWrapper from \"../../../core/utils/variable_wrapper\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n DataSource\r\n} from \"../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../data/data_source/utils\";\r\nimport {\r\n normalizeSortingInfo as normalizeSortingInfoUtility\r\n} from \"../../../data/utils\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport formatHelper from \"../../../format_helper\";\r\nimport LoadPanel from \"../../../ui/load_panel\";\r\nimport sharedFiltering from \"../../../ui/shared/filtering\";\r\nvar DATAGRID_SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATAGRID_GROUP_OPENED_CLASS = \"dx-datagrid-group-opened\";\r\nvar DATAGRID_GROUP_CLOSED_CLASS = \"dx-datagrid-group-closed\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar NO_DATA_CLASS = \"nodata\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar SCROLLING_MODE_OPTION = \"scrolling.mode\";\r\nvar ROW_RENDERING_MODE_OPTION = \"scrolling.rowRenderingMode\";\r\nvar DATE_INTERVAL_SELECTORS = {\r\n year: value => value && value.getFullYear(),\r\n month: value => value && value.getMonth() + 1,\r\n day: value => value && value.getDate(),\r\n quarter: value => value && Math.floor(value.getMonth() / 3) + 1,\r\n hour: value => value && value.getHours(),\r\n minute: value => value && value.getMinutes(),\r\n second: value => value && value.getSeconds()\r\n};\r\nvar getIntervalSelector = function() {\r\n var data = arguments[1];\r\n var value = this.calculateCellValue(data);\r\n if (!isDefined(value)) {\r\n return null\r\n }\r\n if (isDateType(this.dataType)) {\r\n var nameIntervalSelector = arguments[0];\r\n return DATE_INTERVAL_SELECTORS[nameIntervalSelector](value)\r\n }\r\n if (\"number\" === this.dataType) {\r\n var groupInterval = arguments[0];\r\n return Math.floor(Number(value) / groupInterval) * groupInterval\r\n }\r\n};\r\nvar equalSelectors = function(selector1, selector2) {\r\n if (isFunction(selector1) && isFunction(selector2)) {\r\n if (selector1.originalCallback && selector2.originalCallback) {\r\n return selector1.originalCallback === selector2.originalCallback && selector1.columnIndex === selector2.columnIndex\r\n }\r\n }\r\n return selector1 === selector2\r\n};\r\n\r\nfunction isDateType(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n}\r\nvar setEmptyText = function($container) {\r\n $container.get(0).textContent = \"\\xa0\"\r\n};\r\nvar normalizeSortingInfo = function(sort) {\r\n sort = sort || [];\r\n var result = normalizeSortingInfoUtility(sort);\r\n for (var i = 0; i < sort.length; i++) {\r\n if (sort && sort[i] && void 0 !== sort[i].isExpanded) {\r\n result[i].isExpanded = sort[i].isExpanded\r\n }\r\n if (sort && sort[i] && void 0 !== sort[i].groupInterval) {\r\n result[i].groupInterval = sort[i].groupInterval\r\n }\r\n }\r\n return result\r\n};\r\nvar formatValue = function(value, options) {\r\n var valueText = formatHelper.format(value, options.format) || value && value.toString() || \"\";\r\n var formatObject = {\r\n value: value,\r\n valueText: options.getDisplayFormat ? options.getDisplayFormat(valueText) : valueText,\r\n target: options.target || \"row\",\r\n groupInterval: options.groupInterval\r\n };\r\n return options.customizeText ? options.customizeText.call(options, formatObject) : formatObject.valueText\r\n};\r\nvar getSummaryText = function(summaryItem, summaryTexts) {\r\n var displayFormat = summaryItem.displayFormat || summaryItem.columnCaption && summaryTexts[\"\".concat(summaryItem.summaryType, \"OtherColumn\")] || summaryTexts[summaryItem.summaryType];\r\n return formatValue(summaryItem.value, {\r\n format: summaryItem.valueFormat,\r\n getDisplayFormat: valueText => displayFormat ? format(displayFormat, valueText, summaryItem.columnCaption) : valueText,\r\n customizeText: summaryItem.customizeText\r\n })\r\n};\r\nvar getWidgetInstance = function($element) {\r\n var editorData = $element.data && $element.data();\r\n var dxComponents = editorData && editorData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && editorData[widgetName]\r\n};\r\nvar equalFilterParameters = function equalFilterParameters(filter1, filter2) {\r\n if (Array.isArray(filter1) && Array.isArray(filter2)) {\r\n if (filter1.length !== filter2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < filter1.length; i++) {\r\n if (!equalFilterParameters(filter1[i], filter2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n if (isFunction(filter1) && filter1.columnIndex >= 0 && isFunction(filter2) && filter2.columnIndex >= 0) {\r\n return filter1.columnIndex === filter2.columnIndex && toComparable(filter1.filterValue) === toComparable(filter2.filterValue) && toComparable(filter1.selectedFilterOperation) === toComparable(filter2.selectedFilterOperation)\r\n }\r\n return toComparable(filter1) == toComparable(filter2)\r\n};\r\n\r\nfunction normalizeGroupingLoadOptions(group) {\r\n if (!Array.isArray(group)) {\r\n group = [group]\r\n }\r\n return group.map((item, i) => {\r\n if (isString(item)) {\r\n return {\r\n selector: item,\r\n isExpanded: i < group.length - 1\r\n }\r\n }\r\n return item\r\n })\r\n}\r\nexport default {\r\n renderNoDataText($element) {\r\n $element = $element || this.element();\r\n if (!$element) {\r\n return\r\n }\r\n var noDataClass = this.addWidgetPrefix(NO_DATA_CLASS);\r\n var noDataElement = $element.find(\".\".concat(noDataClass)).last();\r\n var isVisible = this._dataController.isEmpty();\r\n var isLoading = this._dataController.isLoading();\r\n if (!noDataElement.length) {\r\n noDataElement = $(\"\").addClass(noDataClass)\r\n }\r\n if (!noDataElement.parent().is($element)) {\r\n noDataElement.appendTo($element)\r\n }\r\n if (isVisible && !isLoading) {\r\n noDataElement.removeClass(\"dx-hidden\").text(this._getNoDataText())\r\n } else {\r\n noDataElement.addClass(\"dx-hidden\")\r\n }\r\n },\r\n renderLoadPanel($element, $container, isLocalStore) {\r\n var loadPanelOptions;\r\n this._loadPanel && this._loadPanel.$element().remove();\r\n loadPanelOptions = this.option(\"loadPanel\");\r\n if (loadPanelOptions && (\"auto\" === loadPanelOptions.enabled ? !isLocalStore : loadPanelOptions.enabled)) {\r\n loadPanelOptions = extend({\r\n shading: false,\r\n message: loadPanelOptions.text,\r\n container: $container\r\n }, loadPanelOptions);\r\n this._loadPanel = this._createComponent($(\"
\").appendTo($container), LoadPanel, loadPanelOptions)\r\n } else {\r\n this._loadPanel = null\r\n }\r\n },\r\n calculateLoadPanelPosition($element) {\r\n var $window = $(getWindow());\r\n if (getHeight($element) > getHeight($window)) {\r\n return {\r\n of: $window,\r\n boundary: $element,\r\n collision: \"fit\"\r\n }\r\n }\r\n return {\r\n of: $element\r\n }\r\n },\r\n getIndexByKey(key, items, keyName) {\r\n var index = -1;\r\n if (void 0 !== key && Array.isArray(items)) {\r\n keyName = arguments.length <= 2 ? \"key\" : keyName;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = isDefined(keyName) ? items[i][keyName] : items[i];\r\n if (equalByValue(key, item)) {\r\n index = i;\r\n break\r\n }\r\n }\r\n }\r\n return index\r\n },\r\n combineFilters(filters, operation) {\r\n var _a;\r\n var resultFilter = [];\r\n operation = operation || \"and\";\r\n for (var i = 0; i < filters.length; i++) {\r\n if (!filters[i]) {\r\n continue\r\n }\r\n if (1 === (null === (_a = filters[i]) || void 0 === _a ? void 0 : _a.length) && \"!\" === filters[i][0]) {\r\n if (\"and\" === operation) {\r\n return [\"!\"]\r\n }\r\n if (\"or\" === operation) {\r\n continue\r\n }\r\n }\r\n if (resultFilter.length) {\r\n resultFilter.push(operation)\r\n }\r\n resultFilter.push(filters[i])\r\n }\r\n if (1 === resultFilter.length) {\r\n resultFilter = resultFilter[0]\r\n }\r\n if (resultFilter.length) {\r\n return resultFilter\r\n }\r\n return\r\n },\r\n checkChanges(changes, changeNames) {\r\n var changesWithChangeNamesCount = 0;\r\n for (var i = 0; i < changeNames.length; i++) {\r\n if (changes[changeNames[i]]) {\r\n changesWithChangeNamesCount++\r\n }\r\n }\r\n return changes.length && changes.length === changesWithChangeNamesCount\r\n },\r\n equalFilterParameters: equalFilterParameters,\r\n proxyMethod(instance, methodName, defaultResult) {\r\n if (!instance[methodName]) {\r\n instance[methodName] = function() {\r\n var dataSource = this._dataSource;\r\n return dataSource ? dataSource[methodName].apply(dataSource, arguments) : defaultResult\r\n }\r\n }\r\n },\r\n formatValue: formatValue,\r\n getFormatOptionsByColumn: (column, target) => ({\r\n format: column.format,\r\n getDisplayFormat: column.getDisplayFormat,\r\n customizeText: column.customizeText,\r\n target: target,\r\n trueText: column.trueText,\r\n falseText: column.falseText\r\n }),\r\n getDisplayValue(column, value, data, rowType) {\r\n if (column.displayValueMap && void 0 !== column.displayValueMap[value]) {\r\n return column.displayValueMap[value]\r\n }\r\n if (column.calculateDisplayValue && data && \"group\" !== rowType) {\r\n return column.calculateDisplayValue(data)\r\n }\r\n if (column.lookup && !(\"group\" === rowType && (column.calculateGroupValue || column.calculateDisplayValue))) {\r\n return column.lookup.calculateCellValue(value)\r\n }\r\n return value\r\n },\r\n getGroupRowSummaryText(summaryItems, summaryTexts) {\r\n var result = \"(\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n result += (i > 0 ? \", \" : \"\") + getSummaryText(summaryItem, summaryTexts)\r\n }\r\n return result + \")\"\r\n },\r\n getSummaryText: getSummaryText,\r\n normalizeSortingInfo: normalizeSortingInfo,\r\n getFormatByDataType(dataType) {\r\n switch (dataType) {\r\n case \"date\":\r\n return \"shortDate\";\r\n case \"datetime\":\r\n return \"shortDateShortTime\";\r\n default:\r\n return\r\n }\r\n },\r\n getHeaderFilterGroupParameters(column, remoteGrouping) {\r\n var result = [];\r\n var dataField = column.dataField || column.name;\r\n var groupInterval = sharedFiltering.getGroupInterval(column);\r\n if (groupInterval) {\r\n each(groupInterval, (index, interval) => {\r\n result.push(remoteGrouping ? {\r\n selector: dataField,\r\n groupInterval: interval,\r\n isExpanded: index < groupInterval.length - 1\r\n } : getIntervalSelector.bind(column, interval))\r\n });\r\n return result\r\n }\r\n if (remoteGrouping) {\r\n result = [{\r\n selector: dataField,\r\n isExpanded: false\r\n }]\r\n } else {\r\n result = function(data) {\r\n var result = column.calculateCellValue(data);\r\n if (void 0 === result || \"\" === result) {\r\n result = null\r\n }\r\n return result\r\n };\r\n if (column.sortingMethod) {\r\n result = [{\r\n selector: result,\r\n compare: column.sortingMethod.bind(column)\r\n }]\r\n }\r\n }\r\n return result\r\n },\r\n equalSortParameters(sortParameters1, sortParameters2, ignoreIsExpanded) {\r\n sortParameters1 = normalizeSortingInfo(sortParameters1);\r\n sortParameters2 = normalizeSortingInfo(sortParameters2);\r\n if (Array.isArray(sortParameters1) && Array.isArray(sortParameters2)) {\r\n if (sortParameters1.length !== sortParameters2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < sortParameters1.length; i++) {\r\n if (!equalSelectors(sortParameters1[i].selector, sortParameters2[i].selector) || sortParameters1[i].desc !== sortParameters2[i].desc || sortParameters1[i].groupInterval !== sortParameters2[i].groupInterval || !ignoreIsExpanded && Boolean(sortParameters1[i].isExpanded) !== Boolean(sortParameters2[i].isExpanded)) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return (!sortParameters1 || !sortParameters1.length) === (!sortParameters2 || !sortParameters2.length)\r\n },\r\n getPointsByColumns(items, pointCreated, isVertical, startColumnIndex) {\r\n var cellsLength = items.length;\r\n var notCreatePoint = false;\r\n var item;\r\n var offset;\r\n var columnIndex = startColumnIndex || 0;\r\n var result = [];\r\n var rtlEnabled;\r\n for (var i = 0; i <= cellsLength; i++) {\r\n if (i < cellsLength) {\r\n item = items.eq(i);\r\n offset = item.offset();\r\n rtlEnabled = \"rtl\" === item.css(\"direction\")\r\n }\r\n var point = {\r\n index: columnIndex,\r\n x: offset ? offset.left + (!isVertical && rtlEnabled ^ i === cellsLength ? getBoundingRect(item[0]).width : 0) : 0,\r\n y: offset ? offset.top + (isVertical && i === cellsLength ? getBoundingRect(item[0]).height : 0) : 0,\r\n columnIndex: columnIndex\r\n };\r\n if (!isVertical && i > 0) {\r\n var prevItemOffset = items.eq(i - 1).offset();\r\n if (prevItemOffset.top < point.y) {\r\n point.y = prevItemOffset.top\r\n }\r\n }\r\n if (pointCreated) {\r\n notCreatePoint = pointCreated(point)\r\n }\r\n if (!notCreatePoint) {\r\n result.push(point)\r\n }\r\n columnIndex++\r\n }\r\n return result\r\n },\r\n getExpandCellTemplate: () => ({\r\n allowRenderToDetachedContainer: true,\r\n render(container, options) {\r\n var $container = $(container);\r\n if (isDefined(options.value) && !(options.data && options.data.isContinuation) && !options.row.isNewRow) {\r\n var rowsView = options.component.getView(\"rowsView\");\r\n $container.addClass(DATAGRID_EXPAND_CLASS).addClass(DATAGRID_SELECTION_DISABLED_CLASS);\r\n $(\"
\").addClass(options.value ? DATAGRID_GROUP_OPENED_CLASS : DATAGRID_GROUP_CLOSED_CLASS).appendTo($container);\r\n rowsView.setAria(\"label\", options.value ? rowsView.localize(\"dxDataGrid-ariaCollapse\") : rowsView.localize(\"dxDataGrid-ariaExpand\"), $container)\r\n } else {\r\n setEmptyText($container)\r\n }\r\n }\r\n }),\r\n setEmptyText: setEmptyText,\r\n isDateType: isDateType,\r\n getSelectionRange(focusedElement) {\r\n try {\r\n if (focusedElement) {\r\n return {\r\n selectionStart: focusedElement.selectionStart,\r\n selectionEnd: focusedElement.selectionEnd\r\n }\r\n }\r\n } catch (e) {}\r\n return {}\r\n },\r\n setSelectionRange(focusedElement, selectionRange) {\r\n try {\r\n if (focusedElement && focusedElement.setSelectionRange) {\r\n focusedElement.setSelectionRange(selectionRange.selectionStart, selectionRange.selectionEnd)\r\n }\r\n } catch (e) {}\r\n },\r\n focusAndSelectElement(component, $element) {\r\n var isFocused = $element.is(\":focus\");\r\n eventsEngine.trigger($element, \"focus\");\r\n var isSelectTextOnEditingStart = component.option(\"editing.selectTextOnEditStart\");\r\n var element = $element.get(0);\r\n if (!isFocused && isSelectTextOnEditingStart && $element.is(\".dx-texteditor-input\") && !$element.is(\"[readonly]\")) {\r\n var editor = getWidgetInstance($element.closest(\".dx-texteditor\"));\r\n when(editor && editor._loadItemDeferred).done(() => {\r\n element.select()\r\n })\r\n }\r\n },\r\n getWidgetInstance: getWidgetInstance,\r\n getLastResizableColumnIndex(columns, resultWidths) {\r\n var hasResizableColumns = columns.some(column => column && !column.command && !column.fixed && false !== column.allowResizing);\r\n var lastColumnIndex;\r\n for (lastColumnIndex = columns.length - 1; columns[lastColumnIndex]; lastColumnIndex--) {\r\n var column = columns[lastColumnIndex];\r\n var width = resultWidths && resultWidths[lastColumnIndex];\r\n var allowResizing = !hasResizableColumns || false !== column.allowResizing;\r\n if (!column.command && !column.fixed && \"adaptiveHidden\" !== width && allowResizing) {\r\n break\r\n }\r\n }\r\n return lastColumnIndex\r\n },\r\n isElementInCurrentGrid(controller, $element) {\r\n if ($element && $element.length) {\r\n var $grid = $element.closest(\".\".concat(controller.getWidgetContainerClass())).parent();\r\n return $grid.is(controller.component.$element())\r\n }\r\n return false\r\n },\r\n isVirtualRowRendering(that) {\r\n var rowRenderingMode = that.option(ROW_RENDERING_MODE_OPTION);\r\n var isVirtualMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_VIRTUAL;\r\n var isAppendMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_INFINITE;\r\n if (false === that.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n return true\r\n }\r\n return rowRenderingMode === SCROLLING_MODE_VIRTUAL\r\n },\r\n getPixelRatio: window => window.devicePixelRatio || 1,\r\n getContentHeightLimit(browser) {\r\n if (browser.mozilla) {\r\n return 8e6\r\n }\r\n return 15e6 / this.getPixelRatio(getWindow())\r\n },\r\n normalizeLookupDataSource(lookup) {\r\n var lookupDataSourceOptions;\r\n if (lookup.items) {\r\n lookupDataSourceOptions = lookup.items\r\n } else {\r\n lookupDataSourceOptions = lookup.dataSource;\r\n if (isFunction(lookupDataSourceOptions) && !variableWrapper.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n return normalizeDataSourceOptions(lookupDataSourceOptions)\r\n },\r\n getWrappedLookupDataSource(column, dataSource, filter) {\r\n if (!dataSource) {\r\n return []\r\n }\r\n var lookupDataSourceOptions = this.normalizeLookupDataSource(column.lookup);\r\n if (column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return lookupDataSourceOptions\r\n }\r\n var hasGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var hasLookupOptimization = column.displayField && isString(column.displayField);\r\n var cachedUniqueRelevantItems;\r\n var previousTake;\r\n var previousSkip;\r\n var sliceItems = (items, loadOptions) => {\r\n var _a;\r\n var start = null !== (_a = loadOptions.skip) && void 0 !== _a ? _a : 0;\r\n var end = loadOptions.take ? start + loadOptions.take : items.length;\r\n return items.slice(start, end)\r\n };\r\n var lookupDataSource = _extends(_extends({}, lookupDataSourceOptions), {\r\n __dataGridSourceFilter: filter,\r\n load: loadOptions => {\r\n var d = new Deferred;\r\n (loadOptions => {\r\n var group = normalizeGroupingLoadOptions(hasLookupOptimization ? [column.dataField, column.displayField] : column.dataField);\r\n var d = new Deferred;\r\n var canUseCache = cachedUniqueRelevantItems && (!hasGroupPaging || loadOptions.skip === previousSkip && loadOptions.take === previousTake);\r\n if (canUseCache) {\r\n d.resolve(sliceItems(cachedUniqueRelevantItems, loadOptions))\r\n } else {\r\n previousSkip = loadOptions.skip;\r\n previousTake = loadOptions.take;\r\n dataSource.load({\r\n filter: filter,\r\n group: group,\r\n take: hasGroupPaging ? loadOptions.take : void 0,\r\n skip: hasGroupPaging ? loadOptions.skip : void 0\r\n }).done(items => {\r\n cachedUniqueRelevantItems = items;\r\n d.resolve(hasGroupPaging ? items : sliceItems(items, loadOptions))\r\n }).fail(d.fail)\r\n }\r\n return d\r\n })(loadOptions).done(items => {\r\n if (0 === items.length) {\r\n d.resolve([]);\r\n return\r\n }\r\n var filter = this.combineFilters(items.flatMap(data => data.key).map(key => [column.lookup.valueExpr, key]), \"or\");\r\n var newDataSource = new DataSource(_extends(_extends(_extends({}, lookupDataSourceOptions), loadOptions), {\r\n filter: this.combineFilters([filter, loadOptions.filter], \"and\"),\r\n paginate: false\r\n }));\r\n newDataSource.load().done(d.resolve).fail(d.fail)\r\n }).fail(d.fail);\r\n return d\r\n },\r\n key: column.lookup.valueExpr,\r\n byKey(key) {\r\n var d = Deferred();\r\n this.load({\r\n filter: [column.lookup.valueExpr, \"=\", key]\r\n }).done(arr => {\r\n d.resolve(arr[0])\r\n });\r\n return d.promise()\r\n }\r\n });\r\n return lookupDataSource\r\n },\r\n logHeaderFilterDeprecatedWarningIfNeed(component) {\r\n var logWarning = component._logDeprecatedOptionWarning.bind(component);\r\n if (isDefined(component.option(\"headerFilter.allowSearch\"))) {\r\n logWarning(\"headerFilter.allowSearch\", {\r\n since: \"23.1\",\r\n alias: \"headerFilter.search.enabled\"\r\n })\r\n }\r\n if (isDefined(component.option(\"headerFilter.searchTimeout\"))) {\r\n logWarning(\"headerFilter.searchTimeout\", {\r\n since: \"23.1\",\r\n alias: \"headerFilter.search.timeout\"\r\n })\r\n }\r\n var specificName = \"dxPivotGrid\" === component.NAME ? \"dataSource.fields\" : \"columns\";\r\n var columns = component.option(specificName);\r\n if (!Array.isArray(columns)) {\r\n return\r\n }\r\n var logSpecificDeprecatedWarningIfNeed = columns => {\r\n columns.forEach(column => {\r\n var _a;\r\n var headerFilter = column.headerFilter || {};\r\n if (isDefined(headerFilter.allowSearch)) {\r\n logWarning(\"\".concat(specificName, \"[].headerFilter.allowSearch\"), {\r\n since: \"23.1\",\r\n alias: \"\".concat(specificName, \"[].headerFilter.search.enabled\")\r\n })\r\n }\r\n if (isDefined(headerFilter.searchMode)) {\r\n logWarning(\"\".concat(specificName, \"[].headerFilter.searchMode\"), {\r\n since: \"23.1\",\r\n alias: \"\".concat(specificName, \"[].headerFilter.search.mode\")\r\n })\r\n }\r\n if (null === (_a = column.columns) || void 0 === _a ? void 0 : _a.length) {\r\n logSpecificDeprecatedWarningIfNeed(column.columns)\r\n }\r\n })\r\n };\r\n logSpecificDeprecatedWarningIfNeed(columns)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_columns_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport {\r\n data as elementData\r\n} from \"../../../../core/element_data\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport * as iteratorUtils from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n setWidth\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isRenderer,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../../../events/double_click\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport {\r\n ColumnStateMixin\r\n} from \"../../../grids/grid_core/column_state_mixin/m_column_state_mixin\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"scrollable-simulated\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout(() => {\r\n touchTarget = touchCurrentTarget = null\r\n }, timeout)\r\n }\r\n eventsEngine.on($table, \"touchstart touchend\", \".dx-row\", e => {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n });\r\n eventsEngine.on($table, [clickEventName, dblclickEvent, pointerEvents.down].join(\" \"), \".dx-row\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!$(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = getPublicElement($(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === pointerEvents.down) {\r\n that._rowPointerDown(e)\r\n } else if (event.type === clickEventName) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n }))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return isNumeric(width) ? \"\".concat(width, \"px\") : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nvar removeHandler = function(templateDeferred) {\r\n templateDeferred.resolve()\r\n};\r\nexport var normalizeWidth = width => {\r\n if (\"number\" === typeof width) {\r\n return \"\".concat(width.toFixed(3), \"px\")\r\n }\r\n if (\"adaptiveHidden\" === width) {\r\n return HIDDEN_COLUMNS_WIDTH\r\n }\r\n return width\r\n};\r\nexport class ColumnsView extends(ColumnStateMixin(modules.View)) {\r\n init() {\r\n this._scrollLeft = -1;\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this._columnChooserController = this.getController(\"columnChooser\");\r\n this._editorFactoryController = this.getController(\"editorFactory\");\r\n this._selectionController = this.getController(\"selection\");\r\n this._columnChooserView = this.getView(\"columnChooserView\");\r\n this._delayedTemplates = [];\r\n this._templateDeferreds = new Set;\r\n this._templatesCache = {};\r\n this._templateTimeouts = new Set;\r\n this.createAction(\"onCellClick\");\r\n this.createAction(\"onRowClick\");\r\n this.createAction(\"onCellDblClick\");\r\n this.createAction(\"onRowDblClick\");\r\n this.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: e => {\r\n this._afterRowPrepared(e)\r\n }\r\n });\r\n this._columnsController.columnsChanged.add(this._columnOptionChanged.bind(this));\r\n this._dataController && this._dataController.changed.add(this._handleDataChanged.bind(this))\r\n }\r\n dispose() {\r\n var _a, _b;\r\n if (hasWindow()) {\r\n var window = getWindow();\r\n null === (_a = this._templateTimeouts) || void 0 === _a ? void 0 : _a.forEach(templateTimeout => window.clearTimeout(templateTimeout));\r\n null === (_b = this._templateTimeouts) || void 0 === _b ? void 0 : _b.clear()\r\n }\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"keyboardNavigation\":\r\n if (\"keyboardNavigation.enabled\" === args.fullName) {\r\n this._invalidate(true, true)\r\n }\r\n args.handled = true\r\n }\r\n }\r\n _createScrollableOptions() {\r\n var scrollingOptions = this.option(\"scrolling\");\r\n var useNativeScrolling = this.option(\"scrolling.useNative\");\r\n var options = extend({}, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n }\r\n _updateCell($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n }\r\n _needToSetCellWidths() {\r\n return this.option(\"columnAutoWidth\")\r\n }\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var alignment = column.alignment || getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var needToSetCellWidths = this._needToSetCellWidths();\r\n var cell = domAdapter.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = $(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (Array.isArray(column.elementAttr)) {\r\n column.elementAttr.forEach(_ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n $cell.attr(name, value)\r\n })\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else if (!column.isBand && \"auto\" !== column.visibleWidth && needToSetCellWidths) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n return $cell\r\n }\r\n _createRow(rowObject, tagName) {\r\n tagName = tagName || \"tr\";\r\n var $element = $(\"<\".concat(tagName, \">\")).addClass(ROW_CLASS);\r\n if (\"tr\" === tagName) {\r\n this.setAria(\"role\", \"row\", $element)\r\n }\r\n return $element\r\n }\r\n _isAltRow(row) {\r\n return row && row.dataIndex % 2 === 1\r\n }\r\n _createTable(columns, isAppend) {\r\n var $table = $(\"\").addClass(this.addWidgetPrefix(TABLE_CLASS)).addClass(this.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.attr(\"id\", \"dx-\".concat(new Guid)).append(this._createColGroup(columns));\r\n if (browser.safari) {\r\n $table.append($(\"\").append(\"\"))\r\n }\r\n this.setAria(\"role\", \"presentation\", $table)\r\n } else {\r\n this.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", $(\"\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (browser.mozilla) {\r\n eventsEngine.on($table, \"mousedown\", \"td\", e => {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n if (this.option(\"cellHintEnabled\")) {\r\n eventsEngine.on($table, \"mousemove\", \".dx-row > td\", this.createAction(args => {\r\n var e = args.event;\r\n var $element = $(e.target);\r\n var $cell = $(e.currentTarget);\r\n var $row = $cell.parent();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var isDataRowWithTemplate = isDataRow && (!column || column.cellTemplate);\r\n var isEditorShown = isDataRow && cellOptions && (rowOptions.isEditing || cellOptions.isEditing || (null === column || void 0 === column ? void 0 : column.showEditorAlways));\r\n var isHeaderRowWithTemplate = isHeaderRow && (!column || column.headerCellTemplate);\r\n var isGroupCellWithTemplate = isGroupRow && (!column || column.groupIndex && column.groupCellTemplate);\r\n var shouldShowHint = !isMasterDetailRow && !isFilterRow && !isEditorShown && !isDataRowWithTemplate && !isHeaderRowWithTemplate && !isGroupCellWithTemplate;\r\n if (shouldShowHint) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth;\r\n if (difference > 0 && !isDefined($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n }))\r\n }\r\n var getOptions = event => {\r\n var $cell = $(event.currentTarget);\r\n var $fieldItemContent = $(event.target).closest(\".\".concat(FORM_FIELD_ITEM_CONTENT_CLASS));\r\n var $row = $cell.parent();\r\n var rowOptions = $row.data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = extend({}, options, {\r\n cellElement: getPublicElement($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n resultOptions.rowIndex = this.getRowIndex($row);\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = this._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n eventsEngine.on($table, \"mouseover\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, \"mouseout\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, clickEventName, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellClick\", options)\r\n });\r\n eventsEngine.on($table, dblclickEvent, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellDblClick\", options)\r\n });\r\n subscribeToRowEvents(this, $table);\r\n return $table\r\n }\r\n _rowPointerDown(e) {}\r\n _rowClick() {}\r\n _rowDblClick() {}\r\n _createColGroup(columns) {\r\n var colgroupElement = $(\"\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n }\r\n _createCol(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = $(\"\");\r\n setWidth(col, width);\r\n return col\r\n }\r\n renderDelayedTemplates(change) {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(template => !template.async);\r\n var asyncTemplates = delayedTemplates.filter(template => template.async);\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates, false, change);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n }\r\n _renderDelayedTemplatesCoreAsync(templates) {\r\n if (templates.length) {\r\n var templateTimeout = getWindow().setTimeout(() => {\r\n this._templateTimeouts.delete(templateTimeout);\r\n this._renderDelayedTemplatesCore(templates, true)\r\n });\r\n this._templateTimeouts.add(templateTimeout)\r\n }\r\n }\r\n _renderDelayedTemplatesCore(templates, isAsync, change) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var {\r\n options: options\r\n } = templateParameters;\r\n var doc = domAdapter.getRootNode($(options.container).get(0));\r\n var needWaitAsyncTemplates = this.needWaitAsyncTemplates();\r\n if (!isAsync || $(options.container).closest(doc).length || needWaitAsyncTemplates) {\r\n if (change) {\r\n options.change = change\r\n }\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n }\r\n _processTemplate(template, options) {\r\n var renderingTemplate;\r\n if (template && template.render && !isRenderer(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render(options) {\r\n template.render(options.container, options.model, options.change);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else if (isFunction(template)) {\r\n renderingTemplate = {\r\n render(options) {\r\n var renderedTemplate = template(getPublicElement(options.container), options.model, options.change);\r\n if (renderedTemplate && (renderedTemplate.nodeType || isRenderer(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = isString(template) ? template : $(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = this.getTemplate(template)\r\n } else {\r\n if (!this._templatesCache[templateID]) {\r\n this._templatesCache[templateID] = this.getTemplate(template)\r\n }\r\n renderingTemplate = this._templatesCache[templateID]\r\n }\r\n }\r\n return renderingTemplate\r\n }\r\n renderTemplate(container, template, options, allowRenderToDetachedContainer, change) {\r\n var _a;\r\n var renderingTemplate = this._processTemplate(template, options);\r\n var {\r\n column: column\r\n } = options;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: () => {\r\n if (this.isDisposed()) {\r\n templateDeferred.reject()\r\n } else {\r\n templateDeferred.resolve()\r\n }\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = this.component;\r\n var columnAsync = column && (column.renderAsync && isDataRow || this.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n var async = null !== (_a = options.renderAsync) && void 0 !== _a ? _a : columnAsync;\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n this._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n this._templateDeferreds.add(templateDeferred);\r\n eventsEngine.on(container, removeEvent, removeHandler.bind(null, templateDeferred))\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise().always(() => {\r\n this._templateDeferreds.delete(templateDeferred)\r\n })\r\n }\r\n _getBodies(tableElement) {\r\n return $(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n }\r\n _needWrapRow($tableElement) {\r\n var _a;\r\n var hasRowTemplate = !!this.option().rowTemplate;\r\n return hasRowTemplate && !!(null === (_a = this._getBodies($tableElement)) || void 0 === _a ? void 0 : _a.filter(\".\".concat(ROW_CLASS)).length)\r\n }\r\n _wrapRowIfNeed($table, $row, isRefreshing) {\r\n var $tableElement = isRefreshing ? $table || this._tableElement : this._tableElement || $table;\r\n var needWrapRow = this._needWrapRow($tableElement);\r\n if (needWrapRow) {\r\n var $tbody = $(\"\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n }\r\n _appendRow($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n }\r\n _resizeCore() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n _renderCore(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n }\r\n _renderTable(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n }\r\n _renderRows($table, options) {\r\n var rows = this._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n this._renderRow($table, extend({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n }\r\n _renderRow($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n }\r\n _needRenderCell(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n }\r\n _renderCells($row, options) {\r\n var columnIndex = 0;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n columns: columns\r\n } = options;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, extend({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n }\r\n _updateCells($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach((columnIndex, index) => {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n });\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n }\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n }\r\n _renderCell($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n var cellIndex = options.row.cells.findIndex(cell => cell.columnIndex === cellOptions.columnIndex);\r\n options.row.cells[cellIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions, options);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n }\r\n _renderCellContent($cell, options, renderOptions) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options, void 0, renderOptions.change)).done(() => {\r\n this._updateCell($cell, options)\r\n })\r\n }\r\n _getCellTemplate(options) {}\r\n _getRows(change) {\r\n return []\r\n }\r\n _getCellOptions(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n }\r\n _addWatchMethod(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateValueFunc, updateRowFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n if (row && updateRowFunc) {\r\n updateRowFunc(row)\r\n }\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateValueFunc(newValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n return function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n }\r\n };\r\n source.update = source.update || function(row, keepRow) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row && !keepRow) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach(watcher => {\r\n watcher(row)\r\n })\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n }\r\n _cellPrepared(cell, options) {\r\n options.cellElement = getPublicElement($(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n }\r\n _rowPrepared($row, options, row) {\r\n elementData($row.get(0), \"options\", options);\r\n options.rowElement = getPublicElement($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = visibleColumns.map(column => column.visibleWidth || column.width);\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n }\r\n getCellIndex($cell, rowIndex) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n }\r\n getTableElements() {\r\n return this._tableElement || $()\r\n }\r\n getTableElement(isFixedTableRendering) {\r\n return this._tableElement\r\n }\r\n setTableElement(tableElement, isFixedTableRendering) {\r\n this._tableElement = tableElement\r\n }\r\n _afterRowPrepared(e) {}\r\n _handleDataChanged(e) {}\r\n callbackNames() {\r\n return [\"scrollChanged\"]\r\n }\r\n _updateScrollLeftPosition() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n scrollTo(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\".concat(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS))).not(\".\".concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS)));\r\n if (isDefined(pos) && isDefined(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n }\r\n _getContent(isFixedTableRendering) {\r\n var _a;\r\n return null === (_a = this._tableElement) || void 0 === _a ? void 0 : _a.parent()\r\n }\r\n _removeContent(isFixedTableRendering) {\r\n var $scrollContainer = this._getContent(isFixedTableRendering);\r\n if (null === $scrollContainer || void 0 === $scrollContainer ? void 0 : $scrollContainer.length) {\r\n $scrollContainer.remove()\r\n }\r\n }\r\n _wrapTableInScrollContainer($table, isFixedTableRendering) {\r\n var $scrollContainer = $(\"
\");\r\n var useNative = this.option(\"scrolling.useNative\");\r\n if (false === useNative || \"auto\" === useNative && !nativeScrolling) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(SCROLLABLE_SIMULATED_CLASS))\r\n }\r\n eventsEngine.on($scrollContainer, \"scroll\", () => {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== this._scrollLeft) {\r\n this.scrollChanged.fire({\r\n left: scrollLeft\r\n }, this.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n }\r\n needWaitAsyncTemplates() {\r\n return this.option(\"templatesRenderAsynchronously\") && false === this.option(\"renderAsync\")\r\n }\r\n waitAsyncTemplates() {\r\n var forceWaiting = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var result = new Deferred;\r\n var needWaitAsyncTemplates = forceWaiting || this.needWaitAsyncTemplates();\r\n if (!needWaitAsyncTemplates) {\r\n return result.resolve()\r\n }\r\n var waitTemplatesRecursion = () => when.apply(this, Array.from(this._templateDeferreds)).done(() => {\r\n if (this.isDisposed()) {\r\n result.reject()\r\n } else if (this._templateDeferreds.size > 0) {\r\n waitTemplatesRecursion()\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n waitTemplatesRecursion();\r\n return result.promise()\r\n }\r\n _updateContent($newTableElement, change, isFixedTableRendering) {\r\n return this.waitAsyncTemplates().done(() => {\r\n this._removeContent(isFixedTableRendering);\r\n this.setTableElement($newTableElement, isFixedTableRendering);\r\n this._wrapTableInScrollContainer($newTableElement, isFixedTableRendering)\r\n })\r\n }\r\n _findContentElement(isFixedTableRendering) {}\r\n _getWidths($cellElements) {\r\n if (!$cellElements) {\r\n return []\r\n }\r\n var result = [];\r\n var cellElements = $cellElements.toArray();\r\n cellElements.forEach(cell => {\r\n var width = cell.offsetWidth;\r\n if (cell.getBoundingClientRect) {\r\n var rect = getBoundingRect(cell);\r\n if (rect.width > cell.offsetWidth - 1) {\r\n width = rect.width\r\n }\r\n }\r\n result.push(width)\r\n });\r\n return result\r\n }\r\n getColumnWidths($tableElement) {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n $tableElement = null !== $tableElement && void 0 !== $tableElement ? $tableElement : this.getTableElement();\r\n if ($tableElement) {\r\n var $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isErrorRow = $row.hasClass(ERROR_ROW_CLASS);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n var isRelevantRow = !isGroupRow && !isDetailRow && !isErrorRow;\r\n if (isRowVisible && isRelevantRow) {\r\n var $cells = $row.children(\"td\");\r\n var result = this._getWidths($cells);\r\n return result\r\n }\r\n }\r\n }\r\n return []\r\n }\r\n getVisibleColumnIndex(columnIndex, rowIndex) {\r\n return columnIndex\r\n }\r\n setColumnWidths(_ref2) {\r\n var {\r\n widths: widths,\r\n optionNames: optionNames\r\n } = _ref2;\r\n var $tableElement = this.getTableElement();\r\n if (!(null === $tableElement || void 0 === $tableElement ? void 0 : $tableElement.length) || !widths) {\r\n return\r\n }\r\n var columns = this.getColumns();\r\n var needToSetCellWidths = this._needToSetCellWidths();\r\n var $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n $cols.toArray().forEach(col => col.removeAttribute(\"style\"));\r\n columns.forEach((column, columnIndex) => {\r\n if (needToSetCellWidths && column.width && !column.command) {\r\n var width = getWidthStyle(column.visibleWidth || column.width);\r\n var minWidth = getWidthStyle(column.minWidth || width);\r\n var $rows = $tableElement.children().children(\".dx-row\").not(\".\".concat(DETAIL_ROW_CLASS));\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var visibleIndex = this.getVisibleColumnIndex(columnIndex, rowIndex);\r\n if (visibleIndex >= 0) {\r\n var $row = $rows.eq(rowIndex);\r\n var $cell = $row.hasClass(GROUP_ROW_CLASS) ? $row.find(\"td[aria-colindex='\".concat(visibleIndex + 1, \"']:not(.\").concat(GROUP_CELL_CLASS, \")\")) : $row.find(\"td\").eq(visibleIndex);\r\n if ($cell.length) {\r\n var cell = $cell.get(0);\r\n setCellWidth(cell, column, width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n }\r\n var colWidth = normalizeWidth(widths[columnIndex]);\r\n if (isDefined(colWidth)) {\r\n setWidth($cols.eq(columnIndex), colWidth)\r\n }\r\n })\r\n }\r\n getCellElements(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n }\r\n _getCellElement(rowIndex, columnIdentifier) {\r\n var $cells = this.getCellElements(rowIndex);\r\n var columnVisibleIndex = this._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if (!(null === $cells || void 0 === $cells ? void 0 : $cells.length) || columnVisibleIndex < 0) {\r\n return\r\n }\r\n var $cell = $cells.eq(columnVisibleIndex);\r\n return $cell.length > 0 ? $cell : void 0\r\n }\r\n _getRowElement(rowIndex) {\r\n var that = this;\r\n var $rowElement = $();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, (_, tableElement) => {\r\n $rowElement = $rowElement.add(that._getRowElements($(tableElement)).eq(rowIndex))\r\n });\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n return\r\n }\r\n getCellElement(rowIndex, columnIdentifier) {\r\n var $cell = this._getCellElement(rowIndex, columnIdentifier);\r\n if ($cell) {\r\n return getPublicElement($cell)\r\n }\r\n return\r\n }\r\n getRowElement(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !getPublicElement($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n }\r\n _getVisibleColumnIndex($cells, rowIndex, columnIdentifier) {\r\n if (isString(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n }\r\n getColumnElements() {}\r\n getColumns(rowIndex, $tableElement) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n }\r\n getCell(cellPosition, rows, cells) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && \"virtual\" !== this.option(\"scrolling.rowRenderingMode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = cells || this.getCellElements(cellPosition.rowIndex);\r\n if ((null === $cells || void 0 === $cells ? void 0 : $cells.length) > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n }\r\n getRowsCount() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n }\r\n _getRowElementsCore(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var hasRowTemplate = this.option().rowTemplate || this.option(\"dataRowTemplate\");\r\n var tBodies = hasRowTemplate && tableElement.find(\"> tbody.\".concat(ROW_CLASS));\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > \" + \".\".concat(ROW_CLASS, \", > .\").concat(ROW_CLASS))\r\n }\r\n return $()\r\n }\r\n _getRowElements(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n }\r\n getRowIndex($row) {\r\n return this._getRowElements().index($row)\r\n }\r\n getBoundingRect() {}\r\n getName() {}\r\n setScrollerSpacing(width) {\r\n var $element = this.element();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n isScrollbarVisible(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? getOuterWidth($tableElement) - getWidth($element) > 0 : getOuterHeight($tableElement) - getHeight($element) > 0\r\n }\r\n return false\r\n }\r\n isDisposed() {\r\n var _a;\r\n return null === (_a = this.component) || void 0 === _a ? void 0 : _a._disposed\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_headers/m_column_headers.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../m_accessibility\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nvar LINK = \"dx-link\";\r\nvar createCellContent = function(that, $cell, options) {\r\n var $cellContent = $(\"
\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n};\r\n\r\nfunction addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\".concat(that.addWidgetPrefix(CELL_CONTENT_CLASS)));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\".concat(that._getIndicatorClassName(\"headerFilter\"))).length)\r\n}\r\nexport class ColumnHeadersView extends ColumnsView {\r\n init() {\r\n super.init();\r\n this._headerPanelView = this.getView(\"headerPanel\");\r\n this._headerFilterController = this.getController(\"headerFilter\");\r\n this._dataController = this.getController(\"data\")\r\n }\r\n _createTable() {\r\n var $table = super._createTable.apply(this, arguments);\r\n eventsEngine.on($table, \"mousedown selectstart\", this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }));\r\n return $table\r\n }\r\n _isLegacyKeyboardNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n }\r\n _getDefaultTemplate(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var {\r\n caption: caption\r\n } = column;\r\n var needCellContent = !column.command || caption && \"expand\" !== column.command;\r\n if (\"empty\" === column.command) {\r\n that._renderEmptyMessage($container, options)\r\n } else if (needCellContent) {\r\n var $content = createCellContent(that, $container, options);\r\n $content.text(caption)\r\n } else if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n }\r\n _renderEmptyMessage($container, options) {\r\n var textEmpty = this._getEmptyHeaderText();\r\n if (!textEmpty) {\r\n $container.html(\" \");\r\n return\r\n }\r\n var $cellContent = createCellContent(this, $container, options);\r\n var needSplit = textEmpty.includes(\"{0}\");\r\n if (needSplit) {\r\n var [leftPart, rightPart] = textEmpty.split(\"{0}\");\r\n var columnChooserTitle = messageLocalization.format(\"dxDataGrid-emptyHeaderColumnChooserText\");\r\n var columnChooserView = this._columnChooserView;\r\n var $link = $(\"\").text(columnChooserTitle).addClass(LINK);\r\n eventsEngine.on($link, \"click\", this.createAction(() => columnChooserView.showColumnChooser()));\r\n $cellContent.append(domAdapter.createTextNode(leftPart)).append($link).append(domAdapter.createTextNode(rightPart))\r\n } else {\r\n $cellContent.text(textEmpty)\r\n }\r\n }\r\n _getEmptyHeaderText() {\r\n var hasHiddenColumns = !!this._columnChooserView.hasHiddenColumns();\r\n var hasGroupedColumns = !!this._headerPanelView.hasGroupedColumns();\r\n switch (true) {\r\n case hasHiddenColumns && hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserAndGroupPanelText\");\r\n case hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithGroupPanelText\");\r\n case hasHiddenColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserText\");\r\n default:\r\n return \"\"\r\n }\r\n }\r\n _getHeaderTemplate(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n }\r\n _processTemplate(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var {\r\n column: column\r\n } = options;\r\n var renderingTemplate = super._processTemplate(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render(extend({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n }\r\n _handleDataChanged(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n }\r\n _renderCell($row, options) {\r\n var $cell = super._renderCell($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n }\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n super._setCellAriaAttributes($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n if (!cellOptions.column.type) {\r\n this.setAria(\"role\", \"columnheader\", $cell)\r\n }\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", \"\".concat(messageLocalization.format(\"dxDataGrid-ariaColumn\"), \" \").concat(cellOptions.column.caption), $cell)\r\n }\r\n }\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n $row.toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n registerKeyboardAction(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n }\r\n _processHeaderAction(event, $row) {}\r\n _handleActionKeyDown(args) {\r\n var {\r\n event: event\r\n } = args;\r\n var $target = $(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this._headerFilterController;\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n }\r\n _renderCore() {\r\n var $container = this.element();\r\n var change = {};\r\n if (this._tableElement && !this._dataController.isLoaded() && !this._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(this.addWidgetPrefix(HEADERS_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\")).empty();\r\n this.setAria(\"role\", \"presentation\", $container);\r\n var deferred = this._updateContent(this._renderTable({\r\n change: change\r\n }), change);\r\n if (this.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n super._renderCore.apply(this, arguments);\r\n return deferred\r\n }\r\n _renderRows() {\r\n if (this._dataController.isLoaded() || this._hasRowElements) {\r\n super._renderRows.apply(this, arguments);\r\n this._hasRowElements = true\r\n }\r\n }\r\n _renderRow($table, options) {\r\n var rowIndex = 1 === this.getRowCount() ? null : options.row.rowIndex;\r\n options.columns = this.getColumns(rowIndex);\r\n super._renderRow($table, options)\r\n }\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $cellElement = super._createCell.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n }\r\n _getRows() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n }\r\n _getCellTemplate(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (changeTypes.grouping || changeTypes.groupExpanding) {\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true\r\n }\r\n return\r\n }\r\n super._columnOptionChanged(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n }\r\n _isElementVisible(elementOptions) {\r\n return elementOptions && elementOptions.visible\r\n }\r\n _alignCaptionByCenter($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\".concat(VISIBILITY_HIDDEN_CLASS)).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\".concat(this.addWidgetPrefix(CELL_CONTENT_CLASS))))\r\n }\r\n }\r\n _updateCell($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n super._updateCell.apply(this, arguments)\r\n }\r\n _updateIndicator($cell, column, indicatorName) {\r\n var $indicatorElement = super._updateIndicator.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n }\r\n _getIndicatorContainer($cell, returnAll) {\r\n var $indicatorsContainer = super._getIndicatorContainer($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\".concat(VISIBILITY_HIDDEN_CLASS, \")\"))\r\n }\r\n _isSortableElement($target) {\r\n return true\r\n }\r\n getHeadersRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\".concat(HEADER_ROW_CLASS));\r\n return $headerRows && $headerRows.toArray().reduce((sum, headerRow) => sum + getHeight(headerRow), 0) || 0\r\n }\r\n getHeaderElement(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n }\r\n getColumnElements(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!isDefined(index) || isDefined(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = isDefined(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n each(visibleColumns, (_, column) => {\r\n var rowIndex = isDefined(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n });\r\n return $(result)\r\n }\r\n if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n return\r\n }\r\n getColumnIndexByElement($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var {\r\n rowIndex: rowIndex\r\n } = $row[0];\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n }\r\n getVisibleColumnIndex(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n }\r\n getColumnWidths() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return super.getColumnWidths.apply(this, arguments)\r\n }\r\n allowDragging(column) {\r\n var _a;\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(rowIndex);\r\n var isReorderingEnabled = null !== (_a = this.option(\"allowColumnReordering\")) && void 0 !== _a ? _a : this._columnsController.isColumnOptionUsed(\"allowReordering\");\r\n return isReorderingEnabled && column.allowReordering && columns.length > 1\r\n }\r\n getBoundingRect() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = this.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n }\r\n getName() {\r\n return \"headers\"\r\n }\r\n getColumnCount() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n }\r\n isVisible() {\r\n return this.option(\"showColumnHeaders\")\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n getHeight() {\r\n return this.getElementHeight()\r\n }\r\n getContextMenuItems(options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n })\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return\r\n }\r\n getRowCount() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n }\r\n setRowsOpacity(columnIndex, value, rowIndex) {\r\n var i;\r\n var columnElements;\r\n var rowCount = this.getRowCount();\r\n var columns = this._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = (column, index) => {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n this.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if (isDefined(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = this.getCellElements(i);\r\n if (columnElements) {\r\n var rowColumns = this.getColumns(i);\r\n rowColumns.forEach(setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport var columnHeadersModule = {\r\n defaultOptions: () => ({\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }),\r\n views: {\r\n columnHeadersView: ColumnHeadersView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_core.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport modules from \"../../grids/grid_core/m_modules\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nexport default _extends(_extends(_extends({}, modules), gridCoreUtils), {\r\n modules: []\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/column_headers.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnHeadersModule\r\n} from \"../../../grids/grid_core/column_headers/m_column_headers\";\r\nimport gridCore from \"../m_core\";\r\nexport var ColumnHeadersView = columnHeadersModule.views.columnHeadersView;\r\ngridCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/const.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nexport var USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nexport var IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nexport var COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nexport var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nexport var GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nexport var DETAIL_COMMAND_COLUMN_NAME = \"detailExpand\";\r\nexport var COLUMN_OPTION_REGEXP = /columns\\[(\\d+)\\]\\.?/gi;\r\nexport var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n};\r\nexport var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n};\r\nexport var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n};\r\nexport var GROUP_LOCATION = \"group\";\r\nexport var COLUMN_CHOOSER_LOCATION = \"columnChooser\";\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if (!parsedValue && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = getTimePart(parts[1]);\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(new Date(year, month, day, hour, minute, second, millisecond))\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeIndexes\r\n} from \"../../../../core/utils/array\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../../../core/utils/data\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isString,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport numberLocalization from \"../../../../localization/number\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_INDEX_OPTIONS,\r\n DEFAULT_COLUMN_OPTIONS,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n IGNORE_COLUMN_OPTION_NAMES,\r\n USER_STATE_FIELD_NAMES,\r\n USER_STATE_FIELD_NAMES_15_1\r\n} from \"./const\";\r\nexport var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n};\r\nvar globalColumnId = 1;\r\nexport var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if (isString(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = deepExtendArraySafe(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = extend({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = deepExtendArraySafe(result, DEFAULT_COLUMN_OPTIONS);\r\n deepExtendArraySafe(result, commonColumnOptions);\r\n deepExtendArraySafe(result, calculatedColumnOptions);\r\n deepExtendArraySafe(result, columnOptions);\r\n deepExtendArraySafe(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n};\r\nexport var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn, createdColumnCount) {\r\n var result = [];\r\n if (columnsOptions) {\r\n each(columnsOptions, (index, columnOptions) => {\r\n var currentIndex = (null !== createdColumnCount && void 0 !== createdColumnCount ? createdColumnCount : 0) + result.length;\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[currentIndex]) && that._columnsUserState[currentIndex];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column, result.length));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n })\r\n }\r\n return result\r\n};\r\nexport var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n};\r\nexport var getChildrenByBandColumn = function getChildrenByBandColumn(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!isDefined(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport var getColumnByIndexes = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && -1 !== columns.indexOf(column)) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n};\r\nexport var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n each(columns, (_, column) => {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n });\r\n return colspan\r\n};\r\nexport var processBandColumns = function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!isDefined(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport var getValueDataType = function(value) {\r\n var dataType = type(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n};\r\nexport var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return dateSerialization.getDateSerializationFormat(value);\r\n case \"number\":\r\n if (isString(value)) {\r\n return \"string\"\r\n }\r\n if (isNumeric(value)) {\r\n return null\r\n }\r\n }\r\n};\r\nexport var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (gridCoreUtils.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return isString(value) ? value : dateSerialization.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return isDefined(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n};\r\nexport var getAlignmentByDataType = function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return getDefaultAlignment(isRTL)\r\n }\r\n};\r\nexport var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n }\r\n if (false === e.value) {\r\n return this.falseText || \"false\"\r\n }\r\n return e.valueText || \"\"\r\n};\r\nexport var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n};\r\nexport var createColumnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!isFunction(firstItems[i][fieldName]) || variableWrapper.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n};\r\nexport var updateColumnIndexes = function(that) {\r\n each(that._columns, (index, column) => {\r\n column.index = index\r\n });\r\n each(that._columns, (index, column) => {\r\n if (isObject(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n });\r\n each(that._commandColumns, (index, column) => {\r\n column.index = -(index + 1)\r\n })\r\n};\r\nexport var updateColumnGroupIndexes = function(that, currentColumn) {\r\n normalizeIndexes(that._columns, \"groupIndex\", currentColumn, column => {\r\n var {\r\n grouped: grouped\r\n } = column;\r\n delete column.grouped;\r\n return grouped\r\n })\r\n};\r\nexport var updateColumnSortIndexes = function(that, currentColumn) {\r\n each(that._columns, (index, column) => {\r\n if (isDefined(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n });\r\n normalizeIndexes(that._columns, \"sortIndex\", currentColumn, column => !isDefined(column.groupIndex) && isSortOrderValid(column.sortOrder))\r\n};\r\nexport var updateColumnVisibleIndexes = function(that, currentColumn) {\r\n var column;\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var bandedColumns = [];\r\n var columns = that._columns.filter(column => !column.command);\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n bandedColumns.push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n normalizeIndexes(bandedColumns, \"visibleIndex\", currentColumn);\r\n normalizeIndexes(result, \"visibleIndex\", currentColumn)\r\n};\r\nexport var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = isObject(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = location === GROUP_LOCATION ? that.getGroupColumns() : location === COLUMN_CHOOSER_LOCATION ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = isObject(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(col => column.type === col.type)[0] || column\r\n }\r\n return column && isDefined(column.index) ? column.index : -1\r\n};\r\nexport var moveColumnToGroup = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n};\r\n\r\nfunction checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && userStateColumn.name === (column.name || column.dataField) && (userStateColumn.dataField === column.dataField || column.name)\r\n}\r\nexport var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if (ignoreColumnOptionNames.includes(fieldName)) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (USER_STATE_FIELD_NAMES_15_1.includes(fieldName)) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && isDefined(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n};\r\nexport var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n updateColumnSortIndexes(that, column);\r\n resetBandColumnsCache(that);\r\n updateColumnVisibleIndexes(that, column)\r\n};\r\nexport var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n};\r\nexport function assignColumns(that, columns) {\r\n that._previousColumns = that._columns;\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n}\r\nexport var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var _a;\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var {\r\n changeTypes: changeTypes\r\n } = columnChanges;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var {\r\n optionNames: optionNames\r\n } = columnChanges;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n if (isDefined(columnIndex)) {\r\n null !== (_a = columnChanges.columnIndices) && void 0 !== _a ? _a : columnChanges.columnIndices = [];\r\n if (isDefined(columnChanges.columnIndex)) {\r\n columnChanges.columnIndices.push(columnChanges.columnIndex)\r\n }\r\n columnChanges.columnIndices.push(columnIndex)\r\n }\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n};\r\nexport var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging(extend({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (options = columnChanges.optionNames, options && reinitOptionNames.some(name => options[name])) {\r\n that._reinitAfterLookupChanges = null === columnChanges || void 0 === columnChanges ? void 0 : columnChanges.optionNames.lookup;\r\n that.reinit();\r\n that._reinitAfterLookupChanges = void 0\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n var options\r\n};\r\nexport var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(col => col !== column && isDefined(col.sortIndex));\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n};\r\nexport var fireOptionChanged = function(that, options) {\r\n var {\r\n value: value\r\n } = options;\r\n var {\r\n optionName: optionName\r\n } = options;\r\n var {\r\n prevValue: prevValue\r\n } = options;\r\n var {\r\n fullOptionName: fullOptionName\r\n } = options;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n};\r\nexport var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = compileGetter(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (!equalByValue(prevValue, value, {\r\n maxDepth: 5\r\n })) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n var optionSetter = compileSetter(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (!USER_STATE_FIELD_NAMES.includes(optionName) && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if (isString(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n })\r\n }\r\n};\r\nexport function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n}\r\nexport var addExpandColumn = function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n};\r\nexport var defaultSetCellValue = function(data, value) {\r\n if (!this.dataField) {\r\n return\r\n }\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n};\r\nexport var getDataColumns = function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && each(columns[rowIndex], (_, column) => {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n });\r\n return result\r\n};\r\nexport var getRowCount = function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var {\r\n columnParentByIndex: columnParentByIndex\r\n } = bandColumnsCache;\r\n that._columns.forEach(column => {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter(column => !column.visible);\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n });\r\n return rowCount\r\n};\r\nexport var isCustomCommandColumn = (that, commandColumn) => {\r\n var customCommandColumns = that._columns.filter(column => column.type === commandColumn.type);\r\n return !!customCommandColumns.length\r\n};\r\nexport var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n};\r\nexport var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(column => column.type === type);\r\n columns.forEach((column, index) => {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = map(expandColumnsByType, expandColumn => extend({}, expandColumn, {\r\n rowspan: rowspan\r\n }))\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, isDefined(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n};\r\nexport var digitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n};\r\nexport var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\".concat(str)\r\n }\r\n return str\r\n};\r\nexport var mergeColumns = (that, columns, commandColumns, needToExtend) => {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(column => extend({}, column));\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(column => extend({\r\n fixed: isColumnFixing\r\n }, column));\r\n var getCommandColumnIndex = column => commandColumns.reduce((result, commandColumn, index) => {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1);\r\n var callbackFilter = commandColumn => commandColumn.command !== commandColumns[commandColumnIndex].command;\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = extend({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = extend({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n};\r\nexport var isColumnFixed = (that, column) => isDefined(column.fixed) || !column.type ? column.fixed : that._isColumnFixing();\r\nexport var convertOwnerBandToColumnReference = columns => {\r\n columns.forEach(column => {\r\n if (isDefined(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n })\r\n};\r\nexport var resetBandColumnsCache = that => {\r\n that._bandColumnsCache = void 0\r\n};\r\nexport var findColumn = (columns, identifier) => {\r\n var identifierOptionName = isString(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(column => \"\".concat(column[identifierOptionName]) === identifier)[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(optionName => {\r\n column = columns.filter(column => column[optionName] === identifier)[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n};\r\nexport var sortColumns = (columns, sortOrder) => {\r\n if (\"asc\" !== sortOrder && \"desc\" !== sortOrder) {\r\n return columns\r\n }\r\n var sign = \"asc\" === sortOrder ? 1 : -1;\r\n columns.sort((column1, column2) => {\r\n var caption1 = column1.caption || \"\";\r\n var caption2 = column2.caption || \"\";\r\n return sign * caption1.localeCompare(caption2)\r\n });\r\n return columns\r\n};\r\nexport var strictParseNumber = function(text, format) {\r\n var parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n var formattedValue = numberLocalization.format(parsedValue, format);\r\n var formattedValueWithDefaultFormat = numberLocalization.format(parsedValue, \"decimal\");\r\n if (formattedValue === text || formattedValueWithDefaultFormat === text) {\r\n return parsedValue\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport config from \"../../../../core/config\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n orderEach\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isPlainObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport Store from \"../../../../data/abstract_store\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../../data/data_source/utils\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport filterUtils from \"../../../../ui/shared/filtering\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_OPTION_REGEXP,\r\n COMMAND_EXPAND_CLASS,\r\n DATATYPE_OPERATIONS,\r\n DETAIL_COMMAND_COLUMN_NAME,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n MAX_SAFE_INTEGER,\r\n USER_STATE_FIELD_NAMES\r\n} from \"./const\";\r\nimport {\r\n addExpandColumn,\r\n applyUserState,\r\n assignColumns,\r\n columnOptionCore,\r\n convertOwnerBandToColumnReference,\r\n createColumn,\r\n createColumnsFromDataSource,\r\n createColumnsFromOptions,\r\n defaultSetCellValue,\r\n digitsCount,\r\n findColumn,\r\n fireColumnsChanged,\r\n getAlignmentByDataType,\r\n getChildrenByBandColumn,\r\n getColumnByIndexes,\r\n getColumnIndexByVisibleIndex,\r\n getCustomizeTextByDataType,\r\n getDataColumns,\r\n getFixedPosition,\r\n getParentBandColumns,\r\n getRowCount,\r\n getSerializationFormat,\r\n getValueDataType,\r\n isColumnFixed,\r\n isCustomCommandColumn,\r\n isSortOrderValid,\r\n mergeColumns,\r\n moveColumnToGroup,\r\n numberToString,\r\n processBandColumns,\r\n processExpandColumns,\r\n resetBandColumnsCache,\r\n resetColumnsCache,\r\n setFilterOperationsAsDefaultValues,\r\n sortColumns,\r\n strictParseNumber,\r\n updateColumnChanges,\r\n updateColumnGroupIndexes,\r\n updateIndexes,\r\n updateSerializers\r\n} from \"./m_columns_controller_utils\";\r\nexport class ColumnsController extends modules.Controller {\r\n init(isApplyingUserState) {\r\n this._dataController = this.getController(\"data\");\r\n this._focusController = this.getController(\"focus\");\r\n this._stateStoringController = this.getController(\"stateStoring\");\r\n var columns = this.option(\"columns\");\r\n this._commandColumns = this._commandColumns || [];\r\n this._columns = this._columns || [];\r\n this._isColumnsFromOptions = !!columns;\r\n if (this._isColumnsFromOptions) {\r\n assignColumns(this, columns ? createColumnsFromOptions(this, columns) : []);\r\n applyUserState(this)\r\n } else {\r\n assignColumns(this, this._columnsUserState ? createColumnsFromOptions(this, this._columnsUserState) : this._columns)\r\n }\r\n addExpandColumn(this);\r\n if (this._dataSourceApplied) {\r\n this.applyDataSource(this._dataSource, true, isApplyingUserState)\r\n } else {\r\n updateIndexes(this)\r\n }\r\n this._checkColumns()\r\n }\r\n _getExpandColumnOptions() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n }\r\n _getFirstItems(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = gridCoreUtils.normalizeSortingInfo(dataSource.group()).length;\r\n items = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n }(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n }\r\n _endUpdateCore() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n }\r\n callbackNames() {\r\n return [\"columnsChanged\"]\r\n }\r\n getColumnByPath(path, columns) {\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(COLUMN_OPTION_REGEXP, (_, columnIndex) => {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n });\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce((column, index) => column && column.columns && column.columns[index], {\r\n columns: columns\r\n })\r\n } else {\r\n column = getColumnByIndexes(this, columnIndexes)\r\n }\r\n }\r\n return column\r\n }\r\n optionChanged(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n this.reinit(ignoreColumnOptionNames);\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _columnOptionChanged(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(COLUMN_OPTION_REGEXP, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n }\r\n _updateRequireResize(args) {\r\n var {\r\n component: component\r\n } = this;\r\n if (\"width\" === args.fullName.replace(COLUMN_OPTION_REGEXP, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n }\r\n applyDataSource(dataSource, forceApplying, isApplyingUserState) {\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n this._dataSource = dataSource;\r\n if (!this._dataSourceApplied || 0 === this._dataSourceColumnsCount || forceApplying || this.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!this._isColumnsFromOptions) {\r\n var columnsFromDataSource = createColumnsFromDataSource(this, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(this, columnsFromDataSource);\r\n this._dataSourceColumnsCount = this._columns.length;\r\n applyUserState(this)\r\n }\r\n }\r\n return this.updateColumns(dataSource, forceApplying, isApplyingUserState)\r\n }\r\n this._dataSourceApplied = false;\r\n updateIndexes(this)\r\n } else if (isDataSourceLoaded && !this.isAllDataTypesDefined(true) && this.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(this, \"columns\");\r\n fireColumnsChanged(this);\r\n return (new Deferred).reject().promise()\r\n }\r\n }\r\n reset() {\r\n this._dataSource = null;\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n }\r\n resetColumnsCache() {\r\n this._visibleColumns = void 0;\r\n this._fixedColumns = void 0;\r\n this._rowCount = void 0;\r\n resetBandColumnsCache(this)\r\n }\r\n reinit(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n }\r\n isInitialized() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n }\r\n isDataSourceApplied() {\r\n return this._dataSourceApplied\r\n }\r\n getCommonSettings(column) {\r\n var _a, _b;\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = null !== (_a = this.option(\"grouping\")) && void 0 !== _a ? _a : {};\r\n var groupPanelOptions = null !== (_b = this.option(\"groupPanel\")) && void 0 !== _b ? _b : {};\r\n return extend({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n }\r\n isColumnOptionUsed(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n }\r\n isAllDataTypesDefined(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n getColumns() {\r\n return this._columns\r\n }\r\n isBandColumnsUsed() {\r\n return this.getColumns().some(column => column.isBand)\r\n }\r\n getGroupColumns() {\r\n var result = [];\r\n each(this._columns, (function() {\r\n if (isDefined(this.groupIndex)) {\r\n result[this.groupIndex] = this\r\n }\r\n }));\r\n return result\r\n }\r\n _shouldReturnVisibleColumns() {\r\n return true\r\n }\r\n _compileVisibleColumns(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._compileVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n }\r\n getVisibleColumns(rowIndex, isBase) {\r\n if (!this._shouldReturnVisibleColumns()) {\r\n return []\r\n }\r\n return this._compileVisibleColumns.apply(this, arguments)\r\n }\r\n getFixedColumns(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n }\r\n getFilteringColumns() {\r\n return this.getColumns().filter(item => (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)).map(item => {\r\n var field = extend(true, {}, item);\r\n if (!isDefined(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n }\r\n getColumnIndexOffset() {\r\n return 0\r\n }\r\n _getFixedColumnsCore() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var isColumnFixing = this._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = this.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else if (prevColumn && prevColumn.fixed && getFixedPosition(this, prevColumn) !== getFixedPosition(this, column)) {\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(columns => columns.map(column => {\r\n var newColumn = _extends({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n }))\r\n }\r\n _isColumnFixing() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && each(this._columns, (_, column) => {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n });\r\n return isColumnFixing\r\n }\r\n _getExpandColumnsCore() {\r\n return this.getGroupColumns()\r\n }\r\n getExpandColumns() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(column => 0 === column.groupIndex)[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = map(expandColumns, column => extend({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !isDefined(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !isDefined(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true,\r\n fixedPosition: rtlEnabled ? \"right\" : \"left\"\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n }));\r\n return expandColumns\r\n }\r\n getBandColumnsCache() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach(column => {\r\n var {\r\n ownerBand: ownerBand\r\n } = column;\r\n var parentIndex = isObject(ownerBand) ? ownerBand.index : ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n });\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n }\r\n _isColumnVisible(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n }\r\n _isColumnInGroupPanel(column) {\r\n return isDefined(column.groupIndex) && !column.showWhenGrouped\r\n }\r\n hasVisibleDataColumns() {\r\n var columns = this._columns;\r\n return columns.some(column => {\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n var isCommand = !!column.command;\r\n return isVisible && !isInGroupPanel && !isCommand\r\n })\r\n }\r\n _compileVisibleColumnsCore() {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var columns = mergeColumns(this, this._columns, this._commandColumns, true);\r\n processBandColumns(this, columns, bandColumnsCache);\r\n var indexedColumns = this._getIndexedColumns(columns);\r\n var visibleColumns = this._getVisibleColumnsFromIndexed(indexedColumns);\r\n var isDataColumnsInvisible = !this.hasVisibleDataColumns();\r\n if (isDataColumnsInvisible && this._columns.length) {\r\n visibleColumns[visibleColumns.length - 1].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return visibleColumns\r\n }\r\n _getIndexedColumns(columns) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var rowCount = this.getRowCount();\r\n var columnDigitsCount = digitsCount(columns.length);\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n for (var i = 0; i < rowCount; i += 1) {\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }\r\n columns.forEach(column => {\r\n var _a, _b, _c, _d;\r\n var {\r\n visibleIndex: visibleIndex\r\n } = column;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex);\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n if (isVisible && !isInGroupPanel) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n column.fixed = null !== (_b = null === (_a = parentBandColumns[0]) || void 0 === _a ? void 0 : _a.fixed) && void 0 !== _b ? _b : column.fixed;\r\n column.fixedPosition = null !== (_d = null === (_c = parentBandColumns[0]) || void 0 === _c ? void 0 : _c.fixedPosition) && void 0 !== _d ? _d : column.fixedPosition;\r\n if (column.fixed) {\r\n var isDefaultCommandColumn = !!column.command && !isCustomCommandColumn(this, column);\r\n var isFixedToEnd = \"right\" === column.fixedPosition;\r\n if (rtlEnabled && !isDefaultCommandColumn) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n indexedColumns = isFixedToEnd ? positiveIndexedColumns[rowIndex][2] : positiveIndexedColumns[rowIndex][0]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (var _i = parentBandColumns.length - 1; _i >= 0; _i -= 1) {\r\n visibleIndex = numberToString(parentBandColumns[_i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(column)\r\n }\r\n });\r\n return {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n }\r\n }\r\n _getVisibleColumnsFromIndexed(_ref) {\r\n var _this = this;\r\n var {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n } = _ref;\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var expandColumns = mergeColumns(this, this.getExpandColumns(), this._columns);\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var _loop = function(rowIndex) {\r\n result.push([]);\r\n orderEach(negativeIndexedColumns[rowIndex], (_, columns) => {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n });\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n var positiveIndexedRowColumns = positiveIndexedColumns[rowIndex];\r\n positiveIndexedRowColumns.forEach(columnsByFixing => {\r\n orderEach(columnsByFixing, (_, columnsByVisibleIndex) => {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n })\r\n });\r\n if (rowspanExpandColumns <= rowIndex) {\r\n rowspanExpandColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, DETAIL_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns <= rowIndex) {\r\n rowspanGroupColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n };\r\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\r\n _loop(rowIndex)\r\n }\r\n result.push(getDataColumns(result));\r\n return result\r\n }\r\n getInvisibleColumns(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n each(columns, (_, column) => {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n });\r\n return result\r\n }\r\n getChooserColumns(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n var columnChooserColumns = columns.filter(column => column.showInColumnChooser);\r\n var sortOrder = this.option(\"columnChooser.sortOrder\");\r\n return sortColumns(columnChooserColumns, sortOrder)\r\n }\r\n allowMoveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = this._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION) {\r\n return false\r\n }\r\n fromVisibleIndex = isObject(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n }\r\n if (sourceLocation === GROUP_LOCATION && targetLocation !== COLUMN_CHOOSER_LOCATION || targetLocation === GROUP_LOCATION) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n }\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION || targetLocation === COLUMN_CHOOSER_LOCATION) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n moveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(this, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = this._columns[fromIndex];\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? this._columns[toIndex].groupIndex : -1;\r\n if (isDefined(column.groupIndex) && sourceLocation === GROUP_LOCATION) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (targetLocation !== GROUP_LOCATION) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(this)\r\n }\r\n }\r\n if (targetLocation === GROUP_LOCATION) {\r\n options.groupIndex = moveColumnToGroup(this, column, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else if (toVisibleIndex >= 0) {\r\n var targetColumn = this._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else if (isColumnFixed(this, column) ^ isColumnFixed(this, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n var isVisible = targetLocation !== COLUMN_CHOOSER_LOCATION;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n }\r\n changeSortOrder(columnIndex, sortOrder) {\r\n var options = {};\r\n var sortingOptions = this.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = this._columns[columnIndex];\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !isDefined(column.groupIndex)) {\r\n each(this._columns, (function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!isDefined(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n }))\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n ! function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else if (isDefined(column.groupIndex) || isDefined(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n return true\r\n }(column)\r\n }\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n getSortDataSourceParameters(useLocalSelector) {\r\n var sortColumns = [];\r\n var sort = [];\r\n each(this._columns, (function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && isDefined(this.sortIndex) && !isDefined(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n }));\r\n each(sortColumns, (function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n }));\r\n return sort.length > 0 ? sort : null\r\n }\r\n getGroupDataSourceParameters(useLocalSelector) {\r\n var group = [];\r\n each(this.getGroupColumns(), (function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n }));\r\n return group.length > 0 ? group : null\r\n }\r\n refresh(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n each(this._columns, (function() {\r\n var {\r\n lookup: lookup\r\n } = this;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n }));\r\n return when.apply($, deferreds).done(resetColumnsCache.bind(null, this))\r\n }\r\n _updateColumnOptions(column, columnIndex) {\r\n var _a, _b, _c, _d;\r\n var shouldTakeOriginalCallbackFromPrevious = this._reinitAfterLookupChanges && (null === (_a = this._previousColumns) || void 0 === _a ? void 0 : _a[columnIndex]);\r\n column.selector = null !== (_b = column.selector) && void 0 !== _b ? _b : data => column.calculateCellValue(data);\r\n column.selector.columnIndex = columnIndex;\r\n column.selector.originalCallback = shouldTakeOriginalCallbackFromPrevious ? null !== (_d = null === (_c = this._previousColumns[columnIndex].selector) || void 0 === _c ? void 0 : _c.originalCallback) && void 0 !== _d ? _d : column.selector : column.selector;\r\n each([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], (_, calculateCallbackName) => {\r\n var calculateCallback = column[calculateCallbackName];\r\n if (isFunction(calculateCallback)) {\r\n if (!calculateCallback.originalCallback) {\r\n var context = {\r\n column: column\r\n };\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(context.column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex;\r\n column[calculateCallbackName].context = context\r\n } else {\r\n column[calculateCallbackName].context.column = column\r\n }\r\n }\r\n });\r\n if (isString(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = compileGetter(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || getAlignmentByDataType(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || gridCoreUtils.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!isDefined(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = isDefined(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate && !column.lookup\r\n }\r\n }\r\n updateColumnDataTypes(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n each(that._columns, (index, column) => {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (gridCoreUtils.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && gridCoreUtils.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(gridCoreUtils.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n });\r\n return isColumnDataTypesUpdated\r\n }\r\n _customizeColumns(columns) {\r\n var customizeColumns = this.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some(column => isObject(column.ownerBand));\r\n if (hasOwnerBand) {\r\n updateIndexes(this)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(this, createColumnsFromOptions(this, columns))\r\n }\r\n }\r\n updateColumns(dataSource, forceApplying, isApplyingUserState) {\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n if (!isApplyingUserState) {\r\n this._customizeColumns(this._columns)\r\n }\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return when(this.refresh(true)).always(() => {\r\n if (this._columns !== columns) {\r\n return\r\n }\r\n this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(this)\r\n })\r\n }\r\n }\r\n _updateChanges(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n if (this._dataController && !gridCoreUtils.equalFilterParameters(parameters.filtering, this._dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n }\r\n updateSortingGrouping(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n each(columns, (index, column) => {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var {\r\n selector: selector\r\n } = sortParameters[i];\r\n var {\r\n isExpanded: isExpanded\r\n } = sortParameters[i];\r\n if (selector === column.dataField || selector === column.name || selector === column.displayField || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n if (fromDataSource) {\r\n column.sortOrder = \"sortOrder\" in column ? column.sortOrder : sortParameters[i].desc ? \"desc\" : \"asc\"\r\n } else {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\")\r\n }\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n })\r\n };\r\n if (dataSource) {\r\n sortParameters = gridCoreUtils.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = gridCoreUtils.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n var groupingChanged = !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters, true);\r\n var groupExpandingChanged = !groupingChanged && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters);\r\n if (!that._columns.length) {\r\n each(groupParameters, (index, group) => {\r\n that._columns.push(group.selector)\r\n });\r\n each(sortParameters, (index, sort) => {\r\n if (!isFunction(sort.selector)) {\r\n that._columns.push(sort.selector)\r\n }\r\n });\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && (groupingChanged || groupExpandingChanged)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n groupingChanged && updateColumnChanges(that, \"grouping\");\r\n groupExpandingChanged && updateColumnChanges(that, \"groupExpanding\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !gridCoreUtils.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n }\r\n updateFilter(filter, remoteFiltering, columnIndex, filterValue) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = extend([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if (isString(filter[0]) && \"!\" !== filter[0]) {\r\n var column = this.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if (config().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n } else if (isFunction(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue;\r\n filter[0].selectedFilterOperation = filter.selectedFilterOperation\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n }\r\n columnCount() {\r\n return this._columns ? this._columns.length : 0\r\n }\r\n columnOption(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return extend({}, column)\r\n }\r\n if (isString(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n }\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n } else if (isObject(option)) {\r\n each(option, (optionName, value) => {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n })\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n clearSorting() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"sortOrder\", void 0);\r\n delete findColumn(this._columns, i).sortOrder\r\n }\r\n this.endUpdate()\r\n }\r\n clearGrouping() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n this.endUpdate()\r\n }\r\n getVisibleIndex(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n }\r\n getVisibleIndexByColumn(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(col => col.index === column.index && col.command === column.command)[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n }\r\n getVisibleColumnIndex(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n }\r\n addColumn(options) {\r\n var column = createColumn(this, options);\r\n var index = this._columns.length;\r\n this._columns.push(column);\r\n if (column.isBand) {\r\n this._columns = createColumnsFromOptions(this, this._columns);\r\n column = this._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(this, column);\r\n this.updateColumns(this._dataSource);\r\n this._checkColumns()\r\n }\r\n deleteColumn(id) {\r\n var column = this.columnOption(id);\r\n if (column && column.index >= 0) {\r\n convertOwnerBandToColumnReference(this._columns);\r\n this._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = this.getChildrenByBandColumn(column.index).map(column => column.index);\r\n this._columns = this._columns.filter(column => childIndexes.indexOf(column.index) < 0)\r\n }\r\n updateIndexes(this);\r\n this.updateColumns(this._dataSource)\r\n }\r\n }\r\n addCommandColumn(options) {\r\n var commandColumn = this._commandColumns.filter(column => column.command === options.command)[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n }\r\n getUserState() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n each(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n }\r\n setName(column) {\r\n column.name = column.name || column.dataField || column.type\r\n }\r\n setUserState(state) {\r\n var dataSource = this._dataSource;\r\n var ignoreColumnOptionNames = this.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = this.getCommonSettings();\r\n if (!this.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === this.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !this.option(\"filterPanel.visible\");\r\n if (!this.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!this.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n this._columnsUserState = state;\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n this._hasUserState = !!state;\r\n updateColumnChanges(this, \"filtering\");\r\n this.init(true);\r\n if (dataSource) {\r\n dataSource.sort(this.getSortDataSourceParameters());\r\n dataSource.group(this.getGroupDataSourceParameters())\r\n }\r\n }\r\n _checkColumns() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(column => {\r\n var _a;\r\n var {\r\n name: name\r\n } = column;\r\n var isBand = null === (_a = column.columns) || void 0 === _a ? void 0 : _a.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n errors.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n errors.log(\"E1060\")\r\n }\r\n }\r\n _createCalculatedColumnOptions(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var {\r\n dataField: dataField\r\n } = columnOptions;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if (isString(dataField)) {\r\n var getter = compileGetter(dataField);\r\n calculatedColumnOptions = {\r\n caption: captionize(dataField),\r\n calculateCellValue(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue(text) {\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === this.dataType) {\r\n if (isString(text) && this.format) {\r\n result = strictParseNumber(text.trim(), this.format)\r\n } else if (isDefined(text) && isNumeric(text)) {\r\n result = Number(text)\r\n }\r\n } else if (\"boolean\" === this.dataType) {\r\n if (text === this.trueText) {\r\n result = true\r\n } else if (text === this.falseText) {\r\n result = false\r\n }\r\n } else if (gridCoreUtils.isDateType(this.dataType)) {\r\n parsedValue = dateLocalization.parse(text, this.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return filterUtils.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.defaultFilterOperation = \"=\";\r\n calculatedColumnOptions.createFilterExpression = function(filterValue, selectedFilterOperation) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if (isFunction(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue;\r\n result.selectedFilterOperation = selectedFilterOperation\r\n }\r\n return result\r\n };\r\n if (!dataField || !isString(dataField)) {\r\n extend(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: () => null\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = compileGetter(this.valueExpr);\r\n var calculateDisplayValue = compileGetter(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue)\r\n }\r\n }\r\n },\r\n update() {\r\n var that = this;\r\n var {\r\n dataSource: dataSource\r\n } = that;\r\n if (dataSource) {\r\n if (isFunction(dataSource) && !variableWrapper.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if (isPlainObject(dataSource) || dataSource instanceof Store || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = normalizeDataSourceOptions(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new DataSource(dataSourceOptions);\r\n return dataSource.load().done(data => {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n })\r\n }\r\n } else {\r\n errors.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = Callbacks();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }\r\n each(calculatedColumnOptions, optionName => {\r\n if (isFunction(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\".concat(optionName.charAt(0).toUpperCase()).concat(optionName.substr(1));\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n });\r\n return calculatedColumnOptions\r\n }\r\n getRowCount() {\r\n this._rowCount = this._rowCount || getRowCount(this);\r\n return this._rowCount\r\n }\r\n getRowIndex(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || isDefined(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n }\r\n getChildrenByBandColumn(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var result = getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter(column => column.visible && !column.command).sort((column1, column2) => column1.visibleIndex - column2.visibleIndex)\r\n }\r\n return result\r\n }\r\n isParentBandColumn(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n each(parentBandColumns, (_, bandColumn) => {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n isParentColumnVisible(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && each(bandColumns, (_, bandColumn) => {\r\n result = result && bandColumn.visible;\r\n return result\r\n });\r\n return result\r\n }\r\n getColumnId(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\".concat(column.type)\r\n }\r\n return \"command:\".concat(column.command)\r\n }\r\n return column.index\r\n }\r\n getCustomizeTextByDataType(dataType) {\r\n return getCustomizeTextByDataType(dataType)\r\n }\r\n getHeaderContentAlignment(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n}\r\nexport var columnsControllerModule = {\r\n defaultOptions: () => ({\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: messageLocalization.format(\"dxDataGrid-trueText\"),\r\n falseText: messageLocalization.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }),\r\n controllers: {\r\n columns: ColumnsController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_columns_controller.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../../grids/grid_core/columns_controller/m_columns_controller\";\r\nimport gridCore from \"./m_core\";\r\ngridCore.registerModule(\"columns\", {\r\n defaultOptions: () => extend(true, {}, columnsControllerModule.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n }),\r\n controllers: columnsControllerModule.controllers\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/array_compare.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"./type\";\r\nvar getKeyWrapper = function(item, getKey) {\r\n var key = getKey(item);\r\n if (isObject(key)) {\r\n try {\r\n return JSON.stringify(key)\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nvar getSameNewByOld = function(oldItem, newItems, newIndexByKey, getKey) {\r\n var key = getKeyWrapper(oldItem, getKey);\r\n return newItems[newIndexByKey[key]]\r\n};\r\nexport var isKeysEqual = function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nexport var findChanges = function(oldItems, newItems, getKey, isItemEquals) {\r\n var oldIndexByKey = {};\r\n var newIndexByKey = {};\r\n var addedCount = 0;\r\n var removeCount = 0;\r\n var result = [];\r\n oldItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n oldIndexByKey[key] = index\r\n }));\r\n newItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n newIndexByKey[key] = index\r\n }));\r\n var itemCount = Math.max(oldItems.length, newItems.length);\r\n for (var index = 0; index < itemCount + addedCount; index++) {\r\n var newItem = newItems[index];\r\n var oldNextIndex = index - addedCount + removeCount;\r\n var nextOldItem = oldItems[oldNextIndex];\r\n var isRemoved = !newItem || nextOldItem && !getSameNewByOld(nextOldItem, newItems, newIndexByKey, getKey);\r\n if (isRemoved) {\r\n if (nextOldItem) {\r\n result.push({\r\n type: \"remove\",\r\n key: getKey(nextOldItem),\r\n index: index,\r\n oldItem: nextOldItem\r\n });\r\n removeCount++;\r\n index--\r\n }\r\n } else {\r\n var key = getKeyWrapper(newItem, getKey);\r\n var oldIndex = oldIndexByKey[key];\r\n var oldItem = oldItems[oldIndex];\r\n if (!oldItem) {\r\n addedCount++;\r\n result.push({\r\n type: \"insert\",\r\n data: newItem,\r\n index: index\r\n })\r\n } else if (oldIndex === oldNextIndex) {\r\n if (!isItemEquals(oldItem, newItem)) {\r\n result.push({\r\n type: \"update\",\r\n data: newItem,\r\n key: getKey(newItem),\r\n index: index,\r\n oldItem: oldItem\r\n })\r\n }\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_data_controller.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nvar DataControllerMock = {\r\n load: () => Deferred().reject(),\r\n loadSingle: () => Deferred().reject(),\r\n loadFromStore: () => Deferred().reject(),\r\n loadNextPage: () => Deferred().reject(),\r\n loadOptions: noop,\r\n userData: noop,\r\n cancel: noop,\r\n cancelAll: noop,\r\n filter: noop,\r\n addSearchFilter: noop,\r\n group: noop,\r\n paginate: noop,\r\n pageSize: noop,\r\n pageIndex: noop,\r\n resetDataSourcePageIndex: noop,\r\n totalCount: noop,\r\n isLastPage: noop,\r\n isLoading: noop,\r\n isLoaded: noop,\r\n searchValue: noop,\r\n searchOperation: noop,\r\n searchExpr: noop,\r\n select: noop,\r\n key: noop,\r\n keyOf: noop,\r\n store: noop,\r\n items: noop,\r\n applyMapFunction: noop,\r\n getDataSource: noop,\r\n reload: noop,\r\n on: noop,\r\n off: noop\r\n};\r\nclass DataController {\r\n constructor(dataSource) {\r\n if (!dataSource) {\r\n return DataControllerMock\r\n }\r\n this._dataSource = dataSource\r\n }\r\n load() {\r\n return this._dataSource.load()\r\n }\r\n loadSingle(propName, propValue) {\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = this.key()\r\n }\r\n return this._dataSource.loadSingle(propName, propValue)\r\n }\r\n loadFromStore(loadOptions) {\r\n return this.store().load(loadOptions)\r\n }\r\n loadNextPage() {\r\n this.pageIndex(1 + this.pageIndex());\r\n return this.load()\r\n }\r\n loadOptions() {\r\n return this._dataSource.loadOptions()\r\n }\r\n userData() {\r\n return this._dataSource._userData\r\n }\r\n cancel(operationId) {\r\n this._dataSource.cancel(operationId)\r\n }\r\n cancelAll() {\r\n this._dataSource.cancelAll()\r\n }\r\n filter(filter) {\r\n return this._dataSource.filter(filter)\r\n }\r\n addSearchFilter(storeLoadOptions) {\r\n this._dataSource._addSearchFilter(storeLoadOptions)\r\n }\r\n group(group) {\r\n return this._dataSource.group(group)\r\n }\r\n paginate() {\r\n return this._dataSource.paginate()\r\n }\r\n pageSize() {\r\n return this._dataSource._pageSize\r\n }\r\n pageIndex(pageIndex) {\r\n return this._dataSource.pageIndex(pageIndex)\r\n }\r\n resetDataSourcePageIndex() {\r\n if (this.pageIndex()) {\r\n this.pageIndex(0);\r\n this.load()\r\n }\r\n }\r\n totalCount() {\r\n return this._dataSource.totalCount()\r\n }\r\n isLastPage() {\r\n return this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n }\r\n isLoading() {\r\n return this._dataSource.isLoading()\r\n }\r\n isLoaded() {\r\n return this._dataSource.isLoaded()\r\n }\r\n searchValue(value) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchValue()\r\n }\r\n return this._dataSource.searchValue(value)\r\n }\r\n searchOperation(operation) {\r\n return this._dataSource.searchOperation(operation)\r\n }\r\n searchExpr(expr) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchExpr()\r\n }\r\n return this._dataSource.searchExpr(expr)\r\n }\r\n select() {\r\n return this._dataSource.select(...arguments)\r\n }\r\n key() {\r\n return this._dataSource.key()\r\n }\r\n keyOf(item) {\r\n return this.store().keyOf(item)\r\n }\r\n store() {\r\n return this._dataSource.store()\r\n }\r\n items() {\r\n return this._dataSource.items()\r\n }\r\n applyMapFunction(data) {\r\n return this._dataSource._applyMapFunction(data)\r\n }\r\n getDataSource() {\r\n return this._dataSource || null\r\n }\r\n reload() {\r\n return this._dataSource.reload()\r\n }\r\n on(event, handler) {\r\n this._dataSource.on(event, handler)\r\n }\r\n off(event, handler) {\r\n this._dataSource.off(event, handler)\r\n }\r\n}\r\nexport default DataController;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_controller/m_data_helper_mixin.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../../data/data_source/utils\";\r\nimport DataController from \"../../../ui/collection/m_data_controller\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nexport var DataHelperMixin = Base => class extends Base {\r\n postCtor() {\r\n this.on(\"disposing\", () => {\r\n this._disposeDataSource()\r\n })\r\n }\r\n _refreshDataSource() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n }\r\n _initDataSource() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers();\r\n this._initDataController()\r\n }\r\n }\r\n _initDataController() {\r\n var _a;\r\n var dataController = null === (_a = this.option) || void 0 === _a ? void 0 : _a.call(this, \"_dataController\");\r\n var dataSource = this._dataSource;\r\n if (dataController) {\r\n this._dataController = dataController\r\n } else {\r\n this._dataController = new DataController(dataSource)\r\n }\r\n }\r\n _addDataSourceHandlers() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n }\r\n _addReadyWatcher() {\r\n this.readyWatcher = function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this);\r\n this._dataSource.on(\"loadingChanged\", this.readyWatcher)\r\n }\r\n _addDataSourceChangeHandler() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n }\r\n _addDataSourceLoadErrorHandler() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n }\r\n _addDataSourceLoadingChangedHandler() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n }\r\n _loadDataSource() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n }\r\n _loadSingle(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n }\r\n _isLastPage() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n }\r\n _isDataSourceLoading() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n }\r\n _disposeDataSource() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler);\r\n if (this._dataSource._eventsStrategy) {\r\n this._dataSource._eventsStrategy.off(\"loadingChanged\", this.readyWatcher)\r\n }\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n }\r\n getDataSource() {\r\n return this._dataSource || null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_controller/m_data_controller.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n findChanges\r\n} from \"../../../../core/utils/array_compare\";\r\nimport {\r\n deferRender,\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport CustomStore from \"../../../../data/custom_store\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n DataHelperMixin\r\n} from \"./m_data_helper_mixin\";\r\nvar changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n var oldValue = that._getPagingOptionValue(optionName);\r\n if (oldValue !== value) {\r\n if (\"pageSize\" === optionName) {\r\n dataSource.pageIndex(0)\r\n }\r\n dataSource[optionName](value);\r\n that._skipProcessingPagingChange = true;\r\n that.option(\"paging.\".concat(optionName), value);\r\n that._skipProcessingPagingChange = false;\r\n var pageIndex = dataSource.pageIndex();\r\n that._isPaging = \"pageIndex\" === optionName;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(() => {\r\n that._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n return Deferred().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n};\r\nexport class DataController extends(DataHelperMixin(modules.Controller)) {\r\n init() {\r\n this._items = [];\r\n this._cachedProcessedItems = null;\r\n this._columnsController = this.getController(\"columns\");\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this._editingController = this.getController(\"editing\");\r\n this._editorFactoryController = this.getController(\"editorFactory\");\r\n this._errorHandlingController = this.getController(\"errorHandling\");\r\n this._filterSyncController = this.getController(\"filterSync\");\r\n this._applyFilterController = this.getController(\"applyFilter\");\r\n this._keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n this._focusController = this.getController(\"focus\");\r\n this._headerFilterController = this.getController(\"headerFilter\");\r\n this._selectionController = this.getController(\"selection\");\r\n this._stateStoringController = this.getController(\"stateStoring\");\r\n this._validatingController = this.getController(\"validating\");\r\n this._adaptiveExpandedKey = void 0;\r\n this._isPaging = false;\r\n this._currentOperationTypes = null;\r\n this._dataChangedHandler = e => {\r\n this._currentOperationTypes = this._dataSource.operationTypes();\r\n this._handleDataChanged(e);\r\n this._currentOperationTypes = null\r\n };\r\n this._columnsChangedHandler = this._handleColumnsChanged.bind(this);\r\n this._loadingChangedHandler = this._handleLoadingChanged.bind(this);\r\n this._loadErrorHandler = this._handleLoadError.bind(this);\r\n this._customizeStoreLoadOptionsHandler = this._handleCustomizeStoreLoadOptions.bind(this);\r\n this._changingHandler = this._handleChanging.bind(this);\r\n this._dataPushedHandler = this._handleDataPushed.bind(this);\r\n this._columnsController.columnsChanged.add(this._columnsChangedHandler);\r\n this._isLoading = false;\r\n this._isCustomLoading = false;\r\n this._repaintChangesOnly = void 0;\r\n this._changes = [];\r\n this.createAction(\"onDataErrorOccurred\");\r\n this.dataErrorOccurred.add(error => this.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n }));\r\n this._refreshDataSource();\r\n this.postCtor()\r\n }\r\n _getPagingOptionValue(optionName) {\r\n return this._dataSource[optionName]()\r\n }\r\n callbackNames() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\", \"pushed\"]\r\n }\r\n callbackFlags(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n return\r\n }\r\n publicMethods() {\r\n return [\"_disposeDataSource\", \"beginCustomLoading\", \"byKey\", \"clearFilter\", \"endCustomLoading\", \"filter\", \"getCombinedFilter\", \"getDataByKeys\", \"getDataSource\", \"getKeyByRowIndex\", \"getRowIndexByKey\", \"getVisibleRows\", \"keyOf\", \"pageCount\", \"pageIndex\", \"pageSize\", \"refresh\", \"repaintRows\", \"totalCount\"]\r\n }\r\n reset() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n }\r\n _handleDataSourceChange(args) {\r\n if (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue)) {\r\n var isValueChanged = args.value !== args.previousValue;\r\n if (isValueChanged) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n if (this.needToRefreshOnDataSourceChange(args)) {\r\n this.refresh(this.option(\"repaintChangesOnly\"))\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n needToRefreshOnDataSourceChange(args) {\r\n return true\r\n }\r\n optionChanged(args) {\r\n var that = this;\r\n var dataSource;\r\n var changedPagingOptions;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && this._handleDataSourceChange(args)) {\r\n handled();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"cacheEnabled\":\r\n case \"repaintChangesOnly\":\r\n case \"highlightChanges\":\r\n case \"loadingTimeout\":\r\n handled();\r\n break;\r\n case \"remoteOperations\":\r\n case \"keyExpr\":\r\n case \"dataSource\":\r\n case \"scrolling\":\r\n handled();\r\n that.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = that.dataSource();\r\n if (dataSource) {\r\n changedPagingOptions = that._setPagingOptions(dataSource);\r\n if (changedPagingOptions) {\r\n var pageIndex = dataSource.pageIndex();\r\n this._isPaging = changedPagingOptions.isPageIndexChanged;\r\n dataSource.load().done(() => {\r\n this._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n that.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = that.dataSource();\r\n if (dataSource && dataSource.isLoading() && args.name === args.fullName) {\r\n this._useSortingGroupingFromColumns = true;\r\n dataSource.load()\r\n }\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n isReady() {\r\n return !this._isLoading\r\n }\r\n getDataSource() {\r\n return this._dataSource && this._dataSource._dataSource\r\n }\r\n getCombinedFilter(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n }\r\n combinedFilter(filter, returnDataField) {\r\n if (!this._dataSource) {\r\n return filter\r\n }\r\n var combined = null !== filter && void 0 !== filter ? filter : this._dataSource.filter();\r\n var isColumnsTypesDefined = this._columnsController.isDataSourceApplied() || this._columnsController.isAllDataTypesDefined();\r\n if (isColumnsTypesDefined) {\r\n var additionalFilter = this._calculateAdditionalFilter();\r\n combined = additionalFilter ? gridCoreUtils.combineFilters([additionalFilter, combined]) : combined\r\n }\r\n var isRemoteFiltering = this._dataSource.remoteOperations().filtering || returnDataField;\r\n combined = this._columnsController.updateFilter(combined, isRemoteFiltering);\r\n return combined\r\n }\r\n waitReady() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new Deferred;\r\n return this._readyDeferred\r\n }\r\n return when()\r\n }\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(change => change.repaintChangesOnly);\r\n this.updateItems(1 === changes.length ? changes[0] : {\r\n repaintChangesOnly: repaintChangesOnly\r\n })\r\n }\r\n if (this._readyDeferred) {\r\n this._readyDeferred.resolve();\r\n this._readyDeferred = null\r\n }\r\n }\r\n _handleCustomizeStoreLoadOptions(e) {\r\n var _a;\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = e;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\r\n if (1 === (null === (_a = storeLoadOptions.filter) || void 0 === _a ? void 0 : _a.length) && \"!\" === storeLoadOptions.filter[0]) {\r\n e.data = [];\r\n e.extra = e.extra || {};\r\n e.extra.totalCount = 0\r\n }\r\n if (!columnsController.isDataSourceApplied()) {\r\n columnsController.updateColumnDataTypes(dataSource)\r\n }\r\n this._columnsUpdating = true;\r\n columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);\r\n this._columnsUpdating = false;\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters();\r\n storeLoadOptions.group = columnsController.getGroupDataSourceParameters();\r\n dataSource.sort(storeLoadOptions.sort);\r\n dataSource.group(storeLoadOptions.group);\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().sorting);\r\n e.group = columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().grouping)\r\n }\r\n _handleColumnsChanged(e) {\r\n var that = this;\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n if (changeTypes.sorting || changeTypes.grouping) {\r\n if (that._dataSource && !that._columnsUpdating) {\r\n that._dataSource.group(that._columnsController.getGroupDataSourceParameters());\r\n that._dataSource.sort(that._columnsController.getSortDataSourceParameters());\r\n that.reload()\r\n }\r\n } else if (changeTypes.columns) {\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (optionNames.filterValues || optionNames.filterType && Array.isArray(filterValues) || optionNames.filterValue || optionNames.selectedFilterOperation || optionNames.allowFiltering) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || isDefined(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add((function updateItemsHandler(change) {\r\n var _a;\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems({\r\n repaintChangesOnly: false,\r\n virtualColumnsScrolling: null === (_a = null === change || void 0 === change ? void 0 : change.changeTypes) || void 0 === _a ? void 0 : _a.virtualColumnsScrolling\r\n })\r\n }))\r\n }\r\n if (isDefined(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && (isDefined(column.filterValue) || isDefined(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering && !this._needApplyFilter) {\r\n that.reload()\r\n }\r\n }\r\n _handleDataChanged(e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n var isAsyncDataSourceApplying = false;\r\n this._useSortingGroupingFromColumns = false;\r\n if (dataSource && !that._isDataSourceApplying) {\r\n that._isDataSourceApplying = true;\r\n when(that._columnsController.applyDataSource(dataSource)).done(() => {\r\n if (that._isLoading) {\r\n that._handleLoadingChanged(false)\r\n }\r\n if (isAsyncDataSourceApplying && e && e.isDelayed) {\r\n e.isDelayed = false\r\n }\r\n that._isDataSourceApplying = false;\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && (additionalFilter = that._calculateAdditionalFilter(), additionalFilter && additionalFilter.length)) {\r\n errors.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n var additionalFilter\r\n }).fail(() => {\r\n that._isDataSourceApplying = false\r\n });\r\n if (that._isDataSourceApplying) {\r\n isAsyncDataSourceApplying = true;\r\n that._handleLoadingChanged(true)\r\n }\r\n that._needApplyFilter = !that._columnsController.isDataSourceApplied();\r\n that._isAllDataTypesDefined = columnsController.isAllDataTypesDefined()\r\n }\r\n }\r\n _handleLoadingChanged(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n }\r\n _handleLoadError(e) {\r\n this.dataErrorOccurred.fire(e)\r\n }\r\n _handleDataPushed(changes) {\r\n this.pushed.fire(changes)\r\n }\r\n fireError() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.dataErrorOccurred.fire(errors.Error.apply(errors, args))\r\n }\r\n _setPagingOptions(dataSource) {\r\n var pageIndex = this.option(\"paging.pageIndex\");\r\n var pageSize = this.option(\"paging.pageSize\");\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var appendMode = \"infinite\" === scrollingMode;\r\n var virtualMode = \"virtual\" === scrollingMode;\r\n var paginate = pagingEnabled || virtualMode || appendMode;\r\n var isPaginateChanged = false;\r\n var isPageSizeChanged = false;\r\n var isPageIndexChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isPaginateChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isPageSizeChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isPageIndexChanged = true\r\n }\r\n if (isPaginateChanged || isPageSizeChanged || isPageIndexChanged) {\r\n return {\r\n isPaginateChanged: isPaginateChanged,\r\n isPageSizeChanged: isPageSizeChanged,\r\n isPageIndexChanged: isPageIndexChanged\r\n }\r\n }\r\n return false\r\n }\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"keyExpr\")\r\n }\r\n }\r\n }\r\n return dataSource\r\n }\r\n _initDataSource() {\r\n var oldDataSource = this._dataSource;\r\n super._initDataSource();\r\n var dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n this._cachedProcessedItems = null;\r\n if (dataSource) {\r\n var changedPagingOptions = this._setPagingOptions(dataSource);\r\n this._isPaging = null === changedPagingOptions || void 0 === changedPagingOptions ? void 0 : changedPagingOptions.isPageIndexChanged;\r\n this.setDataSource(dataSource)\r\n } else if (oldDataSource) {\r\n this.updateItems()\r\n }\r\n }\r\n _loadDataSource() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result = new Deferred;\r\n when(this._columnsController.refresh(true)).always(() => {\r\n if (dataSource) {\r\n dataSource.load().done((function() {\r\n that._isPaging = false;\r\n result.resolve.apply(result, arguments)\r\n })).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n });\r\n return result.promise()\r\n }\r\n _beforeProcessItems(items) {\r\n return items.slice(0)\r\n }\r\n getRowIndexDelta() {\r\n return 0\r\n }\r\n getDataIndex(change) {\r\n var visibleItems = this._items;\r\n var lastVisibleItem = \"append\" === change.changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n return isDefined(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0\r\n }\r\n _processItems(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var {\r\n changeType: changeType\r\n } = change;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var dataIndex = this.getDataIndex(change);\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n each(items, (index, item) => {\r\n if (isDefined(item)) {\r\n options.rowIndex = index - rowIndexDelta;\r\n item = that._processItem(item, options);\r\n result.push(item)\r\n }\r\n });\r\n return result\r\n }\r\n _processItem(item, options) {\r\n item = this._generateDataItem(item, options);\r\n item = this._processDataItem(item, options);\r\n item.dataIndex = options.dataIndex++;\r\n return item\r\n }\r\n _generateDataItem(data, options) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n }\r\n _processDataItem(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n }\r\n generateDataValues(data, columns, isModified) {\r\n var values = [];\r\n var value;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n value = isModified ? void 0 : null;\r\n if (!column.command) {\r\n if (column.calculateCellValue) {\r\n value = column.calculateCellValue(data)\r\n } else if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n }\r\n _applyChange(change) {\r\n if (\"update\" === change.changeType) {\r\n this._applyChangeUpdate(change)\r\n } else if (this.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n this._applyChangesOnly(change)\r\n } else if (\"refresh\" === change.changeType) {\r\n this._applyChangeFull(change)\r\n }\r\n }\r\n _applyChangeFull(change) {\r\n this._items = change.items.slice(0)\r\n }\r\n _getRowIndices(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort((a, b) => a - b);\r\n for (var i = 0; i < rowIndices.length; i++) {\r\n var correctedRowIndex = rowIndices[i];\r\n if (change.allowInvisibleRowIndices) {\r\n correctedRowIndex += rowIndexDelta\r\n }\r\n if (correctedRowIndex < 0) {\r\n rowIndices.splice(i, 1);\r\n i--\r\n }\r\n }\r\n return rowIndices\r\n }\r\n _applyChangeUpdate(change) {\r\n var that = this;\r\n var {\r\n items: items\r\n } = change;\r\n var rowIndices = that._getRowIndices(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var repaintChangesOnly = that.option(\"repaintChangesOnly\");\r\n var prevIndex = -1;\r\n var rowIndexCorrection = 0;\r\n var changeType;\r\n change.items = [];\r\n change.rowIndices = [];\r\n change.columnIndices = [];\r\n change.changeTypes = [];\r\n var equalItems = function(item1, item2, strict) {\r\n var result = item1 && item2 && equalByValue(item1.key, item2.key);\r\n if (result && strict) {\r\n result = item1.rowType === item2.rowType && (\"detail\" !== item2.rowType || item1.isEditing === item2.isEditing)\r\n }\r\n return result\r\n };\r\n each(rowIndices, (index, rowIndex) => {\r\n var columnIndices;\r\n rowIndex += rowIndexCorrection + rowIndexDelta;\r\n if (prevIndex === rowIndex) {\r\n return\r\n }\r\n prevIndex = rowIndex;\r\n var oldItem = that._items[rowIndex];\r\n var oldNextItem = that._items[rowIndex + 1];\r\n var newItem = items[rowIndex];\r\n var newNextItem = items[rowIndex + 1];\r\n var strict = equalItems(oldItem, oldNextItem) || equalItems(newItem, newNextItem);\r\n if (newItem) {\r\n newItem.rowIndex = rowIndex;\r\n change.items.push(newItem)\r\n }\r\n if (oldItem && newItem && equalItems(oldItem, newItem, strict)) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem;\r\n if (oldItem.visible !== newItem.visible) {\r\n change.items.splice(-1, 1, {\r\n visible: newItem.visible\r\n })\r\n } else if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n } else if (newItem && !oldItem || newNextItem && equalItems(oldItem, newNextItem, strict)) {\r\n changeType = \"insert\";\r\n that._items.splice(rowIndex, 0, newItem);\r\n rowIndexCorrection++\r\n } else if (oldItem && !newItem || oldNextItem && equalItems(newItem, oldNextItem, strict)) {\r\n changeType = \"remove\";\r\n that._items.splice(rowIndex, 1);\r\n rowIndexCorrection--;\r\n prevIndex = -1\r\n } else if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n change.rowIndices.push(rowIndex - rowIndexDelta);\r\n change.changeTypes.push(changeType);\r\n change.columnIndices.push(columnIndices)\r\n })\r\n }\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n if (JSON.stringify(oldRow.values[columnIndex]) !== JSON.stringify(newRow.values[columnIndex])) {\r\n return true\r\n }\r\n\r\n function isCellModified(row, columnIndex) {\r\n return row.modifiedValues ? void 0 !== row.modifiedValues[columnIndex] : false\r\n }\r\n if (isCellModified(oldRow, columnIndex) !== isCellModified(newRow, columnIndex)) {\r\n return true\r\n }\r\n return false\r\n }\r\n _getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var columnIndices;\r\n if (oldItem.rowType === newItem.rowType) {\r\n if (\"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n columnIndices = [];\r\n if (\"detail\" !== newItem.rowType) {\r\n for (var columnIndex = 0; columnIndex < oldItem.values.length; columnIndex++) {\r\n if (this._isCellChanged(oldItem, newItem, visibleRowIndex, columnIndex, isLiveUpdate)) {\r\n columnIndices.push(columnIndex)\r\n }\r\n }\r\n }\r\n }\r\n if (\"group\" === newItem.rowType && oldItem.cells) {\r\n var isRowStateEquals = newItem.isExpanded === oldItem.isExpanded && newItem.data.isContinuation === oldItem.data.isContinuation && newItem.data.isContinuationOnNextPage === oldItem.data.isContinuationOnNextPage;\r\n if (isRowStateEquals) {\r\n columnIndices = oldItem.cells.map((cell, index) => {\r\n var _a;\r\n return \"groupExpand\" !== (null === (_a = cell.column) || void 0 === _a ? void 0 : _a.type) ? index : -1\r\n }).filter(index => index >= 0)\r\n }\r\n }\r\n }\r\n return columnIndices\r\n }\r\n _partialUpdateRow(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if ((null === changedColumnIndices || void 0 === changedColumnIndices ? void 0 : changedColumnIndices.length) && this.option(\"dataRowTemplate\")) {\r\n changedColumnIndices = void 0\r\n }\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach((cell, columnIndex) => {\r\n var isCellChanged = changedColumnIndices.indexOf(columnIndex) >= 0;\r\n if (!isCellChanged && cell && cell.update) {\r\n cell.update(newItem)\r\n }\r\n });\r\n newItem.update = oldItem.update;\r\n newItem.watch = oldItem.watch;\r\n newItem.cells = oldItem.cells;\r\n if (isLiveUpdate) {\r\n newItem.oldValues = oldItem.values\r\n }\r\n oldItem.update && oldItem.update(newItem)\r\n }\r\n return changedColumnIndices\r\n }\r\n _isItemEquals(item1, item2) {\r\n var _a, _b, _c, _d;\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n if ([\"modified\", \"isNewRow\", \"removed\", \"isEditing\"].some(field => item1[field] !== item2[field])) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var expandedMatch = item1.isExpanded === item2.isExpanded;\r\n var summaryCellsMatch = JSON.stringify(item1.summaryCells) === JSON.stringify(item2.summaryCells);\r\n var continuationMatch = (null === (_a = item1.data) || void 0 === _a ? void 0 : _a.isContinuation) === (null === (_b = item2.data) || void 0 === _b ? void 0 : _b.isContinuation) && (null === (_c = item1.data) || void 0 === _c ? void 0 : _c.isContinuationOnNextPage) === (null === (_d = item2.data) || void 0 === _d ? void 0 : _d.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n _applyChangesOnly(change) {\r\n var _a;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n var isLiveUpdate = null !== (_a = null === change || void 0 === change ? void 0 : change.isLiveUpdate) && void 0 !== _a ? _a : true;\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return \"\".concat(row.rowType, \",\").concat(JSON.stringify(row.key))\r\n }\r\n return\r\n }\r\n var currentItems = this._items;\r\n var oldItems = currentItems.slice();\r\n change.items.forEach((item, index) => {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n });\r\n var result = findChanges(oldItems, change.items, getRowKey, (item1, item2) => {\r\n if (!this._isItemEquals(item1, item2)) {\r\n return false\r\n }\r\n if (item1.cells) {\r\n item1.update && item1.update(item2);\r\n item1.cells.forEach(cell => {\r\n if (cell && cell.update) {\r\n cell.update(item2, true)\r\n }\r\n })\r\n }\r\n return true\r\n });\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(change => {\r\n switch (change.type) {\r\n case \"update\":\r\n var {\r\n index: index\r\n } = change;\r\n var newItem = change.data;\r\n var {\r\n oldItem: oldItem\r\n } = change;\r\n var changedColumnIndices = this._partialUpdateRow(oldItem, newItem, index, isLiveUpdate);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n currentItems[index] = newItem;\r\n columnIndices.push(changedColumnIndices);\r\n break;\r\n case \"insert\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"insert\");\r\n items.push(change.data);\r\n columnIndices.push(void 0);\r\n currentItems.splice(change.index, 0, change.data);\r\n break;\r\n case \"remove\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"remove\");\r\n currentItems.splice(change.index, 1);\r\n items.push(change.oldItem);\r\n columnIndices.push(void 0)\r\n }\r\n });\r\n change.repaintChangesOnly = true;\r\n change.changeType = \"update\";\r\n change.rowIndices = rowIndices;\r\n change.columnIndices = columnIndices;\r\n change.changeTypes = changeTypes;\r\n change.items = items;\r\n if (oldItems.length) {\r\n change.isLiveUpdate = true\r\n }\r\n this._correctRowIndices(rowIndex => {\r\n var oldRowIndexOffset = this._rowIndexOffset || 0;\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var oldItem = oldItems[rowIndex - oldRowIndexOffset];\r\n var key = getRowKey(oldItem);\r\n var newVisibleRowIndex = newIndexByKey[key];\r\n return newVisibleRowIndex >= 0 ? newVisibleRowIndex + rowIndexOffset - rowIndex : 0\r\n })\r\n }\r\n _correctRowIndices(rowIndex) {}\r\n _afterProcessItems(items, change) {\r\n return items\r\n }\r\n _updateItemsCore(change) {\r\n var items;\r\n var dataSource = this._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n var cachedProcessedItems = this._cachedProcessedItems;\r\n if (change.useProcessedItemsCache && cachedProcessedItems) {\r\n items = cachedProcessedItems\r\n } else {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n this._cachedProcessedItems = items\r\n }\r\n items = this._afterProcessItems(items, change);\r\n change.items = items;\r\n var oldItems = this._items.length === items.length && this._items;\r\n this._applyChange(change);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n each(this._items, (index, item) => {\r\n var _a;\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = null !== (_a = oldItems[index].cells) && void 0 !== _a ? _a : []\r\n }\r\n var newItem = items[index];\r\n if (newItem) {\r\n item.loadIndex = newItem.loadIndex\r\n }\r\n });\r\n this._rowIndexOffset = this.getRowIndexOffset()\r\n } else {\r\n this._items = []\r\n }\r\n }\r\n _handleChanging(e) {\r\n var rows = this.getVisibleRows();\r\n var dataSource = this.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach(change => {\r\n if (\"insert\" === change.type && change.index >= 0) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < change.index; i++) {\r\n var row = rows[i];\r\n if (row && (\"data\" === row.rowType || \"group\" === row.rowType)) {\r\n dataIndex++\r\n }\r\n }\r\n change.index = dataIndex\r\n }\r\n })\r\n }\r\n }\r\n updateItems(change, isDataChanged) {\r\n var _a;\r\n change = change || {};\r\n if (void 0 !== this._repaintChangesOnly) {\r\n change.repaintChangesOnly = null !== (_a = change.repaintChangesOnly) && void 0 !== _a ? _a : this._repaintChangesOnly;\r\n change.needUpdateDimensions = change.needUpdateDimensions || this._needUpdateDimensions\r\n } else if (change.changes) {\r\n change.repaintChangesOnly = this.option(\"repaintChangesOnly\")\r\n } else if (isDataChanged) {\r\n var operationTypes = this.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && this.option(\"repaintChangesOnly\");\r\n change.isDataChanged = true;\r\n if (operationTypes && (operationTypes.reload || operationTypes.paging || operationTypes.groupExpanding)) {\r\n change.needUpdateDimensions = true\r\n }\r\n }\r\n if (this._updateLockCount && !change.cancel) {\r\n this._changes.push(change);\r\n return\r\n }\r\n this._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n this._fireChanged(change)\r\n }\r\n loadingOperationTypes() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n }\r\n _fireChanged(change) {\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }\r\n deferRender(() => {\r\n this.changed.fire(change)\r\n })\r\n }\r\n isLoading() {\r\n return this._isLoading || this._isCustomLoading\r\n }\r\n _fireLoadingChanged() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n }\r\n _calculateAdditionalFilter() {\r\n return null\r\n }\r\n _applyFilter() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n this._isFilterApplying = true;\r\n return this.reload().done(() => {\r\n if (this._isFilterApplying) {\r\n this.pageChanged.fire()\r\n }\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n resetFilterApplying() {\r\n this._isFilterApplying = false\r\n }\r\n filter(filterExpr) {\r\n var dataSource = this._dataSource;\r\n var filter = dataSource && dataSource.filter();\r\n if (0 === arguments.length) {\r\n return filter\r\n }\r\n filterExpr = arguments.length > 1 ? Array.prototype.slice.call(arguments, 0) : filterExpr;\r\n if (gridCoreUtils.equalFilterParameters(filter, filterExpr)) {\r\n return\r\n }\r\n if (dataSource) {\r\n dataSource.filter(filterExpr)\r\n }\r\n this._applyFilter()\r\n }\r\n clearFilter(filterName) {\r\n var columnsController = this._columnsController;\r\n var clearColumnOption = function(optionName) {\r\n var columnCount = columnsController.columnCount();\r\n for (var index = 0; index < columnCount; index++) {\r\n columnsController.columnOption(index, optionName, void 0)\r\n }\r\n };\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n this.filter(null);\r\n break;\r\n case \"search\":\r\n this.searchByText(\"\");\r\n break;\r\n case \"header\":\r\n clearColumnOption(\"filterValues\");\r\n break;\r\n case \"row\":\r\n clearColumnOption(\"filterValue\")\r\n }\r\n } else {\r\n this.filter(null);\r\n this.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n this.component.endUpdate()\r\n }\r\n _fireDataSourceChanged() {\r\n var that = this;\r\n that.changed.add((function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n }))\r\n }\r\n _getDataSourceAdapter() {}\r\n _createDataSourceAdapterCore(dataSource, remoteOperations) {\r\n var dataSourceAdapterProvider = this._getDataSourceAdapter();\r\n var dataSourceAdapter = dataSourceAdapterProvider.create(this.component);\r\n dataSourceAdapter.init(dataSource, remoteOperations);\r\n return dataSourceAdapter\r\n }\r\n isLocalStore() {\r\n var store = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.store();\r\n return store instanceof ArrayStore\r\n }\r\n isCustomStore(store) {\r\n store = store || this.store();\r\n return store instanceof CustomStore\r\n }\r\n _createDataSourceAdapter(dataSource) {\r\n var remoteOperations = this.option(\"remoteOperations\");\r\n var store = dataSource.store();\r\n var enabledRemoteOperations = {\r\n filtering: true,\r\n sorting: true,\r\n paging: true,\r\n grouping: true,\r\n summary: true\r\n };\r\n if (isObject(remoteOperations) && remoteOperations.groupPaging) {\r\n remoteOperations = extend({}, enabledRemoteOperations, remoteOperations)\r\n }\r\n if (\"auto\" === remoteOperations) {\r\n remoteOperations = this.isLocalStore(store) || this.isCustomStore(store) ? {} : {\r\n filtering: true,\r\n sorting: true,\r\n paging: true\r\n }\r\n }\r\n if (true === remoteOperations) {\r\n remoteOperations = enabledRemoteOperations\r\n }\r\n return this._createDataSourceAdapterCore(dataSource, remoteOperations)\r\n }\r\n setDataSource(dataSource) {\r\n var oldDataSource = this._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(this._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(this._loadingChangedHandler);\r\n oldDataSource.loadError.remove(this._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(this._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(this._changingHandler);\r\n oldDataSource.pushed.remove(this._dataPushedHandler);\r\n oldDataSource.dispose(this._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = this._createDataSourceAdapter(dataSource)\r\n }\r\n this._dataSource = dataSource;\r\n if (dataSource) {\r\n this._fireDataSourceChanged();\r\n this._isLoading = !dataSource.isLoaded();\r\n this._needApplyFilter = true;\r\n this._isAllDataTypesDefined = this._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(this._dataChangedHandler);\r\n dataSource.loadingChanged.add(this._loadingChangedHandler);\r\n dataSource.loadError.add(this._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(this._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(this._changingHandler);\r\n dataSource.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n items(byLoaded) {\r\n return this._items\r\n }\r\n isEmpty() {\r\n return !this.items().length\r\n }\r\n pageCount() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n }\r\n dataSource() {\r\n return this._dataSource\r\n }\r\n store() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n }\r\n loadAll(data) {\r\n var skipFilter = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var that = this;\r\n var d = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (data) {\r\n var options = {\r\n data: data,\r\n isCustomLoading: true,\r\n storeLoadOptions: {\r\n isLoadingAll: true\r\n },\r\n loadOptions: {\r\n filter: skipFilter ? null : that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n when(options.data).done(data => {\r\n var _a;\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), null === (_a = options.extra) || void 0 === _a ? void 0 : _a.summary)\r\n }).fail(d.reject)\r\n } else if (!dataSource.isLoading()) {\r\n var loadOptions = extend({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done((items, extra) => {\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, {\r\n changeType: \"loadingAll\"\r\n });\r\n d.resolve(items, extra && extra.summary)\r\n }).fail(d.reject)\r\n } else {\r\n d.reject()\r\n }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n }\r\n getKeyByRowIndex(rowIndex, byLoaded) {\r\n var item = this.items(byLoaded)[rowIndex];\r\n if (item) {\r\n return item.key\r\n }\r\n }\r\n getRowIndexByKey(key, byLoaded) {\r\n return gridCoreUtils.getIndexByKey(key, this.items(byLoaded))\r\n }\r\n keyOf(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n }\r\n byKey(key) {\r\n var store = this.store();\r\n var rowIndex = this.getRowIndexByKey(key);\r\n var result;\r\n if (!store) {\r\n return\r\n }\r\n if (rowIndex >= 0) {\r\n result = (new Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n }\r\n key() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n }\r\n getRowIndexOffset(byLoadedRows) {\r\n return 0\r\n }\r\n getDataByKeys(rowKeys) {\r\n var that = this;\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n each(rowKeys, (index, key) => {\r\n deferreds.push(that.byKey(key).done(keyData => {\r\n data[index] = keyData\r\n }))\r\n });\r\n when.apply($, deferreds).always(() => {\r\n result.resolve(data)\r\n });\r\n return result\r\n }\r\n pageIndex(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n }\r\n pageSize(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n }\r\n beginCustomLoading(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n }\r\n endCustomLoading() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n }\r\n refresh(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var {\r\n changesOnly: changesOnly\r\n } = options;\r\n var d = new Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n when(!options.lookup || that._columnsController.refresh()).always(() => {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n when(that.reload(options.reload, changesOnly)).always(() => {\r\n dataSource && dataSource.off(\"customizeLoadResult\", customizeLoadResult);\r\n that._repaintChangesOnly = void 0\r\n }).done(d.resolve).fail(d.reject)\r\n } else {\r\n that.updateItems({\r\n repaintChangesOnly: options.changesOnly\r\n });\r\n d.resolve()\r\n }\r\n });\r\n return d.promise()\r\n }\r\n getVisibleRows() {\r\n return this.items()\r\n }\r\n _disposeDataSource() {\r\n if (this._dataSource && this._dataSource._eventsStrategy) {\r\n this._dataSource._eventsStrategy.off(\"loadingChanged\", this.readyWatcher)\r\n }\r\n this.setDataSource(null)\r\n }\r\n dispose() {\r\n this._disposeDataSource();\r\n super.dispose()\r\n }\r\n repaintRows(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || isDefined(rowIndexes[0])) {\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndexes,\r\n isFullUpdate: !changesOnly\r\n })\r\n }\r\n }\r\n skipProcessingPagingChange(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n }\r\n getUserState() {\r\n return {\r\n searchText: this.option(\"searchPanel.text\"),\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }\r\n }\r\n getCachedStoreData() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n }\r\n isLastPageLoaded() {\r\n var pageIndex = this.pageIndex();\r\n var pageCount = this.pageCount();\r\n return pageIndex === pageCount - 1\r\n }\r\n load() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.load()\r\n }\r\n reload(reload, changesOnly) {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.reload(reload, changesOnly)\r\n }\r\n push() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.push(...arguments)\r\n }\r\n itemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.itemsCount() : 0\r\n }\r\n totalItemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalItemsCount() : 0\r\n }\r\n hasKnownLastPage() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.hasKnownLastPage() : true\r\n }\r\n isLoaded() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.isLoaded() : true\r\n }\r\n totalCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalCount() : 0\r\n }\r\n hasLoadOperation() {\r\n var _a, _b;\r\n var operationTypes = null !== (_b = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.operationTypes()) && void 0 !== _b ? _b : {};\r\n return Object.keys(operationTypes).some(type => operationTypes[type])\r\n }\r\n}\r\nexport var dataControllerModule = {\r\n defaultOptions: () => ({\r\n loadingTimeout: 0,\r\n dataSource: null,\r\n cacheEnabled: true,\r\n repaintChangesOnly: false,\r\n highlightChanges: false,\r\n onDataErrorOccurred: null,\r\n remoteOperations: \"auto\",\r\n paging: {\r\n enabled: true,\r\n pageSize: void 0,\r\n pageIndex: void 0\r\n }\r\n }),\r\n controllers: {\r\n data: DataController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n executeAsync\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nexport var cloneItems = function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = extend({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n};\r\nexport var calculateOperationTypes = function(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !gridCoreUtils.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !gridCoreUtils.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n pageSize: loadOptions.pageSize !== lastLoadOptions.pageSize,\r\n fullReload: isFullReload,\r\n reload: false,\r\n paging: false\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.pageSize || operationTypes.take\r\n }\r\n return operationTypes\r\n};\r\nexport var executeTask = function(action, timeout) {\r\n if (isDefined(timeout)) {\r\n executeAsync(action, timeout)\r\n } else {\r\n action()\r\n }\r\n};\r\nexport var createEmptyCachedData = function() {\r\n return {\r\n items: {}\r\n }\r\n};\r\nexport var getPageDataFromCache = function(options, updatePaging) {\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(options.group || options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var items = [];\r\n if (fillItemsFromCache(items, options, groupCount)) {\r\n return items\r\n }\r\n if (updatePaging) {\r\n updatePagingOptionsByCache(items, options, groupCount)\r\n }\r\n};\r\nexport var fillItemsFromCache = function(items, options, groupCount, fromEnd) {\r\n var _a, _b, _c, _d, _e;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var take = null !== (_b = null !== (_a = options.take) && void 0 !== _a ? _a : storeLoadOptions.take) && void 0 !== _b ? _b : 0;\r\n var cachedItems = null === (_c = options.cachedData) || void 0 === _c ? void 0 : _c.items;\r\n if (take && cachedItems) {\r\n var skip = null !== (_e = null !== (_d = options.skip) && void 0 !== _d ? _d : storeLoadOptions.skip) && void 0 !== _e ? _e : 0;\r\n for (var i = 0; i < take; i += 1) {\r\n var localIndex = fromEnd ? take - 1 - i : i;\r\n var cacheItemIndex = localIndex + skip;\r\n var cacheItem = cachedItems[cacheItemIndex];\r\n if (void 0 === cacheItem && cacheItemIndex in cachedItems) {\r\n return true\r\n }\r\n var item = getItemFromCache(options, cacheItem, groupCount, localIndex, take);\r\n if (item) {\r\n items.push(item)\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n};\r\nexport var getItemFromCache = function(options, cacheItem, groupCount, index, take) {\r\n if (groupCount && cacheItem) {\r\n var skips = 0 === index && options.skips || [];\r\n var takes = index === take - 1 && options.takes || [];\r\n return getGroupItemFromCache(cacheItem, groupCount, skips, takes)\r\n }\r\n return cacheItem\r\n};\r\nexport var getGroupItemFromCache = function getGroupItemFromCache(cacheItem, groupCount, skips, takes) {\r\n if (groupCount && cacheItem) {\r\n var result = _extends({}, cacheItem);\r\n var skip = skips[0] || 0;\r\n var take = takes[0];\r\n var {\r\n items: items\r\n } = cacheItem;\r\n if (items) {\r\n if (void 0 === take && !items[skip]) {\r\n return\r\n }\r\n result.items = [];\r\n if (skips.length) {\r\n result.isContinuation = true\r\n }\r\n if (take) {\r\n result.isContinuationOnNextPage = cacheItem.count > take\r\n }\r\n for (var i = 0; void 0 === take ? items[i + skip] : i < take; i += 1) {\r\n var childCacheItem = items[i + skip];\r\n var isLast = i + 1 === take;\r\n var item = getGroupItemFromCache(childCacheItem, groupCount - 1, 0 === i ? skips.slice(1) : [], isLast ? takes.slice(1) : []);\r\n if (void 0 !== item) {\r\n result.items.push(item)\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n return cacheItem\r\n};\r\nexport var updatePagingOptionsByCache = function(cacheItemsFromBegin, options, groupCount) {\r\n var _a, _b;\r\n var cacheItemBeginCount = cacheItemsFromBegin.length;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n if (void 0 !== storeLoadOptions.skip && storeLoadOptions.take && !groupCount) {\r\n var cacheItemsFromEnd = [];\r\n fillItemsFromCache(cacheItemsFromEnd, options, groupCount, true);\r\n var cacheItemEndCount = cacheItemsFromEnd.length;\r\n if (cacheItemBeginCount || cacheItemEndCount) {\r\n options.skip = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip;\r\n options.take = null !== (_b = options.take) && void 0 !== _b ? _b : storeLoadOptions.take\r\n }\r\n if (cacheItemBeginCount) {\r\n storeLoadOptions.skip += cacheItemBeginCount;\r\n storeLoadOptions.take -= cacheItemBeginCount;\r\n options.cachedDataPartBegin = cacheItemsFromBegin\r\n }\r\n if (cacheItemEndCount) {\r\n storeLoadOptions.take -= cacheItemEndCount;\r\n options.cachedDataPartEnd = cacheItemsFromEnd.reverse()\r\n }\r\n }\r\n};\r\nexport var setPageDataToCache = function(options, data, groupCount) {\r\n var _a, _b, _c, _d;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var skip = null !== (_b = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip) && void 0 !== _b ? _b : 0;\r\n var take = null !== (_d = null !== (_c = options.take) && void 0 !== _c ? _c : storeLoadOptions.take) && void 0 !== _d ? _d : 0;\r\n for (var i = 0; i < take; i += 1) {\r\n var globalIndex = i + skip;\r\n var cacheItems = options.cachedData.items;\r\n var skips = 0 === i && options.skips || [];\r\n cacheItems[globalIndex] = getCacheItem(cacheItems[globalIndex], data[i], groupCount, skips)\r\n }\r\n};\r\nexport var getCacheItem = function getCacheItem(cacheItem, loadedItem, groupCount, skips) {\r\n if (groupCount && loadedItem) {\r\n var result = _extends({}, loadedItem);\r\n delete result.isContinuation;\r\n delete result.isContinuationOnNextPage;\r\n var skip = skips[0] || 0;\r\n if (loadedItem.items) {\r\n result.items = (null === cacheItem || void 0 === cacheItem ? void 0 : cacheItem.items) || {};\r\n loadedItem.items.forEach((item, index) => {\r\n var globalIndex = index + skip;\r\n var childSkips = 0 === index ? skips.slice(1) : [];\r\n result.items[globalIndex] = getCacheItem(result.items[globalIndex], item, groupCount - 1, childSkips)\r\n })\r\n }\r\n return result\r\n }\r\n return loadedItem\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n calculateOperationTypes,\r\n cloneItems,\r\n createEmptyCachedData,\r\n executeTask,\r\n getPageDataFromCache,\r\n setPageDataToCache\r\n} from \"./m_data_source_adapter_utils\";\r\nexport default class DataSourceAdapter extends modules.Controller {\r\n init(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedData = createEmptyCachedData();\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._totalCountCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.loadError = Callbacks();\r\n that.customizeStoreLoadOptions = Callbacks();\r\n that.changing = Callbacks();\r\n that.pushed = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._customizeStoreLoadOptionsHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"beforePush\", that._pushHandler);\r\n each(dataSource, (memberName, member) => {\r\n if (!that[memberName] && isFunction(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n })\r\n }\r\n dispose(isSharedDataSource) {\r\n var dataSource = this._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", this._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptionsHandler);\r\n dataSource.off(\"customizeLoadResult\", this._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n dataSource.off(\"loadError\", this._loadErrorHandler);\r\n dataSource.off(\"changing\", this._changingHandler);\r\n store && store.off(\"beforePush\", this._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n }\r\n remoteOperations() {\r\n return this._remoteOperations\r\n }\r\n refresh(options, operationTypes) {\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this.resetCurrentTotalCount();\r\n this._isLastPage = !dataSource.paginate();\r\n this._hasLastPage = this._isLastPage\r\n }\r\n }\r\n resetCurrentTotalCount() {\r\n this._currentTotalCount = 0;\r\n this._totalCountCorrection = 0\r\n }\r\n resetCache() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n }\r\n resetPagesCache(isLiveUpdate) {\r\n this._cachedData = createEmptyCachedData()\r\n }\r\n _needClearStoreDataCache() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !operationTypes[operationName] || !remoteOperations[operationName]);\r\n return !isLocalOperations\r\n }\r\n push(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n applyBatch({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n this.pushed.fire(changes)\r\n }\r\n getDataIndexGetter() {\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = data => {\r\n var isCacheUpdated = storeData && storeData !== this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[getKeyHash(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[getKeyHash(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n }\r\n _getKeyInfo() {\r\n return this.store()\r\n }\r\n _needToCopyDataObject() {\r\n return true\r\n }\r\n _applyBatch(changes, fromStore) {\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(this.group()).length;\r\n var isReshapeMode = \"reshape\" === this.option(\"editing.refreshMode\");\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n changes = changes.filter(change => !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index);\r\n var getItemCount = () => groupCount ? this.itemsCount() : this.items().length;\r\n var oldItemCount = getItemCount();\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n var needUpdateTotalCountCorrection = this._currentTotalCount > 0 || (fromStore || !isReshapeMode) && isVirtualMode;\r\n if (needUpdateTotalCountCorrection) {\r\n this._totalCountCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n }\r\n _handlePush(_ref) {\r\n var {\r\n changes: changes\r\n } = _ref;\r\n this.push(changes, true)\r\n }\r\n _handleChanging(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes, true)\r\n }\r\n _needCleanCacheByOperation(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(operationType => remoteOperations[operationType])\r\n }\r\n _customizeRemoteOperations(options, operationTypes) {\r\n var cachedStoreData = this._cachedStoreData;\r\n var cachedPagingData = this._cachedPagingData;\r\n var cachedData = this._cachedData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering,\r\n summary: options.remoteOperations.summary\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedData = createEmptyCachedData()\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedData = createEmptyCachedData()\r\n } else if (operationTypes.groupExpanding) {\r\n cachedData = createEmptyCachedData()\r\n }\r\n each(operationTypes, (operationType, value) => {\r\n if (value && this._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n })\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedData = cachedData;\r\n if (!options.isCustomLoading) {\r\n this._cachedStoreData = cachedStoreData;\r\n this._cachedPagingData = cachedPagingData;\r\n this._cachedData = cachedData\r\n }\r\n }\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var _a;\r\n this._handleDataLoading(options);\r\n if (!(0 === (null === (_a = options.data) || void 0 === _a ? void 0 : _a.length))) {\r\n options.data = getPageDataFromCache(options, true) || options.cachedStoreData\r\n }\r\n }\r\n _handleDataLoading(options) {\r\n var dataSource = this._dataSource;\r\n var lastLoadOptions = this._lastLoadOptions;\r\n this.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = extend({}, this.remoteOperations());\r\n var isFullReload = !this.isLoaded() && !this._isRefreshing;\r\n if (this.option(\"integrationOptions.renderedOnServer\") && !this.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = extend({\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n this._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = this._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n this._loadingOperationTypes = operationTypes;\r\n this._isRefreshing = true;\r\n when(isRefreshing || this._isRefreshed || this.refresh(options, operationTypes)).done(() => {\r\n if (this._lastOperationId === options.operationId) {\r\n this._isRefreshed = true;\r\n this.load().always(() => {\r\n this._isRefreshed = false\r\n })\r\n }\r\n }).fail(() => {\r\n dataSource.cancel(options.operationId)\r\n }).always(() => {\r\n this._isRefreshing = false\r\n });\r\n dataSource.cancel(this._lastOperationId);\r\n this._lastOperationId = options.operationId;\r\n if (this._isRefreshing) {\r\n dataSource.cancel(this._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n }\r\n _handleDataLoadingCore(options) {\r\n var {\r\n remoteOperations: remoteOperations\r\n } = options;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging,\r\n langParams: !remoteOperations.filtering || !remoteOperations.sorting\r\n };\r\n each(options.storeLoadOptions, (optionName, optionValue) => {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n });\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n }\r\n _handleDataLoaded(options) {\r\n var _a, _b;\r\n var {\r\n loadOptions: loadOptions\r\n } = options;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var {\r\n cachedData: cachedData\r\n } = options;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedData && (!localPaging || storeLoadOptions.group);\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(options.group || storeLoadOptions.group || loadOptions.group).length;\r\n if (options.cachedDataPartBegin) {\r\n options.data = options.cachedDataPartBegin.concat(options.data)\r\n }\r\n if (options.cachedDataPartEnd) {\r\n options.data = options.data.concat(options.cachedDataPartEnd)\r\n }\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, gridCoreUtils.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n new ArrayStore(options.data).load(loadOptions).done(data => {\r\n options.data = data;\r\n if (needStoreCache) {\r\n this._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(error => {\r\n options.data = (new Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n if (!loadOptions.data && (storeLoadOptions.requireTotalCount || (null !== (_b = null === (_a = options.extra) || void 0 === _a ? void 0 : _a.totalCount) && void 0 !== _b ? _b : -1) >= 0)) {\r\n this._totalCountCorrection = 0\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedData.extra = cachedData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n setPageDataToCache(options, data, groupCount)\r\n })\r\n }\r\n }\r\n when(options.data).done(() => {\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(operationType => {\r\n this._lastOperationTypes[operationType] = this._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n });\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n }\r\n _handleDataLoadedCore(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n }\r\n _handleLoadingChanged(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n }\r\n _handleLoadError(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n }\r\n _loadPageSize() {\r\n return this.pageSize()\r\n }\r\n _handleDataChanged(args) {\r\n var currentTotalCount;\r\n var dataSource = this._dataSource;\r\n var isLoading = false;\r\n var isDataLoading = !args || isDefined(args.changeType);\r\n var itemsCount = this.itemsCount();\r\n if (isDataLoading) {\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n this.pageIndex(dataSource.pageIndex());\r\n this.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else if (isDataLoading) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n if (currentTotalCount > this._currentTotalCount) {\r\n this._currentTotalCount = currentTotalCount;\r\n if (0 === dataSource.pageIndex() || !this.option(\"scrolling.legacyMode\")) {\r\n this._totalCountCorrection = 0\r\n }\r\n }\r\n if (0 === itemsCount && dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n if (\"infinite\" !== this.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n this._operationTypes = this._lastOperationTypes;\r\n this._lastOperationTypes = {};\r\n this.component._optionCache = {};\r\n this.changed.fire(args);\r\n this.component._optionCache = void 0\r\n }\r\n }\r\n _scheduleCustomLoadCallbacks(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always(() => {\r\n that._isCustomLoading = false\r\n })\r\n }\r\n loadingOperationTypes() {\r\n return this._loadingOperationTypes\r\n }\r\n operationTypes() {\r\n return this._operationTypes\r\n }\r\n lastLoadOptions() {\r\n return this._lastLoadOptions || {}\r\n }\r\n isLastPage() {\r\n return this._isLastPage\r\n }\r\n _dataSourceTotalCount() {\r\n return this._dataSource.totalCount()\r\n }\r\n _changeRowExpandCore(path) {}\r\n changeRowExpand(path) {}\r\n totalCount() {\r\n return parseInt((this._currentTotalCount || this._dataSourceTotalCount()) + this._totalCountCorrection)\r\n }\r\n totalCountCorrection() {\r\n return this._totalCountCorrection\r\n }\r\n items() {}\r\n itemsCount() {\r\n return this._dataSource.items().length\r\n }\r\n totalItemsCount() {\r\n return this.totalCount()\r\n }\r\n pageSize() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n }\r\n pageCount() {\r\n var count = this.totalItemsCount() - this._totalCountCorrection;\r\n var pageSize = this.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n }\r\n hasKnownLastPage() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n }\r\n loadFromStore(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done((data, extra) => {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n }).fail(d.reject);\r\n return d\r\n }\r\n isCustomLoading() {\r\n return !!this._isCustomLoading\r\n }\r\n load(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: extend({}, options, {\r\n langParams: null === dataSourceLoadOptions || void 0 === dataSourceLoadOptions ? void 0 : dataSourceLoadOptions.langParams\r\n }),\r\n isCustomLoading: true\r\n };\r\n each(store._customLoadOptions() || [], (_, optionName) => {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n });\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleCustomizeStoreLoadOptions(loadResult);\r\n executeTask(() => {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }\r\n when(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done((data, extra) => {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }\r\n when(loadResult.data, loadResult.extra.totalCount).done((data, totalCount) => {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n }).fail(d.reject)\r\n }).fail(d.reject)\r\n }, that.option(\"loadingTimeout\"));\r\n return d.fail((function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })).always(() => {\r\n this._isLoadingAll = false\r\n }).promise()\r\n }\r\n return dataSource.load()\r\n }\r\n reload(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n }\r\n getCachedStoreData() {\r\n return this._cachedStoreData\r\n }\r\n isLoaded() {}\r\n pageIndex(pageIndex) {}\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_source_adapter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataSourceAdapter from \"../../grids/grid_core/data_source_adapter/m_data_source_adapter\";\r\nvar DataSourceAdapterType = DataSourceAdapter;\r\nexport default {\r\n extend(extender) {\r\n DataSourceAdapterType = extender(DataSourceAdapterType)\r\n },\r\n create: component => new DataSourceAdapterType(component)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_controller.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n DataController,\r\n dataControllerModule\r\n} from \"../../grids/grid_core/data_controller/m_data_controller\";\r\nimport gridCore from \"./m_core\";\r\nimport dataSourceAdapterProvider from \"./m_data_source_adapter\";\r\nclass DataGridDataController extends DataController {\r\n _getDataSourceAdapter() {\r\n return dataSourceAdapterProvider\r\n }\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n errors.log(\"W1011\")\r\n }\r\n return super._getSpecificDataSourceOption()\r\n }\r\n}\r\nexport {\r\n DataGridDataController as DataController\r\n};\r\ngridCore.registerModule(\"data\", {\r\n defaultOptions: dataControllerModule.defaultOptions,\r\n controllers: {\r\n data: DataGridDataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nvar sortingMixin = Base => class extends Base {\r\n _applyColumnState(options) {\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = this.option(\"sorting.mode\");\r\n var {\r\n rootElement: rootElement\r\n } = options;\r\n var {\r\n column: column\r\n } = options;\r\n var $indicatorsContainer = this._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\".concat(SORT_CLASS)).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = \"none\" !== sortingMode && column.allowSorting;\r\n var hasSeveralSortIndexes = this.getController && !!this.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (!isDefined(column.groupIndex) && (isSortingAllowed || isDefined(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = super._applyColumnState(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n if (hasSeveralSortIndexes && this.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n $(\"\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n if (isSortingAllowed) {\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n }\r\n this._setAriaSortAttribute(column, ariaSortState, rootElement, hasSeveralSortIndexes);\r\n return $sortIndicator\r\n }\r\n return super._applyColumnState(options)\r\n }\r\n _setAriaSortAttribute(column, ariaSortState, $rootElement, hasSeveralSortIndexes) {\r\n $rootElement.removeAttr(\"aria-roledescription\");\r\n if (column.isGrouped) {\r\n var description = this.localize(\"dxDataGrid-ariaNotSortedColumn\");\r\n if (isDefined(column.sortOrder)) {\r\n description = \"asc\" === column.sortOrder ? this.localize(\"dxDataGrid-ariaSortedAscendingColumn\") : this.localize(\"dxDataGrid-ariaSortedDescendingColumn\")\r\n }\r\n this.setAria(\"roledescription\", description, $rootElement)\r\n } else if (!isDefined(column.sortOrder)) {\r\n this.setAria(\"sort\", \"none\", $rootElement)\r\n } else {\r\n this.setAria(\"sort\", ariaSortState, $rootElement);\r\n if (hasSeveralSortIndexes && column.sortIndex >= 0) {\r\n var ariaColumnHeader = messageLocalization.format(\"dxDataGrid-ariaColumnHeader\");\r\n var ariaSortIndex = messageLocalization.format(\"dxDataGrid-ariaSortIndex\", column.sortIndex + 1);\r\n var _description = \"\".concat(ariaColumnHeader, \", \").concat(ariaSortIndex);\r\n this.setAria(\"roledescription\", _description, $rootElement)\r\n }\r\n }\r\n }\r\n _getIndicatorClassName(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n }\r\n if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n return super._getIndicatorClassName(name)\r\n }\r\n _renderIndicator(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!isDefined(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n super._renderIndicator(options)\r\n }\r\n _updateIndicator($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && isDefined(column.groupIndex)) {\r\n return\r\n }\r\n return super._updateIndicator.apply(this, arguments)\r\n }\r\n _getIndicatorElements($cell, returnAll) {\r\n var $indicatorElements = super._getIndicatorElements($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\".concat(SORT_NONE_CLASS))\r\n }\r\n};\r\nexport default sortingMixin;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport sortingMixin from \"./m_sorting_mixin\";\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar columnHeadersView = Base => class extends(sortingMixin(Base)) {\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow(row);\r\n if (\"header\" === row.rowType) {\r\n eventsEngine.on($row, addNamespace(clickEventName, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(e => {\r\n this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n }\r\n _processHeaderAction(event, $row) {\r\n if ($(event.currentTarget).parent().get(0) !== $row.get(0)) {\r\n return\r\n }\r\n var that = this;\r\n var keyName = null;\r\n var $cellElementFromEvent = $(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(($cellElement, index) => {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\r\n return\r\n });\r\n var visibleColumns = that._columnsController.getVisibleColumns(rowIndex);\r\n var column = visibleColumns[columnIndex];\r\n var editingController = that.getController(\"editing\");\r\n var editingMode = that.option(\"editing.mode\");\r\n var isCellEditing = editingController && editingController.isEditing() && (\"batch\" === editingMode || \"cell\" === editingMode);\r\n if (isCellEditing || !that._isSortableElement($(event.target))) {\r\n return\r\n }\r\n if (column && !isDefined(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else if (isCommandKeyPressed(event)) {\r\n keyName = \"ctrl\"\r\n }\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n }\r\n _renderCellContent($cell, options) {\r\n var {\r\n column: column\r\n } = options;\r\n if (!column.command && \"header\" === options.rowType) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n super._renderCellContent.apply(this, arguments)\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n if (1 === changeTypes.length && changeTypes.sorting) {\r\n this._updateIndicators(\"sort\");\r\n return\r\n }\r\n super._columnOptionChanged(e)\r\n }\r\n};\r\nvar headerPanel = Base => class extends(sortingMixin(Base)) {\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = super._createGroupPanelItem(...arguments);\r\n eventsEngine.on($item, addNamespace(clickEventName, \"dxDataGridHeaderPanel\"), that.createAction(() => {\r\n that._processGroupItemAction(groupColumn.index)\r\n }));\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $item,\r\n column: {\r\n alignment: that.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n allowSorting: groupColumn.allowSorting,\r\n sortOrder: \"desc\" === groupColumn.sortOrder ? \"desc\" : \"asc\",\r\n isGrouped: true\r\n },\r\n showColumnLines: true\r\n });\r\n return $item\r\n }\r\n _processGroupItemAction(groupColumnIndex) {\r\n setTimeout(() => this.getController(\"columns\").changeSortOrder(groupColumnIndex))\r\n }\r\n};\r\nexport var sortingModule = {\r\n defaultOptions: () => ({\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: messageLocalization.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: columnHeadersView,\r\n headerPanel: headerPanel\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/sorting.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sortingModule\r\n} from \"../../../grids/grid_core/sorting/m_sorting\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.scroll.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n addNamespace,\r\n isDxMouseWheelEvent,\r\n isMouseEvent,\r\n eventData,\r\n eventDelta\r\n} from \"../../events/utils/index\";\r\nimport GestureEmitter from \"../../events/gesture/emitter.gesture\";\r\nimport registerEmitter from \"../../events/core/emitter_registrator\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nimport devices from \"../../core/devices\";\r\nvar realDevice = devices.real();\r\nvar SCROLL_EVENT = \"scroll\";\r\nvar SCROLL_INIT_EVENT = \"dxscrollinit\";\r\nvar SCROLL_START_EVENT = \"dxscrollstart\";\r\nvar SCROLL_MOVE_EVENT = \"dxscroll\";\r\nvar SCROLL_END_EVENT = \"dxscrollend\";\r\nvar SCROLL_STOP_EVENT = \"dxscrollstop\";\r\nvar SCROLL_CANCEL_EVENT = \"dxscrollcancel\";\r\nvar Locker = Class.inherit(function() {\r\n var NAMESPACED_SCROLL_EVENT = addNamespace(SCROLL_EVENT, \"dxScrollEmitter\");\r\n return {\r\n ctor: function(element) {\r\n this._element = element;\r\n this._locked = false;\r\n this._proxiedScroll = e => {\r\n if (!this._disposed) {\r\n this._scroll(e)\r\n }\r\n };\r\n eventsEngine.on(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n },\r\n _scroll: abstract,\r\n check: function(e, callback) {\r\n if (this._locked) {\r\n callback()\r\n }\r\n },\r\n dispose: function() {\r\n this._disposed = true;\r\n eventsEngine.off(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n }\r\n }\r\n}());\r\nvar TimeoutLocker = Locker.inherit({\r\n ctor: function(element, timeout) {\r\n this.callBase(element);\r\n this._timeout = timeout\r\n },\r\n _scroll: function() {\r\n this._prepare();\r\n this._forget()\r\n },\r\n _prepare: function() {\r\n if (this._timer) {\r\n this._clearTimer()\r\n }\r\n this._locked = true\r\n },\r\n _clearTimer: function() {\r\n clearTimeout(this._timer);\r\n this._locked = false;\r\n this._timer = null\r\n },\r\n _forget: function() {\r\n var that = this;\r\n this._timer = setTimeout((function() {\r\n that._clearTimer()\r\n }), this._timeout)\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._clearTimer()\r\n }\r\n});\r\nvar WheelLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400);\r\n this._lastWheelDirection = null\r\n },\r\n check: function(e, callback) {\r\n this._checkDirectionChanged(e);\r\n this.callBase(e, callback)\r\n },\r\n _checkDirectionChanged: function(e) {\r\n if (!isDxMouseWheelEvent(e)) {\r\n this._lastWheelDirection = null;\r\n return\r\n }\r\n var direction = e.shiftKey || false;\r\n var directionChange = null !== this._lastWheelDirection && direction !== this._lastWheelDirection;\r\n this._lastWheelDirection = direction;\r\n this._locked = this._locked && !directionChange\r\n }\r\n});\r\nvar PointerLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400)\r\n }\r\n});\r\n! function() {\r\n var {\r\n ios: isIos,\r\n android: isAndroid\r\n } = realDevice;\r\n if (!(isIos || isAndroid)) {\r\n return\r\n }\r\n PointerLocker = Locker.inherit({\r\n _scroll: function() {\r\n this._locked = true;\r\n var that = this;\r\n cancelAnimationFrame(this._scrollFrame);\r\n this._scrollFrame = requestAnimationFrame((function() {\r\n that._locked = false\r\n }))\r\n },\r\n check: function(e, callback) {\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame);\r\n var that = this;\r\n var callBase = this.callBase;\r\n this._checkFrame = requestAnimationFrame((function() {\r\n callBase.call(that, e, callback);\r\n that._locked = false\r\n }))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame)\r\n }\r\n })\r\n}();\r\nvar ScrollEmitter = GestureEmitter.inherit(function() {\r\n var FRAME_DURATION = Math.round(1e3 / 60);\r\n return {\r\n ctor: function(element) {\r\n this.callBase.apply(this, arguments);\r\n this.direction = \"both\";\r\n this._pointerLocker = new PointerLocker(element);\r\n this._wheelLocker = new WheelLocker(element)\r\n },\r\n validate: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n if (data.scrollTarget) {\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose();\r\n this._pointerLocker = new PointerLocker(data.scrollTarget);\r\n this._wheelLocker = new WheelLocker(data.scrollTarget)\r\n }\r\n this.callBase(data)\r\n },\r\n _init: function(e) {\r\n this._wheelLocker.check(e, function() {\r\n if (isDxMouseWheelEvent(e)) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._pointerLocker.check(e, function() {\r\n var skipCheck = this.isNative && isMouseEvent(e);\r\n if (!isDxMouseWheelEvent(e) && !skipCheck) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._fireEvent(SCROLL_INIT_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n move: function(e) {\r\n this.callBase.apply(this, arguments);\r\n e.isScrollingEvent = this.isNative || e.isScrollingEvent\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n this._fireEvent(SCROLL_START_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n _move: function(e) {\r\n var currentEventData = eventData(e);\r\n this._fireEvent(SCROLL_MOVE_EVENT, e, {\r\n delta: eventDelta(this._prevEventData, currentEventData)\r\n });\r\n var delta = eventDelta(this._savedEventData, currentEventData);\r\n if (delta.time > 200) {\r\n this._savedEventData = this._prevEventData\r\n }\r\n this._prevEventData = eventData(e)\r\n },\r\n _end: function(e) {\r\n var endEventDelta = eventDelta(this._prevEventData, eventData(e));\r\n var velocity = {\r\n x: 0,\r\n y: 0\r\n };\r\n if (!isDxMouseWheelEvent(e) && endEventDelta.time < 100) {\r\n var delta = eventDelta(this._savedEventData, this._prevEventData);\r\n var velocityMultiplier = FRAME_DURATION / delta.time;\r\n velocity = {\r\n x: delta.x * velocityMultiplier,\r\n y: delta.y * velocityMultiplier\r\n }\r\n }\r\n this._fireEvent(SCROLL_END_EVENT, e, {\r\n velocity: velocity\r\n })\r\n },\r\n _stop: function(e) {\r\n this._fireEvent(SCROLL_STOP_EVENT, e)\r\n },\r\n cancel: function(e) {\r\n this.callBase.apply(this, arguments);\r\n this._fireEvent(SCROLL_CANCEL_EVENT, e)\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose()\r\n },\r\n _clearSelection: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleGestureCover: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n}());\r\nregisterEmitter({\r\n emitter: ScrollEmitter,\r\n events: [SCROLL_INIT_EVENT, SCROLL_START_EVENT, SCROLL_MOVE_EVENT, SCROLL_END_EVENT, SCROLL_STOP_EVENT, SCROLL_CANCEL_EVENT]\r\n});\r\nexport default {\r\n init: SCROLL_INIT_EVENT,\r\n start: SCROLL_START_EVENT,\r\n move: SCROLL_MOVE_EVENT,\r\n end: SCROLL_END_EVENT,\r\n stop: SCROLL_STOP_EVENT,\r\n cancel: SCROLL_CANCEL_EVENT,\r\n scroll: SCROLL_EVENT\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_relative_offset.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getRelativeOffset(targetElementClass, sourceElement) {\r\n var offset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var element = sourceElement;\r\n while (null !== (_element = element) && void 0 !== _element && _element.offsetParent && !element.classList.contains(targetElementClass)) {\r\n var _element;\r\n var parentElement = element.offsetParent;\r\n var elementRect = element.getBoundingClientRect();\r\n var parentElementRect = parentElement.getBoundingClientRect();\r\n offset.left += elementRect.left - parentElementRect.left;\r\n offset.top += elementRect.top - parentElementRect.top;\r\n element = element.offsetParent\r\n }\r\n return offset\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/common/consts.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var SCROLL_LINE_HEIGHT = 40;\r\nexport var DIRECTION_VERTICAL = \"vertical\";\r\nexport var DIRECTION_HORIZONTAL = \"horizontal\";\r\nexport var DIRECTION_BOTH = \"both\";\r\nexport var SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nexport var SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nexport var SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nexport var SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nexport var SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nexport var SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nexport var SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nexport var SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nexport var SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nexport var SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"dx-scrollable-scrollbar-active\";\r\nexport var SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nexport var SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nexport var HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nexport var SCROLLVIEW_CONTENT_CLASS = \"dx-scrollview-content\";\r\nexport var SCROLLVIEW_TOP_POCKET_CLASS = \"dx-scrollview-top-pocket\";\r\nexport var SCROLLVIEW_PULLDOWN = \"dx-scrollview-pull-down\";\r\nexport var SCROLLVIEW_PULLDOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nexport var SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nexport var SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nexport var SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nexport var SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nexport var SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nexport var PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nexport var SCROLLVIEW_BOTTOM_POCKET_CLASS = \"dx-scrollview-bottom-pocket\";\r\nexport var SCROLLVIEW_REACHBOTTOM_CLASS = \"dx-scrollview-scrollbottom\";\r\nexport var SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = \"dx-scrollview-scrollbottom-indicator\";\r\nexport var SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = \"dx-scrollview-scrollbottom-text\";\r\nexport var TopPocketState = {\r\n STATE_RELEASED: 0,\r\n STATE_READY: 1,\r\n STATE_REFRESHING: 2,\r\n STATE_LOADING: 3,\r\n STATE_TOUCHED: 4,\r\n STATE_PULLED: 5\r\n};\r\nexport var ShowScrollbarMode = {\r\n HOVER: \"onHover\",\r\n ALWAYS: \"always\",\r\n NEVER: \"never\",\r\n SCROLL: \"onScroll\"\r\n};\r\nexport var KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\"\r\n};\r\nexport var VALIDATE_WHEEL_TIMEOUT = 500;\r\nexport var HIDE_SCROLLBAR_TIMEOUT = 500;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_location_internal.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getRelativeOffset\r\n} from \"./get_relative_offset\";\r\nimport {\r\n DIRECTION_VERTICAL,\r\n SCROLLABLE_CONTENT_CLASS\r\n} from \"../common/consts\";\r\nexport function getElementLocationInternal(targetElement, direction, containerElement, scrollOffset, offset) {\r\n var additionalOffset = _extends({\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0\r\n }, offset);\r\n var isVertical = direction === DIRECTION_VERTICAL;\r\n var prop = isVertical ? \"top\" : \"left\";\r\n var inverseProp = isVertical ? \"bottom\" : \"right\";\r\n var dimension = isVertical ? \"height\" : \"width\";\r\n var containerOffsetSize = containerElement[\"offset\".concat(titleize(dimension))];\r\n var containerClientSize = containerElement[\"client\".concat(titleize(dimension))];\r\n var containerSize = containerElement.getBoundingClientRect()[dimension];\r\n var elementSize = targetElement.getBoundingClientRect()[dimension];\r\n var scale = 1;\r\n if (Math.abs(containerSize - containerOffsetSize) > 1) {\r\n scale = containerSize / containerOffsetSize\r\n }\r\n var relativeElementOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement)[prop] / scale;\r\n var containerScrollOffset = scrollOffset[prop];\r\n var relativeStartOffset = containerScrollOffset - relativeElementOffset + additionalOffset[prop];\r\n var relativeEndOffset = containerScrollOffset - relativeElementOffset - elementSize / scale + containerClientSize - additionalOffset[inverseProp];\r\n if (relativeStartOffset <= 0 && relativeEndOffset >= 0) {\r\n return containerScrollOffset\r\n }\r\n return containerScrollOffset - (Math.abs(relativeStartOffset) > Math.abs(relativeEndOffset) ? relativeEndOffset : relativeStartOffset)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollable.device.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n nativeScrolling,\r\n touch\r\n} from \"../../../core/utils/support\";\r\nexport var deviceDependentOptions = function() {\r\n return [{\r\n device: () => !nativeScrolling,\r\n options: {\r\n useNative: false\r\n }\r\n }, {\r\n device: device => !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === device.platform,\r\n options: {\r\n bounceEnabled: false,\r\n scrollByThumb: true,\r\n scrollByContent: touch,\r\n showScrollbar: \"onHover\"\r\n }\r\n }]\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollbar.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n deferRenderer\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport readyCallback from \"../../../core/utils/ready_callbacks\";\r\nimport {\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nvar SCROLLBAR = \"dxScrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"\".concat(SCROLLABLE_SCROLLBAR_CLASS, \"-active\");\r\nvar SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nvar SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nvar HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar THUMB_MIN_SIZE = 15;\r\nvar SCROLLBAR_VISIBLE = {\r\n onScroll: \"onScroll\",\r\n onHover: \"onHover\",\r\n always: \"always\",\r\n never: \"never\"\r\n};\r\nvar activeScrollbar = null;\r\nvar Scrollbar = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n direction: null,\r\n visible: false,\r\n activeStateEnabled: false,\r\n visibilityMode: SCROLLBAR_VISIBLE.onScroll,\r\n containerSize: 0,\r\n contentSize: 0,\r\n expandable: true,\r\n scaleRatio: 1\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._isHovered = false\r\n },\r\n _initMarkup() {\r\n this._renderThumb();\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderDirection();\r\n this._update();\r\n this._attachPointerDownHandler();\r\n this.option(\"hoverStateEnabled\", this._isHoverMode());\r\n this.$element().toggleClass(HOVER_ENABLED_STATE, this.option(\"hoverStateEnabled\"))\r\n },\r\n _renderThumb() {\r\n this._$thumb = $(\"
\").addClass(SCROLLABLE_SCROLL_CLASS);\r\n $(\"
\").addClass(SCROLLABLE_SCROLL_CONTENT_CLASS).appendTo(this._$thumb);\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_CLASS).append(this._$thumb)\r\n },\r\n isThumb($element) {\r\n return !!this.$element().find($element).length\r\n },\r\n _isHoverMode() {\r\n var visibilityMode = this.option(\"visibilityMode\");\r\n return (visibilityMode === SCROLLBAR_VISIBLE.onHover || visibilityMode === SCROLLBAR_VISIBLE.always) && this.option(\"expandable\")\r\n },\r\n _renderDirection() {\r\n var direction = this.option(\"direction\");\r\n this.$element().addClass(\"dx-scrollbar-\".concat(direction));\r\n this._dimension = direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._prop = direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _attachPointerDownHandler() {\r\n eventsEngine.on(this._$thumb, addNamespace(pointerEvents.down, SCROLLBAR), this.feedbackOn.bind(this))\r\n },\r\n feedbackOn(e) {\r\n null === e || void 0 === e ? void 0 : e.preventDefault();\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = this\r\n },\r\n feedbackOff() {\r\n this.$element().removeClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = null\r\n },\r\n cursorEnter() {\r\n this._isHovered = true;\r\n if (this._needScrollbar()) {\r\n this.option(\"visible\", true)\r\n }\r\n },\r\n cursorLeave() {\r\n this._isHovered = false;\r\n this.option(\"visible\", false)\r\n },\r\n _renderDimensions() {\r\n this._$thumb.css({\r\n width: this.option(\"width\"),\r\n height: this.option(\"height\")\r\n })\r\n },\r\n _toggleVisibility(visible) {\r\n if (this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.onScroll) {\r\n this._$thumb.css(\"opacity\")\r\n }\r\n visible = this._adjustVisibility(visible);\r\n this.option().visible = visible;\r\n this._$thumb.toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _adjustVisibility(visible) {\r\n if (this._baseContainerToContentRatio && !this._needScrollbar()) {\r\n return false\r\n }\r\n switch (this.option(\"visibilityMode\")) {\r\n case SCROLLBAR_VISIBLE.onScroll:\r\n break;\r\n case SCROLLBAR_VISIBLE.onHover:\r\n visible = visible || !!this._isHovered;\r\n break;\r\n case SCROLLBAR_VISIBLE.never:\r\n visible = false;\r\n break;\r\n case SCROLLBAR_VISIBLE.always:\r\n visible = true\r\n }\r\n return visible\r\n },\r\n moveTo(location) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n if (isPlainObject(location)) {\r\n location = location[this._prop] || 0\r\n }\r\n var scrollBarLocation = {};\r\n scrollBarLocation[this._prop] = this._calculateScrollBarPosition(location);\r\n move(this._$thumb, scrollBarLocation)\r\n },\r\n _calculateScrollBarPosition(location) {\r\n return -location * this._thumbRatio\r\n },\r\n _update() {\r\n var containerSize = Math.round(this.option(\"containerSize\"));\r\n var contentSize = Math.round(this.option(\"contentSize\"));\r\n var baseContainerSize = Math.round(this.option(\"baseContainerSize\"));\r\n var baseContentSize = Math.round(this.option(\"baseContentSize\"));\r\n if (isNaN(baseContainerSize)) {\r\n baseContainerSize = containerSize;\r\n baseContentSize = contentSize\r\n }\r\n this._baseContainerToContentRatio = baseContentSize ? baseContainerSize / baseContentSize : baseContainerSize;\r\n this._realContainerToContentRatio = contentSize ? containerSize / contentSize : containerSize;\r\n var thumbSize = Math.round(Math.max(Math.round(containerSize * this._realContainerToContentRatio), THUMB_MIN_SIZE));\r\n this._thumbRatio = (containerSize - thumbSize) / (this.option(\"scaleRatio\") * (contentSize - containerSize));\r\n this.option(this._dimension, thumbSize / this.option(\"scaleRatio\"));\r\n this.$element().css(\"display\", this._needScrollbar() ? \"\" : \"none\")\r\n },\r\n _isHidden() {\r\n return this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.never\r\n },\r\n _needScrollbar() {\r\n return !this._isHidden() && this._baseContainerToContentRatio < 1\r\n },\r\n containerToContentRatio() {\r\n return this._realContainerToContentRatio\r\n },\r\n _normalizeSize(size) {\r\n return isPlainObject(size) ? size[this._dimension] || 0 : size\r\n },\r\n _clean() {\r\n this.callBase();\r\n if (this === activeScrollbar) {\r\n activeScrollbar = null\r\n }\r\n eventsEngine.off(this._$thumb, \".\".concat(SCROLLBAR))\r\n },\r\n _optionChanged(args) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"containerSize\":\r\n case \"contentSize\":\r\n this.option()[args.name] = this._normalizeSize(args.value);\r\n this._update();\r\n break;\r\n case \"baseContentSize\":\r\n case \"baseContainerSize\":\r\n this._update();\r\n break;\r\n case \"visibilityMode\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"scaleRatio\":\r\n this._update();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n update: deferRenderer((function() {\r\n this._adjustVisibility() && this.option(\"visible\", true)\r\n }))\r\n});\r\nreadyCallback.add(() => {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), addNamespace(pointerEvents.up, SCROLLBAR), () => {\r\n if (activeScrollbar) {\r\n activeScrollbar.feedbackOff()\r\n }\r\n })\r\n});\r\nexport default Scrollbar;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollable.native.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n isDxMouseWheelEvent\r\n} from \"../../../events/utils/index\";\r\nimport Scrollbar from \"./m_scrollbar\";\r\nvar SCROLLABLE_NATIVE = \"dxNativeScrollable\";\r\nvar SCROLLABLE_NATIVE_CLASS = \"dx-scrollable-native\";\r\nvar SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar HIDE_SCROLLBAR_TIMEOUT = 500;\r\nvar NativeStrategy = Class.inherit({\r\n ctor(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$content = scrollable.$content();\r\n this._direction = scrollable.option(\"direction\");\r\n this._useSimulatedScrollbar = scrollable.option(\"useSimulatedScrollbar\");\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable);\r\n this._isRtlNativeStrategy = scrollable._isRtlNativeStrategy.bind(scrollable)\r\n },\r\n render() {\r\n var device = devices.real();\r\n var deviceType = device.platform;\r\n this._$element.addClass(SCROLLABLE_NATIVE_CLASS).addClass(\"\".concat(SCROLLABLE_NATIVE_CLASS, \"-\").concat(deviceType)).toggleClass(SCROLLABLE_SCROLLBARS_HIDDEN, !this._isScrollbarVisible());\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._renderScrollbars()\r\n }\r\n },\r\n updateRtlPosition(isFirstRender) {\r\n if (isFirstRender && this.option(\"rtlEnabled\")) {\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._moveScrollbars()\r\n }\r\n }\r\n },\r\n _renderScrollbars() {\r\n this._scrollbars = {};\r\n this._hideScrollbarTimeout = 0;\r\n this._$element.addClass(SCROLLABLE_SCROLLBAR_SIMULATED);\r\n this._renderScrollbar(VERTICAL);\r\n this._renderScrollbar(HORIZONTAL)\r\n },\r\n _renderScrollbar(direction) {\r\n if (!this._isDirection(direction)) {\r\n return\r\n }\r\n this._scrollbars[direction] = new Scrollbar($(\"
\").appendTo(this._$element), {\r\n direction: direction,\r\n expandable: this._component.option(\"scrollByThumb\")\r\n })\r\n },\r\n handleInit: noop,\r\n handleStart: noop,\r\n handleMove(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._allowedDirection()) {\r\n e.originalEvent.isScrollingEvent = true\r\n }\r\n },\r\n handleEnd: noop,\r\n handleCancel: noop,\r\n handleStop: noop,\r\n _eachScrollbar(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollbars || {}, (direction, scrollbar) => {\r\n callback(scrollbar, direction)\r\n })\r\n },\r\n createActions() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._updateAction = this._createActionByOption(\"onUpdated\")\r\n },\r\n _createActionArgs() {\r\n var {\r\n left: left,\r\n top: top\r\n } = this.location();\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._getScrollOffset(),\r\n reachedLeft: this._isRtlNativeStrategy() ? this._isReachedRight(-left) : this._isReachedLeft(left),\r\n reachedRight: this._isRtlNativeStrategy() ? this._isReachedLeft(-Math.abs(left)) : this._isReachedRight(left),\r\n reachedTop: this._isDirection(VERTICAL) ? Math.round(top) >= 0 : void 0,\r\n reachedBottom: this._isDirection(VERTICAL) ? Math.round(Math.abs(top) - this._getMaxOffset().top) >= 0 : void 0\r\n }\r\n },\r\n _getScrollOffset() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this.location();\r\n return {\r\n top: -top,\r\n left: this._normalizeOffsetLeft(-left)\r\n }\r\n },\r\n _normalizeOffsetLeft(scrollLeft) {\r\n if (this._isRtlNativeStrategy()) {\r\n return this._getMaxOffset().left + scrollLeft\r\n }\r\n return scrollLeft\r\n },\r\n _isReachedLeft(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(left) >= 0 : void 0\r\n },\r\n _isReachedRight(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(Math.abs(left) - this._getMaxOffset().left) >= 0 : void 0\r\n },\r\n _isScrollbarVisible() {\r\n var {\r\n showScrollbar: showScrollbar\r\n } = this.option();\r\n return \"never\" !== showScrollbar && false !== showScrollbar\r\n },\r\n handleScroll(e) {\r\n this._eventForUserAction = e;\r\n this._moveScrollbars();\r\n this._scrollAction(this._createActionArgs())\r\n },\r\n _moveScrollbars() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this._getScrollOffset();\r\n this._eachScrollbar(scrollbar => {\r\n scrollbar.moveTo({\r\n top: -top,\r\n left: -left\r\n });\r\n scrollbar.option(\"visible\", true)\r\n });\r\n this._hideScrollbars()\r\n },\r\n _hideScrollbars() {\r\n clearTimeout(this._hideScrollbarTimeout);\r\n this._hideScrollbarTimeout = setTimeout(() => {\r\n this._eachScrollbar(scrollbar => {\r\n scrollbar.option(\"visible\", false)\r\n })\r\n }, HIDE_SCROLLBAR_TIMEOUT)\r\n },\r\n location() {\r\n return {\r\n left: -this._$container.scrollLeft(),\r\n top: -this._$container.scrollTop()\r\n }\r\n },\r\n disabledChanged: noop,\r\n update() {\r\n this._update();\r\n this._updateAction(this._createActionArgs())\r\n },\r\n _update() {\r\n this._updateDimensions();\r\n this._updateScrollbars()\r\n },\r\n _updateDimensions() {\r\n this._containerSize = {\r\n height: getHeight(this._$container),\r\n width: getWidth(this._$container)\r\n };\r\n this._componentContentSize = {\r\n height: getHeight(this._component.$content()),\r\n width: getWidth(this._component.$content())\r\n };\r\n this._contentSize = {\r\n height: getHeight(this._$content),\r\n width: getWidth(this._$content)\r\n }\r\n },\r\n _updateScrollbars() {\r\n this._eachScrollbar((function(scrollbar, direction) {\r\n var dimension = direction === VERTICAL ? \"height\" : \"width\";\r\n scrollbar.option({\r\n containerSize: this._containerSize[dimension],\r\n contentSize: this._componentContentSize[dimension]\r\n });\r\n scrollbar.update()\r\n }))\r\n },\r\n _allowedDirections() {\r\n return {\r\n vertical: this._isDirection(VERTICAL) && this._contentSize.height > this._containerSize.height,\r\n horizontal: this._isDirection(HORIZONTAL) && this._contentSize.width > this._containerSize.width\r\n }\r\n },\r\n dispose() {\r\n var {\r\n className: className\r\n } = this._$element.get(0);\r\n var scrollableNativeRegexp = new RegExp(\"\".concat(SCROLLABLE_NATIVE_CLASS, \"\\\\S*\"), \"g\");\r\n if (scrollableNativeRegexp.test(className)) {\r\n this._$element.removeClass(className.match(scrollableNativeRegexp).join(\" \"))\r\n }\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_NATIVE));\r\n eventsEngine.off(this._$container, \".\".concat(SCROLLABLE_NATIVE));\r\n this._removeScrollbars();\r\n clearTimeout(this._hideScrollbarTimeout)\r\n },\r\n _removeScrollbars() {\r\n this._eachScrollbar(scrollbar => {\r\n scrollbar.$element().remove()\r\n })\r\n },\r\n scrollBy(distance) {\r\n var location = this.location();\r\n this._$container.scrollTop(Math.round(-location.top - distance.top));\r\n this._$container.scrollLeft(Math.round(-location.left - distance.left))\r\n },\r\n validate(e) {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (isDxMouseWheelEvent(e) && this._isScrolledInMaxDirection(e)) {\r\n return false\r\n }\r\n return !!this._allowedDirection()\r\n },\r\n _isScrolledInMaxDirection(e) {\r\n var container = this._$container.get(0);\r\n var result;\r\n if (e.delta > 0) {\r\n result = e.shiftKey ? !container.scrollLeft : !container.scrollTop\r\n } else if (e.shiftKey) {\r\n result = container.scrollLeft >= this._getMaxOffset().left\r\n } else {\r\n result = container.scrollTop >= this._getMaxOffset().top\r\n }\r\n return result\r\n },\r\n getDirection() {\r\n return this._allowedDirection()\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_animator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n cancelAnimationFrame,\r\n requestAnimationFrame\r\n} from \"../../../animation/frame\";\r\nimport Class from \"../../../core/class\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nvar {\r\n abstract: abstract\r\n} = Class;\r\nvar Animator = Class.inherit({\r\n ctor() {\r\n this._finished = true;\r\n this._stopped = false;\r\n this._proxiedStepCore = this._stepCore.bind(this)\r\n },\r\n start() {\r\n this._stopped = false;\r\n this._finished = false;\r\n this._stepCore()\r\n },\r\n stop() {\r\n this._stopped = true;\r\n cancelAnimationFrame(this._stepAnimationFrame)\r\n },\r\n _stepCore() {\r\n if (this._isStopped()) {\r\n this._stop();\r\n return\r\n }\r\n if (this._isFinished()) {\r\n this._finished = true;\r\n this._complete();\r\n return\r\n }\r\n this._step();\r\n this._stepAnimationFrame = requestAnimationFrame(this._proxiedStepCore)\r\n },\r\n _step: abstract,\r\n _isFinished: noop,\r\n _stop: noop,\r\n _complete: noop,\r\n _isStopped() {\r\n return this._stopped\r\n },\r\n inProgress() {\r\n return !(this._stopped || this._finished)\r\n }\r\n});\r\nexport default Animator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollable.simulated.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move,\r\n resetPosition\r\n} from \"../../../animation/translator\";\r\nimport Class from \"../../../core/class\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n deferRender,\r\n deferRenderer,\r\n deferUpdate,\r\n deferUpdater,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n titleize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace as addEventNamespace,\r\n isCommandKeyPressed,\r\n isDxMouseWheelEvent,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport Animator from \"./m_animator\";\r\nimport Scrollbar from \"./m_scrollbar\";\r\nvar SCROLLABLE_SIMULATED = \"dxSimulatedScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_SIMULATED_CURSOR = \"\".concat(SCROLLABLE_SIMULATED, \"Cursor\");\r\nvar SCROLLABLE_SIMULATED_KEYBOARD = \"\".concat(SCROLLABLE_SIMULATED, \"Keyboard\");\r\nvar SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar ACCELERATION = .92;\r\nvar OUT_BOUNDS_ACCELERATION = .5;\r\nvar MIN_VELOCITY_LIMIT = 1;\r\nvar FRAME_DURATION = Math.round(1e3 / 60);\r\nvar SCROLL_LINE_HEIGHT = 40;\r\nvar VALIDATE_WHEEL_TIMEOUT = 500;\r\nvar BOUNCE_MIN_VELOCITY_LIMIT = MIN_VELOCITY_LIMIT / 5;\r\nvar BOUNCE_DURATION = 400;\r\nvar BOUNCE_FRAMES = BOUNCE_DURATION / FRAME_DURATION;\r\nvar BOUNCE_ACCELERATION_SUM = (1 - ACCELERATION ** BOUNCE_FRAMES) / (1 - ACCELERATION);\r\nvar KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\",\r\n TAB: \"tab\"\r\n};\r\nvar InertiaAnimator = Animator.inherit({\r\n ctor(scroller) {\r\n this.callBase();\r\n this.scroller = scroller\r\n },\r\n VELOCITY_LIMIT: MIN_VELOCITY_LIMIT,\r\n _isFinished() {\r\n return Math.abs(this.scroller._velocity) <= this.VELOCITY_LIMIT\r\n },\r\n _step() {\r\n this.scroller._scrollStep(this.scroller._velocity);\r\n this.scroller._velocity *= this._acceleration()\r\n },\r\n _acceleration() {\r\n return this.scroller._inBounds() ? ACCELERATION : OUT_BOUNDS_ACCELERATION\r\n },\r\n _complete() {\r\n this.scroller._scrollComplete()\r\n }\r\n});\r\nvar BounceAnimator = InertiaAnimator.inherit({\r\n VELOCITY_LIMIT: BOUNCE_MIN_VELOCITY_LIMIT,\r\n _isFinished() {\r\n return this.scroller._crossBoundOnNextStep() || this.callBase()\r\n },\r\n _acceleration: () => ACCELERATION,\r\n _complete() {\r\n this.scroller._move(this.scroller._bounceLocation);\r\n this.callBase()\r\n }\r\n});\r\nexport var Scroller = Class.inherit({\r\n ctor(options) {\r\n this._initOptions(options);\r\n this._initAnimators();\r\n this._initScrollbar()\r\n },\r\n _initOptions(options) {\r\n this._location = 0;\r\n this._topReached = false;\r\n this._bottomReached = false;\r\n this._axis = options.direction === HORIZONTAL ? \"x\" : \"y\";\r\n this._prop = options.direction === HORIZONTAL ? \"left\" : \"top\";\r\n this._dimension = options.direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._scrollProp = options.direction === HORIZONTAL ? \"scrollLeft\" : \"scrollTop\";\r\n each(options, (optionName, optionValue) => {\r\n this[\"_\".concat(optionName)] = optionValue\r\n })\r\n },\r\n _initAnimators() {\r\n this._inertiaAnimator = new InertiaAnimator(this);\r\n this._bounceAnimator = new BounceAnimator(this)\r\n },\r\n _initScrollbar() {\r\n this._scrollbar = new Scrollbar($(\"
\").appendTo(this._$container), {\r\n direction: this._direction,\r\n visible: this._scrollByThumb,\r\n visibilityMode: this._visibilityModeNormalize(this._scrollbarVisible),\r\n expandable: this._scrollByThumb\r\n });\r\n this._$scrollbar = this._scrollbar.$element()\r\n },\r\n _visibilityModeNormalize: mode => true === mode ? \"onScroll\" : false === mode ? \"never\" : mode,\r\n _scrollStep(delta) {\r\n var prevLocation = this._location;\r\n this._location += delta;\r\n this._suppressBounce();\r\n this._move();\r\n if (Math.abs(prevLocation - this._location) < 1) {\r\n return\r\n }\r\n eventsEngine.triggerHandler(this._$container, {\r\n type: \"scroll\"\r\n })\r\n },\r\n _suppressBounce() {\r\n if (this._bounceEnabled || this._inBounds(this._location)) {\r\n return\r\n }\r\n this._velocity = 0;\r\n this._location = this._boundLocation()\r\n },\r\n _boundLocation(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return Math.max(Math.min(location, this._maxOffset), this._minOffset)\r\n },\r\n _move(location) {\r\n this._location = void 0 !== location ? location * this._getScaleRatio() : this._location;\r\n this._moveContent();\r\n this._moveScrollbar()\r\n },\r\n _moveContent() {\r\n var location = this._location;\r\n this._$container[this._scrollProp](-location / this._getScaleRatio());\r\n this._moveContentByTranslator(location)\r\n },\r\n _getScaleRatio() {\r\n if (hasWindow() && !this._scaleRatio) {\r\n var element = this._$element.get(0);\r\n var realDimension = this._getRealDimension(element, this._dimension);\r\n var baseDimension = this._getBaseDimension(element, this._dimension);\r\n this._scaleRatio = Math.round(realDimension / baseDimension * 100) / 100\r\n }\r\n return this._scaleRatio || 1\r\n },\r\n _getRealDimension: (element, dimension) => Math.round(getBoundingRect(element)[dimension]),\r\n _getBaseDimension(element, dimension) {\r\n var dimensionName = \"offset\".concat(titleize(dimension));\r\n return element[dimensionName]\r\n },\r\n _moveContentByTranslator(location) {\r\n var translateOffset;\r\n var minOffset = -this._maxScrollPropValue;\r\n if (location > 0) {\r\n translateOffset = location\r\n } else if (location <= minOffset) {\r\n translateOffset = location - minOffset\r\n } else {\r\n translateOffset = location % 1\r\n }\r\n if (this._translateOffset === translateOffset) {\r\n return\r\n }\r\n var targetLocation = {};\r\n targetLocation[this._prop] = translateOffset;\r\n this._translateOffset = translateOffset;\r\n if (0 === translateOffset) {\r\n resetPosition(this._$content);\r\n return\r\n }\r\n move(this._$content, targetLocation)\r\n },\r\n _moveScrollbar() {\r\n this._scrollbar.moveTo(this._location)\r\n },\r\n _scrollComplete() {\r\n if (this._inBounds()) {\r\n this._hideScrollbar();\r\n if (this._completeDeferred) {\r\n this._completeDeferred.resolve()\r\n }\r\n }\r\n this._scrollToBounds()\r\n },\r\n _scrollToBounds() {\r\n if (this._inBounds()) {\r\n return\r\n }\r\n this._bounceAction();\r\n this._setupBounce();\r\n this._bounceAnimator.start()\r\n },\r\n _setupBounce() {\r\n var boundLocation = this._bounceLocation = this._boundLocation();\r\n var bounceDistance = boundLocation - this._location;\r\n this._velocity = bounceDistance / BOUNCE_ACCELERATION_SUM\r\n },\r\n _inBounds(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return this._boundLocation(location) === location\r\n },\r\n _crossBoundOnNextStep() {\r\n var location = this._location;\r\n var nextLocation = location + this._velocity;\r\n return location < this._minOffset && nextLocation >= this._minOffset || location > this._maxOffset && nextLocation <= this._maxOffset\r\n },\r\n _initHandler(e) {\r\n this._stopScrolling();\r\n this._prepareThumbScrolling(e)\r\n },\r\n _stopScrolling: deferRenderer((function() {\r\n this._hideScrollbar();\r\n this._inertiaAnimator.stop();\r\n this._bounceAnimator.stop()\r\n })),\r\n _prepareThumbScrolling(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n return\r\n }\r\n var $target = $(e.originalEvent.target);\r\n var scrollbarClicked = this._isScrollbar($target);\r\n if (scrollbarClicked) {\r\n this._moveToMouseLocation(e)\r\n }\r\n this._thumbScrolling = scrollbarClicked || this._isThumb($target);\r\n this._crossThumbScrolling = !this._thumbScrolling && this._isAnyThumbScrolling($target);\r\n if (this._thumbScrolling) {\r\n this._scrollbar.feedbackOn()\r\n }\r\n },\r\n _isThumbScrollingHandler($target) {\r\n return this._isThumb($target)\r\n },\r\n _moveToMouseLocation(e) {\r\n var mouseLocation = e[\"page\".concat(this._axis.toUpperCase())] - this._$element.offset()[this._prop];\r\n var location = this._location + mouseLocation / this._containerToContentRatio() - getHeight(this._$container) / 2;\r\n this._scrollStep(-Math.round(location))\r\n },\r\n _startHandler() {\r\n this._showScrollbar()\r\n },\r\n _moveHandler(delta) {\r\n if (this._crossThumbScrolling) {\r\n return\r\n }\r\n if (this._thumbScrolling) {\r\n delta[this._axis] = -Math.round(delta[this._axis] / this._containerToContentRatio())\r\n }\r\n this._scrollBy(delta)\r\n },\r\n _scrollBy(delta) {\r\n delta = delta[this._axis];\r\n if (!this._inBounds()) {\r\n delta *= OUT_BOUNDS_ACCELERATION\r\n }\r\n this._scrollStep(delta)\r\n },\r\n _scrollByHandler(delta) {\r\n this._scrollBy(delta);\r\n this._scrollComplete()\r\n },\r\n _containerToContentRatio() {\r\n return this._scrollbar.containerToContentRatio()\r\n },\r\n _endHandler(velocity) {\r\n this._completeDeferred = Deferred();\r\n this._velocity = velocity[this._axis];\r\n this._inertiaHandler();\r\n this._resetThumbScrolling();\r\n return this._completeDeferred.promise()\r\n },\r\n _inertiaHandler() {\r\n this._suppressInertia();\r\n this._inertiaAnimator.start()\r\n },\r\n _suppressInertia() {\r\n if (!this._inertiaEnabled || this._thumbScrolling) {\r\n this._velocity = 0\r\n }\r\n },\r\n _resetThumbScrolling() {\r\n this._thumbScrolling = false;\r\n this._crossThumbScrolling = false\r\n },\r\n _stopHandler() {\r\n if (this._thumbScrolling) {\r\n this._scrollComplete()\r\n }\r\n this._resetThumbScrolling();\r\n this._scrollToBounds()\r\n },\r\n _disposeHandler() {\r\n this._stopScrolling();\r\n this._$scrollbar.remove()\r\n },\r\n _updateHandler() {\r\n this._update();\r\n this._moveToBounds()\r\n },\r\n _update() {\r\n this._stopScrolling();\r\n return deferUpdate(() => {\r\n this._resetScaleRatio();\r\n this._updateLocation();\r\n this._updateBounds();\r\n this._updateScrollbar();\r\n deferRender(() => {\r\n this._moveScrollbar();\r\n this._scrollbar.update()\r\n })\r\n })\r\n },\r\n _resetScaleRatio() {\r\n this._scaleRatio = null\r\n },\r\n _updateLocation() {\r\n this._location = (locate(this._$content)[this._prop] - this._$container[this._scrollProp]()) * this._getScaleRatio()\r\n },\r\n _updateBounds() {\r\n this._maxOffset = this._getMaxOffset();\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: () => 0,\r\n _getMinOffset() {\r\n this._maxScrollPropValue = Math.max(this._contentSize() - this._containerSize(), 0);\r\n return -this._maxScrollPropValue\r\n },\r\n _updateScrollbar: deferUpdater((function() {\r\n var containerSize = this._containerSize();\r\n var contentSize = this._contentSize();\r\n var baseContainerSize = this._getBaseDimension(this._$container.get(0), this._dimension);\r\n var baseContentSize = this._getBaseDimension(this._$content.get(0), this._dimension);\r\n deferRender(() => {\r\n this._scrollbar.option({\r\n containerSize: containerSize,\r\n contentSize: contentSize,\r\n baseContainerSize: baseContainerSize,\r\n baseContentSize: baseContentSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n })\r\n })),\r\n _moveToBounds: deferRenderer(deferUpdater(deferRenderer((function() {\r\n var location = this._boundLocation();\r\n var locationChanged = location !== this._location;\r\n this._location = location;\r\n this._move();\r\n if (locationChanged) {\r\n this._scrollAction()\r\n }\r\n })))),\r\n _createActionsHandler(actions) {\r\n this._scrollAction = actions.scroll;\r\n this._bounceAction = actions.bounce\r\n },\r\n _showScrollbar() {\r\n this._scrollbar.option(\"visible\", true)\r\n },\r\n _hideScrollbar() {\r\n this._scrollbar.option(\"visible\", false)\r\n },\r\n _containerSize() {\r\n return this._getRealDimension(this._$container.get(0), this._dimension)\r\n },\r\n _contentSize() {\r\n var isOverflowHidden = \"hidden\" === this._$content.css(\"overflow\".concat(this._axis.toUpperCase()));\r\n var contentSize = this._getRealDimension(this._$content.get(0), this._dimension);\r\n if (!isOverflowHidden) {\r\n var containerScrollSize = this._$content[0][\"scroll\".concat(titleize(this._dimension))] * this._getScaleRatio();\r\n contentSize = Math.max(containerScrollSize, contentSize)\r\n }\r\n return contentSize\r\n },\r\n _validateEvent(e) {\r\n var $target = $(e.originalEvent.target);\r\n return this._isThumb($target) || this._isScrollbar($target)\r\n },\r\n _isThumb($element) {\r\n return this._scrollByThumb && this._scrollbar.isThumb($element)\r\n },\r\n _isScrollbar($element) {\r\n return this._scrollByThumb && $element && $element.is(this._$scrollbar)\r\n },\r\n _reachedMin() {\r\n return Math.round(this._location - this._minOffset) <= 0\r\n },\r\n _reachedMax() {\r\n return Math.round(this._location - this._maxOffset) >= 0\r\n },\r\n _cursorEnterHandler() {\r\n this._resetScaleRatio();\r\n this._updateScrollbar();\r\n this._scrollbar.cursorEnter()\r\n },\r\n _cursorLeaveHandler() {\r\n this._scrollbar.cursorLeave()\r\n },\r\n dispose: noop\r\n});\r\nvar hoveredScrollable;\r\nvar activeScrollable;\r\nexport var SimulatedStrategy = Class.inherit({\r\n ctor(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$wrapper = scrollable._$wrapper;\r\n this._$content = scrollable.$content();\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable)\r\n },\r\n render() {\r\n this._$element.addClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._createScrollers();\r\n if (this.option(\"useKeyboard\")) {\r\n this._$container.prop(\"tabIndex\", 0)\r\n }\r\n this._attachKeyboardHandler();\r\n this._attachCursorHandlers()\r\n },\r\n _createScrollers() {\r\n this._scrollers = {};\r\n if (this._isDirection(HORIZONTAL)) {\r\n this._createScroller(HORIZONTAL)\r\n }\r\n if (this._isDirection(VERTICAL)) {\r\n this._createScroller(VERTICAL)\r\n }\r\n this._$element.toggleClass(SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE, \"always\" === this.option(\"showScrollbar\"))\r\n },\r\n _createScroller(direction) {\r\n this._scrollers[direction] = new Scroller(this._scrollerOptions(direction))\r\n },\r\n _scrollerOptions(direction) {\r\n return {\r\n direction: direction,\r\n $content: this._$content,\r\n $container: this._$container,\r\n $wrapper: this._$wrapper,\r\n $element: this._$element,\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n scrollbarVisible: this.option(\"showScrollbar\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n inertiaEnabled: this.option(\"inertiaEnabled\"),\r\n isAnyThumbScrolling: this._isAnyThumbScrolling.bind(this)\r\n }\r\n },\r\n _applyScaleRatio(targetLocation) {\r\n for (var direction in this._scrollers) {\r\n var prop = this._getPropByDirection(direction);\r\n if (isDefined(targetLocation[prop])) {\r\n var scroller = this._scrollers[direction];\r\n targetLocation[prop] *= scroller._getScaleRatio()\r\n }\r\n }\r\n return targetLocation\r\n },\r\n _isAnyThumbScrolling($target) {\r\n var result = false;\r\n this._eventHandler(\"isThumbScrolling\", $target).done((isThumbScrollingVertical, isThumbScrollingHorizontal) => {\r\n result = isThumbScrollingVertical || isThumbScrollingHorizontal\r\n });\r\n return result\r\n },\r\n handleInit(e) {\r\n this._suppressDirections(e);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"init\", e)\r\n },\r\n _suppressDirections(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n this._prepareDirections(true);\r\n return\r\n }\r\n this._prepareDirections();\r\n this._eachScroller((function(scroller, direction) {\r\n var $target = $(e.originalEvent.target);\r\n var isValid = scroller._validateEvent(e) || this.option(\"scrollByContent\") && this._isContent($target);\r\n this._validDirections[direction] = isValid\r\n }))\r\n },\r\n _isContent($element) {\r\n return !!$element.closest(this._$element).length\r\n },\r\n _prepareDirections(value) {\r\n value = value || false;\r\n this._validDirections = {};\r\n this._validDirections[HORIZONTAL] = value;\r\n this._validDirections[VERTICAL] = value\r\n },\r\n _eachScroller(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollers, (direction, scroller) => {\r\n callback(scroller, direction)\r\n })\r\n },\r\n handleStart(e) {\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"start\").done(this._startAction)\r\n },\r\n _saveActive() {\r\n activeScrollable = this\r\n },\r\n _resetActive() {\r\n if (activeScrollable === this) {\r\n activeScrollable = null\r\n }\r\n },\r\n handleMove(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n this._resetActive();\r\n return\r\n }\r\n this._saveActive();\r\n e.preventDefault && e.preventDefault();\r\n this._adjustDistance(e, e.delta);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"move\", e.delta)\r\n },\r\n _adjustDistance(e, distance) {\r\n distance.x *= this._validDirections[HORIZONTAL];\r\n distance.y *= this._validDirections[VERTICAL];\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n if (devicePixelRatio && isDxMouseWheelEvent(e.originalEvent)) {\r\n distance.x = Math.round(distance.x / devicePixelRatio * 100) / 100;\r\n distance.y = Math.round(distance.y / devicePixelRatio * 100) / 100\r\n }\r\n },\r\n _tryGetDevicePixelRatio() {\r\n if (hasWindow()) {\r\n return getWindow().devicePixelRatio\r\n }\r\n },\r\n handleEnd(e) {\r\n this._resetActive();\r\n this._refreshCursorState(e.originalEvent && e.originalEvent.target);\r\n this._adjustDistance(e, e.velocity);\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", e.velocity).done(this._endAction)\r\n },\r\n handleCancel(e) {\r\n this._resetActive();\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", {\r\n x: 0,\r\n y: 0\r\n })\r\n },\r\n handleStop() {\r\n this._resetActive();\r\n this._eventHandler(\"stop\")\r\n },\r\n handleScroll() {\r\n this._updateRtlConfig();\r\n this._scrollAction()\r\n },\r\n _attachKeyboardHandler() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD));\r\n if (!this.option(\"disabled\") && this.option(\"useKeyboard\")) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"keydown\", SCROLLABLE_SIMULATED_KEYBOARD), this._keyDownHandler.bind(this))\r\n }\r\n },\r\n _keyDownHandler(e) {\r\n clearTimeout(this._updateHandlerTimeout);\r\n this._updateHandlerTimeout = setTimeout(() => {\r\n if (normalizeKeyName(e) === KEY_CODES.TAB) {\r\n this._eachScroller(scroller => {\r\n scroller._updateHandler()\r\n })\r\n }\r\n });\r\n if (!this._$container.is(domAdapter.getActiveElement(this._$container.get(0)))) {\r\n return\r\n }\r\n var handled = true;\r\n switch (normalizeKeyName(e)) {\r\n case KEY_CODES.DOWN:\r\n this._scrollByLine({\r\n y: 1\r\n });\r\n break;\r\n case KEY_CODES.UP:\r\n this._scrollByLine({\r\n y: -1\r\n });\r\n break;\r\n case KEY_CODES.RIGHT:\r\n this._scrollByLine({\r\n x: 1\r\n });\r\n break;\r\n case KEY_CODES.LEFT:\r\n this._scrollByLine({\r\n x: -1\r\n });\r\n break;\r\n case KEY_CODES.PAGE_DOWN:\r\n this._scrollByPage(1);\r\n break;\r\n case KEY_CODES.PAGE_UP:\r\n this._scrollByPage(-1);\r\n break;\r\n case KEY_CODES.HOME:\r\n this._scrollToHome();\r\n break;\r\n case KEY_CODES.END:\r\n this._scrollToEnd();\r\n break;\r\n default:\r\n handled = false\r\n }\r\n if (handled) {\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n },\r\n _scrollByLine(lines) {\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n var scrollOffset = SCROLL_LINE_HEIGHT;\r\n if (devicePixelRatio) {\r\n scrollOffset = Math.abs(scrollOffset / devicePixelRatio * 100) / 100\r\n }\r\n this.scrollBy({\r\n top: (lines.y || 0) * -scrollOffset,\r\n left: (lines.x || 0) * -scrollOffset\r\n })\r\n },\r\n _scrollByPage(page) {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = page * -getter(this._$container);\r\n this.scrollBy(distance)\r\n },\r\n _dimensionByProp: prop => \"left\" === prop ? \"width\" : \"height\",\r\n _getPropByDirection: direction => direction === HORIZONTAL ? \"left\" : \"top\",\r\n _scrollToHome() {\r\n var prop = this._wheelProp();\r\n var distance = {};\r\n distance[prop] = 0;\r\n this._component.scrollTo(distance)\r\n },\r\n _scrollToEnd() {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = getter(this._$content) - getter(this._$container);\r\n this._component.scrollTo(distance)\r\n },\r\n createActions() {\r\n this._startAction = this._createActionHandler(\"onStart\");\r\n this._endAction = this._createActionHandler(\"onEnd\");\r\n this._updateAction = this._createActionHandler(\"onUpdated\");\r\n this._createScrollerActions()\r\n },\r\n _createScrollerActions() {\r\n this._scrollAction = this._createActionHandler(\"onScroll\");\r\n this._bounceAction = this._createActionHandler(\"onBounce\");\r\n this._eventHandler(\"createActions\", {\r\n scroll: this._scrollAction,\r\n bounce: this._bounceAction\r\n })\r\n },\r\n _createActionHandler(optionName) {\r\n var actionHandler = this._createActionByOption(optionName);\r\n return () => {\r\n actionHandler(extend(this._createActionArgs(), arguments))\r\n }\r\n },\r\n _createActionArgs() {\r\n var {\r\n horizontal: scrollerX,\r\n vertical: scrollerY\r\n } = this._scrollers;\r\n var offset = this._getScrollOffset();\r\n this._scrollOffset = {\r\n top: scrollerY && offset.top,\r\n left: scrollerX && offset.left\r\n };\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._scrollOffset,\r\n reachedLeft: scrollerX && scrollerX._reachedMax(),\r\n reachedRight: scrollerX && scrollerX._reachedMin(),\r\n reachedTop: scrollerY && scrollerY._reachedMax(),\r\n reachedBottom: scrollerY && scrollerY._reachedMin()\r\n }\r\n },\r\n _getScrollOffset() {\r\n return {\r\n top: -this.location().top,\r\n left: -this.location().left\r\n }\r\n },\r\n _eventHandler(eventName) {\r\n var args = [].slice.call(arguments).slice(1);\r\n var deferreds = map(this._scrollers, scroller => scroller[\"_\".concat(eventName, \"Handler\")].apply(scroller, args));\r\n return when.apply($, deferreds).promise()\r\n },\r\n location() {\r\n var location = locate(this._$content);\r\n location.top -= this._$container.scrollTop();\r\n location.left -= this._$container.scrollLeft();\r\n return location\r\n },\r\n disabledChanged() {\r\n this._attachCursorHandlers()\r\n },\r\n _attachCursorHandlers() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n if (!this.option(\"disabled\") && this._isHoverMode()) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseenter\", SCROLLABLE_SIMULATED_CURSOR), this._cursorEnterHandler.bind(this));\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseleave\", SCROLLABLE_SIMULATED_CURSOR), this._cursorLeaveHandler.bind(this))\r\n }\r\n },\r\n _isHoverMode() {\r\n return \"onHover\" === this.option(\"showScrollbar\")\r\n },\r\n _cursorEnterHandler(e) {\r\n e = e || {};\r\n e.originalEvent = e.originalEvent || {};\r\n if (activeScrollable || e.originalEvent._hoverHandled) {\r\n return\r\n }\r\n if (hoveredScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n hoveredScrollable = this;\r\n this._eventHandler(\"cursorEnter\");\r\n e.originalEvent._hoverHandled = true\r\n },\r\n _cursorLeaveHandler(e) {\r\n if (hoveredScrollable !== this || activeScrollable === hoveredScrollable) {\r\n return\r\n }\r\n this._eventHandler(\"cursorLeave\");\r\n hoveredScrollable = null;\r\n this._refreshCursorState(e && e.relatedTarget)\r\n },\r\n _refreshCursorState(target) {\r\n if (!this._isHoverMode() && (!target || activeScrollable)) {\r\n return\r\n }\r\n var $target = $(target);\r\n var $scrollable = $target.closest(\".\".concat(SCROLLABLE_SIMULATED_CLASS, \":not(.dx-state-disabled)\"));\r\n var targetScrollable = $scrollable.length && $scrollable.data(SCROLLABLE_STRATEGY);\r\n if (hoveredScrollable && hoveredScrollable !== targetScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n if (targetScrollable) {\r\n targetScrollable._cursorEnterHandler()\r\n }\r\n },\r\n update() {\r\n var result = this._eventHandler(\"update\").done(this._updateAction);\r\n return when(result, deferUpdate(() => {\r\n var allowedDirections = this._allowedDirections();\r\n deferRender(() => {\r\n var touchDirection = allowedDirections.vertical ? \"pan-x\" : \"\";\r\n touchDirection = allowedDirections.horizontal ? \"pan-y\" : touchDirection;\r\n touchDirection = allowedDirections.vertical && allowedDirections.horizontal ? \"none\" : touchDirection;\r\n this._$container.css(\"touchAction\", touchDirection)\r\n });\r\n return when().promise()\r\n }))\r\n },\r\n _allowedDirections() {\r\n var bounceEnabled = this.option(\"bounceEnabled\");\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n return {\r\n vertical: verticalScroller && (verticalScroller._minOffset < 0 || bounceEnabled),\r\n horizontal: horizontalScroller && (horizontalScroller._minOffset < 0 || bounceEnabled)\r\n }\r\n },\r\n _updateBounds() {\r\n this._scrollers[HORIZONTAL] && this._scrollers[HORIZONTAL]._updateBounds()\r\n },\r\n _isHorizontalAndRtlEnabled() {\r\n return this.option(\"rtlEnabled\") && this.option(\"direction\") !== VERTICAL\r\n },\r\n updateRtlPosition(needInitializeRtlConfig) {\r\n if (needInitializeRtlConfig) {\r\n this._rtlConfig = {\r\n scrollRight: 0,\r\n clientWidth: this._$container.get(0).clientWidth,\r\n windowPixelRatio: this._getWindowDevicePixelRatio()\r\n }\r\n }\r\n this._updateBounds();\r\n if (this._isHorizontalAndRtlEnabled()) {\r\n var scrollLeft = this._getMaxOffset().left - this._rtlConfig.scrollRight;\r\n if (scrollLeft <= 0) {\r\n scrollLeft = 0;\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left\r\n }\r\n if (this._getScrollOffset().left !== scrollLeft) {\r\n this._rtlConfig.skipUpdating = true;\r\n this._component.scrollTo({\r\n left: scrollLeft\r\n });\r\n this._rtlConfig.skipUpdating = false\r\n }\r\n }\r\n },\r\n _updateRtlConfig() {\r\n if (this._isHorizontalAndRtlEnabled() && !this._rtlConfig.skipUpdating) {\r\n var {\r\n clientWidth: clientWidth,\r\n scrollLeft: scrollLeft\r\n } = this._$container.get(0);\r\n var windowPixelRatio = this._getWindowDevicePixelRatio();\r\n if (this._rtlConfig.windowPixelRatio === windowPixelRatio && this._rtlConfig.clientWidth === clientWidth) {\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left - scrollLeft\r\n }\r\n this._rtlConfig.clientWidth = clientWidth;\r\n this._rtlConfig.windowPixelRatio = windowPixelRatio\r\n }\r\n },\r\n _getWindowDevicePixelRatio: () => hasWindow() ? getWindow().devicePixelRatio : 1,\r\n scrollBy(distance) {\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n if (verticalScroller) {\r\n distance.top = verticalScroller._boundLocation(distance.top + verticalScroller._location) - verticalScroller._location\r\n }\r\n if (horizontalScroller) {\r\n distance.left = horizontalScroller._boundLocation(distance.left + horizontalScroller._location) - horizontalScroller._location\r\n }\r\n this._prepareDirections(true);\r\n this._startAction();\r\n this._eventHandler(\"scrollBy\", {\r\n x: distance.left,\r\n y: distance.top\r\n });\r\n this._endAction();\r\n this._updateRtlConfig()\r\n },\r\n validate(e) {\r\n if (isDxMouseWheelEvent(e) && isCommandKeyPressed(e)) {\r\n return false\r\n }\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"bounceEnabled\")) {\r\n return true\r\n }\r\n return isDxMouseWheelEvent(e) ? this._validateWheel(e) : this._validateMove(e)\r\n },\r\n _validateWheel(e) {\r\n var scroller = this._scrollers[this._wheelDirection(e)];\r\n var reachedMin = scroller._reachedMin();\r\n var reachedMax = scroller._reachedMax();\r\n var contentGreaterThanContainer = !reachedMin || !reachedMax;\r\n var locatedNotAtBound = !reachedMin && !reachedMax;\r\n var scrollFromMin = reachedMin && e.delta > 0;\r\n var scrollFromMax = reachedMax && e.delta < 0;\r\n var validated = contentGreaterThanContainer && (locatedNotAtBound || scrollFromMin || scrollFromMax);\r\n validated = validated || void 0 !== this._validateWheelTimer;\r\n if (validated) {\r\n clearTimeout(this._validateWheelTimer);\r\n this._validateWheelTimer = setTimeout(() => {\r\n this._validateWheelTimer = void 0\r\n }, VALIDATE_WHEEL_TIMEOUT)\r\n }\r\n return validated\r\n },\r\n _validateMove(e) {\r\n if (!this.option(\"scrollByContent\") && !$(e.target).closest(\".\".concat(SCROLLABLE_SCROLLBAR_CLASS)).length) {\r\n return false\r\n }\r\n return this._allowedDirection()\r\n },\r\n getDirection(e) {\r\n return isDxMouseWheelEvent(e) ? this._wheelDirection(e) : this._allowedDirection()\r\n },\r\n _wheelProp() {\r\n return this._wheelDirection() === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _wheelDirection(e) {\r\n switch (this.option(\"direction\")) {\r\n case HORIZONTAL:\r\n return HORIZONTAL;\r\n case VERTICAL:\r\n return VERTICAL;\r\n default:\r\n return e && e.shiftKey ? HORIZONTAL : VERTICAL\r\n }\r\n },\r\n dispose() {\r\n this._resetActive();\r\n if (hoveredScrollable === this) {\r\n hoveredScrollable = null\r\n }\r\n this._eventHandler(\"dispose\");\r\n this._detachEventHandlers();\r\n this._$element.removeClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._eventForUserAction = null;\r\n clearTimeout(this._validateWheelTimer);\r\n clearTimeout(this._updateHandlerTimeout)\r\n },\r\n _detachEventHandlers() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n eventsEngine.off(this._$container, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollable.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport scrollEvents from \"../../../events/gesture/emitter.gesture.scroll\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n getElementLocationInternal\r\n} from \"../../../renovation/ui/scroll_view/utils/get_element_location_internal\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"./m_scrollable.device\";\r\nimport NativeStrategy from \"./m_scrollable.native\";\r\nimport {\r\n SimulatedStrategy\r\n} from \"./m_scrollable.simulated\";\r\nvar SCROLLABLE = \"dxScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_CLASS = \"dx-scrollable\";\r\nvar SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nvar SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nvar SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nvar SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar BOTH = \"both\";\r\nvar Scrollable = DOMComponent.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n disabled: false,\r\n onScroll: null,\r\n direction: VERTICAL,\r\n showScrollbar: \"onScroll\",\r\n useNative: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n onUpdated: null,\r\n onStart: null,\r\n onEnd: null,\r\n onBounce: null,\r\n useSimulatedScrollbar: false,\r\n useKeyboard: true,\r\n inertiaEnabled: true,\r\n updateManually: false,\r\n _onVisibilityChanged: noop\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: () => nativeScrolling && \"android\" === devices.real().platform && !browser.mozilla,\r\n options: {\r\n useSimulatedScrollbar: true\r\n }\r\n }])\r\n },\r\n _initOptions(options) {\r\n this.callBase(options);\r\n if (!(\"useSimulatedScrollbar\" in options)) {\r\n this._setUseSimulatedScrollbar()\r\n }\r\n },\r\n _setUseSimulatedScrollbar() {\r\n if (!this.initialOption(\"useSimulatedScrollbar\")) {\r\n this.option(\"useSimulatedScrollbar\", !this.option(\"useNative\"))\r\n }\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initScrollableMarkup();\r\n this._locked = false\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.update();\r\n this._updateRtlPosition();\r\n this._savedScrollOffset && this.scrollTo(this._savedScrollOffset);\r\n delete this._savedScrollOffset;\r\n this.option(\"_onVisibilityChanged\")(this)\r\n } else {\r\n this._savedScrollOffset = this.scrollOffset()\r\n }\r\n },\r\n _initScrollableMarkup() {\r\n var $element = this.$element().addClass(SCROLLABLE_CLASS);\r\n var $container = this._$container = $(\"
\").addClass(SCROLLABLE_CONTAINER_CLASS);\r\n var $wrapper = this._$wrapper = $(\"
\").addClass(SCROLLABLE_WRAPPER_CLASS);\r\n var $content = this._$content = $(\"
\").addClass(SCROLLABLE_CONTENT_CLASS);\r\n $content.append($element.contents()).appendTo($container);\r\n $container.appendTo($wrapper);\r\n $wrapper.appendTo($element)\r\n },\r\n _dimensionChanged() {\r\n this.update();\r\n this._updateRtlPosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderDirection()\r\n },\r\n _render() {\r\n this._renderStrategy();\r\n this._attachEventHandlers();\r\n this._renderDisabledState();\r\n this._createActions();\r\n this.update();\r\n this.callBase();\r\n this._updateRtlPosition(true)\r\n },\r\n _updateRtlPosition(needInitializeRtlConfig) {\r\n this._strategy.updateRtlPosition(needInitializeRtlConfig)\r\n },\r\n _getMaxOffset() {\r\n var {\r\n scrollWidth: scrollWidth,\r\n clientWidth: clientWidth,\r\n scrollHeight: scrollHeight,\r\n clientHeight: clientHeight\r\n } = $(this.container()).get(0);\r\n return {\r\n left: scrollWidth - clientWidth,\r\n top: scrollHeight - clientHeight\r\n }\r\n },\r\n _attachEventHandlers() {\r\n var strategy = this._strategy;\r\n var initEventData = {\r\n getDirection: strategy.getDirection.bind(strategy),\r\n validate: this._validate.bind(this),\r\n isNative: this.option(\"useNative\"),\r\n scrollTarget: this._$container\r\n };\r\n eventsEngine.off(this._$wrapper, \".\".concat(SCROLLABLE));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.init, SCROLLABLE), initEventData, this._initHandler.bind(this));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.start, SCROLLABLE), strategy.handleStart.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.move, SCROLLABLE), strategy.handleMove.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.end, SCROLLABLE), strategy.handleEnd.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.cancel, SCROLLABLE), strategy.handleCancel.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.stop, SCROLLABLE), strategy.handleStop.bind(strategy));\r\n eventsEngine.off(this._$container, \".\".concat(SCROLLABLE));\r\n eventsEngine.on(this._$container, addNamespace(\"scroll\", SCROLLABLE), strategy.handleScroll.bind(strategy))\r\n },\r\n _validate(e) {\r\n if (this._isLocked()) {\r\n return false\r\n }\r\n this._updateIfNeed();\r\n return this._moveIsAllowed(e)\r\n },\r\n _moveIsAllowed(e) {\r\n return this._strategy.validate(e)\r\n },\r\n handleMove(e) {\r\n this._strategy.handleMove(e)\r\n },\r\n _prepareDirections(value) {\r\n this._strategy._prepareDirections(value)\r\n },\r\n _initHandler() {\r\n var strategy = this._strategy;\r\n strategy.handleInit.apply(strategy, arguments)\r\n },\r\n _renderDisabledState() {\r\n this.$element().toggleClass(SCROLLABLE_DISABLED_CLASS, this.option(\"disabled\"));\r\n if (this.option(\"disabled\")) {\r\n this._lock()\r\n } else {\r\n this._unlock()\r\n }\r\n },\r\n _renderDirection() {\r\n this.$element().removeClass(\"dx-scrollable-\".concat(HORIZONTAL)).removeClass(\"dx-scrollable-\".concat(VERTICAL)).removeClass(\"dx-scrollable-\".concat(BOTH)).addClass(\"dx-scrollable-\".concat(this.option(\"direction\")))\r\n },\r\n _renderStrategy() {\r\n this._createStrategy();\r\n this._strategy.render();\r\n this.$element().data(SCROLLABLE_STRATEGY, this._strategy)\r\n },\r\n _createStrategy() {\r\n this._strategy = this.option(\"useNative\") ? new NativeStrategy(this) : new SimulatedStrategy(this)\r\n },\r\n _createActions() {\r\n this._strategy && this._strategy.createActions()\r\n },\r\n _clean() {\r\n this._strategy && this._strategy.dispose()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onStart\":\r\n case \"onEnd\":\r\n case \"onUpdated\":\r\n case \"onScroll\":\r\n case \"onBounce\":\r\n this._createActions();\r\n break;\r\n case \"direction\":\r\n this._resetInactiveDirection();\r\n this._invalidate();\r\n break;\r\n case \"useNative\":\r\n this._setUseSimulatedScrollbar();\r\n this._invalidate();\r\n break;\r\n case \"inertiaEnabled\":\r\n case \"scrollByThumb\":\r\n case \"bounceEnabled\":\r\n case \"useKeyboard\":\r\n case \"showScrollbar\":\r\n case \"useSimulatedScrollbar\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n this._renderDisabledState();\r\n this._strategy && this._strategy.disabledChanged();\r\n break;\r\n case \"updateManually\":\r\n case \"scrollByContent\":\r\n case \"_onVisibilityChanged\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._updateRtlPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetInactiveDirection() {\r\n var inactiveProp = this._getInactiveProp();\r\n if (!inactiveProp || !hasWindow()) {\r\n return\r\n }\r\n var scrollOffset = this.scrollOffset();\r\n scrollOffset[inactiveProp] = 0;\r\n this.scrollTo(scrollOffset)\r\n },\r\n _getInactiveProp() {\r\n var direction = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return \"left\"\r\n }\r\n if (direction === HORIZONTAL) {\r\n return \"top\"\r\n }\r\n },\r\n _location() {\r\n return this._strategy.location()\r\n },\r\n _normalizeLocation(location) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? -left : void 0,\r\n top: isDefined(top) ? -top : void 0\r\n }\r\n }\r\n var direction = this.option(\"direction\");\r\n return {\r\n left: direction !== VERTICAL ? -location : void 0,\r\n top: direction !== HORIZONTAL ? -location : void 0\r\n }\r\n },\r\n _isLocked() {\r\n return this._locked\r\n },\r\n _lock() {\r\n this._locked = true\r\n },\r\n _unlock() {\r\n if (!this.option(\"disabled\")) {\r\n this._locked = false\r\n }\r\n },\r\n _isDirection(direction) {\r\n var current = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return current !== HORIZONTAL\r\n }\r\n if (direction === HORIZONTAL) {\r\n return current !== VERTICAL\r\n }\r\n return current === direction\r\n },\r\n _updateAllowedDirection() {\r\n var allowedDirections = this._strategy._allowedDirections();\r\n if (this._isDirection(BOTH) && allowedDirections.vertical && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = BOTH\r\n } else if (this._isDirection(HORIZONTAL) && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = HORIZONTAL\r\n } else if (this._isDirection(VERTICAL) && allowedDirections.vertical) {\r\n this._allowedDirectionValue = VERTICAL\r\n } else {\r\n this._allowedDirectionValue = null\r\n }\r\n },\r\n _allowedDirection() {\r\n return this._allowedDirectionValue\r\n },\r\n $content() {\r\n return this._$content\r\n },\r\n content() {\r\n return getPublicElement(this._$content)\r\n },\r\n container() {\r\n return getPublicElement(this._$container)\r\n },\r\n scrollOffset() {\r\n return this._strategy._getScrollOffset()\r\n },\r\n _isRtlNativeStrategy() {\r\n var {\r\n useNative: useNative,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return useNative && rtlEnabled\r\n },\r\n scrollTop() {\r\n return this.scrollOffset().top\r\n },\r\n scrollLeft() {\r\n return this.scrollOffset().left\r\n },\r\n clientHeight() {\r\n return getHeight(this._$container)\r\n },\r\n scrollHeight() {\r\n return getOuterHeight(this.$content())\r\n },\r\n clientWidth() {\r\n return getWidth(this._$container)\r\n },\r\n scrollWidth() {\r\n return getOuterWidth(this.$content())\r\n },\r\n update() {\r\n if (!this._strategy) {\r\n return\r\n }\r\n return when(this._strategy.update()).done(() => {\r\n this._updateAllowedDirection()\r\n })\r\n },\r\n scrollBy(distance) {\r\n distance = this._normalizeLocation(distance);\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._updateIfNeed();\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollTo(targetLocation) {\r\n targetLocation = this._normalizeLocation(targetLocation);\r\n this._updateIfNeed();\r\n var location = this._location();\r\n if (!this.option(\"useNative\")) {\r\n targetLocation = this._strategy._applyScaleRatio(targetLocation);\r\n location = this._strategy._applyScaleRatio(location)\r\n }\r\n if (this._isRtlNativeStrategy()) {\r\n location.left -= this._getMaxOffset().left\r\n }\r\n var distance = this._normalizeLocation({\r\n left: location.left - ensureDefined(targetLocation.left, location.left),\r\n top: location.top - ensureDefined(targetLocation.top, location.top)\r\n });\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollToElement(element, offset) {\r\n var $element = $(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\".concat(SCROLLABLE_CLASS)).length - $element.parents(\".\".concat(SCROLLABLE_CONTENT_CLASS)).length === 0;\r\n if (!elementInsideContent || !elementIsInsideContent) {\r\n return\r\n }\r\n var scrollPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n var direction = this.option(\"direction\");\r\n if (direction !== VERTICAL) {\r\n scrollPosition.left = this.getScrollElementPosition($element, HORIZONTAL, offset)\r\n }\r\n if (direction !== HORIZONTAL) {\r\n scrollPosition.top = this.getScrollElementPosition($element, VERTICAL, offset)\r\n }\r\n this.scrollTo(scrollPosition)\r\n },\r\n getScrollElementPosition($element, direction, offset) {\r\n var scrollOffset = this.scrollOffset();\r\n return getElementLocationInternal($element.get(0), direction, $(this.container()).get(0), scrollOffset, offset)\r\n },\r\n _updateIfNeed() {\r\n if (!this.option(\"updateManually\")) {\r\n this.update()\r\n }\r\n },\r\n _useTemplates: () => false,\r\n isRenovated: () => !!Scrollable.IS_RENOVATED_WIDGET\r\n});\r\nregisterComponent(SCROLLABLE, Scrollable);\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_rows_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isEmpty\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n setHeight\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ColumnsView\r\n} from \"./m_columns_view\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? Math.round(scrollable.scrollWidth() - scrollable.clientWidth()) : 0\r\n}\r\n\r\nfunction isGroupRow(_ref) {\r\n var {\r\n rowType: rowType,\r\n column: column\r\n } = _ref;\r\n return \"group\" === rowType && isDefined(column.groupIndex) && !column.showWhenGrouped && !column.command\r\n}\r\n\r\nfunction setWatcher(_ref2) {\r\n var {\r\n element: element,\r\n watch: watch,\r\n getter: getter,\r\n callBack: callBack\r\n } = _ref2;\r\n if (watch) {\r\n var dispose = watch(getter, callBack);\r\n eventsEngine.on(element, removeEvent, dispose)\r\n }\r\n}\r\nvar defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = isEmpty(options.text) && \"data\" === options.rowType;\r\n var {\r\n text: text\r\n } = options;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n gridCoreUtils.setEmptyText($container)\r\n } else if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n};\r\nvar getScrollableBottomPadding = function(that) {\r\n var scrollable = that.getScrollable();\r\n return scrollable ? Math.ceil(parseFloat($(scrollable.content()).css(\"paddingBottom\"))) : 0\r\n};\r\nexport class RowsView extends ColumnsView {\r\n init() {\r\n super.init();\r\n this._editingController = this.getController(\"editing\");\r\n this._resizingController = this.getController(\"resizing\");\r\n this._columnsResizerController = this.getController(\"columnsResizer\");\r\n this._focusController = this.getController(\"focus\");\r\n this._keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n this._validatingController = this.getController(\"validating\");\r\n this._errorHandlingController = this.getController(\"errorHandling\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowHeight = 0;\r\n this._scrollTop = 0;\r\n this._scrollLeft = -1;\r\n this._scrollRight = 0;\r\n this._hasHeight = void 0;\r\n this._contentChanges = [];\r\n this._dataController.loadingChanged.add((isLoading, messageText) => {\r\n this.setLoading(isLoading, messageText)\r\n });\r\n this._dataController.dataSourceChanged.add(() => {\r\n if (this._scrollLeft >= 0 && !this._dataController.isLoading()) {\r\n this._handleScroll({\r\n component: this.getScrollable(),\r\n forceUpdateScrollPosition: true,\r\n scrollOffset: {\r\n top: this._scrollTop,\r\n left: this._scrollLeft\r\n }\r\n })\r\n }\r\n })\r\n }\r\n _getDefaultTemplate(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n }\r\n renderFocusState(params) {}\r\n _getDefaultGroupTemplate(column) {\r\n var summaryTexts = this.option(\"summary.texts\");\r\n return function($container, options) {\r\n var {\r\n data: data\r\n } = options;\r\n var text = \"\".concat(options.column.caption, \": \").concat(options.text);\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \".concat(gridCoreUtils.getGroupRowSummaryText(options.summaryItems, summaryTexts))\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \". \").concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuedMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \")\")\r\n }\r\n }\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n }\r\n _update(change) {}\r\n _updateCell($cell, options) {\r\n if (isGroupRow(options)) {\r\n $cell.addClass(GROUP_CELL_CLASS)\r\n }\r\n super._updateCell.apply(this, arguments)\r\n }\r\n _getCellTemplate(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var template;\r\n if (isGroupRow(options)) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultGroupTemplate(column)\r\n }\r\n } else if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n }\r\n return template\r\n }\r\n _createRow(row, tag) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n this.setAriaExpandedAttribute($row, row)\r\n }\r\n }\r\n return $row\r\n }\r\n _rowPrepared($row, rowOptions, row) {\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n setWatcher({\r\n element: $row.get(0),\r\n watch: rowOptions.watch,\r\n getter: () => this._isAltRow(row),\r\n callBack: value => {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n }\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n setWatcher({\r\n element: $row.get(0),\r\n watch: rowOptions.watch,\r\n getter: () => rowOptions.rowIndex,\r\n callBack: () => this._setAriaRowIndex(rowOptions, $row)\r\n })\r\n }\r\n super._rowPrepared.apply(this, arguments)\r\n }\r\n _setAriaRowIndex(row, $row) {\r\n if (!$row.is(\"tr\")) {\r\n return\r\n }\r\n var {\r\n component: component\r\n } = this;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && !gridCoreUtils.isVirtualRowRendering(component);\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n }\r\n setAriaExpandedAttribute($row, row) {\r\n var description = row.isExpanded ? this.localize(\"dxDataGrid-ariaExpandedRow\") : this.localize(\"dxDataGrid-ariaCollapsedRow\");\r\n this.setAria(\"roledescription\", description, $row)\r\n }\r\n _afterRowPrepared(e) {\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(() => dataController.generateDataValues(arg.data, arg.columns), () => {\r\n dataController.repaintRows([row.rowIndex], this.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on(arg.rowElement, removeEvent, dispose)\r\n }\r\n _renderScrollable(force) {\r\n var $element = this.element();\r\n if (!$element.children().length) {\r\n $element.append(\"
\")\r\n }\r\n if (force || !this._loadPanel) {\r\n this._renderLoadPanel($element, $element.parent(), this._dataController.isLocalStore())\r\n }\r\n if ((force || !this.getScrollable()) && this._dataController.isLoaded()) {\r\n var columns = this.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (this.option(\"columnAutoWidth\") || this._hasHeight || allColumnsHasWidth || this._columnsController._isColumnFixing()) {\r\n this._renderScrollableCore($element)\r\n }\r\n }\r\n }\r\n _handleScroll(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isNativeScrolling = e.component.option(\"useNative\");\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n var scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft;\r\n if (isNativeScrolling) {\r\n scrollLeft = -this._scrollRight\r\n }\r\n if (!this.isScrollbarVisible(true)) {\r\n this._scrollLeft = -1\r\n }\r\n }\r\n this.scrollChanged.fire(_extends(_extends({}, e.scrollOffset), {\r\n left: scrollLeft\r\n }), this.name)\r\n }\r\n _renderScrollableCore($element) {\r\n var dxScrollableOptions = this._createScrollableOptions();\r\n var scrollHandler = this._handleScroll.bind(this);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n this._scrollable = this._createComponent($element, Scrollable, dxScrollableOptions);\r\n this._scrollableContainer = this._scrollable && $(this._scrollable.container())\r\n }\r\n _renderLoadPanel() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return gridCoreUtils.renderLoadPanel.apply(this, arguments)\r\n }\r\n _renderContent(contentElement, tableElement, isFixedTableRendering) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n }\r\n _updateContent(newTableElement, change, isFixedTableRendering) {\r\n this._contentChanges.push({\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n });\r\n return this.waitAsyncTemplates().done(() => {\r\n var contentChanges = this._contentChanges;\r\n this._contentChanges = [];\r\n contentChanges.forEach(_ref3 => {\r\n var {\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n } = _ref3;\r\n var tableElement = this.getTableElement(isFixedTableRendering);\r\n var contentElement = this._findContentElement(isFixedTableRendering);\r\n var changeType = null === change || void 0 === change ? void 0 : change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n each(change.rowIndices, (index, rowIndex) => {\r\n var _a;\r\n var $newRowElement = this._getRowElements(newTableElement).eq(index);\r\n var dataChangeType = null === (_a = change.changeTypes) || void 0 === _a ? void 0 : _a[index];\r\n var item = change.items && change.items[index];\r\n executors.push(() => {\r\n var _a;\r\n var $rowElements = this._getRowElements(tableElement);\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n switch (dataChangeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = null === (_a = change.columnIndices) || void 0 === _a ? void 0 : _a[index];\r\n if (isDefined(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else if (columnIndices) {\r\n this._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowElements.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowElements.last())\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n })\r\n });\r\n each(executors, (function() {\r\n this()\r\n }));\r\n newTableElement.remove();\r\n break;\r\n default:\r\n this.setTableElement(newTableElement, isFixedTableRendering);\r\n contentElement.addClass(this.addWidgetPrefix(CONTENT_CLASS));\r\n this._setGridRole(contentElement);\r\n this._renderContent(contentElement, newTableElement, isFixedTableRendering)\r\n }\r\n })\r\n }).fail(() => {\r\n this._contentChanges = []\r\n })\r\n }\r\n _getGridRoleName() {\r\n return \"grid\"\r\n }\r\n _setGridRole($element) {\r\n var _a;\r\n var hasData = !(null === (_a = this._dataController) || void 0 === _a ? void 0 : _a.isEmpty());\r\n var gridRoleName = this._getGridRoleName();\r\n if ((null === $element || void 0 === $element ? void 0 : $element.length) && hasData) {\r\n this.setAria(\"role\", gridRoleName, $element)\r\n }\r\n }\r\n _createEmptyRow(className, isFixed, height) {\r\n var $cell;\r\n var $row = this._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = this._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n isNumeric(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n this.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n }\r\n getFixedColumns() {\r\n throw new Error(\"Method not implemented.\")\r\n }\r\n _appendEmptyRow($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n }\r\n _renderFreeSpaceRow($tableElement, change) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement, \"refresh\" === (null === change || void 0 === change ? void 0 : change.changeType));\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n }\r\n _checkRowKeys(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some(row => {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n return\r\n })\r\n }\r\n _needUpdateRowHeight(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n }\r\n _getRowsHeight($tableElement) {\r\n $tableElement = $tableElement || this._tableElement;\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\".concat(FREE_SPACE_CLASS));\r\n return $rowElements.toArray().reduce((sum, row) => sum + getBoundingRect(row).height, 0)\r\n }\r\n _updateRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var itemsCount = this._dataController.items().length;\r\n if ($tableElement && this._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = this._getRowsHeight($tableElement);\r\n this._rowHeight = rowsHeight / itemsCount\r\n }\r\n }\r\n _findContentElement(isFixedTableRendering) {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = $(scrollable.content())\r\n }\r\n return $content.children().first()\r\n }\r\n }\r\n _getRowElements(tableElement) {\r\n var $rows = super._getRowElements(tableElement);\r\n return $rows && $rows.not(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getFreeSpaceRowElements($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getNoDataText() {\r\n return this.option(\"noDataText\")\r\n }\r\n _rowClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({\r\n evaluate(expr) {\r\n var getter = compileGetter(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n }\r\n _rowDblClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", extend({}, e, item))\r\n }\r\n _getColumnsCountBeforeGroups(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n }\r\n _getGroupCellOptions(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n }\r\n _needWrapRow() {\r\n return super._needWrapRow.apply(this, arguments) || !!this.option(\"dataRowTemplate\")\r\n }\r\n _renderCells($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else if (options.row.values) {\r\n super._renderCells($row, options)\r\n }\r\n }\r\n _renderGroupedCells($row, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var expandColumn;\r\n var {\r\n columns: columns\r\n } = options;\r\n var {\r\n rowIndex: rowIndex\r\n } = row;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n var groupColumnAlignment = getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var groupColumn = extend({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n type: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n if (this._needRenderCell(groupCellOptions.columnIndex + 1, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex + 1,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n _renderRows($table, options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n super._renderRows($table, extend({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n this._checkRowKeys(options.change);\r\n this._renderFreeSpaceRow($table, options.change);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n }\r\n _renderDataRowByTemplate($table, options, dataRowTemplate) {\r\n var {\r\n row: row\r\n } = options;\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, row);\r\n var $tbody = this._createRow(row, \"tbody\");\r\n $tbody.appendTo($table);\r\n this.renderTemplate($tbody, dataRowTemplate, rowOptions, true, options.change);\r\n this._rowPrepared($tbody, rowOptions, options.row)\r\n }\r\n _renderRow($table, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n rowTemplate: rowTemplate\r\n } = this.option();\r\n var dataRowTemplate = this.option(\"dataRowTemplate\");\r\n if (\"data\" === row.rowType && dataRowTemplate) {\r\n this._renderDataRowByTemplate($table, options, dataRowTemplate)\r\n } else if ((\"data\" === row.rowType || \"group\" === row.rowType) && !isDefined(row.groupIndex) && rowTemplate) {\r\n this.renderTemplate($table, rowTemplate, extend({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n super._renderRow($table, options)\r\n }\r\n }\r\n _renderTable(options) {\r\n var that = this;\r\n var $table = super._renderTable(options);\r\n if (!isDefined(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add((function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest(getWindow().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n }))\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n }\r\n _createTable() {\r\n var $table = super._createTable.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option().dataRowTemplate) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n }\r\n _renderCore(change) {\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, this._dataController.isEmpty());\r\n this.setAria(\"role\", \"presentation\", $element);\r\n var $table = this._renderTable({\r\n change: change\r\n });\r\n var deferred = this._updateContent($table, change);\r\n super._renderCore(change);\r\n this._lastColumnWidths = null;\r\n return deferred\r\n }\r\n _getRows(change) {\r\n return change && change.items || this._dataController.items()\r\n }\r\n _getCellOptions(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n data: data\r\n } = row;\r\n var summaryCells = row && row.summaryCells;\r\n var {\r\n value: value\r\n } = options;\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = super._getCellOptions(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? gridCoreUtils.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if (isDefined(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = this.option(\"grouping.texts\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n }\r\n _setRowsOpacityCore($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n each($rows, (rowIndex, row) => {\r\n if (!$(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if (isNumeric(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!isNumeric(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n _getDevicePixelRatio() {\r\n return getWindow().devicePixelRatio\r\n }\r\n renderNoDataText() {\r\n return gridCoreUtils.renderNoDataText.apply(this, arguments)\r\n }\r\n getCellOptions(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if (isString(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n }\r\n getRow(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return $(rows[index])\r\n }\r\n }\r\n return\r\n }\r\n updateFreeSpaceRowHeight($table) {\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n setHeight(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n setHeight(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n deferUpdate(() => {\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = getHeight(this.element()) - scrollbarWidth;\r\n var contentHeight = getOuterHeight(contentElement);\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = this._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || this.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = this._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n deferRender(() => {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }\r\n deferRender(() => this._updateLastRowBorder(isFreeSpaceRowVisible))\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n }\r\n _getHeightCorrection() {\r\n var isZoomedWebkit = browser.webkit && this._getDevicePixelRatio() >= 2;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var hasExtraBorderTop = browser.mozilla && browser.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop || isChromeLatest ? 1 : 0\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n super._columnOptionChanged(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n }\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n _handleDataChanged(change) {\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n this.render(null, change);\r\n break;\r\n default:\r\n this._update(change)\r\n }\r\n }\r\n publicMethods() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n }\r\n contentWidth() {\r\n return getWidth(this.element()) - this.getScrollbarWidth()\r\n }\r\n getScrollbarWidth(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += getScrollableBottomPadding(this)\r\n }\r\n }\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n }\r\n _fireColumnResizedCallbacks() {\r\n var lastColumnWidths = this._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = this.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !isDefined(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n this._lastColumnWidths = columnWidths\r\n }\r\n _updateLastRowBorder(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n }\r\n _updateScrollable() {\r\n var scrollable = Scrollable.getInstance(this.element());\r\n if (scrollable) {\r\n scrollable.update();\r\n if (scrollable.option(\"useNative\") || !(null === scrollable || void 0 === scrollable ? void 0 : scrollable.isRenovated())) {\r\n this._updateHorizontalScrollPosition()\r\n }\r\n }\r\n }\r\n _updateHorizontalScrollPosition() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n }\r\n _resizeCore() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n deferRender(() => {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n deferUpdate(() => {\r\n that._updateScrollable()\r\n })\r\n })\r\n }\r\n scrollTo(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && Scrollable.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n }\r\n height(height) {\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? getOuterHeight($element, true) : 0\r\n }\r\n if (isDefined(height) && $element) {\r\n this.hasHeight(\"auto\" !== height);\r\n setHeight($element, height)\r\n }\r\n }\r\n hasHeight(hasHeight) {\r\n if (0 === arguments.length) {\r\n return !!this._hasHeight\r\n }\r\n this._hasHeight = hasHeight;\r\n return\r\n }\r\n setLoading(isLoading, messageText) {\r\n var loadPanel = this._loadPanel;\r\n var dataController = this._dataController;\r\n var loadPanelOptions = this.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = this.element();\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n this._renderLoadPanel($element, $element.parent());\r\n loadPanel = this._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition($element)\r\n }\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n this._hideLoadingTimeoutID = setTimeout(() => {\r\n loadPanel.option(visibilityOptions)\r\n }, LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n }\r\n setRowsOpacity(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\".concat(GROUP_ROW_CLASS)) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n var $cells = super._getCellElementsCore.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\".concat(GROUP_CELL_CLASS)).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n }\r\n _getBoundaryVisibleItemIndex(isTop, isFloor) {\r\n var itemIndex = 0;\r\n var prevOffset = 0;\r\n var offset = 0;\r\n var viewportBoundary = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var items = this._dataController.items();\r\n var tableElement = this.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = this._getRowElements(tableElement).filter(\":visible\");\r\n if (!isTop) {\r\n var height = getOuterHeight(this._hasHeight ? this.element() : getWindow());\r\n viewportBoundary += height\r\n }\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffset = offset;\r\n var $rowElement = $(rowElements).eq(itemIndex);\r\n if ($rowElement.length) {\r\n offset = $rowElement.offset();\r\n offset = (isTop ? offset.top : offset.top + getOuterHeight($rowElement)) - contentElementOffsetTop;\r\n if (offset > viewportBoundary) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * viewportBoundary < Math.round(offset + prevOffset)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n }\r\n getTopVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(true, isFloor)\r\n }\r\n getBottomVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(false, isFloor)\r\n }\r\n getTopVisibleRowData() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n return\r\n }\r\n _scrollToElement($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"dataRowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n this._tableElement = null;\r\n this._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n this.renderNoDataText();\r\n args.handled = true\r\n }\r\n }\r\n setAriaOwns(headerTableId, footerTableId, isFixed) {\r\n var _a;\r\n var $contentElement = this._findContentElement();\r\n var $tableElement = this.getTableElement();\r\n if (null === $tableElement || void 0 === $tableElement ? void 0 : $tableElement.length) {\r\n this.setAria(\"owns\", \"\".concat(null !== headerTableId && void 0 !== headerTableId ? headerTableId : \"\", \" \").concat(null !== (_a = $tableElement.attr(\"id\")) && void 0 !== _a ? _a : \"\", \" \").concat(null !== footerTableId && void 0 !== footerTableId ? footerTableId : \"\").trim(), $contentElement)\r\n }\r\n }\r\n dispose() {\r\n super.dispose();\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n }\r\n setScrollerSpacing(vScrollbarWidth, hScrollbarWidth) {}\r\n getFixedContentElement() {\r\n var _a;\r\n var fixedContentClass = this.addWidgetPrefix(CONTENT_FIXED_CLASS);\r\n return null === (_a = this.element()) || void 0 === _a ? void 0 : _a.children(\".\".concat(fixedContentClass))\r\n }\r\n _restoreErrorRow(contentTable) {}\r\n isElementInside($element) {\r\n var $rowsViewElement = $element.closest(\".\".concat(this.addWidgetPrefix(ROWS_VIEW_CLASS)));\r\n return $rowsViewElement.is(this.element())\r\n }\r\n}\r\nexport var rowsModule = {\r\n defaultOptions: () => ({\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: messageLocalization.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n dataRowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: messageLocalization.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }),\r\n views: {\r\n rowsView: RowsView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/rows.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rowsModule\r\n} from \"../../../grids/grid_core/views/m_rows_view\";\r\nimport gridCore from \"../m_core\";\r\nexport var RowsView = rowsModule.views.rowsView;\r\ngridCore.registerModule(\"rows\", rowsModule);\r\n","/**\r\n * DevExtreme (esm/events/hold.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n eventData,\r\n eventDelta\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = Emitter.inherit({\r\n start: function(e) {\r\n this._startEventData = eventData(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nexport default {\r\n name: HOLD_EVENT_NAME\r\n};\r\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n isMouseEvent\r\n} from \"./utils/index\";\r\nimport holdEvent from \"./hold\";\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = addNamespace(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = addNamespace(holdEvent.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = Class.inherit({\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (touch || devices.isSimulator()) {\r\n eventsEngine.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if (isMouseEvent(e) && !devices.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return fireEvent({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\nregisterEvent(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nexport var name = CONTEXTMENU_EVENT_NAME;\r\n","/**\r\n * DevExtreme (esm/ui/widget/utils.ink_ripple.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nvar INKRIPPLE_CLASS = \"dx-inkripple\";\r\nvar INKRIPPLE_WAVE_CLASS = \"dx-inkripple-wave\";\r\nvar INKRIPPLE_SHOWING_CLASS = \"dx-inkripple-showing\";\r\nvar INKRIPPLE_HIDING_CLASS = \"dx-inkripple-hiding\";\r\nvar DEFAULT_WAVE_SIZE_COEFFICIENT = 2;\r\nvar MAX_WAVE_SIZE = 4e3;\r\nvar ANIMATION_DURATION = 300;\r\nvar HOLD_ANIMATION_DURATION = 1e3;\r\nvar DEFAULT_WAVE_INDEX = 0;\r\nexport var initConfig = function() {\r\n var config = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n useHoldAnimation: useHoldAnimation,\r\n waveSizeCoefficient: waveSizeCoefficient,\r\n isCentered: isCentered,\r\n wavesNumber: wavesNumber\r\n } = config;\r\n return {\r\n waveSizeCoefficient: waveSizeCoefficient || DEFAULT_WAVE_SIZE_COEFFICIENT,\r\n isCentered: isCentered || false,\r\n wavesNumber: wavesNumber || 1,\r\n durations: getDurations(null !== useHoldAnimation && void 0 !== useHoldAnimation ? useHoldAnimation : true)\r\n }\r\n};\r\nexport var render = function(args) {\r\n var config = initConfig(args);\r\n return {\r\n showWave: showWave.bind(this, config),\r\n hideWave: hideWave.bind(this, config)\r\n }\r\n};\r\nvar getInkRipple = function(element) {\r\n var result = element.children(\".\" + INKRIPPLE_CLASS);\r\n if (0 === result.length) {\r\n result = $(\"
\").addClass(INKRIPPLE_CLASS).appendTo(element)\r\n }\r\n return result\r\n};\r\nvar getWaves = function(element, wavesNumber) {\r\n var inkRipple = getInkRipple($(element));\r\n var result = inkRipple.children(\".\" + INKRIPPLE_WAVE_CLASS).toArray();\r\n for (var i = result.length; i < wavesNumber; i++) {\r\n var $currentWave = $(\"
\").appendTo(inkRipple).addClass(INKRIPPLE_WAVE_CLASS);\r\n result.push($currentWave[0])\r\n }\r\n return $(result)\r\n};\r\nvar getWaveStyleConfig = function(args, config) {\r\n var element = $(config.element);\r\n var elementWidth = getOuterWidth(element);\r\n var elementHeight = getOuterHeight(element);\r\n var elementDiagonal = parseInt(Math.sqrt(elementWidth * elementWidth + elementHeight * elementHeight));\r\n var waveSize = Math.min(MAX_WAVE_SIZE, parseInt(elementDiagonal * args.waveSizeCoefficient));\r\n var left;\r\n var top;\r\n if (args.isCentered) {\r\n left = (elementWidth - waveSize) / 2;\r\n top = (elementHeight - waveSize) / 2\r\n } else {\r\n var event = config.event;\r\n var position = element.offset();\r\n var x = event.pageX - position.left;\r\n var y = event.pageY - position.top;\r\n left = x - waveSize / 2;\r\n top = y - waveSize / 2\r\n }\r\n return {\r\n left: left,\r\n top: top,\r\n height: waveSize,\r\n width: waveSize\r\n }\r\n};\r\nexport function showWave(args, config) {\r\n var $wave = getWaves(config.element, args.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n args.hidingTimeout && clearTimeout(args.hidingTimeout);\r\n hideSelectedWave($wave);\r\n $wave.css(getWaveStyleConfig(args, config));\r\n args.showingTimeout = setTimeout(showingWaveHandler.bind(this, args, $wave), 0)\r\n}\r\n\r\nfunction showingWaveHandler(args, $wave) {\r\n var durationCss = args.durations.showingScale + \"ms\";\r\n $wave.addClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss)\r\n}\r\n\r\nfunction getDurations(useHoldAnimation) {\r\n return {\r\n showingScale: useHoldAnimation ? HOLD_ANIMATION_DURATION : ANIMATION_DURATION,\r\n hidingScale: ANIMATION_DURATION,\r\n hidingOpacity: ANIMATION_DURATION\r\n }\r\n}\r\n\r\nfunction hideSelectedWave($wave) {\r\n $wave.removeClass(INKRIPPLE_HIDING_CLASS).css(\"transitionDuration\", \"\")\r\n}\r\nexport function hideWave(args, config) {\r\n args.showingTimeout && clearTimeout(args.showingTimeout);\r\n var $wave = getWaves(config.element, config.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n var durations = args.durations;\r\n var durationCss = durations.hidingScale + \"ms, \" + durations.hidingOpacity + \"ms\";\r\n $wave.addClass(INKRIPPLE_HIDING_CLASS).removeClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss);\r\n var animationDuration = Math.max(durations.hidingScale, durations.hidingOpacity);\r\n args.hidingTimeout = setTimeout(hideSelectedWave.bind(this, $wave), animationDuration)\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/bindable_template.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport {\r\n isPrimitive\r\n} from \"../utils/type\";\r\nvar watchChanges = function(rawData, watchMethod, fields, fieldsMap, callback) {\r\n var fieldsDispose;\r\n var globalDispose = ((data, watchMethod, callback) => watchMethod(() => data, callback))(rawData, watchMethod, (function(dataWithRawFields) {\r\n fieldsDispose && fieldsDispose();\r\n if (isPrimitive(dataWithRawFields)) {\r\n callback(dataWithRawFields);\r\n return\r\n }\r\n fieldsDispose = function(data, watchMethod, fields, fieldsMap, callback) {\r\n var resolvedData = {};\r\n var missedFields = fields.slice();\r\n var watchHandlers = fields.map((function(name) {\r\n var fieldGetter = fieldsMap[name];\r\n return watchMethod(fieldGetter ? () => fieldGetter(data) : () => data[name], (function(value) {\r\n resolvedData[name] = value;\r\n if (missedFields.length) {\r\n var index = missedFields.indexOf(name);\r\n if (index >= 0) {\r\n missedFields.splice(index, 1)\r\n }\r\n }\r\n if (!missedFields.length) {\r\n callback(resolvedData)\r\n }\r\n }))\r\n }));\r\n return function() {\r\n watchHandlers.forEach(dispose => dispose())\r\n }\r\n }(dataWithRawFields, watchMethod, fields, fieldsMap, callback)\r\n }));\r\n return function() {\r\n fieldsDispose && fieldsDispose();\r\n globalDispose && globalDispose()\r\n }\r\n};\r\nexport class BindableTemplate extends TemplateBase {\r\n constructor(render, fields, watchMethod, fieldsMap) {\r\n super();\r\n this._render = render;\r\n this._fields = fields;\r\n this._fieldsMap = fieldsMap || {};\r\n this._watchMethod = watchMethod\r\n }\r\n _renderCore(options) {\r\n var $container = $(options.container);\r\n var dispose = watchChanges(options.model, this._watchMethod, this._fields, this._fieldsMap, data => {\r\n $container.empty();\r\n this._render($container, data, options.model)\r\n });\r\n eventsEngine.on($container, removeEvent, dispose);\r\n return $container.contents()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SVG_ICON_CLASS = \"dx-svg-icon\";\r\nexport var getImageSourceType = source => {\r\n if (!source || \"string\" !== typeof source) {\r\n return false\r\n }\r\n if (/^\\s*]*>(.|\\r?\\n)*?<\\/svg>\\s*$/i.test(source)) {\r\n return \"svg\"\r\n }\r\n if (/data:.*base64|\\.|[^<\\s]\\/{1,1}/.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_:]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/selection/m_selection.strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue,\r\n getKeyHash,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n isObject,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport dataQuery from \"../../../data/query\";\r\nexport default class SelectionStrategy {\r\n constructor(options) {\r\n this.options = options;\r\n this._setOption(\"disabledItemKeys\", []);\r\n this._clearItemKeys()\r\n }\r\n _clearItemKeys() {\r\n this._setOption(\"addedItemKeys\", []);\r\n this._setOption(\"removedItemKeys\", []);\r\n this._setOption(\"removedItems\", []);\r\n this._setOption(\"addedItems\", [])\r\n }\r\n validate() {}\r\n _setOption(name, value) {\r\n this.options[name] = value\r\n }\r\n onSelectionChanged() {\r\n var {\r\n addedItemKeys: addedItemKeys\r\n } = this.options;\r\n var {\r\n removedItemKeys: removedItemKeys\r\n } = this.options;\r\n var {\r\n addedItems: addedItems\r\n } = this.options;\r\n var {\r\n removedItems: removedItems\r\n } = this.options;\r\n var {\r\n selectedItems: selectedItems\r\n } = this.options;\r\n var {\r\n selectedItemKeys: selectedItemKeys\r\n } = this.options;\r\n var onSelectionChanged = this.options.onSelectionChanged || noop;\r\n this._clearItemKeys();\r\n onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n addedItemKeys: addedItemKeys,\r\n removedItemKeys: removedItemKeys,\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n }\r\n equalKeys(key1, key2) {\r\n if (this.options.equalByReference) {\r\n if (isObject(key1) && isObject(key2)) {\r\n return key1 === key2\r\n }\r\n }\r\n return equalByValue(key1, key2)\r\n }\r\n getSelectableItems(items) {\r\n return items.filter(item => !(null === item || void 0 === item ? void 0 : item.disabled))\r\n }\r\n _clearSelection(keys, preserve, isDeselect, isSelectAll) {\r\n keys = keys || [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this.selectedItemKeys(keys, preserve, isDeselect, isSelectAll)\r\n }\r\n _removeTemplateProperty(remoteFilter) {\r\n if (Array.isArray(remoteFilter)) {\r\n return remoteFilter.map(f => this._removeTemplateProperty(f))\r\n }\r\n if (isObject(remoteFilter)) {\r\n delete remoteFilter.template\r\n }\r\n return remoteFilter\r\n }\r\n _loadFilteredData(remoteFilter, localFilter, select, isSelectAll) {\r\n var filterLength = encodeURI(JSON.stringify(this._removeTemplateProperty(remoteFilter))).length;\r\n var needLoadAllData = this.options.maxFilterLengthInRequest && filterLength > this.options.maxFilterLengthInRequest;\r\n var deferred = Deferred();\r\n var loadOptions = {\r\n filter: needLoadAllData ? void 0 : remoteFilter,\r\n select: needLoadAllData ? this.options.dataFields() : select || this.options.dataFields()\r\n };\r\n if (remoteFilter && 0 === remoteFilter.length) {\r\n deferred.resolve([])\r\n } else {\r\n this.options.load(loadOptions).done(items => {\r\n var filteredItems = isPlainObject(items) ? items.data : items;\r\n if (localFilter && !isSelectAll) {\r\n filteredItems = filteredItems.filter(localFilter)\r\n } else if (needLoadAllData) {\r\n filteredItems = dataQuery(filteredItems).filter(remoteFilter).toArray()\r\n }\r\n deferred.resolve(filteredItems)\r\n }).fail(deferred.reject.bind(deferred))\r\n }\r\n return deferred\r\n }\r\n updateSelectedItemKeyHash(keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var keyHash = getKeyHash(keys[i]);\r\n if (!isObject(keyHash)) {\r\n this.options.keyHashIndices[keyHash] = this.options.keyHashIndices[keyHash] || [];\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n keyIndices.push(i)\r\n }\r\n }\r\n }\r\n _isAnyItemSelected(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (this.options.isItemSelected(items[i])) {\r\n return\r\n }\r\n }\r\n return false\r\n }\r\n _getFullSelectAllState() {\r\n var items = this.options.plainItems();\r\n var dataFilter = this.options.filter();\r\n var selectedItems = this.options.ignoreDisabledItems ? this.options.selectedItems : this.options.selectedItems.filter(item => !(null === item || void 0 === item ? void 0 : item.disabled));\r\n if (dataFilter) {\r\n selectedItems = dataQuery(selectedItems).filter(dataFilter).toArray()\r\n }\r\n var selectedItemsLength = selectedItems.length;\r\n var disabledItemsLength = items.length - this.getSelectableItems(items).length;\r\n if (!selectedItemsLength) {\r\n return this._isAnyItemSelected(items)\r\n }\r\n if (selectedItemsLength >= this.options.totalCount() - disabledItemsLength) {\r\n return true\r\n }\r\n return\r\n }\r\n _getVisibleSelectAllState() {\r\n var items = this.getSelectableItems(this.options.plainItems());\r\n var hasSelectedItems = false;\r\n var hasUnselectedItems = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var itemData = this.options.getItemData(item);\r\n var key = this.options.keyOf(itemData);\r\n if (this.options.isSelectableItem(item)) {\r\n if (this.isItemKeySelected(key)) {\r\n hasSelectedItems = true\r\n } else {\r\n hasUnselectedItems = true\r\n }\r\n }\r\n }\r\n if (hasSelectedItems) {\r\n return !hasUnselectedItems ? true : void 0\r\n }\r\n return false\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/selection/m_selection.strategy.deferred.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport dataQuery from \"../../../data/query\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport SelectionStrategy from \"./m_selection.strategy\";\r\nexport default class DeferredStrategy extends SelectionStrategy {\r\n getSelectedItems() {\r\n return this._loadFilteredData(this.options.selectionFilter)\r\n }\r\n getSelectedItemKeys() {\r\n var d = Deferred();\r\n var that = this;\r\n var key = this.options.key();\r\n var select = isString(key) ? [key] : key;\r\n this._loadFilteredData(this.options.selectionFilter, null, select).done(items => {\r\n var keys = items.map(item => that.options.keyOf(item));\r\n d.resolve(keys)\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll) {\r\n if (isSelectAll) {\r\n var filter = this.options.filter();\r\n var needResetSelectionFilter = !filter || JSON.stringify(filter) === JSON.stringify(this.options.selectionFilter) && isDeselect;\r\n if (needResetSelectionFilter) {\r\n this._setOption(\"selectionFilter\", isDeselect ? [] : null)\r\n } else {\r\n this._addSelectionFilter(isDeselect, filter, isSelectAll)\r\n }\r\n } else {\r\n if (!preserve) {\r\n this._setOption(\"selectionFilter\", [])\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (isDeselect) {\r\n this.removeSelectedItem(keys[i])\r\n } else {\r\n this.addSelectedItem(keys[i], isSelectAll, !preserve)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return Deferred().resolve()\r\n }\r\n setSelectedItems(keys) {\r\n this._setOption(\"selectionFilter\", null);\r\n for (var i = 0; i < keys.length; i++) {\r\n this.addSelectedItem(keys[i])\r\n }\r\n }\r\n isItemDataSelected(itemData) {\r\n return this.isItemKeySelected(itemData)\r\n }\r\n isItemKeySelected(itemData) {\r\n var {\r\n selectionFilter: selectionFilter\r\n } = this.options;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n return !!dataQuery([itemData]).filter(selectionFilter).toArray().length\r\n }\r\n _getKeyExpr() {\r\n var keyField = this.options.key();\r\n if (Array.isArray(keyField) && 1 === keyField.length) {\r\n return keyField[0]\r\n }\r\n return keyField\r\n }\r\n _normalizeKey(key) {\r\n var keyExpr = this.options.key();\r\n if (Array.isArray(keyExpr) && 1 === keyExpr.length) {\r\n return key[keyExpr[0]]\r\n }\r\n return key\r\n }\r\n _getFilterByKey(key) {\r\n var keyField = this._getKeyExpr();\r\n var filter = [keyField, \"=\", this._normalizeKey(key)];\r\n if (Array.isArray(keyField)) {\r\n filter = [];\r\n for (var i = 0; i < keyField.length; i++) {\r\n filter.push([keyField[i], \"=\", key[keyField[i]]]);\r\n if (i !== keyField.length - 1) {\r\n filter.push(\"and\")\r\n }\r\n }\r\n }\r\n return filter\r\n }\r\n addSelectedItem(key, isSelectAll, skipFilter) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(false, filter, isSelectAll, skipFilter)\r\n }\r\n removeSelectedItem(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(true, filter)\r\n }\r\n validate() {\r\n var {\r\n key: key\r\n } = this.options;\r\n if (key && void 0 === key()) {\r\n throw errors.Error(\"E1042\", \"Deferred selection\")\r\n }\r\n }\r\n _findSubFilter(selectionFilter, filter) {\r\n if (!selectionFilter) {\r\n return -1\r\n }\r\n var filterString = JSON.stringify(filter);\r\n for (var index = 0; index < selectionFilter.length; index++) {\r\n var subFilter = selectionFilter[index];\r\n if (subFilter && JSON.stringify(subFilter) === filterString) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _isLastSubFilter(selectionFilter, filter) {\r\n if (selectionFilter && filter) {\r\n return this._findSubFilter(selectionFilter, filter) === selectionFilter.length - 1 || 0 === this._findSubFilter([selectionFilter], filter)\r\n }\r\n return false\r\n }\r\n _addFilterOperator(selectionFilter, filterOperator) {\r\n if (selectionFilter.length > 1 && isString(selectionFilter[1]) && selectionFilter[1] !== filterOperator) {\r\n selectionFilter = [selectionFilter]\r\n }\r\n if (selectionFilter.length) {\r\n selectionFilter.push(filterOperator)\r\n }\r\n return selectionFilter\r\n }\r\n _denormalizeFilter(filter) {\r\n if (filter && isString(filter[0])) {\r\n filter = [filter]\r\n }\r\n return filter\r\n }\r\n _isOnlyNegativeFiltersLeft(filters) {\r\n return filters.every((filterItem, i) => {\r\n if (i % 2 === 0) {\r\n return Array.isArray(filterItem) && \"!\" === filterItem[0]\r\n }\r\n return \"and\" === filterItem\r\n })\r\n }\r\n _addSelectionFilter(isDeselect, filter, isSelectAll, skipFilter) {\r\n var currentFilter = isDeselect ? [\"!\", filter] : filter;\r\n var currentOperation = isDeselect ? \"and\" : \"or\";\r\n var needAddFilter = true;\r\n var selectionFilter = this.options.selectionFilter || [];\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if ((null === selectionFilter || void 0 === selectionFilter ? void 0 : selectionFilter.length) && !skipFilter) {\r\n var removedIndex = this._removeSameFilter(selectionFilter, filter, isDeselect, isSelectAll);\r\n var filterIndex = this._removeSameFilter(selectionFilter, filter, !isDeselect);\r\n var shouldCleanFilter = isDeselect && (-1 !== removedIndex || -1 !== filterIndex) && this._isOnlyNegativeFiltersLeft(selectionFilter);\r\n if (shouldCleanFilter) {\r\n selectionFilter = []\r\n }\r\n var isKeyOperatorsAfterRemoved = this._isKeyFilter(filter) && this._hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex);\r\n needAddFilter = filter.length && !isKeyOperatorsAfterRemoved\r\n }\r\n if (needAddFilter) {\r\n selectionFilter = this._addFilterOperator(selectionFilter, currentOperation);\r\n selectionFilter.push(currentFilter)\r\n }\r\n selectionFilter = this._normalizeFilter(selectionFilter);\r\n this._setOption(\"selectionFilter\", !isDeselect && !selectionFilter.length ? null : selectionFilter)\r\n }\r\n _normalizeFilter(filter) {\r\n if (filter && 1 === filter.length) {\r\n filter = filter[0]\r\n }\r\n return filter\r\n }\r\n _removeFilterByIndex(filter, filterIndex, isSelectAll) {\r\n var operation = filter[1];\r\n if (filterIndex > 0) {\r\n filter.splice(filterIndex - 1, 2)\r\n } else {\r\n filter.splice(filterIndex, 2)\r\n }\r\n if (isSelectAll && \"and\" === operation) {\r\n filter.splice(0, filter.length)\r\n }\r\n }\r\n _isSimpleKeyFilter(filter, key) {\r\n return 3 === filter.length && filter[0] === key && \"=\" === filter[1]\r\n }\r\n _isKeyFilter(filter) {\r\n if (2 === filter.length && \"!\" === filter[0]) {\r\n return this._isKeyFilter(filter[1])\r\n }\r\n var keyField = this._getKeyExpr();\r\n if (Array.isArray(keyField)) {\r\n if (filter.length !== 2 * keyField.length - 1) {\r\n return false\r\n }\r\n for (var i = 0; i < keyField.length; i++) {\r\n if (i > 0 && \"and\" !== filter[2 * i - 1]) {\r\n return false\r\n }\r\n if (!this._isSimpleKeyFilter(filter[2 * i], keyField[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return this._isSimpleKeyFilter(filter, keyField)\r\n }\r\n _hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex) {\r\n if (filterIndex >= 0) {\r\n for (var i = filterIndex; i < selectionFilter.length; i++) {\r\n if (\"string\" !== typeof selectionFilter[i] && !this._isKeyFilter(selectionFilter[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n _removeSameFilter(selectionFilter, filter, inverted, isSelectAll) {\r\n filter = inverted ? [\"!\", filter] : filter;\r\n if (JSON.stringify(filter) === JSON.stringify(selectionFilter)) {\r\n selectionFilter.splice(0, selectionFilter.length);\r\n return 0\r\n }\r\n var filterIndex = this._findSubFilter(selectionFilter, filter);\r\n if (filterIndex >= 0) {\r\n this._removeFilterByIndex(selectionFilter, filterIndex, isSelectAll);\r\n return filterIndex\r\n }\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i]) && selectionFilter[i].length > 2) {\r\n var _filterIndex = this._removeSameFilter(selectionFilter[i], filter, false, isSelectAll);\r\n if (_filterIndex >= 0) {\r\n if (!selectionFilter[i].length) {\r\n this._removeFilterByIndex(selectionFilter, i, isSelectAll)\r\n } else if (1 === selectionFilter[i].length) {\r\n selectionFilter[i] = selectionFilter[i][0]\r\n }\r\n return _filterIndex\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n getSelectAllState() {\r\n var filter = this.options.filter();\r\n var {\r\n selectionFilter: selectionFilter\r\n } = this.options;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (!filter || !filter.length) {\r\n return\r\n }\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (this._isLastSubFilter(selectionFilter, filter)) {\r\n return true\r\n }\r\n if (this._isLastSubFilter(selectionFilter, [\"!\", filter])) {\r\n return false\r\n }\r\n return\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var componentFilter = this.options.filter();\r\n var {\r\n selectionFilter: selectionFilter\r\n } = this.options;\r\n var filter = componentFilter ? [componentFilter, \"and\", selectionFilter] : selectionFilter;\r\n return this._loadFilteredData(filter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"./common\";\r\nimport {\r\n isString,\r\n isObject\r\n} from \"./type\";\r\nimport {\r\n compileGetter\r\n} from \"./data\";\r\nexport var SelectionFilterCreator = function(selectedItemKeys, isSelectAll) {\r\n this.getLocalFilter = function(keyGetter, equalKeys, equalByReference, keyExpr) {\r\n equalKeys = void 0 === equalKeys ? equalByValue : equalKeys;\r\n return functionFilter.bind(this, equalKeys, keyGetter, equalByReference, keyExpr)\r\n };\r\n this.getExpr = function(keyExpr) {\r\n if (!keyExpr) {\r\n return\r\n }\r\n var filterExpr;\r\n selectedItemKeys.forEach((function(key, index) {\r\n filterExpr = filterExpr || [];\r\n var filterExprPart;\r\n if (index > 0) {\r\n filterExpr.push(isSelectAll ? \"and\" : \"or\")\r\n }\r\n if (isString(keyExpr)) {\r\n filterExprPart = getFilterForPlainKey(keyExpr, key)\r\n } else {\r\n filterExprPart = function(keyExpr, itemKeyValue) {\r\n var filterExpr = [];\r\n for (var i = 0, length = keyExpr.length; i < length; i++) {\r\n var currentKeyExpr = keyExpr[i];\r\n var keyValueGetter = compileGetter(currentKeyExpr);\r\n var currentKeyValue = itemKeyValue && keyValueGetter(itemKeyValue);\r\n var filterExprPart = getFilterForPlainKey(currentKeyExpr, currentKeyValue);\r\n if (!filterExprPart) {\r\n break\r\n }\r\n if (i > 0) {\r\n filterExpr.push(isSelectAll ? \"or\" : \"and\")\r\n }\r\n filterExpr.push(filterExprPart)\r\n }\r\n return filterExpr\r\n }(keyExpr, key)\r\n }\r\n filterExpr.push(filterExprPart)\r\n }));\r\n if (filterExpr && 1 === filterExpr.length) {\r\n filterExpr = filterExpr[0]\r\n }\r\n return filterExpr\r\n };\r\n this.getCombinedFilter = function(keyExpr, dataSourceFilter) {\r\n var forceCombinedFilter = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var filterExpr = this.getExpr(keyExpr);\r\n var combinedFilter = filterExpr;\r\n if ((forceCombinedFilter || isSelectAll) && dataSourceFilter) {\r\n if (filterExpr) {\r\n combinedFilter = [];\r\n combinedFilter.push(filterExpr);\r\n combinedFilter.push(dataSourceFilter)\r\n } else {\r\n combinedFilter = dataSourceFilter\r\n }\r\n }\r\n return combinedFilter\r\n };\r\n var selectedItemKeyHashesMap;\r\n var normalizeKeys = function(keys, keyOf, keyExpr) {\r\n return Array.isArray(keyExpr) ? keys.map(key => keyOf(key)) : keys\r\n };\r\n\r\n function functionFilter(equalKeys, keyOf, equalByReference, keyExpr, item) {\r\n var key = keyOf(item);\r\n var keyHash;\r\n var i;\r\n if (!equalByReference) {\r\n keyHash = getKeyHash(key);\r\n if (!isObject(keyHash)) {\r\n var selectedKeyHashesMap = function(keyOf, keyExpr) {\r\n if (!selectedItemKeyHashesMap) {\r\n selectedItemKeyHashesMap = {};\r\n var normalizedKeys = normalizeKeys(selectedItemKeys, keyOf, keyExpr);\r\n for (var i = 0; i < normalizedKeys.length; i++) {\r\n selectedItemKeyHashesMap[getKeyHash(normalizedKeys[i])] = true\r\n }\r\n }\r\n return selectedItemKeyHashesMap\r\n }(keyOf, keyExpr);\r\n if (selectedKeyHashesMap[keyHash]) {\r\n return !isSelectAll\r\n }\r\n return !!isSelectAll\r\n }\r\n }\r\n for (i = 0; i < selectedItemKeys.length; i++) {\r\n if (equalKeys(selectedItemKeys[i], key)) {\r\n return !isSelectAll\r\n }\r\n }\r\n return !!isSelectAll\r\n }\r\n\r\n function getFilterForPlainKey(keyExpr, keyValue) {\r\n if (void 0 === keyValue) {\r\n return\r\n }\r\n return [keyExpr, isSelectAll ? \"<>\" : \"=\", keyValue]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/selection/m_selection.strategy.standard.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getUniqueValues,\r\n removeDuplicates\r\n} from \"../../../core/utils/array\";\r\nimport {\r\n isKeysEqual\r\n} from \"../../../core/utils/array_compare\";\r\nimport {\r\n getKeyHash\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n SelectionFilterCreator\r\n} from \"../../../core/utils/selection_filter\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nimport dataQuery from \"../../../data/query\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport SelectionStrategy from \"./m_selection.strategy\";\r\nexport default class StandardStrategy extends SelectionStrategy {\r\n constructor(options) {\r\n super(options);\r\n this._initSelectedItemKeyHash()\r\n }\r\n _initSelectedItemKeyHash() {\r\n this._setOption(\"keyHashIndices\", this.options.equalByReference ? null : {})\r\n }\r\n getSelectedItemKeys() {\r\n return this.options.selectedItemKeys.slice(0)\r\n }\r\n getSelectedItems() {\r\n return this.options.selectedItems.slice(0)\r\n }\r\n _preserveSelectionUpdate(items, isDeselect) {\r\n var {\r\n keyOf: keyOf\r\n } = this.options;\r\n var keyIndicesToRemoveMap;\r\n var keyIndex;\r\n var i;\r\n if (!keyOf) {\r\n return\r\n }\r\n var isBatchDeselect = isDeselect && items.length > 1 && !this.options.equalByReference;\r\n if (isBatchDeselect) {\r\n keyIndicesToRemoveMap = {}\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n if (isDeselect) {\r\n keyIndex = this.removeSelectedItem(key, keyIndicesToRemoveMap, null === item || void 0 === item ? void 0 : item.disabled);\r\n if (keyIndicesToRemoveMap && keyIndex >= 0) {\r\n keyIndicesToRemoveMap[keyIndex] = true\r\n }\r\n } else {\r\n this.addSelectedItem(key, item)\r\n }\r\n }\r\n if (isBatchDeselect) {\r\n this._batchRemoveSelectedItems(keyIndicesToRemoveMap)\r\n }\r\n }\r\n _batchRemoveSelectedItems(keyIndicesToRemoveMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys.slice(0);\r\n var selectedItems = this.options.selectedItems.slice(0);\r\n this.options.selectedItemKeys.length = 0;\r\n this.options.selectedItems.length = 0;\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n if (!keyIndicesToRemoveMap[i]) {\r\n this.options.selectedItemKeys.push(selectedItemKeys[i]);\r\n this.options.selectedItems.push(selectedItems[i])\r\n }\r\n }\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n _loadSelectedItemsCore(keys, isDeselect, isSelectAll, filter) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var deferred = Deferred();\r\n var key = this.options.key();\r\n if (!keys.length && !isSelectAll) {\r\n deferred.resolve([]);\r\n return deferred\r\n }\r\n if (isSelectAll && isDeselect && !filter) {\r\n deferred.resolve(this.getSelectedItems());\r\n return deferred\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys, isSelectAll);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(key, filter, forceCombinedFilter);\r\n var deselectedItems = [];\r\n if (isDeselect) {\r\n var {\r\n selectedItems: selectedItems\r\n } = this.options;\r\n deselectedItems = combinedFilter && keys.length !== selectedItems.length ? dataQuery(selectedItems).filter(combinedFilter).toArray() : selectedItems.slice(0)\r\n }\r\n var filteredItems = deselectedItems.length ? deselectedItems : this.options.plainItems(true).filter(this.options.isSelectableItem).map(this.options.getItemData);\r\n var localFilter = selectionFilterCreator.getLocalFilter(this.options.keyOf, this.equalKeys.bind(this), this.options.equalByReference, key);\r\n filteredItems = filteredItems.filter(localFilter);\r\n if (deselectedItems.length || !isSelectAll && filteredItems.length === keys.length) {\r\n deferred.resolve(filteredItems)\r\n } else {\r\n deferred = this._loadFilteredData(combinedFilter, localFilter, null, isSelectAll)\r\n }\r\n return deferred\r\n }\r\n _replaceSelectionUpdate(items) {\r\n var internalKeys = [];\r\n var {\r\n keyOf: keyOf\r\n } = this.options;\r\n if (!keyOf) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n internalKeys.push(key)\r\n }\r\n this.setSelectedItems(internalKeys, items)\r\n }\r\n _warnOnIncorrectKeys(keys) {\r\n var {\r\n allowNullValue: allowNullValue\r\n } = this.options;\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if ((!allowNullValue || null !== key) && !this.isItemKeySelected(key)) {\r\n errors.log(\"W1002\", key)\r\n }\r\n }\r\n }\r\n _isMultiSelectEnabled() {\r\n var {\r\n mode: mode\r\n } = this.options;\r\n return \"all\" === mode || \"multiple\" === mode\r\n }\r\n _requestInProgress() {\r\n var _a;\r\n return \"pending\" === (null === (_a = this._lastLoadDeferred) || void 0 === _a ? void 0 : _a.state())\r\n }\r\n _concatRequestsItems(keys, isDeselect, oldRequestItems, updatedKeys) {\r\n var selectedItems;\r\n var deselectedItems = isDeselect ? keys : [];\r\n if (updatedKeys) {\r\n selectedItems = updatedKeys\r\n } else {\r\n selectedItems = removeDuplicates(keys, this.options.selectedItemKeys)\r\n }\r\n return {\r\n addedItems: oldRequestItems.added.concat(selectedItems),\r\n removedItems: oldRequestItems.removed.concat(deselectedItems),\r\n keys: keys\r\n }\r\n }\r\n _collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var isDeselectAll = isDeselect && isSelectAll;\r\n var oldRequestItems = {\r\n added: [],\r\n removed: []\r\n };\r\n var multiSelectEnabled = this._isMultiSelectEnabled();\r\n var lastRequestData = multiSelectEnabled ? this._lastRequestData : {};\r\n if (multiSelectEnabled) {\r\n if (this._shouldMergeWithLastRequest) {\r\n if (isDeselectAll) {\r\n this._lastLoadDeferred.reject();\r\n lastRequestData = {}\r\n } else if (!isKeysEqual(keys, this.options.selectedItemKeys)) {\r\n oldRequestItems.added = lastRequestData.addedItems;\r\n oldRequestItems.removed = lastRequestData.removedItems;\r\n if (!isDeselect) {\r\n this._lastLoadDeferred.reject()\r\n }\r\n }\r\n }\r\n lastRequestData = this._concatRequestsItems(keys, isDeselect, oldRequestItems, this._shouldMergeWithLastRequest ? void 0 : updatedKeys)\r\n }\r\n return lastRequestData\r\n }\r\n _updateKeysByLastRequestData(keys, isDeselect, isSelectAll) {\r\n var _a, _b;\r\n var currentKeys = keys;\r\n if (this._isMultiSelectEnabled() && this._shouldMergeWithLastRequest && !isDeselect && !isSelectAll) {\r\n currentKeys = removeDuplicates(keys.concat(null === (_a = this._lastRequestData) || void 0 === _a ? void 0 : _a.addedItems), null === (_b = this._lastRequestData) || void 0 === _b ? void 0 : _b.removedItems);\r\n currentKeys = getUniqueValues(currentKeys)\r\n }\r\n return currentKeys\r\n }\r\n _loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var that = this;\r\n var deferred = Deferred();\r\n var filter = that.options.filter();\r\n this._shouldMergeWithLastRequest = this._requestInProgress();\r\n this._lastRequestData = this._collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys);\r\n when(that._lastLoadDeferred).always(() => {\r\n var currentKeys = that._updateKeysByLastRequestData(keys, isDeselect, isSelectAll);\r\n that._shouldMergeWithLastRequest = false;\r\n that._loadSelectedItemsCore(currentKeys, isDeselect, isSelectAll, filter, forceCombinedFilter).done(deferred.resolve).fail(deferred.reject)\r\n });\r\n that._lastLoadDeferred = deferred;\r\n return deferred\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : false;\r\n var that = this;\r\n var deferred = that._loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys, forceCombinedFilter);\r\n deferred.done(items => {\r\n if (preserve) {\r\n that._preserveSelectionUpdate(items, isDeselect)\r\n } else {\r\n that._replaceSelectionUpdate(items)\r\n }\r\n that.onSelectionChanged()\r\n });\r\n return deferred\r\n }\r\n addSelectedItem(key, itemData) {\r\n if (isDefined(itemData) && !this.options.ignoreDisabledItems && itemData.disabled) {\r\n if (-1 === this.options.disabledItemKeys.indexOf(key)) {\r\n this.options.disabledItemKeys.push(key)\r\n }\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n if (-1 === this._indexOfSelectedItemKey(keyHash)) {\r\n if (!isObject(keyHash) && this.options.keyHashIndices) {\r\n this.options.keyHashIndices[keyHash] = [this.options.selectedItemKeys.length]\r\n }\r\n this.options.selectedItemKeys.push(key);\r\n this.options.addedItemKeys.push(key);\r\n this.options.addedItems.push(itemData);\r\n this.options.selectedItems.push(itemData)\r\n }\r\n }\r\n _getSelectedIndexByKey(key, ignoreIndicesMap) {\r\n var {\r\n selectedItemKeys: selectedItemKeys\r\n } = this.options;\r\n for (var index = 0; index < selectedItemKeys.length; index++) {\r\n if ((!ignoreIndicesMap || !ignoreIndicesMap[index]) && this.equalKeys(selectedItemKeys[index], key)) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _getSelectedIndexByHash(key, ignoreIndicesMap) {\r\n var indices = this.options.keyHashIndices[key];\r\n if (indices && indices.length > 1 && ignoreIndicesMap) {\r\n indices = indices.filter(index => !ignoreIndicesMap[index])\r\n }\r\n return indices && indices[0] >= 0 ? indices[0] : -1\r\n }\r\n _indexOfSelectedItemKey(key, ignoreIndicesMap) {\r\n var selectedIndex;\r\n if (this.options.equalByReference) {\r\n selectedIndex = this.options.selectedItemKeys.indexOf(key)\r\n } else if (isObject(key)) {\r\n selectedIndex = this._getSelectedIndexByKey(key, ignoreIndicesMap)\r\n } else {\r\n selectedIndex = this._getSelectedIndexByHash(key, ignoreIndicesMap)\r\n }\r\n return selectedIndex\r\n }\r\n _shiftSelectedKeyIndices(keyIndex) {\r\n for (var currentKeyIndex = keyIndex; currentKeyIndex < this.options.selectedItemKeys.length; currentKeyIndex++) {\r\n var currentKey = this.options.selectedItemKeys[currentKeyIndex];\r\n var currentKeyHash = getKeyHash(currentKey);\r\n var currentKeyIndices = this.options.keyHashIndices[currentKeyHash];\r\n if (!currentKeyIndices) {\r\n continue\r\n }\r\n for (var i = 0; i < currentKeyIndices.length; i++) {\r\n if (currentKeyIndices[i] > keyIndex) {\r\n currentKeyIndices[i]--\r\n }\r\n }\r\n }\r\n }\r\n removeSelectedItem(key, keyIndicesToRemoveMap, isDisabled) {\r\n if (!this.options.ignoreDisabledItems && isDisabled) {\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n var isBatchDeselect = !!keyIndicesToRemoveMap;\r\n var keyIndex = this._indexOfSelectedItemKey(keyHash, keyIndicesToRemoveMap);\r\n if (keyIndex < 0) {\r\n return keyIndex\r\n }\r\n this.options.removedItemKeys.push(key);\r\n this.options.removedItems.push(this.options.selectedItems[keyIndex]);\r\n if (isBatchDeselect) {\r\n return keyIndex\r\n }\r\n this.options.selectedItemKeys.splice(keyIndex, 1);\r\n this.options.selectedItems.splice(keyIndex, 1);\r\n if (isObject(keyHash) || !this.options.keyHashIndices) {\r\n return keyIndex\r\n }\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n if (!keyIndices) {\r\n return keyIndex\r\n }\r\n keyIndices.shift();\r\n if (!keyIndices.length) {\r\n delete this.options.keyHashIndices[keyHash]\r\n }\r\n this._shiftSelectedKeyIndices(keyIndex);\r\n return keyIndex\r\n }\r\n _updateAddedItemKeys(keys, items) {\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!this.isItemKeySelected(keys[i])) {\r\n this.options.addedItemKeys.push(keys[i]);\r\n this.options.addedItems.push(items[i])\r\n }\r\n }\r\n }\r\n _updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems) {\r\n for (var i = 0; i < oldSelectedKeys.length; i++) {\r\n if (!this.isItemKeySelected(oldSelectedKeys[i])) {\r\n this.options.removedItemKeys.push(oldSelectedKeys[i]);\r\n this.options.removedItems.push(oldSelectedItems[i])\r\n }\r\n }\r\n }\r\n _isItemSelectionInProgress(key, checkPending) {\r\n var _a;\r\n var shouldCheckPending = checkPending && this._lastRequestData && this._requestInProgress();\r\n if (shouldCheckPending) {\r\n var addedItems = null !== (_a = this._lastRequestData.addedItems) && void 0 !== _a ? _a : [];\r\n return addedItems.includes(key)\r\n }\r\n return false\r\n }\r\n _getKeyHash(key) {\r\n return this.options.equalByReference ? key : getKeyHash(key)\r\n }\r\n setSelectedItems(keys, items) {\r\n this._updateAddedItemKeys(keys, items);\r\n var oldSelectedKeys = this.options.selectedItemKeys;\r\n var oldSelectedItems = this.options.selectedItems;\r\n if (!this.options.equalByReference) {\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(keys)\r\n }\r\n this._setOption(\"selectedItemKeys\", keys);\r\n this._setOption(\"selectedItems\", items);\r\n this._updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems)\r\n }\r\n isItemDataSelected(itemData) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var key = this.options.keyOf(itemData);\r\n return this.isItemKeySelected(key, options)\r\n }\r\n isItemKeySelected(key) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var result = this._isItemSelectionInProgress(key, options.checkPending);\r\n if (!result) {\r\n var keyHash = this._getKeyHash(key);\r\n var index = this._indexOfSelectedItemKey(keyHash);\r\n result = -1 !== index\r\n }\r\n return result\r\n }\r\n getSelectAllState(visibleOnly) {\r\n if (visibleOnly) {\r\n return this._getVisibleSelectAllState()\r\n }\r\n return this._getFullSelectAllState()\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var keyExpr = this.options.key();\r\n var keys = this.getSelectedItemKeys();\r\n var filter = this.options.filter();\r\n if (!keys.length) {\r\n return Deferred().resolve([])\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(keyExpr, filter, true);\r\n return this._loadFilteredData(combinedFilter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/selection/m_selection.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport deferredStrategy from \"./m_selection.strategy.deferred\";\r\nimport standardStrategy from \"./m_selection.strategy.standard\";\r\nexport default class Selection {\r\n constructor(options) {\r\n this.options = extend(this._getDefaultOptions(), options, {\r\n selectedItemKeys: options.selectedKeys || []\r\n });\r\n this._selectionStrategy = this.options.deferred ? new deferredStrategy(this.options) : new standardStrategy(this.options);\r\n this._focusedItemIndex = -1;\r\n if (!this.options.equalByReference) {\r\n this._selectionStrategy.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return {\r\n allowNullValue: false,\r\n deferred: false,\r\n equalByReference: false,\r\n mode: \"multiple\",\r\n selectedItems: [],\r\n selectionFilter: [],\r\n maxFilterLengthInRequest: 0,\r\n onSelectionChanged: noop,\r\n key: noop,\r\n keyOf: item => item,\r\n load: () => Deferred().resolve([]),\r\n totalCount: () => -1,\r\n isSelectableItem: () => true,\r\n isItemSelected: () => false,\r\n getItemData: item => item,\r\n dataFields: noop,\r\n filter: noop\r\n }\r\n }\r\n validate() {\r\n this._selectionStrategy.validate()\r\n }\r\n getSelectedItemKeys() {\r\n return this._selectionStrategy.getSelectedItemKeys()\r\n }\r\n getSelectedItems() {\r\n return this._selectionStrategy.getSelectedItems()\r\n }\r\n selectionFilter(value) {\r\n if (void 0 === value) {\r\n return this.options.selectionFilter\r\n }\r\n var filterIsChanged = this.options.selectionFilter !== value && JSON.stringify(this.options.selectionFilter) !== JSON.stringify(value);\r\n this.options.selectionFilter = value;\r\n filterIsChanged && this.onSelectionChanged()\r\n }\r\n setSelection(keys, updatedKeys) {\r\n return this.selectedItemKeys(keys, false, false, false, updatedKeys)\r\n }\r\n select(keys) {\r\n return this.selectedItemKeys(keys, true)\r\n }\r\n deselect(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n keys = null !== keys && void 0 !== keys ? keys : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this._selectionStrategy.selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys)\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n _addSelectedItem(itemData, key) {\r\n this._selectionStrategy.addSelectedItem(key, itemData)\r\n }\r\n _removeSelectedItem(key) {\r\n this._selectionStrategy.removeSelectedItem(key)\r\n }\r\n _setSelectedItems(keys, items) {\r\n this._selectionStrategy.setSelectedItems(keys, items)\r\n }\r\n onSelectionChanged() {\r\n this._selectionStrategy.onSelectionChanged()\r\n }\r\n changeItemSelection(itemIndex, keys, setFocusOnly) {\r\n var _a, _b;\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\r\n var deferred;\r\n var {\r\n isVirtualPaging: isVirtualPaging\r\n } = this.options;\r\n var allowLoadByRange = null === (_b = (_a = this.options).allowLoadByRange) || void 0 === _b ? void 0 : _b.call(_a);\r\n var {\r\n alwaysSelectByShift: alwaysSelectByShift\r\n } = this.options;\r\n var indexOffset;\r\n var focusedItemNotInLoadedRange = false;\r\n var shiftFocusedItemNotInLoadedRange = false;\r\n var itemIsNotInLoadedRange = index => index >= 0 && !items.filter(it => it.loadIndex === index).length;\r\n if (isVirtualPaging && isDefined(item)) {\r\n if (allowLoadByRange) {\r\n indexOffset = item.loadIndex - itemIndex;\r\n itemIndex = item.loadIndex\r\n }\r\n focusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._focusedItemIndex);\r\n if (isDefined(this._shiftFocusedItemIndex)) {\r\n shiftFocusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._shiftFocusedItemIndex)\r\n }\r\n }\r\n if (!this.isSelectable() || !this.isDataItem(item)) {\r\n return false\r\n }\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n keys = keys || {};\r\n var allowSelectByShift = keys.shift;\r\n if (false === alwaysSelectByShift && allowSelectByShift) {\r\n allowSelectByShift = false !== allowLoadByRange || !focusedItemNotInLoadedRange && !shiftFocusedItemNotInLoadedRange\r\n }\r\n if (allowSelectByShift && \"multiple\" === this.options.mode && this._focusedItemIndex >= 0) {\r\n if (allowLoadByRange && (focusedItemNotInLoadedRange || shiftFocusedItemNotInLoadedRange)) {\r\n isSelectedItemsChanged = itemIndex !== this._shiftFocusedItemIndex || this._focusedItemIndex !== this._shiftFocusedItemIndex;\r\n if (isSelectedItemsChanged) {\r\n deferred = this.changeItemSelectionWhenShiftKeyInVirtualPaging(itemIndex)\r\n }\r\n } else {\r\n isSelectedItemsChanged = this.changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset)\r\n }\r\n } else if (keys.control) {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n if (!setFocusOnly) {\r\n var isSelected = this._selectionStrategy.isItemDataSelected(itemData);\r\n if (\"single\" === this.options.mode) {\r\n this.clearSelectedItems()\r\n }\r\n if (isSelected) {\r\n this._removeSelectedItem(itemKey)\r\n } else {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n }\r\n isSelectedItemsChanged = true\r\n } else {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isKeysEqual = this._selectionStrategy.equalKeys(this.options.selectedItemKeys[0], itemKey);\r\n if (1 !== this.options.selectedItemKeys.length || !isKeysEqual) {\r\n this._setSelectedItems([itemKey], [itemData]);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n if (isSelectedItemsChanged) {\r\n when(deferred).done(() => {\r\n this._focusedItemIndex = itemIndex;\r\n !setFocusOnly && this.onSelectionChanged()\r\n });\r\n return true\r\n }\r\n }\r\n isDataItem(item) {\r\n return this.options.isSelectableItem(item)\r\n }\r\n isSelectable() {\r\n return \"single\" === this.options.mode || \"multiple\" === this.options.mode\r\n }\r\n isItemDataSelected(data) {\r\n return this._selectionStrategy.isItemDataSelected(data, {\r\n checkPending: true\r\n })\r\n }\r\n isItemSelected(arg, options) {\r\n return this._selectionStrategy.isItemKeySelected(arg, options)\r\n }\r\n _resetItemSelectionWhenShiftKeyPressed() {\r\n delete this._shiftFocusedItemIndex\r\n }\r\n _resetFocusedItemIndex() {\r\n this._focusedItemIndex = -1\r\n }\r\n changeItemSelectionWhenShiftKeyInVirtualPaging(loadIndex) {\r\n var loadOptions = this.options.getLoadOptions(loadIndex, this._focusedItemIndex, this._shiftFocusedItemIndex);\r\n var deferred = Deferred();\r\n var indexOffset = loadOptions.skip;\r\n this.options.load(loadOptions).done(items => {\r\n this.changeItemSelectionWhenShiftKeyPressed(loadIndex, items, indexOffset);\r\n deferred.resolve()\r\n });\r\n return deferred.promise()\r\n }\r\n changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset) {\r\n var isSelectedItemsChanged = false;\r\n var itemIndexStep;\r\n var indexOffsetDefined = isDefined(indexOffset);\r\n var index = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n var {\r\n keyOf: keyOf\r\n } = this.options;\r\n var focusedItem = items[index];\r\n var focusedData = this.options.getItemData(focusedItem);\r\n var focusedKey = keyOf(focusedData);\r\n var isFocusedItemSelected = focusedItem && this.isItemDataSelected(focusedData);\r\n if (!isDefined(this._shiftFocusedItemIndex)) {\r\n this._shiftFocusedItemIndex = this._focusedItemIndex\r\n }\r\n var data;\r\n var itemKey;\r\n var startIndex;\r\n var endIndex;\r\n if (this._shiftFocusedItemIndex !== this._focusedItemIndex) {\r\n itemIndexStep = this._focusedItemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n itemKey = keyOf(this.options.getItemData(items[index]));\r\n this._removeSelectedItem(itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (itemIndex !== this._shiftFocusedItemIndex) {\r\n itemIndexStep = itemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? itemIndex - indexOffset : itemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n data = this.options.getItemData(items[index]);\r\n itemKey = keyOf(data);\r\n this._addSelectedItem(data, itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if ((indexOffsetDefined || this.isDataItem(focusedItem)) && !isFocusedItemSelected) {\r\n this._addSelectedItem(focusedData, focusedKey);\r\n isSelectedItemsChanged = true\r\n }\r\n return isSelectedItemsChanged\r\n }\r\n clearSelectedItems() {\r\n this._setSelectedItems([], [])\r\n }\r\n selectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(false)\r\n }\r\n return this.selectedItemKeys([], true, false, true)\r\n }\r\n deselectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(true)\r\n }\r\n return this.selectedItemKeys([], true, true, true)\r\n }\r\n _onePageSelectAll(isDeselect) {\r\n var items = this._selectionStrategy.getSelectableItems(this.options.plainItems());\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (this.isDataItem(item)) {\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n var isSelected = this.isItemSelected(itemKey);\r\n if (!isSelected && !isDeselect) {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n if (isSelected && isDeselect) {\r\n this._removeSelectedItem(itemKey)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return Deferred().resolve()\r\n }\r\n getSelectAllState(visibleOnly) {\r\n return this._selectionStrategy.getSelectAllState(visibleOnly)\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selectionStrategy.loadSelectedItemsWithFilter()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data/data_source/data_source\";\r\nimport {\r\n extend\r\n} from \"./core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"./data/data_source/utils\";\r\nimport DataController from \"./__internal/ui/collection/m_data_controller\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nvar DataHelperMixin = {\r\n postCtor: function() {\r\n this.on(\"disposing\", function() {\r\n this._disposeDataSource()\r\n }.bind(this))\r\n },\r\n _refreshDataSource: function() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n },\r\n _initDataSource: function() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers();\r\n this._initDataController()\r\n }\r\n },\r\n _initDataController: function() {\r\n var _this$option;\r\n var dataController = null === (_this$option = this.option) || void 0 === _this$option ? void 0 : _this$option.call(this, \"_dataController\");\r\n var dataSource = this._dataSource;\r\n if (dataController) {\r\n this._dataController = dataController\r\n } else {\r\n this._dataController = new DataController(dataSource)\r\n }\r\n },\r\n _addDataSourceHandlers: function() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n },\r\n _addReadyWatcher: function() {\r\n this.readyWatcher = function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this);\r\n this._dataSource.on(\"loadingChanged\", this.readyWatcher)\r\n },\r\n _addDataSourceChangeHandler: function() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n },\r\n _addDataSourceLoadErrorHandler: function() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n },\r\n _addDataSourceLoadingChangedHandler: function() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n },\r\n _loadDataSource: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n },\r\n _loadSingle: function(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n },\r\n _isLastPage: function() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n },\r\n _isDataSourceLoading: function() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n },\r\n _disposeDataSource: function() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler);\r\n if (this._dataSource._eventsStrategy) {\r\n this._dataSource._eventsStrategy.off(\"loadingChanged\", this.readyWatcher)\r\n }\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n },\r\n getDataSource: function() {\r\n return this._dataSource || null\r\n }\r\n};\r\nexport default DataHelperMixin;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_item.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"../../../core/utils/public_component\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar forcibleWatcher = function(watchMethod, fn, callback) {\r\n var filteredCallback = function(value) {\r\n if (oldValue !== value) {\r\n callback(value, oldValue);\r\n oldValue = value\r\n }\r\n };\r\n var oldValue;\r\n return {\r\n dispose: watchMethod(fn, filteredCallback),\r\n force() {\r\n filteredCallback(fn())\r\n }\r\n }\r\n};\r\nvar CollectionItem = Class.inherit({\r\n ctor($element, options, rawData) {\r\n this._$element = $element;\r\n this._options = options;\r\n this._rawData = rawData;\r\n attachInstanceToElement($element, this, this._dispose);\r\n this._render()\r\n },\r\n _render() {\r\n var $placeholder = $(\"
\").addClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n this._$element.append($placeholder);\r\n this._watchers = [];\r\n this._renderWatchers()\r\n },\r\n _renderWatchers() {\r\n this._startWatcher(\"disabled\", this._renderDisabled.bind(this));\r\n this._startWatcher(\"visible\", this._renderVisible.bind(this))\r\n },\r\n _startWatcher(field, render) {\r\n var rawData = this._rawData;\r\n var exprGetter = this._options.fieldGetter(field);\r\n var watcher = forcibleWatcher(this._options.watchMethod(), () => exprGetter(rawData), (value, oldValue) => {\r\n this._dirty = true;\r\n render(value, oldValue)\r\n });\r\n this._watchers.push(watcher)\r\n },\r\n setDataField() {\r\n this._dirty = false;\r\n each(this._watchers, (_, watcher) => {\r\n watcher.force()\r\n });\r\n if (this._dirty) {\r\n return true\r\n }\r\n },\r\n _renderDisabled(value, oldValue) {\r\n this._$element.toggleClass(DISABLED_STATE_CLASS, !!value);\r\n this._$element.attr(\"aria-disabled\", !!value);\r\n this._updateOwnerFocus(value)\r\n },\r\n _updateOwnerFocus(isDisabled) {\r\n var ownerComponent = this._options.owner;\r\n if (ownerComponent && isDisabled) {\r\n ownerComponent._resetItemFocus(this._$element)\r\n }\r\n },\r\n _renderVisible(value, oldValue) {\r\n this._$element.toggleClass(INVISIBLE_STATE_CLASS, void 0 !== value && !value)\r\n },\r\n _dispose() {\r\n each(this._watchers, (_, watcher) => {\r\n watcher.dispose()\r\n })\r\n }\r\n});\r\nCollectionItem.getInstance = function($element) {\r\n return getInstanceByElement($element, this)\r\n};\r\nexport default CollectionItem;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Action from \"../../../core/action\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\r\nimport {\r\n deferRenderer,\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n findTemplates\r\n} from \"../../../core/utils/template_manager\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport DataHelperMixin from \"../../../data_helper\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../../events/contextmenu\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../events/hold\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n focusable\r\n} from \"../../../ui/widget/selectors\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport CollectionWidgetItem from \"./m_item\";\r\nvar COLLECTION_CLASS = \"dx-collection\";\r\nvar ITEM_CLASS = \"dx-item\";\r\nvar CONTENT_CLASS_POSTFIX = \"-content\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar ITEM_DATA_KEY = \"dxItemData\";\r\nvar ITEM_INDEX_KEY = \"dxItemIndex\";\r\nvar ITEM_TEMPLATE_ID_PREFIX = \"tmpl-\";\r\nvar ITEMS_OPTIONS_NAME = \"dxItem\";\r\nvar SELECTED_ITEM_CLASS = \"dx-item-selected\";\r\nvar ITEM_RESPONSE_WAIT_CLASS = \"dx-item-response-wait\";\r\nvar EMPTY_COLLECTION = \"dx-empty-collection\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar ITEM_PATH_REGEX = /^([^.]+\\[\\d+\\]\\.)+([\\w.]+)$/;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"item\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_PAGE_UP = \"pageup\";\r\nvar FOCUS_PAGE_DOWN = \"pagedown\";\r\nvar FOCUS_LAST = \"last\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar CollectionWidget = Widget.inherit({\r\n _activeStateUnit: \".\".concat(ITEM_CLASS),\r\n _supportedKeys() {\r\n var move = function(location, e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveFocus(location, e)\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._enterKeyHandler(e)\r\n },\r\n enter: this._enterKeyHandler,\r\n leftArrow: move.bind(this, FOCUS_LEFT),\r\n rightArrow: move.bind(this, FOCUS_RIGHT),\r\n upArrow: move.bind(this, FOCUS_UP),\r\n downArrow: move.bind(this, FOCUS_DOWN),\r\n pageUp: move.bind(this, FOCUS_UP),\r\n pageDown: move.bind(this, FOCUS_DOWN),\r\n home: move.bind(this, FOCUS_FIRST),\r\n end: move.bind(this, FOCUS_LAST)\r\n })\r\n },\r\n _enterKeyHandler(e) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n var itemData = this._getItemData($itemElement);\r\n if (null === itemData || void 0 === itemData ? void 0 : itemData.onClick) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }\r\n this._itemClickHandler(extend({}, e, {\r\n target: $itemElement.get(0),\r\n currentTarget: $itemElement.get(0)\r\n }))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n selectOnFocus: false,\r\n loopItemFocus: true,\r\n items: [],\r\n itemTemplate: \"item\",\r\n onItemRendered: null,\r\n onItemClick: null,\r\n onItemHold: null,\r\n itemHoldTimeout: 750,\r\n onItemContextMenu: null,\r\n onFocusedItemChanged: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n dataSource: null,\r\n _dataController: null,\r\n _itemAttributes: {},\r\n itemTemplateProperty: \"template\",\r\n focusOnSelectedItem: true,\r\n focusedElement: null,\r\n displayExpr: void 0,\r\n disabledExpr: data => data ? data.disabled : void 0,\r\n visibleExpr: data => data ? data.visible : void 0\r\n })\r\n },\r\n _init() {\r\n this._compileDisplayGetter();\r\n this._initDataController();\r\n this.callBase();\r\n this._cleanRenderedItems();\r\n this._refreshDataSource()\r\n },\r\n _compileDisplayGetter() {\r\n var displayExpr = this.option(\"displayExpr\");\r\n this._displayGetter = displayExpr ? compileGetter(this.option(\"displayExpr\")) : void 0\r\n },\r\n _initTemplates() {\r\n this._initItemsFromMarkup();\r\n this._initDefaultItemTemplate();\r\n this.callBase()\r\n },\r\n _getAnonymousTemplateName: () => ANONYMOUS_TEMPLATE_NAME,\r\n _initDefaultItemTemplate() {\r\n var fieldsMap = this._getFieldsMap();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data) => {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n if (fieldsMap && isFunction(fieldsMap.text)) {\r\n data = fieldsMap.text(data)\r\n }\r\n $container.text(String(ensureDefined(data, \"\")))\r\n }\r\n }, this._getBindableFields(), this.option(\"integrationOptions.watchMethod\"), fieldsMap)\r\n })\r\n },\r\n _getBindableFields: () => [\"text\", \"html\"],\r\n _getFieldsMap() {\r\n if (this._displayGetter) {\r\n return {\r\n text: this._displayGetter\r\n }\r\n }\r\n },\r\n _prepareDefaultItemTemplate(data, $container) {\r\n if (isDefined(data.text)) {\r\n $container.text(data.text)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initItemsFromMarkup() {\r\n var rawItems = findTemplates(this.$element(), ITEMS_OPTIONS_NAME);\r\n if (!rawItems.length || this.option(\"items\").length) {\r\n return\r\n }\r\n var items = rawItems.map(_ref => {\r\n var {\r\n element: element,\r\n options: options\r\n } = _ref;\r\n var isTemplateRequired = /\\S/.test(element.innerHTML) && !options.template;\r\n if (isTemplateRequired) {\r\n options.template = this._prepareItemTemplate(element)\r\n } else {\r\n $(element).remove()\r\n }\r\n return options\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _prepareItemTemplate(item) {\r\n var templateId = ITEM_TEMPLATE_ID_PREFIX + new Guid;\r\n var $template = $(item).detach().clone().removeAttr(\"data-options\").addClass(TEMPLATE_WRAPPER_CLASS);\r\n this._saveTemplate(templateId, $template);\r\n return templateId\r\n },\r\n _dataSourceOptions: () => ({\r\n paginate: false\r\n }),\r\n _cleanRenderedItems() {\r\n this._renderedItemsCount = 0\r\n },\r\n _focusTarget() {\r\n return this.$element()\r\n },\r\n _focusInHandler(e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._isFocusTarget(e.target)) {\r\n return\r\n }\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n this._setFocusedItem($focusedElement)\r\n } else {\r\n var $activeItem = this._getActiveItem();\r\n if ($activeItem.length) {\r\n this.option(\"focusedElement\", getPublicElement($activeItem))\r\n }\r\n }\r\n },\r\n _focusOutHandler() {\r\n this.callBase.apply(this, arguments);\r\n var $target = $(this.option(\"focusedElement\"));\r\n this._updateFocusedItemState($target, false)\r\n },\r\n _findActiveTarget($element) {\r\n return $element.find(this._activeStateUnit)\r\n },\r\n _getActiveItem(last) {\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n return $focusedElement\r\n }\r\n var index = this.option(\"focusOnSelectedItem\") ? this.option(\"selectedIndex\") : 0;\r\n var activeElements = this._getActiveElement();\r\n var lastIndex = activeElements.length - 1;\r\n if (index < 0) {\r\n index = last ? lastIndex : 0\r\n }\r\n return activeElements.eq(index)\r\n },\r\n _moveFocus(location) {\r\n var $items = this._getAvailableItems();\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_PAGE_UP:\r\n case FOCUS_UP:\r\n $newTarget = this._prevItem($items);\r\n break;\r\n case FOCUS_PAGE_DOWN:\r\n case FOCUS_DOWN:\r\n $newTarget = this._nextItem($items);\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._prevItem($items) : this._nextItem($items);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._nextItem($items) : this._prevItem($items);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n break;\r\n default:\r\n return false\r\n }\r\n if (0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n },\r\n _getVisibleItems($itemElements) {\r\n $itemElements = $itemElements || this._itemElements();\r\n return $itemElements.filter(\":visible\")\r\n },\r\n _getAvailableItems($itemElements) {\r\n return this._getVisibleItems($itemElements)\r\n },\r\n _prevItem($items) {\r\n var $target = this._getActiveItem();\r\n var targetIndex = $items.index($target);\r\n var $last = $items.last();\r\n var $item = $($items[targetIndex - 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $last\r\n }\r\n return $item\r\n },\r\n _nextItem($items) {\r\n var $target = this._getActiveItem(true);\r\n var targetIndex = $items.index($target);\r\n var $first = $items.first();\r\n var $item = $($items[targetIndex + 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $first\r\n }\r\n return $item\r\n },\r\n _selectFocusedItem($target) {\r\n this.selectItem($target)\r\n },\r\n _updateFocusedItemState(target, isFocused, needCleanItemId) {\r\n var $target = $(target);\r\n if ($target.length) {\r\n this._refreshActiveDescendant();\r\n this._refreshItemId($target, needCleanItemId);\r\n this._toggleFocusClass(isFocused, $target)\r\n }\r\n this._updateParentActiveDescendant()\r\n },\r\n _refreshActiveDescendant($target) {\r\n this.setAria(\"activedescendant\", isDefined(this.option(\"focusedElement\")) ? this.getFocusedItemId() : null, $target)\r\n },\r\n _refreshItemId($target, needCleanItemId) {\r\n if (!needCleanItemId && this.option(\"focusedElement\")) {\r\n this.setAria(\"id\", this.getFocusedItemId(), $target)\r\n } else {\r\n this.setAria(\"id\", null, $target)\r\n }\r\n },\r\n _isDisabled: $element => $element && \"true\" === $($element).attr(\"aria-disabled\"),\r\n _setFocusedItem($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n this._updateFocusedItemState($target, true);\r\n this.onFocusedItemChanged(this.getFocusedItemId());\r\n var {\r\n selectOnFocus: selectOnFocus\r\n } = this.option();\r\n var isTargetDisabled = this._isDisabled($target);\r\n if (selectOnFocus && !isTargetDisabled) {\r\n this._selectFocusedItem($target)\r\n }\r\n },\r\n _findItemElementByItem(item) {\r\n var result = $();\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result = $item;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n _getIndexByItem(item) {\r\n return this.option(\"items\").indexOf(item)\r\n },\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n if (!this.constructor.ItemClass.getInstance($item).setDataField(property, value)) {\r\n this._refreshItem($item, item)\r\n }\r\n var isDisabling = \"disabled\" === property && value;\r\n if (isDisabling) {\r\n this._resetItemFocus($item)\r\n }\r\n },\r\n _resetItemFocus($item) {\r\n if ($item.is(this.option(\"focusedElement\"))) {\r\n this.option(\"focusedElement\", null)\r\n }\r\n },\r\n _refreshItem($item) {\r\n var itemData = this._getItemData($item);\r\n var index = $item.data(this._itemIndexKey());\r\n this._renderItem(this._renderedItemsCount + index, itemData, null, $item)\r\n },\r\n _updateParentActiveDescendant: noop,\r\n _optionChanged(args) {\r\n if (\"items\" === args.name) {\r\n var matches = args.fullName.match(ITEM_PATH_REGEX);\r\n if (matches && matches.length) {\r\n var property = matches[matches.length - 1];\r\n var itemPath = args.fullName.replace(\".\".concat(property), \"\");\r\n var item = this.option(itemPath);\r\n this._itemOptionChanged(item, property, args.value, args.previousValue);\r\n return\r\n }\r\n }\r\n switch (args.name) {\r\n case \"items\":\r\n case \"_itemAttributes\":\r\n case \"itemTemplateProperty\":\r\n case \"useItemTextAsTitle\":\r\n this._cleanRenderedItems();\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n this._renderEmptyMessage();\r\n break;\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n this._renderEmptyMessage();\r\n break;\r\n case \"itemTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"onItemRendered\":\r\n this._createItemRenderAction();\r\n break;\r\n case \"onItemClick\":\r\n break;\r\n case \"onItemHold\":\r\n case \"itemHoldTimeout\":\r\n this._attachHoldEvent();\r\n break;\r\n case \"onItemContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"onFocusedItemChanged\":\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n break;\r\n case \"selectOnFocus\":\r\n case \"loopItemFocus\":\r\n case \"focusOnSelectedItem\":\r\n break;\r\n case \"focusedElement\":\r\n this._updateFocusedItemState(args.previousValue, false, true);\r\n this._setFocusedItem($(args.value));\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDefaultItemTemplate();\r\n this._invalidate();\r\n break;\r\n case \"visibleExpr\":\r\n case \"disabledExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _invalidate() {\r\n this.option(\"focusedElement\", null);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _loadNextPage() {\r\n this._expectNextPageLoading();\r\n return this._dataController.loadNextPage()\r\n },\r\n _expectNextPageLoading() {\r\n this._startIndexForAppendedItems = 0\r\n },\r\n _expectLastItemLoading() {\r\n this._startIndexForAppendedItems = -1\r\n },\r\n _forgetNextPageLoading() {\r\n this._startIndexForAppendedItems = null\r\n },\r\n _dataSourceChangedHandler(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && items && this._shouldAppendItems()) {\r\n this._renderedItemsCount = items.length;\r\n if (!this._isLastPage() || -1 !== this._startIndexForAppendedItems) {\r\n this.option().items = items.concat(newItems.slice(this._startIndexForAppendedItems))\r\n }\r\n this._forgetNextPageLoading();\r\n this._refreshContent()\r\n } else {\r\n this.option(\"items\", newItems.slice())\r\n }\r\n },\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _dataSourceLoadErrorHandler() {\r\n this._forgetNextPageLoading();\r\n this.option(\"items\", this.option(\"items\"))\r\n },\r\n _shouldAppendItems() {\r\n return null != this._startIndexForAppendedItems && this._allowDynamicItemsAppend()\r\n },\r\n _allowDynamicItemsAppend: () => false,\r\n _clean() {\r\n this._cleanFocusState();\r\n this._cleanItemContainer();\r\n this._inkRipple && delete this._inkRipple;\r\n this._resetActiveState()\r\n },\r\n _cleanItemContainer() {\r\n $(this._itemContainer()).empty()\r\n },\r\n _dispose() {\r\n this.callBase();\r\n clearTimeout(this._itemFocusTimeout)\r\n },\r\n _refresh() {\r\n this._cleanRenderedItems();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContainer() {\r\n return this.$element()\r\n },\r\n _itemClass: () => ITEM_CLASS,\r\n _itemContentClass() {\r\n return this._itemClass() + CONTENT_CLASS_POSTFIX\r\n },\r\n _selectedItemClass: () => SELECTED_ITEM_CLASS,\r\n _itemResponseWaitClass: () => ITEM_RESPONSE_WAIT_CLASS,\r\n _itemSelector() {\r\n return \".\".concat(this._itemClass())\r\n },\r\n _itemDataKey: () => ITEM_DATA_KEY,\r\n _itemIndexKey: () => ITEM_INDEX_KEY,\r\n _itemElements() {\r\n return this._itemContainer().find(this._itemSelector())\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n this.$element().addClass(COLLECTION_CLASS);\r\n this._prepareContent()\r\n },\r\n _prepareContent: deferRenderer((function() {\r\n this._renderContentImpl()\r\n })),\r\n _renderContent() {\r\n this._fireContentReadyAction()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _getPointerEvent: () => pointerEvents.down,\r\n _attachClickEvent() {\r\n var itemSelector = this._itemSelector();\r\n var pointerEvent = this._getPointerEvent();\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerEventNamespace = addNamespace(pointerEvent, this.NAME);\r\n var pointerAction = new Action(args => {\r\n var {\r\n event: event\r\n } = args;\r\n this._itemPointerDownHandler(event)\r\n });\r\n eventsEngine.off(this._itemContainer(), clickEventNamespace, itemSelector);\r\n eventsEngine.off(this._itemContainer(), pointerEventNamespace, itemSelector);\r\n eventsEngine.on(this._itemContainer(), clickEventNamespace, itemSelector, e => this._itemClickHandler(e));\r\n eventsEngine.on(this._itemContainer(), pointerEventNamespace, itemSelector, e => {\r\n pointerAction.execute({\r\n element: $(e.target),\r\n event: e\r\n })\r\n })\r\n },\r\n _itemClickHandler(e, args, config) {\r\n this._itemDXEventHandler(e, \"onItemClick\", args, config)\r\n },\r\n _itemPointerDownHandler(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._itemFocusHandler = function() {\r\n clearTimeout(this._itemFocusTimeout);\r\n this._itemFocusHandler = null;\r\n if (e.isDefaultPrevented()) {\r\n return\r\n }\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n var $closestFocusable = this._closestFocusable($target);\r\n if ($closestItem.length && this._isFocusTarget(null === $closestFocusable || void 0 === $closestFocusable ? void 0 : $closestFocusable.get(0))) {\r\n this.option(\"focusedElement\", getPublicElement($closestItem))\r\n }\r\n }.bind(this);\r\n this._itemFocusTimeout = setTimeout(this._forcePointerDownFocus.bind(this))\r\n },\r\n _closestFocusable($target) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent();\r\n while ($target.length && !domAdapter.isDocument($target.get(0)) && !domAdapter.isDocumentFragment($target.get(0))) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent()\r\n }\r\n },\r\n _forcePointerDownFocus() {\r\n this._itemFocusHandler && this._itemFocusHandler()\r\n },\r\n _updateFocusState() {\r\n this.callBase.apply(this, arguments);\r\n this._forcePointerDownFocus()\r\n },\r\n _attachHoldEvent() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(holdEvent.name, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, {\r\n timeout: this._getHoldTimeout()\r\n }, this._itemHoldHandler.bind(this))\r\n },\r\n _getHoldTimeout() {\r\n return this.option(\"itemHoldTimeout\")\r\n },\r\n _shouldFireHoldEvent() {\r\n return this.hasActionSubscription(\"onItemHold\")\r\n },\r\n _itemHoldHandler(e) {\r\n if (this._shouldFireHoldEvent()) {\r\n this._itemDXEventHandler(e, \"onItemHold\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _attachContextMenuEvent() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, this._itemContextMenuHandler.bind(this))\r\n },\r\n _shouldFireContextMenuEvent() {\r\n return this.hasActionSubscription(\"onItemContextMenu\")\r\n },\r\n _itemContextMenuHandler(e) {\r\n if (this._shouldFireContextMenuEvent()) {\r\n this._itemDXEventHandler(e, \"onItemContextMenu\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _renderContentImpl() {\r\n var items = this.option(\"items\") || [];\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n },\r\n _renderItems(items) {\r\n if (items.length) {\r\n each(items, (index, itemData) => {\r\n this._renderItem(this._renderedItemsCount + index, itemData)\r\n })\r\n }\r\n this._renderEmptyMessage()\r\n },\r\n _getItemsContainer() {\r\n return this._itemContainer()\r\n },\r\n _setAttributes($element) {\r\n var attributes = _extends({}, this.option(\"_itemAttributes\"));\r\n var {\r\n class: customClassValue\r\n } = attributes;\r\n if (customClassValue) {\r\n var currentClassValue = $element.get(0).className;\r\n attributes.class = [currentClassValue, customClassValue].join(\" \")\r\n }\r\n $element.attr(attributes)\r\n },\r\n _renderItem(index, itemData, $container, $itemToReplace) {\r\n var _a;\r\n var itemIndex = null !== (_a = null === index || void 0 === index ? void 0 : index.item) && void 0 !== _a ? _a : index;\r\n $container = $container || this._getItemsContainer();\r\n var $itemFrame = this._renderItemFrame(itemIndex, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, itemIndex);\r\n this._setAttributes($itemFrame);\r\n this._attachItemClickEvent(itemData, $itemFrame);\r\n var $itemContent = this._getItemContent($itemFrame);\r\n var renderContentPromise = this._renderItemContent({\r\n index: itemIndex,\r\n itemData: itemData,\r\n container: getPublicElement($itemContent),\r\n contentClass: this._itemContentClass(),\r\n defaultTemplateName: this.option(\"itemTemplate\")\r\n });\r\n var that = this;\r\n when(renderContentPromise).done($itemContent => {\r\n that._postprocessRenderItem({\r\n itemElement: $itemFrame,\r\n itemContent: $itemContent,\r\n itemData: itemData,\r\n itemIndex: itemIndex\r\n });\r\n that._executeItemRenderAction(index, itemData, getPublicElement($itemFrame))\r\n });\r\n return $itemFrame\r\n },\r\n _getItemContent($itemFrame) {\r\n var $itemContent = $itemFrame.find(\".\".concat(ITEM_CONTENT_PLACEHOLDER_CLASS));\r\n $itemContent.removeClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n return $itemContent\r\n },\r\n _attachItemClickEvent(itemData, $itemElement) {\r\n if (!itemData || !itemData.onClick) {\r\n return\r\n }\r\n eventsEngine.on($itemElement, clickEventName, e => {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n })\r\n },\r\n _renderItemContent(args) {\r\n var itemTemplateName = this._getItemTemplateName(args);\r\n var itemTemplate = this._getTemplate(itemTemplateName);\r\n this._addItemContentClasses(args);\r\n var $templateResult = $(this._createItemByTemplate(itemTemplate, args));\r\n if (!$templateResult.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n return args.container\r\n }\r\n return this._renderItemContentByNode(args, $templateResult)\r\n },\r\n _renderItemContentByNode(args, $node) {\r\n $(args.container).replaceWith($node);\r\n args.container = getPublicElement($node);\r\n this._addItemContentClasses(args);\r\n return $node\r\n },\r\n _addItemContentClasses(args) {\r\n var classes = [ITEM_CLASS + CONTENT_CLASS_POSTFIX, args.contentClass];\r\n $(args.container).addClass(classes.join(\" \"))\r\n },\r\n _appendItemToContainer($container, $itemFrame, index) {\r\n $itemFrame.appendTo($container)\r\n },\r\n _renderItemFrame(index, itemData, $container, $itemToReplace) {\r\n var $itemFrame = $(\"
\");\r\n new this.constructor.ItemClass($itemFrame, this._itemOptions(), itemData || {});\r\n if ($itemToReplace && $itemToReplace.length) {\r\n $itemToReplace.replaceWith($itemFrame)\r\n } else {\r\n this._appendItemToContainer.call(this, $container, $itemFrame, index)\r\n }\r\n if (this.option(\"useItemTextAsTitle\")) {\r\n var displayValue = this._displayGetter ? this._displayGetter(itemData) : itemData;\r\n $itemFrame.attr(\"title\", displayValue)\r\n }\r\n return $itemFrame\r\n },\r\n _itemOptions() {\r\n var that = this;\r\n return {\r\n watchMethod: () => that.option(\"integrationOptions.watchMethod\"),\r\n owner: that,\r\n fieldGetter(field) {\r\n var expr = that.option(\"\".concat(field, \"Expr\"));\r\n var getter = compileGetter(expr);\r\n return getter\r\n }\r\n }\r\n },\r\n _postprocessRenderItem: noop,\r\n _executeItemRenderAction(index, itemData, itemElement) {\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: index,\r\n itemData: itemData\r\n })\r\n },\r\n _setElementData(element, data, index) {\r\n element.addClass([ITEM_CLASS, this._itemClass()].join(\" \")).data(this._itemDataKey(), data).data(this._itemIndexKey(), index)\r\n },\r\n _createItemRenderAction() {\r\n return this._itemRenderAction = this._createActionByOption(\"onItemRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n })\r\n },\r\n _getItemRenderAction() {\r\n return this._itemRenderAction || this._createItemRenderAction()\r\n },\r\n _getItemTemplateName(args) {\r\n var data = args.itemData;\r\n var templateProperty = args.templateProperty || this.option(\"itemTemplateProperty\");\r\n var template = data && data[templateProperty];\r\n return template || args.defaultTemplateName\r\n },\r\n _createItemByTemplate(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index,\r\n onRendered: this._onItemTemplateRendered(itemTemplate, renderArgs)\r\n })\r\n },\r\n _onItemTemplateRendered: () => noop,\r\n _emptyMessageContainer() {\r\n return this._itemContainer()\r\n },\r\n _renderEmptyMessage(items) {\r\n items = items || this.option(\"items\");\r\n var noDataText = this.option(\"noDataText\");\r\n var hideNoData = !noDataText || items && items.length || this._dataController.isLoading();\r\n if (hideNoData && this._$noData) {\r\n this._$noData.remove();\r\n this._$noData = null;\r\n this.setAria(\"label\", void 0)\r\n }\r\n if (!hideNoData) {\r\n this._$noData = this._$noData || $(\"
\").addClass(\"dx-empty-message\");\r\n this._$noData.appendTo(this._emptyMessageContainer());\r\n if (this.option(\"encodeNoDataText\")) {\r\n this._$noData.text(noDataText)\r\n } else {\r\n this._$noData.html(noDataText)\r\n }\r\n }\r\n this.$element().toggleClass(EMPTY_COLLECTION, !hideNoData)\r\n },\r\n _itemDXEventHandler(dxEvent, handlerOptionName, actionArgs, actionConfig) {\r\n this._itemEventHandler(dxEvent.target, handlerOptionName, extend(actionArgs, {\r\n event: dxEvent\r\n }), actionConfig)\r\n },\r\n _itemEventHandler(initiator, handlerOptionName, actionArgs, actionConfig) {\r\n var action = this._createActionByOption(handlerOptionName, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerByHandler(initiator, handler, actionArgs, actionConfig) {\r\n var action = this._createAction(handler, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerImpl(initiator, action, actionArgs) {\r\n var $itemElement = this._closestItemElement($(initiator));\r\n var args = extend({}, actionArgs);\r\n return action(extend(actionArgs, this._extendActionArgs($itemElement), args))\r\n },\r\n _extendActionArgs($itemElement) {\r\n return {\r\n itemElement: getPublicElement($itemElement),\r\n itemIndex: this._itemElements().index($itemElement),\r\n itemData: this._getItemData($itemElement)\r\n }\r\n },\r\n _closestItemElement($element) {\r\n return $($element).closest(this._itemSelector())\r\n },\r\n _getItemData(itemElement) {\r\n return $(itemElement).data(this._itemDataKey())\r\n },\r\n _getSummaryItemsSize(dimension, items, includeMargin) {\r\n var result = 0;\r\n if (items) {\r\n each(items, (_, item) => {\r\n if (\"width\" === dimension) {\r\n result += getOuterWidth(item, includeMargin || false)\r\n } else if (\"height\" === dimension) {\r\n result += getOuterHeight(item, includeMargin || false)\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n getFocusedItemId() {\r\n if (!this._focusedItemId) {\r\n this._focusedItemId = \"dx-\".concat(new Guid)\r\n }\r\n return this._focusedItemId\r\n },\r\n itemElements() {\r\n return this._itemElements()\r\n },\r\n itemsContainer() {\r\n return this._itemContainer()\r\n }\r\n}).include(DataHelperMixin);\r\nCollectionWidget.ItemClass = CollectionWidgetItem;\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.edit.strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n isRenderer\r\n} from \"../../../core/utils/type\";\r\nvar {\r\n abstract: abstract\r\n} = Class;\r\nvar EditStrategy = Class.inherit({\r\n ctor(collectionWidget) {\r\n this._collectionWidget = collectionWidget\r\n },\r\n getIndexByItemData: abstract,\r\n getItemDataByIndex: abstract,\r\n getKeysByItems: abstract,\r\n getItemsByKeys: abstract,\r\n itemsGetter: abstract,\r\n getKeyByIndex(index) {\r\n var resultIndex = this._denormalizeItemIndex(index);\r\n return this.getKeysByItems([this.getItemDataByIndex(resultIndex)])[0]\r\n },\r\n _equalKeys(key1, key2) {\r\n if (this._collectionWidget._isKeySpecified()) {\r\n return equalByValue(key1, key2)\r\n }\r\n return key1 === key2\r\n },\r\n beginCache() {\r\n this._cache = {}\r\n },\r\n endCache() {\r\n this._cache = null\r\n },\r\n getIndexByKey: abstract,\r\n getNormalizedIndex(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._normalizeItemIndex(value)\r\n }\r\n if (this._isNode(value)) {\r\n return this._getNormalizedItemIndex(value)\r\n }\r\n return this._normalizeItemIndex(this.getIndexByItemData(value))\r\n },\r\n getIndex(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._denormalizeItemIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isNode(value)) {\r\n return this._denormalizeItemIndex(this._getNormalizedItemIndex(value))\r\n }\r\n return this.getIndexByItemData(value)\r\n },\r\n getItemElement(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(this._normalizeItemIndex(value))\r\n }\r\n if (this._isNode(value)) {\r\n return $(value)\r\n }\r\n var normalizedItemIndex = this._normalizeItemIndex(this.getIndexByItemData(value));\r\n return this._getItemByNormalizedIndex(normalizedItemIndex)\r\n },\r\n _isNode: el => domAdapter.isNode(el && isRenderer(el) ? el.get(0) : el),\r\n deleteItemAtIndex: abstract,\r\n itemPlacementFunc(movingIndex, destinationIndex) {\r\n return this._itemsFromSameParent(movingIndex, destinationIndex) && movingIndex < destinationIndex ? \"after\" : \"before\"\r\n },\r\n moveItemAtIndexToIndex: abstract,\r\n _isNormalizedItemIndex: index => \"number\" === typeof index && Math.round(index) === index,\r\n _isItemIndex: abstract,\r\n _getNormalizedItemIndex: abstract,\r\n _normalizeItemIndex: abstract,\r\n _denormalizeItemIndex: abstract,\r\n _getItemByNormalizedIndex: abstract,\r\n _itemsFromSameParent: abstract\r\n});\r\nexport default EditStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.edit.strategy.plain.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EditStrategy from \"./m_collection_widget.edit.strategy\";\r\nvar PlainEditStrategy = EditStrategy.inherit({\r\n _getPlainItems() {\r\n return this._collectionWidget.option(\"items\") || []\r\n },\r\n getIndexByItemData(itemData) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n if (keyOf) {\r\n return this.getIndexByKey(keyOf(itemData))\r\n }\r\n return this._getPlainItems().indexOf(itemData)\r\n },\r\n getItemDataByIndex(index) {\r\n return this._getPlainItems()[index]\r\n },\r\n deleteItemAtIndex(index) {\r\n this._getPlainItems().splice(index, 1)\r\n },\r\n itemsGetter() {\r\n return this._getPlainItems()\r\n },\r\n getKeysByItems(items) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n var result = items;\r\n if (keyOf) {\r\n result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n result.push(keyOf(items[i]))\r\n }\r\n }\r\n return result\r\n },\r\n getIndexByKey(key) {\r\n var cache = this._cache;\r\n var keys = cache && cache.keys || this.getKeysByItems(this._getPlainItems());\r\n if (cache && !cache.keys) {\r\n cache.keys = keys\r\n }\r\n if (\"object\" === typeof key) {\r\n for (var i = 0, {\r\n length: length\r\n } = keys; i < length; i++) {\r\n if (this._equalKeys(key, keys[i])) {\r\n return i\r\n }\r\n }\r\n } else {\r\n return keys.indexOf(key)\r\n }\r\n return -1\r\n },\r\n getItemsByKeys: (keys, items) => (items || keys).slice(),\r\n moveItemAtIndexToIndex(movingIndex, destinationIndex) {\r\n var items = this._getPlainItems();\r\n var movedItemData = items[movingIndex];\r\n items.splice(movingIndex, 1);\r\n items.splice(destinationIndex, 0, movedItemData)\r\n },\r\n _isItemIndex: index => \"number\" === typeof index && Math.round(index) === index,\r\n _getNormalizedItemIndex(itemElement) {\r\n return this._collectionWidget._itemElements().index(itemElement)\r\n },\r\n _normalizeItemIndex: index => index,\r\n _denormalizeItemIndex: index => index,\r\n _getItemByNormalizedIndex(index) {\r\n return index > -1 ? this._collectionWidget._itemElements().eq(index) : null\r\n },\r\n _itemsFromSameParent: () => true\r\n});\r\nexport default PlainEditStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.edit.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n DataSource\r\n} from \"../../../data/data_source/data_source\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../../data/data_source/utils\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport Selection from \"../../ui/selection/m_selection\";\r\nimport BaseCollectionWidget from \"./m_collection_widget.base\";\r\nimport PlainEditStrategy from \"./m_collection_widget.edit.strategy.plain\";\r\nvar ITEM_DELETING_DATA_KEY = \"dxItemDeleting\";\r\nvar NOT_EXISTING_INDEX = -1;\r\nvar indexExists = function(index) {\r\n return index !== NOT_EXISTING_INDEX\r\n};\r\nvar CollectionWidget = BaseCollectionWidget.inherit({\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n selectionMode: \"none\",\r\n selectionRequired: false,\r\n selectByClick: true,\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n maxFilterLengthInRequest: 1500,\r\n keyExpr: null,\r\n selectedIndex: NOT_EXISTING_INDEX,\r\n selectedItem: null,\r\n onSelectionChanged: null,\r\n onItemReordered: null,\r\n onItemDeleting: null,\r\n onItemDeleted: null\r\n })\r\n },\r\n ctor(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options)\r\n },\r\n _init() {\r\n this._initEditStrategy();\r\n this.callBase();\r\n this._initKeyGetter();\r\n this._initSelectionModule()\r\n },\r\n _initKeyGetter() {\r\n this._keyGetter = compileGetter(this.option(\"keyExpr\"))\r\n },\r\n _getKeysByItems(selectedItems) {\r\n return this._editStrategy.getKeysByItems(selectedItems)\r\n },\r\n _getItemsByKeys(selectedItemKeys, selectedItems) {\r\n return this._editStrategy.getItemsByKeys(selectedItemKeys, selectedItems)\r\n },\r\n _getKeyByIndex(index) {\r\n return this._editStrategy.getKeyByIndex(index)\r\n },\r\n _getIndexByKey(key) {\r\n return this._editStrategy.getIndexByKey(key)\r\n },\r\n _getIndexByItemData(itemData) {\r\n return this._editStrategy.getIndexByItemData(itemData)\r\n },\r\n _isKeySpecified() {\r\n return !!this._dataController.key()\r\n },\r\n _getCombinedFilter() {\r\n return this._dataController.filter()\r\n },\r\n key() {\r\n if (this.option(\"keyExpr\")) {\r\n return this.option(\"keyExpr\")\r\n }\r\n return this._dataController.key()\r\n },\r\n keyOf(item) {\r\n var key = item;\r\n if (this.option(\"keyExpr\")) {\r\n key = this._keyGetter(item)\r\n } else if (this._dataController.store()) {\r\n key = this._dataController.keyOf(item)\r\n }\r\n return key\r\n },\r\n _nullValueSelectionSupported: () => false,\r\n _initSelectionModule() {\r\n var that = this;\r\n var {\r\n itemsGetter: itemsGetter\r\n } = that._editStrategy;\r\n this._selection = new Selection({\r\n allowNullValue: this._nullValueSelectionSupported(),\r\n mode: this.option(\"selectionMode\"),\r\n maxFilterLengthInRequest: this.option(\"maxFilterLengthInRequest\"),\r\n equalByReference: !this._isKeySpecified(),\r\n onSelectionChanged(args) {\r\n if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n that.option(\"selectedItems\", that._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n that._updateSelectedItems(args)\r\n }\r\n },\r\n filter: that._getCombinedFilter.bind(that),\r\n totalCount() {\r\n var items = that.option(\"items\");\r\n var totalCount = that._dataController.totalCount();\r\n return totalCount >= 0 ? totalCount : that._getItemsCount(items)\r\n },\r\n key: that.key.bind(that),\r\n keyOf: that.keyOf.bind(that),\r\n load(options) {\r\n var _a;\r\n var dataController = that._dataController;\r\n options.customQueryParams = null === (_a = dataController.loadOptions()) || void 0 === _a ? void 0 : _a.customQueryParams;\r\n options.userData = dataController.userData();\r\n if (dataController.store()) {\r\n return dataController.loadFromStore(options).done(loadResult => {\r\n if (that._disposed) {\r\n return\r\n }\r\n var items = normalizeLoadResult(loadResult).data;\r\n dataController.applyMapFunction(items)\r\n })\r\n }\r\n return Deferred().resolve(this.plainItems())\r\n },\r\n dataFields: () => that._dataController.select(),\r\n plainItems: itemsGetter.bind(that._editStrategy)\r\n })\r\n },\r\n _getItemsCount(items) {\r\n return items.reduce((itemsCount, item) => itemsCount + (item.items ? this._getItemsCount(item.items) : 1), 0)\r\n },\r\n _initEditStrategy() {\r\n var Strategy = PlainEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n },\r\n _getSelectedItemIndices(keys) {\r\n var that = this;\r\n var indices = [];\r\n keys = keys || this._selection.getSelectedItemKeys();\r\n that._editStrategy.beginCache();\r\n each(keys, (_, key) => {\r\n var selectedIndex = that._getIndexByKey(key);\r\n if (indexExists(selectedIndex)) {\r\n indices.push(selectedIndex)\r\n }\r\n });\r\n that._editStrategy.endCache();\r\n return indices\r\n },\r\n _initMarkup() {\r\n this._rendering = true;\r\n if (!this._dataController.isLoading()) {\r\n this._syncSelectionOptions().done(() => this._normalizeSelectedItems())\r\n }\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._rendering = false\r\n },\r\n _fireContentReadyAction() {\r\n this._rendering = false;\r\n this._rendered = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _syncSelectionOptions(byOption) {\r\n byOption = byOption || this._chooseSelectOption();\r\n var selectedItem;\r\n var selectedIndex;\r\n var selectedItemKeys;\r\n var selectedItems;\r\n switch (byOption) {\r\n case \"selectedIndex\":\r\n selectedItem = this._editStrategy.getItemDataByIndex(this.option(\"selectedIndex\"));\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n break;\r\n case \"selectedItems\":\r\n selectedItems = this.option(\"selectedItems\") || [];\r\n selectedIndex = selectedItems.length ? this._editStrategy.getIndexByItemData(selectedItems[0]) : NOT_EXISTING_INDEX;\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItems[0]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems(selectedItems));\r\n break;\r\n case \"selectedItem\":\r\n selectedItem = this.option(\"selectedItem\");\r\n selectedIndex = this._editStrategy.getIndexByItemData(selectedItem);\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", NOT_EXISTING_INDEX)\r\n }\r\n break;\r\n case \"selectedItemKeys\":\r\n selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (this.option(\"selectionRequired\")) {\r\n var selectedItemIndex = this._getIndexByKey(selectedItemKeys[0]);\r\n if (!indexExists(selectedItemIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n }\r\n return this._selection.setSelection(selectedItemKeys)\r\n }\r\n return Deferred().resolve().promise()\r\n },\r\n _chooseSelectOption() {\r\n var optionName = \"selectedIndex\";\r\n var isOptionDefined = function(optionName) {\r\n var optionValue = this.option(optionName);\r\n var length = isDefined(optionValue) && optionValue.length;\r\n return length || optionName in this._userOptions\r\n }.bind(this);\r\n if (isOptionDefined(\"selectedItems\")) {\r\n optionName = \"selectedItems\"\r\n } else if (isOptionDefined(\"selectedItem\")) {\r\n optionName = \"selectedItem\"\r\n } else if (isOptionDefined(\"selectedItemKeys\")) {\r\n optionName = \"selectedItemKeys\"\r\n }\r\n return optionName\r\n },\r\n _compareKeys(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _normalizeSelectedItems() {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n } else if (\"single\" === this.option(\"selectionMode\")) {\r\n var newSelection = this.option(\"selectedItems\");\r\n if (newSelection.length > 1 || !newSelection.length && this.option(\"selectionRequired\") && this.option(\"items\") && this.option(\"items\").length) {\r\n var currentSelection = this._selection.getSelectedItems();\r\n var normalizedSelection = void 0 === newSelection[0] ? currentSelection[0] : newSelection[0];\r\n if (void 0 === normalizedSelection) {\r\n normalizedSelection = this._editStrategy.itemsGetter()[0]\r\n }\r\n if (this.option(\"grouped\") && normalizedSelection && normalizedSelection.items) {\r\n normalizedSelection.items = [normalizedSelection.items[0]]\r\n }\r\n this._selection.setSelection(this._getKeysByItems([normalizedSelection]));\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [normalizedSelection]);\r\n return this._syncSelectionOptions(\"selectedItems\")\r\n }\r\n this._selection.setSelection(this._getKeysByItems(newSelection))\r\n } else {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n }\r\n return Deferred().resolve().promise()\r\n },\r\n _itemClickHandler(e) {\r\n var itemSelectPromise = Deferred().resolve();\r\n var {\r\n callBase: callBase\r\n } = this;\r\n this._createAction(e => {\r\n var _a;\r\n itemSelectPromise = null !== (_a = this._itemSelectHandler(e.event)) && void 0 !== _a ? _a : itemSelectPromise\r\n }, {\r\n validatingTargetName: \"itemElement\"\r\n })({\r\n itemElement: $(e.currentTarget),\r\n event: e\r\n });\r\n itemSelectPromise.always(() => {\r\n callBase.apply(this, arguments)\r\n })\r\n },\r\n _itemSelectHandler(e) {\r\n var itemSelectPromise;\r\n if (!this.option(\"selectByClick\")) {\r\n return\r\n }\r\n var $itemElement = e.currentTarget;\r\n if (this.isItemSelected($itemElement)) {\r\n this.unselectItem(e.currentTarget)\r\n } else {\r\n itemSelectPromise = this.selectItem(e.currentTarget)\r\n }\r\n return null === itemSelectPromise || void 0 === itemSelectPromise ? void 0 : itemSelectPromise.promise()\r\n },\r\n _selectedItemElement(index) {\r\n return this._itemElements().eq(index)\r\n },\r\n _postprocessRenderItem(args) {\r\n if (\"none\" !== this.option(\"selectionMode\")) {\r\n var $itemElement = $(args.itemElement);\r\n var normalizedItemIndex = this._editStrategy.getNormalizedIndex($itemElement);\r\n var isItemSelected = this._isItemSelected(normalizedItemIndex);\r\n this._processSelectableItem($itemElement, isItemSelected)\r\n }\r\n },\r\n _processSelectableItem($itemElement, isSelected) {\r\n $itemElement.toggleClass(this._selectedItemClass(), isSelected);\r\n this._setAriaSelectionAttribute($itemElement, String(isSelected))\r\n },\r\n _updateSelectedItems(args) {\r\n var that = this;\r\n var {\r\n addedItemKeys: addedItemKeys\r\n } = args;\r\n var {\r\n removedItemKeys: removedItemKeys\r\n } = args;\r\n if (that._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = that._selectionChangePromise;\r\n if (!that._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n that._editStrategy.beginCache();\r\n for (var i = 0; i < addedItemKeys.length; i++) {\r\n normalizedIndex = that._getIndexByKey(addedItemKeys[i]);\r\n addedSelection.push(normalizedIndex);\r\n that._addSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < removedItemKeys.length; _i++) {\r\n normalizedIndex = that._getIndexByKey(removedItemKeys[_i]);\r\n removedSelection.push(normalizedIndex);\r\n that._removeSelection(normalizedIndex)\r\n }\r\n that._editStrategy.endCache();\r\n that._updateSelection(addedSelection, removedSelection)\r\n }\r\n when(selectionChangePromise).done(() => {\r\n that._fireSelectionChangeEvent(args.addedItems, args.removedItems)\r\n })\r\n }\r\n },\r\n _fireSelectionChangeEvent(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _updateSelection: noop,\r\n _setAriaSelectionAttribute($target, value) {\r\n this.setAria(\"selected\", value, $target)\r\n },\r\n _removeSelection(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, false);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", false)\r\n }\r\n },\r\n _addSelection(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, true);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", true)\r\n }\r\n },\r\n _isItemSelected(index) {\r\n var key = this._getKeyByIndex(index);\r\n return this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n if (!args.value || Array.isArray(args.value) && !args.value.length) {\r\n this.option(\"selectedItemKeys\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n case \"selectedItemKeys\":\r\n this._syncSelectionOptions(args.name).done(() => this._normalizeSelectedItems());\r\n break;\r\n case \"keyExpr\":\r\n this._initKeyGetter();\r\n break;\r\n case \"selectionRequired\":\r\n this._normalizeSelectedItems();\r\n break;\r\n case \"selectByClick\":\r\n case \"onSelectionChanged\":\r\n case \"onItemDeleting\":\r\n case \"onItemDeleted\":\r\n case \"onItemReordered\":\r\n case \"maxFilterLengthInRequest\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearSelectedItems() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n },\r\n _waitDeletingPrepare($itemElement) {\r\n if ($itemElement.data(ITEM_DELETING_DATA_KEY)) {\r\n return Deferred().resolve().promise()\r\n }\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, true);\r\n var deferred = Deferred();\r\n var deletingActionArgs = {\r\n cancel: false\r\n };\r\n var deletePromise = this._itemEventHandler($itemElement, \"onItemDeleting\", deletingActionArgs, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n when(deletePromise).always((function(value) {\r\n var deletePromiseExists = !deletePromise;\r\n var deletePromiseResolved = !deletePromiseExists && \"resolved\" === deletePromise.state();\r\n var argumentsSpecified = !!arguments.length;\r\n var shouldDelete = deletePromiseExists || deletePromiseResolved && !argumentsSpecified || deletePromiseResolved && value;\r\n when(fromPromise(deletingActionArgs.cancel)).always(() => {\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, false)\r\n }).done(cancel => {\r\n shouldDelete && !cancel ? deferred.resolve() : deferred.reject()\r\n }).fail(deferred.reject)\r\n }));\r\n return deferred.promise()\r\n },\r\n _deleteItemFromDS($item) {\r\n var dataController = this._dataController;\r\n var deferred = Deferred();\r\n var disabledState = this.option(\"disabled\");\r\n var dataStore = dataController.store();\r\n if (!dataStore) {\r\n return Deferred().resolve().promise()\r\n }\r\n if (!dataStore.remove) {\r\n throw errors.Error(\"E1011\")\r\n }\r\n this.option(\"disabled\", true);\r\n dataStore.remove(dataController.keyOf(this._getItemData($item))).done(key => {\r\n if (void 0 !== key) {\r\n deferred.resolve()\r\n } else {\r\n deferred.reject()\r\n }\r\n }).fail(() => {\r\n deferred.reject()\r\n });\r\n deferred.always(() => {\r\n this.option(\"disabled\", disabledState)\r\n });\r\n return deferred\r\n },\r\n _tryRefreshLastPage() {\r\n var deferred = Deferred();\r\n if (this._isLastPage() || this.option(\"grouped\")) {\r\n deferred.resolve()\r\n } else {\r\n this._refreshLastPage().done(() => {\r\n deferred.resolve()\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _refreshLastPage() {\r\n this._expectLastItemLoading();\r\n return this._dataController.load()\r\n },\r\n _updateSelectionAfterDelete(index) {\r\n var key = this._getKeyByIndex(index);\r\n this._selection.deselect([key])\r\n },\r\n _updateIndicesAfterIndex(index) {\r\n var itemElements = this._itemElements();\r\n for (var i = index + 1; i < itemElements.length; i++) {\r\n $(itemElements[i]).data(this._itemIndexKey(), i - 1)\r\n }\r\n },\r\n _simulateOptionChange(optionName) {\r\n var optionValue = this.option(optionName);\r\n if (optionValue instanceof DataSource) {\r\n return\r\n }\r\n this._optionChangedAction({\r\n name: optionName,\r\n fullName: optionName,\r\n value: optionValue\r\n })\r\n },\r\n isItemSelected(itemElement) {\r\n return this._isItemSelected(this._editStrategy.getNormalizedIndex(itemElement))\r\n },\r\n selectItem(itemElement) {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n return\r\n }\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (this._selection.isItemSelected(key)) {\r\n return\r\n }\r\n if (\"single\" === this.option(\"selectionMode\")) {\r\n return this._selection.setSelection([key])\r\n }\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n return this._selection.setSelection([...selectedItemKeys, key], [key])\r\n },\r\n unselectItem(itemElement) {\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var selectedItemKeys = this._selection.getSelectedItemKeys();\r\n if (this.option(\"selectionRequired\") && selectedItemKeys.length <= 1) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (!this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })) {\r\n return\r\n }\r\n this._selection.deselect([key])\r\n },\r\n _deleteItemElementByIndex(index) {\r\n this._updateSelectionAfterDelete(index);\r\n this._updateIndicesAfterIndex(index);\r\n this._editStrategy.deleteItemAtIndex(index)\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n this._simulateOptionChange(changingOption);\r\n this._itemEventHandler($item, \"onItemDeleted\", deletedActionArgs, {\r\n beforeExecute() {\r\n $item.remove()\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._renderEmptyMessage()\r\n },\r\n deleteItem(itemElement) {\r\n var that = this;\r\n var deferred = Deferred();\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var index = this._editStrategy.getNormalizedIndex(itemElement);\r\n var itemResponseWaitClass = this._itemResponseWaitClass();\r\n if (indexExists(index)) {\r\n this._waitDeletingPrepare($item).done(() => {\r\n $item.addClass(itemResponseWaitClass);\r\n var deletedActionArgs = that._extendActionArgs($item);\r\n that._deleteItemFromDS($item).done(() => {\r\n that._deleteItemElementByIndex(index);\r\n that._afterItemElementDeleted($item, deletedActionArgs);\r\n that._tryRefreshLastPage().done(() => {\r\n deferred.resolveWith(that)\r\n })\r\n }).fail(() => {\r\n $item.removeClass(itemResponseWaitClass);\r\n deferred.rejectWith(that)\r\n })\r\n }).fail(() => {\r\n deferred.rejectWith(that)\r\n })\r\n } else {\r\n deferred.rejectWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reorderItem(itemElement, toItemElement) {\r\n var deferred = Deferred();\r\n var that = this;\r\n var strategy = this._editStrategy;\r\n var $movingItem = strategy.getItemElement(itemElement);\r\n var $destinationItem = strategy.getItemElement(toItemElement);\r\n var movingIndex = strategy.getNormalizedIndex(itemElement);\r\n var destinationIndex = strategy.getNormalizedIndex(toItemElement);\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n var canMoveItems = indexExists(movingIndex) && indexExists(destinationIndex) && movingIndex !== destinationIndex;\r\n if (canMoveItems) {\r\n deferred.resolveWith(this)\r\n } else {\r\n deferred.rejectWith(this)\r\n }\r\n return deferred.promise().done((function() {\r\n $destinationItem[strategy.itemPlacementFunc(movingIndex, destinationIndex)]($movingItem);\r\n strategy.moveItemAtIndexToIndex(movingIndex, destinationIndex);\r\n this._updateIndicesAfterIndex(movingIndex);\r\n that.option(\"selectedItems\", that._getItemsByKeys(that._selection.getSelectedItemKeys(), that._selection.getSelectedItems()));\r\n if (\"items\" === changingOption) {\r\n that._simulateOptionChange(changingOption)\r\n }\r\n that._itemEventHandler($movingItem, \"onItemReordered\", {\r\n fromIndex: strategy.getIndex(movingIndex),\r\n toIndex: strategy.getIndex(destinationIndex)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }))\r\n }\r\n});\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/core/resize_observer.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nvar ResizeObserverMock = {\r\n observe: noop,\r\n unobserve: noop,\r\n disconnect: noop\r\n};\r\nclass ResizeObserverSingleton {\r\n constructor() {\r\n if (!hasWindow() || !window.ResizeObserver) {\r\n return ResizeObserverMock\r\n }\r\n this._callbacksMap = new Map;\r\n this._observer = new window.ResizeObserver(entries => {\r\n entries.forEach(entry => {\r\n var _this$_callbacksMap$g;\r\n null === (_this$_callbacksMap$g = this._callbacksMap.get(entry.target)) || void 0 === _this$_callbacksMap$g ? void 0 : _this$_callbacksMap$g(entry)\r\n })\r\n })\r\n }\r\n observe(element, callback) {\r\n this._callbacksMap.set(element, callback);\r\n this._observer.observe(element)\r\n }\r\n unobserve(element) {\r\n this._callbacksMap.delete(element);\r\n this._observer.unobserve(element)\r\n }\r\n disconnect() {\r\n this._callbacksMap.clear();\r\n this._observer.disconnect()\r\n }\r\n}\r\nvar resizeObserverSingleton = new ResizeObserverSingleton;\r\nexport default resizeObserverSingleton;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_validation_engine.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport errors from \"../../core/errors\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isBoolean,\r\n isDate,\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isPromise,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport numberLocalization from \"../../localization/number\";\r\nvar EMAIL_VALIDATION_REGEX = /^[\\d\\w.+_-]+@[\\d\\w._-]+\\.[\\w]+$/i;\r\nvar STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nclass BaseRuleValidator {\r\n constructor() {\r\n this.NAME = \"base\"\r\n }\r\n defaultMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME))(value)\r\n }\r\n defaultFormattedMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME, \"-formatted\"))(value)\r\n }\r\n _isValueEmpty(value) {\r\n return !rulesValidators.required.validate(value, {})\r\n }\r\n validate(value, rule) {\r\n var valueArray = Array.isArray(value) ? value : [value];\r\n var result = true;\r\n if (valueArray.length) {\r\n valueArray.every(itemValue => {\r\n result = this._validate(itemValue, rule);\r\n return result\r\n })\r\n } else {\r\n result = this._validate(null, rule)\r\n }\r\n return result\r\n }\r\n}\r\nclass RequiredRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"required\"\r\n }\r\n _validate(value, rule) {\r\n if (!isDefined(value)) {\r\n return false\r\n }\r\n if (false === value) {\r\n return false\r\n }\r\n value = String(value);\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n return \"\" !== value\r\n }\r\n}\r\nclass NumericRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"numeric\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n if (rule.useCultureSettings && isString(value)) {\r\n return !isNaN(numberLocalization.parse(value))\r\n }\r\n return isNumeric(value)\r\n }\r\n}\r\nclass RangeRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"range\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validNumber = rulesValidators.numeric.validate(value, rule);\r\n var validValue = isDefined(value) && \"\" !== value;\r\n var number = validNumber ? parseFloat(value) : validValue && value.valueOf();\r\n var {\r\n min: min\r\n } = rule;\r\n var {\r\n max: max\r\n } = rule;\r\n if (!(validNumber || isDate(value)) && !validValue) {\r\n return false\r\n }\r\n if (isDefined(min)) {\r\n if (isDefined(max)) {\r\n return number >= min && number <= max\r\n }\r\n return number >= min\r\n }\r\n if (isDefined(max)) {\r\n return number <= max\r\n }\r\n throw errors.Error(\"E0101\")\r\n }\r\n}\r\nclass StringLengthRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"stringLength\"\r\n }\r\n _validate(value, rule) {\r\n value = String(null !== value && void 0 !== value ? value : \"\");\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.range.validate(value.length, extend({}, rule))\r\n }\r\n}\r\nclass CustomRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"custom\"\r\n }\r\n validate(value, rule) {\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var {\r\n validator: validator\r\n } = rule;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n return rule.validationCallback(params)\r\n }\r\n}\r\nclass AsyncRuleValidator extends CustomRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"async\"\r\n }\r\n validate(value, rule) {\r\n if (!isDefined(rule.reevaluate)) {\r\n extend(rule, {\r\n reevaluate: true\r\n })\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var {\r\n validator: validator\r\n } = rule;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n var callbackResult = rule.validationCallback(params);\r\n if (!isPromise(callbackResult)) {\r\n throw errors.Error(\"E0103\")\r\n }\r\n return this._getWrappedPromise(fromPromise(callbackResult).promise())\r\n }\r\n _getWrappedPromise(promise) {\r\n var deferred = Deferred();\r\n promise.then(res => {\r\n deferred.resolve(res)\r\n }, err => {\r\n var res = {\r\n isValid: false\r\n };\r\n if (isDefined(err)) {\r\n if (isString(err)) {\r\n res.message = err\r\n } else if (isObject(err) && isDefined(err.message) && isString(err.message)) {\r\n res.message = err.message\r\n }\r\n }\r\n deferred.resolve(res)\r\n });\r\n return deferred.promise()\r\n }\r\n}\r\nclass CompareRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"compare\"\r\n }\r\n _validate(value, rule) {\r\n if (!rule.comparisonTarget) {\r\n throw errors.Error(\"E0102\")\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n extend(rule, {\r\n reevaluate: true\r\n });\r\n var otherValue = rule.comparisonTarget();\r\n var type = rule.comparisonType || \"==\";\r\n switch (type) {\r\n case \"==\":\r\n return value == otherValue;\r\n case \"!=\":\r\n return value != otherValue;\r\n case \"===\":\r\n return value === otherValue;\r\n case \"!==\":\r\n return value !== otherValue;\r\n case \">\":\r\n return value > otherValue;\r\n case \">=\":\r\n return value >= otherValue;\r\n case \"<\":\r\n return value < otherValue;\r\n case \"<=\":\r\n return value <= otherValue\r\n }\r\n }\r\n}\r\nclass PatternRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"pattern\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var {\r\n pattern: pattern\r\n } = rule;\r\n if (isString(pattern)) {\r\n pattern = new RegExp(pattern)\r\n }\r\n return pattern.test(value)\r\n }\r\n}\r\nclass EmailRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"email\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.pattern.validate(value, extend({}, rule, {\r\n pattern: EMAIL_VALIDATION_REGEX\r\n }))\r\n }\r\n}\r\nvar rulesValidators = {\r\n required: new RequiredRuleValidator,\r\n numeric: new NumericRuleValidator,\r\n range: new RangeRuleValidator,\r\n stringLength: new StringLengthRuleValidator,\r\n custom: new CustomRuleValidator,\r\n async: new AsyncRuleValidator,\r\n compare: new CompareRuleValidator,\r\n pattern: new PatternRuleValidator,\r\n email: new EmailRuleValidator\r\n};\r\nvar GroupConfig = Class.inherit({\r\n ctor(group, isRemovable) {\r\n this.group = group;\r\n this.validators = [];\r\n this._isRemovable = isRemovable;\r\n this._pendingValidators = [];\r\n this._onValidatorStatusChanged = this._onValidatorStatusChanged.bind(this);\r\n this._resetValidationInfo();\r\n this._eventsStrategy = new EventsStrategy(this)\r\n },\r\n validate() {\r\n var result = {\r\n isValid: true,\r\n brokenRules: [],\r\n validators: [],\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n this._unsubscribeFromAllChangeEvents();\r\n this._pendingValidators = [];\r\n this._resetValidationInfo();\r\n each(this.validators, (_, validator) => {\r\n var validatorResult = validator.validate();\r\n result.isValid = result.isValid && validatorResult.isValid;\r\n if (validatorResult.brokenRules) {\r\n result.brokenRules = result.brokenRules.concat(validatorResult.brokenRules)\r\n }\r\n result.validators.push(validator);\r\n if (validatorResult.status === STATUS.pending) {\r\n this._addPendingValidator(validator)\r\n }\r\n this._subscribeToChangeEvents(validator)\r\n });\r\n if (this._pendingValidators.length) {\r\n result.status = STATUS.pending\r\n } else {\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n this._unsubscribeFromAllChangeEvents();\r\n this._raiseValidatedEvent(result)\r\n }\r\n this._updateValidationInfo(result);\r\n return extend({}, this._validationInfo.result)\r\n },\r\n _subscribeToChangeEvents(validator) {\r\n validator.on(\"validating\", this._onValidatorStatusChanged);\r\n validator.on(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromChangeEvents(validator) {\r\n validator.off(\"validating\", this._onValidatorStatusChanged);\r\n validator.off(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromAllChangeEvents() {\r\n each(this.validators, (_, validator) => {\r\n this._unsubscribeFromChangeEvents(validator)\r\n })\r\n },\r\n _updateValidationInfo(result) {\r\n this._validationInfo.result = result;\r\n if (result.status !== STATUS.pending) {\r\n return\r\n }\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = Deferred();\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n },\r\n _addPendingValidator(validator) {\r\n var foundValidator = grep(this._pendingValidators, val => val === validator)[0];\r\n if (!foundValidator) {\r\n this._pendingValidators.push(validator)\r\n }\r\n },\r\n _removePendingValidator(validator) {\r\n var index = this._pendingValidators.indexOf(validator);\r\n if (index >= 0) {\r\n this._pendingValidators.splice(index, 1)\r\n }\r\n },\r\n _orderBrokenRules(brokenRules) {\r\n var orderedRules = [];\r\n each(this.validators, (_, validator) => {\r\n var foundRules = grep(brokenRules, rule => rule.validator === validator);\r\n if (foundRules.length) {\r\n orderedRules = orderedRules.concat(foundRules)\r\n }\r\n });\r\n return orderedRules\r\n },\r\n _updateBrokenRules(result) {\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n var {\r\n brokenRules: brokenRules\r\n } = this._validationInfo.result;\r\n var rules = grep(brokenRules, rule => rule.validator !== result.validator);\r\n if (result.brokenRules) {\r\n brokenRules = rules.concat(result.brokenRules)\r\n }\r\n this._validationInfo.result.brokenRules = this._orderBrokenRules(brokenRules)\r\n },\r\n _onValidatorStatusChanged(result) {\r\n if (result.status === STATUS.pending) {\r\n this._addPendingValidator(result.validator);\r\n return\r\n }\r\n this._resolveIfComplete(result)\r\n },\r\n _resolveIfComplete(result) {\r\n this._removePendingValidator(result.validator);\r\n this._updateBrokenRules(result);\r\n if (!this._pendingValidators.length) {\r\n this._unsubscribeFromAllChangeEvents();\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n this._validationInfo.result.status = 0 === this._validationInfo.result.brokenRules.length ? STATUS.valid : STATUS.invalid;\r\n this._validationInfo.result.isValid = this._validationInfo.result.status === STATUS.valid;\r\n var res = extend({}, this._validationInfo.result, {\r\n complete: null\r\n });\r\n var {\r\n deferred: deferred\r\n } = this._validationInfo;\r\n this._validationInfo.deferred = null;\r\n this._raiseValidatedEvent(res);\r\n deferred && setTimeout(() => {\r\n deferred.resolve(res)\r\n })\r\n }\r\n },\r\n _raiseValidatedEvent(result) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result])\r\n },\r\n _resetValidationInfo() {\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _synchronizeValidationInfo() {\r\n if (this._validationInfo.result) {\r\n this._validationInfo.result.validators = this.validators\r\n }\r\n },\r\n removeRegisteredValidator(validator) {\r\n var index = this.validators.indexOf(validator);\r\n if (index > -1) {\r\n this.validators.splice(index, 1);\r\n this._synchronizeValidationInfo();\r\n this._resolveIfComplete({\r\n validator: validator\r\n })\r\n }\r\n },\r\n registerValidator(validator) {\r\n if (!this.validators.includes(validator)) {\r\n this.validators.push(validator);\r\n this._synchronizeValidationInfo()\r\n }\r\n },\r\n reset() {\r\n each(this.validators, (_, validator) => {\r\n validator.reset()\r\n });\r\n this._pendingValidators = [];\r\n this._resetValidationInfo()\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nvar ValidationEngine = {\r\n groups: [],\r\n getGroupConfig(group) {\r\n var result = grep(this.groups, config => config.group === group);\r\n if (result.length) {\r\n return result[0]\r\n }\r\n },\r\n findGroup($element, model) {\r\n var _a, _b;\r\n var hasValidationGroup = null === (_b = null === (_a = $element.data()) || void 0 === _a ? void 0 : _a.dxComponents) || void 0 === _b ? void 0 : _b.includes(\"dxValidationGroup\");\r\n var validationGroup = hasValidationGroup && $element.dxValidationGroup(\"instance\");\r\n if (validationGroup) {\r\n return validationGroup\r\n }\r\n var $dxGroup = $element.parents(\".dx-validationgroup\").first();\r\n if ($dxGroup.length) {\r\n return $dxGroup.dxValidationGroup(\"instance\")\r\n }\r\n return model\r\n },\r\n initGroups() {\r\n this.groups = [];\r\n this.addGroup(void 0, false)\r\n },\r\n addGroup(group) {\r\n var isRemovable = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;\r\n var config = this.getGroupConfig(group);\r\n if (!config) {\r\n config = new GroupConfig(group, isRemovable);\r\n this.groups.push(config)\r\n }\r\n return config\r\n },\r\n removeGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n var index = this.groups.indexOf(config);\r\n if (index > -1) {\r\n this.groups.splice(index, 1)\r\n }\r\n return config\r\n },\r\n _setDefaultMessage(info) {\r\n var {\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n } = info;\r\n if (!isDefined(rule.message)) {\r\n if (validator.defaultFormattedMessage && isDefined(name)) {\r\n rule.message = validator.defaultFormattedMessage(name)\r\n } else {\r\n rule.message = validator.defaultMessage()\r\n }\r\n }\r\n },\r\n _addBrokenRule(info) {\r\n var {\r\n result: result,\r\n rule: rule\r\n } = info;\r\n if (!result.brokenRule) {\r\n result.brokenRule = rule\r\n }\r\n if (!result.brokenRules) {\r\n result.brokenRules = []\r\n }\r\n result.brokenRules.push(rule)\r\n },\r\n validate(value, rules, name) {\r\n var _a;\r\n var result = {\r\n name: name,\r\n value: value,\r\n brokenRule: null,\r\n brokenRules: null,\r\n isValid: true,\r\n validationRules: rules,\r\n pendingRules: null,\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n var validator = null === (_a = null === rules || void 0 === rules ? void 0 : rules[0]) || void 0 === _a ? void 0 : _a.validator;\r\n var asyncRuleItems = [];\r\n each(rules || [], (_, rule) => {\r\n var ruleValidator = rulesValidators[rule.type];\r\n var ruleValidationResult;\r\n if (ruleValidator) {\r\n if (isDefined(rule.isValid) && rule.value === value && !rule.reevaluate) {\r\n if (!rule.isValid) {\r\n result.isValid = false;\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n });\r\n return false\r\n }\r\n return true\r\n }\r\n rule.value = value;\r\n if (\"async\" === rule.type) {\r\n asyncRuleItems.push({\r\n rule: rule,\r\n ruleValidator: ruleValidator\r\n });\r\n return true\r\n }\r\n ruleValidationResult = ruleValidator.validate(value, rule);\r\n rule.isValid = ruleValidationResult;\r\n if (!ruleValidationResult) {\r\n result.isValid = false;\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: ruleValidator,\r\n name: name\r\n });\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n if (!rule.isValid) {\r\n return false\r\n }\r\n } else {\r\n throw errors.Error(\"E0100\")\r\n }\r\n });\r\n if (result.isValid && !result.brokenRules && asyncRuleItems.length) {\r\n result = this._validateAsyncRules({\r\n value: value,\r\n items: asyncRuleItems,\r\n result: result,\r\n name: name\r\n })\r\n }\r\n this._synchronizeGroupValidationInfo(validator, result);\r\n result.status = result.pendingRules ? STATUS.pending : result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n _synchronizeGroupValidationInfo(validator, result) {\r\n var _a;\r\n if (!validator) {\r\n return\r\n }\r\n var groupConfig = ValidationEngine.getGroupConfig(validator._validationGroup);\r\n groupConfig._updateBrokenRules.call(groupConfig, {\r\n validator: validator,\r\n brokenRules: null !== (_a = result.brokenRules) && void 0 !== _a ? _a : []\r\n })\r\n },\r\n _validateAsyncRules(_ref) {\r\n var {\r\n result: result,\r\n value: value,\r\n items: items,\r\n name: name\r\n } = _ref;\r\n var asyncResults = [];\r\n each(items, (_, item) => {\r\n var validateResult = item.ruleValidator.validate(value, item.rule);\r\n if (!isPromise(validateResult)) {\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: this._getPatchedRuleResult(validateResult),\r\n validator: item.ruleValidator,\r\n name: name\r\n })\r\n } else {\r\n if (!result.pendingRules) {\r\n result.pendingRules = []\r\n }\r\n result.pendingRules.push(item.rule);\r\n var asyncResult = validateResult.then(res => {\r\n var ruleResult = this._getPatchedRuleResult(res);\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: ruleResult,\r\n validator: item.ruleValidator,\r\n name: name\r\n });\r\n return ruleResult\r\n });\r\n asyncResults.push(asyncResult)\r\n }\r\n });\r\n if (asyncResults.length) {\r\n result.complete = Promise.all(asyncResults).then(values => this._getAsyncRulesResult({\r\n result: result,\r\n values: values\r\n }))\r\n }\r\n return result\r\n },\r\n _updateRuleConfig(_ref2) {\r\n var {\r\n rule: rule,\r\n ruleResult: ruleResult,\r\n validator: validator,\r\n name: name\r\n } = _ref2;\r\n rule.isValid = ruleResult.isValid;\r\n if (!ruleResult.isValid) {\r\n if (isDefined(ruleResult.message) && isString(ruleResult.message) && ruleResult.message.length) {\r\n rule.message = ruleResult.message\r\n } else {\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n })\r\n }\r\n }\r\n },\r\n _getPatchedRuleResult(ruleResult) {\r\n var result;\r\n if (isObject(ruleResult)) {\r\n result = extend({}, ruleResult);\r\n if (!isDefined(result.isValid)) {\r\n result.isValid = true\r\n }\r\n } else {\r\n result = {\r\n isValid: isBoolean(ruleResult) ? ruleResult : true\r\n }\r\n }\r\n return result\r\n },\r\n _getAsyncRulesResult(_ref3) {\r\n var {\r\n values: values,\r\n result: result\r\n } = _ref3;\r\n each(values, (index, val) => {\r\n if (false === val.isValid) {\r\n result.isValid = val.isValid;\r\n var rule = result.pendingRules[index];\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n });\r\n result.pendingRules = null;\r\n result.complete = null;\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n registerValidatorInGroup(group, validator) {\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n groupConfig.registerValidator.call(groupConfig, validator)\r\n },\r\n removeRegisteredValidator(group, validator) {\r\n var config = ValidationEngine.getGroupConfig(group);\r\n if (config) {\r\n config.removeRegisteredValidator.call(config, validator);\r\n var validatorsInGroup = config.validators;\r\n var isRemovable = config._isRemovable;\r\n var shouldRemoveGroup = 0 === validatorsInGroup.length && isRemovable;\r\n if (shouldRemoveGroup) {\r\n this.removeGroup(group)\r\n }\r\n }\r\n },\r\n initValidationOptions(options) {\r\n var initedOptions = {};\r\n if (options) {\r\n [\"isValid\", \"validationStatus\", \"validationError\", \"validationErrors\"].forEach(prop => {\r\n if (prop in options) {\r\n extend(initedOptions, this.synchronizeValidationOptions({\r\n name: prop,\r\n value: options[prop]\r\n }, options))\r\n }\r\n })\r\n }\r\n return initedOptions\r\n },\r\n synchronizeValidationOptions(_ref4, options) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref4;\r\n switch (name) {\r\n case \"validationStatus\":\r\n var isValid = value === STATUS.valid || value === STATUS.pending;\r\n return options.isValid !== isValid ? {\r\n isValid: isValid\r\n } : {};\r\n case \"isValid\":\r\n var {\r\n validationStatus: validationStatus\r\n } = options;\r\n var newStatus = validationStatus;\r\n if (value && validationStatus === STATUS.invalid) {\r\n newStatus = STATUS.valid\r\n } else if (!value && validationStatus !== STATUS.invalid) {\r\n newStatus = STATUS.invalid\r\n }\r\n return newStatus !== validationStatus ? {\r\n validationStatus: newStatus\r\n } : {};\r\n case \"validationErrors\":\r\n var validationError = !value || !value.length ? null : value[0];\r\n return options.validationError !== validationError ? {\r\n validationError: validationError\r\n } : {};\r\n case \"validationError\":\r\n var {\r\n validationErrors: validationErrors\r\n } = options;\r\n if (!value && validationErrors) {\r\n return {\r\n validationErrors: null\r\n }\r\n }\r\n if (value && !validationErrors) {\r\n return {\r\n validationErrors: [value]\r\n }\r\n }\r\n if (value && validationErrors && value !== validationErrors[0]) {\r\n validationErrors[0] = value;\r\n return {\r\n validationErrors: validationErrors.slice()\r\n }\r\n }\r\n }\r\n return {}\r\n },\r\n validateGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.validate()\r\n },\r\n resetGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.reset()\r\n }\r\n};\r\nValidationEngine.initGroups();\r\nexport default ValidationEngine;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_validation_message.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n encodeHtml\r\n} from \"../../core/utils/string\";\r\nimport Overlay from \"../../ui/overlay/ui.overlay\";\r\nvar INVALID_MESSAGE = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar INVALID_MESSAGE_ALWAYS = \"dx-invalid-message-always\";\r\nvar INVALID_MESSAGE_CONTENT = \"dx-invalid-message-content\";\r\nvar VALIDATION_MESSAGE_MIN_WIDTH = 100;\r\nvar ValidationMessage = Overlay.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n integrationOptions: {},\r\n templatesRenderAsynchronously: false,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n hideOnOutsideClick: false,\r\n animation: null,\r\n visible: true,\r\n propagateOutsideClick: true,\r\n _checkParentVisibility: false,\r\n rtlEnabled: false,\r\n contentTemplate: this._renderInnerHtml,\r\n maxWidth: \"100%\",\r\n container: this.$element(),\r\n target: void 0,\r\n mode: \"auto\",\r\n validationErrors: void 0,\r\n preventScrollEvents: false,\r\n positionSide: \"top\",\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n contentId: void 0\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this.updateMaxWidth();\r\n this._updatePosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._ensureMessageNotEmpty();\r\n this._updatePositionByTarget();\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _updatePositionByTarget() {\r\n var {\r\n target: target\r\n } = this.option();\r\n this.option(\"position.of\", target)\r\n },\r\n _ensureMessageNotEmpty() {\r\n this._textMarkup = this._getTextMarkup();\r\n var shouldShowMessage = this.option(\"visible\") && this._textMarkup;\r\n this._toggleVisibilityClasses(shouldShowMessage)\r\n },\r\n _toggleVisibilityClasses(visible) {\r\n if (visible) {\r\n this.$element().addClass(INVALID_MESSAGE);\r\n this.$wrapper().addClass(INVALID_MESSAGE)\r\n } else {\r\n this.$element().removeClass(INVALID_MESSAGE);\r\n this.$wrapper().removeClass(INVALID_MESSAGE)\r\n }\r\n },\r\n _updateContentId() {\r\n var {\r\n container: container,\r\n contentId: contentId\r\n } = this.option();\r\n var id = null !== contentId && void 0 !== contentId ? contentId : $(container).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", id)\r\n },\r\n _renderInnerHtml(element) {\r\n var $element = element && $(element);\r\n null === $element || void 0 === $element ? void 0 : $element.html(this._textMarkup)\r\n },\r\n _getTextMarkup() {\r\n var _a;\r\n var validationErrors = null !== (_a = this.option(\"validationErrors\")) && void 0 !== _a ? _a : [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var _a;\r\n var separator = validationErrorMessage ? \"
\" : \"\";\r\n validationErrorMessage += separator + encodeHtml(null !== (_a = null === err || void 0 === err ? void 0 : err.message) && void 0 !== _a ? _a : \"\")\r\n });\r\n return validationErrorMessage\r\n },\r\n _toggleModeClass() {\r\n var mode = this.option(\"mode\");\r\n this.$wrapper().toggleClass(INVALID_MESSAGE_AUTO, \"auto\" === mode).toggleClass(INVALID_MESSAGE_ALWAYS, \"always\" === mode)\r\n },\r\n updateMaxWidth() {\r\n var target = this.option(\"target\");\r\n var targetWidth = getOuterWidth(target);\r\n var maxWidth = \"100%\";\r\n if (targetWidth) {\r\n maxWidth = Math.max(targetWidth, VALIDATION_MESSAGE_MIN_WIDTH)\r\n }\r\n this.option({\r\n maxWidth: maxWidth\r\n })\r\n },\r\n _getPositionsArray(positionSide, rtlSide) {\r\n switch (positionSide) {\r\n case \"top\":\r\n return [\"\".concat(rtlSide, \" bottom\"), \"\".concat(rtlSide, \" top\")];\r\n case \"left\":\r\n return [\"right\", \"left\"];\r\n case \"right\":\r\n return [\"left\", \"right\"];\r\n default:\r\n return [\"\".concat(rtlSide, \" top\"), \"\".concat(rtlSide, \" bottom\")]\r\n }\r\n },\r\n _updatePosition() {\r\n var {\r\n positionSide: positionSide,\r\n rtlEnabled: rtlEnabled,\r\n offset: componentOffset,\r\n boundary: boundary\r\n } = this.option();\r\n var rtlSide = getDefaultAlignment(rtlEnabled);\r\n var positions = this._getPositionsArray(positionSide, rtlSide);\r\n var offset = _extends({}, componentOffset);\r\n this.$element().addClass(\"dx-invalid-message-\".concat(positionSide));\r\n if (rtlEnabled && \"left\" !== positionSide && \"right\" !== positionSide) {\r\n offset.h = -offset.h\r\n }\r\n if (\"top\" === positionSide) {\r\n offset.v = -offset.v\r\n }\r\n if (\"left\" === positionSide) {\r\n offset.h = -offset.h\r\n }\r\n this.option(\"position\", {\r\n offset: offset,\r\n boundary: boundary,\r\n my: positions[0],\r\n at: positions[1],\r\n collision: \"none flip\"\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"target\":\r\n this._updatePositionByTarget();\r\n this.updateMaxWidth();\r\n this.callBase(args);\r\n break;\r\n case \"boundary\":\r\n this.option(\"position.boundary\", value);\r\n break;\r\n case \"mode\":\r\n this._toggleModeClass(value);\r\n break;\r\n case \"rtlEnabled\":\r\n case \"offset\":\r\n case \"positionSide\":\r\n this.$element().removeClass(\"dx-invalid-message-\".concat(previousValue));\r\n this._updatePosition();\r\n break;\r\n case \"container\":\r\n this._updateContentId();\r\n this.callBase(args);\r\n break;\r\n case \"contentId\":\r\n this._updateContentId();\r\n break;\r\n case \"validationErrors\":\r\n this._ensureMessageNotEmpty();\r\n this._renderInnerHtml(this.$content());\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxValidationMessage\", ValidationMessage);\r\nexport default ValidationMessage;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/editor/m_editor.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data\r\n} from \"../../../core/element_data\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport EventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport ValidationEngine from \"../../../ui/validation_engine\";\r\nimport ValidationMessage from \"../../../ui/validation_message\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar READONLY_NAMESPACE = \"editorReadOnly\";\r\nvar ALLOWED_STYLING_MODES = [\"outlined\", \"filled\", \"underlined\"];\r\nvar VALIDATION_MESSAGE_KEYS_MAP = {\r\n validationMessageMode: \"mode\",\r\n validationMessagePosition: \"positionSide\",\r\n validationMessageOffset: \"offset\",\r\n validationBoundary: \"boundary\"\r\n};\r\nvar Editor = Widget.inherit({\r\n ctor() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = Callbacks();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement(element) {\r\n this.callBase(element);\r\n var $element = this.$element();\r\n if ($element) {\r\n data($element[0], VALIDATION_TARGET, this)\r\n }\r\n },\r\n _initOptions(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _init() {\r\n this._initialValue = this.option(\"value\");\r\n this.callBase();\r\n this._options.cache(\"validationTooltipOptions\", this.option(\"validationTooltipOptions\"));\r\n var $element = this.$element();\r\n $element.addClass(DX_INVALID_BADGE_CLASS)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n name: \"\",\r\n onValueChanged: null,\r\n readOnly: false,\r\n isValid: true,\r\n validationError: null,\r\n validationErrors: null,\r\n validationStatus: VALIDATION_STATUS_VALID,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationBoundary: void 0,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {},\r\n _showValidationMessage: true,\r\n isDirty: false\r\n })\r\n },\r\n _attachKeyboardEvents() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup() {\r\n var _a;\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState();\r\n null === (_a = this.option(\"_onMarkupRendered\")) || void 0 === _a ? void 0 : _a()\r\n },\r\n _raiseValueChangeAction(value, previousValue) {\r\n if (!this._valueChangeAction) {\r\n this._createValueChangeAction()\r\n }\r\n this._valueChangeAction(this._valueChangeArgs(value, previousValue))\r\n },\r\n _valueChangeArgs(value, previousValue) {\r\n return {\r\n value: value,\r\n previousValue: previousValue,\r\n event: this._valueChangeEventInstance\r\n }\r\n },\r\n _saveValueChangeEvent(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler(e) {\r\n var _a;\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var $validationMessageWrapper = null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.$wrapper();\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this.showValidationMessageTimeout = setTimeout(() => null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO), 150)\r\n }\r\n return this.callBase(e)\r\n },\r\n _canValueBeChangedByClick: () => false,\r\n _getStylingModePrefix: () => \"dx-editor-\",\r\n _renderStylingMode() {\r\n var optionValue = this.option(\"stylingMode\");\r\n var prefix = this._getStylingModePrefix();\r\n var allowedStylingClasses = ALLOWED_STYLING_MODES.map(mode => prefix + mode);\r\n allowedStylingClasses.forEach(className => this.$element().removeClass(className));\r\n var stylingModeClass = prefix + optionValue;\r\n if (!allowedStylingClasses.includes(stylingModeClass)) {\r\n var defaultOptionValue = this._getDefaultOptions().stylingMode;\r\n var platformOptionValue = this._convertRulesToOptions(this._defaultOptionsRules()).stylingMode;\r\n stylingModeClass = prefix + (platformOptionValue || defaultOptionValue)\r\n }\r\n this.$element().addClass(stylingModeClass)\r\n },\r\n _getValidationErrors() {\r\n var validationErrors = this.option(\"validationErrors\");\r\n if (!validationErrors && this.option(\"validationError\")) {\r\n validationErrors = [this.option(\"validationError\")]\r\n }\r\n return validationErrors\r\n },\r\n _disposeValidationMessage() {\r\n if (this._$validationMessage) {\r\n this._$validationMessage.remove();\r\n this.setAria(\"describedby\", null);\r\n this._$validationMessage = void 0;\r\n this._validationMessage = void 0\r\n }\r\n },\r\n _toggleValidationClasses(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState() {\r\n var isValid = this.option(\"isValid\") && this.option(\"validationStatus\") !== VALIDATION_STATUS_INVALID;\r\n var validationErrors = this._getValidationErrors();\r\n var $element = this.$element();\r\n this._toggleValidationClasses(!isValid);\r\n if (!hasWindow() || false === this.option(\"_showValidationMessage\")) {\r\n return\r\n }\r\n this._disposeValidationMessage();\r\n if (!isValid && validationErrors) {\r\n var {\r\n validationMessageMode: validationMessageMode,\r\n validationMessageOffset: validationMessageOffset,\r\n validationBoundary: validationBoundary,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n this._$validationMessage = $(\"
\").appendTo($element);\r\n var validationMessageContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"describedby\", validationMessageContentId);\r\n this._validationMessage = new ValidationMessage(this._$validationMessage, extend({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n visualContainer: $element,\r\n mode: validationMessageMode,\r\n positionSide: this._getValidationMessagePosition(),\r\n offset: validationMessageOffset,\r\n boundary: validationBoundary,\r\n contentId: validationMessageContentId\r\n }, this._options.cache(\"validationTooltipOptions\")));\r\n this._bindInnerWidgetOptions(this._validationMessage, \"validationTooltipOptions\")\r\n }\r\n },\r\n _getValidationMessagePosition() {\r\n return this.option(\"validationMessagePosition\")\r\n },\r\n _getValidationMessageTarget() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._toggleBackspaceHandler(readOnly);\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly);\r\n this.setAria(\"readonly\", readOnly || void 0)\r\n },\r\n _toggleBackspaceHandler(isReadOnly) {\r\n var $eventTarget = this._keyboardEventBindingTarget();\r\n var eventName = addNamespace(\"keydown\", READONLY_NAMESPACE);\r\n EventsEngine.off($eventTarget, eventName);\r\n if (isReadOnly) {\r\n EventsEngine.on($eventTarget, eventName, e => {\r\n if (\"backspace\" === normalizeKeyName(e)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _dispose() {\r\n var element = this.$element()[0];\r\n data(element, VALIDATION_TARGET, null);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this._disposeValidationMessage();\r\n this.callBase()\r\n },\r\n _setSubmitElementName(name) {\r\n var $submitElement = this._getSubmitElement();\r\n if (!$submitElement) {\r\n return\r\n }\r\n if (name.length > 0) {\r\n $submitElement.attr(\"name\", name)\r\n } else {\r\n $submitElement.removeAttr(\"name\")\r\n }\r\n },\r\n _getSubmitElement: () => null,\r\n _setValidationMessageOption(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var _a;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.option(optionKey, value)\r\n },\r\n _hasActiveElement: noop,\r\n _optionChanged(args) {\r\n var _a;\r\n switch (args.name) {\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"readOnly\":\r\n this._toggleReadOnlyState();\r\n this._refreshFocusState();\r\n break;\r\n case \"value\":\r\n if (args.value != args.previousValue) {\r\n this.option(\"isDirty\", this._initialValue !== args.value);\r\n this.validationRequest.fire({\r\n value: args.value,\r\n editor: this\r\n })\r\n }\r\n if (!this._valueChangeActionSuppressed) {\r\n this._raiseValueChangeAction(args.value, args.previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.updateMaxWidth();\r\n break;\r\n case \"name\":\r\n this._setSubmitElementName(args.value);\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n this._renderValidationState();\r\n break;\r\n case \"validationBoundary\":\r\n case \"validationMessageMode\":\r\n case \"validationMessagePosition\":\r\n case \"validationMessageOffset\":\r\n this._setValidationMessageOption(args);\r\n break;\r\n case \"rtlEnabled\":\r\n this._setValidationMessageOption(args);\r\n this.callBase(args);\r\n break;\r\n case \"validationTooltipOptions\":\r\n this._innerWidgetOptionChanged(this._validationMessage, args);\r\n break;\r\n case \"_showValidationMessage\":\r\n case \"isDirty\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetToInitialValue() {\r\n this.option(\"value\", this._initialValue)\r\n },\r\n blur() {\r\n if (this._hasActiveElement()) {\r\n resetActiveElement()\r\n }\r\n },\r\n clear() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n },\r\n reset() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this._initialValue = value\r\n }\r\n this._resetToInitialValue();\r\n this.option(\"isDirty\", false);\r\n this.option(\"isValid\", true)\r\n }\r\n});\r\nEditor.isEditor = instance => instance instanceof Editor;\r\nexport default Editor;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/texteditor_button_collection/m_button.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nexport default class TextEditorButton {\r\n constructor(name, editor, options) {\r\n this.instance = null;\r\n this.$container = null;\r\n this.$placeMarker = null;\r\n this.editor = editor;\r\n this.name = name;\r\n this.options = options || {}\r\n }\r\n _addPlaceMarker($container) {\r\n this.$placeMarker = $(\"
\").appendTo($container)\r\n }\r\n _addToContainer($element) {\r\n var {\r\n $placeMarker: $placeMarker,\r\n $container: $container\r\n } = this;\r\n $placeMarker ? $placeMarker.replaceWith($element) : $element.appendTo($container)\r\n }\r\n _attachEvents(instance, $element) {\r\n throw \"Not implemented\"\r\n }\r\n _create() {\r\n throw \"Not implemented\"\r\n }\r\n _isRendered() {\r\n return !!this.instance\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor,\r\n options: options\r\n } = this;\r\n return options.visible || !editor.option(\"readOnly\")\r\n }\r\n _isDisabled() {\r\n throw \"Not implemented\"\r\n }\r\n _shouldRender() {\r\n return this._isVisible() && !this._isRendered()\r\n }\r\n dispose() {\r\n var {\r\n instance: instance,\r\n $placeMarker: $placeMarker\r\n } = this;\r\n if (instance) {\r\n instance.dispose ? instance.dispose() : instance.remove();\r\n this.instance = null\r\n }\r\n $placeMarker && $placeMarker.remove()\r\n }\r\n render() {\r\n var $container = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$container;\r\n this.$container = $container;\r\n if (this._isVisible()) {\r\n var {\r\n instance: instance,\r\n $element: $element\r\n } = this._create();\r\n this.instance = instance;\r\n this._attachEvents(instance, $element)\r\n } else {\r\n this._addPlaceMarker($container)\r\n }\r\n }\r\n update() {\r\n if (this._shouldRender()) {\r\n this.render()\r\n }\r\n return !!this.instance\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.clear.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n name as click\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport pointer from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport TextEditorButton from \"../../ui/text_box/texteditor_button_collection/m_button\";\r\nvar pointerDown = pointer.down;\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar TEXTEDITOR_CLEAR_ICON_CLASS = \"dx-icon-clear\";\r\nvar TEXTEDITOR_ICON_CLASS = \"dx-icon\";\r\nvar TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS = \"dx-show-clear-button\";\r\nexport default class ClearButton extends TextEditorButton {\r\n _create() {\r\n var $element = $(\"\").addClass(TEXTEDITOR_CLEAR_BUTTON_CLASS).append($(\"\").addClass(TEXTEDITOR_ICON_CLASS).addClass(TEXTEDITOR_CLEAR_ICON_CLASS));\r\n this._addToContainer($element);\r\n this.update(true);\r\n return {\r\n instance: $element,\r\n $element: $element\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor._isClearButtonVisible()\r\n }\r\n _attachEvents(instance, $button) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var editorName = editor.NAME;\r\n eventsEngine.on($button, addNamespace(pointerDown, editorName), e => {\r\n e.preventDefault();\r\n if (\"mouse\" !== e.pointerType) {\r\n editor._clearValueHandler(e)\r\n }\r\n });\r\n eventsEngine.on($button, addNamespace(click, editorName), e => editor._clearValueHandler(e))\r\n }\r\n _legacyRender($editor, isVisible) {\r\n $editor.toggleClass(TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS, isVisible)\r\n }\r\n update() {\r\n var rendered = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n !rendered && super.update();\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n instance && instance.toggleClass(STATE_INVISIBLE_CLASS, !isVisible);\r\n this._legacyRender($editor, isVisible)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.label.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n name as click\r\n} from \"../../../events/click\";\r\nimport {\r\n active\r\n} from \"../../../events/core/emitter.feedback\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start as hoverStart\r\n} from \"../../../events/hover\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nvar TEXTEDITOR_LABEL_CLASS = \"dx-texteditor-label\";\r\nvar TEXTEDITOR_WITH_LABEL_CLASS = \"dx-texteditor-with-label\";\r\nvar TEXTEDITOR_LABEL_OUTSIDE_CLASS = \"dx-texteditor-label-outside\";\r\nvar TEXTEDITOR_WITH_FLOATING_LABEL_CLASS = \"dx-texteditor-with-floating-label\";\r\nvar TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS = \"dx-texteditor-with-before-buttons\";\r\nvar LABEL_BEFORE_CLASS = \"dx-label-before\";\r\nvar LABEL_CLASS = \"dx-label\";\r\nvar LABEL_AFTER_CLASS = \"dx-label-after\";\r\nclass TextEditorLabel {\r\n constructor(props) {\r\n this.NAME = \"dxLabel\";\r\n this._props = props;\r\n this._id = \"\".concat(TEXTEDITOR_LABEL_CLASS, \"-\").concat(new Guid);\r\n this._render();\r\n this._toggleMarkupVisibility()\r\n }\r\n _isVisible() {\r\n return !!this._props.text && \"hidden\" !== this._props.mode\r\n }\r\n _render() {\r\n this._$before = $(\"
\").addClass(LABEL_BEFORE_CLASS);\r\n this._$labelSpan = $(\"\");\r\n this._$label = $(\"
\").addClass(LABEL_CLASS).append(this._$labelSpan);\r\n this._$after = $(\"
\").addClass(LABEL_AFTER_CLASS);\r\n this._$root = $(\"
\").addClass(TEXTEDITOR_LABEL_CLASS).attr(\"id\", this._id).append(this._$before).append(this._$label).append(this._$after);\r\n this._updateMark();\r\n this._updateText();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n _toggleMarkupVisibility() {\r\n var visible = this._isVisible();\r\n this._updateEditorBeforeButtonsClass(visible);\r\n this._updateEditorLabelClass(visible);\r\n visible ? this._$root.appendTo(this._props.$editor) : this._$root.detach();\r\n this._attachEvents()\r\n }\r\n _attachEvents() {\r\n var clickEventName = addNamespace(click, this.NAME);\r\n var hoverStartEventName = addNamespace(hoverStart, this.NAME);\r\n var activeEventName = addNamespace(active, this.NAME);\r\n eventsEngine.off(this._$labelSpan, clickEventName);\r\n eventsEngine.off(this._$labelSpan, hoverStartEventName);\r\n eventsEngine.off(this._$labelSpan, activeEventName);\r\n if (this._isVisible() && this._isOutsideMode()) {\r\n eventsEngine.on(this._$labelSpan, clickEventName, e => {\r\n var selectedText = getWindow().getSelection().toString();\r\n if (\"\" === selectedText) {\r\n this._props.onClickHandler();\r\n e.preventDefault()\r\n }\r\n });\r\n eventsEngine.on(this._$labelSpan, hoverStartEventName, e => {\r\n this._props.onHoverHandler(e)\r\n });\r\n eventsEngine.on(this._$labelSpan, activeEventName, e => {\r\n this._props.onActiveHandler(e)\r\n })\r\n }\r\n }\r\n _updateEditorLabelClass(visible) {\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_FLOATING_LABEL_CLASS).removeClass(TEXTEDITOR_LABEL_OUTSIDE_CLASS).removeClass(TEXTEDITOR_WITH_LABEL_CLASS);\r\n if (visible) {\r\n var labelClass = \"floating\" === this._props.mode ? TEXTEDITOR_WITH_FLOATING_LABEL_CLASS : TEXTEDITOR_WITH_LABEL_CLASS;\r\n this._props.$editor.addClass(labelClass);\r\n if (this._isOutsideMode()) {\r\n this._props.$editor.addClass(TEXTEDITOR_LABEL_OUTSIDE_CLASS)\r\n }\r\n }\r\n }\r\n _isOutsideMode() {\r\n return \"outside\" === this._props.mode\r\n }\r\n _updateEditorBeforeButtonsClass() {\r\n var visible = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._isVisible();\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS);\r\n if (visible) {\r\n var beforeButtonsClass = this._props.containsButtonsBefore ? TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS : \"\";\r\n this._props.$editor.addClass(beforeButtonsClass)\r\n }\r\n }\r\n _updateMark() {\r\n this._$labelSpan.attr(\"data-mark\", this._props.mark)\r\n }\r\n _updateText() {\r\n this._$labelSpan.text(this._props.text)\r\n }\r\n _updateBeforeWidth() {\r\n var _a;\r\n if (this._isVisible()) {\r\n var width = null !== (_a = this._props.beforeWidth) && void 0 !== _a ? _a : this._props.getBeforeWidth();\r\n this._$before.css({\r\n width: width\r\n });\r\n this._updateLabelTransform()\r\n }\r\n }\r\n _updateLabelTransform() {\r\n var offset = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n this._$labelSpan.css(\"transform\", \"\");\r\n if (this._isVisible() && this._isOutsideMode()) {\r\n var sign = this._props.rtlEnabled ? 1 : -1;\r\n var labelTranslateX = sign * (getWidth(this._$before) + offset);\r\n this._$labelSpan.css(\"transform\", \"translateX(\".concat(labelTranslateX, \"px)\"))\r\n }\r\n }\r\n _updateMaxWidth() {\r\n var _a;\r\n if (this._isVisible() && !this._isOutsideMode()) {\r\n var maxWidth = null !== (_a = this._props.containerWidth) && void 0 !== _a ? _a : this._props.getContainerWidth();\r\n this._$label.css({\r\n maxWidth: maxWidth\r\n })\r\n }\r\n }\r\n $element() {\r\n return this._$root\r\n }\r\n isVisible() {\r\n return this._isVisible()\r\n }\r\n getId() {\r\n if (this._isVisible()) {\r\n return this._id\r\n }\r\n }\r\n updateMode(mode) {\r\n this._props.mode = mode;\r\n this._toggleMarkupVisibility();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n updateText(text) {\r\n this._props.text = text;\r\n this._updateText();\r\n this._toggleMarkupVisibility();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n updateMark(mark) {\r\n this._props.mark = mark;\r\n this._updateMark()\r\n }\r\n updateContainsButtonsBefore(containsButtonsBefore) {\r\n this._props.containsButtonsBefore = containsButtonsBefore;\r\n this._updateEditorBeforeButtonsClass()\r\n }\r\n updateBeforeWidth(beforeWidth) {\r\n this._props.beforeWidth = beforeWidth;\r\n this._updateBeforeWidth()\r\n }\r\n updateMaxWidth(containerWidth) {\r\n this._props.containerWidth = containerWidth;\r\n this._updateMaxWidth()\r\n }\r\n}\r\nexport {\r\n TextEditorLabel\r\n};\r\n","var isArray = Array.isArray;\nfunction isStringOrNumber(o) {\n var type = typeof o;\n return type === 'string' || type === 'number';\n}\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nfunction isFunction(o) {\n return typeof o === 'function';\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isNumber(o) {\n return typeof o === 'number';\n}\nfunction isNull(o) {\n return o === null;\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\nfunction combineFrom(first, second) {\n var out = {};\n if (first) {\n for (var key in first) {\n out[key] = first[key];\n }\n }\n if (second) {\n for (var key$1 in second) {\n out[key$1] = second[key$1];\n }\n }\n return out;\n}\n\n/**\n * Links given data to event as first parameter\n * @param {*} data data to be linked, it will be available in function as first parameter\n * @param {Function} event Function to be called when event occurs\n * @returns {{data: *, event: Function}}\n */\nfunction linkEvent(data, event) {\n if (isFunction(event)) {\n return { data: data, event: event };\n }\n return null; // Return null when event is invalid, to avoid creating unnecessary event handlers\n}\n// object.event should always be function, otherwise its badly created object.\nfunction isLinkEventObject(o) {\n return !isNull(o) && typeof o === 'object';\n}\n\n// We need EMPTY_OBJ defined in one place.\n// Its used for comparison so we cant inline it into shared\nvar EMPTY_OBJ = {};\nvar Fragment = '$F';\nfunction normalizeEventName(name) {\n return name.substr(2).toLowerCase();\n}\nfunction appendChild(parentDOM, dom) {\n parentDOM.appendChild(dom);\n}\nfunction insertOrAppend(parentDOM, newNode, nextNode) {\n if (isNull(nextNode)) {\n appendChild(parentDOM, newNode);\n }\n else {\n parentDOM.insertBefore(newNode, nextNode);\n }\n}\nfunction documentCreateElement(tag, isSVG) {\n if (isSVG) {\n return document.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n return document.createElement(tag);\n}\nfunction replaceChild(parentDOM, newDom, lastDom) {\n parentDOM.replaceChild(newDom, lastDom);\n}\nfunction removeChild(parentDOM, childNode) {\n parentDOM.removeChild(childNode);\n}\nfunction callAll(arrayFn) {\n for (var i = 0; i < arrayFn.length; i++) {\n arrayFn[i]();\n }\n}\nfunction findChildVNode(vNode, startEdge, flags) {\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n return children.$LI;\n }\n if (flags & 8192 /* Fragment */) {\n return vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[startEdge ? 0 : children.length - 1];\n }\n return children;\n}\nfunction findDOMfromVNode(vNode, startEdge) {\n var flags;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n vNode = findChildVNode(vNode, startEdge, flags);\n }\n return null;\n}\nfunction removeVNodeDOM(vNode, parentDOM) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n removeChild(parentDOM, vNode.dom);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n removeVNodeDOM(children[i], parentDOM);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction moveVNodeDOM(vNode, parentDOM, nextNode) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n insertOrAppend(parentDOM, vNode.dom, nextNode);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n moveVNodeDOM(children[i], parentDOM, nextNode);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction createDerivedState(instance, nextProps, state) {\n if (instance.constructor.getDerivedStateFromProps) {\n return combineFrom(state, instance.constructor.getDerivedStateFromProps(nextProps, state));\n }\n return state;\n}\nvar renderCheck = {\n v: false\n};\nvar options = {\n componentComparator: null,\n createVNode: null,\n renderComplete: null\n};\nfunction setTextContent(dom, children) {\n dom.textContent = children;\n}\n// Calling this function assumes, nextValue is linkEvent\nfunction isLastValueSameLinkEvent(lastValue, nextValue) {\n return (isLinkEventObject(lastValue) &&\n lastValue.event === nextValue.event &&\n lastValue.data === nextValue.data);\n}\nfunction mergeUnsetProperties(to, from) {\n for (var propName in from) {\n if (isUndefined(to[propName])) {\n to[propName] = from[propName];\n }\n }\n return to;\n}\nfunction safeCall1(method, arg1) {\n return !!isFunction(method) && (method(arg1), true);\n}\n\nvar keyPrefix = '$';\nfunction V(childFlags, children, className, flags, key, props, ref, type) {\n this.childFlags = childFlags;\n this.children = children;\n this.className = className;\n this.dom = null;\n this.flags = flags;\n this.key = key === void 0 ? null : key;\n this.props = props === void 0 ? null : props;\n this.ref = ref === void 0 ? null : ref;\n this.type = type;\n}\nfunction createVNode(flags, type, className, children, childFlags, props, key, ref) {\n var childFlag = childFlags === void 0 ? 1 /* HasInvalidChildren */ : childFlags;\n var vNode = new V(childFlag, children, className, flags, key, props, ref, type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n if (childFlag === 0 /* UnknownChildren */) {\n normalizeChildren(vNode, vNode.children);\n }\n return vNode;\n}\nfunction mergeDefaultHooks(flags, type, ref) {\n if (flags & 4 /* ComponentClass */) {\n return ref;\n }\n var defaultHooks = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultHooks;\n if (isNullOrUndef(defaultHooks)) {\n return ref;\n }\n if (isNullOrUndef(ref)) {\n return defaultHooks;\n }\n return mergeUnsetProperties(ref, defaultHooks);\n}\nfunction mergeDefaultProps(flags, type, props) {\n // set default props\n var defaultProps = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultProps;\n if (isNullOrUndef(defaultProps)) {\n return props;\n }\n if (isNullOrUndef(props)) {\n return combineFrom(defaultProps, null);\n }\n return mergeUnsetProperties(props, defaultProps);\n}\nfunction resolveComponentFlags(flags, type) {\n if (flags & 12 /* ComponentKnown */) {\n return flags;\n }\n if (type.prototype && type.prototype.render) {\n return 4 /* ComponentClass */;\n }\n if (type.render) {\n return 32776 /* ForwardRefComponent */;\n }\n return 8 /* ComponentFunction */;\n}\nfunction createComponentVNode(flags, type, props, key, ref) {\n flags = resolveComponentFlags(flags, type);\n var vNode = new V(1 /* HasInvalidChildren */, null, null, flags, key, mergeDefaultProps(flags, type, props), mergeDefaultHooks(flags, type, ref), type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n return vNode;\n}\nfunction createTextVNode(text, key) {\n return new V(1 /* HasInvalidChildren */, isNullOrUndef(text) || text === true || text === false ? '' : text, null, 16 /* Text */, key, null, null, null);\n}\nfunction createFragment(children, childFlags, key) {\n var fragment = createVNode(8192 /* Fragment */, 8192 /* Fragment */, null, children, childFlags, null, key, null);\n switch (fragment.childFlags) {\n case 1 /* HasInvalidChildren */:\n fragment.children = createVoidVNode();\n fragment.childFlags = 2 /* HasVNodeChildren */;\n break;\n case 16 /* HasTextChildren */:\n fragment.children = [createTextVNode(children)];\n fragment.childFlags = 4 /* HasNonKeyedChildren */;\n break;\n }\n return fragment;\n}\nfunction normalizeProps(vNode) {\n var props = vNode.props;\n if (props) {\n var flags = vNode.flags;\n if (flags & 481 /* Element */) {\n if (props.children !== void 0 && isNullOrUndef(vNode.children)) {\n normalizeChildren(vNode, props.children);\n }\n if (props.className !== void 0) {\n if (isNullOrUndef(vNode.className)) {\n vNode.className = props.className || null;\n }\n props.className = undefined;\n }\n }\n if (props.key !== void 0) {\n vNode.key = props.key;\n props.key = undefined;\n }\n if (props.ref !== void 0) {\n if (flags & 8 /* ComponentFunction */) {\n vNode.ref = combineFrom(vNode.ref, props.ref);\n }\n else {\n vNode.ref = props.ref;\n }\n props.ref = undefined;\n }\n }\n return vNode;\n}\n/*\n * Fragment is different than normal vNode,\n * because when it needs to be cloned we need to clone its children too\n * But not normalize, because otherwise those possibly get KEY and re-mount\n */\nfunction cloneFragment(vNodeToClone) {\n var oldChildren = vNodeToClone.children;\n var childFlags = vNodeToClone.childFlags;\n return createFragment(childFlags === 2 /* HasVNodeChildren */ ? directClone(oldChildren) : oldChildren.map(directClone), childFlags, vNodeToClone.key);\n}\nfunction directClone(vNodeToClone) {\n var flags = vNodeToClone.flags & -16385 /* ClearInUse */;\n var props = vNodeToClone.props;\n if (flags & 14 /* Component */) {\n if (!isNull(props)) {\n var propsToClone = props;\n props = {};\n for (var key in propsToClone) {\n props[key] = propsToClone[key];\n }\n }\n }\n if ((flags & 8192 /* Fragment */) === 0) {\n return new V(vNodeToClone.childFlags, vNodeToClone.children, vNodeToClone.className, flags, vNodeToClone.key, props, vNodeToClone.ref, vNodeToClone.type);\n }\n return cloneFragment(vNodeToClone);\n}\nfunction createVoidVNode() {\n return createTextVNode('', null);\n}\nfunction createPortal(children, container) {\n var normalizedRoot = normalizeRoot(children);\n return createVNode(1024 /* Portal */, 1024 /* Portal */, null, normalizedRoot, 0 /* UnknownChildren */, null, normalizedRoot.key, container);\n}\nfunction _normalizeVNodes(nodes, result, index, currentKey) {\n for (var len = nodes.length; index < len; index++) {\n var n = nodes[index];\n if (!isInvalid(n)) {\n var newKey = currentKey + keyPrefix + index;\n if (isArray(n)) {\n _normalizeVNodes(n, result, 0, newKey);\n }\n else {\n if (isStringOrNumber(n)) {\n n = createTextVNode(n, newKey);\n }\n else {\n var oldKey = n.key;\n var isPrefixedKey = isString(oldKey) && oldKey[0] === keyPrefix;\n if (n.flags & 81920 /* InUseOrNormalized */ || isPrefixedKey) {\n n = directClone(n);\n }\n n.flags |= 65536 /* Normalized */;\n if (!isPrefixedKey) {\n if (isNull(oldKey)) {\n n.key = newKey;\n }\n else {\n n.key = currentKey + oldKey;\n }\n }\n else if (oldKey.substring(0, currentKey.length) !== currentKey) {\n n.key = currentKey + oldKey;\n }\n }\n result.push(n);\n }\n }\n }\n}\nfunction getFlagsForElementVnode(type) {\n switch (type) {\n case 'svg':\n return 32 /* SvgElement */;\n case 'input':\n return 64 /* InputElement */;\n case 'select':\n return 256 /* SelectElement */;\n case 'textarea':\n return 128 /* TextareaElement */;\n case Fragment:\n return 8192 /* Fragment */;\n default:\n return 1 /* HtmlElement */;\n }\n}\nfunction normalizeChildren(vNode, children) {\n var newChildren;\n var newChildFlags = 1 /* HasInvalidChildren */;\n // Don't change children to match strict equal (===) true in patching\n if (isInvalid(children)) {\n newChildren = children;\n }\n else if (isStringOrNumber(children)) {\n newChildFlags = 16 /* HasTextChildren */;\n newChildren = children;\n }\n else if (isArray(children)) {\n var len = children.length;\n for (var i = 0; i < len; ++i) {\n var n = children[i];\n if (isInvalid(n) || isArray(n)) {\n newChildren = newChildren || children.slice(0, i);\n _normalizeVNodes(children, newChildren, i, '');\n break;\n }\n else if (isStringOrNumber(n)) {\n newChildren = newChildren || children.slice(0, i);\n newChildren.push(createTextVNode(n, keyPrefix + i));\n }\n else {\n var key = n.key;\n var needsCloning = (n.flags & 81920 /* InUseOrNormalized */) > 0;\n var isNullKey = isNull(key);\n var isPrefixed = isString(key) && key[0] === keyPrefix;\n if (needsCloning || isNullKey || isPrefixed) {\n newChildren = newChildren || children.slice(0, i);\n if (needsCloning || isPrefixed) {\n n = directClone(n);\n }\n if (isNullKey || isPrefixed) {\n n.key = keyPrefix + i;\n }\n newChildren.push(n);\n }\n else if (newChildren) {\n newChildren.push(n);\n }\n n.flags |= 65536 /* Normalized */;\n }\n }\n newChildren = newChildren || children;\n if (newChildren.length === 0) {\n newChildFlags = 1 /* HasInvalidChildren */;\n }\n else {\n newChildFlags = 8 /* HasKeyedChildren */;\n }\n }\n else {\n newChildren = children;\n newChildren.flags |= 65536 /* Normalized */;\n if (children.flags & 81920 /* InUseOrNormalized */) {\n newChildren = directClone(children);\n }\n newChildFlags = 2 /* HasVNodeChildren */;\n }\n vNode.children = newChildren;\n vNode.childFlags = newChildFlags;\n return vNode;\n}\nfunction normalizeRoot(input) {\n if (isInvalid(input) || isStringOrNumber(input)) {\n return createTextVNode(input, null);\n }\n if (isArray(input)) {\n return createFragment(input, 0 /* UnknownChildren */, null);\n }\n return input.flags & 16384 /* InUse */ ? directClone(input) : input;\n}\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar namespaces = {\n 'xlink:actuate': xlinkNS,\n 'xlink:arcrole': xlinkNS,\n 'xlink:href': xlinkNS,\n 'xlink:role': xlinkNS,\n 'xlink:show': xlinkNS,\n 'xlink:title': xlinkNS,\n 'xlink:type': xlinkNS,\n 'xml:base': xmlNS,\n 'xml:lang': xmlNS,\n 'xml:space': xmlNS\n};\n\nfunction getDelegatedEventObject(v) {\n return {\n onClick: v,\n onDblClick: v,\n onFocusIn: v,\n onFocusOut: v,\n onKeyDown: v,\n onKeyPress: v,\n onKeyUp: v,\n onMouseDown: v,\n onMouseMove: v,\n onMouseUp: v,\n onTouchEnd: v,\n onTouchMove: v,\n onTouchStart: v\n };\n}\nvar attachedEventCounts = getDelegatedEventObject(0);\nvar attachedEvents = getDelegatedEventObject(null);\nvar syntheticEvents = getDelegatedEventObject(true);\nfunction updateOrAddSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (!eventsObject) {\n eventsObject = dom.$EV = getDelegatedEventObject(null);\n }\n if (!eventsObject[name]) {\n if (++attachedEventCounts[name] === 1) {\n attachedEvents[name] = attachEventToDocument(name);\n }\n }\n return eventsObject;\n}\nfunction unmountSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (eventsObject && eventsObject[name]) {\n if (--attachedEventCounts[name] === 0) {\n document.removeEventListener(normalizeEventName(name), attachedEvents[name]);\n attachedEvents[name] = null;\n }\n eventsObject[name] = null;\n }\n}\nfunction handleSyntheticEvent(name, lastEvent, nextEvent, dom) {\n if (isFunction(nextEvent)) {\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else if (isLinkEventObject(nextEvent)) {\n if (isLastValueSameLinkEvent(lastEvent, nextEvent)) {\n return;\n }\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else {\n unmountSyntheticEvent(name, dom);\n }\n}\n// When browsers fully support event.composedPath we could loop it through instead of using parentNode property\nfunction getTargetNode(event) {\n return isFunction(event.composedPath) ? event.composedPath()[0] : event.target;\n}\nfunction dispatchEvents(event, isClick, name, eventData) {\n var dom = getTargetNode(event);\n do {\n // Html Nodes can be nested fe: span inside button in that scenario browser does not handle disabled attribute on parent,\n // because the event listener is on document.body\n // Don't process clicks on disabled elements\n if (isClick && dom.disabled) {\n return;\n }\n var eventsObject = dom.$EV;\n if (eventsObject) {\n var currentEvent = eventsObject[name];\n if (currentEvent) {\n // linkEvent object\n eventData.dom = dom;\n currentEvent.event ? currentEvent.event(currentEvent.data, event) : currentEvent(event);\n if (event.cancelBubble) {\n return;\n }\n }\n }\n dom = dom.parentNode;\n } while (!isNull(dom));\n}\nfunction stopPropagation() {\n this.cancelBubble = true;\n if (!this.immediatePropagationStopped) {\n this.stopImmediatePropagation();\n }\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction extendEventProperties(event) {\n // Event data needs to be object to save reference to currentTarget getter\n var eventData = {\n dom: document\n };\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n event.stopPropagation = stopPropagation;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n get: function get() {\n return eventData.dom;\n }\n });\n return eventData;\n}\nfunction rootClickEvent(name) {\n return function (event) {\n if (event.button !== 0) {\n // Firefox incorrectly triggers click event for mid/right mouse buttons.\n // This bug has been active for 17 years.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=184051\n event.stopPropagation();\n return;\n }\n dispatchEvents(event, true, name, extendEventProperties(event));\n };\n}\nfunction rootEvent(name) {\n return function (event) {\n dispatchEvents(event, false, name, extendEventProperties(event));\n };\n}\nfunction attachEventToDocument(name) {\n var attachedEvent = name === 'onClick' || name === 'onDblClick' ? rootClickEvent(name) : rootEvent(name);\n document.addEventListener(normalizeEventName(name), attachedEvent);\n return attachedEvent;\n}\n\nfunction isSameInnerHTML(dom, innerHTML) {\n var tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\n\nfunction triggerEventListener(props, methodName, e) {\n if (props[methodName]) {\n var listener = props[methodName];\n if (listener.event) {\n listener.event(listener.data, e);\n }\n else {\n listener(e);\n }\n }\n else {\n var nativeListenerName = methodName.toLowerCase();\n if (props[nativeListenerName]) {\n props[nativeListenerName](e);\n }\n }\n}\nfunction createWrappedFunction(methodName, applyValue) {\n var fnMethod = function (e) {\n var vNode = this.$V;\n // If vNode is gone by the time event fires, no-op\n if (!vNode) {\n return;\n }\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n if (isString(methodName)) {\n triggerEventListener(props, methodName, e);\n }\n else {\n for (var i = 0; i < methodName.length; ++i) {\n triggerEventListener(props, methodName[i], e);\n }\n }\n if (isFunction(applyValue)) {\n var newVNode = this.$V;\n var newProps = newVNode.props || EMPTY_OBJ;\n applyValue(newProps, dom, false, newVNode);\n }\n };\n Object.defineProperty(fnMethod, 'wrapped', {\n configurable: false,\n enumerable: false,\n value: true,\n writable: false\n });\n return fnMethod;\n}\n\nfunction attachEvent(dom, eventName, handler) {\n var previousKey = \"$\" + eventName;\n var previousArgs = dom[previousKey];\n if (previousArgs) {\n if (previousArgs[1].wrapped) {\n return;\n }\n dom.removeEventListener(previousArgs[0], previousArgs[1]);\n dom[previousKey] = null;\n }\n if (isFunction(handler)) {\n dom.addEventListener(eventName, handler);\n dom[previousKey] = [eventName, handler];\n }\n}\n\nfunction isCheckedType(type) {\n return type === 'checkbox' || type === 'radio';\n}\nvar onTextInputChange = createWrappedFunction('onInput', applyValueInput);\nvar wrappedOnChange = createWrappedFunction(['onClick', 'onChange'], applyValueInput);\n/* tslint:disable-next-line:no-empty */\nfunction emptywrapper(event) {\n event.stopPropagation();\n}\nemptywrapper.wrapped = true;\nfunction inputEvents(dom, nextPropsOrEmpty) {\n if (isCheckedType(nextPropsOrEmpty.type)) {\n attachEvent(dom, 'change', wrappedOnChange);\n attachEvent(dom, 'click', emptywrapper);\n }\n else {\n attachEvent(dom, 'input', onTextInputChange);\n }\n}\nfunction applyValueInput(nextPropsOrEmpty, dom) {\n var type = nextPropsOrEmpty.type;\n var value = nextPropsOrEmpty.value;\n var checked = nextPropsOrEmpty.checked;\n var multiple = nextPropsOrEmpty.multiple;\n var defaultValue = nextPropsOrEmpty.defaultValue;\n var hasValue = !isNullOrUndef(value);\n if (type && type !== dom.type) {\n dom.setAttribute('type', type);\n }\n if (!isNullOrUndef(multiple) && multiple !== dom.multiple) {\n dom.multiple = multiple;\n }\n if (!isNullOrUndef(defaultValue) && !hasValue) {\n dom.defaultValue = defaultValue + '';\n }\n if (isCheckedType(type)) {\n if (hasValue) {\n dom.value = value;\n }\n if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n else {\n if (hasValue && dom.value !== value) {\n dom.defaultValue = value;\n dom.value = value;\n }\n else if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n}\n\nfunction updateChildOptions(vNode, value) {\n if (vNode.type === 'option') {\n updateChildOption(vNode, value);\n }\n else {\n var children = vNode.children;\n var flags = vNode.flags;\n if (flags & 4 /* ComponentClass */) {\n updateChildOptions(children.$LI, value);\n }\n else if (flags & 8 /* ComponentFunction */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags & 12 /* MultipleChildren */) {\n for (var i = 0, len = children.length; i < len; ++i) {\n updateChildOptions(children[i], value);\n }\n }\n }\n}\nfunction updateChildOption(vNode, value) {\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n // we do this as multiple may have changed\n dom.value = props.value;\n if (props.value === value || (isArray(value) && value.indexOf(props.value) !== -1)) {\n dom.selected = true;\n }\n else if (!isNullOrUndef(value) || !isNullOrUndef(props.selected)) {\n dom.selected = props.selected || false;\n }\n}\nvar onSelectChange = createWrappedFunction('onChange', applyValueSelect);\nfunction selectEvents(dom) {\n attachEvent(dom, 'change', onSelectChange);\n}\nfunction applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode) {\n var multiplePropInBoolean = Boolean(nextPropsOrEmpty.multiple);\n if (!isNullOrUndef(nextPropsOrEmpty.multiple) && multiplePropInBoolean !== dom.multiple) {\n dom.multiple = multiplePropInBoolean;\n }\n var index = nextPropsOrEmpty.selectedIndex;\n if (index === -1) {\n dom.selectedIndex = -1;\n }\n var childFlags = vNode.childFlags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n var value = nextPropsOrEmpty.value;\n if (isNumber(index) && index > -1 && dom.options[index]) {\n value = dom.options[index].value;\n }\n if (mounting && isNullOrUndef(value)) {\n value = nextPropsOrEmpty.defaultValue;\n }\n updateChildOptions(vNode, value);\n }\n}\n\nvar onTextareaInputChange = createWrappedFunction('onInput', applyValueTextArea);\nvar wrappedOnChange$1 = createWrappedFunction('onChange');\nfunction textAreaEvents(dom, nextPropsOrEmpty) {\n attachEvent(dom, 'input', onTextareaInputChange);\n if (nextPropsOrEmpty.onChange) {\n attachEvent(dom, 'change', wrappedOnChange$1);\n }\n}\nfunction applyValueTextArea(nextPropsOrEmpty, dom, mounting) {\n var value = nextPropsOrEmpty.value;\n var domValue = dom.value;\n if (isNullOrUndef(value)) {\n if (mounting) {\n var defaultValue = nextPropsOrEmpty.defaultValue;\n if (!isNullOrUndef(defaultValue) && defaultValue !== domValue) {\n dom.defaultValue = defaultValue;\n dom.value = defaultValue;\n }\n }\n }\n else if (domValue !== value) {\n /* There is value so keep it controlled */\n dom.defaultValue = value;\n dom.value = value;\n }\n}\n\nfunction processElement(flags, vNode, dom, nextPropsOrEmpty, mounting, isControlled) {\n if (flags & 64 /* InputElement */) {\n applyValueInput(nextPropsOrEmpty, dom);\n }\n else if (flags & 256 /* SelectElement */) {\n applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode);\n }\n else if (flags & 128 /* TextareaElement */) {\n applyValueTextArea(nextPropsOrEmpty, dom, mounting);\n }\n if (isControlled) {\n dom.$V = vNode;\n }\n}\nfunction addFormElementEventHandlers(flags, dom, nextPropsOrEmpty) {\n if (flags & 64 /* InputElement */) {\n inputEvents(dom, nextPropsOrEmpty);\n }\n else if (flags & 256 /* SelectElement */) {\n selectEvents(dom);\n }\n else if (flags & 128 /* TextareaElement */) {\n textAreaEvents(dom, nextPropsOrEmpty);\n }\n}\nfunction isControlledFormElement(nextPropsOrEmpty) {\n return nextPropsOrEmpty.type && isCheckedType(nextPropsOrEmpty.type) ? !isNullOrUndef(nextPropsOrEmpty.checked) : !isNullOrUndef(nextPropsOrEmpty.value);\n}\n\nfunction createRef() {\n return {\n current: null\n };\n}\nfunction forwardRef(render) {\n // @ts-ignore\n return {\n render: render\n };\n}\nfunction unmountRef(ref) {\n if (ref) {\n if (!safeCall1(ref, null) && ref.current) {\n ref.current = null;\n }\n }\n}\nfunction mountRef(ref, value, lifecycle) {\n if (ref && (isFunction(ref) || ref.current !== void 0)) {\n lifecycle.push(function () {\n if (!safeCall1(ref, value) && ref.current !== void 0) {\n ref.current = value;\n }\n });\n }\n}\n\nfunction remove(vNode, parentDOM) {\n unmount(vNode);\n removeVNodeDOM(vNode, parentDOM);\n}\nfunction unmount(vNode) {\n var flags = vNode.flags;\n var children = vNode.children;\n var ref;\n if (flags & 481 /* Element */) {\n ref = vNode.ref;\n var props = vNode.props;\n unmountRef(ref);\n var childFlags = vNode.childFlags;\n if (!isNull(props)) {\n var keys = Object.keys(props);\n for (var i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n if (syntheticEvents[key]) {\n unmountSyntheticEvent(key, vNode.dom);\n }\n }\n }\n if (childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n else if (childFlags === 2 /* HasVNodeChildren */) {\n unmount(children);\n }\n }\n else if (children) {\n if (flags & 4 /* ComponentClass */) {\n if (isFunction(children.componentWillUnmount)) {\n children.componentWillUnmount();\n }\n unmountRef(vNode.ref);\n children.$UN = true;\n unmount(children.$LI);\n }\n else if (flags & 8 /* ComponentFunction */) {\n ref = vNode.ref;\n if (!isNullOrUndef(ref) && isFunction(ref.onComponentWillUnmount)) {\n ref.onComponentWillUnmount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n }\n unmount(children);\n }\n else if (flags & 1024 /* Portal */) {\n remove(children, vNode.ref);\n }\n else if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n }\n }\n}\nfunction unmountAllChildren(children) {\n for (var i = 0, len = children.length; i < len; ++i) {\n unmount(children[i]);\n }\n}\nfunction clearDOM(dom) {\n // Optimization for clearing dom\n dom.textContent = '';\n}\nfunction removeAllChildren(dom, vNode, children) {\n unmountAllChildren(children);\n if (vNode.flags & 8192 /* Fragment */) {\n removeVNodeDOM(vNode, dom);\n }\n else {\n clearDOM(dom);\n }\n}\n\nfunction wrapLinkEvent(nextValue) {\n // This variable makes sure there is no \"this\" context in callback\n var ev = nextValue.event;\n return function (e) {\n ev(nextValue.data, e);\n };\n}\nfunction patchEvent(name, lastValue, nextValue, dom) {\n if (isLinkEventObject(nextValue)) {\n if (isLastValueSameLinkEvent(lastValue, nextValue)) {\n return;\n }\n nextValue = wrapLinkEvent(nextValue);\n }\n attachEvent(dom, normalizeEventName(name), nextValue);\n}\n// We are assuming here that we come from patchProp routine\n// -nextAttrValue cannot be null or undefined\nfunction patchStyle(lastAttrValue, nextAttrValue, dom) {\n if (isNullOrUndef(nextAttrValue)) {\n dom.removeAttribute('style');\n return;\n }\n var domStyle = dom.style;\n var style;\n var value;\n if (isString(nextAttrValue)) {\n domStyle.cssText = nextAttrValue;\n return;\n }\n if (!isNullOrUndef(lastAttrValue) && !isString(lastAttrValue)) {\n for (style in nextAttrValue) {\n // do not add a hasOwnProperty check here, it affects performance\n value = nextAttrValue[style];\n if (value !== lastAttrValue[style]) {\n domStyle.setProperty(style, value);\n }\n }\n for (style in lastAttrValue) {\n if (isNullOrUndef(nextAttrValue[style])) {\n domStyle.removeProperty(style);\n }\n }\n }\n else {\n for (style in nextAttrValue) {\n value = nextAttrValue[style];\n domStyle.setProperty(style, value);\n }\n }\n}\nfunction patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom) {\n var lastHtml = (lastValue && lastValue.__html) || '';\n var nextHtml = (nextValue && nextValue.__html) || '';\n if (lastHtml !== nextHtml) {\n if (!isNullOrUndef(nextHtml) && !isSameInnerHTML(dom, nextHtml)) {\n if (!isNull(lastVNode)) {\n if (lastVNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(lastVNode.children);\n }\n else if (lastVNode.childFlags === 2 /* HasVNodeChildren */) {\n unmount(lastVNode.children);\n }\n lastVNode.children = null;\n lastVNode.childFlags = 1 /* HasInvalidChildren */;\n }\n dom.innerHTML = nextHtml;\n }\n }\n}\nfunction patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode) {\n switch (prop) {\n case 'children':\n case 'childrenType':\n case 'className':\n case 'defaultValue':\n case 'key':\n case 'multiple':\n case 'ref':\n case 'selectedIndex':\n break;\n case 'autoFocus':\n dom.autofocus = !!nextValue;\n break;\n case 'allowfullscreen':\n case 'autoplay':\n case 'capture':\n case 'checked':\n case 'controls':\n case 'default':\n case 'disabled':\n case 'hidden':\n case 'indeterminate':\n case 'loop':\n case 'muted':\n case 'novalidate':\n case 'open':\n case 'readOnly':\n case 'required':\n case 'reversed':\n case 'scoped':\n case 'seamless':\n case 'selected':\n dom[prop] = !!nextValue;\n break;\n case 'defaultChecked':\n case 'value':\n case 'volume':\n if (hasControlledValue && prop === 'value') {\n break;\n }\n var value = isNullOrUndef(nextValue) ? '' : nextValue;\n if (dom[prop] !== value) {\n dom[prop] = value;\n }\n break;\n case 'style':\n patchStyle(lastValue, nextValue, dom);\n break;\n case 'dangerouslySetInnerHTML':\n patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom);\n break;\n default:\n if (syntheticEvents[prop]) {\n handleSyntheticEvent(prop, lastValue, nextValue, dom);\n }\n else if (prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110) {\n patchEvent(prop, lastValue, nextValue, dom);\n }\n else if (isNullOrUndef(nextValue)) {\n dom.removeAttribute(prop);\n }\n else if (isSVG && namespaces[prop]) {\n // We optimize for isSVG being false\n // If we end up in this path we can read property again\n dom.setAttributeNS(namespaces[prop], prop, nextValue);\n }\n else {\n dom.setAttribute(prop, nextValue);\n }\n break;\n }\n}\nfunction mountProps(vNode, flags, props, dom, isSVG) {\n var hasControlledValue = false;\n var isFormElement = (flags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(props);\n if (hasControlledValue) {\n addFormElementEventHandlers(flags, dom, props);\n }\n }\n for (var prop in props) {\n // do not add a hasOwnProperty check here, it affects performance\n patchProp(prop, null, props[prop], dom, isSVG, hasControlledValue, null);\n }\n if (isFormElement) {\n processElement(flags, vNode, dom, props, true, hasControlledValue);\n }\n}\n\nfunction renderNewInput(instance, props, context) {\n var nextInput = normalizeRoot(instance.render(props, instance.state, context));\n var childContext = context;\n if (isFunction(instance.getChildContext)) {\n childContext = combineFrom(context, instance.getChildContext());\n }\n instance.$CX = childContext;\n return nextInput;\n}\nfunction createClassComponentInstance(vNode, Component, props, context, isSVG, lifecycle) {\n var instance = new Component(props, context);\n var usesNewAPI = (instance.$N = Boolean(Component.getDerivedStateFromProps || instance.getSnapshotBeforeUpdate));\n instance.$SVG = isSVG;\n instance.$L = lifecycle;\n vNode.children = instance;\n instance.$BS = false;\n instance.context = context;\n if (instance.props === EMPTY_OBJ) {\n instance.props = props;\n }\n if (!usesNewAPI) {\n if (isFunction(instance.componentWillMount)) {\n instance.$BR = true;\n instance.componentWillMount();\n var pending = instance.$PS;\n if (!isNull(pending)) {\n var state = instance.state;\n if (isNull(state)) {\n instance.state = pending;\n }\n else {\n for (var key in pending) {\n state[key] = pending[key];\n }\n }\n instance.$PS = null;\n }\n instance.$BR = false;\n }\n }\n else {\n instance.state = createDerivedState(instance, props, instance.state);\n }\n instance.$LI = renderNewInput(instance, props, context);\n return instance;\n}\nfunction renderFunctionalComponent(vNode, context) {\n var props = vNode.props || EMPTY_OBJ;\n return vNode.flags & 32768 /* ForwardRef */ ? vNode.type.render(props, vNode.ref, context) : vNode.type(props, context);\n}\n\nfunction mount(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 481 /* Element */) {\n mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 4 /* ComponentClass */) {\n mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 8 /* ComponentFunction */) {\n mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n mountFunctionalComponentCallbacks(vNode, lifecycle);\n }\n else if (flags & 512 /* Void */ || flags & 16 /* Text */) {\n mountText(vNode, parentDOM, nextNode);\n }\n else if (flags & 8192 /* Fragment */) {\n mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle);\n }\n else if (flags & 1024 /* Portal */) {\n mountPortal(vNode, context, parentDOM, nextNode, lifecycle);\n }\n else ;\n}\nfunction mountPortal(vNode, context, parentDOM, nextNode, lifecycle) {\n mount(vNode.children, vNode.ref, context, false, null, lifecycle);\n var placeHolderVNode = createVoidVNode();\n mountText(placeHolderVNode, parentDOM, nextNode);\n vNode.dom = placeHolderVNode.dom;\n}\nfunction mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle) {\n var children = vNode.children;\n var childFlags = vNode.childFlags;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (childFlags & 12 /* MultipleChildren */ && children.length === 0) {\n childFlags = vNode.childFlags = 2 /* HasVNodeChildren */;\n children = vNode.children = createVoidVNode();\n }\n if (childFlags === 2 /* HasVNodeChildren */) {\n mount(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else {\n mountArrayChildren(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountText(vNode, parentDOM, nextNode) {\n var dom = (vNode.dom = document.createTextNode(vNode.children));\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n}\nfunction mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = vNode.flags;\n var props = vNode.props;\n var className = vNode.className;\n var childFlags = vNode.childFlags;\n var dom = (vNode.dom = documentCreateElement(vNode.type, (isSVG = isSVG || (flags & 32 /* SvgElement */) > 0)));\n var children = vNode.children;\n if (!isNullOrUndef(className) && className !== '') {\n if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n }\n if (childFlags === 16 /* HasTextChildren */) {\n setTextContent(dom, children);\n }\n else if (childFlags !== 1 /* HasInvalidChildren */) {\n var childrenIsSVG = isSVG && vNode.type !== 'foreignObject';\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (children.flags & 16384 /* InUse */) {\n vNode.children = children = directClone(children);\n }\n mount(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n else if (childFlags === 8 /* HasKeyedChildren */ || childFlags === 4 /* HasNonKeyedChildren */) {\n mountArrayChildren(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n }\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n if (!isNull(props)) {\n mountProps(vNode, flags, props, dom, isSVG);\n }\n mountRef(vNode.ref, dom, lifecycle);\n}\nfunction mountArrayChildren(children, dom, context, isSVG, nextNode, lifecycle) {\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n if (child.flags & 16384 /* InUse */) {\n children[i] = child = directClone(child);\n }\n mount(child, dom, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = createClassComponentInstance(vNode, vNode.type, vNode.props || EMPTY_OBJ, context, isSVG, lifecycle);\n mount(instance.$LI, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n mountClassComponentCallbacks(vNode.ref, instance, lifecycle);\n}\nfunction mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n mount((vNode.children = normalizeRoot(renderFunctionalComponent(vNode, context))), parentDOM, context, isSVG, nextNode, lifecycle);\n}\nfunction createClassMountCallback(instance) {\n return function () {\n instance.componentDidMount();\n };\n}\nfunction mountClassComponentCallbacks(ref, instance, lifecycle) {\n mountRef(ref, instance, lifecycle);\n if (isFunction(instance.componentDidMount)) {\n lifecycle.push(createClassMountCallback(instance));\n }\n}\nfunction createOnMountCallback(ref, vNode) {\n return function () {\n ref.onComponentDidMount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n };\n}\nfunction mountFunctionalComponentCallbacks(vNode, lifecycle) {\n var ref = vNode.ref;\n if (!isNullOrUndef(ref)) {\n safeCall1(ref.onComponentWillMount, vNode.props || EMPTY_OBJ);\n if (isFunction(ref.onComponentDidMount)) {\n lifecycle.push(createOnMountCallback(ref, vNode));\n }\n }\n}\n\nfunction replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n unmount(lastVNode);\n if ((nextVNode.flags & lastVNode.flags & 2033 /* DOMRef */) !== 0) {\n mount(nextVNode, null, context, isSVG, null, lifecycle);\n // Single DOM operation, when we have dom references available\n replaceChild(parentDOM, nextVNode.dom, lastVNode.dom);\n }\n else {\n mount(nextVNode, parentDOM, context, isSVG, findDOMfromVNode(lastVNode, true), lifecycle);\n removeVNodeDOM(lastVNode, parentDOM);\n }\n}\nfunction patch(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var nextFlags = (nextVNode.flags |= 16384 /* InUse */);\n if (lastVNode.flags !== nextFlags || lastVNode.type !== nextVNode.type || lastVNode.key !== nextVNode.key || nextFlags & 2048 /* ReCreate */) {\n if (lastVNode.flags & 16384 /* InUse */) {\n replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n // Last vNode is not in use, it has crashed at application level. Just mount nextVNode and ignore last one\n mount(nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextFlags & 481 /* Element */) {\n patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle);\n }\n else if (nextFlags & 4 /* ComponentClass */) {\n patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 8 /* ComponentFunction */) {\n patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 16 /* Text */) {\n patchText(lastVNode, nextVNode);\n }\n else if (nextFlags & 512 /* Void */) {\n nextVNode.dom = lastVNode.dom;\n }\n else if (nextFlags & 8192 /* Fragment */) {\n patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n patchPortal(lastVNode, nextVNode, context, lifecycle);\n }\n}\nfunction patchSingleTextChild(lastChildren, nextChildren, parentDOM) {\n if (lastChildren !== nextChildren) {\n if (lastChildren !== '') {\n parentDOM.firstChild.nodeValue = nextChildren;\n }\n else {\n setTextContent(parentDOM, nextChildren);\n }\n }\n}\nfunction patchContentEditableChildren(dom, nextChildren) {\n if (dom.textContent !== nextChildren) {\n dom.textContent = nextChildren;\n }\n}\nfunction patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n var lastChildren = lastVNode.children;\n var nextChildren = nextVNode.children;\n var lastChildFlags = lastVNode.childFlags;\n var nextChildFlags = nextVNode.childFlags;\n var nextNode = null;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (nextChildFlags & 12 /* MultipleChildren */ && nextChildren.length === 0) {\n nextChildFlags = nextVNode.childFlags = 2 /* HasVNodeChildren */;\n nextChildren = nextVNode.children = createVoidVNode();\n }\n var nextIsSingle = (nextChildFlags & 2 /* HasVNodeChildren */) !== 0;\n if (lastChildFlags & 12 /* MultipleChildren */) {\n var lastLen = lastChildren.length;\n // We need to know Fragment's edge node when\n if (\n // It uses keyed algorithm\n (lastChildFlags & 8 /* HasKeyedChildren */ && nextChildFlags & 8 /* HasKeyedChildren */) ||\n // It transforms from many to single\n nextIsSingle ||\n // It will append more nodes\n (!nextIsSingle && nextChildren.length > lastLen)) {\n // When fragment has multiple children there is always at least one vNode\n nextNode = findDOMfromVNode(lastChildren[lastLen - 1], false).nextSibling;\n }\n }\n patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lastVNode, lifecycle);\n}\nfunction patchPortal(lastVNode, nextVNode, context, lifecycle) {\n var lastContainer = lastVNode.ref;\n var nextContainer = nextVNode.ref;\n var nextChildren = nextVNode.children;\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, lastContainer, context, false, null, lastVNode, lifecycle);\n nextVNode.dom = lastVNode.dom;\n if (lastContainer !== nextContainer && !isInvalid(nextChildren)) {\n var node = nextChildren.dom;\n removeChild(lastContainer, node);\n appendChild(nextContainer, node);\n }\n}\nfunction patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle) {\n var dom = (nextVNode.dom = lastVNode.dom);\n var lastProps = lastVNode.props;\n var nextProps = nextVNode.props;\n var isFormElement = false;\n var hasControlledValue = false;\n var nextPropsOrEmpty;\n isSVG = isSVG || (nextFlags & 32 /* SvgElement */) > 0;\n // inlined patchProps -- starts --\n if (lastProps !== nextProps) {\n var lastPropsOrEmpty = lastProps || EMPTY_OBJ;\n nextPropsOrEmpty = nextProps || EMPTY_OBJ;\n if (nextPropsOrEmpty !== EMPTY_OBJ) {\n isFormElement = (nextFlags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(nextPropsOrEmpty);\n }\n for (var prop in nextPropsOrEmpty) {\n var lastValue = lastPropsOrEmpty[prop];\n var nextValue = nextPropsOrEmpty[prop];\n if (lastValue !== nextValue) {\n patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n if (lastPropsOrEmpty !== EMPTY_OBJ) {\n for (var prop$1 in lastPropsOrEmpty) {\n if (isNullOrUndef(nextPropsOrEmpty[prop$1]) && !isNullOrUndef(lastPropsOrEmpty[prop$1])) {\n patchProp(prop$1, lastPropsOrEmpty[prop$1], null, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n }\n var nextChildren = nextVNode.children;\n var nextClassName = nextVNode.className;\n // inlined patchProps -- ends --\n if (lastVNode.className !== nextClassName) {\n if (isNullOrUndef(nextClassName)) {\n dom.removeAttribute('class');\n }\n else if (isSVG) {\n dom.setAttribute('class', nextClassName);\n }\n else {\n dom.className = nextClassName;\n }\n }\n if (nextFlags & 4096 /* ContentEditable */) {\n patchContentEditableChildren(dom, nextChildren);\n }\n else {\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, dom, context, isSVG && nextVNode.type !== 'foreignObject', null, lastVNode, lifecycle);\n }\n if (isFormElement) {\n processElement(nextFlags, nextVNode, dom, nextPropsOrEmpty, false, hasControlledValue);\n }\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, dom, lifecycle);\n }\n}\nfunction replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle) {\n unmount(lastChildren);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, findDOMfromVNode(lastChildren, true), lifecycle);\n removeVNodeDOM(lastChildren, parentDOM);\n}\nfunction patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, parentVNode, lifecycle) {\n switch (lastChildFlags) {\n case 2 /* HasVNodeChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n patch(lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n remove(lastChildren, parentDOM);\n break;\n case 16 /* HasTextChildren */:\n unmount(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle);\n break;\n }\n break;\n case 1 /* HasInvalidChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n break;\n case 16 /* HasTextChildren */:\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n case 16 /* HasTextChildren */:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n patchSingleTextChild(lastChildren, nextChildren, parentDOM);\n break;\n case 2 /* HasVNodeChildren */:\n clearDOM(parentDOM);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n clearDOM(parentDOM);\n break;\n default:\n clearDOM(parentDOM);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n default:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n unmountAllChildren(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n case 2 /* HasVNodeChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n break;\n default:\n var lastLength = lastChildren.length | 0;\n var nextLength = nextChildren.length | 0;\n // Fast path's for both algorithms\n if (lastLength === 0) {\n if (nextLength > 0) {\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextLength === 0) {\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n }\n else if (nextChildFlags === 8 /* HasKeyedChildren */ && lastChildFlags === 8 /* HasKeyedChildren */) {\n patchKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, parentVNode, lifecycle);\n }\n else {\n patchNonKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, lifecycle);\n }\n break;\n }\n break;\n }\n}\nfunction createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle) {\n lifecycle.push(function () {\n instance.componentDidUpdate(lastProps, lastState, snapshot);\n });\n}\nfunction updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, force, nextNode, lifecycle) {\n var lastState = instance.state;\n var lastProps = instance.props;\n var usesNewAPI = Boolean(instance.$N);\n var hasSCU = isFunction(instance.shouldComponentUpdate);\n if (usesNewAPI) {\n nextState = createDerivedState(instance, nextProps, nextState !== lastState ? combineFrom(lastState, nextState) : nextState);\n }\n if (force || !hasSCU || (hasSCU && instance.shouldComponentUpdate(nextProps, nextState, context))) {\n if (!usesNewAPI && isFunction(instance.componentWillUpdate)) {\n instance.componentWillUpdate(nextProps, nextState, context);\n }\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n var snapshot = null;\n var nextInput = renderNewInput(instance, nextProps, context);\n if (usesNewAPI && isFunction(instance.getSnapshotBeforeUpdate)) {\n snapshot = instance.getSnapshotBeforeUpdate(lastProps, lastState);\n }\n patch(instance.$LI, nextInput, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n // Dont update Last input, until patch has been succesfully executed\n instance.$LI = nextInput;\n if (isFunction(instance.componentDidUpdate)) {\n createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle);\n }\n }\n else {\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n }\n}\nfunction patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = (nextVNode.children = lastVNode.children);\n // If Component has crashed, ignore it to stay functional\n if (isNull(instance)) {\n return;\n }\n instance.$L = lifecycle;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n var nextState = instance.state;\n if (!instance.$N) {\n if (isFunction(instance.componentWillReceiveProps)) {\n instance.$BR = true;\n instance.componentWillReceiveProps(nextProps, context);\n // If instance component was removed during its own update do nothing.\n if (instance.$UN) {\n return;\n }\n instance.$BR = false;\n }\n if (!isNull(instance.$PS)) {\n nextState = combineFrom(nextState, instance.$PS);\n instance.$PS = null;\n }\n }\n updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, false, nextNode, lifecycle);\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, instance, lifecycle);\n }\n}\nfunction patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var shouldUpdate = true;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastProps = lastVNode.props;\n var nextHooksDefined = !isNullOrUndef(nextRef);\n var lastInput = lastVNode.children;\n if (nextHooksDefined && isFunction(nextRef.onComponentShouldUpdate)) {\n shouldUpdate = nextRef.onComponentShouldUpdate(lastProps, nextProps);\n }\n if (shouldUpdate !== false) {\n if (nextHooksDefined && isFunction(nextRef.onComponentWillUpdate)) {\n nextRef.onComponentWillUpdate(lastProps, nextProps);\n }\n var nextInput = normalizeRoot(renderFunctionalComponent(nextVNode, context));\n patch(lastInput, nextInput, parentDOM, context, isSVG, nextNode, lifecycle);\n nextVNode.children = nextInput;\n if (nextHooksDefined && isFunction(nextRef.onComponentDidUpdate)) {\n nextRef.onComponentDidUpdate(lastProps, nextProps);\n }\n }\n else {\n nextVNode.children = lastInput;\n }\n}\nfunction patchText(lastVNode, nextVNode) {\n var nextText = nextVNode.children;\n var dom = (nextVNode.dom = lastVNode.dom);\n if (nextText !== lastVNode.children) {\n dom.nodeValue = nextText;\n }\n}\nfunction patchNonKeyedChildren(lastChildren, nextChildren, dom, context, isSVG, lastChildrenLength, nextChildrenLength, nextNode, lifecycle) {\n var commonLength = lastChildrenLength > nextChildrenLength ? nextChildrenLength : lastChildrenLength;\n var i = 0;\n var nextChild;\n var lastChild;\n for (; i < commonLength; ++i) {\n nextChild = nextChildren[i];\n lastChild = lastChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n patch(lastChild, nextChild, dom, context, isSVG, nextNode, lifecycle);\n lastChildren[i] = nextChild;\n }\n if (lastChildrenLength < nextChildrenLength) {\n for (i = commonLength; i < nextChildrenLength; ++i) {\n nextChild = nextChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n mount(nextChild, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (lastChildrenLength > nextChildrenLength) {\n for (i = commonLength; i < lastChildrenLength; ++i) {\n remove(lastChildren[i], dom);\n }\n }\n}\nfunction patchKeyedChildren(a, b, dom, context, isSVG, aLength, bLength, outerEdge, parentVNode, lifecycle) {\n var aEnd = aLength - 1;\n var bEnd = bLength - 1;\n var j = 0;\n var aNode = a[j];\n var bNode = b[j];\n var nextPos;\n var nextNode;\n // Step 1\n // tslint:disable-next-line\n outer: {\n // Sync nodes with the same key at the beginning.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[j] = bNode;\n ++j;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[j];\n bNode = b[j];\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n // Sync nodes with the same key at the end.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[bEnd] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[aEnd] = bNode;\n aEnd--;\n bEnd--;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n }\n }\n if (j > aEnd) {\n if (j <= bEnd) {\n nextPos = bEnd + 1;\n nextNode = nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge;\n while (j <= bEnd) {\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n ++j;\n mount(bNode, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n }\n else if (j > bEnd) {\n while (j <= aEnd) {\n remove(a[j++], dom);\n }\n }\n else {\n patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle);\n }\n}\nfunction patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle) {\n var aNode;\n var bNode;\n var nextPos;\n var i = 0;\n var aStart = j;\n var bStart = j;\n var aLeft = aEnd - j + 1;\n var bLeft = bEnd - j + 1;\n var sources = new Int32Array(bLeft + 1);\n // Keep track if its possible to remove whole DOM using textContent = '';\n var canRemoveWholeContent = aLeft === aLength;\n var moved = false;\n var pos = 0;\n var patched = 0;\n // When sizes are small, just loop them through\n if (bLength < 4 || (aLeft | bLeft) < 32) {\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n for (j = bStart; j <= bEnd; j++) {\n bNode = b[j];\n if (aNode.key === bNode.key) {\n sources[j - bStart] = i + 1;\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (aStart < i) {\n remove(a[aStart++], dom);\n }\n }\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n break;\n }\n }\n if (!canRemoveWholeContent && j > bEnd) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n else {\n var keyIndex = {};\n // Map keys by their index\n for (i = bStart; i <= bEnd; ++i) {\n keyIndex[b[i].key] = i;\n }\n // Try to patch same keys\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n j = keyIndex[aNode.key];\n if (j !== void 0) {\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (i > aStart) {\n remove(a[aStart++], dom);\n }\n }\n sources[j - bStart] = i + 1;\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n // fast-path: if nothing patched remove all old and add all new\n if (canRemoveWholeContent) {\n removeAllChildren(dom, parentVNode, a);\n mountArrayChildren(b, dom, context, isSVG, outerEdge, lifecycle);\n }\n else if (moved) {\n var seq = lis_algorithm(sources);\n j = seq.length - 1;\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n else if (j < 0 || i !== seq[j]) {\n pos = i + bStart;\n bNode = b[pos];\n nextPos = pos + 1;\n moveVNodeDOM(bNode, dom, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge);\n }\n else {\n j--;\n }\n }\n }\n else if (patched !== bLeft) {\n // when patched count doesn't match b length we need to insert those new ones\n // loop backwards so we can use insertBefore\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n }\n }\n}\nvar result;\nvar p;\nvar maxLen = 0;\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction lis_algorithm(arr) {\n var arrI = 0;\n var i = 0;\n var j = 0;\n var k = 0;\n var u = 0;\n var v = 0;\n var c = 0;\n var len = arr.length;\n if (len > maxLen) {\n maxLen = len;\n result = new Int32Array(len);\n p = new Int32Array(len);\n }\n for (; i < len; ++i) {\n arrI = arr[i];\n if (arrI !== 0) {\n j = result[k];\n if (arr[j] < arrI) {\n p[i] = j;\n result[++k] = i;\n continue;\n }\n u = 0;\n v = k;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = k + 1;\n var seq = new Int32Array(u);\n v = result[u - 1];\n while (u-- > 0) {\n seq[u] = v;\n v = p[v];\n result[u] = 0;\n }\n return seq;\n}\n\nvar hasDocumentAvailable = typeof document !== 'undefined';\nif (hasDocumentAvailable) {\n /*\n * Defining $EV and $V properties on Node.prototype\n * fixes v8 \"wrong map\" de-optimization\n */\n if (window.Node) {\n Node.prototype.$EV = null;\n Node.prototype.$V = null;\n }\n}\nfunction __render(input, parentDOM, callback, context) {\n var lifecycle = [];\n var rootInput = parentDOM.$V;\n renderCheck.v = true;\n if (isNullOrUndef(rootInput)) {\n if (!isNullOrUndef(input)) {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n mount(input, parentDOM, context, false, null, lifecycle);\n parentDOM.$V = input;\n rootInput = input;\n }\n }\n else {\n if (isNullOrUndef(input)) {\n remove(rootInput, parentDOM);\n parentDOM.$V = null;\n }\n else {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n patch(rootInput, input, parentDOM, context, false, null, lifecycle);\n rootInput = parentDOM.$V = input;\n }\n }\n callAll(lifecycle);\n renderCheck.v = false;\n if (isFunction(callback)) {\n callback();\n }\n if (isFunction(options.renderComplete)) {\n options.renderComplete(rootInput, parentDOM);\n }\n}\nfunction render(input, parentDOM, callback, context) {\n if ( callback === void 0 ) callback = null;\n if ( context === void 0 ) context = EMPTY_OBJ;\n\n __render(input, parentDOM, callback, context);\n}\nfunction createRenderer(parentDOM) {\n return function renderer(lastInput, nextInput, callback, context) {\n if (!parentDOM) {\n parentDOM = lastInput;\n }\n render(nextInput, parentDOM, callback, context);\n };\n}\n\nvar QUEUE = [];\nvar nextTick = typeof Promise !== 'undefined'\n ? Promise.resolve().then.bind(Promise.resolve())\n : function (a) {\n window.setTimeout(a, 0);\n };\nvar microTaskPending = false;\nfunction queueStateChanges(component, newState, callback, force) {\n var pending = component.$PS;\n if (isFunction(newState)) {\n newState = newState(pending ? combineFrom(component.state, pending) : component.state, component.props, component.context);\n }\n if (isNullOrUndef(pending)) {\n component.$PS = newState;\n }\n else {\n for (var stateKey in newState) {\n pending[stateKey] = newState[stateKey];\n }\n }\n if (!component.$BR) {\n if (!renderCheck.v) {\n if (QUEUE.length === 0) {\n applyState(component, force);\n if (isFunction(callback)) {\n callback.call(component);\n }\n return;\n }\n }\n if (QUEUE.indexOf(component) === -1) {\n QUEUE.push(component);\n }\n if (force) {\n component.$F = true;\n }\n if (!microTaskPending) {\n microTaskPending = true;\n nextTick(rerender);\n }\n if (isFunction(callback)) {\n var QU = component.$QU;\n if (!QU) {\n QU = component.$QU = [];\n }\n QU.push(callback);\n }\n }\n else if (isFunction(callback)) {\n component.$L.push(callback.bind(component));\n }\n}\nfunction callSetStateCallbacks(component) {\n var queue = component.$QU;\n for (var i = 0; i < queue.length; ++i) {\n queue[i].call(component);\n }\n component.$QU = null;\n}\nfunction rerender() {\n var component;\n microTaskPending = false;\n while ((component = QUEUE.shift())) {\n if (!component.$UN) {\n var force = component.$F;\n component.$F = false;\n applyState(component, force);\n if (component.$QU) {\n callSetStateCallbacks(component);\n }\n }\n }\n}\nfunction applyState(component, force) {\n if (force || !component.$BR) {\n var pendingState = component.$PS;\n component.$PS = null;\n var lifecycle = [];\n renderCheck.v = true;\n updateClassComponent(component, combineFrom(component.state, pendingState), component.props, findDOMfromVNode(component.$LI, true).parentNode, component.context, component.$SVG, force, null, lifecycle);\n callAll(lifecycle);\n renderCheck.v = false;\n }\n else {\n component.state = component.$PS;\n component.$PS = null;\n }\n}\nvar Component = function Component(props, context) {\n // Public\n this.state = null;\n // Internal properties\n this.$BR = false; // BLOCK RENDER\n this.$BS = true; // BLOCK STATE\n this.$PS = null; // PENDING STATE (PARTIAL or FULL)\n this.$LI = null; // LAST INPUT\n this.$UN = false; // UNMOUNTED\n this.$CX = null; // CHILDCONTEXT\n this.$QU = null; // QUEUE\n this.$N = false; // Uses new lifecycle API Flag\n this.$L = null; // Current lifecycle of this component\n this.$SVG = false; // Flag to keep track if component is inside SVG tree\n this.$F = false; // Force update flag\n this.props = props || EMPTY_OBJ;\n this.context = context || EMPTY_OBJ; // context should not be mutable\n};\nComponent.prototype.forceUpdate = function forceUpdate (callback) {\n if (this.$UN) {\n return;\n }\n // Do not allow double render during force update\n queueStateChanges(this, {}, callback, true);\n};\nComponent.prototype.setState = function setState (newState, callback) {\n if (this.$UN) {\n return;\n }\n if (!this.$BS) {\n queueStateChanges(this, newState, callback, false);\n }\n};\nComponent.prototype.render = function render (_nextProps, _nextState, _nextContext) {\n return null;\n};\n\nvar version = \"7.4.11\";\n\nexport { Component, EMPTY_OBJ, Fragment, createClassComponentInstance as _CI, normalizeRoot as _HI, mount as _M, mountClassComponentCallbacks as _MCCC, mountElement as _ME, mountFunctionalComponentCallbacks as _MFCC, mountProps as _MP, mountRef as _MR, renderFunctionalComponent as _RFC, __render, createComponentVNode, createFragment, createPortal, createRef, createRenderer, createTextVNode, createVNode, directClone, findDOMfromVNode, forwardRef, getFlagsForElementVnode, linkEvent, normalizeProps, options, render, rerender, version };\n","export const InfernoEffectHost = {\n lockCount: 0,\n lock() {\n this.lockCount++;\n },\n callbacks: [],\n callEffects() {\n this.lockCount--;\n if (this.lockCount < 0) {\n throw new Error('Unexpected Effect Call');\n }\n if (this.lockCount === 0) {\n const effects = this.callbacks;\n this.callbacks = [];\n effects.forEach((callback) => callback());\n }\n },\n};\n","import { Component, findDOMfromVNode } from 'inferno';\nimport { InfernoEffectHost } from './effect_host';\nconst areObjectsEqual = (firstObject, secondObject) => {\n const bothAreObjects = firstObject instanceof Object && secondObject instanceof Object;\n if (!bothAreObjects) {\n return firstObject === secondObject;\n }\n const firstObjectKeys = Object.keys(firstObject);\n const secondObjectKeys = Object.keys(secondObject);\n if (firstObjectKeys.length !== secondObjectKeys.length) {\n return false;\n }\n const hasDifferentElement = firstObjectKeys.some((key) => firstObject[key] !== secondObject[key]);\n return !hasDifferentElement;\n};\nexport class BaseInfernoComponent extends Component {\n constructor() {\n super(...arguments);\n this._pendingContext = this.context;\n }\n componentWillReceiveProps(_, context) {\n this._pendingContext = context !== null && context !== void 0 ? context : {};\n }\n shouldComponentUpdate(nextProps, nextState) {\n return (!areObjectsEqual(this.props, nextProps)\n || !areObjectsEqual(this.state, nextState)\n || !areObjectsEqual(this.context, this._pendingContext));\n }\n}\nexport class InfernoComponent extends BaseInfernoComponent {\n constructor() {\n super(...arguments);\n this._effects = [];\n }\n createEffects() {\n return [];\n }\n updateEffects() { }\n componentWillMount() {\n InfernoEffectHost.lock();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n componentWillUpdate(_nextProps, _nextState, _context) {\n InfernoEffectHost.lock();\n }\n componentDidMount() {\n InfernoEffectHost.callbacks.push(() => { this._effects = this.createEffects(); });\n InfernoEffectHost.callEffects();\n }\n componentDidUpdate() {\n InfernoEffectHost.callbacks.push(() => this.updateEffects());\n InfernoEffectHost.callEffects();\n }\n destroyEffects() {\n this._effects.forEach((e) => e.dispose());\n }\n componentWillUnmount() {\n this.destroyEffects();\n }\n}\nexport class InfernoWrapperComponent extends InfernoComponent {\n constructor() {\n super(...arguments);\n this.vDomElement = null;\n }\n vDomUpdateClasses() {\n const el = this.vDomElement;\n const currentClasses = el.className.length\n ? el.className.split(' ')\n : [];\n const addedClasses = currentClasses.filter((className) => el.dxClasses.previous.indexOf(className) < 0);\n const removedClasses = el.dxClasses.previous.filter((className) => currentClasses.indexOf(className) < 0);\n addedClasses.forEach((value) => {\n const indexInRemoved = el.dxClasses.removed.indexOf(value);\n if (indexInRemoved > -1) {\n el.dxClasses.removed.splice(indexInRemoved, 1);\n }\n else if (!el.dxClasses.added.includes(value)) {\n el.dxClasses.added.push(value);\n }\n });\n removedClasses.forEach((value) => {\n const indexInAdded = el.dxClasses.added.indexOf(value);\n if (indexInAdded > -1) {\n el.dxClasses.added.splice(indexInAdded, 1);\n }\n else if (!el.dxClasses.removed.includes(value)) {\n el.dxClasses.removed.push(value);\n }\n });\n }\n componentDidMount() {\n const el = findDOMfromVNode(this.$LI, true);\n this.vDomElement = el;\n super.componentDidMount();\n el.dxClasses = el.dxClasses || {\n removed: [], added: [], previous: [],\n };\n el.dxClasses.previous = (el === null || el === void 0 ? void 0 : el.className.length)\n ? el.className.split(' ')\n : [];\n }\n componentDidUpdate() {\n super.componentDidUpdate();\n const el = this.vDomElement;\n if (el !== null) {\n el.dxClasses.added.forEach((className) => el.classList.add(className));\n el.dxClasses.removed.forEach((className) => el.classList.remove(className));\n el.dxClasses.previous = el.className.length\n ? el.className.split(' ')\n : [];\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n const shouldUpdate = super.shouldComponentUpdate(nextProps, nextState);\n if (shouldUpdate) {\n this.vDomUpdateClasses();\n }\n return shouldUpdate;\n }\n}\n","import { Component } from 'inferno';\nlet contextId = 0;\nexport const createContext = function (defaultValue) {\n const id = contextId++;\n return {\n id,\n defaultValue,\n Provider: class extends Component {\n getChildContext() {\n return Object.assign(Object.assign({}, this.context), { [id]: this.props.value || defaultValue });\n }\n render() {\n return this.props.children;\n }\n },\n };\n};\n","export class InfernoEffect {\n constructor(effect, dependency) {\n this.dependency = dependency;\n this.effect = effect;\n this.destroy = effect();\n }\n update(dependency) {\n const currentDependency = this.dependency;\n if (dependency) {\n this.dependency = dependency;\n }\n if (!dependency || dependency.some((d, i) => currentDependency[i] !== d)) {\n this.dispose();\n this.destroy = this.effect();\n }\n }\n dispose() {\n if (this.destroy) {\n this.destroy();\n }\n }\n}\n","import { rerender as reRender } from 'inferno';\nimport { InfernoEffect } from './effect';\nexport const createReRenderEffect = () => new InfernoEffect(() => {\n reRender();\n}, []);\n","export const ERROR_MSG = 'a runtime error occured! Use Inferno in development environment to find the error.';\nexport function isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nexport function isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nexport function isFunction(o) {\n return typeof o === 'function';\n}\nexport function isNull(o) {\n return o === null;\n}\nexport function throwError(message) {\n if (!message) {\n message = ERROR_MSG;\n }\n throw new Error(`Inferno Error: ${message}`);\n}\n","import { _CI, _HI, _M, _MCCC, _ME, _MFCC, _MP, _MR, EMPTY_OBJ, render, _RFC as renderFunctionalComponent, } from 'inferno';\nimport { isFunction, isInvalid, isNull, isNullOrUndef, throwError, } from './shared';\nfunction isSameInnerHTML(dom, innerHTML) {\n const tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\nfunction findLastDOMFromVNode(vNode) {\n let flags;\n let children;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n children = vNode.children;\n if (flags & 8192 /* Fragment */) {\n vNode = vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[children.length - 1];\n }\n else if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n else {\n vNode = children;\n }\n }\n return null;\n}\nfunction isSamePropsInnerHTML(dom, props) {\n return Boolean(props && props.dangerouslySetInnerHTML && props.dangerouslySetInnerHTML.__html && isSameInnerHTML(dom, props.dangerouslySetInnerHTML.__html));\n}\nfunction hydrateComponent(vNode, parentDOM, dom, context, isSVG, isClass, lifecycle) {\n const type = vNode.type;\n const ref = vNode.ref;\n const props = vNode.props || EMPTY_OBJ;\n let currentNode;\n if (isClass) {\n const instance = _CI(vNode, type, props, context, isSVG, lifecycle);\n const input = instance.$LI;\n currentNode = hydrateVNode(input, parentDOM, dom, instance.$CX, isSVG, lifecycle);\n _MCCC(ref, instance, lifecycle);\n }\n else {\n const input = _HI(renderFunctionalComponent(vNode, context));\n currentNode = hydrateVNode(input, parentDOM, dom, context, isSVG, lifecycle);\n vNode.children = input;\n _MFCC(vNode, lifecycle);\n }\n return currentNode;\n}\nfunction hydrateChildren(parentVNode, parentNode, currentNode, context, isSVG, lifecycle) {\n const childFlags = parentVNode.childFlags;\n const children = parentVNode.children;\n const props = parentVNode.props;\n const flags = parentVNode.flags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (isNull(currentNode)) {\n _M(children, parentNode, context, isSVG, null, lifecycle);\n }\n else {\n currentNode = hydrateVNode(children, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n }\n else if (childFlags === 16 /* HasTextChildren */) {\n if (isNull(currentNode)) {\n parentNode.appendChild(document.createTextNode(children));\n }\n else if (parentNode.childNodes.length !== 1 || currentNode.nodeType !== 3) {\n parentNode.textContent = children;\n }\n else if (currentNode.nodeValue !== children) {\n currentNode.nodeValue = children;\n }\n currentNode = null;\n }\n else if (childFlags & 12 /* MultipleChildren */) {\n let prevVNodeIsTextNode = false;\n for (let i = 0, len = children.length; i < len; ++i) {\n const child = children[i];\n if (isNull(currentNode) || (prevVNodeIsTextNode && (child.flags & 16 /* Text */) > 0)) {\n _M(child, parentNode, context, isSVG, currentNode, lifecycle);\n }\n else {\n currentNode = hydrateVNode(child, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n prevVNodeIsTextNode = (child.flags & 16 /* Text */) > 0;\n }\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n if ((flags & 8192 /* Fragment */) === 0) {\n let nextSibling = null;\n while (currentNode) {\n nextSibling = currentNode.nextSibling;\n parentNode.removeChild(currentNode);\n currentNode = nextSibling;\n }\n }\n }\n else if (!isNull(parentNode.firstChild) && !isSamePropsInnerHTML(parentNode, props)) {\n parentNode.textContent = ''; // dom has content, but VNode has no children remove everything from DOM\n if (flags & 448 /* FormElement */) {\n // If element is form element, we need to clear defaultValue also\n parentNode.defaultValue = '';\n }\n }\n}\nfunction hydrateElement(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const props = vNode.props;\n const className = vNode.className;\n const flags = vNode.flags;\n const ref = vNode.ref;\n isSVG = isSVG || (flags & 32 /* SvgElement */) > 0;\n if (dom.nodeType !== 1) {\n _ME(vNode, null, context, isSVG, null, lifecycle);\n parentDOM.replaceChild(vNode.dom, dom);\n }\n else {\n vNode.dom = dom;\n hydrateChildren(vNode, dom, dom.firstChild, context, isSVG, lifecycle);\n if (!isNull(props)) {\n _MP(vNode, flags, props, dom, isSVG);\n }\n if (isNullOrUndef(className)) {\n if (dom.className !== '') {\n dom.removeAttribute('class');\n }\n }\n else if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n _MR(ref, dom, lifecycle);\n }\n return vNode.dom;\n}\nfunction hydrateText(vNode, parentDOM, dom) {\n if (dom.nodeType !== 3) {\n parentDOM.replaceChild((vNode.dom = document.createTextNode(vNode.children)), dom);\n }\n else {\n const text = vNode.children;\n if (dom.nodeValue !== text) {\n dom.nodeValue = text;\n }\n vNode.dom = dom;\n }\n return vNode.dom;\n}\nfunction hydrateFragment(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const children = vNode.children;\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n hydrateText(children, parentDOM, dom);\n return children.dom;\n }\n hydrateChildren(vNode, parentDOM, dom, context, isSVG, lifecycle);\n return findLastDOMFromVNode(children[children.length - 1]);\n}\nfunction hydrateVNode(vNode, parentDOM, currentDom, context, isSVG, lifecycle) {\n const flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 14 /* Component */) {\n return hydrateComponent(vNode, parentDOM, currentDom, context, isSVG, (flags & 4 /* ComponentClass */) > 0, lifecycle);\n }\n if (flags & 481 /* Element */) {\n return hydrateElement(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n if (flags & 16 /* Text */) {\n return hydrateText(vNode, parentDOM, currentDom);\n }\n if (flags & 512 /* Void */) {\n return (vNode.dom = currentDom);\n }\n if (flags & 8192 /* Fragment */) {\n return hydrateFragment(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n throwError();\n return null;\n}\nexport function hydrate(input, parentDOM, callback) {\n let dom = parentDOM.firstChild;\n if (isNull(dom)) {\n render(input, parentDOM, callback);\n }\n else {\n const lifecycle = [];\n if (!isInvalid(input)) {\n dom = hydrateVNode(input, parentDOM, dom, {}, false, lifecycle);\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n while (dom && (dom = dom.nextSibling)) {\n parentDOM.removeChild(dom);\n }\n if (lifecycle.length > 0) {\n let listener;\n while ((listener = lifecycle.shift()) !== undefined) {\n listener();\n }\n }\n }\n parentDOM.$V = input;\n if (isFunction(callback)) {\n callback();\n }\n}\n","import { getFlagsForElementVnode, createComponentVNode, createFragment, createVNode } from 'inferno';\n\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\n\nvar componentHooks = {\n onComponentDidMount: 1,\n onComponentDidUpdate: 1,\n onComponentShouldUpdate: 1,\n onComponentWillMount: 1,\n onComponentWillUnmount: 1,\n onComponentWillUpdate: 1\n};\nfunction createElement(type, props, _children) {\n var arguments$1 = arguments;\n var children;\n var ref = null;\n var key = null;\n var className = null;\n var flags = 0;\n var newProps;\n var childLen = arguments.length - 2;\n if (childLen === 1) {\n children = _children;\n }\n else if (childLen > 1) {\n children = [];\n while (childLen-- > 0) {\n children[childLen] = arguments$1[childLen + 2];\n }\n }\n if (isString(type)) {\n flags = getFlagsForElementVnode(type);\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop in props) {\n if (prop === 'className' || prop === 'class') {\n className = props[prop];\n }\n else if (prop === 'key') {\n key = props.key;\n }\n else if (prop === 'children' && isUndefined(children)) {\n children = props.children; // always favour children args over props\n }\n else if (prop === 'ref') {\n ref = props.ref;\n }\n else {\n if (prop === 'contenteditable') {\n flags |= 4096 /* ContentEditable */;\n }\n newProps[prop] = props[prop];\n }\n }\n }\n }\n else {\n flags = 2 /* ComponentUnknown */;\n if (!isUndefined(children)) {\n if (!props) {\n props = {};\n }\n props.children = children;\n }\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop$1 in props) {\n if (prop$1 === 'key') {\n key = props.key;\n }\n else if (prop$1 === 'ref') {\n ref = props.ref;\n }\n else if (componentHooks[prop$1] === 1) {\n if (!ref) {\n ref = {};\n }\n ref[prop$1] = props[prop$1];\n }\n else {\n newProps[prop$1] = props[prop$1];\n }\n }\n }\n return createComponentVNode(flags, type, newProps, key, ref);\n }\n if (flags & 8192 /* Fragment */) {\n return createFragment(childLen === 1 ? [children] : children, 0 /* UnknownChildren */, key);\n }\n return createVNode(flags, type, className, children, 0 /* UnknownChildren */, newProps, key, ref);\n}\n\nexport { createElement };\n","import { render } from 'inferno';\nimport { createElement } from 'inferno-create-element';\nconst getContainer = (props) => { var _a, _b; return ((_a = props.container) === null || _a === void 0 ? void 0 : _a.get(0)) || ((_b = props.item) === null || _b === void 0 ? void 0 : _b.get(0)); };\nexport function renderTemplate(template, props, _component) {\n setTimeout(() => {\n render(createElement(template, props), getContainer(props));\n }, 0);\n}\nexport const hasTemplate = (name, properties, _component) => {\n const value = properties[name];\n return !!value && typeof value !== 'string';\n};\n","const NUMBER_STYLES = new Set([\n 'animationIterationCount',\n 'borderImageOutset',\n 'borderImageSlice',\n 'border-imageWidth',\n 'boxFlex',\n 'boxFlexGroup',\n 'boxOrdinalGroup',\n 'columnCount',\n 'fillOpacity',\n 'flex',\n 'flexGrow',\n 'flexNegative',\n 'flexOrder',\n 'flexPositive',\n 'flexShrink',\n 'floodOpacity',\n 'fontWeight',\n 'gridColumn',\n 'gridRow',\n 'lineClamp',\n 'lineHeight',\n 'opacity',\n 'order',\n 'orphans',\n 'stopOpacity',\n 'strokeDasharray',\n 'strokeDashoffset',\n 'strokeMiterlimit',\n 'strokeOpacity',\n 'strokeWidth',\n 'tabSize',\n 'widows',\n 'zIndex',\n 'zoom',\n]);\nconst isNumeric = (value) => {\n if (typeof value === 'number')\n return true;\n return !Number.isNaN(Number(value));\n};\nconst getNumberStyleValue = (style, value) => (NUMBER_STYLES.has(style) ? value : `${value}px`);\nconst uppercasePattern = /[A-Z]/g;\nconst kebabCase = (str) => str.replace(uppercasePattern, '-$&').toLowerCase();\nexport function normalizeStyles(styles) {\n if (!(styles instanceof Object)) {\n return undefined;\n }\n return Object\n .entries(styles)\n .reduce((acc, [key, value]) => {\n acc[kebabCase(key)] = isNumeric(value)\n ? getNumberStyleValue(key, value)\n : value;\n return acc;\n }, {});\n}\n","/**\r\n * DevExtreme (esm/core/inferno_renderer.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n render as _render\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffectHost,\r\n hydrate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createElement as _createElement\r\n} from \"inferno-create-element\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport injector from \"./utils/dependency_injector\";\r\nvar remove = element => {\r\n var {\r\n parentNode: parentNode\r\n } = element;\r\n if (parentNode) {\r\n var nextSibling = element.nextSibling;\r\n cleanDataRecursive(element);\r\n parentNode.$V = element.$V;\r\n _render(null, parentNode);\r\n parentNode.insertBefore(element, nextSibling);\r\n element.innerHTML = \"\";\r\n delete parentNode.$V\r\n }\r\n delete element.$V\r\n};\r\nexport default injector({\r\n createElement: (component, props) => _createElement(component, props),\r\n remove: remove,\r\n onAfterRender: () => {\r\n InfernoEffectHost.callEffects()\r\n },\r\n onPreRender: () => {\r\n InfernoEffectHost.lock()\r\n },\r\n render: (component, props, container, replace) => {\r\n if (!replace) {\r\n var {\r\n parentNode: parentNode\r\n } = container;\r\n var nextNode = null === container || void 0 === container ? void 0 : container.nextSibling;\r\n var rootNode = domAdapter.createElement(\"div\");\r\n rootNode.appendChild(container);\r\n var mountNode = domAdapter.createDocumentFragment().appendChild(rootNode);\r\n var vNodeAlreadyExists = !!container.$V;\r\n vNodeAlreadyExists && remove(container);\r\n hydrate(_createElement(component, props), mountNode);\r\n container.$V = mountNode.$V;\r\n if (parentNode) {\r\n parentNode.insertBefore(container, nextNode)\r\n }\r\n } else {\r\n _render(_createElement(component, props), container)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/renovation/utils/shallow_equals.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var shallowEquals = (firstObject, secondObject) => {\r\n if (Object.keys(firstObject).length !== Object.keys(secondObject).length) {\r\n return false\r\n }\r\n return Object.keys(firstObject).every(key => firstObject[key] === secondObject[key])\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/template_wrapper.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"isEqual\"];\r\nimport {\r\n InfernoComponent,\r\n InfernoEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n findDOMfromVNode\r\n} from \"inferno\";\r\nimport {\r\n replaceWith\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n shallowEquals\r\n} from \"../../utils/shallow_equals\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\n\r\nfunction isDxElementWrapper(element) {\r\n return !!element.toArray\r\n}\r\nexport function buildTemplateArgs(model, template) {\r\n var _model$data;\r\n var args = {\r\n template: template,\r\n model: _extends({}, model)\r\n };\r\n var _ref = null !== (_model$data = model.data) && void 0 !== _model$data ? _model$data : {},\r\n {\r\n isEqual: isEqual\r\n } = _ref,\r\n data = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n if (isEqual) {\r\n args.model.data = data;\r\n args.isEqual = isEqual\r\n }\r\n return args\r\n}\r\n\r\nfunction renderTemplateContent(props, container) {\r\n var _props$model;\r\n var {\r\n data: data,\r\n index: index\r\n } = null !== (_props$model = props.model) && void 0 !== _props$model ? _props$model : {\r\n data: {}\r\n };\r\n if (data) {\r\n Object.keys(data).forEach(name => {\r\n if (data[name] && domAdapter.isNode(data[name])) {\r\n data[name] = getPublicElement($(data[name]))\r\n }\r\n })\r\n }\r\n var rendered = props.template.render(_extends({\r\n container: container,\r\n transclude: props.transclude\r\n }, {\r\n renovated: props.renovated\r\n }, !props.transclude ? {\r\n model: data\r\n } : {}, !props.transclude && Number.isFinite(index) ? {\r\n index: index\r\n } : {}));\r\n if (void 0 === rendered) {\r\n return []\r\n }\r\n return isDxElementWrapper(rendered) ? rendered.toArray() : [$(rendered).get(0)]\r\n}\r\n\r\nfunction removeDifferentElements(oldChildren, newChildren) {\r\n newChildren.forEach(newElement => {\r\n var hasOldChild = !!oldChildren.find(oldElement => newElement === oldElement);\r\n if (!hasOldChild && newElement.parentNode) {\r\n $(newElement).remove()\r\n }\r\n })\r\n}\r\nexport class TemplateWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.renderTemplate = this.renderTemplate.bind(this)\r\n }\r\n renderTemplate() {\r\n var node = findDOMfromVNode(this.$LI, true);\r\n if (!(null !== node && void 0 !== node && node.parentNode)) {\r\n return () => {}\r\n }\r\n var container = node.parentNode;\r\n var $container = $(container);\r\n var $oldContainerContent = $container.contents().toArray();\r\n var content = renderTemplateContent(this.props, getPublicElement($container));\r\n replaceWith($(node), $(content));\r\n return () => {\r\n var $actualContainerContent = $(container).contents().toArray();\r\n removeDifferentElements($oldContainerContent, $actualContainerContent);\r\n container.appendChild(node)\r\n }\r\n }\r\n shouldComponentUpdate(nextProps) {\r\n var {\r\n model: model,\r\n template: template\r\n } = this.props;\r\n var {\r\n isEqual: isEqual,\r\n model: nextModel,\r\n template: nextTemplate\r\n } = nextProps;\r\n var equalityComparer = null !== isEqual && void 0 !== isEqual ? isEqual : shallowEquals;\r\n if (template !== nextTemplate) {\r\n return true\r\n }\r\n if (!isDefined(model) || !isDefined(nextModel)) {\r\n return model !== nextModel\r\n }\r\n var {\r\n data: data,\r\n index: index\r\n } = model;\r\n var {\r\n data: nextData,\r\n index: nextIndex\r\n } = nextModel;\r\n if (index !== nextIndex) {\r\n return true\r\n }\r\n return !equalityComparer(data, nextData)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.renderTemplate, [this.props.template, this.props.model])]\r\n }\r\n updateEffects() {\r\n this._effects[0].update([this.props.template, this.props.model])\r\n }\r\n componentWillUnmount() {}\r\n render() {\r\n return null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/utils/update_props_immutable.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getPathParts\r\n} from \"../../../core/utils/data\";\r\n\r\nfunction cloneObjectValue(value) {\r\n return Array.isArray(value) ? [...value] : _extends({}, value)\r\n}\r\n\r\nfunction cloneObjectProp(value, prevValue, fullNameParts) {\r\n var result = fullNameParts.length > 0 && prevValue && value !== prevValue ? cloneObjectValue(prevValue) : cloneObjectValue(value);\r\n var name = fullNameParts[0];\r\n if (fullNameParts.length > 1) {\r\n result[name] = cloneObjectProp(value[name], null === prevValue || void 0 === prevValue ? void 0 : prevValue[name], fullNameParts.slice(1))\r\n } else if (name) {\r\n if (isPlainObject(value[name])) {\r\n result[name] = cloneObjectValue(value[name])\r\n } else {\r\n result[name] = value[name]\r\n }\r\n }\r\n return result\r\n}\r\nexport function updatePropsImmutable(props, option, name, fullName) {\r\n var currentPropsValue = option[name];\r\n var prevPropsValue = props[name];\r\n var result = props;\r\n if (isPlainObject(currentPropsValue) || name !== fullName && Array.isArray(currentPropsValue)) {\r\n result[name] = cloneObjectProp(currentPropsValue, prevPropsValue, getPathParts(fullName).slice(1))\r\n } else {\r\n result[name] = currentPropsValue\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/component.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createRef\r\n} from \"inferno\";\r\nimport KeyboardProcessor from \"../../../events/core/keyboard_processor\";\r\nimport renderer from \"../../../core/inferno_renderer\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n TemplateWrapper,\r\n buildTemplateArgs\r\n} from \"./template_wrapper\";\r\nimport {\r\n updatePropsImmutable\r\n} from \"../utils/update_props_immutable\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/core/emitter.feedback\";\r\nimport \"../../../events/hover\";\r\nvar setDefaultOptionValue = (options, defaultValueGetter) => name => {\r\n if (Object.prototype.hasOwnProperty.call(options, name) && void 0 === options[name]) {\r\n options[name] = defaultValueGetter(name)\r\n }\r\n};\r\nexport default class ComponentWrapper extends DOMComponent {\r\n constructor(element, options) {\r\n super(element, options);\r\n this._shouldRaiseContentReady = false;\r\n this.validateKeyDownHandler()\r\n }\r\n get _propsInfo() {\r\n return {\r\n allowNull: [],\r\n twoWay: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n validateKeyDownHandler() {\r\n var supportedKeyNames = this.getSupportedKeyNames();\r\n var hasComponentDefaultKeyHandlers = supportedKeyNames.length > 0;\r\n var hasComponentKeyDownMethod = \"function\" === typeof this._viewComponent.prototype.keyDown;\r\n if (hasComponentDefaultKeyHandlers && !hasComponentKeyDownMethod) {\r\n throw Error(\"Component's declaration must have 'keyDown' method.\")\r\n }\r\n }\r\n get viewRef() {\r\n var _this$_viewRef;\r\n return null === (_this$_viewRef = this._viewRef) || void 0 === _this$_viewRef ? void 0 : _this$_viewRef.current\r\n }\r\n _checkContentReadyOption(fullName) {\r\n var contentReadyOptions = this._getContentReadyOptions().reduce((options, name) => {\r\n options[name] = true;\r\n return options\r\n }, {});\r\n this._checkContentReadyOption = optionName => !!contentReadyOptions[optionName];\r\n return this._checkContentReadyOption(fullName)\r\n }\r\n _getContentReadyOptions() {\r\n return [\"rtlEnabled\"]\r\n }\r\n _fireContentReady() {\r\n this._actionsMap.onContentReady({})\r\n }\r\n _getDefaultOptions() {\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n return extend(true, super._getDefaultOptions(), viewDefaultProps, this._propsInfo.twoWay.reduce((options, _ref) => {\r\n var [name, defaultName, eventName] = _ref;\r\n return _extends({}, options, {\r\n [name]: viewDefaultProps[defaultName],\r\n [eventName]: value => this.option(name, value)\r\n })\r\n }, {}), this._propsInfo.templates.reduce((options, name) => _extends({}, options, {\r\n [name]: null\r\n }), {}))\r\n }\r\n _getUnwrappedOption() {\r\n var unwrappedProps = {};\r\n Object.keys(this.option()).forEach(key => {\r\n unwrappedProps[key] = this.option(key)\r\n });\r\n return unwrappedProps\r\n }\r\n _initializeComponent() {\r\n var _this$_templateManage;\r\n super._initializeComponent();\r\n null === (_this$_templateManage = this._templateManager) || void 0 === _this$_templateManage ? void 0 : _this$_templateManage.addDefaultTemplates(this.getDefaultTemplates());\r\n var optionProxy = this._getUnwrappedOption();\r\n this._props = this._optionsWithDefaultTemplates(optionProxy);\r\n this._propsInfo.templates.forEach(template => {\r\n this._componentTemplates[template] = this._createTemplateComponent(this._props[template])\r\n });\r\n Object.keys(this._getActionConfigsFull()).forEach(name => this._addAction(name));\r\n this._viewRef = createRef();\r\n this.defaultKeyHandlers = this._createDefaultKeyHandlers()\r\n }\r\n _initMarkup() {\r\n var props = this.getProps();\r\n this._renderWrapper(props)\r\n }\r\n _renderWrapper(props) {\r\n var containerNode = this.$element()[0];\r\n if (!this._isNodeReplaced) {\r\n renderer.onPreRender()\r\n }\r\n renderer.render(this._viewComponent, props, containerNode, this._isNodeReplaced);\r\n if (!this._isNodeReplaced) {\r\n this._isNodeReplaced = true;\r\n renderer.onAfterRender();\r\n this._shouldRaiseContentReady = true\r\n }\r\n if (this._shouldRaiseContentReady) {\r\n this._fireContentReady();\r\n this._shouldRaiseContentReady = false\r\n }\r\n }\r\n _silent(name, value) {\r\n this._options.silent(name, value)\r\n }\r\n _render() {}\r\n _removeWidget() {\r\n renderer.remove(this.$element()[0])\r\n }\r\n _dispose() {\r\n this._removeWidget();\r\n super._dispose()\r\n }\r\n get elementAttr() {\r\n var element = this.$element()[0];\r\n if (!this._elementAttr) {\r\n var {\r\n attributes: attributes\r\n } = element;\r\n var attrs = Array.from(attributes).filter(attr => {\r\n var _attributes$attr$name;\r\n return !this._propsInfo.templates.includes(attr.name) && (null === (_attributes$attr$name = attributes[attr.name]) || void 0 === _attributes$attr$name ? void 0 : _attributes$attr$name.specified)\r\n }).reduce((result, _ref2) => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n var updatedAttributes = result;\r\n var isDomAttr = name in element;\r\n updatedAttributes[name] = \"\" === value && isDomAttr ? element[name] : value;\r\n return updatedAttributes\r\n }, {});\r\n this._elementAttr = attrs;\r\n this._storedClasses = element.getAttribute(\"class\") || \"\"\r\n }\r\n var elemStyle = element.style;\r\n var style = {};\r\n for (var i = 0; i < elemStyle.length; i += 1) {\r\n style[elemStyle[i]] = elemStyle.getPropertyValue(elemStyle[i])\r\n }\r\n this._elementAttr.style = style;\r\n this._elementAttr.class = this._storedClasses;\r\n return this._elementAttr\r\n }\r\n _getAdditionalActionConfigs() {\r\n return {\r\n onContentReady: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n }\r\n }\r\n _getAdditionalProps() {\r\n return []\r\n }\r\n _patchOptionValues(options) {\r\n var {\r\n allowNull: allowNull,\r\n elements: elements,\r\n props: props,\r\n twoWay: twoWay\r\n } = this._propsInfo;\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n var defaultWidgetPropsKeys = Object.keys(viewDefaultProps);\r\n var defaultOptions = this._getDefaultOptions();\r\n var {\r\n children: children,\r\n onKeyboardHandled: onKeyboardHandled,\r\n ref: ref\r\n } = options;\r\n var onKeyDown = onKeyboardHandled ? (_, event_options) => {\r\n onKeyboardHandled(event_options)\r\n } : void 0;\r\n var widgetProps = {\r\n ref: ref,\r\n children: children,\r\n onKeyDown: onKeyDown\r\n };\r\n [...props, ...this._getAdditionalProps()].forEach(propName => {\r\n if (Object.prototype.hasOwnProperty.call(options, propName)) {\r\n widgetProps[propName] = options[propName]\r\n }\r\n });\r\n allowNull.forEach(setDefaultOptionValue(widgetProps, () => null));\r\n defaultWidgetPropsKeys.forEach(setDefaultOptionValue(widgetProps, name => defaultOptions[name]));\r\n twoWay.forEach(_ref3 => {\r\n var [name, defaultName] = _ref3;\r\n setDefaultOptionValue(widgetProps, () => defaultOptions[defaultName])(name)\r\n });\r\n elements.forEach(name => {\r\n if (name in widgetProps) {\r\n var value = widgetProps[name];\r\n if (isRenderer(value)) {\r\n widgetProps[name] = this._patchElementParam(value)\r\n }\r\n }\r\n });\r\n return widgetProps\r\n }\r\n getSupportedKeyNames() {\r\n return []\r\n }\r\n prepareStyleProp(props) {\r\n if (\"string\" === typeof props.style) {\r\n return _extends({}, props, {\r\n style: {},\r\n cssText: props.style\r\n })\r\n }\r\n return props\r\n }\r\n getProps() {\r\n var _this$elementAttr$cla, _elementAttr$class;\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option();\r\n var options = this._patchOptionValues(_extends({}, this._props, {\r\n ref: this._viewRef,\r\n children: this._extractDefaultSlot(),\r\n aria: this._aria\r\n }));\r\n this._propsInfo.templates.forEach(template => {\r\n options[template] = this._componentTemplates[template]\r\n });\r\n return this.prepareStyleProp(_extends({}, options, this.elementAttr, elementAttr, {\r\n className: [...(null !== (_this$elementAttr$cla = this.elementAttr.class) && void 0 !== _this$elementAttr$cla ? _this$elementAttr$cla : \"\").split(\" \"), ...(null !== (_elementAttr$class = null === elementAttr || void 0 === elementAttr ? void 0 : elementAttr.class) && void 0 !== _elementAttr$class ? _elementAttr$class : \"\").split(\" \")].filter((c, i, a) => c && a.indexOf(c) === i).join(\" \").trim(),\r\n class: \"\"\r\n }, this._actionsMap))\r\n }\r\n _getActionConfigs() {\r\n return {}\r\n }\r\n _getActionConfigsFull() {\r\n return _extends({}, this._getActionConfigs(), this._getAdditionalActionConfigs())\r\n }\r\n getDefaultTemplates() {\r\n var defaultTemplates = Object.values(this._templatesInfo);\r\n var result = {};\r\n defaultTemplates.forEach(template => {\r\n result[template] = \"dx-renovation-template-mock\"\r\n });\r\n return result\r\n }\r\n get _templatesInfo() {\r\n return {}\r\n }\r\n _optionsWithDefaultTemplates(options) {\r\n var templateOptions = Object.entries(this._templatesInfo).reduce((result, _ref4) => {\r\n var _options$templateName;\r\n var [templateName, templateValue] = _ref4;\r\n return _extends({}, result, {\r\n [templateName]: null !== (_options$templateName = options[templateName]) && void 0 !== _options$templateName ? _options$templateName : templateValue\r\n })\r\n }, {});\r\n return _extends({}, options, templateOptions)\r\n }\r\n _init() {\r\n super._init();\r\n this.customKeyHandlers = {};\r\n this._actionsMap = {};\r\n this._aria = {};\r\n this._componentTemplates = {}\r\n }\r\n _createDefaultKeyHandlers() {\r\n var result = {};\r\n var keys = this.getSupportedKeyNames();\r\n keys.forEach(key => {\r\n result[key] = e => this.viewRef.keyDown(KeyboardProcessor.createKeyDownOptions(e))\r\n });\r\n return result\r\n }\r\n _addAction(event, actionToAdd) {\r\n var action = actionToAdd;\r\n if (!action) {\r\n var actionByOption = this._createActionByOption(event, this._getActionConfigsFull()[event]);\r\n action = actArgs => {\r\n Object.keys(actArgs).forEach(name => {\r\n if (isDefined(actArgs[name]) && domAdapter.isNode(actArgs[name])) {\r\n actArgs[name] = getPublicElement($(actArgs[name]))\r\n }\r\n });\r\n return actionByOption(actArgs)\r\n }\r\n }\r\n this._actionsMap[event] = action\r\n }\r\n _optionChanged(option) {\r\n var {\r\n fullName: fullName,\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n updatePropsImmutable(this._props, this.option(), name, fullName);\r\n if (this._propsInfo.templates.includes(name) && value !== previousValue) {\r\n this._componentTemplates[name] = this._createTemplateComponent(value)\r\n }\r\n if (name && this._getActionConfigsFull()[name]) {\r\n this._addAction(name)\r\n }\r\n this._shouldRaiseContentReady = this._shouldRaiseContentReady || this._checkContentReadyOption(fullName);\r\n super._optionChanged(option);\r\n this._invalidate()\r\n }\r\n _extractDefaultSlot() {\r\n if (this.option(\"_hasAnonymousTemplateContent\")) {\r\n return renderer.createElement(TemplateWrapper, {\r\n template: this._getTemplate(this._templateManager.anonymousTemplateName),\r\n transclude: true,\r\n renovated: true\r\n })\r\n }\r\n return null\r\n }\r\n _createTemplateComponent(templateOption) {\r\n if (!templateOption) {\r\n return\r\n }\r\n var template = this._getTemplate(templateOption);\r\n if (isString(template) && \"dx-renovation-template-mock\" === template) {\r\n return\r\n }\r\n return model => renderer.createElement(TemplateWrapper, buildTemplateArgs(model, template))\r\n }\r\n _wrapKeyDownHandler(initialHandler) {\r\n return options => {\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = options;\r\n var keys = this.customKeyHandlers;\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n originalEvent.cancel = true;\r\n return originalEvent\r\n }\r\n }\r\n return null === initialHandler || void 0 === initialHandler ? void 0 : initialHandler(originalEvent, options)\r\n }\r\n }\r\n _toPublicElement(element) {\r\n return getPublicElement($(element))\r\n }\r\n _patchElementParam(value) {\r\n try {\r\n var result = $(value);\r\n var element = null === result || void 0 === result ? void 0 : result.get(0);\r\n return null !== element && void 0 !== element && element.nodeType ? element : value\r\n } catch (error) {\r\n return value\r\n }\r\n }\r\n repaint() {\r\n this._isNodeReplaced = false;\r\n this._shouldRaiseContentReady = true;\r\n this._removeWidget();\r\n this._refresh()\r\n }\r\n _supportedKeys() {\r\n return _extends({}, this.defaultKeyHandlers, this.customKeyHandlers)\r\n }\r\n registerKeyHandler(key, handler) {\r\n this.customKeyHandlers[key] = handler\r\n }\r\n setAria(name, value) {\r\n this._aria[name] = value;\r\n this._initMarkup()\r\n }\r\n _getViewComponentDefaultProps() {\r\n return this._viewComponent.defaultProps || {}\r\n }\r\n}\r\nComponentWrapper.IS_RENOVATED_WIDGET = false;\r\nComponentWrapper.IS_RENOVATED_WIDGET = true;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/button.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport ValidationEngine from \"../../ui/validation_engine\";\r\nimport Component from \"./common/component\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nexport default class ButtonWrapper extends Component {\r\n get _validationGroupConfig() {\r\n return ValidationEngine.getGroupConfig(this._findGroup())\r\n }\r\n getDefaultTemplateNames() {\r\n return [\"content\"]\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\", \"enter\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n props.onClick = _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n this._clickAction({\r\n event: event,\r\n validationGroup: this._validationGroupConfig\r\n })\r\n };\r\n var iconType = getImageSourceType(props.icon);\r\n if (\"svg\" === iconType) {\r\n props.iconTemplate = this._createTemplateComponent(() => props.icon)\r\n }\r\n return props\r\n }\r\n get _templatesInfo() {\r\n return {\r\n template: \"content\"\r\n }\r\n }\r\n _toggleActiveState(_, value) {\r\n var button = this.viewRef;\r\n value ? button.activate() : button.deactivate()\r\n }\r\n _getSubmitAction() {\r\n var needValidate = true;\r\n var validationStatus = \"valid\";\r\n return this._createAction(_ref2 => {\r\n var {\r\n event: event,\r\n submitInput: submitInput\r\n } = _ref2;\r\n if (needValidate) {\r\n var validationGroup = this._validationGroupConfig;\r\n if (void 0 !== validationGroup && \"\" !== validationGroup) {\r\n var validationResult = validationGroup.validate();\r\n validationStatus = validationResult.status;\r\n if (\"pending\" === validationResult.status) {\r\n needValidate = false;\r\n this.option(\"disabled\", true);\r\n validationResult.complete.then(_ref3 => {\r\n var {\r\n status: status\r\n } = _ref3;\r\n this.option(\"disabled\", false);\r\n validationStatus = status;\r\n \"valid\" === validationStatus && submitInput.click();\r\n needValidate = true\r\n })\r\n }\r\n }\r\n }\r\n \"valid\" !== validationStatus && event.preventDefault();\r\n event.stopPropagation()\r\n })\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._addAction(\"onSubmit\", this._getSubmitAction());\r\n this._clickAction = this._createClickAction()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n var $content = this.$element().find(\".dx-button-content\").first();\r\n var $template = $content.children().filter(\".dx-template-wrapper\");\r\n var $input = $content.children().filter(\".dx-button-submit-input\");\r\n if ($template.length) {\r\n $template.addClass(\"dx-button-content\");\r\n $template.append($input);\r\n $content.replaceWith($template)\r\n }\r\n }\r\n _patchOptionValues(options) {\r\n return super._patchOptionValues(_extends({}, options, {\r\n templateData: options._templateData\r\n }))\r\n }\r\n _findGroup() {\r\n var $element = this.$element();\r\n var validationGroup = this.option(\"validationGroup\");\r\n return void 0 !== validationGroup && \"\" !== validationGroup ? validationGroup : ValidationEngine.findGroup($element, this._modelByElement($element))\r\n }\r\n _createClickAction() {\r\n return this._createActionByOption(\"onClick\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _optionChanged(option) {\r\n switch (option.name) {\r\n case \"onClick\":\r\n this._clickAction = this._createClickAction()\r\n }\r\n super._optionChanged(option)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/combine_classes.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function combineClasses(classesMap) {\r\n return Object.keys(classesMap).filter(p => classesMap[p]).join(\" \")\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/icon.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"iconTemplate\", \"position\", \"source\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n iconClassName: iconClassName,\r\n props: {\r\n iconTemplate: IconTemplate,\r\n source: source\r\n },\r\n sourceType: sourceType\r\n } = _ref;\r\n return createFragment([\"dxIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"fontIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"image\" === sourceType && createVNode(1, \"img\", iconClassName, null, 1, {\r\n alt: \"\",\r\n src: source\r\n }), IconTemplate && createVNode(1, \"i\", iconClassName, IconTemplate({}), 0)], 0)\r\n};\r\nexport var IconProps = {\r\n position: \"left\",\r\n source: \"\"\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Icon extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get sourceType() {\r\n return getImageSourceType(this.props.source)\r\n }\r\n get cssClass() {\r\n return \"left\" !== this.props.position ? \"dx-icon-right\" : \"\"\r\n }\r\n get iconClassName() {\r\n var generalClasses = {\r\n \"dx-icon\": true,\r\n [this.cssClass]: !!this.cssClass\r\n };\r\n var {\r\n source: source\r\n } = this.props;\r\n if (\"dxIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [\"dx-icon-\".concat(source)]: true\r\n }))\r\n }\r\n if (\"fontIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [String(source)]: !!source\r\n }))\r\n }\r\n if (\"image\" === this.sourceType) {\r\n return combineClasses(generalClasses)\r\n }\r\n if (\"svg\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n \"dx-svg-icon\": true\r\n }))\r\n }\r\n return \"\"\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n sourceType: this.sourceType,\r\n cssClass: this.cssClass,\r\n iconClassName: this.iconClassName,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nIcon.defaultProps = IconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/ink_ripple.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"config\"];\r\nimport {\r\n createVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n initConfig,\r\n showWave,\r\n hideWave\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nexport var viewFunction = model => normalizeProps(createVNode(1, \"div\", \"dx-inkripple\", null, 1, _extends({}, model.restAttributes)));\r\nexport var InkRippleProps = {\r\n config: Object.freeze({})\r\n};\r\nexport class InkRipple extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.hideWave = this.hideWave.bind(this);\r\n this.showWave = this.showWave.bind(this)\r\n }\r\n get getConfig() {\r\n if (void 0 !== this.__getterCache.getConfig) {\r\n return this.__getterCache.getConfig\r\n }\r\n return this.__getterCache.getConfig = (() => {\r\n var {\r\n config: config\r\n } = this.props;\r\n return initConfig(config)\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n hideWave(opts) {\r\n hideWave(this.getConfig, opts)\r\n }\r\n showWave(opts) {\r\n showWave(this.getConfig, opts)\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.config !== nextProps.config) {\r\n this.__getterCache.getConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n getConfig: this.getConfig,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInkRipple.defaultProps = InkRippleProps;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/subscribe_to_event.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport * as clickEvent from \"../../events/click\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nexport function subscribeToEvent(eventName) {\r\n return (element, handler, eventData, namespace) => {\r\n var event = namespace ? addNamespace(eventName, namespace) : eventName;\r\n if (handler) {\r\n eventsEngine.on(element, event, eventData, handler);\r\n return () => {\r\n eventsEngine.off(element, event, handler)\r\n }\r\n }\r\n return\r\n }\r\n}\r\nexport var subscribeToClickEvent = subscribeToEvent(clickEvent.name);\r\nexport var subscribeToScrollEvent = subscribeToEvent(scrollEvents.scroll);\r\nexport var subscribeToScrollInitEvent = subscribeToEvent(scrollEvents.init);\r\nexport var subscribeToDXScrollStartEvent = subscribeToEvent(scrollEvents.start);\r\nexport var subscribeToDXScrollMoveEvent = subscribeToEvent(scrollEvents.move);\r\nexport var subscribeToDXScrollEndEvent = subscribeToEvent(scrollEvents.end);\r\nexport var subscribeToDXScrollStopEvent = subscribeToEvent(scrollEvents.stop);\r\nexport var subscribeToDXScrollCancelEvent = subscribeToEvent(scrollEvents.cancel);\r\nexport var subscribeToDXPointerDownEvent = subscribeToEvent(pointerEvents.down);\r\nexport var subscribeToDXPointerUpEvent = subscribeToEvent(pointerEvents.up);\r\nexport var subscribeToDXPointerMoveEvent = subscribeToEvent(pointerEvents.move);\r\nexport var subscribeToMouseEnterEvent = subscribeToEvent(\"mouseenter\");\r\nexport var subscribeToMouseLeaveEvent = subscribeToEvent(\"mouseleave\");\r\nexport var subscribeToKeyDownEvent = subscribeToEvent(\"keydown\");\r\nexport var subscribeToDxActiveEvent = subscribeToEvent(\"dxactive\");\r\nexport var subscribeToDxInactiveEvent = subscribeToEvent(\"dxinactive\");\r\nexport var subscribeToDxHoverStartEvent = subscribeToEvent(\"dxhoverstart\");\r\nexport var subscribeToDxHoverEndEvent = subscribeToEvent(\"dxhoverend\");\r\nexport var subscribeToDxFocusInEvent = subscribeToEvent(\"focusin\");\r\nexport var subscribeToDxFocusOutEvent = subscribeToEvent(\"focusout\");\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/base_props.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var BaseWidgetProps = {\r\n className: \"\",\r\n activeStateEnabled: false,\r\n disabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n tabIndex: 0,\r\n visible: true\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_context.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var ConfigContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_provider.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"children\", \"rtlEnabled\"];\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ConfigContext\r\n} from \"./config_context\";\r\nexport var viewFunction = viewModel => viewModel.props.children;\r\nexport var ConfigProviderProps = {};\r\nexport class ConfigProvider extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n [ConfigContext.id]: this.config || ConfigContext.defaultValue\r\n })\r\n }\r\n get config() {\r\n if (void 0 !== this.__getterCache.config) {\r\n return this.__getterCache.config\r\n }\r\n return this.__getterCache.config = (() => ({\r\n rtlEnabled: this.props.rtlEnabled\r\n }))()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.rtlEnabled !== nextProps.rtlEnabled) {\r\n this.__getterCache.config = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nConfigProvider.defaultProps = ConfigProviderProps;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/resolve_rtl.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport globalConfig from \"../../core/config\";\r\nexport function resolveRtlEnabled(rtlProp, config) {\r\n if (void 0 !== rtlProp) {\r\n return rtlProp\r\n }\r\n if (void 0 !== (null === config || void 0 === config ? void 0 : config.rtlEnabled)) {\r\n return config.rtlEnabled\r\n }\r\n return globalConfig().rtlEnabled\r\n}\r\nexport function resolveRtlEnabledDefinition(rtlProp, config) {\r\n var isPropDefined = isDefined(rtlProp);\r\n var onlyGlobalDefined = isDefined(globalConfig().rtlEnabled) && !isPropDefined && !isDefined(null === config || void 0 === config ? void 0 : config.rtlEnabled);\r\n return isPropDefined && rtlProp !== (null === config || void 0 === config ? void 0 : config.rtlEnabled) || onlyGlobalDefined\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/widget.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"_feedbackHideTimeout\", \"_feedbackShowTimeout\", \"accessKey\", \"activeStateEnabled\", \"activeStateUnit\", \"addWidgetClass\", \"aria\", \"children\", \"className\", \"classes\", \"cssText\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"name\", \"onActive\", \"onClick\", \"onDimensionChanged\", \"onFocusIn\", \"onFocusOut\", \"onHoverEnd\", \"onHoverStart\", \"onInactive\", \"onKeyDown\", \"onRootElementRendered\", \"onVisibilityChange\", \"rootElementRef\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/hover\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n dxClick,\r\n focus,\r\n keyboard,\r\n resize,\r\n visibility\r\n} from \"../../../events/short\";\r\nimport {\r\n subscribeToDxActiveEvent,\r\n subscribeToDxInactiveEvent,\r\n subscribeToDxHoverStartEvent,\r\n subscribeToDxHoverEndEvent,\r\n subscribeToDxFocusInEvent,\r\n subscribeToDxFocusOutEvent\r\n} from \"../../utils/subscribe_to_event\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../core/utils/style\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./base_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n ConfigProvider\r\n} from \"../../common/config_provider\";\r\nimport {\r\n resolveRtlEnabled,\r\n resolveRtlEnabledDefinition\r\n} from \"../../utils/resolve_rtl\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport errors from \"../../../core/errors\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nvar DEFAULT_FEEDBACK_HIDE_TIMEOUT = 400;\r\nvar DEFAULT_FEEDBACK_SHOW_TIMEOUT = 30;\r\nvar getAria = args => Object.keys(args).reduce((r, key) => {\r\n if (args[key]) {\r\n return _extends({}, r, {\r\n [\"role\" === key || \"id\" === key ? key : \"aria-\".concat(key)]: String(args[key])\r\n })\r\n }\r\n return r\r\n}, {});\r\nexport var viewFunction = viewModel => {\r\n var widget = normalizeProps(createVNode(1, \"div\", viewModel.cssClasses, viewModel.props.children, 0, _extends({}, viewModel.attributes, {\r\n tabIndex: viewModel.tabIndex,\r\n title: viewModel.props.hint,\r\n style: normalizeStyles(viewModel.styles)\r\n }), null, viewModel.widgetElementRef));\r\n return viewModel.shouldRenderConfigProvider ? createComponentVNode(2, ConfigProvider, {\r\n rtlEnabled: viewModel.rtlEnabled,\r\n children: widget\r\n }) : widget\r\n};\r\nexport var WidgetProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n _feedbackHideTimeout: DEFAULT_FEEDBACK_HIDE_TIMEOUT,\r\n _feedbackShowTimeout: DEFAULT_FEEDBACK_SHOW_TIMEOUT,\r\n cssText: \"\",\r\n aria: Object.freeze({}),\r\n classes: \"\",\r\n name: \"\",\r\n addWidgetClass: true\r\n})));\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Widget extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetElementRef = infernoCreateRef();\r\n this.state = {\r\n active: false,\r\n focused: false,\r\n hovered: false\r\n };\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.activeEffect = this.activeEffect.bind(this);\r\n this.inactiveEffect = this.inactiveEffect.bind(this);\r\n this.clickEffect = this.clickEffect.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.focusInEffect = this.focusInEffect.bind(this);\r\n this.focusOutEffect = this.focusOutEffect.bind(this);\r\n this.hoverStartEffect = this.hoverStartEffect.bind(this);\r\n this.hoverEndEffect = this.hoverEndEffect.bind(this);\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.resizeEffect = this.resizeEffect.bind(this);\r\n this.windowResizeEffect = this.windowResizeEffect.bind(this);\r\n this.visibilityEffect = this.visibilityEffect.bind(this);\r\n this.checkDeprecation = this.checkDeprecation.bind(this);\r\n this.applyCssTextEffect = this.applyCssTextEffect.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, []), new InfernoEffect(this.activeEffect, [this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]), new InfernoEffect(this.inactiveEffect, [this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]), new InfernoEffect(this.clickEffect, [this.props.disabled, this.props.name, this.props.onClick]), new InfernoEffect(this.focusInEffect, [this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]), new InfernoEffect(this.focusOutEffect, [this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]), new InfernoEffect(this.hoverStartEffect, [this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]), new InfernoEffect(this.hoverEndEffect, [this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]), new InfernoEffect(this.keyboardEffect, [this.props.focusStateEnabled, this.props.onKeyDown]), new InfernoEffect(this.resizeEffect, [this.props.name, this.props.onDimensionChanged]), new InfernoEffect(this.windowResizeEffect, [this.props.onDimensionChanged]), new InfernoEffect(this.visibilityEffect, [this.props.name, this.props.onVisibilityChange]), new InfernoEffect(this.checkDeprecation, [this.props.height, this.props.width]), new InfernoEffect(this.applyCssTextEffect, [this.props.cssText]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2, _this$_effects$3, _this$_effects$4, _this$_effects$5, _this$_effects$6, _this$_effects$7, _this$_effects$8, _this$_effects$9, _this$_effects$10, _this$_effects$11, _this$_effects$12, _this$_effects$13;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]);\r\n null === (_this$_effects$2 = this._effects[2]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]);\r\n null === (_this$_effects$3 = this._effects[3]) || void 0 === _this$_effects$3 ? void 0 : _this$_effects$3.update([this.props.disabled, this.props.name, this.props.onClick]);\r\n null === (_this$_effects$4 = this._effects[4]) || void 0 === _this$_effects$4 ? void 0 : _this$_effects$4.update([this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]);\r\n null === (_this$_effects$5 = this._effects[5]) || void 0 === _this$_effects$5 ? void 0 : _this$_effects$5.update([this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]);\r\n null === (_this$_effects$6 = this._effects[6]) || void 0 === _this$_effects$6 ? void 0 : _this$_effects$6.update([this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]);\r\n null === (_this$_effects$7 = this._effects[7]) || void 0 === _this$_effects$7 ? void 0 : _this$_effects$7.update([this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]);\r\n null === (_this$_effects$8 = this._effects[8]) || void 0 === _this$_effects$8 ? void 0 : _this$_effects$8.update([this.props.focusStateEnabled, this.props.onKeyDown]);\r\n null === (_this$_effects$9 = this._effects[9]) || void 0 === _this$_effects$9 ? void 0 : _this$_effects$9.update([this.props.name, this.props.onDimensionChanged]);\r\n null === (_this$_effects$10 = this._effects[10]) || void 0 === _this$_effects$10 ? void 0 : _this$_effects$10.update([this.props.onDimensionChanged]);\r\n null === (_this$_effects$11 = this._effects[11]) || void 0 === _this$_effects$11 ? void 0 : _this$_effects$11.update([this.props.name, this.props.onVisibilityChange]);\r\n null === (_this$_effects$12 = this._effects[12]) || void 0 === _this$_effects$12 ? void 0 : _this$_effects$12.update([this.props.height, this.props.width]);\r\n null === (_this$_effects$13 = this._effects[13]) || void 0 === _this$_effects$13 ? void 0 : _this$_effects$13.update([this.props.cssText])\r\n }\r\n setRootElementRef() {\r\n var {\r\n onRootElementRendered: onRootElementRendered,\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetElementRef.current\r\n }\r\n null === onRootElementRendered || void 0 === onRootElementRendered ? void 0 : onRootElementRendered(this.widgetElementRef.current)\r\n }\r\n activeEffect() {\r\n var {\r\n _feedbackShowTimeout: _feedbackShowTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n onActive: onActive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxActiveEvent(this.widgetElementRef.current, event => {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }));\r\n null === onActive || void 0 === onActive ? void 0 : onActive(event)\r\n }, {\r\n timeout: _feedbackShowTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n inactiveEffect() {\r\n var {\r\n _feedbackHideTimeout: _feedbackHideTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n onInactive: onInactive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n return subscribeToDxInactiveEvent(this.widgetElementRef.current, event => {\r\n if (this.state.active) {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }));\r\n null === onInactive || void 0 === onInactive ? void 0 : onInactive(event)\r\n }\r\n }, {\r\n timeout: _feedbackHideTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n clickEffect() {\r\n var {\r\n disabled: disabled,\r\n name: name,\r\n onClick: onClick\r\n } = this.props;\r\n var namespace = name;\r\n if (onClick && !disabled) {\r\n dxClick.on(this.widgetElementRef.current, onClick, {\r\n namespace: namespace\r\n });\r\n return () => dxClick.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n focusInEffect() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxFocusInEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented()) {\r\n this.setState(__state_argument => ({\r\n focused: true\r\n }));\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n }, null, namespace)\r\n }\r\n }\r\n return\r\n }\r\n focusOutEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusOut: onFocusOut\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n return subscribeToDxFocusOutEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented() && this.state.focused) {\r\n this.setState(__state_argument => ({\r\n focused: false\r\n }));\r\n null === onFocusOut || void 0 === onFocusOut ? void 0 : onFocusOut(event)\r\n }\r\n }, null, namespace)\r\n }\r\n return\r\n }\r\n hoverStartEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverStart: onHoverStart\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxHoverStartEvent(this.widgetElementRef.current, event => {\r\n !this.state.active && this.setState(__state_argument => ({\r\n hovered: true\r\n }));\r\n null === onHoverStart || void 0 === onHoverStart ? void 0 : onHoverStart(event)\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n hoverEndEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverEnd: onHoverEnd\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n return subscribeToDxHoverEndEvent(this.widgetElementRef.current, event => {\r\n if (this.state.hovered) {\r\n this.setState(__state_argument => ({\r\n hovered: false\r\n }));\r\n null === onHoverEnd || void 0 === onHoverEnd ? void 0 : onHoverEnd(event)\r\n }\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n keyboardEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n if (focusStateEnabled && onKeyDown) {\r\n var id = keyboard.on(this.widgetElementRef.current, this.widgetElementRef.current, e => onKeyDown(e));\r\n return () => keyboard.off(id)\r\n }\r\n return\r\n }\r\n resizeEffect() {\r\n var namespace = \"\".concat(this.props.name, \"VisibilityChange\");\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resize.on(this.widgetElementRef.current, onDimensionChanged, {\r\n namespace: namespace\r\n });\r\n return () => resize.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n windowResizeEffect() {\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resizeCallbacks.add(onDimensionChanged);\r\n return () => {\r\n resizeCallbacks.remove(onDimensionChanged)\r\n }\r\n }\r\n return\r\n }\r\n visibilityEffect() {\r\n var {\r\n name: name,\r\n onVisibilityChange: onVisibilityChange\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"VisibilityChange\");\r\n if (onVisibilityChange) {\r\n visibility.on(this.widgetElementRef.current, () => onVisibilityChange(true), () => onVisibilityChange(false), {\r\n namespace: namespace\r\n });\r\n return () => visibility.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n checkDeprecation() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n if (isFunction(width)) {\r\n errors.log(\"W0017\", \"width\")\r\n }\r\n if (isFunction(height)) {\r\n errors.log(\"W0017\", \"height\")\r\n }\r\n }\r\n applyCssTextEffect() {\r\n var {\r\n cssText: cssText\r\n } = this.props;\r\n if (\"\" !== cssText) {\r\n this.widgetElementRef.current.style.cssText = cssText\r\n }\r\n }\r\n get shouldRenderConfigProvider() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabledDefinition(rtlEnabled, this.config)\r\n }\r\n get rtlEnabled() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabled(rtlEnabled, this.config)\r\n }\r\n get attributes() {\r\n var {\r\n aria: aria,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n visible: visible\r\n } = this.props;\r\n var accessKey = focusStateEnabled && !disabled && this.props.accessKey;\r\n return _extends({}, extend({}, accessKey && {\r\n accessKey: accessKey\r\n }), getAria(_extends({}, aria, {\r\n disabled: disabled,\r\n hidden: !visible\r\n })), extend({}, this.restAttributes))\r\n }\r\n get styles() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n var style = this.restAttributes.style || {};\r\n var computedWidth = normalizeStyleProp(\"width\", isFunction(width) ? width() : width);\r\n var computedHeight = normalizeStyleProp(\"height\", isFunction(height) ? height() : height);\r\n return _extends({}, style, {\r\n height: null !== computedHeight && void 0 !== computedHeight ? computedHeight : style.height,\r\n width: null !== computedWidth && void 0 !== computedWidth ? computedWidth : style.width\r\n })\r\n }\r\n get cssClasses() {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n addWidgetClass: addWidgetClass,\r\n className: className,\r\n classes: classes,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onVisibilityChange: onVisibilityChange,\r\n visible: visible\r\n } = this.props;\r\n var isFocusable = !!focusStateEnabled && !disabled;\r\n var isHoverable = !!hoverStateEnabled && !disabled;\r\n var canBeActive = !!activeStateEnabled && !disabled;\r\n var classesMap = {\r\n \"dx-widget\": !!addWidgetClass,\r\n [String(classes)]: !!classes,\r\n [String(className)]: !!className,\r\n \"dx-state-disabled\": !!disabled,\r\n \"dx-state-invisible\": !visible,\r\n \"dx-state-focused\": !!this.state.focused && isFocusable,\r\n \"dx-state-active\": !!this.state.active && canBeActive,\r\n \"dx-state-hover\": !!this.state.hovered && isHoverable && !this.state.active,\r\n \"dx-rtl\": !!this.rtlEnabled,\r\n \"dx-visibility-change-handler\": !!onVisibilityChange\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get tabIndex() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n tabIndex: tabIndex\r\n } = this.props;\r\n var isFocusable = focusStateEnabled && !disabled;\r\n return isFocusable ? tabIndex : void 0\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n focus.trigger(this.widgetElementRef.current)\r\n }\r\n blur() {\r\n var activeElement = domAdapter.getActiveElement(this.widgetElementRef.current);\r\n if (this.widgetElementRef.current === activeElement) {\r\n activeElement.blur()\r\n }\r\n }\r\n activate() {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }))\r\n }\r\n deactivate() {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }))\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n active: this.state.active,\r\n focused: this.state.focused,\r\n hovered: this.state.hovered,\r\n widgetElementRef: this.widgetElementRef,\r\n config: this.config,\r\n shouldRenderConfigProvider: this.shouldRenderConfigProvider,\r\n rtlEnabled: this.rtlEnabled,\r\n attributes: this.attributes,\r\n styles: this.styles,\r\n cssClasses: this.cssClasses,\r\n tabIndex: this.tabIndex,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nWidget.defaultProps = WidgetProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"children\", \"className\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"iconTemplate\", \"onClick\", \"onKeyDown\", \"onSubmit\", \"pressed\", \"rtlEnabled\", \"stylingMode\", \"tabIndex\", \"template\", \"templateData\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createDefaultOptionRules,\r\n convertRulesToOptions\r\n} from \"../../core/options/utils\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"../../ui/themes\";\r\nimport {\r\n click\r\n} from \"../../events/short\";\r\nimport {\r\n combineClasses\r\n} from \"../utils/combine_classes\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n Icon\r\n} from \"./common/icon\";\r\nimport {\r\n InkRipple\r\n} from \"./common/ink_ripple\";\r\nimport {\r\n Widget\r\n} from \"./common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./common/base_props\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar stylingModes = [\"outlined\", \"text\", \"contained\"];\r\nvar getCssClasses = model => {\r\n var {\r\n icon: icon,\r\n iconPosition: iconPosition,\r\n stylingMode: stylingMode,\r\n text: text,\r\n type: type\r\n } = model;\r\n var isValidStylingMode = stylingMode && stylingModes.includes(stylingMode);\r\n var classesMap = {\r\n \"dx-button\": true,\r\n [\"dx-button-mode-\".concat(isValidStylingMode ? stylingMode : \"contained\")]: true,\r\n [\"dx-button-\".concat(null !== type && void 0 !== type ? type : \"normal\")]: true,\r\n \"dx-button-has-text\": !!text,\r\n \"dx-button-has-icon\": !!icon,\r\n \"dx-button-icon-right\": \"left\" !== iconPosition\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n children: children,\r\n iconPosition: iconPosition,\r\n iconTemplate: IconTemplate,\r\n template: ButtonTemplate,\r\n text: text\r\n } = viewModel.props;\r\n var renderText = !viewModel.props.template && !children && \"\" !== text;\r\n var isIconLeft = \"left\" === iconPosition;\r\n var iconComponent = !viewModel.props.template && !children && (viewModel.iconSource || viewModel.props.iconTemplate) && createComponentVNode(2, Icon, {\r\n source: viewModel.iconSource,\r\n position: iconPosition,\r\n iconTemplate: IconTemplate\r\n });\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n accessKey: viewModel.props.accessKey,\r\n activeStateEnabled: viewModel.props.activeStateEnabled,\r\n aria: viewModel.aria,\r\n className: viewModel.props.className,\r\n classes: viewModel.cssClasses,\r\n disabled: viewModel.props.disabled,\r\n focusStateEnabled: viewModel.props.focusStateEnabled,\r\n height: viewModel.props.height,\r\n hint: viewModel.props.hint,\r\n hoverStateEnabled: viewModel.props.hoverStateEnabled,\r\n onActive: viewModel.onActive,\r\n onClick: viewModel.onWidgetClick,\r\n onInactive: viewModel.onInactive,\r\n onKeyDown: viewModel.keyDown,\r\n rtlEnabled: viewModel.props.rtlEnabled,\r\n tabIndex: viewModel.props.tabIndex,\r\n visible: viewModel.props.visible,\r\n width: viewModel.props.width\r\n }, viewModel.restAttributes, {\r\n children: createVNode(1, \"div\", \"dx-button-content\", [viewModel.props.template && ButtonTemplate({\r\n data: viewModel.buttonTemplateData\r\n }), !viewModel.props.template && children, isIconLeft && iconComponent, renderText && createVNode(1, \"span\", \"dx-button-text\", text, 0), !isIconLeft && iconComponent, viewModel.props.useSubmitBehavior && createVNode(64, \"input\", \"dx-button-submit-input\", null, 1, {\r\n type: \"submit\",\r\n tabIndex: -1\r\n }, null, viewModel.submitInputRef), viewModel.props.useInkRipple && createComponentVNode(2, InkRipple, {\r\n config: viewModel.inkRippleConfig\r\n }, null, viewModel.inkRippleRef)], 0, null, null, viewModel.contentRef)\r\n }), null, viewModel.widgetRef))\r\n};\r\nexport var ButtonProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n stylingMode: \"contained\",\r\n text: \"\",\r\n type: \"normal\",\r\n useInkRipple: false,\r\n useSubmitBehavior: false,\r\n templateData: Object.freeze({})\r\n})));\r\nexport var defaultOptionRules = createDefaultOptionRules([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n}, {\r\n device: () => isMaterial(current()),\r\n options: {\r\n useInkRipple: true\r\n }\r\n}]);\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Button extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.contentRef = infernoCreateRef();\r\n this.inkRippleRef = infernoCreateRef();\r\n this.submitInputRef = infernoCreateRef();\r\n this.widgetRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.focus = this.focus.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.submitEffect = this.submitEffect.bind(this);\r\n this.onActive = this.onActive.bind(this);\r\n this.onInactive = this.onInactive.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this);\r\n this.emitClickEvent = this.emitClickEvent.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.submitEffect, [this.props.onSubmit, this.props.useSubmitBehavior]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.onSubmit, this.props.useSubmitBehavior])\r\n }\r\n submitEffect() {\r\n var {\r\n onSubmit: onSubmit,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n if (useSubmitBehavior && onSubmit) {\r\n click.on(this.submitInputRef.current, event => onSubmit({\r\n event: event,\r\n submitInput: this.submitInputRef.current\r\n }), {\r\n namespace: \"UIFeedback\"\r\n });\r\n return () => click.off(this.submitInputRef.current, {\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n return\r\n }\r\n onActive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.showWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onInactive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.hideWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n onClick: onClick,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n null === onClick || void 0 === onClick ? void 0 : onClick({\r\n event: event\r\n });\r\n useSubmitBehavior && this.submitInputRef.current.click()\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which || \"enter\" === keyName || \"enter\" === which) {\r\n originalEvent.preventDefault();\r\n this.emitClickEvent()\r\n }\r\n return\r\n }\r\n emitClickEvent() {\r\n this.contentRef.current.click()\r\n }\r\n get aria() {\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.props;\r\n var label = null !== text && void 0 !== text ? text : \"\";\r\n if (!text && icon) {\r\n var iconSource = getImageSourceType(icon);\r\n switch (iconSource) {\r\n case \"image\":\r\n var isPathToImage = !icon.includes(\"base64\") && /^(?!(?:https?:\\/\\/)|(?:ftp:\\/\\/)|(?:www\\.))[^\\s]+$/.test(icon);\r\n label = isPathToImage ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"\";\r\n break;\r\n case \"dxIcon\":\r\n label = messageLocalization.format(camelize(icon, true)) || icon;\r\n break;\r\n case \"fontIcon\":\r\n label = icon;\r\n break;\r\n case \"svg\":\r\n var _titleRegexp$exec$, _titleRegexp$exec;\r\n var title = null !== (_titleRegexp$exec$ = null === (_titleRegexp$exec = /(.*?)<\\/title>/.exec(icon)) || void 0 === _titleRegexp$exec ? void 0 : _titleRegexp$exec[1]) && void 0 !== _titleRegexp$exec$ ? _titleRegexp$exec$ : \"\";\r\n label = title\r\n }\r\n }\r\n return _extends({\r\n role: \"button\"\r\n }, label ? {\r\n label: label\r\n } : {})\r\n }\r\n get cssClasses() {\r\n return getCssClasses(this.props)\r\n }\r\n get iconSource() {\r\n var {\r\n icon: icon\r\n } = this.props;\r\n return null !== icon && void 0 !== icon ? icon : \"\"\r\n }\r\n get inkRippleConfig() {\r\n if (void 0 !== this.__getterCache.inkRippleConfig) {\r\n return this.__getterCache.inkRippleConfig\r\n }\r\n return this.__getterCache.inkRippleConfig = (() => {\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.props;\r\n return !text && icon ? {\r\n isCentered: true,\r\n useHoldAnimation: false,\r\n waveSizeCoefficient: 1\r\n } : {}\r\n })()\r\n }\r\n get buttonTemplateData() {\r\n var {\r\n icon: icon,\r\n templateData: templateData,\r\n text: text\r\n } = this.props;\r\n return _extends({\r\n icon: icon,\r\n text: text\r\n }, templateData)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n activate() {\r\n this.widgetRef.current.activate()\r\n }\r\n deactivate() {\r\n this.widgetRef.current.deactivate()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.icon !== nextProps.icon || this.props.text !== nextProps.text) {\r\n this.__getterCache.inkRippleConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n template: getTemplate(props.template),\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n contentRef: this.contentRef,\r\n submitInputRef: this.submitInputRef,\r\n inkRippleRef: this.inkRippleRef,\r\n widgetRef: this.widgetRef,\r\n onActive: this.onActive,\r\n onInactive: this.onInactive,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n emitClickEvent: this.emitClickEvent,\r\n aria: this.aria,\r\n cssClasses: this.cssClasses,\r\n iconSource: this.iconSource,\r\n inkRippleConfig: this.inkRippleConfig,\r\n buttonTemplateData: this.buttonTemplateData,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nButton.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(ButtonProps), Object.getOwnPropertyDescriptors(_extends({}, convertRulesToOptions(defaultOptionRules)))));\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Button.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Button.defaultProps), Object.getOwnPropertyDescriptors(convertRulesToOptions(defaultOptionRules)), Object.getOwnPropertyDescriptors(convertRulesToOptions(__defaultOptionRules))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.j.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport BaseComponent from \"../component_wrapper/button\";\r\nimport {\r\n Button as ButtonComponent,\r\n defaultOptions\r\n} from \"./button\";\r\nexport default class Button extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n activate() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.activate(...arguments)\r\n }\r\n deactivate() {\r\n var _this$viewRef3;\r\n return null === (_this$viewRef3 = this.viewRef) || void 0 === _this$viewRef3 ? void 0 : _this$viewRef3.deactivate(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onClick: {\r\n excludeValidators: [\"readOnly\"]\r\n },\r\n onSubmit: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [\"onSubmit\"],\r\n templates: [\"template\", \"iconTemplate\"],\r\n props: [\"activeStateEnabled\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"onClick\", \"onSubmit\", \"pressed\", \"stylingMode\", \"template\", \"iconTemplate\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"templateData\", \"className\", \"accessKey\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return ButtonComponent\r\n }\r\n}\r\nregisterComponent(\"dxButton\", Button);\r\nButton.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/texteditor_button_collection/m_custom.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n end,\r\n start\r\n} from \"../../../../events/hover\";\r\nimport Button from \"../../../../ui/button\";\r\nimport TextEditorButton from \"./m_button\";\r\nvar CUSTOM_BUTTON_HOVERED_CLASS = \"dx-custom-button-hovered\";\r\nexport default class CustomButton extends TextEditorButton {\r\n _attachEvents(instance, $element) {\r\n var {\r\n editor: editor\r\n } = this;\r\n eventsEngine.on($element, start, () => {\r\n editor.$element().addClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, end, () => {\r\n editor.$element().removeClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, clickEventName, e => {\r\n e.stopPropagation()\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"<div>\");\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, this.options, {\r\n ignoreParentReadOnly: true,\r\n disabled: this._isDisabled(),\r\n integrationOptions: this._prepareIntegrationOptions(editor)\r\n }));\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _prepareIntegrationOptions(editor) {\r\n return extend({}, editor.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\"]\r\n })\r\n }\r\n update() {\r\n var isUpdated = super.update();\r\n if (this.instance) {\r\n this.instance.option(\"disabled\", this._isDisabled())\r\n }\r\n return isUpdated\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"visible\")\r\n }\r\n _isDisabled() {\r\n var isDefinedByUser = void 0 !== this.options.disabled;\r\n if (isDefinedByUser) {\r\n return this.instance ? this.instance.option(\"disabled\") : this.options.disabled\r\n }\r\n return this.editor.option(\"readOnly\")\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/texteditor_button_collection/m_index.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport CustomButton from \"./m_custom\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\n\r\nfunction checkButtonInfo(buttonInfo) {\r\n (() => {\r\n if (!buttonInfo || \"object\" !== typeof buttonInfo || Array.isArray(buttonInfo)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n })();\r\n (() => {\r\n if (!(\"name\" in buttonInfo)) {\r\n throw errors.Error(\"E1054\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n name: name\r\n } = buttonInfo;\r\n if (\"string\" !== typeof name) {\r\n throw errors.Error(\"E1055\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n location: location\r\n } = buttonInfo;\r\n if (\"location\" in buttonInfo && \"after\" !== location && \"before\" !== location) {\r\n buttonInfo.location = \"after\"\r\n }\r\n })()\r\n}\r\n\r\nfunction checkNamesUniqueness(existingNames, newName) {\r\n if (-1 !== existingNames.indexOf(newName)) {\r\n throw errors.Error(\"E1055\", newName)\r\n }\r\n existingNames.push(newName)\r\n}\r\n\r\nfunction isPredefinedButtonName(name, predefinedButtonsInfo) {\r\n return !!predefinedButtonsInfo.find(info => info.name === name)\r\n}\r\nexport default class TextEditorButtonCollection {\r\n constructor(editor, defaultButtonsInfo) {\r\n this.buttons = [];\r\n this.defaultButtonsInfo = defaultButtonsInfo;\r\n this.editor = editor\r\n }\r\n _compileButtonInfo(buttons) {\r\n var names = [];\r\n return buttons.map(button => {\r\n var isStringButton = \"string\" === typeof button;\r\n if (!isStringButton) {\r\n checkButtonInfo(button)\r\n }\r\n var isDefaultButton = isStringButton || isPredefinedButtonName(button.name, this.defaultButtonsInfo);\r\n if (isDefaultButton) {\r\n var defaultButtonInfo = this.defaultButtonsInfo.find(_ref => {\r\n var {\r\n name: name\r\n } = _ref;\r\n return name === button || name === button.name\r\n });\r\n if (!defaultButtonInfo) {\r\n throw errors.Error(\"E1056\", this.editor.NAME, button)\r\n }\r\n checkNamesUniqueness(names, button);\r\n return defaultButtonInfo\r\n }\r\n var {\r\n name: name\r\n } = button;\r\n checkNamesUniqueness(names, name);\r\n return extend(button, {\r\n Ctor: CustomButton\r\n })\r\n })\r\n }\r\n _createButton(buttonsInfo) {\r\n var {\r\n Ctor: Ctor,\r\n options: options,\r\n name: name\r\n } = buttonsInfo;\r\n var button = new Ctor(name, this.editor, options);\r\n this.buttons.push(button);\r\n return button\r\n }\r\n _renderButtons(buttons, $container, targetLocation) {\r\n var $buttonsContainer = null;\r\n var buttonsInfo = buttons ? this._compileButtonInfo(buttons) : this.defaultButtonsInfo;\r\n buttonsInfo.forEach(buttonsInfo => {\r\n var {\r\n location: location = \"after\"\r\n } = buttonsInfo;\r\n if (location === targetLocation) {\r\n this._createButton(buttonsInfo).render((() => {\r\n $buttonsContainer = null !== $buttonsContainer && void 0 !== $buttonsContainer ? $buttonsContainer : $(\"<div>\").addClass(TEXTEDITOR_BUTTONS_CONTAINER_CLASS);\r\n \"before\" === targetLocation ? $container.prepend($buttonsContainer) : $container.append($buttonsContainer);\r\n return $buttonsContainer\r\n })())\r\n }\r\n });\r\n return $buttonsContainer\r\n }\r\n clean() {\r\n this.buttons.forEach(button => button.dispose());\r\n this.buttons = []\r\n }\r\n getButton(buttonName) {\r\n var button = this.buttons.find(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return name === buttonName\r\n });\r\n return button && button.instance\r\n }\r\n renderAfterButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"after\")\r\n }\r\n renderBeforeButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"before\")\r\n }\r\n updateButtons(names) {\r\n this.buttons.forEach(button => {\r\n if (!names || -1 !== names.indexOf(button.name)) {\r\n button.update()\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../../../core/config\";\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport resizeObserverSingleton from \"../../../core/resize_observer\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport {\r\n current,\r\n isFluent,\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport {\r\n focused\r\n} from \"../../../ui/widget/selectors\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport ClearButton from \"./m_text_editor.clear\";\r\nimport {\r\n TextEditorLabel\r\n} from \"./m_text_editor.label\";\r\nimport TextEditorButtonCollection from \"./texteditor_button_collection/m_index\";\r\nvar TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_SELECTOR = \".\".concat(TEXTEDITOR_INPUT_CLASS);\r\nvar TEXTEDITOR_CONTAINER_CLASS = \"dx-texteditor-container\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\nvar TEXTEDITOR_PLACEHOLDER_CLASS = \"dx-placeholder\";\r\nvar TEXTEDITOR_EMPTY_INPUT_CLASS = \"dx-texteditor-empty\";\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar TEXTEDITOR_VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar TEXTEDITOR_VALID_CLASS = \"dx-valid\";\r\nvar EVENTS_LIST = [\"KeyDown\", \"KeyPress\", \"KeyUp\", \"Change\", \"Cut\", \"Copy\", \"Paste\", \"Input\"];\r\nvar CONTROL_KEYS = [\"tab\", \"enter\", \"shift\", \"control\", \"alt\", \"escape\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"upArrow\", \"rightArrow\", \"downArrow\"];\r\nvar TextEditorLabelCreator = TextEditorLabel;\r\n\r\nfunction checkButtonsOptionType(buttons) {\r\n if (isDefined(buttons) && !Array.isArray(buttons)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n}\r\nvar TextEditorBase = Editor.inherit({\r\n ctor(_, options) {\r\n if (options) {\r\n checkButtonsOptionType(options.buttons)\r\n }\r\n this._buttonCollection = new TextEditorButtonCollection(this, this._getDefaultButtons());\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._labelContainerElement = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n buttons: void 0,\r\n value: \"\",\r\n spellcheck: false,\r\n showClearButton: false,\r\n valueChangeEvent: \"change\",\r\n placeholder: \"\",\r\n inputAttr: {},\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyDown: null,\r\n onKeyUp: null,\r\n onChange: null,\r\n onInput: null,\r\n onCut: null,\r\n onCopy: null,\r\n onPaste: null,\r\n onEnterKey: null,\r\n mode: \"text\",\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n text: void 0,\r\n displayValueFormatter: value => isDefined(value) && false !== value ? value : \"\",\r\n stylingMode: config().editorStylingMode || \"outlined\",\r\n showValidationMark: true,\r\n label: \"\",\r\n labelMode: \"static\",\r\n labelMark: \"\"\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device() {\r\n var themeName = current();\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n labelMode: \"floating\",\r\n stylingMode: config().editorStylingMode || \"filled\"\r\n }\r\n }, {\r\n device() {\r\n var themeName = current();\r\n return isFluent(themeName)\r\n },\r\n options: {\r\n labelMode: \"outside\"\r\n }\r\n }])\r\n },\r\n _getDefaultButtons: () => [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }],\r\n _isClearButtonVisible() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n },\r\n _input() {\r\n return this.$element().find(TEXTEDITOR_INPUT_SELECTOR).first()\r\n },\r\n _isFocused() {\r\n return focused(this._input()) || this.callBase()\r\n },\r\n _inputWrapper() {\r\n return this.$element()\r\n },\r\n _buttonsContainer() {\r\n return this._inputWrapper().find(\".\".concat(TEXTEDITOR_BUTTONS_CONTAINER_CLASS)).eq(0)\r\n },\r\n _isControlKey: key => CONTROL_KEYS.includes(key),\r\n _renderStylingMode() {\r\n this.callBase();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(TEXTEDITOR_CLASS);\r\n this._renderInput();\r\n this._renderButtonContainers();\r\n this._renderStylingMode();\r\n this._renderInputType();\r\n this._renderPlaceholder();\r\n this._renderProps();\r\n this.callBase();\r\n this._renderValue();\r\n this._renderLabel()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n this._renderEnterKeyAction();\r\n this._renderEmptinessEvent()\r\n },\r\n _renderInput() {\r\n this._$textEditorContainer = $(\"<div>\").addClass(TEXTEDITOR_CONTAINER_CLASS).appendTo(this.$element());\r\n this._$textEditorInputContainer = $(\"<div>\").addClass(TEXTEDITOR_INPUT_CONTAINER_CLASS).appendTo(this._$textEditorContainer);\r\n this._$textEditorInputContainer.append(this._createInput())\r\n },\r\n _getInputContainer() {\r\n return this._$textEditorInputContainer\r\n },\r\n _renderPendingIndicator() {\r\n this.$element().addClass(TEXTEDITOR_VALIDATION_PENDING_CLASS);\r\n var $inputContainer = this._getInputContainer();\r\n var $indicatorElement = $(\"<div>\").addClass(TEXTEDITOR_PENDING_INDICATOR_CLASS).appendTo($inputContainer);\r\n this._pendingIndicator = this._createComponent($indicatorElement, LoadIndicator)\r\n },\r\n _disposePendingIndicator() {\r\n if (!this._pendingIndicator) {\r\n return\r\n }\r\n this._pendingIndicator.dispose();\r\n this._pendingIndicator.$element().remove();\r\n this._pendingIndicator = null;\r\n this.$element().removeClass(TEXTEDITOR_VALIDATION_PENDING_CLASS)\r\n },\r\n _renderValidationState() {\r\n this.callBase();\r\n var isPending = \"pending\" === this.option(\"validationStatus\");\r\n if (isPending) {\r\n !this._pendingIndicator && this._renderPendingIndicator();\r\n this._showValidMark = false\r\n } else {\r\n if (\"invalid\" === this.option(\"validationStatus\")) {\r\n this._showValidMark = false\r\n }\r\n if (!this._showValidMark && true === this.option(\"showValidationMark\")) {\r\n this._showValidMark = \"valid\" === this.option(\"validationStatus\") && !!this._pendingIndicator\r\n }\r\n this._disposePendingIndicator()\r\n }\r\n this._toggleValidMark()\r\n },\r\n _getButtonsContainer() {\r\n return this._$textEditorContainer\r\n },\r\n _renderButtonContainers() {\r\n var buttons = this.option(\"buttons\");\r\n var $buttonsContainer = this._getButtonsContainer();\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, $buttonsContainer);\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, $buttonsContainer)\r\n },\r\n _cleanButtonContainers() {\r\n var _a, _b;\r\n null === (_a = this._$beforeButtonsContainer) || void 0 === _a ? void 0 : _a.remove();\r\n null === (_b = this._$afterButtonsContainer) || void 0 === _b ? void 0 : _b.remove();\r\n this._buttonCollection.clean()\r\n },\r\n _clean() {\r\n this._buttonCollection.clean();\r\n this._disposePendingIndicator();\r\n this._unobserveLabelContainerResize();\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._$textEditorContainer = null;\r\n this.callBase()\r\n },\r\n _createInput() {\r\n var $input = $(\"<input>\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n return $input\r\n },\r\n _setSubmitElementName(name) {\r\n var inputAttrName = this.option(\"inputAttr.name\");\r\n return this.callBase(name || inputAttrName || \"\")\r\n },\r\n _applyInputAttributes($input, customAttributes) {\r\n var inputAttributes = extend(this._getDefaultAttributes(), customAttributes);\r\n $input.attr(inputAttributes).addClass(TEXTEDITOR_INPUT_CLASS);\r\n this._setInputMinHeight($input)\r\n },\r\n _setInputMinHeight($input) {\r\n $input.css(\"minHeight\", this.option(\"height\") ? \"0\" : \"\")\r\n },\r\n _getPlaceholderAttr() {\r\n var {\r\n ios: ios,\r\n mac: mac\r\n } = devices.real();\r\n var {\r\n placeholder: placeholder\r\n } = this.option();\r\n var value = placeholder || (ios || mac ? \" \" : null);\r\n return value\r\n },\r\n _getDefaultAttributes() {\r\n var defaultAttributes = {\r\n autocomplete: \"off\",\r\n placeholder: this._getPlaceholderAttr()\r\n };\r\n return defaultAttributes\r\n },\r\n _updateButtons(names) {\r\n this._buttonCollection.updateButtons(names)\r\n },\r\n _updateButtonsStyling(editorStylingMode) {\r\n each(this.option(\"buttons\"), (_, _ref) => {\r\n var {\r\n options: options,\r\n name: buttonName\r\n } = _ref;\r\n if (options && !options.stylingMode && this.option(\"visible\")) {\r\n var buttonInstance = this.getButton(buttonName);\r\n buttonInstance.option && buttonInstance.option(\"stylingMode\", \"underlined\" === editorStylingMode ? \"text\" : \"contained\")\r\n }\r\n })\r\n },\r\n _renderValue() {\r\n var renderInputPromise = this._renderInputValue();\r\n return renderInputPromise.promise()\r\n },\r\n _renderInputValue(value) {\r\n value = null !== value && void 0 !== value ? value : this.option(\"value\");\r\n var text = this.option(\"text\");\r\n var displayValue = this.option(\"displayValue\");\r\n var displayValueFormatter = this.option(\"displayValueFormatter\");\r\n if (void 0 !== displayValue && null !== value) {\r\n text = displayValueFormatter(displayValue)\r\n } else if (!isDefined(text)) {\r\n text = displayValueFormatter(value)\r\n }\r\n this.option(\"text\", text);\r\n if (this._input().val() !== (isDefined(text) ? text : \"\")) {\r\n this._renderDisplayText(text)\r\n } else {\r\n this._toggleEmptinessEventHandler()\r\n }\r\n return Deferred().resolve()\r\n },\r\n _renderDisplayText(text) {\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _isValueValid() {\r\n if (this._input().length) {\r\n var {\r\n validity: validity\r\n } = this._input().get(0);\r\n if (validity) {\r\n return validity.valid\r\n }\r\n }\r\n return true\r\n },\r\n _toggleEmptiness(isEmpty) {\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty);\r\n this._togglePlaceholder(isEmpty)\r\n },\r\n _togglePlaceholder(isEmpty) {\r\n this.$element().find(\".\".concat(TEXTEDITOR_PLACEHOLDER_CLASS)).eq(0).toggleClass(STATE_INVISIBLE_CLASS, !isEmpty)\r\n },\r\n _renderProps() {\r\n this._toggleReadOnlyState();\r\n this._toggleSpellcheckState();\r\n this._toggleTabIndex()\r\n },\r\n _toggleDisabledState(value) {\r\n this.callBase.apply(this, arguments);\r\n var $input = this._input();\r\n $input.prop(\"disabled\", value)\r\n },\r\n _toggleTabIndex() {\r\n var $input = this._input();\r\n var disabled = this.option(\"disabled\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n if (disabled || !focusStateEnabled) {\r\n $input.attr(\"tabIndex\", -1)\r\n } else {\r\n $input.removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _toggleReadOnlyState() {\r\n this._input().prop(\"readOnly\", this._readOnlyPropValue());\r\n this.callBase()\r\n },\r\n _readOnlyPropValue() {\r\n return this.option(\"readOnly\")\r\n },\r\n _toggleSpellcheckState() {\r\n this._input().prop(\"spellcheck\", this.option(\"spellcheck\"))\r\n },\r\n _unobserveLabelContainerResize() {\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.unobserve(this._labelContainerElement);\r\n this._labelContainerElement = null\r\n }\r\n },\r\n _getLabelContainer() {\r\n return this._input()\r\n },\r\n _getLabelContainerWidth() {\r\n return getWidth(this._getLabelContainer())\r\n },\r\n _getLabelBeforeWidth() {\r\n var buttonsBeforeWidth = this._$beforeButtonsContainer && getWidth(this._$beforeButtonsContainer);\r\n return null !== buttonsBeforeWidth && void 0 !== buttonsBeforeWidth ? buttonsBeforeWidth : 0\r\n },\r\n _updateLabelWidth() {\r\n this._label.updateBeforeWidth(this._getLabelBeforeWidth());\r\n this._label.updateMaxWidth(this._getLabelContainerWidth())\r\n },\r\n _getFieldElement() {\r\n return this._getLabelContainer()\r\n },\r\n _setFieldAria(force) {\r\n var _a;\r\n var inputAttr = this.option(\"inputAttr\");\r\n var ariaLabel = null === inputAttr || void 0 === inputAttr ? void 0 : inputAttr[\"aria-label\"];\r\n var labelId = null === (_a = this._label) || void 0 === _a ? void 0 : _a.getId();\r\n var value = ariaLabel ? void 0 : labelId;\r\n if (value || force) {\r\n var aria = {\r\n labelledby: value,\r\n label: ariaLabel\r\n };\r\n this.setAria(aria, this._getFieldElement())\r\n }\r\n },\r\n _renderLabel() {\r\n this._unobserveLabelContainerResize();\r\n this._labelContainerElement = $(this._getLabelContainer()).get(0);\r\n var {\r\n label: label,\r\n labelMode: labelMode,\r\n labelMark: labelMark,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var labelConfig = {\r\n onClickHandler: () => {\r\n this.focus()\r\n },\r\n onHoverHandler: e => {\r\n e.stopPropagation()\r\n },\r\n onActiveHandler: e => {\r\n e.stopPropagation()\r\n },\r\n $editor: this.$element(),\r\n text: label,\r\n mark: labelMark,\r\n mode: labelMode,\r\n rtlEnabled: rtlEnabled,\r\n containsButtonsBefore: !!this._$beforeButtonsContainer,\r\n getContainerWidth: () => this._getLabelContainerWidth(),\r\n getBeforeWidth: () => this._getLabelBeforeWidth()\r\n };\r\n this._label = new TextEditorLabelCreator(labelConfig);\r\n this._setFieldAria();\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.observe(this._labelContainerElement, this._updateLabelWidth.bind(this))\r\n }\r\n },\r\n _renderPlaceholder() {\r\n this._renderPlaceholderMarkup();\r\n this._attachPlaceholderEvents()\r\n },\r\n _renderPlaceholderMarkup() {\r\n if (this._$placeholder) {\r\n this._$placeholder.remove();\r\n this._$placeholder = null\r\n }\r\n var $input = this._input();\r\n var placeholder = this.option(\"placeholder\");\r\n var placeholderAttributes = {\r\n id: placeholder ? \"dx-\".concat(new Guid) : void 0,\r\n \"data-dx_placeholder\": placeholder\r\n };\r\n var $placeholder = this._$placeholder = $(\"<div>\").attr(placeholderAttributes);\r\n $placeholder.insertAfter($input);\r\n $placeholder.addClass(TEXTEDITOR_PLACEHOLDER_CLASS)\r\n },\r\n _attachPlaceholderEvents() {\r\n var startEvent = addNamespace(pointerEvents.up, this.NAME);\r\n eventsEngine.on(this._$placeholder, startEvent, () => {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n });\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _placeholder() {\r\n return this._$placeholder || $()\r\n },\r\n _clearValueHandler(e) {\r\n var $input = this._input();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._clearValue();\r\n !this._isFocused() && eventsEngine.trigger($input, \"focus\");\r\n eventsEngine.trigger($input, \"input\")\r\n },\r\n _clearValue() {\r\n this.clear()\r\n },\r\n _renderEvents() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n if (this.hasActionSubscription(\"on\".concat(event))) {\r\n var action = this._createActionByOption(\"on\".concat(event), {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.on($input, addNamespace(event.toLowerCase(), this.NAME), e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n action({\r\n event: e\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _refreshEvents() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n eventsEngine.off($input, addNamespace(event.toLowerCase(), this.NAME))\r\n });\r\n this._renderEvents()\r\n },\r\n _keyPressHandler() {\r\n this.option(\"text\", this._input().val())\r\n },\r\n _keyDownHandler(e) {\r\n var $input = this._input();\r\n var isCtrlEnter = e.ctrlKey && \"enter\" === normalizeKeyName(e);\r\n var isNewValue = $input.val() !== this.option(\"value\");\r\n if (isCtrlEnter && isNewValue) {\r\n eventsEngine.trigger($input, \"change\")\r\n }\r\n },\r\n _getValueChangeEventOptionName: () => \"valueChangeEvent\",\r\n _renderValueChangeEvent() {\r\n var keyPressEvent = addNamespace(this._renderValueEventName(), \"\".concat(this.NAME, \"TextChange\"));\r\n var valueChangeEvent = addNamespace(this.option(this._getValueChangeEventOptionName()), \"\".concat(this.NAME, \"ValueChange\"));\r\n var keyDownEvent = addNamespace(\"keydown\", \"\".concat(this.NAME, \"TextChange\"));\r\n var $input = this._input();\r\n eventsEngine.on($input, keyPressEvent, this._keyPressHandler.bind(this));\r\n eventsEngine.on($input, valueChangeEvent, this._valueChangeEventHandler.bind(this));\r\n eventsEngine.on($input, keyDownEvent, this._keyDownHandler.bind(this))\r\n },\r\n _cleanValueChangeEvent() {\r\n var valueChangeNamespace = \".\".concat(this.NAME, \"ValueChange\");\r\n var textChangeNamespace = \".\".concat(this.NAME, \"TextChange\");\r\n eventsEngine.off(this._input(), valueChangeNamespace);\r\n eventsEngine.off(this._input(), textChangeNamespace)\r\n },\r\n _refreshValueChangeEvent() {\r\n this._cleanValueChangeEvent();\r\n this._renderValueChangeEvent()\r\n },\r\n _renderValueEventName: () => \"input change keypress\",\r\n _focusTarget() {\r\n return this._input()\r\n },\r\n _focusEventTarget() {\r\n return this.element()\r\n },\r\n _isInput(element) {\r\n return element === this._input().get(0)\r\n },\r\n _preventNestedFocusEvent(event) {\r\n if (event.isDefaultPrevented()) {\r\n return true\r\n }\r\n var shouldPrevent = this._isNestedTarget(event.relatedTarget);\r\n if (\"focusin\" === event.type) {\r\n shouldPrevent = shouldPrevent && this._isNestedTarget(event.target) && !this._isInput(event.target)\r\n } else if (!shouldPrevent) {\r\n this._toggleFocusClass(false, this.$element())\r\n }\r\n shouldPrevent && event.preventDefault();\r\n return shouldPrevent\r\n },\r\n _isNestedTarget(target) {\r\n return !!this.$element().find(target).length\r\n },\r\n _focusClassTarget() {\r\n return this.$element()\r\n },\r\n _focusInHandler(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n this.callBase(isFocused, this._focusClassTarget($element))\r\n },\r\n _hasFocusClass(element) {\r\n return this.callBase($(element || this.$element()))\r\n },\r\n _renderEmptinessEvent() {\r\n var $input = this._input();\r\n eventsEngine.on($input, \"input blur\", this._toggleEmptinessEventHandler.bind(this))\r\n },\r\n _toggleEmptinessEventHandler() {\r\n var text = this._input().val();\r\n var isEmpty = (\"\" === text || null === text) && this._isValueValid();\r\n this._toggleEmptiness(isEmpty)\r\n },\r\n _valueChangeEventHandler(e, formattedValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", arguments.length > 1 ? formattedValue : this._input().val());\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _renderEnterKeyAction() {\r\n this._enterKeyAction = this._createActionByOption(\"onEnterKey\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.off(this._input(), \"keyup.onEnterKey.dxTextEditor\");\r\n eventsEngine.on(this._input(), \"keyup.onEnterKey.dxTextEditor\", this._enterKeyHandlerUp.bind(this))\r\n },\r\n _enterKeyHandlerUp(e) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (\"enter\" === normalizeKeyName(e)) {\r\n this._enterKeyAction({\r\n event: e\r\n })\r\n }\r\n },\r\n _updateValue() {\r\n this._options.silent(\"text\", null);\r\n this._renderValue()\r\n },\r\n _dispose() {\r\n this._enterKeyAction = void 0;\r\n this.callBase()\r\n },\r\n _getSubmitElement() {\r\n return this._input()\r\n },\r\n _hasActiveElement() {\r\n return this._input().is(domAdapter.getActiveElement(this._input()[0]))\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = args;\r\n var eventName = name.replace(\"on\", \"\");\r\n if (EVENTS_LIST.includes(eventName)) {\r\n this._refreshEvents();\r\n return\r\n }\r\n switch (name) {\r\n case \"valueChangeEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"focusStateEnabled\":\r\n this.callBase(args);\r\n this._toggleTabIndex();\r\n break;\r\n case \"spellcheck\":\r\n this._toggleSpellcheckState();\r\n break;\r\n case \"mode\":\r\n this._renderInputType();\r\n break;\r\n case \"onEnterKey\":\r\n this._renderEnterKeyAction();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n this._setFieldAria(true);\r\n this._input().attr({\r\n placeholder: this._getPlaceholderAttr()\r\n });\r\n break;\r\n case \"label\":\r\n this._label.updateText(value);\r\n this._setFieldAria(true);\r\n break;\r\n case \"labelMark\":\r\n this._label.updateMark(value);\r\n break;\r\n case \"labelMode\":\r\n this._label.updateMode(value);\r\n this._setFieldAria();\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._label.updateMaxWidth(this._getLabelContainerWidth());\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateButtons();\r\n this.callBase(args);\r\n break;\r\n case \"showClearButton\":\r\n this._updateButtons([\"clear\"]);\r\n break;\r\n case \"text\":\r\n break;\r\n case \"value\":\r\n this._updateValue();\r\n this.callBase(args);\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this._input(), this.option(name));\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n this._updateLabelWidth();\r\n break;\r\n case \"buttons\":\r\n if (fullName === name) {\r\n checkButtonsOptionType(value)\r\n }\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"));\r\n this._updateLabelWidth();\r\n this._label.updateContainsButtonsBefore(!!this._$beforeButtonsContainer);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (value && this.option(\"buttons\")) {\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n }\r\n break;\r\n case \"displayValueFormatter\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationMark\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderInputType() {\r\n this._setInputType(this.option(\"mode\"))\r\n },\r\n _setInputType(type) {\r\n var input = this._input();\r\n if (\"search\" === type) {\r\n type = \"text\"\r\n }\r\n try {\r\n input.prop(\"type\", type)\r\n } catch (e) {\r\n input.prop(\"type\", \"text\")\r\n }\r\n },\r\n getButton(name) {\r\n return this._buttonCollection.getButton(name)\r\n },\r\n focus() {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n },\r\n clear() {\r\n if (this._showValidMark) {\r\n this._showValidMark = false;\r\n this._renderValidationState()\r\n }\r\n var defaultOptions = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultOptions.value) {\r\n this._options.silent(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n },\r\n _resetToInitialValue() {\r\n if (this.option(\"value\") === this._initialValue) {\r\n this._options.silent(\"text\", this._initialValue);\r\n this._renderValue()\r\n } else {\r\n this.callBase()\r\n }\r\n this._disposePendingIndicator();\r\n this._showValidMark = false;\r\n this._toggleValidMark()\r\n },\r\n _toggleValidMark() {\r\n this.$element().toggleClass(TEXTEDITOR_VALID_CLASS, !!this._showValidMark)\r\n },\r\n reset() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this.callBase(value)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n on(eventName, eventHandler) {\r\n var result = this.callBase(eventName, eventHandler);\r\n var event = eventName.charAt(0).toUpperCase() + eventName.substr(1);\r\n if (EVENTS_LIST.includes(event)) {\r\n this._refreshEvents()\r\n }\r\n return result\r\n }\r\n});\r\nexport default TextEditorBase;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.mask.rule.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nvar EMPTY_CHAR = \" \";\r\nclass BaseMaskRule {\r\n constructor(config) {\r\n this._value = EMPTY_CHAR;\r\n extend(this, config)\r\n }\r\n next(rule) {\r\n if (!arguments.length) {\r\n return this._next\r\n }\r\n this._next = rule\r\n }\r\n _prepareHandlingArgs(args, config) {\r\n var _a, _b, _c;\r\n config = config || {};\r\n var handlingProperty = Object.prototype.hasOwnProperty.call(args, \"value\") ? \"value\" : \"text\";\r\n args[handlingProperty] = null !== (_a = config.str) && void 0 !== _a ? _a : args[handlingProperty];\r\n args.start = null !== (_b = config.start) && void 0 !== _b ? _b : args.start;\r\n args.length = null !== (_c = config.length) && void 0 !== _c ? _c : args.length;\r\n args.index += 1;\r\n return args\r\n }\r\n first(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n }\r\n isAccepted(caret) {\r\n return false\r\n }\r\n adjustedCaret(caret, isForwardDirection, char) {\r\n return isForwardDirection ? this._adjustedForward(caret, 0, char) : this._adjustedBackward(caret, 0, char)\r\n }\r\n _adjustedForward(caret, index, char) {}\r\n _adjustedBackward(caret, index, char) {}\r\n isValid(args) {}\r\n reset() {}\r\n clear(args) {}\r\n text() {}\r\n value() {}\r\n rawValue() {}\r\n handle(args) {}\r\n}\r\nexport class EmptyMaskRule extends BaseMaskRule {\r\n next() {}\r\n handle() {\r\n return 0\r\n }\r\n text() {\r\n return \"\"\r\n }\r\n value() {\r\n return \"\"\r\n }\r\n first() {\r\n return 0\r\n }\r\n rawValue() {\r\n return \"\"\r\n }\r\n adjustedCaret() {\r\n return 0\r\n }\r\n isValid() {\r\n return true\r\n }\r\n}\r\nexport class MaskRule extends BaseMaskRule {\r\n text() {\r\n return (this._value !== EMPTY_CHAR ? this._value : this.maskChar) + this.next().text()\r\n }\r\n value() {\r\n return this._value + this.next().value()\r\n }\r\n rawValue() {\r\n return this._value + this.next().rawValue()\r\n }\r\n handle(args) {\r\n var str = Object.prototype.hasOwnProperty.call(args, \"value\") ? args.value : args.text;\r\n if (!str || !str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char, args);\r\n return this._accepted() ? this.next().handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n })) + 1 : this.handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }))\r\n }\r\n clear(args) {\r\n this._tryAcceptChar(EMPTY_CHAR, args);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n }\r\n reset() {\r\n this._accepted(false);\r\n this.next().reset()\r\n }\r\n _tryAcceptChar(char, args) {\r\n this._accepted(false);\r\n if (!this._isAllowed(char, args)) {\r\n return\r\n }\r\n var acceptedChar = char === EMPTY_CHAR ? this.maskChar : char;\r\n args.fullText = args.fullText.substring(0, args.index) + acceptedChar + args.fullText.substring(args.index + 1);\r\n this._accepted(true);\r\n this._value = char\r\n }\r\n _accepted(value) {\r\n if (!arguments.length) {\r\n return !!this._isAccepted\r\n }\r\n this._isAccepted = !!value\r\n }\r\n first(index) {\r\n return this._value === EMPTY_CHAR ? index || 0 : super.first(index)\r\n }\r\n _isAllowed(char, args) {\r\n if (char === EMPTY_CHAR) {\r\n return true\r\n }\r\n return this._isValid(char, args)\r\n }\r\n _isValid(char, args) {\r\n var {\r\n allowedChars: allowedChars\r\n } = this;\r\n if (allowedChars instanceof RegExp) {\r\n return allowedChars.test(char)\r\n }\r\n if (isFunction(allowedChars)) {\r\n return allowedChars(char, args.index, args.fullText)\r\n }\r\n if (Array.isArray(allowedChars)) {\r\n return allowedChars.includes(char)\r\n }\r\n return allowedChars === char\r\n }\r\n isAccepted(caret) {\r\n return 0 === caret ? this._accepted() : this.next().isAccepted(caret - 1)\r\n }\r\n _adjustedForward(caret, index, char) {\r\n if (index >= caret) {\r\n return index\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char) || index + 1\r\n }\r\n _adjustedBackward(caret, index) {\r\n if (index >= caret - 1) {\r\n return caret\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1) || index + 1\r\n }\r\n isValid(args) {\r\n return this._isValid(this._value, args) && this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n}\r\nexport class StubMaskRule extends MaskRule {\r\n value() {\r\n return this.next().value()\r\n }\r\n handle(args) {\r\n var hasValueProperty = Object.prototype.hasOwnProperty.call(args, \"value\");\r\n var str = hasValueProperty ? args.value : args.text;\r\n if (!str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start || hasValueProperty) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start && args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char);\r\n var nextArgs = this._isAllowed(char) ? this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }) : args;\r\n return this.next().handle(nextArgs) + 1\r\n }\r\n clear(args) {\r\n this._accepted(false);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n }\r\n _tryAcceptChar(char) {\r\n this._accepted(this._isValid(char))\r\n }\r\n _isValid(char) {\r\n return char === this.maskChar\r\n }\r\n first(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n }\r\n _adjustedForward(caret, index, char) {\r\n if (index >= caret && char === this.maskChar) {\r\n return index\r\n }\r\n if (caret === index + 1 && this._accepted()) {\r\n return caret\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char)\r\n }\r\n _adjustedBackward(caret, index) {\r\n if (index >= caret - 1) {\r\n return 0\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1)\r\n }\r\n isValid(args) {\r\n return this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.mask.strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n clipboardText as getClipboardText\r\n} from \"../../../core/utils/dom\";\r\nimport EventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nvar MASK_EVENT_NAMESPACE = \"dxMask\";\r\nvar BLUR_EVENT = \"blur beforedeactivate\";\r\nvar EMPTY_CHAR = \" \";\r\nvar DELETE_INPUT_TYPES = [\"deleteContentBackward\", \"deleteSoftLineBackward\", \"deleteContent\", \"deleteHardLineBackward\"];\r\nvar HISTORY_INPUT_TYPES = [\"historyUndo\", \"historyRedo\"];\r\nvar EVENT_NAMES = [\"focusIn\", \"focusOut\", \"input\", \"paste\", \"cut\", \"drop\", \"beforeInput\"];\r\n\r\nfunction getEmptyString(length) {\r\n return EMPTY_CHAR.repeat(length)\r\n}\r\nexport default class MaskStrategy {\r\n constructor(editor) {\r\n this.editor = editor\r\n }\r\n _editorOption() {\r\n return this.editor.option(...arguments)\r\n }\r\n _editorInput() {\r\n return this.editor._input()\r\n }\r\n _editorCaret(newCaret) {\r\n if (!newCaret) {\r\n return this.editor._caret()\r\n }\r\n this.editor._caret(newCaret)\r\n }\r\n _attachChangeEventHandler() {\r\n if (!this._editorOption(\"valueChangeEvent\").split(\" \").includes(\"change\")) {\r\n return\r\n }\r\n var $input = this._editorInput();\r\n var namespace = addNamespace(BLUR_EVENT, MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, namespace, e => {\r\n this.editor._changeHandler(e)\r\n })\r\n }\r\n _beforeInputHandler() {\r\n this._previousText = this._editorOption(\"text\");\r\n this._prevCaret = this._editorCaret()\r\n }\r\n _inputHandler(event) {\r\n var {\r\n originalEvent: originalEvent\r\n } = event;\r\n if (!originalEvent) {\r\n return\r\n }\r\n var {\r\n inputType: inputType\r\n } = originalEvent;\r\n if (HISTORY_INPUT_TYPES.includes(inputType)) {\r\n this._handleHistoryInputEvent()\r\n } else if (DELETE_INPUT_TYPES.includes(inputType)) {\r\n this._handleBackwardDeleteInputEvent()\r\n } else {\r\n var currentCaret = this._editorCaret();\r\n if (!currentCaret.end) {\r\n return\r\n }\r\n this._clearSelectedText();\r\n this._autoFillHandler(originalEvent);\r\n this._editorCaret(currentCaret);\r\n this._handleInsertTextInputEvent(originalEvent.data)\r\n }\r\n if (this._editorOption(\"text\") === this._previousText) {\r\n event.stopImmediatePropagation()\r\n }\r\n }\r\n _handleHistoryInputEvent() {\r\n var caret = this._editorCaret();\r\n this._updateEditorMask({\r\n start: caret.start,\r\n length: caret.end - caret.start,\r\n text: \"\"\r\n });\r\n this._editorCaret(this._prevCaret)\r\n }\r\n _handleBackwardDeleteInputEvent() {\r\n this._clearSelectedText();\r\n var caret = this._editorCaret();\r\n this.editor.setForwardDirection();\r\n this.editor._adjustCaret();\r\n var adjustedForwardCaret = this._editorCaret();\r\n if (adjustedForwardCaret.start !== caret.start) {\r\n this.editor.setBackwardDirection();\r\n this.editor._adjustCaret()\r\n }\r\n }\r\n _clearSelectedText() {\r\n var _a, _b;\r\n var length = (null === (_a = this._prevCaret) || void 0 === _a ? void 0 : _a.end) - (null === (_b = this._prevCaret) || void 0 === _b ? void 0 : _b.start) || 1;\r\n var caret = this._editorCaret();\r\n if (!this._isAutoFill()) {\r\n this.editor.setBackwardDirection();\r\n this._updateEditorMask({\r\n start: caret.start,\r\n length: length,\r\n text: getEmptyString(length)\r\n })\r\n }\r\n }\r\n _handleInsertTextInputEvent(data) {\r\n var _a, _b;\r\n var text = null !== data && void 0 !== data ? data : \"\";\r\n this.editor.setForwardDirection();\r\n var hasValidChars = this._updateEditorMask({\r\n start: null !== (_b = null === (_a = this._prevCaret) || void 0 === _a ? void 0 : _a.start) && void 0 !== _b ? _b : 0,\r\n length: text.length || 1,\r\n text: text\r\n });\r\n if (!hasValidChars) {\r\n this._editorCaret(this._prevCaret)\r\n }\r\n }\r\n _updateEditorMask(args) {\r\n var textLength = args.text.length;\r\n var processedCharsCount = this.editor._handleChain(args);\r\n this.editor._displayMask();\r\n if (this.editor.isForwardDirection()) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this._editorCaret();\r\n var correction = processedCharsCount - textLength;\r\n var hasSkippedStub = processedCharsCount > 1;\r\n if (hasSkippedStub && 1 === textLength) {\r\n this._editorCaret({\r\n start: start + correction,\r\n end: end + correction\r\n })\r\n }\r\n this.editor._adjustCaret()\r\n }\r\n return !!processedCharsCount\r\n }\r\n _focusInHandler() {\r\n this.editor._showMaskPlaceholder();\r\n this.editor.setForwardDirection();\r\n if (!this.editor._isValueEmpty() && this._editorOption(\"isValid\")) {\r\n this.editor._adjustCaret()\r\n } else {\r\n var caret = this.editor._maskRulesChain.first();\r\n this._caretTimeout = setTimeout(() => {\r\n this._editorCaret({\r\n start: caret,\r\n end: caret\r\n })\r\n }, 0)\r\n }\r\n }\r\n _focusOutHandler(event) {\r\n this.editor._changeHandler(event);\r\n if (\"onFocus\" === this._editorOption(\"showMaskMode\") && this.editor._isValueEmpty()) {\r\n this._editorOption(\"text\", \"\");\r\n this.editor._renderDisplayText(\"\")\r\n }\r\n }\r\n _delHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n editor._maskKeyHandler(event, () => {\r\n if (!editor._hasSelection()) {\r\n editor._handleKey(EMPTY_CHAR)\r\n }\r\n })\r\n }\r\n _cutHandler(event) {\r\n var caret = this._editorCaret();\r\n var selectedText = this._editorInput().val().substring(caret.start, caret.end);\r\n this.editor._maskKeyHandler(event, () => getClipboardText(event, selectedText))\r\n }\r\n _dropHandler() {\r\n this._clearDragTimer();\r\n this._dragTimer = setTimeout(() => {\r\n var value = this.editor._convertToValue(this._editorInput().val());\r\n this._editorOption(\"value\", value)\r\n })\r\n }\r\n _pasteHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n if (this._editorOption(\"disabled\")) {\r\n return\r\n }\r\n var caret = this._editorCaret();\r\n editor._maskKeyHandler(event, () => {\r\n var pastedText = getClipboardText(event);\r\n var restText = editor._maskRulesChain.text().substring(caret.end);\r\n var accepted = editor._handleChain({\r\n text: pastedText,\r\n start: caret.start,\r\n length: pastedText.length\r\n });\r\n var newCaret = caret.start + accepted;\r\n editor._handleChain({\r\n text: restText,\r\n start: newCaret,\r\n length: restText.length\r\n });\r\n editor._caret({\r\n start: newCaret,\r\n end: newCaret\r\n })\r\n })\r\n }\r\n _autoFillHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var inputVal = this._editorInput().val();\r\n this._inputHandlerTimer = setTimeout(() => {\r\n if (this._isAutoFill()) {\r\n editor._maskKeyHandler(event, () => {\r\n editor._handleChain({\r\n text: inputVal,\r\n start: 0,\r\n length: inputVal.length\r\n })\r\n });\r\n editor._validateMask()\r\n }\r\n })\r\n }\r\n _isAutoFill() {\r\n var _a;\r\n var $input = this._editorInput();\r\n if (browser.webkit) {\r\n var input = $input.get(0);\r\n return null !== (_a = null === input || void 0 === input ? void 0 : input.matches(\":-webkit-autofill\")) && void 0 !== _a ? _a : false\r\n }\r\n return false\r\n }\r\n _clearDragTimer() {\r\n clearTimeout(this._dragTimer)\r\n }\r\n _clearTimers() {\r\n this._clearDragTimer();\r\n clearTimeout(this._caretTimeout);\r\n clearTimeout(this._inputHandlerTimer)\r\n }\r\n getHandler(handlerName) {\r\n return args => {\r\n var _a;\r\n null === (_a = this[\"_\".concat(handlerName, \"Handler\")]) || void 0 === _a ? void 0 : _a.call(this, args)\r\n }\r\n }\r\n attachEvents() {\r\n var $input = this._editorInput();\r\n EVENT_NAMES.forEach(eventName => {\r\n var namespace = addNamespace(eventName.toLowerCase(), MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, namespace, this.getHandler(eventName))\r\n });\r\n this._attachChangeEventHandler()\r\n }\r\n detachEvents() {\r\n this._clearTimers();\r\n EventsEngine.off(this._editorInput(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n }\r\n clean() {\r\n this._clearTimers()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_utils.caret.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nvar {\r\n ios: ios,\r\n mac: mac\r\n} = devices.real();\r\nvar isFocusingOnCaretChange = ios || mac;\r\nvar getCaret = function(input) {\r\n var range;\r\n try {\r\n range = {\r\n start: input.selectionStart,\r\n end: input.selectionEnd\r\n }\r\n } catch (e) {\r\n range = {\r\n start: 0,\r\n end: 0\r\n }\r\n }\r\n return range\r\n};\r\nvar setCaret = function(input, position) {\r\n var body = domAdapter.getBody();\r\n if (!body.contains(input) && !body.contains(input.getRootNode().host)) {\r\n return\r\n }\r\n try {\r\n input.selectionStart = position.start;\r\n input.selectionEnd = position.end\r\n } catch (e) {}\r\n};\r\nvar caret = function(input, position) {\r\n var force = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n input = $(input).get(0);\r\n if (!isDefined(position)) {\r\n return getCaret(input)\r\n }\r\n if (!force && isFocusingOnCaretChange && domAdapter.getActiveElement(input) !== input) {\r\n return\r\n }\r\n setCaret(input, position)\r\n};\r\nexport default caret;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.mask.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isEmpty\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../../events/core/wheel\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n focused\r\n} from \"../../../ui/widget/selectors\";\r\nimport TextEditorBase from \"./m_text_editor.base\";\r\nimport {\r\n EmptyMaskRule,\r\n MaskRule,\r\n StubMaskRule\r\n} from \"./m_text_editor.mask.rule\";\r\nimport MaskStrategy from \"./m_text_editor.mask.strategy\";\r\nimport caretUtils from \"./m_utils.caret\";\r\nvar caret = caretUtils;\r\nvar EMPTY_CHAR = \" \";\r\nvar ESCAPED_CHAR = \"\\\\\";\r\nvar TEXTEDITOR_MASKED_CLASS = \"dx-texteditor-masked\";\r\nvar FORWARD_DIRECTION = \"forward\";\r\nvar BACKWARD_DIRECTION = \"backward\";\r\nvar DROP_EVENT_NAME = \"drop\";\r\nvar buildInMaskRules = {\r\n 0: /[0-9]/,\r\n 9: /[0-9\\s]/,\r\n \"#\": /[-+0-9\\s]/,\r\n L: char => isLiteralChar(char),\r\n l: char => isLiteralChar(char) || isSpaceChar(char),\r\n C: /\\S/,\r\n c: /./,\r\n A: char => isLiteralChar(char) || isNumericChar(char),\r\n a: char => isLiteralChar(char) || isNumericChar(char) || isSpaceChar(char)\r\n};\r\n\r\nfunction isNumericChar(char) {\r\n return /[0-9]/.test(char)\r\n}\r\n\r\nfunction isLiteralChar(char) {\r\n var code = char.charCodeAt();\r\n return code > 64 && code < 91 || code > 96 && code < 123 || code > 127\r\n}\r\n\r\nfunction isSpaceChar(char) {\r\n return \" \" === char\r\n}\r\nvar TextEditorMask = TextEditorBase.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n mask: \"\",\r\n maskChar: \"_\",\r\n maskRules: {},\r\n maskInvalidMessage: messageLocalization.format(\"validation-mask\"),\r\n useMaskedValue: false,\r\n showMaskMode: \"always\"\r\n })\r\n },\r\n _supportedKeys() {\r\n var that = this;\r\n var keyHandlerMap = {\r\n del: that._maskStrategy.getHandler(\"del\"),\r\n enter: that._changeHandler\r\n };\r\n var result = that.callBase();\r\n each(keyHandlerMap, (key, callback) => {\r\n var parentHandler = result[key];\r\n result[key] = function(e) {\r\n that.option(\"mask\") && callback.call(that, e);\r\n parentHandler && parentHandler(e)\r\n }\r\n });\r\n return result\r\n },\r\n _getSubmitElement() {\r\n return !this.option(\"mask\") ? this.callBase() : this._$hiddenElement\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initMaskStrategy()\r\n },\r\n _initMaskStrategy() {\r\n this._maskStrategy = new MaskStrategy(this)\r\n },\r\n _initMarkup() {\r\n this._renderHiddenElement();\r\n this.callBase()\r\n },\r\n _attachMouseWheelEventHandlers() {\r\n var hasMouseWheelHandler = this._onMouseWheel !== noop;\r\n if (!hasMouseWheelHandler) {\r\n return\r\n }\r\n var input = this._input();\r\n var eventName = addNamespace(wheelEventName, this.NAME);\r\n var mouseWheelAction = this._createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (focused(input) && !isCommandKeyPressed(event)) {\r\n this._onMouseWheel(event);\r\n event.preventDefault();\r\n event.stopPropagation()\r\n }\r\n });\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, e => {\r\n mouseWheelAction({\r\n event: e\r\n })\r\n })\r\n },\r\n _onMouseWheel: noop,\r\n _useMaskBehavior() {\r\n return Boolean(this.option(\"mask\"))\r\n },\r\n _attachDropEventHandler() {\r\n var useMaskBehavior = this._useMaskBehavior();\r\n if (!useMaskBehavior) {\r\n return\r\n }\r\n var eventName = addNamespace(DROP_EVENT_NAME, this.NAME);\r\n var input = this._input();\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, e => e.preventDefault())\r\n },\r\n _render() {\r\n this._attachMouseWheelEventHandlers();\r\n this._renderMask();\r\n this.callBase();\r\n this._attachDropEventHandler()\r\n },\r\n _renderHiddenElement() {\r\n if (this.option(\"mask\")) {\r\n this._$hiddenElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this._inputWrapper())\r\n }\r\n },\r\n _removeHiddenElement() {\r\n this._$hiddenElement && this._$hiddenElement.remove()\r\n },\r\n _renderMask() {\r\n this.$element().removeClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskRulesChain = null;\r\n this._maskStrategy.detachEvents();\r\n if (!this.option(\"mask\")) {\r\n return\r\n }\r\n this.$element().addClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskStrategy.attachEvents();\r\n this._parseMask();\r\n this._renderMaskedValue()\r\n },\r\n _changeHandler(e) {\r\n var $input = this._input();\r\n var inputValue = $input.val();\r\n if (inputValue === this._changedValue) {\r\n return\r\n }\r\n this._changedValue = inputValue;\r\n var changeEvent = createEvent(e, {\r\n type: \"change\"\r\n });\r\n eventsEngine.trigger($input, changeEvent)\r\n },\r\n _parseMask() {\r\n this._maskRules = extend({}, buildInMaskRules, this.option(\"maskRules\"));\r\n this._maskRulesChain = this._parseMaskRule(0)\r\n },\r\n _parseMaskRule(index) {\r\n var mask = this.option(\"mask\");\r\n if (index >= mask.length) {\r\n return new EmptyMaskRule\r\n }\r\n var currentMaskChar = mask[index];\r\n var isEscapedChar = currentMaskChar === ESCAPED_CHAR;\r\n var result = isEscapedChar ? new StubMaskRule({\r\n maskChar: mask[index + 1]\r\n }) : this._getMaskRule(currentMaskChar);\r\n result.next(this._parseMaskRule(index + 1 + isEscapedChar));\r\n return result\r\n },\r\n _getMaskRule(pattern) {\r\n var ruleConfig;\r\n each(this._maskRules, (rulePattern, allowedChars) => {\r\n if (rulePattern === pattern) {\r\n ruleConfig = {\r\n pattern: rulePattern,\r\n allowedChars: allowedChars\r\n };\r\n return false\r\n }\r\n });\r\n return isDefined(ruleConfig) ? new MaskRule(extend({\r\n maskChar: this.option(\"maskChar\") || \" \"\r\n }, ruleConfig)) : new StubMaskRule({\r\n maskChar: pattern\r\n })\r\n },\r\n _renderMaskedValue() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var value = this.option(\"value\") || \"\";\r\n this._maskRulesChain.clear(this._normalizeChainArguments());\r\n var chainArgs = {\r\n length: value.length\r\n };\r\n chainArgs[this._isMaskedValueMode() ? \"text\" : \"value\"] = value;\r\n this._handleChain(chainArgs);\r\n this._displayMask()\r\n },\r\n _replaceSelectedText(text, selection, char) {\r\n if (void 0 === char) {\r\n return text\r\n }\r\n var textBefore = text.slice(0, selection.start);\r\n var textAfter = text.slice(selection.end);\r\n var edited = textBefore + char + textAfter;\r\n return edited\r\n },\r\n _isMaskedValueMode() {\r\n return this.option(\"useMaskedValue\")\r\n },\r\n _displayMask(caret) {\r\n caret = caret || this._caret();\r\n this._renderValue();\r\n this._caret(caret)\r\n },\r\n _isValueEmpty() {\r\n return isEmpty(this._value)\r\n },\r\n _shouldShowMask() {\r\n var showMaskMode = this.option(\"showMaskMode\");\r\n if (\"onFocus\" === showMaskMode) {\r\n return focused(this._input()) || !this._isValueEmpty()\r\n }\r\n return true\r\n },\r\n _showMaskPlaceholder() {\r\n if (this._shouldShowMask()) {\r\n var text = this._maskRulesChain.text();\r\n this.option(\"text\", text);\r\n if (\"onFocus\" === this.option(\"showMaskMode\")) {\r\n this._renderDisplayText(text)\r\n }\r\n }\r\n },\r\n _renderValue() {\r\n if (this._maskRulesChain) {\r\n this._showMaskPlaceholder();\r\n if (this._$hiddenElement) {\r\n var value = this._maskRulesChain.value();\r\n var submitElementValue = !isEmpty(value) ? this._getPreparedValue() : \"\";\r\n this._$hiddenElement.val(submitElementValue)\r\n }\r\n }\r\n return this.callBase()\r\n },\r\n _getPreparedValue() {\r\n return this._convertToValue().replace(/\\s+$/, \"\")\r\n },\r\n _valueChangeEventHandler(e) {\r\n if (!this._maskRulesChain) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this._getPreparedValue())\r\n },\r\n _isControlKeyFired(e) {\r\n return this._isControlKey(normalizeKeyName(e)) || isCommandKeyPressed(e)\r\n },\r\n _handleChain(args) {\r\n var handledCount = this._maskRulesChain.handle(this._normalizeChainArguments(args));\r\n this._updateMaskInfo();\r\n return handledCount\r\n },\r\n _normalizeChainArguments(args) {\r\n args = args || {};\r\n args.index = 0;\r\n args.fullText = this._maskRulesChain.text();\r\n return args\r\n },\r\n _convertToValue(text) {\r\n if (this._isMaskedValueMode()) {\r\n text = this._replaceMaskCharWithEmpty(text || this._textValue || \"\")\r\n } else {\r\n text = text || this._value || \"\"\r\n }\r\n return text\r\n },\r\n _replaceMaskCharWithEmpty(text) {\r\n return text.replace(new RegExp(this.option(\"maskChar\"), \"g\"), EMPTY_CHAR)\r\n },\r\n _maskKeyHandler(e, keyHandler) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this.setForwardDirection();\r\n e.preventDefault();\r\n this._handleSelection();\r\n var previousText = this._input().val();\r\n var raiseInputEvent = () => {\r\n if (previousText !== this._input().val()) {\r\n eventsEngine.trigger(this._input(), \"input\")\r\n }\r\n };\r\n var handled = keyHandler();\r\n if (handled) {\r\n handled.then(raiseInputEvent)\r\n } else {\r\n this.setForwardDirection();\r\n this._adjustCaret();\r\n this._displayMask();\r\n this._maskRulesChain.reset();\r\n raiseInputEvent()\r\n }\r\n },\r\n _handleKey(key, direction) {\r\n this._direction(direction || FORWARD_DIRECTION);\r\n this._adjustCaret(key);\r\n this._handleKeyChain(key);\r\n this._moveCaret()\r\n },\r\n _handleSelection() {\r\n if (!this._hasSelection()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n var emptyChars = new Array(caret.end - caret.start + 1).join(EMPTY_CHAR);\r\n this._handleKeyChain(emptyChars)\r\n },\r\n _handleKeyChain(chars) {\r\n var caret = this._caret();\r\n var start = this.isForwardDirection() ? caret.start : caret.start - 1;\r\n var end = this.isForwardDirection() ? caret.end : caret.end - 1;\r\n var length = start === end ? 1 : end - start;\r\n this._handleChain({\r\n text: chars,\r\n start: start,\r\n length: length\r\n })\r\n },\r\n _tryMoveCaretBackward() {\r\n this.setBackwardDirection();\r\n var currentCaret = this._caret().start;\r\n this._adjustCaret();\r\n return !currentCaret || currentCaret !== this._caret().start\r\n },\r\n _adjustCaret(char) {\r\n var caretStart = this._caret().start;\r\n var isForwardDirection = this.isForwardDirection();\r\n var caret = this._maskRulesChain.adjustedCaret(caretStart, isForwardDirection, char);\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _moveCaret() {\r\n var currentCaret = this._caret().start;\r\n var maskRuleIndex = currentCaret + (this.isForwardDirection() ? 0 : -1);\r\n var caret = this._maskRulesChain.isAccepted(maskRuleIndex) ? currentCaret + (this.isForwardDirection() ? 1 : -1) : currentCaret;\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _caret(position, force) {\r\n var $input = this._input();\r\n if (!$input.length) {\r\n return\r\n }\r\n if (!arguments.length) {\r\n return caret($input)\r\n }\r\n caret($input, position, force)\r\n },\r\n _hasSelection() {\r\n var caret = this._caret();\r\n return caret.start !== caret.end\r\n },\r\n _direction(direction) {\r\n if (!arguments.length) {\r\n return this._typingDirection\r\n }\r\n this._typingDirection = direction\r\n },\r\n setForwardDirection() {\r\n this._direction(FORWARD_DIRECTION)\r\n },\r\n setBackwardDirection() {\r\n this._direction(BACKWARD_DIRECTION)\r\n },\r\n isForwardDirection() {\r\n return this._direction() === FORWARD_DIRECTION\r\n },\r\n _updateMaskInfo() {\r\n this._textValue = this._maskRulesChain.text();\r\n this._value = this._maskRulesChain.value()\r\n },\r\n _clean() {\r\n this._maskStrategy && this._maskStrategy.clean();\r\n this.callBase()\r\n },\r\n _validateMask() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var isValid = isEmpty(this.option(\"value\")) || this._maskRulesChain.isValid(this._normalizeChainArguments());\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"maskInvalidMessage\")\r\n }\r\n })\r\n },\r\n _updateHiddenElement() {\r\n this._removeHiddenElement();\r\n if (this.option(\"mask\")) {\r\n this._input().removeAttr(\"name\");\r\n this._renderHiddenElement()\r\n }\r\n this._setSubmitElementName(this.option(\"name\"))\r\n },\r\n _updateMaskOption() {\r\n this._updateHiddenElement();\r\n this._renderMask();\r\n this._validateMask();\r\n this._refreshValueChangeEvent()\r\n },\r\n _processEmptyMask(mask) {\r\n if (mask) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n this.option({\r\n text: value,\r\n isValid: true,\r\n validationError: null\r\n });\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n });\r\n this._renderValue()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"mask\":\r\n this._updateMaskOption();\r\n this._processEmptyMask(args.value);\r\n break;\r\n case \"maskChar\":\r\n case \"maskRules\":\r\n case \"useMaskedValue\":\r\n this._updateMaskOption();\r\n break;\r\n case \"value\":\r\n this._renderMaskedValue();\r\n this._validateMask();\r\n this.callBase(args);\r\n this._changedValue = this._input().val();\r\n break;\r\n case \"maskInvalidMessage\":\r\n break;\r\n case \"showMaskMode\":\r\n this.option(\"text\", \"\");\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n clear() {\r\n var {\r\n value: defaultValue\r\n } = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultValue) {\r\n this._renderMaskedValue()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport TextEditorMask from \"./m_text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport TextEditor from \"./m_text_editor\";\r\nvar window = getWindow();\r\nvar ignoreKeys = [\"backspace\", \"tab\", \"enter\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"rightArrow\", \"downArrow\", \"upArrow\", \"del\"];\r\nvar TEXTBOX_CLASS = \"dx-textbox\";\r\nvar SEARCHBOX_CLASS = \"dx-searchbox\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SEARCH_ICON_CLASS = \"dx-icon-search\";\r\nvar TextBox = TextEditor.inherit({\r\n ctor(element, options) {\r\n if (options) {\r\n this._showClearButton = options.showClearButton\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n value: \"\",\r\n mode: \"text\",\r\n maxLength: null\r\n })\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(TEXTBOX_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"textbox\")\r\n },\r\n _renderInputType() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _useTemplates: () => false,\r\n _renderProps() {\r\n this.callBase();\r\n this._toggleMaxLengthProp()\r\n },\r\n _toggleMaxLengthProp() {\r\n var maxLength = this._getMaxLength();\r\n if (maxLength && maxLength > 0) {\r\n this._input().attr(\"maxLength\", maxLength)\r\n } else {\r\n this._input().removeAttr(\"maxLength\")\r\n }\r\n },\r\n _renderSearchMode() {\r\n var $element = this._$element;\r\n if (\"search\" === this.option(\"mode\")) {\r\n $element.addClass(SEARCHBOX_CLASS);\r\n this._renderSearchIcon();\r\n if (void 0 === this._showClearButton) {\r\n this._showClearButton = this.option(\"showClearButton\");\r\n this.option(\"showClearButton\", true)\r\n }\r\n } else {\r\n $element.removeClass(SEARCHBOX_CLASS);\r\n this._$searchIcon && this._$searchIcon.remove();\r\n this.option(\"showClearButton\", void 0 === this._showClearButton ? this.option(\"showClearButton\") : this._showClearButton);\r\n delete this._showClearButton\r\n }\r\n },\r\n _renderSearchIcon() {\r\n var $searchIcon = $(\"<div>\").addClass(ICON_CLASS).addClass(SEARCH_ICON_CLASS);\r\n $searchIcon.prependTo(this._input().parent());\r\n this._$searchIcon = $searchIcon\r\n },\r\n _getLabelContainerWidth() {\r\n if (this._$searchIcon) {\r\n var $inputContainer = this._input().parent();\r\n return getWidth($inputContainer) - this._getLabelBeforeWidth()\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelBeforeWidth() {\r\n var labelBeforeWidth = this.callBase();\r\n if (this._$searchIcon) {\r\n labelBeforeWidth += getOuterWidth(this._$searchIcon)\r\n }\r\n return labelBeforeWidth\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"maxLength\":\r\n this._toggleMaxLengthProp();\r\n break;\r\n case \"mode\":\r\n this.callBase(args);\r\n this._updateLabelWidth();\r\n break;\r\n case \"mask\":\r\n this.callBase(args);\r\n this._toggleMaxLengthProp();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _onKeyDownCutOffHandler(e) {\r\n var actualMaxLength = this._getMaxLength();\r\n if (actualMaxLength && !e.ctrlKey && !this._hasSelection()) {\r\n var $input = $(e.target);\r\n var key = normalizeKeyName(e);\r\n this._cutOffExtraChar($input);\r\n return $input.val().length < actualMaxLength || ignoreKeys.includes(key) || \"\" !== window.getSelection().toString()\r\n }\r\n return true\r\n },\r\n _onChangeCutOffHandler(e) {\r\n var $input = $(e.target);\r\n if (this.option(\"maxLength\")) {\r\n this._cutOffExtraChar($input)\r\n }\r\n },\r\n _cutOffExtraChar($input) {\r\n var actualMaxLength = this._getMaxLength();\r\n var textInput = $input.val();\r\n if (actualMaxLength && textInput.length > actualMaxLength) {\r\n $input.val(textInput.substr(0, actualMaxLength))\r\n }\r\n },\r\n _getMaxLength() {\r\n var isMaskSpecified = !!this.option(\"mask\");\r\n return isMaskSpecified ? null : this.option(\"maxLength\")\r\n }\r\n});\r\nregisterComponent(\"dxTextBox\", TextBox);\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/core/utils/stubs.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function stubComponent(componentName) {\r\n return class {\r\n constructor() {\r\n throw new Error(\"Module '\".concat(componentName, \"' not found\"))\r\n }\r\n static getInstance() {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.search_box_mixin.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n stubComponent\r\n} from \"../../core/utils/stubs\";\r\nvar EditorClass = stubComponent(\"TextBox\");\r\nexport default {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n searchMode: \"\",\r\n searchExpr: null,\r\n searchValue: \"\",\r\n searchEnabled: false,\r\n searchEditorOptions: {}\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSearch();\r\n this.callBase()\r\n },\r\n _renderSearch: function() {\r\n var $element = this.$element();\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var searchBoxClassName = this._addWidgetPrefix(\"search\");\r\n var rootElementClassName = this._addWidgetPrefix(\"with-search\");\r\n if (!searchEnabled) {\r\n $element.removeClass(rootElementClassName);\r\n this._removeSearchBox();\r\n return\r\n }\r\n var editorOptions = this._getSearchEditorOptions();\r\n if (this._searchEditor) {\r\n this._searchEditor.option(editorOptions)\r\n } else {\r\n $element.addClass(rootElementClassName);\r\n this._$searchEditorElement = $(\"<div>\").addClass(searchBoxClassName).prependTo($element);\r\n this._searchEditor = this._createComponent(this._$searchEditorElement, EditorClass, editorOptions)\r\n }\r\n },\r\n _removeSearchBox: function() {\r\n this._$searchEditorElement && this._$searchEditorElement.remove();\r\n delete this._$searchEditorElement;\r\n delete this._searchEditor\r\n },\r\n _getSearchEditorOptions: function() {\r\n var that = this;\r\n var userEditorOptions = that.option(\"searchEditorOptions\");\r\n var searchText = messageLocalization.format(\"Search\");\r\n return extend({\r\n mode: \"search\",\r\n placeholder: searchText,\r\n tabIndex: that.option(\"tabIndex\"),\r\n value: that.option(\"searchValue\"),\r\n valueChangeEvent: \"input\",\r\n inputAttr: {\r\n \"aria-label\": searchText\r\n },\r\n onValueChanged: function(e) {\r\n var searchTimeout = that.option(\"searchTimeout\");\r\n that._valueChangeDeferred = new Deferred;\r\n clearTimeout(that._valueChangeTimeout);\r\n that._valueChangeDeferred.done(function() {\r\n this.option(\"searchValue\", e.value)\r\n }.bind(that));\r\n if (e.event && \"input\" === e.event.type && searchTimeout) {\r\n that._valueChangeTimeout = setTimeout((function() {\r\n that._valueChangeDeferred.resolve()\r\n }), searchTimeout)\r\n } else {\r\n that._valueChangeDeferred.resolve()\r\n }\r\n }\r\n }, userEditorOptions)\r\n },\r\n _getAriaTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _focusTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n if (this.option(\"searchEnabled\")) {\r\n this._toggleFocusClass(isFocused, this.$element())\r\n }\r\n this.callBase(e, isFocused)\r\n },\r\n getOperationBySearchMode: function(searchMode) {\r\n return \"equals\" === searchMode ? \"=\" : searchMode\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchEnabled\":\r\n case \"searchEditorOptions\":\r\n this._invalidate();\r\n break;\r\n case \"searchExpr\":\r\n case \"searchMode\":\r\n case \"searchValue\":\r\n if (!this._dataSource) {\r\n errors.log(\"W1009\");\r\n return\r\n }\r\n if (\"searchMode\" === args.name) {\r\n this._dataSource.searchOperation(this.getOperationBySearchMode(args.value))\r\n } else {\r\n this._dataSource[args.name](args.value)\r\n }\r\n this._dataSource.load();\r\n break;\r\n case \"searchTimeout\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n focus: function() {\r\n if (!this.option(\"focusedElement\") && this.option(\"searchEnabled\")) {\r\n this._searchEditor && this._searchEditor.focus();\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _cleanAria: function() {\r\n var $element = this.$element();\r\n this.setAria({\r\n role: null,\r\n activedescendant: null\r\n }, $element);\r\n $element.attr(\"tabIndex\", null)\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._cleanAria()\r\n },\r\n _refresh: function() {\r\n if (this._valueChangeDeferred) {\r\n this._valueChangeDeferred.resolve()\r\n }\r\n this.callBase()\r\n },\r\n setEditorClass: function(value) {\r\n EditorClass = value\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/hierarchical_collection/m_data_converter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPrimitive\r\n} from \"../../../core/utils/type\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nvar DataConverter = Class.inherit({\r\n ctor() {\r\n this._dataStructure = [];\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0\r\n },\r\n _indexByKey: {},\r\n _convertItemsToNodes(items, parentKey) {\r\n var that = this;\r\n each(items, (_, item) => {\r\n var parentId = isDefined(parentKey) ? parentKey : that._getParentId(item);\r\n var node = that._convertItemToNode(item, parentId);\r\n that._dataStructure.push(node);\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = that._dataStructure.length - 1;\r\n if (that._itemHasChildren(item)) {\r\n that._convertItemsToNodes(that._dataAccessors.getters.items(item), node.internalFields.key)\r\n }\r\n })\r\n },\r\n _checkForDuplicateId(key) {\r\n if (isDefined(this._indexByKey[key])) {\r\n throw errors.Error(\"E1040\", key)\r\n }\r\n },\r\n _getParentId(item) {\r\n return \"plain\" === this._dataType ? this._dataAccessors.getters.parentKey(item) : void 0\r\n },\r\n _itemHasChildren(item) {\r\n if (\"plain\" === this._dataType) {\r\n return\r\n }\r\n var items = this._dataAccessors.getters.items(item);\r\n return items && items.length\r\n },\r\n _getUniqueKey(item) {\r\n var keyGetter = this._dataAccessors.getters.key;\r\n var itemKey = keyGetter(item);\r\n var isCorrectKey = keyGetter && (itemKey || 0 === itemKey) && isPrimitive(itemKey);\r\n return isCorrectKey ? itemKey : this.getItemsCount()\r\n },\r\n _convertItemToNode(item, parentKey) {\r\n this._itemsCount++;\r\n false !== item.visible && this._visibleItemsCount++;\r\n var node = {\r\n internalFields: {\r\n disabled: this._dataAccessors.getters.disabled(item, {\r\n defaultValue: false\r\n }),\r\n expanded: this._dataAccessors.getters.expanded(item, {\r\n defaultValue: false\r\n }),\r\n selected: this._dataAccessors.getters.selected(item, {\r\n defaultValue: false\r\n }),\r\n key: this._getUniqueKey(item),\r\n parentKey: isDefined(parentKey) ? parentKey : this._rootValue,\r\n item: this._makeObjectFromPrimitive(item),\r\n childrenKeys: []\r\n }\r\n };\r\n extend(node, item);\r\n delete node.items;\r\n return node\r\n },\r\n setChildrenKeys() {\r\n var that = this;\r\n each(this._dataStructure, (_, node) => {\r\n if (node.internalFields.parentKey === that._rootValue) {\r\n return\r\n }\r\n var parent = that.getParentNode(node);\r\n parent && parent.internalFields.childrenKeys.push(node.internalFields.key)\r\n })\r\n },\r\n _makeObjectFromPrimitive(item) {\r\n if (isPrimitive(item)) {\r\n var key = item;\r\n item = {};\r\n this._dataAccessors.setters.key(item, key)\r\n }\r\n return item\r\n },\r\n _convertToPublicNode(node, parent) {\r\n if (!node) {\r\n return null\r\n }\r\n var publicNode = {\r\n text: this._dataAccessors.getters.display(node),\r\n key: node.internalFields.key,\r\n selected: node.internalFields.selected,\r\n expanded: node.internalFields.expanded,\r\n disabled: node.internalFields.disabled,\r\n parent: parent || null,\r\n itemData: node.internalFields.item,\r\n children: [],\r\n items: []\r\n };\r\n if (publicNode.parent) {\r\n publicNode.parent.children.push(publicNode);\r\n publicNode.parent.items.push(publicNode)\r\n }\r\n return publicNode\r\n },\r\n convertToPublicNodes(data, parent) {\r\n if (!data.length) {\r\n return []\r\n }\r\n var that = this;\r\n var publicNodes = [];\r\n each(data, (_, node) => {\r\n node = isPrimitive(node) ? that._getByKey(node) : node;\r\n var publicNode = that._convertToPublicNode(node, parent);\r\n publicNode.children = that.convertToPublicNodes(node.internalFields.childrenKeys, publicNode);\r\n publicNodes.push(publicNode);\r\n node.internalFields.publicNode = publicNode\r\n });\r\n return publicNodes\r\n },\r\n setDataAccessors(accessors) {\r\n this._dataAccessors = accessors\r\n },\r\n _getByKey(key) {\r\n return this._dataStructure[this.getIndexByKey(key)] || null\r\n },\r\n getParentNode(node) {\r\n return this._getByKey(node.internalFields.parentKey)\r\n },\r\n getByKey(data, key) {\r\n if (null === key || void 0 === key) {\r\n return null\r\n }\r\n var result = null;\r\n var that = this;\r\n return function(data, key) {\r\n each(data, (_, element) => {\r\n var currentElementKey = element.internalFields && element.internalFields.key || that._dataAccessors.getters.key(element);\r\n if (currentElementKey.toString() === key.toString()) {\r\n result = element;\r\n return false\r\n }\r\n });\r\n return result\r\n }(data, key)\r\n },\r\n getItemsCount() {\r\n return this._itemsCount\r\n },\r\n getVisibleItemsCount() {\r\n return this._visibleItemsCount\r\n },\r\n updateIndexByKey() {\r\n var that = this;\r\n this._indexByKey = {};\r\n each(this._dataStructure, (index, node) => {\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = index\r\n })\r\n },\r\n updateChildrenKeys() {\r\n this._indexByKey = {};\r\n this.removeChildrenKeys();\r\n this.updateIndexByKey();\r\n this.setChildrenKeys()\r\n },\r\n removeChildrenKeys() {\r\n this._indexByKey = {};\r\n each(this._dataStructure, (index, node) => {\r\n node.internalFields.childrenKeys = []\r\n })\r\n },\r\n getIndexByKey(key) {\r\n return this._indexByKey[key]\r\n },\r\n createPlainStructure(items, rootValue, dataType) {\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0;\r\n this._rootValue = rootValue;\r\n this._dataType = dataType;\r\n this._indexByKey = {};\r\n this._convertItemsToNodes(items);\r\n this.setChildrenKeys();\r\n return this._dataStructure\r\n }\r\n});\r\nexport default DataConverter;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/hierarchical_collection/m_data_adapter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport query from \"../../../data/query\";\r\nimport storeHelper from \"../../../data/store_helper\";\r\nimport TextBox from \"../../../ui/text_box\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport uiSearchBoxMixin from \"../../../ui/widget/ui.search_box_mixin\";\r\nimport HierarchicalDataConverter from \"./m_data_converter\";\r\nvar EXPANDED = \"expanded\";\r\nvar SELECTED = \"selected\";\r\nvar DISABLED = \"disabled\";\r\nuiSearchBoxMixin.setEditorClass(TextBox);\r\nvar DataAdapter = Class.inherit({\r\n ctor(options) {\r\n this.options = {};\r\n extend(this.options, this._defaultOptions(), options);\r\n this.options.dataConverter.setDataAccessors(this.options.dataAccessors);\r\n this._selectedNodesKeys = [];\r\n this._expandedNodesKeys = [];\r\n this._dataStructure = [];\r\n this._createInternalDataStructure();\r\n this.getTreeNodes()\r\n },\r\n setOption(name, value) {\r\n this.options[name] = value;\r\n if (\"recursiveSelection\" === name) {\r\n this._updateSelection()\r\n }\r\n },\r\n _defaultOptions: () => ({\r\n dataAccessors: void 0,\r\n items: [],\r\n multipleSelection: true,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n rootValue: 0,\r\n searchValue: \"\",\r\n dataType: \"tree\",\r\n searchMode: \"contains\",\r\n dataConverter: new HierarchicalDataConverter,\r\n onNodeChanged: noop,\r\n sort: null\r\n }),\r\n _createInternalDataStructure() {\r\n this._initialDataStructure = this.options.dataConverter.createPlainStructure(this.options.items, this.options.rootValue, this.options.dataType);\r\n this._dataStructure = this.options.searchValue.length ? this.search(this.options.searchValue) : this._initialDataStructure;\r\n this.options.dataConverter._dataStructure = this._dataStructure;\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n _updateSelection() {\r\n if (this.options.recursiveSelection) {\r\n this._setChildrenSelection();\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _updateExpansion(key) {\r\n if (this.options.recursiveExpansion) {\r\n key ? this._updateOneBranch(key) : this._setParentExpansion()\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n _updateNodesKeysArray(property) {\r\n var that = this;\r\n var array = [];\r\n each(that._getDataBySelectionMode(), (_, node) => {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n if (node.internalFields[property]) {\r\n if (property === EXPANDED || that.options.multipleSelection) {\r\n array.push(node.internalFields.key)\r\n } else {\r\n array.length && that.toggleSelection(array[0], false, true);\r\n array = [node.internalFields.key]\r\n }\r\n }\r\n });\r\n return array\r\n },\r\n _getDataBySelectionMode() {\r\n return this.options.multipleSelection ? this.getData() : this.getFullData()\r\n },\r\n _isNodeVisible: node => false !== node.internalFields.item.visible,\r\n _getByKey(data, key) {\r\n return data === this._dataStructure ? this.options.dataConverter._getByKey(key) : this.options.dataConverter.getByKey(data, key)\r\n },\r\n _setChildrenSelection() {\r\n var that = this;\r\n each(this._dataStructure, (_, node) => {\r\n if (!node.internalFields.childrenKeys.length) {\r\n return\r\n }\r\n var isSelected = node.internalFields.selected;\r\n true === isSelected && that._toggleChildrenSelection(node, isSelected)\r\n })\r\n },\r\n _setParentSelection() {\r\n var that = this;\r\n each(this._dataStructure, (_, node) => {\r\n var parent = that.options.dataConverter.getParentNode(node);\r\n if (parent && node.internalFields.parentKey !== that.options.rootValue) {\r\n that._iterateParents(node, parent => {\r\n var newParentState = that._calculateSelectedState(parent);\r\n that._setFieldState(parent, SELECTED, newParentState)\r\n })\r\n }\r\n })\r\n },\r\n _setParentExpansion() {\r\n var that = this;\r\n each(this._dataStructure, (_, node) => {\r\n if (!node.internalFields.expanded) {\r\n return\r\n }\r\n that._updateOneBranch(node.internalFields.key)\r\n })\r\n },\r\n _updateOneBranch(key) {\r\n var that = this;\r\n var node = this.getNodeByKey(key);\r\n that._iterateParents(node, parent => {\r\n that._setFieldState(parent, EXPANDED, true)\r\n })\r\n },\r\n _iterateChildren(node, recursive, callback, processedKeys) {\r\n if (!isFunction(callback)) {\r\n return\r\n }\r\n var that = this;\r\n var nodeKey = node.internalFields.key;\r\n processedKeys = processedKeys || [];\r\n if (-1 === processedKeys.indexOf(nodeKey)) {\r\n processedKeys.push(nodeKey);\r\n each(node.internalFields.childrenKeys, (_, key) => {\r\n var child = that.getNodeByKey(key);\r\n callback(child);\r\n if (child.internalFields.childrenKeys.length && recursive) {\r\n that._iterateChildren(child, recursive, callback, processedKeys)\r\n }\r\n })\r\n }\r\n },\r\n _iterateParents(node, callback, processedKeys) {\r\n if (node.internalFields.parentKey === this.options.rootValue || !isFunction(callback)) {\r\n return\r\n }\r\n processedKeys = processedKeys || [];\r\n var {\r\n key: key\r\n } = node.internalFields;\r\n if (-1 === processedKeys.indexOf(key)) {\r\n processedKeys.push(key);\r\n var parent = this.options.dataConverter.getParentNode(node);\r\n if (parent) {\r\n callback(parent);\r\n if (parent.internalFields.parentKey !== this.options.rootValue) {\r\n this._iterateParents(parent, callback, processedKeys)\r\n }\r\n }\r\n }\r\n },\r\n _calculateSelectedState(node) {\r\n var itemsCount = node.internalFields.childrenKeys.length;\r\n var selectedItemsCount = 0;\r\n var invisibleItemsCount = 0;\r\n var result = false;\r\n for (var i = 0; i <= itemsCount - 1; i++) {\r\n var childNode = this.getNodeByKey(node.internalFields.childrenKeys[i]);\r\n var isChildInvisible = false === childNode.internalFields.item.visible;\r\n var childState = childNode.internalFields.selected;\r\n if (isChildInvisible) {\r\n invisibleItemsCount++;\r\n continue\r\n }\r\n if (childState) {\r\n selectedItemsCount++\r\n } else if (void 0 === childState) {\r\n selectedItemsCount += .5\r\n }\r\n }\r\n if (selectedItemsCount) {\r\n result = selectedItemsCount === itemsCount - invisibleItemsCount ? true : void 0\r\n }\r\n return result\r\n },\r\n _toggleChildrenSelection(node, state) {\r\n var that = this;\r\n this._iterateChildren(node, true, child => {\r\n if (that._isNodeVisible(child)) {\r\n that._setFieldState(child, SELECTED, state)\r\n }\r\n })\r\n },\r\n _setFieldState(node, field, state) {\r\n if (node.internalFields[field] === state) {\r\n return\r\n }\r\n node.internalFields[field] = state;\r\n if (node.internalFields.publicNode) {\r\n node.internalFields.publicNode[field] = state\r\n }\r\n this.options.dataAccessors.setters[field](node.internalFields.item, state);\r\n this.options.onNodeChanged(node)\r\n },\r\n _markChildren(keys) {\r\n var that = this;\r\n each(keys, (_, key) => {\r\n var index = that.getIndexByKey(key);\r\n var node = that.getNodeByKey(key);\r\n that._dataStructure[index] = 0;\r\n node.internalFields.childrenKeys.length && that._markChildren(node.internalFields.childrenKeys)\r\n })\r\n },\r\n _removeNode(key) {\r\n var node = this.getNodeByKey(key);\r\n this._dataStructure[this.getIndexByKey(key)] = 0;\r\n this._markChildren(node.internalFields.childrenKeys);\r\n var that = this;\r\n var counter = 0;\r\n var items = extend([], this._dataStructure);\r\n each(items, (index, item) => {\r\n if (!item) {\r\n that._dataStructure.splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _addNode(item) {\r\n var {\r\n dataConverter: dataConverter\r\n } = this.options;\r\n var node = dataConverter._convertItemToNode(item, this.options.dataAccessors.getters.parentKey(item));\r\n this._dataStructure = this._dataStructure.concat(node);\r\n this._initialDataStructure = this._initialDataStructure.concat(node);\r\n dataConverter._dataStructure = dataConverter._dataStructure.concat(node)\r\n },\r\n _updateFields() {\r\n this.options.dataConverter.updateChildrenKeys();\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n getSelectedNodesKeys() {\r\n return this._selectedNodesKeys\r\n },\r\n getExpandedNodesKeys() {\r\n return this._expandedNodesKeys\r\n },\r\n getData() {\r\n return this._dataStructure\r\n },\r\n getFullData() {\r\n return this._initialDataStructure\r\n },\r\n getNodeByItem(item) {\r\n var result = null;\r\n each(this._dataStructure, (_, node) => {\r\n if (node.internalFields.item === item) {\r\n result = node;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n getNodesByItems(items) {\r\n var that = this;\r\n var nodes = [];\r\n each(items, (_, item) => {\r\n var node = that.getNodeByItem(item);\r\n node && nodes.push(node)\r\n });\r\n return nodes\r\n },\r\n getNodeByKey(key, data) {\r\n return this._getByKey(data || this._getDataBySelectionMode(), key)\r\n },\r\n getTreeNodes() {\r\n return this.options.dataConverter.convertToPublicNodes(this.getRootNodes())\r\n },\r\n getItemsCount() {\r\n return this.options.dataConverter.getItemsCount()\r\n },\r\n getVisibleItemsCount() {\r\n return this.options.dataConverter.getVisibleItemsCount()\r\n },\r\n getPublicNode: node => node.internalFields.publicNode,\r\n getRootNodes() {\r\n return this.getChildrenNodes(this.options.rootValue)\r\n },\r\n getChildrenNodes(parentKey) {\r\n return query(this._dataStructure, {\r\n langParams: this.options.langParams\r\n }).filter([\"internalFields.parentKey\", parentKey]).toArray()\r\n },\r\n getIndexByKey(key) {\r\n return this.options.dataConverter.getIndexByKey(key)\r\n },\r\n addItem(item) {\r\n this._addNode(item);\r\n this._updateFields()\r\n },\r\n removeItem(key) {\r\n this._removeNode(key);\r\n this._updateFields()\r\n },\r\n toggleSelection(key, state, selectRecursive) {\r\n var isSingleModeUnselect = this._isSingleModeUnselect(state);\r\n var node = this._getByKey(selectRecursive || isSingleModeUnselect ? this._initialDataStructure : this._dataStructure, key);\r\n this._setFieldState(node, SELECTED, state);\r\n if (this.options.recursiveSelection && !selectRecursive) {\r\n state ? this._setChildrenSelection() : this._toggleChildrenSelection(node, state);\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _isSingleModeUnselect(selectionState) {\r\n return !this.options.multipleSelection && !selectionState\r\n },\r\n toggleNodeDisabledState(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, DISABLED, state)\r\n },\r\n toggleSelectAll(state) {\r\n if (!isDefined(state)) {\r\n return\r\n }\r\n var that = this;\r\n var lastSelectedKey = that._selectedNodesKeys[that._selectedNodesKeys.length - 1];\r\n var dataStructure = that._isSingleModeUnselect(state) ? this._initialDataStructure : this._dataStructure;\r\n each(dataStructure, (index, node) => {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n that._setFieldState(node, SELECTED, state)\r\n });\r\n that._selectedNodesKeys = that._updateNodesKeysArray(SELECTED);\r\n if (!state && that.options.selectionRequired) {\r\n that.toggleSelection(lastSelectedKey, true)\r\n }\r\n },\r\n isAllSelected() {\r\n if (this.getSelectedNodesKeys().length) {\r\n return this.getSelectedNodesKeys().length === this.getVisibleItemsCount() ? true : void 0\r\n }\r\n return false\r\n },\r\n toggleExpansion(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, EXPANDED, state);\r\n if (state) {\r\n this._updateExpansion(key)\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n isFiltered(item) {\r\n return !this.options.searchValue.length || !!this._filterDataStructure(this.options.searchValue, [item]).length\r\n },\r\n _createCriteria(selector, value, operation) {\r\n var searchFilter = [];\r\n if (!Array.isArray(selector)) {\r\n return [selector, operation, value]\r\n }\r\n each(selector, (i, item) => {\r\n searchFilter.push([item, operation, value], \"or\")\r\n });\r\n searchFilter.pop();\r\n return searchFilter\r\n },\r\n _filterDataStructure(filterValue, dataStructure) {\r\n var selector = this.options.searchExpr || this.options.dataAccessors.getters.display;\r\n var operation = uiSearchBoxMixin.getOperationBySearchMode(this.options.searchMode);\r\n var criteria = this._createCriteria(selector, filterValue, operation);\r\n dataStructure = dataStructure || this._initialDataStructure;\r\n return query(dataStructure, {\r\n langParams: this.options.langParams\r\n }).filter(criteria).toArray()\r\n },\r\n search(searchValue) {\r\n var that = this;\r\n var matches = this._filterDataStructure(searchValue);\r\n var {\r\n dataConverter: dataConverter\r\n } = this.options;\r\n ! function lookForParents(matches, index) {\r\n var {\r\n length: length\r\n } = matches;\r\n while (index < length) {\r\n var node = matches[index];\r\n if (node.internalFields.parentKey === that.options.rootValue) {\r\n index++;\r\n continue\r\n }\r\n var parent = dataConverter.getParentNode(node);\r\n if (!parent) {\r\n errors.log(\"W1007\", node.internalFields.parentKey, node.internalFields.key);\r\n index++;\r\n continue\r\n }\r\n if (!parent.internalFields.expanded) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }\r\n if (matches.includes(parent)) {\r\n index++;\r\n continue\r\n }\r\n matches.splice(index, 0, parent);\r\n lookForParents(matches, index)\r\n }\r\n }(matches, 0);\r\n if (this.options.sort) {\r\n matches = storeHelper.queryByOptions(query(matches), {\r\n sort: this.options.sort,\r\n langParams: this.options.langParams\r\n }).toArray()\r\n }\r\n dataConverter._indexByKey = {};\r\n each(matches, (index, node) => {\r\n node.internalFields.childrenKeys = [];\r\n dataConverter._indexByKey[node.internalFields.key] = index\r\n });\r\n dataConverter._dataStructure = matches;\r\n dataConverter.setChildrenKeys();\r\n return dataConverter._dataStructure\r\n }\r\n});\r\nexport default DataAdapter;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/hierarchical_collection/m_hierarchical_collection_widget.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nimport CollectionWidget from \"../../../ui/collection/ui.collection_widget.edit\";\r\nimport HierarchicalDataAdapter from \"./m_data_adapter\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_URL_CLASS = \"dx-item-url\";\r\nvar HierarchicalCollectionWidget = CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n keyExpr: \"id\",\r\n displayExpr: \"text\",\r\n selectedExpr: \"selected\",\r\n disabledExpr: \"disabled\",\r\n itemsExpr: \"items\",\r\n hoverStateEnabled: true,\r\n parentIdExpr: \"parentId\",\r\n expandedExpr: \"expanded\"\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this._initDynamicTemplates()\r\n },\r\n _initDataSource() {\r\n this.callBase();\r\n this._dataSource && this._dataSource.paginate(false)\r\n },\r\n _initDataAdapter() {\r\n var accessors = this._createDataAdapterAccessors();\r\n this._dataAdapter = new HierarchicalDataAdapter(extend({\r\n dataAccessors: {\r\n getters: accessors.getters,\r\n setters: accessors.setters\r\n },\r\n items: this.option(\"items\")\r\n }, this._getDataAdapterOptions()))\r\n },\r\n _getDataAdapterOptions: noop,\r\n _getItemExtraPropNames: noop,\r\n _initDynamicTemplates() {\r\n var fields = [\"text\", \"html\", \"items\", \"icon\"].concat(this._getItemExtraPropNames());\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(this._addContent.bind(this), fields, this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter,\r\n items: this._itemsGetter\r\n })\r\n })\r\n },\r\n _addContent($container, itemData) {\r\n $container.html(itemData.html).append(this._getIconContainer(itemData)).append(this._getTextContainer(itemData))\r\n },\r\n _getLinkContainer(iconContainer, textContainer, _ref) {\r\n var {\r\n linkAttr: linkAttr,\r\n url: url\r\n } = _ref;\r\n var linkAttributes = isObject(linkAttr) ? linkAttr : {};\r\n return $(\"<a>\").addClass(ITEM_URL_CLASS).attr(_extends(_extends({}, linkAttributes), {\r\n href: url\r\n })).append(iconContainer).append(textContainer)\r\n },\r\n _getIconContainer(itemData) {\r\n if (!itemData.icon) {\r\n return\r\n }\r\n var $imageContainer = getImageContainer(itemData.icon);\r\n if ($imageContainer.is(\"img\")) {\r\n var componentName = this.NAME.startsWith(\"dxPrivateComponent\") ? \"\" : \"\".concat(this.NAME, \" \");\r\n $imageContainer.attr(\"alt\", \"\".concat(componentName, \"item icon\"))\r\n }\r\n return $imageContainer\r\n },\r\n _getTextContainer: itemData => $(\"<span>\").text(itemData.text),\r\n _initAccessors() {\r\n var that = this;\r\n each(this._getAccessors(), (_, accessor) => {\r\n that._compileAccessor(accessor)\r\n });\r\n this._compileDisplayGetter()\r\n },\r\n _getAccessors: () => [\"key\", \"selected\", \"items\", \"disabled\", \"parentId\", \"expanded\"],\r\n _getChildNodes(node) {\r\n var that = this;\r\n var arr = [];\r\n each(node.internalFields.childrenKeys, (_, key) => {\r\n var childNode = that._dataAdapter.getNodeByKey(key);\r\n arr.push(childNode)\r\n });\r\n return arr\r\n },\r\n _hasChildren: node => node && node.internalFields.childrenKeys.length,\r\n _compileAccessor(optionName) {\r\n var getter = \"_\".concat(optionName, \"Getter\");\r\n var setter = \"_\".concat(optionName, \"Setter\");\r\n var optionExpr = this.option(\"\".concat(optionName, \"Expr\"));\r\n if (!optionExpr) {\r\n this[getter] = noop;\r\n this[setter] = noop;\r\n return\r\n }\r\n if (isFunction(optionExpr)) {\r\n this[setter] = function(obj, value) {\r\n obj[optionExpr()] = value\r\n };\r\n this[getter] = function(obj) {\r\n return obj[optionExpr()]\r\n };\r\n return\r\n }\r\n this[getter] = compileGetter(optionExpr);\r\n this[setter] = compileSetter(optionExpr)\r\n },\r\n _createDataAdapterAccessors() {\r\n var that = this;\r\n var accessors = {\r\n getters: {},\r\n setters: {}\r\n };\r\n each(this._getAccessors(), (_, accessor) => {\r\n var getterName = \"_\".concat(accessor, \"Getter\");\r\n var setterName = \"_\".concat(accessor, \"Setter\");\r\n var newAccessor = \"parentId\" === accessor ? \"parentKey\" : accessor;\r\n accessors.getters[newAccessor] = that[getterName];\r\n accessors.setters[newAccessor] = that[setterName]\r\n });\r\n accessors.getters.display = !this._displayGetter ? itemData => itemData.text : this._displayGetter;\r\n return accessors\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._addWidgetClass()\r\n },\r\n _addWidgetClass() {\r\n this._focusTarget().addClass(this._widgetClass())\r\n },\r\n _widgetClass: noop,\r\n _renderItemFrame(index, itemData) {\r\n var $itemFrame = this.callBase.apply(this, arguments);\r\n $itemFrame.toggleClass(DISABLED_STATE_CLASS, !!this._disabledGetter(itemData));\r\n return $itemFrame\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"displayExpr\":\r\n case \"keyExpr\":\r\n this._initAccessors();\r\n this._initDynamicTemplates();\r\n this.repaint();\r\n break;\r\n case \"itemsExpr\":\r\n case \"selectedExpr\":\r\n case \"disabledExpr\":\r\n case \"expandedExpr\":\r\n case \"parentIdExpr\":\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default HierarchicalCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/widget.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nvar TypedWidget = Widget;\r\nexport default TypedWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/hierarchical.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport HierarchicalCollectionWidget from \"../../../ui/hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport CollectionWidgetEdit from \"./edit\";\r\nvar TypedCollectionWidget = HierarchicalCollectionWidget;\r\nexport default TypedCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/context_menu/m_menu_base.edit.strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n map\r\n} from \"../../../core/utils/iterator\";\r\nimport PlainEditStrategy from \"../../ui/collection/m_collection_widget.edit.strategy.plain\";\r\nclass MenuBaseEditStrategy extends PlainEditStrategy {\r\n _getPlainItems() {\r\n return map(this._collectionWidget.option(\"items\"), (function getMenuItems(item) {\r\n return item.items ? [item].concat(map(item.items, getMenuItems)) : item\r\n }))\r\n }\r\n _stringifyItem(item) {\r\n return JSON.stringify(item, (key, value) => {\r\n if (\"template\" === key) {\r\n return this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n }\r\n _getTemplateString(template) {\r\n var result;\r\n if (\"object\" === typeof template) {\r\n result = $(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n }\r\n}\r\nexport default MenuBaseEditStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/context_menu/m_menu_base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n render\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nimport HierarchicalCollectionWidget from \"../../ui/collection/hierarchical\";\r\nimport MenuItem from \"../../ui/collection/m_item\";\r\nimport MenuBaseEditStrategy from \"../../ui/context_menu/m_menu_base.edit.strategy\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_NO_ICONS_CLASS = \"\".concat(DX_MENU_CLASS, \"-no-icons\");\r\nvar DX_MENU_BASE_CLASS = \"dx-menu-base\";\r\nvar ITEM_CLASS = \"\".concat(DX_MENU_CLASS, \"-item\");\r\nvar DX_ITEM_CONTENT_CLASS = \"\".concat(ITEM_CLASS, \"-content\");\r\nvar DX_MENU_SELECTED_ITEM_CLASS = \"\".concat(ITEM_CLASS, \"-selected\");\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = \"\".concat(ITEM_CLASS, \"-wrapper\");\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = \"\".concat(DX_MENU_CLASS, \"-items-container\");\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = \"\".concat(ITEM_CLASS, \"-expanded\");\r\nvar DX_MENU_SEPARATOR_CLASS = \"\".concat(DX_MENU_CLASS, \"-separator\");\r\nvar DX_MENU_ITEM_LAST_GROUP_ITEM = \"\".concat(DX_MENU_CLASS, \"-last-group-item\");\r\nvar DX_ITEM_HAS_TEXT = \"\".concat(ITEM_CLASS, \"-has-text\");\r\nvar DX_ITEM_HAS_ICON = \"\".concat(ITEM_CLASS, \"-has-icon\");\r\nvar DX_ITEM_HAS_SUBMENU = \"\".concat(ITEM_CLASS, \"-has-submenu\");\r\nvar DX_MENU_ITEM_POPOUT_CLASS = \"\".concat(ITEM_CLASS, \"-popout\");\r\nvar DX_MENU_ITEM_POPOUT_CONTAINER_CLASS = \"\".concat(DX_MENU_ITEM_POPOUT_CLASS, \"-container\");\r\nvar DX_MENU_ITEM_CAPTION_CLASS = \"\".concat(ITEM_CLASS, \"-text\");\r\nvar SINGLE_SELECTION_MODE = \"single\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar DX_MENU_ITEM_CAPTION_URL_CLASS = \"\".concat(DX_MENU_ITEM_CAPTION_CLASS, \"-with-url\");\r\nvar DX_ICON_WITH_URL_CLASS = \"dx-icon-with-url\";\r\nvar ITEM_URL_CLASS = \"dx-item-url\";\r\nclass MenuBase extends HierarchicalCollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n cssClass: \"\",\r\n activeStateEnabled: true,\r\n showSubmenuMode: {\r\n name: \"onHover\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n duration: 100\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n duration: 100\r\n }\r\n },\r\n selectByClick: false,\r\n focusOnSelectedItem: false,\r\n keyExpr: null,\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n },\r\n useInkRipple: false\r\n })\r\n }\r\n _itemDataKey() {\r\n return \"dxMenuItemDataKey\"\r\n }\r\n _itemClass() {\r\n return ITEM_CLASS\r\n }\r\n _setAriaSelectionAttribute($itemElement, isSelected) {}\r\n _selectedItemClass() {\r\n return DX_MENU_SELECTED_ITEM_CLASS\r\n }\r\n _widgetClass() {\r\n return DX_MENU_BASE_CLASS\r\n }\r\n _focusTarget() {\r\n return this._itemContainer()\r\n }\r\n _clean() {\r\n this.option(\"focusedElement\", null);\r\n super._clean()\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n }\r\n _isSelectionEnabled() {\r\n return this.option(\"selectionMode\") === SINGLE_SELECTION_MODE\r\n }\r\n _init() {\r\n this._activeStateUnit = \".\".concat(ITEM_CLASS);\r\n super._init();\r\n this._renderSelectedItem();\r\n this._initActions()\r\n }\r\n _getLinkContainer(iconContainer, textContainer, itemData) {\r\n var {\r\n linkAttr: linkAttr,\r\n url: url\r\n } = itemData;\r\n null === iconContainer || void 0 === iconContainer ? void 0 : iconContainer.addClass(DX_ICON_WITH_URL_CLASS);\r\n null === textContainer || void 0 === textContainer ? void 0 : textContainer.addClass(DX_MENU_ITEM_CAPTION_URL_CLASS);\r\n return super._getLinkContainer(iconContainer, textContainer, {\r\n linkAttr: linkAttr,\r\n url: url\r\n })\r\n }\r\n _addContent($container, itemData) {\r\n var {\r\n html: html,\r\n url: url\r\n } = itemData;\r\n if (url) {\r\n $container.html(html);\r\n var link = this._getLinkContainer(this._getIconContainer(itemData), this._getTextContainer(itemData), itemData);\r\n $container.append(link)\r\n } else {\r\n super._addContent($container, itemData)\r\n }\r\n $container.append(this._getPopoutContainer(itemData));\r\n this._addContentClasses(itemData, $container.parent())\r\n }\r\n _getTextContainer(itemData) {\r\n var {\r\n text: text\r\n } = itemData;\r\n if (!text) {\r\n return\r\n }\r\n var $itemContainer = $(\"<span>\").addClass(DX_MENU_ITEM_CAPTION_CLASS);\r\n var itemText = isPlainObject(itemData) ? text : String(itemData);\r\n return $itemContainer.text(itemText)\r\n }\r\n _getItemExtraPropNames() {\r\n return [\"url\", \"linkAttr\"]\r\n }\r\n _getPopoutContainer(itemData) {\r\n var {\r\n items: items\r\n } = itemData;\r\n var $popOutContainer;\r\n if (items && items.length) {\r\n var $popOutImage = $(\"<div>\").addClass(DX_MENU_ITEM_POPOUT_CLASS);\r\n $popOutContainer = $(\"<span>\").addClass(DX_MENU_ITEM_POPOUT_CONTAINER_CLASS).append($popOutImage)\r\n }\r\n return $popOutContainer\r\n }\r\n _getDataAdapterOptions() {\r\n return {\r\n rootValue: 0,\r\n multipleSelection: false,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n searchValue: \"\"\r\n }\r\n }\r\n _selectByItem(selectedItem) {\r\n if (!selectedItem) {\r\n return\r\n }\r\n var nodeToSelect = this._dataAdapter.getNodeByItem(selectedItem);\r\n this._dataAdapter.toggleSelection(nodeToSelect.internalFields.key, true)\r\n }\r\n _renderSelectedItem() {\r\n var selectedKeys = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedKey = selectedKeys.length && selectedKeys[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (!selectedKey) {\r\n this._selectByItem(selectedItem);\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByKey(selectedKey);\r\n if (false === node.selectable) {\r\n return\r\n }\r\n if (!selectedItem) {\r\n this.option(\"selectedItem\", node.internalFields.item);\r\n return\r\n }\r\n if (selectedItem !== node.internalFields.item) {\r\n this._dataAdapter.toggleSelection(selectedKey, false);\r\n this._selectByItem(selectedItem)\r\n }\r\n }\r\n _initActions() {}\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n }\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n }\r\n _toggleActiveState($element, value, e) {\r\n super._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n }\r\n _getShowSubmenuMode() {\r\n var optionValue = this.option(\"showSubmenuMode\");\r\n optionValue = isObject(optionValue) ? optionValue.name : optionValue;\r\n return this._isDesktopDevice() ? optionValue : \"onClick\"\r\n }\r\n _initSelectedItems() {}\r\n _isDesktopDevice() {\r\n return \"desktop\" === devices.real().deviceType\r\n }\r\n _initEditStrategy() {\r\n var Strategy = MenuBaseEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n }\r\n _addCustomCssClass($element) {\r\n $element.addClass(this.option(\"cssClass\"))\r\n }\r\n _itemWrapperSelector() {\r\n return \".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _hoverStartHandler(e) {\r\n var $itemElement = this._getItemElementByEventArgs(e);\r\n if (!$itemElement || this._isItemDisabled($itemElement)) {\r\n return\r\n }\r\n e.stopPropagation();\r\n if (\"onHover\" === this._getShowSubmenuMode()) {\r\n clearTimeout(this._showSubmenusTimeout);\r\n this._showSubmenusTimeout = setTimeout(this._showSubmenu.bind(this, $itemElement), this._getSubmenuDelay(\"show\"))\r\n }\r\n }\r\n _getAvailableItems($itemElements) {\r\n return super._getAvailableItems($itemElements).filter((function() {\r\n return \"hidden\" !== $(this).css(\"visibility\")\r\n }))\r\n }\r\n _isItemDisabled($item) {\r\n return this._disabledGetter($item.data(this._itemDataKey()))\r\n }\r\n _showSubmenu($itemElement) {\r\n this._addExpandedClass($itemElement)\r\n }\r\n _addExpandedClass(itemElement) {\r\n $(itemElement).addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _getSubmenuDelay(action) {\r\n var {\r\n delay: delay\r\n } = this.option(\"showSubmenuMode\");\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[action]\r\n }\r\n return isObject(delay) ? delay[action] : delay\r\n }\r\n _getItemElementByEventArgs(eventArgs) {\r\n var $target = $(eventArgs.target);\r\n if ($target.hasClass(this._itemClass()) || $target.get(0) === eventArgs.currentTarget) {\r\n return $target\r\n }\r\n while (!$target.hasClass(this._itemClass())) {\r\n $target = $target.parent();\r\n if ($target.hasClass(\"dx-submenu\")) {\r\n return null\r\n }\r\n }\r\n return $target\r\n }\r\n _hoverEndHandler(event) {\r\n clearTimeout(this._showSubmenusTimeout)\r\n }\r\n _hasSubmenu(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n }\r\n _renderContentImpl() {\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n _renderItems(nodes, submenuContainer) {\r\n if (!nodes.length) {\r\n return\r\n }\r\n this.hasIcons = false;\r\n var $nodeContainer = this._renderContainer(this.$element(), submenuContainer);\r\n var firstVisibleIndex = -1;\r\n var nextGroupFirstIndex = -1;\r\n each(nodes, (index, node) => {\r\n var isVisibleNode = false !== node.visible;\r\n if (isVisibleNode && firstVisibleIndex < 0) {\r\n firstVisibleIndex = index\r\n }\r\n var isBeginGroup = firstVisibleIndex < index && (node.beginGroup || index === nextGroupFirstIndex);\r\n if (isBeginGroup) {\r\n nextGroupFirstIndex = isVisibleNode ? index : index + 1\r\n }\r\n if (index === nextGroupFirstIndex && firstVisibleIndex < index) {\r\n this._renderSeparator($nodeContainer)\r\n }\r\n this._renderItem(index, node, $nodeContainer)\r\n });\r\n if (!this.hasIcons) {\r\n $nodeContainer.addClass(DX_MENU_NO_ICONS_CLASS)\r\n }\r\n }\r\n _renderContainer($wrapper, submenuContainer) {\r\n var $container = $(\"<ul>\");\r\n this.setAria(\"role\", \"none\", $container);\r\n return $container.appendTo($wrapper).addClass(DX_MENU_ITEMS_CONTAINER_CLASS)\r\n }\r\n _createDOMElement($nodeContainer) {\r\n var $node = $(\"<li>\");\r\n this.setAria(\"role\", \"none\", $node);\r\n return $node.appendTo($nodeContainer).addClass(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _renderItem(index, node, $nodeContainer, $nodeElement) {\r\n var {\r\n items: items = []\r\n } = this.option();\r\n var $node = null !== $nodeElement && void 0 !== $nodeElement ? $nodeElement : this._createDOMElement($nodeContainer);\r\n if (items[index + 1] && items[index + 1].beginGroup) {\r\n $node.addClass(DX_MENU_ITEM_LAST_GROUP_ITEM)\r\n }\r\n var $itemFrame = super._renderItem(index, node.internalFields.item, $node);\r\n if (node.internalFields.item === this.option(\"selectedItem\")) {\r\n $itemFrame.addClass(DX_MENU_SELECTED_ITEM_CLASS)\r\n }\r\n $itemFrame.attr(\"tabIndex\", -1);\r\n if (this._hasSubmenu(node)) {\r\n this.setAria(\"haspopup\", \"true\", $itemFrame)\r\n }\r\n }\r\n _renderItemFrame(index, itemData, $itemContainer) {\r\n var $itemFrame = $itemContainer.children(\".\".concat(ITEM_CLASS));\r\n return $itemFrame.length ? $itemFrame : super._renderItemFrame.apply(this, arguments)\r\n }\r\n _refreshItem($item, item) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n var index = $item.data(this._itemIndexKey());\r\n var $nodeContainer = $item.closest(\"ul\");\r\n var $nodeElement = $item.closest(\"li\");\r\n this._renderItem(index, node, $nodeContainer, $nodeElement)\r\n }\r\n _addContentClasses(itemData, $itemFrame) {\r\n var hasText = itemData.text ? !!itemData.text.length : false;\r\n var hasIcon = !!itemData.icon;\r\n var hasSubmenu = itemData.items ? !!itemData.items.length : false;\r\n $itemFrame.toggleClass(DX_ITEM_HAS_TEXT, hasText);\r\n $itemFrame.toggleClass(DX_ITEM_HAS_ICON, hasIcon);\r\n if (!this.hasIcons) {\r\n this.hasIcons = hasIcon\r\n }\r\n $itemFrame.toggleClass(DX_ITEM_HAS_SUBMENU, hasSubmenu)\r\n }\r\n _getItemContent($itemFrame) {\r\n var $itemContent = super._getItemContent($itemFrame);\r\n if (!$itemContent.length) {\r\n $itemContent = $itemFrame.children(\".\".concat(DX_ITEM_CONTENT_CLASS))\r\n }\r\n return $itemContent\r\n }\r\n _postprocessRenderItem(args) {\r\n var $itemElement = $(args.itemElement);\r\n var selectedIndex = this._dataAdapter.getSelectedNodesKeys();\r\n if (!selectedIndex.length || !this._selectedGetter(args.itemData) || !this._isItemSelectable(args.itemData)) {\r\n this._setAriaSelectionAttribute($itemElement, \"false\");\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByItem(args.itemData);\r\n if (node.internalFields.key === selectedIndex[0]) {\r\n $itemElement.addClass(this._selectedItemClass());\r\n this._setAriaSelectionAttribute($itemElement, \"true\")\r\n } else {\r\n this._setAriaSelectionAttribute($itemElement, \"false\")\r\n }\r\n }\r\n _isItemSelectable(item) {\r\n return false !== item.selectable\r\n }\r\n _renderSeparator($itemsContainer) {\r\n $(\"<li>\").appendTo($itemsContainer).addClass(DX_MENU_SEPARATOR_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n if (e._skipHandling) {\r\n return\r\n }\r\n var itemClickActionHandler = this._createAction(this._updateSubmenuVisibilityOnClick.bind(this));\r\n this._itemDXEventHandler(e, \"onItemClick\", {}, {\r\n beforeExecute: this._itemClick,\r\n afterExecute: itemClickActionHandler.bind(this)\r\n });\r\n e._skipHandling = true\r\n }\r\n _itemClick(actionArgs) {\r\n var {\r\n event: event,\r\n itemData: itemData\r\n } = actionArgs.args[0];\r\n var $itemElement = this._getItemElementByEventArgs(event);\r\n var link = $itemElement && $itemElement.find(\".\".concat(ITEM_URL_CLASS)).get(0);\r\n if (itemData.url && link) {\r\n link.click()\r\n }\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._addExpandedClass(actionArgs.args[0].itemElement)\r\n }\r\n }\r\n _updateSelectedItemOnClick(actionArgs) {\r\n var args = actionArgs.args ? actionArgs.args[0] : actionArgs;\r\n if (!this._isItemSelectAllowed(args.itemData)) {\r\n return\r\n }\r\n var selectedItemKey = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedNode = selectedItemKey.length && this._dataAdapter.getNodeByKey(selectedItemKey[0]);\r\n if (selectedNode) {\r\n this._toggleItemSelection(selectedNode, false)\r\n }\r\n if (!selectedNode || selectedNode.internalFields.item !== args.itemData) {\r\n this.selectItem(args.itemData)\r\n } else {\r\n this._fireSelectionChangeEvent(null, this.option(\"selectedItem\"));\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n _isItemSelectAllowed(item) {\r\n var isSelectByClickEnabled = this._isSelectionEnabled() && this.option(\"selectByClick\");\r\n return !this._isContainerEmpty() && isSelectByClickEnabled && this._isItemSelectable(item) && !this._itemsGetter(item)\r\n }\r\n _isContainerEmpty() {\r\n return this._itemContainer().is(\":empty\")\r\n }\r\n _syncSelectionOptions() {\r\n return asyncNoop()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showSubmenuMode\":\r\n break;\r\n case \"selectedItem\":\r\n var node = this._dataAdapter.getNodeByItem(args.value);\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n if (node && node.internalFields.key !== selectedKey) {\r\n if (false === node.selectable) {\r\n break\r\n }\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems()\r\n }\r\n break;\r\n case \"cssClass\":\r\n case \"position\":\r\n case \"selectByClick\":\r\n case \"animation\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _toggleItemSelection(node, value) {\r\n var itemElement = this._getElementByItem(node.internalFields.item);\r\n itemElement && $(itemElement).toggleClass(DX_MENU_SELECTED_ITEM_CLASS);\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value)\r\n }\r\n _getElementByItem(itemData) {\r\n var result;\r\n each(this._itemElements(), (_, itemElement) => {\r\n if ($(itemElement).data(this._itemDataKey()) !== itemData) {\r\n return true\r\n }\r\n result = itemElement;\r\n return false\r\n });\r\n return result\r\n }\r\n _updateSelectedItems(oldSelection, newSelection) {\r\n if (oldSelection || newSelection) {\r\n this._fireSelectionChangeEvent(newSelection, oldSelection)\r\n }\r\n }\r\n _fireSelectionChangeEvent(addedSelection, removedSelection) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: [addedSelection],\r\n removedItems: [removedSelection]\r\n })\r\n }\r\n selectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (node.internalFields.key !== selectedKey) {\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems(selectedItem, itemData);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", itemData)\r\n }\r\n }\r\n unselectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (node.internalFields.selected) {\r\n this._toggleItemSelection(node, false);\r\n this._updateSelectedItems(selectedItem, null);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n}\r\nMenuBase.ItemClass = MenuItem;\r\nexport default MenuBase;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/context_menu/m_context_menu.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport animationPosition from \"../../../animation/position\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n contains\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isObject,\r\n isPlainObject,\r\n isRenderer,\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../../events/contextmenu\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../events/hold\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport Overlay from \"../../../ui/overlay/ui.overlay\";\r\nimport MenuBase from \"../../ui/context_menu/m_menu_base\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = \"\".concat(DX_MENU_CLASS, \"-item\");\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = \"\".concat(DX_MENU_ITEM_CLASS, \"-expanded\");\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = \"\".concat(DX_MENU_CLASS, \"-items-container\");\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = \"\".concat(DX_MENU_ITEM_CLASS, \"-wrapper\");\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nvar window = getWindow();\r\nclass ContextMenu extends MenuBase {\r\n getShowEvent(showEventOption) {\r\n var _a;\r\n if (isObject(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n return null !== (_a = showEventOption.name) && void 0 !== _a ? _a : DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n return showEventOption\r\n }\r\n return null\r\n }\r\n getShowDelay(showEventOption) {\r\n return isObject(showEventOption) && showEventOption.delay\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n hideOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n }\r\n _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.2\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action) || noop\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _focusInHandler() {}\r\n _itemContainer() {\r\n return this._overlay ? this._overlay.$content() : $()\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n itemsContainer() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n this.hide();\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n escape: this.hide\r\n })\r\n }\r\n _getActiveItem(last) {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return super._getActiveItem()\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = $(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n }\r\n _setFocusedElement($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", getPublicElement($element))\r\n }\r\n }\r\n _getItemsByLocation(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if (LOCAL_SUBMENU_DIRECTIONS.includes(location)) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _refreshActiveDescendant() {\r\n if (isDefined(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n super._refreshActiveDescendant($target)\r\n }\r\n }\r\n _hideSubmenuHandler() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem)\r\n }\r\n _expandSubmenuHandler($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n }\r\n _clean() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n super._clean()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n }\r\n _renderContentImpl() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n }\r\n _attachKeyboardEvents() {\r\n !this._keyboardListenerId && this._focusTarget().length && super._attachKeyboardEvents()\r\n }\r\n _renderContextMenuOverlay() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent($(\"<div>\").appendTo(this._$element), Overlay, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n }\r\n preventShowingDefaultContextMenuAboveOverlay() {\r\n var $itemContainer = this._itemContainer();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS));\r\n eventsEngine.on($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS), e => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS))\r\n })\r\n }\r\n _itemContextMenuHandler(e) {\r\n super._itemContextMenuHandler(e);\r\n e.stopPropagation()\r\n }\r\n _addPlatformDependentClass($element) {\r\n if (devices.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n }\r\n _detachShowContextMenuEvents(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n eventsEngine.off($(target), eventName)\r\n }\r\n }\r\n _attachShowContextMenuEvents() {\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(e => {\r\n var delay = this.getShowDelay(this.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(() => this._show(e.event), delay)\r\n } else {\r\n this._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = e => contextMenuAction({\r\n event: e,\r\n target: $(e.currentTarget)\r\n });\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if (isRenderer(target) || target.nodeType || isWindow(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n eventsEngine.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n e.stopPropagation()\r\n }\r\n _renderDimensions() {}\r\n _renderContainer($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = $(\"<div>\");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n if (!$wrapper.parent().hasClass(OVERLAY_CONTENT_CLASS)) {\r\n this._addCustomCssClass($wrapper)\r\n }\r\n var $itemsContainer = super._renderContainer($wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: getPublicElement($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: getPublicElement($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n }\r\n _getOverlayOptions() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n hideOnOutsideClick: e => this._hideOnOutsideClickHandler(e),\r\n propagateOutsideClick: true,\r\n hideOnParentScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this),\r\n visualContainer: window\r\n };\r\n return overlayOptions\r\n }\r\n _overlayShownActionHandler(arg) {\r\n this._actions.onShown(arg)\r\n }\r\n _overlayHidingActionHandler(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n }\r\n _overlayHiddenActionHandler(arg) {\r\n this._actions.onHidden(arg)\r\n }\r\n _shouldHideOnOutsideClick(e) {\r\n var {\r\n closeOnOutsideClick: closeOnOutsideClick,\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n }\r\n if (isFunction(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n }\r\n return hideOnOutsideClick || closeOnOutsideClick\r\n }\r\n _hideOnOutsideClickHandler(e) {\r\n if (!this._shouldHideOnOutsideClick(e)) {\r\n return false\r\n }\r\n if (domAdapter.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n _getActiveItemsContainer(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _getItemsContainers() {\r\n return this._overlay.$content().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _searchActiveItem(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n }\r\n _isIncludeOverlay($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n each($allOverlays, (index, $overlay) => {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n }\r\n _hideAllShownChildSubmenus($clickedItem) {\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n each(shownSubmenus, (index, $submenu) => {\r\n var $context = this._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n this._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n }\r\n _showSubmenu($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n super._showSubmenu($item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n }\r\n _hideSubmenusOnSameLevel($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n }\r\n _hideSubmenuGroup($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n }\r\n _isSubmenuVisible($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n }\r\n _drawSubmenu($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!isDefined(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if (!this._shownSubmenus.includes($submenu)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n fx.stop($submenu)\r\n }\r\n animationPosition.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if (isPlainObject(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n _animate($container, options) {\r\n fx.animate($container, options)\r\n }\r\n _getSubmenuPosition($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var {\r\n itemData: itemData\r\n } = actionArgs.args[0];\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = $(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = $($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n }\r\n _hideSubmenu($curSubmenu) {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n each(shownSubmenus, (index, $submenu) => {\r\n if ($curSubmenu.is($submenu) || contains($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenuCore($submenu)\r\n }\r\n })\r\n }\r\n _hideSubmenuCore($submenu) {\r\n var index = this._shownSubmenus.indexOf($submenu);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n }\r\n _stopAnimate($container) {\r\n fx.stop($container, true)\r\n }\r\n _hideAllShownSubmenus() {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n each(shownSubmenus, (_, $submenu) => {\r\n this._hideSubmenu($submenu)\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderVisibility(showing) {\r\n return showing ? this._show() : this._hide()\r\n }\r\n _toggleVisibility() {}\r\n _show(event) {\r\n var _a;\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = Deferred().reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes();\r\n if ((null === (_a = null === event || void 0 === event ? void 0 : event.originalEvent) || void 0 === _a ? void 0 : _a.type) === holdEvent.name) {\r\n this.preventShowingDefaultContextMenuAboveOverlay()\r\n }\r\n }\r\n return promise\r\n }\r\n _setAriaAttributes() {\r\n this._overlayContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n }\r\n _cleanAriaAttributes() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n }\r\n _getTarget() {\r\n return this.option(\"target\") || this.option(\"position\").of || $(domAdapter.getDocument())\r\n }\r\n _getContextMenuPosition() {\r\n return extend({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n }\r\n _positionContextMenu(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\");\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n return position\r\n }\r\n _refresh() {\r\n if (!hasWindow()) {\r\n super._refresh()\r\n } else if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n super._refresh();\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n super._refresh()\r\n }\r\n }\r\n _hide() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || Deferred().reject().promise()\r\n }\r\n toggle(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n }\r\n show() {\r\n return this.toggle(true)\r\n }\r\n hide() {\r\n return this.toggle(false)\r\n }\r\n}\r\nregisterComponent(\"dxContextMenu\", ContextMenu);\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/context_menu/m_context_menu.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport ContextMenu from \"../../../../ui/context_menu\";\r\nimport modules from \"../m_modules\";\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nexport class ContextMenuController extends modules.ViewController {\r\n init() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n }\r\n getContextMenuItems(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = $(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n each(VIEW_NAMES, (function() {\r\n var _a, _b;\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: getPublicElement($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: null === (_b = null === (_a = null === rowOptions || void 0 === rowOptions ? void 0 : rowOptions.cells) || void 0 === _a ? void 0 : _a[columnIndex]) || void 0 === _b ? void 0 : _b.column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n return\r\n }));\r\n return menuItems\r\n }\r\n _contextMenuPrepared(options) {}\r\n}\r\nexport class ContextMenuView extends modules.View {\r\n init() {\r\n super.init();\r\n this._contextMenuController = this.getController(\"contextMenu\")\r\n }\r\n _renderCore() {\r\n var $element = this.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, ContextMenu, {\r\n onPositioning: actionArgs => {\r\n var {\r\n event: event\r\n } = actionArgs;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = this._contextMenuController.getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick(params) {\r\n var _a, _b;\r\n null === (_b = null === (_a = params.itemData) || void 0 === _a ? void 0 : _a.onItemClick) || void 0 === _b ? void 0 : _b.call(_a, params)\r\n },\r\n cssClass: this.getWidgetContainerClass(),\r\n target: this.component.$element()\r\n })\r\n }\r\n}\r\nexport var contextMenuModule = {\r\n defaultOptions: () => ({\r\n onContextMenuPreparing: null\r\n }),\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/context_menu.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n contextMenuModule\r\n} from \"../../../grids/grid_core/context_menu/m_context_menu\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/error_handling/m_error_handling.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport modules from \"../m_modules\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nexport class ErrorHandlingController extends modules.ViewController {\r\n init() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n _createErrorRow(error, $tableElements) {\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = $(\"<tr>\").attr(\"role\", \"row\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = $(\"<div>\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(this.addWidgetPrefix(ACTION_CLASS));\r\n eventsEngine.on($closeButton, clickEventName, this.createAction(args => {\r\n var _a, _b;\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = $(e.currentTarget).closest(\".\".concat(ERROR_ROW_CLASS)).index();\r\n e.stopPropagation();\r\n each($tableElements, (_, tableElement) => {\r\n $errorRow = $(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n this.removeErrorRow($errorRow)\r\n });\r\n null === (_b = null === (_a = this._resizingController) || void 0 === _a ? void 0 : _a.fireContentReadyAction) || void 0 === _b ? void 0 : _b.call(_a)\r\n }));\r\n $(\"<td>\").attr({\r\n colSpan: this._columnsController.getVisibleColumns().length,\r\n role: \"gridcell\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n }\r\n _renderErrorMessage(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = $(\"<div>\").attr(\"role\", \"alert\").attr(\"aria-roledescription\", messageLocalization.format(\"dxDataGrid-ariaError\")).addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n $(\"<a>\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n }\r\n renderErrorRow(error, rowIndex, $popupContent) {\r\n var _a, _b;\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\".concat(ERROR_MESSAGE_CLASS)).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = viewElement.getTableElements();\r\n each($tableElements, (_, tableElement) => {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements($(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = $(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n $(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n });\r\n null === (_b = null === (_a = this._resizingController) || void 0 === _a ? void 0 : _a.fireContentReadyAction) || void 0 === _b ? void 0 : _b.call(_a);\r\n return $firstErrorRow\r\n }\r\n removeErrorRow($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\".concat(ERROR_ROW_CLASS));\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\".concat(ERROR_ROW_CLASS))\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n}\r\nvar data = Base => class extends Base {\r\n init() {\r\n super.init();\r\n this.dataErrorOccurred.add((error, $popupContent) => {\r\n if (this.option(\"errorRowEnabled\")) {\r\n this._errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n });\r\n this.changed.add(e => {\r\n var _a, _b;\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n if (this._editingController && !this._editingController.hasChanges()) {\r\n null === (_b = null === (_a = this._errorHandlingController) || void 0 === _a ? void 0 : _a.removeErrorRow) || void 0 === _b ? void 0 : _b.call(_a)\r\n }\r\n })\r\n }\r\n};\r\nexport var errorHandlingModule = {\r\n defaultOptions: () => ({\r\n errorRowEnabled: true\r\n }),\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: data\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/error_handling.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n errorHandlingModule\r\n} from \"../../../grids/grid_core/error_handling/m_error_handling\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_grid_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getInnerWidth,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport * as accessibility from \"../../../../ui/shared/accessibility\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar GROUP_ROW_SELECTOR = \"tr.dx-group-row\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return isString(width) && width.endsWith(\"%\")\r\n};\r\nvar isPixelWidth = function(width) {\r\n return isString(width) && width.endsWith(\"px\")\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map((width, index) => index === columnIndex ? currentMinWidth : width))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement, true);\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nexport class ResizingController extends modules.ViewController {\r\n init() {\r\n this._prevContentMinHeight = null;\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this._editorFactoryController = this.getController(\"editorFactory\");\r\n this._footerView = this.getView(\"footerView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n _initPostRenderHandlers() {\r\n if (!this._refreshSizesHandler) {\r\n this._refreshSizesHandler = e => {\r\n var resizeDeferred = (new Deferred).resolve(null);\r\n var changeType = null === e || void 0 === e ? void 0 : e.changeType;\r\n var isDelayed = null === e || void 0 === e ? void 0 : e.isDelayed;\r\n var needFireContentReady = changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && \"pageIndex\" !== changeType && !isDelayed;\r\n this._dataController.changed.remove(this._refreshSizesHandler);\r\n if (this._checkSize()) {\r\n resizeDeferred = this._refreshSizes(e)\r\n }\r\n if (needFireContentReady) {\r\n when(resizeDeferred).done(() => {\r\n this._setAriaLabel();\r\n this.fireContentReadyAction()\r\n })\r\n }\r\n };\r\n this._dataController.changed.add(() => {\r\n this._dataController.changed.add(this._refreshSizesHandler)\r\n })\r\n }\r\n }\r\n _refreshSizes(e) {\r\n var _a;\r\n var resizeDeferred = (new Deferred).resolve(null);\r\n var changeType = null === e || void 0 === e ? void 0 : e.changeType;\r\n var isDelayed = null === e || void 0 === e ? void 0 : e.isDelayed;\r\n var items = this._dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = this.resize()\r\n }\r\n } else if (\"update\" === changeType) {\r\n if (0 === (null === (_a = e.changeTypes) || void 0 === _a ? void 0 : _a.length)) {\r\n return resizeDeferred\r\n }\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n resizeDeferred = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n deferUpdate(() => deferRender(() => deferUpdate(() => {\r\n this._setScrollerSpacing();\r\n this._rowsView.resize();\r\n resizeDeferred.resolve()\r\n })))\r\n }).fail(resizeDeferred.reject)\r\n } else {\r\n resizeDeferred = this.resize()\r\n }\r\n }\r\n return resizeDeferred\r\n }\r\n fireContentReadyAction() {\r\n this.component._fireContentReadyAction()\r\n }\r\n _getWidgetAriaLabel() {\r\n return \"dxDataGrid-ariaDataGrid\"\r\n }\r\n _setAriaLabel() {\r\n var totalItemsCount = Math.max(0, this._dataController.totalItemsCount());\r\n this.component.setAria(\"label\", messageLocalization.format(this._getWidgetAriaLabel(), totalItemsCount, this.component.columnCount()), this.component.$element().children(\".\".concat(GRIDBASE_CONTAINER_CLASS)))\r\n }\r\n _getBestFitWidths() {\r\n var _a;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null === widths || void 0 === widths ? void 0 : widths.length)) {\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_a = rowsView.getTableElement()) || void 0 === _a ? void 0 : _a.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n }\r\n _setVisibleWidths(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n each(visibleColumns, (index, column) => {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n });\r\n columnsController.endUpdate()\r\n }\r\n _toggleBestFitModeForView(view, className, isBestFit) {\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n each($rowsTables, (index, tableElement) => {\r\n var $tableBody;\r\n var $rowsTable = $(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\".concat(className)).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n }\r\n _toggleBestFitMode(isBestFit) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n var $rowsFixedTable = this._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n each($rowsFixedTable.find(GROUP_ROW_SELECTOR), (idx, item) => {\r\n $(item).css(\"display\", isBestFit ? \"none\" : \"\")\r\n });\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n this._toggleBestFitModeForView(this._columnHeadersView, \"dx-header\", isBestFit);\r\n this._toggleBestFitModeForView(this._footerView, \"dx-footer\", isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n }\r\n _toggleContentMinHeight(value) {\r\n var scrollable = this._rowsView.getScrollable();\r\n var $contentElement = this._rowsView._findContentElement();\r\n if (false === (null === scrollable || void 0 === scrollable ? void 0 : scrollable.option(\"useNative\"))) {\r\n if (true === value) {\r\n this._prevContentMinHeight = $contentElement.get(0).style.minHeight\r\n }\r\n if (isDefined(this._prevContentMinHeight)) {\r\n $contentElement.css({\r\n minHeight: value ? gridCoreUtils.getContentHeightLimit(browser) : this._prevContentMinHeight\r\n })\r\n }\r\n }\r\n }\r\n _synchronizeColumns() {\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var hasUndefinedColumnWidth = visibleColumns.some(column => !isDefined(column.width));\r\n var needBestFit = this._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n !needBestFit && each(visibleColumns, (index, column) => {\r\n if (\"auto\" === column.width) {\r\n needBestFit = true;\r\n return false\r\n }\r\n return\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n return\r\n });\r\n this._setVisibleWidths(visibleColumns, []);\r\n var $element = this.component.$element();\r\n if (needBestFit) {\r\n focusedElement = domAdapter.getActiveElement($element.get(0));\r\n selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }\r\n this._toggleContentMinHeight(wordWrapEnabled);\r\n if ($element && $element.get(0) && this._maxWidth) {\r\n delete this._maxWidth;\r\n $element[0].style.maxWidth = \"\"\r\n }\r\n deferUpdate(() => {\r\n if (needBestFit) {\r\n resultWidths = this._getBestFitWidths();\r\n each(visibleColumns, (index, column) => {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n })\r\n } else if (hasMinWidth) {\r\n resultWidths = this._getBestFitWidths()\r\n }\r\n each(visibleColumns, (function(index) {\r\n var {\r\n width: width\r\n } = this;\r\n if (\"auto\" !== width) {\r\n if (isDefined(width)) {\r\n resultWidths[index] = isNumeric(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }));\r\n if (resetBestFitMode) {\r\n this._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== domAdapter.getActiveElement()) {\r\n var isFocusOutsideWindow = getBoundingRect(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = this._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n ! function() {\r\n var expandColumnWidth;\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n })\r\n }();\r\n if (this._needStretch()) {\r\n this._processStretch(resultWidths, visibleColumns)\r\n }\r\n }\r\n deferRender(() => {\r\n if (needBestFit || isColumnWidthsCorrected || hasUndefinedColumnWidth) {\r\n this._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n if (wordWrapEnabled) {\r\n this._toggleContentMinHeight(false)\r\n }\r\n })\r\n })\r\n }\r\n _needBestFit() {\r\n return this.option(\"columnAutoWidth\")\r\n }\r\n _needStretch() {\r\n return this._columnsController.getVisibleColumns().some(c => \"auto\" === c.width && !c.command)\r\n }\r\n _getAverageColumnsWidth(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter(width => void 0 === width).length;\r\n return freeWidth / columnCountWithoutWidth\r\n }\r\n _correctColumnWidths(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var {\r\n minWidth: minWidth\r\n } = column;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map((columnWidth, columnIndex) => index === columnIndex ? width : columnWidth));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!isDefined(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var $rowsViewElement = that._rowsView.element();\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n var borderWidth = that.option(\"showBorders\") ? Math.ceil(getOuterWidth($rowsViewElement) - getInnerWidth($rowsViewElement)) : 0;\r\n that._maxWidth = totalWidth + scrollbarWidth + borderWidth;\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n }\r\n _processStretch(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }\r\n each(visibleColumns, (function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n }));\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n }\r\n _getRealColumnWidth(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce((sum, width, index) => {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce((sum, width) => {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n }\r\n _getTotalWidth(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n }\r\n _getGroupElement() {\r\n return this.component.$element().children().get(0)\r\n }\r\n updateSize(rootElement) {\r\n var $rootElement = $(rootElement);\r\n var importantMarginClass = this.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === this._hasHeight && $rootElement && $rootElement.is(\":visible\") && getWidth($rootElement)) {\r\n var $groupElement = $rootElement.children(\".\".concat(this.getWidgetContainerClass()));\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n this._hasHeight = !!getHeight($rootElement);\r\n var width = getWidth($rootElement);\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = getWidth($rootElement) === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n }\r\n publicMethods() {\r\n return [\"resize\", \"updateDimensions\"]\r\n }\r\n _waitAsyncTemplates() {\r\n var _a, _b, _c;\r\n return when(null === (_a = this._columnHeadersView) || void 0 === _a ? void 0 : _a.waitAsyncTemplates(true), null === (_b = this._rowsView) || void 0 === _b ? void 0 : _b.waitAsyncTemplates(true), null === (_c = this._footerView) || void 0 === _c ? void 0 : _c.waitAsyncTemplates(true))\r\n }\r\n resize() {\r\n if (this.component._requireResize) {\r\n return (new Deferred).resolve()\r\n }\r\n var d = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n when(this.updateDimensions()).done(d.resolve).fail(d.reject)\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n updateDimensions(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new Deferred;\r\n when(prevResult).always(() => {\r\n deferRender(() => {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n deferUpdate(() => {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n that._updateDimensionsCore()\r\n })\r\n })\r\n })\r\n }).done(result.resolve).fail(result.reject)\r\n });\r\n return result.promise()\r\n }\r\n _resetGroupElementHeight() {\r\n var groupElement = this._getGroupElement();\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n }\r\n _checkSize(checkSize) {\r\n var $rootElement = this.component.$element();\r\n var isWidgetVisible = $rootElement.is(\":visible\");\r\n var isGridSizeChanged = this._lastWidth !== getWidth($rootElement) || this._lastHeight !== getHeight($rootElement) || this._devicePixelRatio !== getWindow().devicePixelRatio;\r\n return isWidgetVisible && (!checkSize || isGridSizeChanged)\r\n }\r\n _setScrollerSpacingCore() {\r\n var that = this;\r\n var vScrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n deferRender(() => {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n })\r\n }\r\n _setScrollerSpacing() {\r\n var scrollable = this._rowsView.getScrollable();\r\n var isNativeScrolling = true === this.option(\"scrolling.useNative\");\r\n if (!scrollable || isNativeScrolling) {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n this._setScrollerSpacingCore()\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore()\r\n }\r\n }\r\n _setAriaOwns() {\r\n var _a, _b, _c;\r\n var headerTable = null === (_a = this._columnHeadersView) || void 0 === _a ? void 0 : _a.getTableElement();\r\n var footerTable = null === (_b = this._footerView) || void 0 === _b ? void 0 : _b.getTableElement();\r\n null === (_c = this._rowsView) || void 0 === _c ? void 0 : _c.setAriaOwns(null === headerTable || void 0 === headerTable ? void 0 : headerTable.attr(\"id\"), null === footerTable || void 0 === footerTable ? void 0 : footerTable.attr(\"id\"))\r\n }\r\n _updateDimensionsCore() {\r\n var _a;\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = this._getGroupElement();\r\n var rootElementHeight = getHeight($rootElement);\r\n var height = null !== (_a = that.option(\"height\")) && void 0 !== _a ? _a : $rootElement.get(0).style.height;\r\n var isHeightSpecified = !!height && \"auto\" !== height;\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var isMaxHeightApplied = groupElement && groupElement.scrollHeight === groupElement.offsetHeight;\r\n that.updateSize($rootElement);\r\n deferRender(() => {\r\n var hasHeight = that._hasHeight || !!maxHeight || isHeightSpecified;\r\n rowsView.hasHeight(hasHeight);\r\n this._setAriaOwns();\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n $(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }\r\n deferUpdate(() => {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing();\r\n each(VIEW_NAMES, (index, viewName) => {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n });\r\n this._editorFactoryController && this._editorFactoryController.resize()\r\n })\r\n })\r\n }\r\n _updateLastSizes($rootElement) {\r\n this._lastWidth = getWidth($rootElement);\r\n this._lastHeight = getHeight($rootElement);\r\n this._devicePixelRatio = getWindow().devicePixelRatio\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n}\r\nexport class SynchronizeScrollingController extends modules.ViewController {\r\n _scrollChangedHandler(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n }\r\n init() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n}\r\nexport class GridView extends modules.View {\r\n _endUpdateCore() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n }\r\n init() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._dataController = this.getController(\"data\")\r\n }\r\n getView(name) {\r\n return this.component._views[name]\r\n }\r\n element() {\r\n return this._groupElement\r\n }\r\n optionChanged(args) {\r\n if (isDefined(this._groupElement) && \"showBorders\" === args.name) {\r\n this._groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n _renderViews($groupElement) {\r\n var that = this;\r\n each(VIEW_NAMES, (index, viewName) => {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n })\r\n }\r\n _getTableRoleName() {\r\n return \"group\"\r\n }\r\n render($rootElement) {\r\n var isFirstRender = !this._groupElement;\r\n var $groupElement = this._groupElement || $(\"<div>\").addClass(this.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!this.option(\"showBorders\"));\r\n this.setAria(\"role\", \"presentation\", $rootElement);\r\n this.component.setAria(\"role\", this._getTableRoleName(), $groupElement);\r\n this._rootElement = $rootElement || this._rootElement;\r\n if (isFirstRender) {\r\n this._groupElement = $groupElement;\r\n hasWindow() && this._resizingController.updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n this._renderViews($groupElement)\r\n }\r\n update() {\r\n var $rootElement = this._rootElement;\r\n var $groupElement = this._groupElement;\r\n if ($rootElement && $groupElement) {\r\n this._resizingController.resize();\r\n if (this._dataController.isLoaded()) {\r\n this._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n}\r\nexport var gridViewModule = {\r\n defaultOptions: () => ({\r\n showBorders: false,\r\n renderAsync: false\r\n }),\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n },\r\n VIEW_NAMES: VIEW_NAMES\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/grid_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n gridViewModule\r\n} from \"../../../grids/grid_core/views/m_grid_view\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"gridView\", gridViewModule);\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.async.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport CollectionWidgetEdit from \"./m_collection_widget.edit\";\r\nvar AsyncCollectionWidget = CollectionWidgetEdit.inherit({\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase()\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = Deferred();\r\n var itemDeferred = Deferred();\r\n this._deferredItems[args.index] = itemDeferred;\r\n var $itemContent = this.callBase.call(this, args);\r\n itemDeferred.done(() => {\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n return renderContentDeferred.promise()\r\n },\r\n _onItemTemplateRendered(itemTemplate, renderArgs) {\r\n return () => {\r\n this._deferredItems[renderArgs.index].resolve()\r\n }\r\n },\r\n _postProcessRenderItems: noop,\r\n _renderItemsAsync() {\r\n var d = Deferred();\r\n when.apply(this, this._deferredItems).done(() => {\r\n this._postProcessRenderItems();\r\n d.resolve()\r\n });\r\n return d.promise()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._deferredItems = []\r\n }\r\n});\r\nexport default AsyncCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/async.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetAsync from \"../../../ui/collection/ui.collection_widget.async\";\r\nimport CollectionWidgetEdit from \"./edit\";\r\nvar TypedCollectionWidget = CollectionWidgetAsync;\r\nexport default TypedCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/m_constants.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TOOLBAR_CLASS = \"dx-toolbar\";\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/m_toolbar.base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport fx from \"../../../animation/fx\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isMaterial,\r\n isMaterialBased,\r\n waitWebFont\r\n} from \"../../../ui/themes\";\r\nimport AsyncCollectionWidget from \"../../ui/collection/async\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"./m_constants\";\r\nvar TOOLBAR_BEFORE_CLASS = \"dx-toolbar-before\";\r\nvar TOOLBAR_CENTER_CLASS = \"dx-toolbar-center\";\r\nvar TOOLBAR_AFTER_CLASS = \"dx-toolbar-after\";\r\nvar TOOLBAR_MINI_CLASS = \"dx-toolbar-mini\";\r\nvar TOOLBAR_ITEM_CLASS = \"dx-toolbar-item\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_ITEMS_CONTAINER_CLASS = \"dx-toolbar-items-container\";\r\nvar TOOLBAR_GROUP_CLASS = \"dx-toolbar-group\";\r\nvar TOOLBAR_COMPACT_CLASS = \"dx-toolbar-compact\";\r\nvar TEXT_BUTTON_MODE = \"text\";\r\nvar DEFAULT_BUTTON_TYPE = \"default\";\r\nvar DEFAULT_DROPDOWNBUTTON_STYLING_MODE = \"contained\";\r\nvar TOOLBAR_ITEM_DATA_KEY = \"dxToolbarItemDataKey\";\r\nvar ANIMATION_TIMEOUT = 15;\r\nclass ToolbarBase extends AsyncCollectionWidget {\r\n _getSynchronizableOptionsForCreateComponent() {\r\n return super._getSynchronizableOptionsForCreateComponent().filter(item => \"disabled\" !== item)\r\n }\r\n _initTemplates() {\r\n super._initTemplates();\r\n var template = new BindableTemplate(($container, data, rawModel) => {\r\n var _a, _b, _c, _d, _e;\r\n if (isPlainObject(data)) {\r\n var {\r\n text: text,\r\n html: html,\r\n widget: widget\r\n } = data;\r\n if (text) {\r\n $container.text(text).wrapInner(\"<div>\")\r\n }\r\n if (html) {\r\n $container.html(html)\r\n }\r\n if (\"dxDropDownButton\" === widget) {\r\n data.options = null !== (_a = data.options) && void 0 !== _a ? _a : {};\r\n if (!isDefined(data.options.stylingMode)) {\r\n data.options.stylingMode = this.option(\"useFlatButtons\") ? TEXT_BUTTON_MODE : DEFAULT_DROPDOWNBUTTON_STYLING_MODE\r\n }\r\n }\r\n if (\"dxButton\" === widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n data.options = null !== (_b = data.options) && void 0 !== _b ? _b : {};\r\n data.options.stylingMode = null !== (_c = data.options.stylingMode) && void 0 !== _c ? _c : TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n data.options = null !== (_d = data.options) && void 0 !== _d ? _d : {};\r\n data.options.type = null !== (_e = data.options.type) && void 0 !== _e ? _e : DEFAULT_BUTTON_TYPE\r\n }\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: rawModel,\r\n parent: this\r\n })\r\n }, [\"text\", \"html\", \"widget\", \"options\"], this.option(\"integrationOptions.watchMethod\"));\r\n this._templateManager.addDefaultTemplates({\r\n item: template,\r\n menuItem: template\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return _extends(_extends({}, super._getDefaultOptions()), {\r\n renderAs: \"topToolbar\",\r\n grouped: false,\r\n useFlatButtons: false,\r\n useDefaultButtons: false\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => isMaterialBased(),\r\n options: {\r\n useFlatButtons: true\r\n }\r\n }])\r\n }\r\n _itemContainer() {\r\n return this._$toolbarItemsContainer.find([\".\".concat(TOOLBAR_BEFORE_CLASS), \".\".concat(TOOLBAR_CENTER_CLASS), \".\".concat(TOOLBAR_AFTER_CLASS)].join(\",\"))\r\n }\r\n _itemClass() {\r\n return TOOLBAR_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return TOOLBAR_ITEM_DATA_KEY\r\n }\r\n _dimensionChanged(dimension) {\r\n if (this._disposed) {\r\n return\r\n }\r\n this._arrangeItems();\r\n this._applyCompactMode()\r\n }\r\n _initMarkup() {\r\n this._renderToolbar();\r\n this._renderSections();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderItemsAsync();\r\n this._updateDimensionsInMaterial()\r\n }\r\n _postProcessRenderItems() {\r\n this._arrangeItems()\r\n }\r\n _renderToolbar() {\r\n this.$element().addClass(TOOLBAR_CLASS);\r\n this._$toolbarItemsContainer = $(\"<div>\").addClass(TOOLBAR_ITEMS_CONTAINER_CLASS).appendTo(this.$element());\r\n this.setAria(\"role\", \"toolbar\")\r\n }\r\n _renderSections() {\r\n var $container = this._$toolbarItemsContainer;\r\n each([\"before\", \"center\", \"after\"], (_, section) => {\r\n var sectionClass = \"dx-toolbar-\".concat(section);\r\n var $section = $container.find(\".\".concat(sectionClass));\r\n if (!$section.length) {\r\n this[\"_$\".concat(section, \"Section\")] = $(\"<div>\").addClass(sectionClass).attr(\"role\", \"presentation\").appendTo($container)\r\n }\r\n })\r\n }\r\n _arrangeItems(width) {\r\n var _a, _b;\r\n var elementWidth = null !== width && void 0 !== width ? width : getWidth(this.$element());\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n var beforeRect = getBoundingRect(null === (_a = this._$beforeSection) || void 0 === _a ? void 0 : _a.get(0));\r\n var afterRect = getBoundingRect(null === (_b = this._$afterSection) || void 0 === _b ? void 0 : _b.get(0));\r\n this._alignCenterSection(beforeRect, afterRect, elementWidth);\r\n var $label = this._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n var $section = $label.parent();\r\n if (!$label.length) {\r\n return\r\n }\r\n var labelOffset = beforeRect.width ? beforeRect.width : $label.position().left;\r\n var widthBeforeSection = $section.hasClass(TOOLBAR_BEFORE_CLASS) ? 0 : labelOffset;\r\n var widthAfterSection = $section.hasClass(TOOLBAR_AFTER_CLASS) ? 0 : afterRect.width;\r\n var elemsAtSectionWidth = 0;\r\n $section.children().not(\".\".concat(TOOLBAR_LABEL_CLASS)).each((index, element) => {\r\n elemsAtSectionWidth += getOuterWidth(element)\r\n });\r\n var freeSpace = elementWidth - elemsAtSectionWidth;\r\n var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);\r\n if ($section.hasClass(TOOLBAR_BEFORE_CLASS)) {\r\n this._alignSection(this._$beforeSection, sectionMaxWidth)\r\n } else {\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", sectionMaxWidth - labelPaddings)\r\n }\r\n }\r\n _alignCenterSection(beforeRect, afterRect, elementWidth) {\r\n var _a;\r\n this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var leftRect = isRTL ? afterRect : beforeRect;\r\n var rightRect = isRTL ? beforeRect : afterRect;\r\n var centerRect = getBoundingRect(null === (_a = this._$centerSection) || void 0 === _a ? void 0 : _a.get(0));\r\n if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {\r\n this._$centerSection.css({\r\n marginLeft: leftRect.width,\r\n marginRight: rightRect.width,\r\n float: leftRect.width > rightRect.width ? \"none\" : \"right\"\r\n })\r\n }\r\n }\r\n _alignSection($section, maxWidth) {\r\n var $labels = $section.find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var labels = $labels.toArray();\r\n maxWidth -= this._getCurrentLabelsPaddings(labels);\r\n var currentWidth = this._getCurrentLabelsWidth(labels);\r\n var difference = Math.abs(currentWidth - maxWidth);\r\n if (maxWidth < currentWidth) {\r\n labels = labels.reverse();\r\n this._alignSectionLabels(labels, difference, false)\r\n } else {\r\n this._alignSectionLabels(labels, difference, true)\r\n }\r\n }\r\n _alignSectionLabels(labels, difference, expanding) {\r\n var getRealLabelWidth = function(label) {\r\n return getBoundingRect(label).width\r\n };\r\n for (var i = 0; i < labels.length; i++) {\r\n var $label = $(labels[i]);\r\n var currentLabelWidth = Math.ceil(getRealLabelWidth(labels[i]));\r\n var labelMaxWidth = void 0;\r\n if (expanding) {\r\n $label.css(\"maxWidth\", \"inherit\")\r\n }\r\n var possibleLabelWidth = Math.ceil(expanding ? getRealLabelWidth(labels[i]) : currentLabelWidth);\r\n if (possibleLabelWidth < difference) {\r\n labelMaxWidth = expanding ? possibleLabelWidth : 0;\r\n difference -= possibleLabelWidth\r\n } else {\r\n labelMaxWidth = expanding ? currentLabelWidth + difference : currentLabelWidth - difference;\r\n $label.css(\"maxWidth\", labelMaxWidth);\r\n break\r\n }\r\n $label.css(\"maxWidth\", labelMaxWidth)\r\n }\r\n }\r\n _applyCompactMode() {\r\n var $element = $(this.element());\r\n $element.removeClass(TOOLBAR_COMPACT_CLASS);\r\n if (this.option(\"compactMode\") && this._getSummaryItemsSize(\"width\", this._itemElements(), true) > getWidth($element)) {\r\n $element.addClass(TOOLBAR_COMPACT_CLASS)\r\n }\r\n }\r\n _getCurrentLabelsWidth(labels) {\r\n var width = 0;\r\n labels.forEach(label => {\r\n width += getOuterWidth(label)\r\n });\r\n return width\r\n }\r\n _getCurrentLabelsPaddings(labels) {\r\n var padding = 0;\r\n labels.forEach(label => {\r\n padding += getOuterWidth(label) - getWidth(label)\r\n });\r\n return padding\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _a, _b;\r\n var location = null !== (_a = item.location) && void 0 !== _a ? _a : \"center\";\r\n var container = null !== itemContainer && void 0 !== itemContainer ? itemContainer : this[\"_$\".concat(location, \"Section\")];\r\n var itemHasText = !!(null !== (_b = item.text) && void 0 !== _b ? _b : item.html);\r\n var itemElement = super._renderItem(index, item, container, $after);\r\n itemElement.toggleClass(TOOLBAR_BUTTON_CLASS, !itemHasText).toggleClass(TOOLBAR_LABEL_CLASS, itemHasText).addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _renderGroupedItems() {\r\n each(this.option(\"items\"), (groupIndex, group) => {\r\n var _a;\r\n var groupItems = group.items;\r\n var $container = $(\"<div>\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = null !== (_a = group.location) && void 0 !== _a ? _a : \"center\";\r\n if (!groupItems || !groupItems.length) {\r\n return\r\n }\r\n each(groupItems, (itemIndex, item) => {\r\n this._renderItem(itemIndex, item, $container, null)\r\n });\r\n this._$toolbarItemsContainer.find(\".dx-toolbar-\".concat(location)).append($container)\r\n })\r\n }\r\n _renderItems(items) {\r\n var grouped = this.option(\"grouped\") && items.length && items[0].items;\r\n grouped ? this._renderGroupedItems() : super._renderItems(items)\r\n }\r\n _getToolbarItems() {\r\n var _a;\r\n return null !== (_a = this.option(\"items\")) && void 0 !== _a ? _a : []\r\n }\r\n _renderContentImpl() {\r\n var items = this._getToolbarItems();\r\n this.$element().toggleClass(TOOLBAR_MINI_CLASS, 0 === items.length);\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n this._applyCompactMode()\r\n }\r\n _renderEmptyMessage() {}\r\n _clean() {\r\n this._$toolbarItemsContainer.children().empty();\r\n this.$element().empty();\r\n delete this._$beforeSection;\r\n delete this._$centerSection;\r\n delete this._$afterSection\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._arrangeItems()\r\n }\r\n }\r\n _isVisible() {\r\n return getWidth(this.$element()) > 0 && getHeight(this.$element()) > 0\r\n }\r\n _getIndexByItem(item) {\r\n return this._getToolbarItems().indexOf(item)\r\n }\r\n _itemOptionChanged(item, property, value, prevValue) {\r\n super._itemOptionChanged(item, property, value, prevValue);\r\n this._arrangeItems()\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"width\":\r\n super._optionChanged(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"renderAs\":\r\n case \"useFlatButtons\":\r\n case \"useDefaultButtons\":\r\n this._invalidate();\r\n break;\r\n case \"compactMode\":\r\n this._applyCompactMode();\r\n break;\r\n case \"grouped\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n super._dispose();\r\n clearTimeout(this._waitParentAnimationTimeout)\r\n }\r\n _updateDimensionsInMaterial() {\r\n if (isMaterial()) {\r\n Promise.all([(() => new Promise(resolve => {\r\n var check = () => {\r\n var readyToResolve = true;\r\n this.$element().parents().each((_, parent) => {\r\n if (fx.isAnimating($(parent))) {\r\n readyToResolve = false;\r\n return false\r\n }\r\n });\r\n if (readyToResolve) {\r\n resolve()\r\n }\r\n return readyToResolve\r\n };\r\n var runCheck = () => {\r\n clearTimeout(this._waitParentAnimationTimeout);\r\n this._waitParentAnimationTimeout = setTimeout(() => check() || runCheck(), ANIMATION_TIMEOUT)\r\n };\r\n runCheck()\r\n }))(), (() => {\r\n var $labels = this.$element().find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var promises = [];\r\n $labels.each((_, label) => {\r\n var text = $(label).text();\r\n var fontWeight = $(label).css(\"fontWeight\");\r\n promises.push(waitWebFont(text, fontWeight))\r\n });\r\n return Promise.all(promises)\r\n })()]).then(() => {\r\n this._dimensionChanged()\r\n })\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxToolbarBase\", ToolbarBase);\r\nexport default ToolbarBase;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/m_toolbar.utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar TOOLBAR_ITEMS = [\"dxAutocomplete\", \"dxButton\", \"dxCheckBox\", \"dxDateBox\", \"dxMenu\", \"dxSelectBox\", \"dxTabs\", \"dxTextBox\", \"dxButtonGroup\", \"dxDropDownButton\"];\r\nvar getItemInstance = function($element) {\r\n var itemData = $element.data && $element.data();\r\n var dxComponents = itemData && itemData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && itemData[widgetName]\r\n};\r\nexport function toggleItemFocusableElementTabIndex(context, item) {\r\n var _a, _b, _c;\r\n if (!context) {\r\n return\r\n }\r\n var $item = context._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n var itemData = context._getItemData($item);\r\n var isItemNotFocusable = !!((null === (_a = itemData.options) || void 0 === _a ? void 0 : _a.disabled) || itemData.disabled || context.option(\"disabled\"));\r\n var {\r\n widget: widget\r\n } = itemData;\r\n if (widget && TOOLBAR_ITEMS.includes(widget)) {\r\n var $widget = $item.find(widget.toLowerCase().replace(\"dx\", \".dx-\"));\r\n if ($widget.length) {\r\n var itemInstance = getItemInstance($widget);\r\n if (!itemInstance) {\r\n return\r\n }\r\n var $focusTarget = null === (_b = itemInstance._focusTarget) || void 0 === _b ? void 0 : _b.call(itemInstance);\r\n if (\"dxDropDownButton\" === widget) {\r\n $focusTarget = $focusTarget && $focusTarget.find(\".\".concat(BUTTON_GROUP_CLASS))\r\n } else {\r\n $focusTarget = null !== $focusTarget && void 0 !== $focusTarget ? $focusTarget : $(itemInstance.element())\r\n }\r\n var tabIndex = null === (_c = itemData.options) || void 0 === _c ? void 0 : _c.tabIndex;\r\n if (isItemNotFocusable) {\r\n $focusTarget.attr(\"tabIndex\", -1)\r\n } else {\r\n $focusTarget.attr(\"tabIndex\", null !== tabIndex && void 0 !== tabIndex ? tabIndex : 0)\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/strategy/m_toolbar.multiline.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nexport class MultiLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {}\r\n _updateMenuVisibility() {}\r\n _renderMenuItems() {}\r\n _renderItem() {}\r\n _getMenuItems() {}\r\n _getToolbarItems() {\r\n var _a;\r\n return null !== (_a = this._toolbar.option(\"items\")) && void 0 !== _a ? _a : []\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsSize(\"width\", this._toolbar._itemElements(), true)\r\n }\r\n _arrangeItems() {\r\n var $label = this._toolbar._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n if (!$label.length) {\r\n return\r\n }\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", elementWidth - labelPaddings)\r\n }\r\n _hideOverflowItems() {}\r\n _dimensionChanged() {}\r\n _itemOptionChanged() {}\r\n _optionChanged() {}\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_resizable.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n pairToObject\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n getHeight,\r\n getInnerHeight,\r\n getInnerWidth,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n end as dragEventEnd,\r\n move as dragEventMove,\r\n start as dragEventStart\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nvar RESIZABLE = \"dxResizable\";\r\nvar RESIZABLE_CLASS = \"dx-resizable\";\r\nvar RESIZABLE_RESIZING_CLASS = \"dx-resizable-resizing\";\r\nvar RESIZABLE_HANDLE_CLASS = \"dx-resizable-handle\";\r\nvar RESIZABLE_HANDLE_TOP_CLASS = \"dx-resizable-handle-top\";\r\nvar RESIZABLE_HANDLE_BOTTOM_CLASS = \"dx-resizable-handle-bottom\";\r\nvar RESIZABLE_HANDLE_LEFT_CLASS = \"dx-resizable-handle-left\";\r\nvar RESIZABLE_HANDLE_RIGHT_CLASS = \"dx-resizable-handle-right\";\r\nvar RESIZABLE_HANDLE_CORNER_CLASS = \"dx-resizable-handle-corner\";\r\nvar DRAGSTART_START_EVENT_NAME = addNamespace(dragEventStart, RESIZABLE);\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventMove, RESIZABLE);\r\nvar DRAGSTART_END_EVENT_NAME = addNamespace(dragEventEnd, RESIZABLE);\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar Resizable = DOMComponent.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n handles: \"all\",\r\n step: \"1\",\r\n stepPrecision: \"simple\",\r\n area: void 0,\r\n minWidth: 30,\r\n maxWidth: 1 / 0,\r\n minHeight: 30,\r\n maxHeight: 1 / 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n roundStepValue: true,\r\n keepAspectRatio: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions() {\r\n this._resizeStartAction = this._createActionByOption(\"onResizeStart\");\r\n this._resizeEndAction = this._createActionByOption(\"onResizeEnd\");\r\n this._resizeAction = this._createActionByOption(\"onResize\")\r\n },\r\n _renderHandles() {\r\n this._handles = [];\r\n var handles = this.option(\"handles\");\r\n if (\"none\" === handles || !handles) {\r\n return\r\n }\r\n var directions = \"all\" === handles ? [\"top\", \"bottom\", \"left\", \"right\"] : handles.split(\" \");\r\n var activeHandlesMap = {};\r\n each(directions, (index, handleName) => {\r\n activeHandlesMap[handleName] = true;\r\n this._renderHandle(handleName)\r\n });\r\n activeHandlesMap.bottom && activeHandlesMap.right && this._renderHandle(\"corner-bottom-right\");\r\n activeHandlesMap.bottom && activeHandlesMap.left && this._renderHandle(\"corner-bottom-left\");\r\n activeHandlesMap.top && activeHandlesMap.right && this._renderHandle(\"corner-top-right\");\r\n activeHandlesMap.top && activeHandlesMap.left && this._renderHandle(\"corner-top-left\");\r\n this._attachEventHandlers()\r\n },\r\n _renderHandle(handleName) {\r\n var $handle = $(\"<div>\").addClass(RESIZABLE_HANDLE_CLASS).addClass(\"\".concat(RESIZABLE_HANDLE_CLASS, \"-\").concat(handleName)).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var handlers = {};\r\n handlers[DRAGSTART_START_EVENT_NAME] = this._dragStartHandler.bind(this);\r\n handlers[DRAGSTART_EVENT_NAME] = this._dragHandler.bind(this);\r\n handlers[DRAGSTART_END_EVENT_NAME] = this._dragEndHandler.bind(this);\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.on(handleElement, handlers, {\r\n direction: \"both\",\r\n immediate: true\r\n })\r\n })\r\n },\r\n _detachEventHandlers() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _getElementSize() {\r\n var $element = this.$element();\r\n return \"border-box\" === $element.css(\"boxSizing\") ? {\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element)\r\n } : {\r\n width: getWidth($element),\r\n height: getHeight($element)\r\n }\r\n },\r\n _dragStartHandler(e) {\r\n var $element = this.$element();\r\n if ($element.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n this._toggleResizingClass(true);\r\n this._movingSides = this._getMovingSides(e);\r\n this._elementLocation = locate($element);\r\n this._elementSize = this._getElementSize();\r\n this._renderDragOffsets(e);\r\n this._resizeStartAction({\r\n event: e,\r\n width: this._elementSize.width,\r\n height: this._elementSize.height,\r\n handles: this._movingSides\r\n });\r\n e.targetElements = null\r\n },\r\n _toggleResizingClass(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\".concat(RESIZABLE_HANDLE_CLASS));\r\n var handleWidth = getOuterWidth($handle);\r\n var handleHeight = getOuterHeight($handle);\r\n var handleOffset = $handle.offset();\r\n var areaOffset = area.offset;\r\n var scrollOffset = this._getAreaScrollOffset();\r\n e.maxLeftOffset = this._leftMaxOffset = handleOffset.left - areaOffset.left - scrollOffset.scrollX;\r\n e.maxRightOffset = this._rightMaxOffset = areaOffset.left + area.width - handleOffset.left - handleWidth + scrollOffset.scrollX;\r\n e.maxTopOffset = this._topMaxOffset = handleOffset.top - areaOffset.top - scrollOffset.scrollY;\r\n e.maxBottomOffset = this._bottomMaxOffset = areaOffset.top + area.height - handleOffset.top - handleHeight + scrollOffset.scrollY\r\n },\r\n _getBorderWidth($element, direction) {\r\n if (isWindow($element.get(0))) {\r\n return 0\r\n }\r\n var borderWidth = $element.css(SIDE_BORDER_WIDTH_STYLES[direction]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _proportionate(direction, value) {\r\n var size = this._elementSize;\r\n var factor = \"x\" === direction ? size.width / size.height : size.height / size.width;\r\n return value * factor\r\n },\r\n _getProportionalDelta(_ref) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var proportionalY = this._proportionate(\"y\", x);\r\n if (proportionalY >= y) {\r\n return {\r\n x: x,\r\n y: proportionalY\r\n }\r\n }\r\n var proportionalX = this._proportionate(\"x\", y);\r\n if (proportionalX >= x) {\r\n return {\r\n x: proportionalX,\r\n y: y\r\n }\r\n }\r\n return {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _getDirectionName(axis) {\r\n var sides = this._movingSides;\r\n if (\"x\" === axis) {\r\n return sides.left ? \"left\" : \"right\"\r\n }\r\n return sides.top ? \"top\" : \"bottom\"\r\n },\r\n _fitIntoArea(axis, value) {\r\n var _a;\r\n var directionName = this._getDirectionName(axis);\r\n return Math.min(value, null !== (_a = this[\"_\".concat(directionName, \"MaxOffset\")]) && void 0 !== _a ? _a : 1 / 0)\r\n },\r\n _fitDeltaProportionally(delta) {\r\n var fittedDelta = _extends({}, delta);\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n var getWidth = () => size.width + fittedDelta.x;\r\n var getHeight = () => size.height + fittedDelta.y;\r\n var isInArea = axis => fittedDelta[axis] === this._fitIntoArea(axis, fittedDelta[axis]);\r\n var isFittedX = () => inRange(getWidth(), minWidth, maxWidth) && isInArea(\"x\");\r\n var isFittedY = () => inRange(getHeight(), minHeight, maxHeight) && isInArea(\"y\");\r\n if (!isFittedX()) {\r\n var x = this._fitIntoArea(\"x\", fitIntoRange(getWidth(), minWidth, maxWidth) - size.width);\r\n fittedDelta = {\r\n x: x,\r\n y: this._proportionate(\"y\", x)\r\n }\r\n }\r\n if (!isFittedY()) {\r\n var y = this._fitIntoArea(\"y\", fitIntoRange(getHeight(), minHeight, maxHeight) - size.height);\r\n fittedDelta = {\r\n x: this._proportionate(\"x\", y),\r\n y: y\r\n }\r\n }\r\n return isFittedX() && isFittedY() ? fittedDelta : {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _fitDelta(_ref2) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref2;\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n return {\r\n x: fitIntoRange(size.width + x, minWidth, maxWidth) - size.width,\r\n y: fitIntoRange(size.height + y, minHeight, maxHeight) - size.height\r\n }\r\n },\r\n _getDeltaByOffset(offset) {\r\n var sides = this._movingSides;\r\n var shouldKeepAspectRatio = this._isCornerHandler(sides) && this.option(\"keepAspectRatio\");\r\n var delta = {\r\n x: offset.x * (sides.left ? -1 : 1),\r\n y: offset.y * (sides.top ? -1 : 1)\r\n };\r\n if (shouldKeepAspectRatio) {\r\n var proportionalDelta = this._getProportionalDelta(delta);\r\n var fittedProportionalDelta = this._fitDeltaProportionally(proportionalDelta);\r\n delta = fittedProportionalDelta\r\n } else {\r\n var fittedDelta = this._fitDelta(delta);\r\n var roundedFittedDelta = this._roundByStep(fittedDelta);\r\n delta = roundedFittedDelta\r\n }\r\n return delta\r\n },\r\n _updatePosition(delta, _ref3) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref3;\r\n var location = this._elementLocation;\r\n var sides = this._movingSides;\r\n var $element = this.$element();\r\n var elementRect = this._getElementSize();\r\n var offsetTop = delta.y * (sides.top ? -1 : 1) - ((elementRect.height || height) - height);\r\n var offsetLeft = delta.x * (sides.left ? -1 : 1) - ((elementRect.width || width) - width);\r\n move($element, {\r\n top: location.top + (sides.top ? offsetTop : 0),\r\n left: location.left + (sides.left ? offsetLeft : 0)\r\n })\r\n },\r\n _dragHandler(e) {\r\n var offset = this._getOffset(e);\r\n var delta = this._getDeltaByOffset(offset);\r\n var dimensions = this._updateDimensions(delta);\r\n this._updatePosition(delta, dimensions);\r\n this._triggerResizeAction(e, dimensions)\r\n },\r\n _updateDimensions(delta) {\r\n var isAbsoluteSize = size => \"px\" === size.substring(size.length - 2);\r\n var isStepPrecisionStrict = \"strict\" === this.option(\"stepPrecision\");\r\n var size = this._elementSize;\r\n var width = size.width + delta.x;\r\n var height = size.height + delta.y;\r\n var elementStyle = this.$element().get(0).style;\r\n var shouldRenderWidth = delta.x || isStepPrecisionStrict || isAbsoluteSize(elementStyle.width);\r\n var shouldRenderHeight = delta.y || isStepPrecisionStrict || isAbsoluteSize(elementStyle.height);\r\n if (shouldRenderWidth) {\r\n this.option({\r\n width: width\r\n })\r\n }\r\n if (shouldRenderHeight) {\r\n this.option({\r\n height: height\r\n })\r\n }\r\n return {\r\n width: shouldRenderWidth ? width : size.width,\r\n height: shouldRenderHeight ? height : size.height\r\n }\r\n },\r\n _triggerResizeAction(e, _ref4) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref4;\r\n this._resizeAction({\r\n event: e,\r\n width: this.option(\"width\") || width,\r\n height: this.option(\"height\") || height,\r\n handles: this._movingSides\r\n });\r\n triggerResizeEvent(this.$element())\r\n },\r\n _isCornerHandler: sides => 0 === Object.values(sides).reduce((xor, value) => xor ^ value, 0),\r\n _getOffset(e) {\r\n var {\r\n offset: offset\r\n } = e;\r\n var sides = this._movingSides;\r\n if (!sides.left && !sides.right) {\r\n offset.x = 0\r\n }\r\n if (!sides.top && !sides.bottom) {\r\n offset.y = 0\r\n }\r\n return offset\r\n },\r\n _roundByStep(delta) {\r\n return \"strict\" === this.option(\"stepPrecision\") ? this._roundStrict(delta) : this._roundNotStrict(delta)\r\n },\r\n _getSteps() {\r\n return pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"))\r\n },\r\n _roundNotStrict(delta) {\r\n var steps = this._getSteps();\r\n return {\r\n x: delta.x - delta.x % steps.h,\r\n y: delta.y - delta.y % steps.v\r\n }\r\n },\r\n _roundStrict(delta) {\r\n var sides = this._movingSides;\r\n var offset = {\r\n x: delta.x * (sides.left ? -1 : 1),\r\n y: delta.y * (sides.top ? -1 : 1)\r\n };\r\n var steps = this._getSteps();\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var xPos = sides.left ? location.left : location.left + size.width;\r\n var yPos = sides.top ? location.top : location.top + size.height;\r\n var newXShift = (xPos + offset.x) % steps.h;\r\n var newYShift = (yPos + offset.y) % steps.v;\r\n var sign = Math.sign || (x => {\r\n x = +x;\r\n if (0 === x || isNaN(x)) {\r\n return x\r\n }\r\n return x > 0 ? 1 : -1\r\n });\r\n var separatorOffset = (steps, offset) => (1 + .2 * sign(offset)) % 1 * steps;\r\n var isSmallOffset = (offset, steps) => Math.abs(offset) < .2 * steps;\r\n var newOffsetX = offset.x - newXShift;\r\n var newOffsetY = offset.y - newYShift;\r\n if (newXShift > separatorOffset(steps.h, offset.x)) {\r\n newOffsetX += steps.h\r\n }\r\n if (newYShift > separatorOffset(steps.v, offset.y)) {\r\n newOffsetY += steps.v\r\n }\r\n var roundedOffset_x = (sides.left || sides.right) && !isSmallOffset(offset.x, steps.h) ? newOffsetX : 0,\r\n roundedOffset_y = (sides.top || sides.bottom) && !isSmallOffset(offset.y, steps.v) ? newOffsetY : 0;\r\n return {\r\n x: roundedOffset_x * (sides.left ? -1 : 1),\r\n y: roundedOffset_y * (sides.top ? -1 : 1)\r\n }\r\n },\r\n _getMovingSides(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(\"\".concat(RESIZABLE_HANDLE_CORNER_CLASS, \"-top-left\"));\r\n var hasCornerTopRightClass = $target.hasClass(\"\".concat(RESIZABLE_HANDLE_CORNER_CLASS, \"-top-right\"));\r\n var hasCornerBottomLeftClass = $target.hasClass(\"\".concat(RESIZABLE_HANDLE_CORNER_CLASS, \"-bottom-left\"));\r\n var hasCornerBottomRightClass = $target.hasClass(\"\".concat(RESIZABLE_HANDLE_CORNER_CLASS, \"-bottom-right\"));\r\n return {\r\n top: $target.hasClass(RESIZABLE_HANDLE_TOP_CLASS) || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: $target.hasClass(RESIZABLE_HANDLE_LEFT_CLASS) || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: $target.hasClass(RESIZABLE_HANDLE_BOTTOM_CLASS) || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: $target.hasClass(RESIZABLE_HANDLE_RIGHT_CLASS) || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n },\r\n _getArea() {\r\n var area = this.option(\"area\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n if (isPlainObject(area)) {\r\n return this._getAreaFromObject(area)\r\n }\r\n return this._getAreaFromElement(area)\r\n },\r\n _getAreaScrollOffset() {\r\n var area = this.option(\"area\");\r\n var isElement = !isFunction(area) && !isPlainObject(area);\r\n var scrollOffset = {\r\n scrollY: 0,\r\n scrollX: 0\r\n };\r\n if (isElement) {\r\n var areaElement = $(area)[0];\r\n if (isWindow(areaElement)) {\r\n scrollOffset.scrollX = areaElement.pageXOffset;\r\n scrollOffset.scrollY = areaElement.pageYOffset\r\n }\r\n }\r\n return scrollOffset\r\n },\r\n _getAreaFromObject(area) {\r\n var result = {\r\n width: area.right - area.left,\r\n height: area.bottom - area.top,\r\n offset: {\r\n left: area.left,\r\n top: area.top\r\n }\r\n };\r\n this._correctAreaGeometry(result);\r\n return result\r\n },\r\n _getAreaFromElement(area) {\r\n var $area = $(area);\r\n var result;\r\n if ($area.length) {\r\n result = {\r\n width: getInnerWidth($area),\r\n height: getInnerHeight($area),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow($area[0]) ? {} : $area.offset())\r\n };\r\n this._correctAreaGeometry(result, $area)\r\n }\r\n return result\r\n },\r\n _correctAreaGeometry(result, $area) {\r\n var areaBorderLeft = $area ? this._getBorderWidth($area, \"left\") : 0;\r\n var areaBorderTop = $area ? this._getBorderWidth($area, \"top\") : 0;\r\n result.offset.left += areaBorderLeft + this._getBorderWidth(this.$element(), \"left\");\r\n result.offset.top += areaBorderTop + this._getBorderWidth(this.$element(), \"top\");\r\n result.width -= getOuterWidth(this.$element()) - getInnerWidth(this.$element());\r\n result.height -= getOuterHeight(this.$element()) - getInnerHeight(this.$element())\r\n },\r\n _dragEndHandler(e) {\r\n var $element = this.$element();\r\n this._resizeEndAction({\r\n event: e,\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element),\r\n handles: this._movingSides\r\n });\r\n this._toggleResizingClass(false)\r\n },\r\n _renderWidth(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this._toggleEventHandlers(!args.value);\r\n this.callBase(args);\r\n break;\r\n case \"handles\":\r\n this._invalidate();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n hasWindow() && this._renderWidth(getOuterWidth(this.$element()));\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n hasWindow() && this._renderHeight(getOuterHeight(this.$element()));\r\n break;\r\n case \"onResize\":\r\n case \"onResizeStart\":\r\n case \"onResizeEnd\":\r\n this._renderActions();\r\n break;\r\n case \"area\":\r\n case \"stepPrecision\":\r\n case \"step\":\r\n case \"roundStepValue\":\r\n case \"keepAspectRatio\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean() {\r\n this.$element().find(\".\".concat(RESIZABLE_HANDLE_CLASS)).remove()\r\n },\r\n _useTemplates: () => false\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/popup/m_popup_drag.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../../animation/translator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n getOffset,\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n end as dragEndEvent,\r\n move as dragMoveEvent,\r\n start as dragStartEvent\r\n} from \"../../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nvar KEYBOARD_DRAG_STEP = 5;\r\nclass PopupDrag {\r\n constructor(config) {\r\n this.init(config)\r\n }\r\n init(_ref) {\r\n var {\r\n dragEnabled: dragEnabled,\r\n handle: handle,\r\n draggableElement: draggableElement,\r\n positionController: positionController\r\n } = _ref;\r\n this._positionController = positionController;\r\n this._draggableElement = draggableElement;\r\n this._handle = handle;\r\n this._dragEnabled = dragEnabled;\r\n this.unsubscribe();\r\n if (!dragEnabled) {\r\n return\r\n }\r\n this.subscribe()\r\n }\r\n moveDown(e) {\r\n this._moveTo(KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveUp(e) {\r\n this._moveTo(-KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveLeft(e) {\r\n this._moveTo(0, -KEYBOARD_DRAG_STEP, e)\r\n }\r\n moveRight(e) {\r\n this._moveTo(0, KEYBOARD_DRAG_STEP, e)\r\n }\r\n subscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.on(this._handle, eventNames.startEventName, e => {\r\n this._dragStartHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.updateEventName, e => {\r\n this._dragUpdateHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.endEventName, e => {\r\n this._dragEndHandler(e)\r\n })\r\n }\r\n unsubscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.off(this._handle, eventNames.startEventName);\r\n eventsEngine.off(this._handle, eventNames.updateEventName);\r\n eventsEngine.off(this._handle, eventNames.endEventName)\r\n }\r\n _getEventNames() {\r\n var startEventName = addNamespace(dragStartEvent, \"overlayDrag\");\r\n var updateEventName = addNamespace(dragMoveEvent, \"overlayDrag\");\r\n var endEventName = addNamespace(dragEndEvent, \"overlayDrag\");\r\n return {\r\n startEventName: startEventName,\r\n updateEventName: updateEventName,\r\n endEventName: endEventName\r\n }\r\n }\r\n _dragStartHandler(e) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n this._prevOffset = {\r\n x: 0,\r\n y: 0\r\n };\r\n e.targetElements = [];\r\n e.maxTopOffset = allowedOffsets.top;\r\n e.maxBottomOffset = allowedOffsets.bottom;\r\n e.maxLeftOffset = allowedOffsets.left;\r\n e.maxRightOffset = allowedOffsets.right\r\n }\r\n _dragUpdateHandler(e) {\r\n var targetOffset = {\r\n top: e.offset.y - this._prevOffset.y,\r\n left: e.offset.x - this._prevOffset.x\r\n };\r\n this._moveByOffset(targetOffset);\r\n this._prevOffset = e.offset\r\n }\r\n _dragEndHandler(event) {\r\n this._positionController.dragHandled();\r\n this._positionController.detectVisualPositionChange(event)\r\n }\r\n _moveTo(top, left, e) {\r\n if (!this._dragEnabled) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var offset = this._fitOffsetIntoAllowedRange(top, left);\r\n this._moveByOffset(offset);\r\n this._dragEndHandler(e)\r\n }\r\n _fitOffsetIntoAllowedRange(top, left) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n return {\r\n top: fitIntoRange(top, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(left, -allowedOffsets.left, allowedOffsets.right)\r\n }\r\n }\r\n _getContainerDimensions() {\r\n var document = domAdapter.getDocument();\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n var containerWidth = getOuterWidth(container);\r\n var containerHeight = getOuterHeight(container);\r\n if (isWindow(container)) {\r\n containerHeight = Math.max(document.body.clientHeight, containerHeight);\r\n containerWidth = Math.max(document.body.clientWidth, containerWidth)\r\n }\r\n return {\r\n width: containerWidth,\r\n height: containerHeight\r\n }\r\n }\r\n _getContainerPosition() {\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n return isWindow(container) ? {\r\n top: 0,\r\n left: 0\r\n } : getOffset(container)\r\n }\r\n _getElementPosition() {\r\n return getOffset(this._draggableElement)\r\n }\r\n _getInnerDelta() {\r\n var containerDimensions = this._getContainerDimensions();\r\n var elementDimensions = this._getElementDimensions();\r\n return {\r\n x: containerDimensions.width - elementDimensions.width,\r\n y: containerDimensions.height - elementDimensions.height\r\n }\r\n }\r\n _getOuterDelta() {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._getElementDimensions();\r\n var {\r\n outsideDragFactor: outsideDragFactor\r\n } = this._positionController;\r\n return {\r\n x: width * outsideDragFactor,\r\n y: height * outsideDragFactor\r\n }\r\n }\r\n _getFullDelta() {\r\n var fullDelta = this._getInnerDelta();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n x: fullDelta.x + outerDelta.x,\r\n y: fullDelta.y + outerDelta.y\r\n }\r\n }\r\n _getElementDimensions() {\r\n return {\r\n width: this._draggableElement.offsetWidth,\r\n height: this._draggableElement.offsetHeight\r\n }\r\n }\r\n _getAllowedOffsets() {\r\n var fullDelta = this._getFullDelta();\r\n var isDragAllowed = fullDelta.y >= 0 && fullDelta.x >= 0;\r\n if (!isDragAllowed) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n }\r\n var elementPosition = this._getElementPosition();\r\n var containerPosition = this._getContainerPosition();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n top: elementPosition.top - containerPosition.top + outerDelta.y,\r\n bottom: -elementPosition.top + containerPosition.top + fullDelta.y,\r\n left: elementPosition.left - containerPosition.left + outerDelta.x,\r\n right: -elementPosition.left + containerPosition.left + fullDelta.x\r\n }\r\n }\r\n _moveByOffset(offset) {\r\n var currentPosition = locate(this._draggableElement);\r\n var newPosition = {\r\n left: currentPosition.left + offset.left,\r\n top: currentPosition.top + offset.top\r\n };\r\n move(this._draggableElement, newPosition)\r\n }\r\n}\r\nexport default PopupDrag;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/popup/m_popup_overflow_manager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nvar overflowManagerMock = {\r\n setOverflow: noop,\r\n restoreOverflow: noop\r\n};\r\nexport var createBodyOverflowManager = () => {\r\n if (!hasWindow()) {\r\n return overflowManagerMock\r\n }\r\n var window = getWindow();\r\n var {\r\n documentElement: documentElement\r\n } = domAdapter.getDocument();\r\n var body = domAdapter.getBody();\r\n var isIosDevice = \"ios\" === devices.real().platform;\r\n var prevSettings = {\r\n overflow: null,\r\n overflowX: null,\r\n overflowY: null,\r\n paddingRight: null,\r\n position: null,\r\n top: null,\r\n left: null\r\n };\r\n return {\r\n setOverflow: isIosDevice ? () => {\r\n if (isDefined(prevSettings.position) || \"fixed\" === body.style.position) {\r\n return\r\n }\r\n var {\r\n scrollY: scrollY,\r\n scrollX: scrollX\r\n } = window;\r\n prevSettings.position = body.style.position;\r\n prevSettings.top = body.style.top;\r\n prevSettings.left = body.style.left;\r\n body.style.setProperty(\"position\", \"fixed\");\r\n body.style.setProperty(\"top\", \"\".concat(-scrollY, \"px\"));\r\n body.style.setProperty(\"left\", \"\".concat(-scrollX, \"px\"))\r\n } : () => {\r\n (() => {\r\n var scrollBarWidth = window.innerWidth - documentElement.clientWidth;\r\n if (prevSettings.paddingRight || scrollBarWidth <= 0) {\r\n return\r\n }\r\n var paddingRight = window.getComputedStyle(body).getPropertyValue(\"padding-right\");\r\n var computedBodyPaddingRight = parseInt(paddingRight, 10);\r\n prevSettings.paddingRight = computedBodyPaddingRight;\r\n body.style.setProperty(\"padding-right\", \"\".concat(computedBodyPaddingRight + scrollBarWidth, \"px\"))\r\n })();\r\n if (prevSettings.overflow || \"hidden\" === body.style.overflow) {\r\n return\r\n }\r\n prevSettings.overflow = body.style.overflow;\r\n prevSettings.overflowX = body.style.overflowX;\r\n prevSettings.overflowY = body.style.overflowY;\r\n body.style.setProperty(\"overflow\", \"hidden\")\r\n },\r\n restoreOverflow: isIosDevice ? () => {\r\n if (!isDefined(prevSettings.position)) {\r\n return\r\n }\r\n var scrollY = -parseInt(body.style.top, 10);\r\n var scrollX = -parseInt(body.style.left, 10);\r\n [\"position\", \"top\", \"left\"].forEach(property => {\r\n if (prevSettings[property]) {\r\n body.style.setProperty(property, prevSettings[property])\r\n } else {\r\n body.style.removeProperty(property)\r\n }\r\n });\r\n window.scrollTo(scrollX, scrollY);\r\n prevSettings.position = null\r\n } : () => {\r\n (() => {\r\n if (!isDefined(prevSettings.paddingRight)) {\r\n return\r\n }\r\n if (prevSettings.paddingRight) {\r\n body.style.setProperty(\"padding-right\", \"\".concat(prevSettings.paddingRight, \"px\"))\r\n } else {\r\n body.style.removeProperty(\"padding-right\")\r\n }\r\n prevSettings.paddingRight = null\r\n })();\r\n [\"overflow\", \"overflowX\", \"overflowY\"].forEach(property => {\r\n if (!isDefined(prevSettings[property])) {\r\n return\r\n }\r\n var propertyInKebabCase = property.replace(/(X)|(Y)/, symbol => \"-\".concat(symbol.toLowerCase()));\r\n if (prevSettings[property]) {\r\n body.style.setProperty(propertyInKebabCase, prevSettings[property])\r\n } else {\r\n body.style.removeProperty(propertyInKebabCase)\r\n }\r\n prevSettings[property] = null\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/popup/m_popup_position_controller.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n originalViewPort\r\n} from \"../../../core/utils/view_port\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../../ui/overlay/m_overlay_position_controller\";\r\nvar window = getWindow();\r\nclass PopupPositionController extends OverlayPositionController {\r\n constructor(_a) {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = _a, args = __rest(_a, [\"fullScreen\", \"forceApplyBindings\", \"dragOutsideBoundary\", \"dragAndResizeArea\", \"outsideDragFactor\"]);\r\n super(args);\r\n this._props = _extends(_extends({}, this._props), {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n });\r\n this._$dragResizeContainer = void 0;\r\n this._updateDragResizeContainer()\r\n }\r\n set fullScreen(fullScreen) {\r\n this._props.fullScreen = fullScreen;\r\n if (fullScreen) {\r\n this._fullScreenEnabled()\r\n } else {\r\n this._fullScreenDisabled()\r\n }\r\n }\r\n get $dragResizeContainer() {\r\n return this._$dragResizeContainer\r\n }\r\n get outsideDragFactor() {\r\n if (this._props.dragOutsideBoundary) {\r\n return 1\r\n }\r\n return this._props.outsideDragFactor\r\n }\r\n set dragAndResizeArea(dragAndResizeArea) {\r\n this._props.dragAndResizeArea = dragAndResizeArea;\r\n this._updateDragResizeContainer()\r\n }\r\n set dragOutsideBoundary(dragOutsideBoundary) {\r\n this._props.dragOutsideBoundary = dragOutsideBoundary;\r\n this._updateDragResizeContainer()\r\n }\r\n set outsideDragFactor(outsideDragFactor) {\r\n this._props.outsideDragFactor = outsideDragFactor\r\n }\r\n updateContainer(containerProp) {\r\n super.updateContainer(containerProp);\r\n this._updateDragResizeContainer()\r\n }\r\n dragHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n resizeHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n positionContent() {\r\n var _a, _b;\r\n if (this._props.fullScreen) {\r\n move(this._$content, {\r\n top: 0,\r\n left: 0\r\n });\r\n this.detectVisualPositionChange()\r\n } else {\r\n null === (_b = (_a = this._props).forceApplyBindings) || void 0 === _b ? void 0 : _b.call(_a);\r\n super.positionContent()\r\n }\r\n }\r\n _updateDragResizeContainer() {\r\n this._$dragResizeContainer = this._getDragResizeContainer()\r\n }\r\n _getDragResizeContainer() {\r\n if (this._props.dragOutsideBoundary) {\r\n return $(window)\r\n }\r\n if (this._props.dragAndResizeArea) {\r\n return $(this._props.dragAndResizeArea)\r\n }\r\n var isContainerDefined = originalViewPort().get(0) || this._props.container;\r\n return isContainerDefined ? this._$markupContainer : $(window)\r\n }\r\n _getVisualContainer() {\r\n if (this._props.fullScreen) {\r\n return $(window)\r\n }\r\n return super._getVisualContainer()\r\n }\r\n _fullScreenEnabled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n _fullScreenDisabled() {\r\n this.restorePositionOnNextRender(true)\r\n }\r\n}\r\nexport {\r\n PopupPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/popup/m_popup.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../../../ui/toolbar/ui.toolbar.base\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport resizeObserverSingleton from \"../../../core/resize_observer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../../core/templates/empty_template\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n camelize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getHeight,\r\n getOuterWidth,\r\n getVerticalOffsets,\r\n getVisibleHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../../core/utils/version\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../../events/visibility_change\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Button from \"../../../ui/button\";\r\nimport Overlay from \"../../../ui/overlay/ui.overlay\";\r\nimport Resizable from \"../../../ui/resizable\";\r\nimport {\r\n isFluent,\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport * as zIndexPool from \"../../ui/overlay/m_z_index\";\r\nimport PopupDrag from \"./m_popup_drag\";\r\nimport {\r\n createBodyOverflowManager\r\n} from \"./m_popup_overflow_manager\";\r\nimport {\r\n PopupPositionController\r\n} from \"./m_popup_position_controller\";\r\nvar window = getWindow();\r\nvar POPUP_CLASS = \"dx-popup\";\r\nvar POPUP_WRAPPER_CLASS = \"dx-popup-wrapper\";\r\nvar POPUP_FULL_SCREEN_CLASS = \"dx-popup-fullscreen\";\r\nvar POPUP_FULL_SCREEN_WIDTH_CLASS = \"dx-popup-fullscreen-width\";\r\nvar POPUP_NORMAL_CLASS = \"dx-popup-normal\";\r\nvar POPUP_CONTENT_CLASS = \"dx-popup-content\";\r\nvar POPUP_CONTENT_SCROLLABLE_CLASS = \"dx-popup-content-scrollable\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar POPUP_DRAGGABLE_CLASS = \"dx-popup-draggable\";\r\nvar POPUP_TITLE_CLASS = \"dx-popup-title\";\r\nvar POPUP_TITLE_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar POPUP_BOTTOM_CLASS = \"dx-popup-bottom\";\r\nvar POPUP_HAS_CLOSE_BUTTON_CLASS = \"dx-has-close-button\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar POPUP_CONTENT_FLEX_HEIGHT_CLASS = \"dx-popup-flex-height\";\r\nvar POPUP_CONTENT_INHERIT_HEIGHT_CLASS = \"dx-popup-inherit-height\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar ALLOWED_TOOLBAR_ITEM_ALIASES = [\"cancel\", \"clear\", \"done\"];\r\nvar BUTTON_DEFAULT_TYPE = \"default\";\r\nvar BUTTON_NORMAL_TYPE = \"normal\";\r\nvar BUTTON_TEXT_MODE = \"text\";\r\nvar BUTTON_CONTAINED_MODE = \"contained\";\r\nvar BUTTON_OUTLINED_MODE = \"outlined\";\r\nvar IS_OLD_SAFARI = browser.safari && compareVersions(browser.version, [11]) < 0;\r\nvar HEIGHT_STRATEGIES = {\r\n static: \"\",\r\n inherit: POPUP_CONTENT_INHERIT_HEIGHT_CLASS,\r\n flex: POPUP_CONTENT_FLEX_HEIGHT_CLASS\r\n};\r\nvar getButtonPlace = name => {\r\n var device = devices.current();\r\n var {\r\n platform: platform\r\n } = device;\r\n var toolbar = \"bottom\";\r\n var location = \"before\";\r\n if (\"ios\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n toolbar = \"top\";\r\n break;\r\n case \"clear\":\r\n toolbar = \"top\";\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n } else if (\"android\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n }\r\n return {\r\n toolbar: toolbar,\r\n location: location\r\n }\r\n};\r\nvar Popup = Overlay.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n upArrow: e => {\r\n var _a;\r\n null === (_a = this._drag) || void 0 === _a ? void 0 : _a.moveUp(e)\r\n },\r\n downArrow: e => {\r\n var _a;\r\n null === (_a = this._drag) || void 0 === _a ? void 0 : _a.moveDown(e)\r\n },\r\n leftArrow: e => {\r\n var _a;\r\n null === (_a = this._drag) || void 0 === _a ? void 0 : _a.moveLeft(e)\r\n },\r\n rightArrow: e => {\r\n var _a;\r\n null === (_a = this._drag) || void 0 === _a ? void 0 : _a.moveRight(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n fullScreen: false,\r\n title: \"\",\r\n showTitle: true,\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n dragOutsideBoundary: false,\r\n dragEnabled: false,\r\n dragAndResizeArea: void 0,\r\n enableBodyScroll: true,\r\n outsideDragFactor: 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n resizeEnabled: false,\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n bottomTemplate: \"bottom\",\r\n useDefaultToolbarButtons: false,\r\n useFlatToolbarButtons: false,\r\n autoResizeEnabled: true\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n animation: this._iosAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n animation: this._androidAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n showCloseButton: true\r\n }\r\n }, {\r\n device: device => \"desktop\" === devices.real().deviceType && \"generic\" === device.platform,\r\n options: {\r\n dragEnabled: true\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\r\n options: {\r\n useFlatToolbarButtons: true\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }])\r\n },\r\n _iosAnimation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n opacity: 1,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n to: {\r\n opacity: 1,\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n }\r\n }\r\n },\r\n _androidAnimation() {\r\n return this.option(\"fullScreen\") ? {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: \"30%\",\r\n opacity: 0\r\n },\r\n to: {\r\n top: 0,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n top: \"30%\",\r\n opacity: 0\r\n }\r\n }\r\n } : {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n }\r\n },\r\n _init() {\r\n var popupWrapperClassExternal = this.option(\"_wrapperClassExternal\");\r\n var popupWrapperClasses = popupWrapperClassExternal ? \"\".concat(POPUP_WRAPPER_CLASS, \" \").concat(popupWrapperClassExternal) : POPUP_WRAPPER_CLASS;\r\n this.callBase();\r\n this._createBodyOverflowManager();\r\n this._updateResizeCallbackSkipCondition();\r\n this.$element().addClass(POPUP_CLASS);\r\n this.$wrapper().addClass(popupWrapperClasses);\r\n this._$popupContent = this._$content.wrapInner($(\"<div>\").addClass(POPUP_CONTENT_CLASS)).children().eq(0);\r\n this._toggleContentScrollClass();\r\n this.$overlayContent().attr(\"role\", \"dialog\")\r\n },\r\n _render() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _createBodyOverflowManager() {\r\n this._bodyOverflowManager = createBodyOverflowManager()\r\n },\r\n _toggleFullScreenClass(value) {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new EmptyTemplate,\r\n bottom: new EmptyTemplate\r\n })\r\n },\r\n _getActionsList() {\r\n return this.callBase().concat([\"onResizeStart\", \"onResize\", \"onResizeEnd\"])\r\n },\r\n _contentResizeHandler(entry) {\r\n if (!this._shouldSkipContentResize(entry)) {\r\n this._renderGeometry({\r\n shouldOnlyReposition: true\r\n })\r\n }\r\n },\r\n _doesShowAnimationChangeDimensions() {\r\n var animation = this.option(\"animation\");\r\n return [\"to\", \"from\"].some(prop => {\r\n var _a;\r\n var config = null === (_a = null === animation || void 0 === animation ? void 0 : animation.show) || void 0 === _a ? void 0 : _a[prop];\r\n return isObject(config) && (\"width\" in config || \"height\" in config)\r\n })\r\n },\r\n _updateResizeCallbackSkipCondition() {\r\n var doesShowAnimationChangeDimensions = this._doesShowAnimationChangeDimensions();\r\n this._shouldSkipContentResize = entry => doesShowAnimationChangeDimensions && this._showAnimationProcessing || this._areContentDimensionsRendered(entry)\r\n },\r\n _observeContentResize(shouldObserve) {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n var contentElement = this._$content.get(0);\r\n if (shouldObserve) {\r\n resizeObserverSingleton.observe(contentElement, entry => {\r\n this._contentResizeHandler(entry)\r\n })\r\n } else {\r\n resizeObserverSingleton.unobserve(contentElement)\r\n }\r\n },\r\n _areContentDimensionsRendered(entry) {\r\n var _a, _b, _c, _d, _e;\r\n var contentBox = null === (_a = entry.contentBoxSize) || void 0 === _a ? void 0 : _a[0];\r\n if (contentBox) {\r\n return parseInt(contentBox.inlineSize, 10) === (null === (_b = this._renderedDimensions) || void 0 === _b ? void 0 : _b.width) && parseInt(contentBox.blockSize, 10) === (null === (_c = this._renderedDimensions) || void 0 === _c ? void 0 : _c.height)\r\n }\r\n var {\r\n contentRect: contentRect\r\n } = entry;\r\n return parseInt(contentRect.width, 10) === (null === (_d = this._renderedDimensions) || void 0 === _d ? void 0 : _d.width) && parseInt(contentRect.height, 10) === (null === (_e = this._renderedDimensions) || void 0 === _e ? void 0 : _e.height)\r\n },\r\n _renderContent() {\r\n this.callBase();\r\n this._observeContentResize(true)\r\n },\r\n _renderContentImpl() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderResize();\r\n this._renderBottom()\r\n },\r\n _renderTitle() {\r\n var items = this._getToolbarItems(\"top\");\r\n var {\r\n title: title,\r\n showTitle: showTitle\r\n } = this.option();\r\n if (showTitle && !!title) {\r\n items.unshift({\r\n location: devices.current().ios ? \"center\" : \"before\",\r\n text: title\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = $(\"<div>\").addClass(POPUP_TITLE_CLASS).insertBefore(this.$content());\r\n this._$title = this._renderTemplateByType(\"titleTemplate\", items, $title).addClass(POPUP_TITLE_CLASS);\r\n this._renderDrag();\r\n this._executeTitleRenderAction(this._$title);\r\n this._$title.toggleClass(POPUP_HAS_CLOSE_BUTTON_CLASS, this._hasCloseButton())\r\n } else if (this._$title) {\r\n this._$title.detach()\r\n }\r\n this._toggleAriaLabel()\r\n },\r\n _toggleAriaLabel() {\r\n var _a;\r\n var {\r\n title: title,\r\n showTitle: showTitle\r\n } = this.option();\r\n var shouldSetAriaLabel = showTitle && !!title;\r\n var titleId = shouldSetAriaLabel ? new Guid : null;\r\n null === (_a = this._$title) || void 0 === _a ? void 0 : _a.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0).attr(\"id\", titleId);\r\n this.$overlayContent().attr(\"aria-labelledby\", titleId)\r\n },\r\n _renderTemplateByType(optionName, data, $container, additionalToolbarOptions) {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useDefaultToolbarButtons: useDefaultToolbarButtons,\r\n useFlatToolbarButtons: useFlatToolbarButtons,\r\n disabled: disabled\r\n } = this.option();\r\n var template = this._getTemplateByOption(optionName);\r\n var toolbarTemplate = template instanceof EmptyTemplate;\r\n if (toolbarTemplate) {\r\n var integrationOptions = extend({}, this.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\", \"title\"]\r\n });\r\n var toolbarOptions = extend(additionalToolbarOptions, {\r\n items: data,\r\n rtlEnabled: rtlEnabled,\r\n useDefaultButtons: useDefaultToolbarButtons,\r\n useFlatButtons: useFlatToolbarButtons,\r\n disabled: disabled,\r\n integrationOptions: integrationOptions\r\n });\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: {\r\n widget: this._getToolbarName(),\r\n options: toolbarOptions\r\n }\r\n });\r\n var $toolbar = $container.children(\"div\");\r\n $container.replaceWith($toolbar);\r\n return $toolbar\r\n }\r\n var $result = $(template.render({\r\n container: getPublicElement($container)\r\n }));\r\n if ($result.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n $container.replaceWith($result);\r\n $container = $result\r\n }\r\n return $container\r\n },\r\n _getToolbarName: () => \"dxToolbarBase\",\r\n _renderVisibilityAnimate(visible) {\r\n return this.callBase(visible)\r\n },\r\n _hide() {\r\n this._observeContentResize(false);\r\n return this.callBase()\r\n },\r\n _executeTitleRenderAction($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: getPublicElement($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction() {\r\n return this._titleRenderAction = this._createActionByOption(\"onTitleRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getCloseButton() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer() {\r\n return (_, __, container) => {\r\n var $button = $(\"<div>\").addClass(POPUP_TITLE_CLOSEBUTTON_CLASS);\r\n this._createComponent($button, Button, {\r\n icon: \"close\",\r\n onClick: this._createToolbarItemAction(void 0),\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n });\r\n $(container).append($button)\r\n }\r\n },\r\n _getToolbarItems(toolbar) {\r\n var toolbarItems = this.option(\"toolbarItems\");\r\n var toolbarsItems = [];\r\n this._toolbarItemClasses = [];\r\n var currentPlatform = devices.current().platform;\r\n var index = 0;\r\n each(toolbarItems, (_, data) => {\r\n var isShortcut = isDefined(data.shortcut);\r\n var item = isShortcut ? getButtonPlace(data.shortcut) : data;\r\n if (isShortcut && \"ios\" === currentPlatform && index < 2) {\r\n item.toolbar = \"top\";\r\n index++\r\n }\r\n item.toolbar = data.toolbar || item.toolbar || \"top\";\r\n if (item && item.toolbar === toolbar) {\r\n if (isShortcut) {\r\n extend(item, {\r\n location: data.location\r\n }, this._getToolbarItemByAlias(data))\r\n }\r\n var isLTROrder = \"generic\" === currentPlatform;\r\n if (\"done\" === data.shortcut && isLTROrder || \"cancel\" === data.shortcut && !isLTROrder) {\r\n toolbarsItems.unshift(item)\r\n } else {\r\n toolbarsItems.push(item)\r\n }\r\n }\r\n });\r\n if (\"top\" === toolbar && this._hasCloseButton()) {\r\n toolbarsItems.push(this._getCloseButton())\r\n }\r\n return toolbarsItems\r\n },\r\n _hasCloseButton() {\r\n return this.option(\"showCloseButton\") && this.option(\"showTitle\")\r\n },\r\n _getLocalizationKey: itemType => \"done\" === itemType.toLowerCase() ? \"OK\" : camelize(itemType, true),\r\n _getToolbarButtonStylingMode(shortcut) {\r\n if (isFluent()) {\r\n return \"done\" === shortcut ? BUTTON_CONTAINED_MODE : BUTTON_OUTLINED_MODE\r\n }\r\n return this.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n },\r\n _getToolbarButtonType(shortcut) {\r\n if (isFluent() && \"done\" === shortcut || this.option(\"useDefaultToolbarButtons\")) {\r\n return BUTTON_DEFAULT_TYPE\r\n }\r\n return BUTTON_NORMAL_TYPE\r\n },\r\n _getToolbarItemByAlias(data) {\r\n var that = this;\r\n var itemType = data.shortcut;\r\n if (!ALLOWED_TOOLBAR_ITEM_ALIASES.includes(itemType)) {\r\n return false\r\n }\r\n var itemConfig = extend({\r\n text: messageLocalization.format(this._getLocalizationKey(itemType)),\r\n onClick: this._createToolbarItemAction(data.onClick),\r\n integrationOptions: {},\r\n type: this._getToolbarButtonType(itemType),\r\n stylingMode: this._getToolbarButtonStylingMode(itemType)\r\n }, data.options || {});\r\n var itemClass = \"\".concat(POPUP_CLASS, \"-\").concat(itemType);\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template(_, __, container) {\r\n var $toolbarItem = $(\"<div>\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, Button, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = $(\"<div>\").addClass(POPUP_BOTTOM_CLASS).insertAfter(this.$content());\r\n this._$bottom = this._renderTemplateByType(\"bottomTemplate\", items, $bottom, {\r\n compactMode: true\r\n }).addClass(POPUP_BOTTOM_CLASS);\r\n this._toggleClasses()\r\n } else {\r\n this._$bottom && this._$bottom.detach()\r\n }\r\n },\r\n _toggleDisabledState(value) {\r\n this.callBase(...arguments);\r\n this.$content().toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _toggleClasses() {\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n each(aliases, (_, alias) => {\r\n var className = \"\".concat(POPUP_CLASS, \"-\").concat(alias);\r\n if (this._toolbarItemClasses.includes(className)) {\r\n this.$wrapper().addClass(\"\".concat(className, \"-visible\"));\r\n this._$bottom.addClass(className)\r\n } else {\r\n this.$wrapper().removeClass(\"\".concat(className, \"-visible\"));\r\n this._$bottom.removeClass(className)\r\n }\r\n })\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (isFocused && !zIndexPool.isLastZIndexInStack(this._zIndex)) {\r\n var zIndex = zIndexPool.create(this._zIndexInitValue());\r\n zIndexPool.remove(this._zIndex);\r\n this._zIndex = zIndex;\r\n this._$wrapper.css(\"zIndex\", zIndex);\r\n this._$content.css(\"zIndex\", zIndex)\r\n }\r\n },\r\n _toggleContentScrollClass() {\r\n var isNativeScrollingEnabled = !this.option(\"preventScrollEvents\");\r\n this.$content().toggleClass(POPUP_CONTENT_SCROLLABLE_CLASS, isNativeScrollingEnabled)\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopupPositionController(this._getPositionControllerConfig())\r\n },\r\n _getDragTarget() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometry(options) {\r\n var {\r\n visible: visible,\r\n useResizeObserver: useResizeObserver\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n var isAnimated = this._showAnimationProcessing;\r\n var shouldRepeatAnimation = isAnimated && !(null === options || void 0 === options ? void 0 : options.forceStopAnimation) && useResizeObserver;\r\n this._isAnimationPaused = shouldRepeatAnimation || void 0;\r\n this._stopAnimation();\r\n if (null === options || void 0 === options ? void 0 : options.shouldOnlyReposition) {\r\n this._renderPosition(false)\r\n } else {\r\n this._renderGeometryImpl(null === options || void 0 === options ? void 0 : options.isDimensionChange)\r\n }\r\n if (shouldRepeatAnimation) {\r\n this._animateShowing();\r\n this._isAnimationPaused = void 0\r\n }\r\n }\r\n },\r\n _cacheDimensions() {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n this._renderedDimensions = {\r\n width: parseInt(getWidth(this._$content), 10),\r\n height: parseInt(getHeight(this._$content), 10)\r\n }\r\n },\r\n _renderGeometryImpl() {\r\n var isDimensionChange = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n if (!isDimensionChange) {\r\n this._resetContentHeight()\r\n }\r\n this.callBase();\r\n this._cacheDimensions();\r\n this._setContentHeight()\r\n },\r\n _resetContentHeight() {\r\n var height = this._getOptionValue(\"height\");\r\n if (\"auto\" === height) {\r\n this.$content().css({\r\n height: \"auto\",\r\n maxHeight: \"none\"\r\n })\r\n }\r\n },\r\n _renderDrag() {\r\n var $dragTarget = this._getDragTarget();\r\n var dragEnabled = this.option(\"dragEnabled\");\r\n if (!$dragTarget) {\r\n return\r\n }\r\n var config = {\r\n dragEnabled: dragEnabled,\r\n handle: $dragTarget.get(0),\r\n draggableElement: this._$content.get(0),\r\n positionController: this._positionController\r\n };\r\n if (this._drag) {\r\n this._drag.init(config)\r\n } else {\r\n this._drag = new PopupDrag(config)\r\n }\r\n this.$overlayContent().toggleClass(POPUP_DRAGGABLE_CLASS, dragEnabled)\r\n },\r\n _renderResize() {\r\n this._resizable = this._createComponent(this._$content, Resizable, {\r\n handles: this.option(\"resizeEnabled\") ? \"all\" : \"none\",\r\n onResizeEnd: e => {\r\n this._resizeEndHandler(e);\r\n this._observeContentResize(true)\r\n },\r\n onResize: e => {\r\n this._setContentHeight();\r\n this._actions.onResize(e)\r\n },\r\n onResizeStart: e => {\r\n this._observeContentResize(false);\r\n this._actions.onResizeStart(e)\r\n },\r\n minHeight: 100,\r\n minWidth: 100,\r\n area: this._positionController.$dragResizeContainer,\r\n keepAspectRatio: false\r\n })\r\n },\r\n _resizeEndHandler(e) {\r\n var width = this._resizable.option(\"width\");\r\n var height = this._resizable.option(\"height\");\r\n width && this._setOptionWithoutOptionChange(\"width\", width);\r\n height && this._setOptionWithoutOptionChange(\"height\", height);\r\n this._cacheDimensions();\r\n this._positionController.resizeHandled();\r\n this._positionController.detectVisualPositionChange(e.event);\r\n this._actions.onResizeEnd(e)\r\n },\r\n _setContentHeight() {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n var overlayContent = this.$overlayContent().get(0);\r\n var currentHeightStrategyClass = this._chooseHeightStrategy(overlayContent);\r\n this.$content().css(this._getHeightCssStyles(currentHeightStrategyClass, overlayContent));\r\n this._setHeightClasses(this.$overlayContent(), currentHeightStrategyClass)\r\n },\r\n _heightStrategyChangeOffset: (currentHeightStrategyClass, popupVerticalPaddings) => currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0,\r\n _chooseHeightStrategy(overlayContent) {\r\n var isAutoWidth = \"auto\" === overlayContent.style.width || \"\" === overlayContent.style.width;\r\n var currentHeightStrategyClass = HEIGHT_STRATEGIES.static;\r\n if (this._isAutoHeight() && this.option(\"autoResizeEnabled\")) {\r\n if (isAutoWidth || IS_OLD_SAFARI) {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.inherit\r\n } else {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.flex\r\n }\r\n }\r\n return currentHeightStrategyClass\r\n },\r\n _getHeightCssStyles(currentHeightStrategyClass, overlayContent) {\r\n var cssStyles = {};\r\n var contentMaxHeight = this._getOptionValue(\"maxHeight\", overlayContent);\r\n var contentMinHeight = this._getOptionValue(\"minHeight\", overlayContent);\r\n var popupHeightParts = this._splitPopupHeight();\r\n var toolbarsAndVerticalOffsetsHeight = popupHeightParts.header + popupHeightParts.footer + popupHeightParts.contentVerticalOffsets + popupHeightParts.popupVerticalOffsets + this._heightStrategyChangeOffset(currentHeightStrategyClass, popupHeightParts.popupVerticalPaddings);\r\n if (currentHeightStrategyClass === HEIGHT_STRATEGIES.static) {\r\n if (!this._isAutoHeight() || contentMaxHeight || contentMinHeight) {\r\n var overlayHeight = this.option(\"fullScreen\") ? Math.min(getBoundingRect(overlayContent).height, getWindow().innerHeight) : getBoundingRect(overlayContent).height;\r\n var contentHeight = overlayHeight - toolbarsAndVerticalOffsetsHeight;\r\n cssStyles = {\r\n height: Math.max(0, contentHeight),\r\n minHeight: \"auto\",\r\n maxHeight: \"auto\"\r\n }\r\n }\r\n } else {\r\n var container = $(this._positionController.$visualContainer).get(0);\r\n var maxHeightValue = addOffsetToMaxHeight(contentMaxHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n var minHeightValue = addOffsetToMinHeight(contentMinHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n cssStyles = {\r\n height: \"auto\",\r\n minHeight: minHeightValue,\r\n maxHeight: maxHeightValue\r\n }\r\n }\r\n return cssStyles\r\n },\r\n _setHeightClasses($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \".concat(HEIGHT_STRATEGIES[name])\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight() {\r\n return \"auto\" === this.$overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight() {\r\n var topToolbar = this.topToolbar();\r\n var bottomToolbar = this.bottomToolbar();\r\n return {\r\n header: getVisibleHeight(topToolbar && topToolbar.get(0)),\r\n footer: getVisibleHeight(bottomToolbar && bottomToolbar.get(0)),\r\n contentVerticalOffsets: getVerticalOffsets(this.$overlayContent().get(0), true),\r\n popupVerticalOffsets: getVerticalOffsets(this.$content().get(0), true),\r\n popupVerticalPaddings: getVerticalOffsets(this.$content().get(0), false)\r\n }\r\n },\r\n _isAllWindowCovered() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _renderDimensions() {\r\n if (this.option(\"fullScreen\")) {\r\n this.$overlayContent().css({\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: \"\",\r\n maxWidth: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n } else {\r\n this.callBase()\r\n }\r\n if (hasWindow()) {\r\n this._renderFullscreenWidthClass()\r\n }\r\n },\r\n _dimensionChanged() {\r\n this._renderGeometry({\r\n isDimensionChange: true\r\n })\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._observeContentResize(false)\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._toggleBodyScroll(true)\r\n },\r\n _renderFullscreenWidthClass() {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_WIDTH_CLASS, getOuterWidth(this.$overlayContent()) === getWidth(window))\r\n },\r\n _toggleSafariScrolling() {\r\n if (!this.option(\"enableBodyScroll\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _toggleBodyScroll(enabled) {\r\n if (!this._bodyOverflowManager) {\r\n return\r\n }\r\n var {\r\n setOverflow: setOverflow,\r\n restoreOverflow: restoreOverflow\r\n } = this._bodyOverflowManager;\r\n if (enabled) {\r\n restoreOverflow()\r\n } else {\r\n setOverflow()\r\n }\r\n },\r\n refreshPosition() {\r\n this._renderPosition()\r\n },\r\n _optionChanged(args) {\r\n var _a, _b;\r\n var {\r\n value: value,\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"disabled\":\r\n this.callBase(args);\r\n this._renderTitle();\r\n this._renderBottom();\r\n break;\r\n case \"animation\":\r\n this._updateResizeCallbackSkipCondition();\r\n break;\r\n case \"enableBodyScroll\":\r\n if (this.option(\"visible\")) {\r\n this._toggleBodyScroll(value)\r\n }\r\n break;\r\n case \"showTitle\":\r\n case \"title\":\r\n case \"titleTemplate\":\r\n this._renderTitle();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"bottomTemplate\":\r\n this._renderBottom();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"container\":\r\n this.callBase(args);\r\n if (this.option(\"resizeEnabled\")) {\r\n null === (_a = this._resizable) || void 0 === _a ? void 0 : _a.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_b = this._resizable) || void 0 === _b ? void 0 : _b.option(name, value);\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderAction(value);\r\n break;\r\n case \"toolbarItems\":\r\n case \"useDefaultToolbarButtons\":\r\n case \"useFlatToolbarButtons\":\r\n var shouldRenderGeometry = !args.fullName.match(/^toolbarItems((\\[\\d+\\])(\\.(options|visible).*)?)?$/);\r\n this._renderTitle();\r\n this._renderBottom();\r\n if (shouldRenderGeometry) {\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent())\r\n }\r\n break;\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n break;\r\n case \"dragAndResizeArea\":\r\n this._positionController.dragAndResizeArea = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n this._positionController.positionContent();\r\n break;\r\n case \"dragOutsideBoundary\":\r\n this._positionController.dragOutsideBoundary = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"outsideDragFactor\":\r\n this._positionController.outsideDragFactor = value;\r\n break;\r\n case \"resizeEnabled\":\r\n this._renderResize();\r\n this._renderGeometry();\r\n break;\r\n case \"autoResizeEnabled\":\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"fullScreen\":\r\n this._positionController.fullScreen = value;\r\n this._toggleFullScreenClass(value);\r\n this._toggleSafariScrolling();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"showCloseButton\":\r\n this._renderTitle();\r\n break;\r\n case \"preventScrollEvents\":\r\n this.callBase(args);\r\n this._toggleContentScrollClass();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n bottomToolbar() {\r\n return this._$bottom\r\n },\r\n topToolbar() {\r\n return this._$title\r\n },\r\n $content() {\r\n return this._$popupContent\r\n },\r\n content() {\r\n return getPublicElement(this.$content())\r\n },\r\n $overlayContent() {\r\n return this._$content\r\n },\r\n getFocusableElements() {\r\n return this.$wrapper().find(\"[tabindex]\").filter((index, item) => item.getAttribute(\"tabindex\") >= 0)\r\n }\r\n});\r\nregisterComponent(\"dxPopup\", Popup);\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/events/swipe.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n eventData\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar SWIPE_START_EVENT = \"dxswipestart\";\r\nvar SWIPE_EVENT = \"dxswipe\";\r\nvar SWIPE_END_EVENT = \"dxswipeend\";\r\nvar HorizontalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getWidth(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxLeftOffset, this._maxRightOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.x - (this._savedEventData && this._savedEventData.x || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.x - this._tickData.x) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar VerticalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getHeight(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxTopOffset, this._maxBottomOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.y - (this._savedEventData && this._savedEventData.y || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.y - this._tickData.y) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar STRATEGIES = {\r\n horizontal: HorizontalStrategy,\r\n vertical: VerticalStrategy\r\n};\r\nvar SwipeEmitter = GestureEmitter.inherit({\r\n TICK_INTERVAL: 300,\r\n FAST_SWIPE_SPEED_LIMIT: 10,\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"horizontal\";\r\n this.elastic = true\r\n },\r\n _getStrategy: function() {\r\n return STRATEGIES[this.direction]\r\n },\r\n _defaultItemSizeFunc: function() {\r\n return this._getStrategy().defaultItemSizeFunc.call(this)\r\n },\r\n _itemSizeFunc: function() {\r\n return this.itemSizeFunc || this._defaultItemSizeFunc\r\n },\r\n _init: function(e) {\r\n this._tickData = eventData(e)\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n e = this._fireEvent(SWIPE_START_EVENT, e);\r\n if (!e.cancel) {\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset\r\n }\r\n },\r\n _move: function(e) {\r\n var strategy = this._getStrategy();\r\n var moveEventData = eventData(e);\r\n var offset = strategy.calcOffsetRatio.call(this, e);\r\n offset = this._fitOffset(offset, this.elastic);\r\n if (moveEventData.time - this._tickData.time > this.TICK_INTERVAL) {\r\n this._tickData = moveEventData\r\n }\r\n this._fireEvent(SWIPE_EVENT, e, {\r\n offset: offset\r\n });\r\n if (false !== e.cancelable) {\r\n e.preventDefault()\r\n }\r\n },\r\n _end: function(e) {\r\n var strategy = this._getStrategy();\r\n var offsetRatio = strategy.calcOffsetRatio.call(this, e);\r\n var isFast = strategy.isFastSwipe.call(this, e);\r\n var startOffset = offsetRatio;\r\n var targetOffset = this._calcTargetOffset(offsetRatio, isFast);\r\n startOffset = this._fitOffset(startOffset, this.elastic);\r\n targetOffset = this._fitOffset(targetOffset, false);\r\n this._fireEvent(SWIPE_END_EVENT, e, {\r\n offset: startOffset,\r\n targetOffset: targetOffset\r\n })\r\n },\r\n _fitOffset: function(offset, elastic) {\r\n var strategy = this._getStrategy();\r\n var bounds = strategy.getBounds.call(this);\r\n if (offset < -bounds[0]) {\r\n return elastic ? (-2 * bounds[0] + offset) / 3 : -bounds[0]\r\n }\r\n if (offset > bounds[1]) {\r\n return elastic ? (2 * bounds[1] + offset) / 3 : bounds[1]\r\n }\r\n return offset\r\n },\r\n _calcTargetOffset: function(offsetRatio, isFast) {\r\n var result;\r\n if (isFast) {\r\n result = Math.ceil(Math.abs(offsetRatio));\r\n if (offsetRatio < 0) {\r\n result = -result\r\n }\r\n } else {\r\n result = Math.round(offsetRatio)\r\n }\r\n return result\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: SwipeEmitter,\r\n events: [SWIPE_START_EVENT, SWIPE_EVENT, SWIPE_END_EVENT]\r\n});\r\nexport {\r\n SWIPE_EVENT as swipe, SWIPE_START_EVENT as start, SWIPE_END_EVENT as end\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/utils/type_conversion.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function toNumber(attribute) {\r\n return attribute ? Number(attribute.replace(\"px\", \"\")) : 0\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_style.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(el) {\r\n var _getWindow$getCompute, _getWindow;\r\n return el && hasWindow() ? null === (_getWindow$getCompute = (_getWindow = getWindow()).getComputedStyle) || void 0 === _getWindow$getCompute ? void 0 : _getWindow$getCompute.call(_getWindow, el) : null\r\n}\r\nexport function getElementMargin(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"margin\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementPadding(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"padding\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementOverflowX(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowX : \"visible\"\r\n}\r\nexport function getElementOverflowY(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowY : \"visible\"\r\n}\r\nexport function getElementTransform(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.transform : \"\"\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.live_update.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n findChanges\r\n} from \"../../../core/utils/array_compare\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n indexByKey,\r\n insert,\r\n update\r\n} from \"../../../data/array_utils\";\r\nimport {\r\n keysEqual\r\n} from \"../../../data/utils\";\r\nimport CollectionWidget from \"./m_collection_widget.edit\";\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nexport default CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor() {\r\n var _a;\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = e => {\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !this._dataController.isLoaded()) {\r\n this._correctionIndex = 0\r\n }\r\n if (this._correctionIndex && e.storeLoadOptions) {\r\n e.storeLoadOptions.skip += this._correctionIndex\r\n }\r\n };\r\n null === (_a = this._dataController) || void 0 === _a ? void 0 : _a.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload() {\r\n this._correctionIndex = 0\r\n },\r\n _init() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey(key) {\r\n var result = $();\r\n var keyExpr = this.key();\r\n this.itemElements().each((_, item) => {\r\n var $item = $(item);\r\n var itemData = this._getItemData($item);\r\n if (keyExpr ? keysEqual(keyExpr, this.keyOf(itemData), key) : this._isItemEquals(itemData, key)) {\r\n result = $item;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler(newItems, e) {\r\n if (null === e || void 0 === e ? void 0 : e.changes) {\r\n this._modifyByChanges(e.changes)\r\n } else {\r\n this.callBase(newItems, e);\r\n this._refreshItemsCache()\r\n }\r\n },\r\n _isItemEquals(item1, item2) {\r\n if (item1 && item1[PRIVATE_KEY_FIELD]) {\r\n item1 = item1.data\r\n }\r\n try {\r\n return JSON.stringify(item1) === JSON.stringify(item2)\r\n } catch (e) {\r\n return item1 === item2\r\n }\r\n },\r\n _isItemStrictEquals(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _shouldAddNewGroup(changes, items) {\r\n var result = false;\r\n if (this.option(\"grouped\")) {\r\n if (!changes.length) {\r\n result = true\r\n }\r\n each(changes, (i, change) => {\r\n if (\"insert\" === change.type) {\r\n result = true;\r\n each(items, (_, item) => {\r\n if (void 0 !== change.data.key && change.data.key === item.key) {\r\n result = false;\r\n return false\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _partialRefresh() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var result = findChanges(this._itemsCache, this._editStrategy.itemsGetter(), data => {\r\n if (data && void 0 !== data[PRIVATE_KEY_FIELD]) {\r\n return data[PRIVATE_KEY_FIELD]\r\n }\r\n return this.keyOf(data)\r\n }, this._isItemStrictEquals.bind(this));\r\n if (result && this._itemsCache.length && !this._shouldAddNewGroup(result, this._itemsCache)) {\r\n this._modifyByChanges(result, true);\r\n this._renderEmptyMessage();\r\n return true\r\n }\r\n this._refreshItemsCache()\r\n }\r\n return false\r\n },\r\n _refreshItemsCache() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var items = this._editStrategy.itemsGetter();\r\n try {\r\n this._itemsCache = extend(true, [], items);\r\n if (!this.key()) {\r\n this._itemsCache = this._itemsCache.map((itemCache, index) => ({\r\n [PRIVATE_KEY_FIELD]: items[index],\r\n data: itemCache\r\n }))\r\n }\r\n } catch (e) {\r\n this._itemsCache = extend([], items)\r\n }\r\n }\r\n },\r\n _dispose() {\r\n this._dataController.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange(keyInfo, items, change, isPartialRefresh) {\r\n if (isPartialRefresh) {\r\n this._renderItem(change.index, change.data, null, this._findItemElementByKey(change.key))\r\n } else {\r\n var changedItem = items[indexByKey(keyInfo, items, change.key)];\r\n if (changedItem) {\r\n update(keyInfo, items, change.key, change.data).done(() => {\r\n this._renderItem(items.indexOf(changedItem), changedItem, null, this._findItemElementByKey(change.key))\r\n })\r\n }\r\n }\r\n },\r\n _insertByChange(keyInfo, items, change, isPartialRefresh) {\r\n when(isPartialRefresh || insert(keyInfo, items, change.data, change.index)).done(() => {\r\n var _a;\r\n this._beforeItemElementInserted(change);\r\n this._renderItem(null !== (_a = change.index) && void 0 !== _a ? _a : items.length, change.data);\r\n this._afterItemElementInserted();\r\n this._correctionIndex++\r\n })\r\n },\r\n _updateSelectionAfterRemoveByChange(removeIndex) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (selectedIndex > removeIndex) {\r\n this.option(\"selectedIndex\", selectedIndex - 1)\r\n } else if (selectedIndex === removeIndex && 1 === this.option(\"selectedItems\").length) {\r\n this.option(\"selectedItems\", [])\r\n } else {\r\n this._normalizeSelectedItems()\r\n }\r\n },\r\n _beforeItemElementInserted(change) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (change.index <= selectedIndex) {\r\n this.option(\"selectedIndex\", selectedIndex + 1)\r\n }\r\n },\r\n _afterItemElementInserted: noop,\r\n _removeByChange(keyInfo, items, change, isPartialRefresh) {\r\n var index = isPartialRefresh ? change.index : indexByKey(keyInfo, items, change.key);\r\n var removedItem = isPartialRefresh ? change.oldItem : items[index];\r\n if (removedItem) {\r\n var $removedItemElement = this._findItemElementByKey(change.key);\r\n var deletedActionArgs = this._extendActionArgs($removedItemElement);\r\n this._waitDeletingPrepare($removedItemElement).done(() => {\r\n if (isPartialRefresh) {\r\n this._updateIndicesAfterIndex(index - 1);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs);\r\n this._updateSelectionAfterRemoveByChange(index)\r\n } else {\r\n this._deleteItemElementByIndex(index);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs)\r\n }\r\n });\r\n this._correctionIndex--\r\n }\r\n },\r\n _modifyByChanges(changes, isPartialRefresh) {\r\n var items = this._editStrategy.itemsGetter();\r\n var keyInfo = {\r\n key: this.key.bind(this),\r\n keyOf: this.keyOf.bind(this)\r\n };\r\n var dataController = this._dataController;\r\n var paginate = dataController.paginate();\r\n var group = dataController.group();\r\n if (paginate || group) {\r\n changes = changes.filter(item => \"insert\" !== item.type || void 0 !== item.index)\r\n }\r\n changes.forEach(change => this[\"_\".concat(change.type, \"ByChange\")](keyInfo, items, change, isPartialRefresh));\r\n this._renderedItemsCount = items.length;\r\n this._refreshItemsCache();\r\n this._fireContentReadyAction()\r\n },\r\n _appendItemToContainer($container, $itemFrame, index) {\r\n var nextSiblingElement = $container.children(this._itemSelector()).get(index);\r\n domAdapter.insertElement($container.get(0), $itemFrame.get(0), nextSiblingElement)\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n var isItemsUpdated = this._partialRefresh(args.value);\r\n if (!isItemsUpdated) {\r\n this.callBase(args)\r\n }\r\n break;\r\n case \"dataSource\":\r\n if (!this.option(\"repaintChangesOnly\") || !args.value) {\r\n this.option(\"items\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"repaintChangesOnly\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scroll_view.native.pull_down.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport NativeStrategy from \"./m_scrollable.native\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar PULLDOWN_RELEASE_TIME = 400;\r\nvar PullDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$refreshingText = scrollView._$refreshingText;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks()\r\n },\r\n _initCallbacks() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (_, item) => {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n })\r\n },\r\n update() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(() => {\r\n this._pullDownRefreshing()\r\n }, 400)\r\n }\r\n },\r\n _setPullDownOffset(offset) {\r\n move(this._$topPocket, {\r\n top: offset\r\n });\r\n move(this._$scrollViewContent, {\r\n top: offset\r\n })\r\n },\r\n handleScroll(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = (this._location || 0) - currentLocation;\r\n this._location = currentLocation;\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isPullDown() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n pullDownEnable(enabled) {\r\n if (enabled) {\r\n this._updateDimensions();\r\n this._setTopPocketOffset()\r\n }\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease() {\r\n this._state = STATE_READY\r\n },\r\n release() {\r\n var deferred = Deferred();\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n if (this._state === STATE_LOADING) {\r\n this._state = STATE_RELEASED\r\n }\r\n this._releaseTimeout = setTimeout(() => {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }, PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default PullDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scroll_view.native.swipe_down.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n eventData\r\n} from \"../../../events/utils/index\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport NativeStrategy from \"./m_scrollable.native\";\r\nvar SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-refreshing\";\r\nvar PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_TOUCHED = 4;\r\nvar STATE_PULLED = 5;\r\nvar SwipeDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks();\r\n this._location = 0\r\n },\r\n _initCallbacks() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown() {\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n this._$icon = $(\"<div>\").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_RELEASED && 0 === this._location) {\r\n this._startClientY = eventData(e.originalEvent).y;\r\n this._state = STATE_TOUCHED\r\n }\r\n },\r\n handleMove(e) {\r\n this.callBase(e);\r\n this._deltaY = eventData(e.originalEvent).y - this._startClientY;\r\n if (this._state === STATE_TOUCHED) {\r\n if (this._pullDownEnabled && this._deltaY > 0) {\r\n this._state = STATE_PULLED\r\n } else {\r\n this._complete()\r\n }\r\n }\r\n if (this._state === STATE_PULLED) {\r\n e.preventDefault();\r\n this._movePullDown()\r\n }\r\n },\r\n _movePullDown() {\r\n var pullDownHeight = this._getPullDownHeight();\r\n var top = Math.min(3 * pullDownHeight, this._deltaY + this._getPullDownStartPosition());\r\n var angle = 180 * top / pullDownHeight / 3;\r\n this._$pullDown.css({\r\n opacity: 1\r\n }).toggleClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS, top < pullDownHeight);\r\n move(this._$pullDown, {\r\n top: top\r\n });\r\n this._$icon.css({\r\n transform: \"rotate(\".concat(angle, \"deg)\")\r\n })\r\n },\r\n _isPullDown() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight() {\r\n return Math.round(.05 * getOuterHeight(this._$element))\r\n },\r\n _getPullDownStartPosition() {\r\n return -Math.round(1.5 * getOuterHeight(this._$pullDown))\r\n },\r\n handleEnd() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop() {\r\n this._complete()\r\n },\r\n _complete() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = this._location - currentLocation;\r\n this._location = currentLocation;\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isReachBottom() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown() {\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n move(this._$pullDown, {\r\n top: this._getPullDownHeight()\r\n })\r\n },\r\n pullDownEnable(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease() {\r\n this._state = STATE_READY\r\n },\r\n release() {\r\n var deferred = Deferred();\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(() => {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }, 800);\r\n return deferred.promise()\r\n },\r\n dispose() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default SwipeDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scroll_view.simulated.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n executeAsync\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight\r\n} from \"../../../core/utils/size\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport {\r\n Scroller,\r\n SimulatedStrategy\r\n} from \"./m_scrollable.simulated\";\r\nvar math = Math;\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar ScrollViewScroller = Scroller.inherit({\r\n ctor() {\r\n this._topPocketSize = 0;\r\n this._bottomPocketSize = 0;\r\n this.callBase.apply(this, arguments);\r\n this._initCallbacks();\r\n this._releaseState()\r\n },\r\n _releaseState() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (_, item) => {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n })\r\n },\r\n _initCallbacks() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n _updateBounds() {\r\n var considerPockets = \"horizontal\" !== this._direction;\r\n if (considerPockets) {\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n this._bottomPocketSize = this._$bottomPocket.get(0).clientHeight;\r\n var containerEl = this._$container.get(0);\r\n var contentEl = this._$content.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - this._bottomPocketSize - containerEl.clientHeight, 0)\r\n }\r\n this.callBase()\r\n },\r\n _updateScrollbar() {\r\n this._scrollbar.option({\r\n containerSize: this._containerSize(),\r\n contentSize: this._contentSize() - this._topPocketSize - this._bottomPocketSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n },\r\n _moveContent() {\r\n this.callBase();\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (this._isReachBottom()) {\r\n this._reachBottomReady()\r\n } else if (this._state !== STATE_RELEASED) {\r\n this._stateReleased()\r\n }\r\n },\r\n _moveScrollbar() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom() {\r\n var containerEl = this._$container.get(0);\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary - Math.ceil(containerEl.scrollTop)) <= 1\r\n },\r\n _scrollComplete() {\r\n if (this._inBounds() && this._state === STATE_READY) {\r\n this._pullDownRefreshing()\r\n } else if (this._inBounds() && this._state === STATE_LOADING) {\r\n this._reachBottomLoading()\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _reachBottomReady() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._maxOffset = 0;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._releaseState();\r\n this._updateBounds();\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this.releaseCallbacks.fire()\r\n },\r\n _pullDownRefreshing() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _releaseHandler() {\r\n if (this._state === STATE_RELEASED) {\r\n this._moveToBounds()\r\n }\r\n this._update();\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this._releaseTask = executeAsync(this._release.bind(this));\r\n return this._releaseTask.promise\r\n },\r\n _release() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler(enabled) {\r\n if (this._reachBottomEnabled === enabled) {\r\n return\r\n }\r\n this._reachBottomEnabled = enabled;\r\n this._updateBounds()\r\n },\r\n _pullDownEnablingHandler(enabled) {\r\n if (this._pullDownEnabled === enabled) {\r\n return\r\n }\r\n this._pullDownEnabled = enabled;\r\n this._considerTopPocketChange();\r\n this._updateHandler()\r\n },\r\n _considerTopPocketChange() {\r\n this._location -= getHeight(this._$topPocket) || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler() {\r\n this._state = STATE_READY\r\n },\r\n dispose() {\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar SimulatedScrollViewStrategy = SimulatedStrategy.inherit({\r\n _init(scrollView) {\r\n this.callBase(scrollView);\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._initCallbacks()\r\n },\r\n _initCallbacks() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add(() => {\r\n that.pullDownCallbacks.fire()\r\n });\r\n scroller.releaseCallbacks.add(() => {\r\n that.releaseCallbacks.fire()\r\n });\r\n scroller.reachBottomCallbacks.add(() => {\r\n that.reachBottomCallbacks.fire()\r\n })\r\n },\r\n _scrollerOptions(direction) {\r\n return extend(this.callBase(direction), {\r\n $topPocket: this._$topPocket,\r\n $bottomPocket: this._$bottomPocket,\r\n $pullDown: this._$pullDown,\r\n $pullDownText: this._$pullDownText,\r\n $pullingDownText: this._$pullingDownText,\r\n $pulledDownText: this._$pulledDownText,\r\n $refreshingText: this._$refreshingText\r\n })\r\n },\r\n pendingRelease() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location() {\r\n var location = this.callBase();\r\n location.top += getHeight(this._$topPocket);\r\n return location\r\n },\r\n dispose() {\r\n each(this._scrollers, (function() {\r\n this.dispose()\r\n }));\r\n this.callBase()\r\n }\r\n});\r\nexport default SimulatedScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scroll_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport LoadPanel from \"../../../ui/load_panel\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport PullDownStrategy from \"./m_scroll_view.native.pull_down\";\r\nimport SwipeDownStrategy from \"./m_scroll_view.native.swipe_down\";\r\nimport SimulatedStrategy from \"./m_scroll_view.simulated\";\r\nimport Scrollable from \"./m_scrollable\";\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-content\");\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-top-pocket\");\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-bottom-pocket\");\r\nvar SCROLLVIEW_PULLDOWN_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-pull-down\");\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-scrollbottom\");\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = \"\".concat(SCROLLVIEW_REACHBOTTOM_CLASS, \"-indicator\");\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = \"\".concat(SCROLLVIEW_REACHBOTTOM_CLASS, \"-text\");\r\nvar SCROLLVIEW_LOADPANEL = \"\".concat(SCROLLVIEW_CLASS, \"-loadpanel\");\r\nvar refreshStrategies = {\r\n pullDown: PullDownStrategy,\r\n swipeDown: SwipeDownStrategy,\r\n simulated: SimulatedStrategy\r\n};\r\nvar isServerSide = !hasWindow();\r\nvar scrollViewServerConfig = {\r\n finishLoading: noop,\r\n release: noop,\r\n refresh: noop,\r\n scrollOffset: () => ({\r\n top: 0,\r\n left: 0\r\n }),\r\n _optionChanged(args) {\r\n if (\"onUpdated\" !== args.name) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n};\r\nvar ScrollView = Scrollable.inherit(isServerSide ? scrollViewServerConfig : {\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n pullingDownText: messageLocalization.format(\"dxScrollView-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxScrollView-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxScrollView-refreshingText\"),\r\n reachBottomText: messageLocalization.format(\"dxScrollView-reachBottomText\"),\r\n onPullDown: null,\r\n onReachBottom: null,\r\n refreshStrategy: \"pullDown\"\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device() {\r\n var realDevice = devices.real();\r\n return \"android\" === realDevice.platform\r\n },\r\n options: {\r\n refreshStrategy: \"swipeDown\"\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup() {\r\n this.callBase();\r\n this.$element().addClass(SCROLLVIEW_CLASS);\r\n this._initContent();\r\n this._initTopPocket();\r\n this._initBottomPocket();\r\n this._initLoadPanel()\r\n },\r\n _initContent() {\r\n var $content = $(\"<div>\").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket() {\r\n var $topPocket = this._$topPocket = $(\"<div>\").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket() {\r\n var $bottomPocket = this._$bottomPocket = $(\"<div>\").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$reachBottomText = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_TEXT_CLASS);\r\n this._updateReachBottomText();\r\n $reachBottom.append($loadContainer.append($loadIndicator)).append($text);\r\n $bottomPocket.append($reachBottom);\r\n this._$content.append($bottomPocket)\r\n },\r\n _initLoadPanel() {\r\n var $loadPanelElement = $(\"<div>\").addClass(SCROLLVIEW_LOADPANEL).appendTo(this.$element());\r\n var loadPanelOptions = {\r\n shading: false,\r\n delay: 400,\r\n message: this.option(\"refreshingText\"),\r\n position: {\r\n of: this.$element()\r\n }\r\n };\r\n this._loadPanel = this._createComponent($loadPanelElement, LoadPanel, loadPanelOptions)\r\n },\r\n _updateReachBottomText() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy() {\r\n var strategyName = this.option(\"useNative\") ? this.option(\"refreshStrategy\") : \"simulated\";\r\n var strategyClass = refreshStrategies[strategyName];\r\n this._strategy = new strategyClass(this);\r\n this._strategy.pullDownCallbacks.add(this._pullDownHandler.bind(this));\r\n this._strategy.releaseCallbacks.add(this._releaseHandler.bind(this));\r\n this._strategy.reachBottomCallbacks.add(this._reachBottomHandler.bind(this))\r\n },\r\n _createActions() {\r\n this.callBase();\r\n this._pullDownAction = this._createActionByOption(\"onPullDown\");\r\n this._reachBottomAction = this._createActionByOption(\"onReachBottom\");\r\n this._tryRefreshPocketState()\r\n },\r\n _tryRefreshPocketState() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on(eventName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (\"pullDown\" === eventName || \"reachBottom\" === eventName) {\r\n this._tryRefreshPocketState()\r\n }\r\n return result\r\n },\r\n _pullDownEnable(enabled) {\r\n if (0 === arguments.length) {\r\n return this._pullDownEnabled\r\n }\r\n if (this._$pullDown && this._strategy) {\r\n this._$pullDown.toggle(enabled);\r\n this._strategy.pullDownEnable(enabled);\r\n this._pullDownEnabled = enabled\r\n }\r\n },\r\n _reachBottomEnable(enabled) {\r\n if (0 === arguments.length) {\r\n return this._reachBottomEnabled\r\n }\r\n if (this._$reachBottom && this._strategy) {\r\n this._$reachBottom.toggle(enabled);\r\n this._strategy.reachBottomEnable(enabled);\r\n this._reachBottomEnabled = enabled\r\n }\r\n },\r\n _pullDownHandler() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onPullDown\":\r\n case \"onReachBottom\":\r\n this._createActions();\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"refreshStrategy\":\r\n this._invalidate();\r\n break;\r\n case \"reachBottomText\":\r\n this._updateReachBottomText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content() {\r\n return getPublicElement(this._$content.children().eq(1))\r\n },\r\n release(preventReachBottom) {\r\n if (void 0 !== preventReachBottom) {\r\n this.toggleLoading(!preventReachBottom)\r\n }\r\n return this._strategy.release()\r\n },\r\n toggleLoading(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n refresh() {\r\n if (!this.hasActionSubscription(\"onPullDown\")) {\r\n return\r\n }\r\n this._strategy.pendingRelease();\r\n this._pullDownLoading()\r\n },\r\n startLoading() {\r\n if (this._loadingIndicator() && this.$element().is(\":visible\")) {\r\n this._loadPanel.show()\r\n }\r\n this._lock()\r\n },\r\n finishLoading() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose() {\r\n this._strategy.dispose();\r\n this.callBase();\r\n if (this._loadPanel) {\r\n this._loadPanel.$element().remove()\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxScrollView\", ScrollView);\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/shared/m_grouped_data_converter_mixin.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nvar isCorrectStructure = data => Array.isArray(data) && data.every(item => {\r\n var hasTwoFields = 2 === Object.keys(item).length;\r\n var hasCorrectFields = \"key\" in item && \"items\" in item;\r\n return hasTwoFields && hasCorrectFields && Array.isArray(item.items)\r\n});\r\nexport default {\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n var hasSimpleItems = false;\r\n var data = {};\r\n if (this._getGroupedOption() && isCorrectStructure(dataSource)) {\r\n data = dataSource.reduce((accumulator, item) => {\r\n var items = item.items.map(innerItem => {\r\n if (!isObject(innerItem)) {\r\n innerItem = {\r\n text: innerItem\r\n };\r\n hasSimpleItems = true\r\n }\r\n if (!(\"key\" in innerItem)) {\r\n innerItem.key = item.key\r\n }\r\n return innerItem\r\n });\r\n return accumulator.concat(items)\r\n }, []);\r\n dataSource = {\r\n store: {\r\n type: \"array\",\r\n data: data\r\n },\r\n group: {\r\n selector: \"key\",\r\n keepInitialKeyOrder: true\r\n }\r\n };\r\n if (hasSimpleItems) {\r\n dataSource.searchExpr = \"text\"\r\n }\r\n }\r\n return dataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_item.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport CollectionWidgetItem from \"../../ui/collection/m_item\";\r\nvar LIST_ITEM_BADGE_CONTAINER_CLASS = \"dx-list-item-badge-container\";\r\nvar LIST_ITEM_BADGE_CLASS = \"dx-list-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar LIST_ITEM_CHEVRON_CONTAINER_CLASS = \"dx-list-item-chevron-container\";\r\nvar LIST_ITEM_CHEVRON_CLASS = \"dx-list-item-chevron\";\r\nvar ListItem = CollectionWidgetItem.inherit({\r\n _renderWatchers() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this));\r\n this._startWatcher(\"showChevron\", this._renderShowChevron.bind(this))\r\n },\r\n _renderBadge(badge) {\r\n this._$element.children(\".\".concat(LIST_ITEM_BADGE_CONTAINER_CLASS)).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"<div>\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($(\"<div>\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\".concat(LIST_ITEM_CHEVRON_CONTAINER_CLASS)).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron(showChevron) {\r\n this._$element.children(\".\".concat(LIST_ITEM_CHEVRON_CONTAINER_CLASS)).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = $(\"<div>\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = $(\"<div>\").addClass(LIST_ITEM_CHEVRON_CLASS);\r\n $chevronContainer.append($chevron).appendTo(this._$element)\r\n }\r\n});\r\nexport default ListItem;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n end as swipeEventEnd\r\n} from \"../../../events/swipe\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n getElementMargin\r\n} from \"../../../renovation/ui/scroll_view/utils/get_element_style\";\r\nimport Button from \"../../../ui/button\";\r\nimport CollectionWidget from \"../../../ui/collection/ui.collection_widget.live_update\";\r\nimport ScrollView from \"../../../ui/scroll_view\";\r\nimport {\r\n current,\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport {\r\n render\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"../../ui/scroll_view/m_scrollable.device\";\r\nimport DataConverterMixin from \"../../ui/shared/m_grouped_data_converter_mixin\";\r\nimport ListItem from \"./m_item\";\r\nvar LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEMS_CLASS = \"dx-list-items\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\".concat(LIST_ITEM_CLASS);\r\nvar LIST_ITEM_ICON_CONTAINER_CLASS = \"dx-list-item-icon-container\";\r\nvar LIST_ITEM_ICON_CLASS = \"dx-list-item-icon\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar LIST_GROUP_HEADER_CLASS = \"dx-list-group-header\";\r\nvar LIST_GROUP_BODY_CLASS = \"dx-list-group-body\";\r\nvar LIST_COLLAPSIBLE_GROUPS_CLASS = \"dx-list-collapsible-groups\";\r\nvar LIST_GROUP_COLLAPSED_CLASS = \"dx-list-group-collapsed\";\r\nvar LIST_GROUP_HEADER_INDICATOR_CLASS = \"dx-list-group-header-indicator\";\r\nvar LIST_HAS_NEXT_CLASS = \"dx-has-next\";\r\nvar LIST_NEXT_BUTTON_CLASS = \"dx-list-next-button\";\r\nvar WRAP_ITEM_TEXT_CLASS = \"dx-wrap-item-text\";\r\nvar SELECT_ALL_ITEM_SELECTOR = \".dx-list-select-all\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar LIST_FEEDBACK_SHOW_TIMEOUT = 70;\r\nvar groupItemsGetter = compileGetter(\"items\");\r\nvar _scrollView;\r\nexport var ListBase = CollectionWidget.inherit({\r\n _activeStateUnit: [LIST_ITEM_SELECTOR, SELECT_ALL_ITEM_SELECTOR].join(\",\"),\r\n _supportedKeys() {\r\n var that = this;\r\n var moveFocusPerPage = function(direction) {\r\n var $item = getEdgeVisibleItem(direction);\r\n var isFocusedItem = $item.is(that.option(\"focusedElement\"));\r\n if (isFocusedItem) {\r\n ! function($item, direction) {\r\n var resultPosition = $item.position().top;\r\n if (\"prev\" === direction) {\r\n resultPosition = $item.position().top - getHeight(that.$element()) + getOuterHeight($item)\r\n }\r\n that.scrollTo(resultPosition)\r\n }($item, direction);\r\n $item = getEdgeVisibleItem(direction)\r\n }\r\n that.option(\"focusedElement\", getPublicElement($item));\r\n that.scrollToItem($item)\r\n };\r\n\r\n function getEdgeVisibleItem(direction) {\r\n var scrollTop = that.scrollTop();\r\n var containerHeight = getHeight(that.$element());\r\n var $item = $(that.option(\"focusedElement\"));\r\n var isItemVisible = true;\r\n if (!$item.length) {\r\n return $()\r\n }\r\n while (isItemVisible) {\r\n var $nextItem = $item[direction]();\r\n if (!$nextItem.length) {\r\n break\r\n }\r\n var nextItemLocation = $nextItem.position().top + getOuterHeight($nextItem) / 2;\r\n isItemVisible = nextItemLocation < containerHeight + scrollTop && nextItemLocation > scrollTop;\r\n if (isItemVisible) {\r\n $item = $nextItem\r\n }\r\n }\r\n return $item\r\n }\r\n return extend(this.callBase(), {\r\n leftArrow: noop,\r\n rightArrow: noop,\r\n pageUp() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n pullRefreshEnabled: false,\r\n scrollingEnabled: true,\r\n selectByClick: true,\r\n showScrollbar: \"onScroll\",\r\n useNativeScrolling: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n pullingDownText: messageLocalization.format(\"dxList-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxList-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxList-refreshingText\"),\r\n pageLoadingText: messageLocalization.format(\"dxList-pageLoadingText\"),\r\n onScroll: null,\r\n onPullRefresh: null,\r\n onPageLoading: null,\r\n pageLoadMode: \"scrollBottom\",\r\n nextButtonText: messageLocalization.format(\"dxList-nextButtonText\"),\r\n onItemSwipe: null,\r\n grouped: false,\r\n onGroupRendered: null,\r\n collapsibleGroups: false,\r\n groupTemplate: \"group\",\r\n indicateLoading: true,\r\n activeStateEnabled: true,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n useInkRipple: false,\r\n wrapItemText: false,\r\n _swipeEnabled: true,\r\n showChevronExpr: data => data ? data.showChevron : void 0,\r\n badgeExpr: data => data ? data.badge : void 0\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n var themeName = current();\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: () => !nativeScrolling,\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: device => !nativeScrolling && !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === device.platform,\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isMaterial(themeName),\r\n options: {\r\n useInkRipple: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(themeName),\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\"\r\n }\r\n }])\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: () => LIST_ITEM_CLASS,\r\n _itemDataKey: () => LIST_ITEM_DATA_KEY,\r\n _itemContainer() {\r\n return this._$container\r\n },\r\n _getItemsContainer() {\r\n return this._$listContainer\r\n },\r\n _cleanItemContainer() {\r\n this.callBase();\r\n var listContainer = this._getItemsContainer();\r\n $(listContainer).empty();\r\n listContainer.appendTo(this._$container)\r\n },\r\n _saveSelectionChangeEvent(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._getItemsContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._getItemsContainer().children(\".\".concat(LIST_GROUP_CLASS)).children(\".\".concat(LIST_GROUP_BODY_CLASS)).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem(itemElement, toItemElement) {\r\n var promise = this.callBase(itemElement, toItemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n deleteItem(itemElement) {\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n _itemElements() {\r\n return this._itemElementsCache\r\n },\r\n _itemSelectHandler(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _allowDynamicItemsAppend: () => true,\r\n _init() {\r\n this.callBase();\r\n this._dataController.resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._$listContainer = $(\"<div>\").addClass(LIST_ITEMS_CLASS);\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions() {\r\n var scrollBottom = this._scrollBottomMode();\r\n var nextButton = this._nextButtonMode();\r\n return extend(this.callBase(), {\r\n paginate: ensureDefined(scrollBottom || nextButton, true)\r\n })\r\n },\r\n _getGroupedOption() {\r\n return this.option(\"grouped\")\r\n },\r\n _getGroupContainerByIndex(groupIndex) {\r\n return this._getItemsContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\r\n },\r\n _dataSourceFromUrlLoadMode: () => \"raw\",\r\n _initScrollView() {\r\n var scrollingEnabled = this.option(\"scrollingEnabled\");\r\n var pullRefreshEnabled = scrollingEnabled && this.option(\"pullRefreshEnabled\");\r\n var autoPagingEnabled = scrollingEnabled && this._scrollBottomMode() && !!this._dataController.getDataSource();\r\n this._scrollView = this._createComponent(this.$element(), getScrollView(), {\r\n height: this.option(\"height\"),\r\n width: this.option(\"width\"),\r\n disabled: this.option(\"disabled\") || !scrollingEnabled,\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullDown: pullRefreshEnabled ? this._pullDownHandler.bind(this) : null,\r\n onReachBottom: autoPagingEnabled ? this._scrollBottomHandler.bind(this) : null,\r\n showScrollbar: this.option(\"showScrollbar\"),\r\n useNative: this.option(\"useNativeScrolling\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n reachBottomText: this.option(\"pageLoadingText\"),\r\n useKeyboard: false\r\n });\r\n this._$container = $(this._scrollView.content());\r\n this._$listContainer.appendTo(this._$container);\r\n this._toggleWrapItemText(this.option(\"wrapItemText\"));\r\n this._createScrollViewActions()\r\n },\r\n _toggleWrapItemText(value) {\r\n this._$listContainer.toggleClass(WRAP_ITEM_TEXT_CLASS, value)\r\n },\r\n _createScrollViewActions() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\");\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _scrollHandler(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new BindableTemplate(($container, data) => {\r\n if (isPlainObject(data)) {\r\n if (data.key) {\r\n $container.text(data.key)\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n }, [\"key\"], this.option(\"integrationOptions.watchMethod\"))\r\n });\r\n this.callBase()\r\n },\r\n _prepareDefaultItemTemplate(data, $container) {\r\n this.callBase(data, $container);\r\n if (data.icon) {\r\n var $icon = getImageContainer(data.icon).addClass(LIST_ITEM_ICON_CLASS);\r\n var $iconContainer = $(\"<div>\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: () => [\"text\", \"html\", \"icon\"],\r\n _updateLoadingState(tryLoadMore) {\r\n var dataController = this._dataController;\r\n var shouldLoadNextPage = this._scrollBottomMode() && tryLoadMore && !dataController.isLoading() && !this._isLastPage();\r\n if (this._shouldContinueLoading(shouldLoadNextPage)) {\r\n this._infiniteDataLoading()\r\n } else {\r\n this._scrollView.release(!shouldLoadNextPage && !dataController.isLoading());\r\n this._toggleNextButton(this._shouldRenderNextButton() && !this._isLastPage());\r\n this._loadIndicationSuppressed(false)\r\n }\r\n },\r\n _shouldRenderNextButton() {\r\n return this._nextButtonMode() && this._dataController.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted(newValue) {\r\n if (isDefined(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(() => {\r\n var _a;\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n null === (_a = this._scrollView) || void 0 === _a ? void 0 : _a.startLoading()\r\n }\r\n })\r\n } else {\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this._scrollView && this._scrollView.finishLoading()\r\n }\r\n if (!isLoading) {\r\n this._isDataSourceFirstLoadCompleted(false)\r\n }\r\n },\r\n _dataSourceChangedHandler() {\r\n if (!this._shouldAppendItems() && hasWindow()) {\r\n this._scrollView && this._scrollView.scrollTo(0)\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._isDataSourceFirstLoadCompleted(true)\r\n },\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull() {\r\n var scrollView = this._scrollView;\r\n return !scrollView || getHeight(scrollView.content()) > getHeight(scrollView.container())\r\n },\r\n _pullDownHandler(e) {\r\n this._pullRefreshAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._clearSelectedItems();\r\n dataController.pageIndex(0);\r\n dataController.reload()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _shouldContinueLoading(shouldLoadNextPage) {\r\n var _a, _b;\r\n var isBottomReached = getHeight(this._scrollView.content()) - getHeight(this._scrollView.container()) < (null !== (_b = null === (_a = this._scrollView.scrollOffset()) || void 0 === _a ? void 0 : _a.top) && void 0 !== _b ? _b : 0);\r\n return shouldLoadNextPage && (!this._scrollViewIsFull() || isBottomReached)\r\n },\r\n _infiniteDataLoading() {\r\n var isElementVisible = this.$element().is(\":visible\");\r\n if (isElementVisible) {\r\n clearTimeout(this._loadNextPageTimer);\r\n this._loadNextPageTimer = setTimeout(() => {\r\n this._loadNextPage()\r\n })\r\n }\r\n },\r\n _scrollBottomHandler(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (!dataController.isLoading() && !this._isLastPage()) {\r\n this._loadNextPage()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _renderItems(items) {\r\n if (this.option(\"grouped\")) {\r\n each(items, this._renderGroup.bind(this));\r\n this._attachGroupCollapseEvent();\r\n this._renderEmptyMessage();\r\n if (isMaterial()) {\r\n this.attachGroupHeaderInkRippleEvents()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n _attachGroupCollapseEvent() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var selector = \".\".concat(LIST_GROUP_HEADER_CLASS);\r\n var $element = this.$element();\r\n var collapsibleGroups = this.option(\"collapsibleGroups\");\r\n $element.toggleClass(LIST_COLLAPSIBLE_GROUPS_CLASS, collapsibleGroups);\r\n eventsEngine.off($element, eventName, selector);\r\n if (collapsibleGroups) {\r\n eventsEngine.on($element, eventName, selector, e => {\r\n this._createAction(e => {\r\n var $group = $(e.event.currentTarget).parent();\r\n this._collapseGroupHandler($group);\r\n if (this.option(\"focusStateEnabled\")) {\r\n this.option(\"focusedElement\", getPublicElement($group.find(\".\".concat(LIST_ITEM_CLASS)).eq(0)))\r\n }\r\n }, {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n })\r\n }\r\n },\r\n _collapseGroupHandler($group, toggle) {\r\n var deferred = Deferred();\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\".concat(LIST_GROUP_BODY_CLASS));\r\n var startHeight = getOuterHeight($groupBody);\r\n var endHeight = 0;\r\n if (0 === startHeight) {\r\n setHeight($groupBody, \"auto\");\r\n endHeight = getOuterHeight($groupBody)\r\n }\r\n $group.toggleClass(LIST_GROUP_COLLAPSED_CLASS, toggle);\r\n fx.animate($groupBody, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: 200,\r\n complete: function() {\r\n this.updateDimensions();\r\n this._updateLoadingState(true);\r\n deferred.resolve()\r\n }.bind(this)\r\n });\r\n return deferred.promise()\r\n },\r\n _dataSourceLoadErrorHandler() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup() {\r\n this._itemElementsCache = $();\r\n this.$element().addClass(LIST_CLASS);\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.setAria({\r\n role: \"group\",\r\n roledescription: \"list\"\r\n }, this.$element());\r\n this.setAria({\r\n role: \"group\"\r\n }, this._focusTarget());\r\n this._setListAria()\r\n },\r\n _setListAria() {\r\n var {\r\n items: items\r\n } = this.option();\r\n var listArea = (null === items || void 0 === items ? void 0 : items.length) ? {\r\n role: \"listbox\",\r\n label: \"Items\"\r\n } : {\r\n role: void 0,\r\n label: void 0\r\n };\r\n this.setAria(listArea, this._$listContainer)\r\n },\r\n _focusTarget() {\r\n return this._itemContainer()\r\n },\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n var that = this;\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n if (isMaterial()) {\r\n this._inkRippleTimer = setTimeout(() => {\r\n that._inkRipple.showWave(config)\r\n }, LIST_FEEDBACK_SHOW_TIMEOUT / 2)\r\n } else {\r\n that._inkRipple.showWave(config)\r\n }\r\n } else {\r\n clearTimeout(this._inkRippleTimer);\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _postprocessRenderItem(args) {\r\n this._refreshItemElements();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"_swipeEnabled\")) {\r\n this._attachSwipeEvent($(args.itemElement))\r\n }\r\n },\r\n _attachSwipeEvent($itemElement) {\r\n var endEventName = addNamespace(swipeEventEnd, this.NAME);\r\n eventsEngine.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._scrollView.toggleLoading(true);\r\n this._$nextButton.detach();\r\n this._loadIndicationSuppressed(true);\r\n this._loadNextPage()\r\n }\r\n },\r\n _renderGroup(index, group) {\r\n var $groupElement = $(\"<div>\").addClass(LIST_GROUP_CLASS).appendTo(this._getItemsContainer());\r\n var id = \"dx-\".concat((new Guid).toString());\r\n var groupAria = {\r\n role: \"group\",\r\n labelledby: id\r\n };\r\n this.setAria(groupAria, $groupElement);\r\n var $groupHeaderElement = $(\"<div>\").addClass(LIST_GROUP_HEADER_CLASS).attr(\"id\", id).appendTo($groupElement);\r\n var groupTemplateName = this.option(\"groupTemplate\");\r\n var groupTemplate = this._getTemplate(group.template || groupTemplateName, group, index, $groupHeaderElement);\r\n var renderArgs = {\r\n index: index,\r\n itemData: group,\r\n container: getPublicElement($groupHeaderElement)\r\n };\r\n this._createItemByTemplate(groupTemplate, renderArgs);\r\n $(\"<div>\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement);\r\n this._renderingGroupIndex = index;\r\n var $groupBody = $(\"<div>\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n each(groupItemsGetter(group) || [], (itemIndex, item) => {\r\n this._renderItem({\r\n group: index,\r\n item: itemIndex\r\n }, item, $groupBody)\r\n });\r\n this._groupRenderAction({\r\n groupElement: getPublicElement($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler(e) {\r\n this._toggleActiveState($(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler(e) {\r\n this._toggleActiveState($(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents() {\r\n var selector = \".\".concat(LIST_GROUP_HEADER_CLASS);\r\n var $element = this.$element();\r\n this._downInkRippleHandler = this._downInkRippleHandler || this.downInkRippleHandler.bind(this);\r\n this._upInkRippleHandler = this._upInkRippleHandler || this.upInkRippleHandler.bind(this);\r\n var downArguments = [$element, \"dxpointerdown\", selector, this._downInkRippleHandler];\r\n var upArguments = [$element, \"dxpointerup dxpointerout\", selector, this._upInkRippleHandler];\r\n eventsEngine.off(...downArguments);\r\n eventsEngine.on(...downArguments);\r\n eventsEngine.off(...upArguments);\r\n eventsEngine.on(...upArguments)\r\n },\r\n _createGroupRenderAction() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean() {\r\n clearTimeout(this._inkRippleTimer);\r\n if (this._$nextButton) {\r\n this._$nextButton.remove();\r\n this._$nextButton = null\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _dispose() {\r\n this._isDataSourceFirstLoadCompleted(false);\r\n clearTimeout(this._holdTimer);\r\n clearTimeout(this._loadNextPageTimer);\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this.callBase()\r\n },\r\n _toggleDisabledState(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton(value) {\r\n var dataController = this._dataController;\r\n var $nextButton = this._getNextButton();\r\n this.$element().toggleClass(LIST_HAS_NEXT_CLASS, value);\r\n if (value && dataController.isLoaded()) {\r\n $nextButton.appendTo(this._itemContainer())\r\n }\r\n if (!value) {\r\n $nextButton.detach()\r\n }\r\n },\r\n _getNextButton() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton() {\r\n var $result = $(\"<div>\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = $(\"<div>\").appendTo($result);\r\n this._createComponent($button, Button, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: isMaterialBased() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh() {\r\n if (!hasWindow()) {\r\n this.callBase()\r\n } else {\r\n var scrollTop = this._scrollView.scrollTop();\r\n this.callBase();\r\n scrollTop && this._scrollView.scrollTo(scrollTop)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"pageLoadMode\":\r\n this._toggleNextButton(args.value);\r\n this._initScrollView();\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initScrollView();\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"items\":\r\n this.callBase(args);\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"showScrollbar\":\r\n case \"bounceEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"useNativeScrolling\":\r\n case \"scrollingEnabled\":\r\n case \"pullRefreshEnabled\":\r\n this._initScrollView();\r\n this._updateLoadingState(true);\r\n break;\r\n case \"nextButtonText\":\r\n case \"onItemSwipe\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"onScroll\":\r\n case \"onPullRefresh\":\r\n case \"onPageLoading\":\r\n this._createScrollViewActions();\r\n break;\r\n case \"grouped\":\r\n case \"collapsibleGroups\":\r\n case \"groupTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"wrapItemText\":\r\n this._toggleWrapItemText(args.value);\r\n break;\r\n case \"onGroupRendered\":\r\n this._createGroupRenderAction();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._scrollView.option(args.name, args.value);\r\n this._scrollView.update();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"rtlEnabled\":\r\n this._initScrollView();\r\n this.callBase(args);\r\n break;\r\n case \"showChevronExpr\":\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"_swipeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _extendActionArgs($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\".concat(LIST_GROUP_CLASS));\r\n var $item = $group.find(\".\".concat(LIST_ITEM_CLASS));\r\n return extend(this.callBase($itemElement), {\r\n itemIndex: {\r\n group: $group.index(),\r\n item: $item.index($itemElement)\r\n }\r\n })\r\n },\r\n expandGroup(groupIndex) {\r\n var deferred = Deferred();\r\n var $group = this._getItemsContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(() => {\r\n deferred.resolveWith(this)\r\n });\r\n return deferred.promise()\r\n },\r\n collapseGroup(groupIndex) {\r\n var deferred = Deferred();\r\n var $group = this._getItemsContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(() => {\r\n deferred.resolveWith(this)\r\n });\r\n return deferred\r\n },\r\n updateDimensions() {\r\n var that = this;\r\n var deferred = Deferred();\r\n if (that._scrollView) {\r\n that._scrollView.update().done(() => {\r\n !that._scrollViewIsFull() && that._updateLoadingState(true);\r\n deferred.resolveWith(that)\r\n })\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reload() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem(itemElement) {\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var item = null === $item || void 0 === $item ? void 0 : $item.get(0);\r\n this._scrollView.scrollToElement(item, {\r\n bottom: getElementMargin(item, \"bottom\")\r\n })\r\n },\r\n _dimensionChanged() {\r\n this.updateDimensions()\r\n }\r\n}).include(DataConverterMixin);\r\nListBase.ItemClass = ListItem;\r\n\r\nfunction getScrollView() {\r\n return _scrollView || ScrollView\r\n}\r\nexport function setScrollView(value) {\r\n _scrollView = value\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/internal/m_toolbar.menu.list.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n ListBase\r\n} from \"../../../ui/list/m_list.base\";\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_CUSTOM_CLASS = \"dx-toolbar-menu-custom\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nvar SCROLLVIEW_CONTENT_CLASS = \"dx-scrollview-content\";\r\nexport default class ToolbarMenuList extends ListBase {\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = \".\".concat(TOOLBAR_MENU_ACTION_CLASS, \":not(.\").concat(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS, \")\")\r\n }\r\n _initMarkup() {\r\n this._renderSections();\r\n super._initMarkup();\r\n this._setMenuRole()\r\n }\r\n _getSections() {\r\n return this._itemContainer().children()\r\n }\r\n _itemElements() {\r\n return this._getSections().children(this._itemSelector())\r\n }\r\n _renderSections() {\r\n var $container = this._itemContainer();\r\n each([\"before\", \"center\", \"after\", \"menu\"], (_, section) => {\r\n var sectionName = \"_$\".concat(section, \"Section\");\r\n if (!this[sectionName]) {\r\n this[sectionName] = $(\"<div>\").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n this[sectionName].appendTo($container)\r\n })\r\n }\r\n _renderItems() {\r\n super._renderItems.apply(this, arguments);\r\n this._updateSections()\r\n }\r\n _setMenuRole() {\r\n var $menuContainer = this.$element().find(\".\".concat(SCROLLVIEW_CONTENT_CLASS));\r\n $menuContainer.attr(\"role\", \"menu\")\r\n }\r\n _updateSections() {\r\n var $sections = this.$element().find(\".\".concat(TOOLBAR_MENU_SECTION_CLASS));\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _a;\r\n var location = null !== (_a = item.location) && void 0 !== _a ? _a : \"menu\";\r\n var $container = this[\"_$\".concat(location, \"Section\")];\r\n var itemElement = super._renderItem(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(TOOLBAR_MENU_CUSTOM_CLASS)\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _getItemTemplateName(args) {\r\n var template = super._getItemTemplateName(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n }\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _itemClickHandler(e, args, config) {\r\n if ($(e.target).closest(\".\".concat(TOOLBAR_MENU_ACTION_CLASS)).length) {\r\n super._itemClickHandler(e, args, config)\r\n }\r\n }\r\n _clean() {\r\n this._getSections().empty();\r\n super._clean()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/internal/m_toolbar.menu.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../../../../ui/popup/ui.popup\";\r\nimport devices from \"../../../../core/devices\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../../../core/templates/child_default_template\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getOuterHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport Button from \"../../../../ui/button\";\r\nimport {\r\n isFluent,\r\n isMaterialBased\r\n} from \"../../../../ui/themes\";\r\nimport Widget from \"../../../ui/widget\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"../m_toolbar.utils\";\r\nimport ToolbarMenuList from \"./m_toolbar.menu.list\";\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_BOUNDARY_VERTICAL_OFFSET = 10;\r\nvar POPUP_VERTICAL_OFFSET = 3;\r\nexport default class DropDownMenu extends Widget {\r\n _supportedKeys() {\r\n var _a;\r\n var extension = {};\r\n if (!this.option(\"opened\") || !(null === (_a = this._list) || void 0 === _a ? void 0 : _a.option(\"focusedElement\"))) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(super._supportedKeys(), extension, {\r\n tab() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return _extends(_extends({}, super._getDefaultOptions()), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n onButtonClick: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n onItemRendered: null,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n to: 0\r\n }\r\n }\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\r\n options: {\r\n useInkRipple: true,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }])\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n }\r\n _initItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n }\r\n _initButtonClickAction() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n }\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new ChildDefaultTemplate(\"content\")\r\n });\r\n super._initTemplates()\r\n }\r\n _initMarkup() {\r\n this._renderButton();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this.setAria({\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n }\r\n _renderContentImpl() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n }\r\n _clean() {\r\n this._cleanFocusState();\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove();\r\n delete this._list;\r\n delete this._popup\r\n }\r\n _renderButton() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n this._button = this._createComponent($button, Button, {\r\n icon: \"overflow\",\r\n template: \"content\",\r\n stylingMode: isFluent() ? \"text\" : \"contained\",\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n onClick: e => {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }\r\n })\r\n }\r\n _toggleActiveState($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n }\r\n _toggleMenuVisibility(opened) {\r\n var _a, _b;\r\n var state = null !== opened && void 0 !== opened ? opened : !(null === (_a = this._popup) || void 0 === _a ? void 0 : _a.option(\"visible\"));\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n null === (_b = this._popup) || void 0 === _b ? void 0 : _b.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n }\r\n _renderPopup() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"<div>\").appendTo(this.$element());\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n container: container,\r\n animation: animation\r\n } = this.option();\r\n this._popup = this._createComponent(this._$popup, \"dxPopup\", {\r\n onInitialized(_ref) {\r\n var {\r\n component: component\r\n } = _ref;\r\n component.$wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).addClass(DROP_DOWN_MENU_POPUP_CLASS)\r\n },\r\n deferRendering: false,\r\n preventScrollEvents: false,\r\n contentTemplate: contentElement => this._renderList(contentElement),\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => this._getMaxHeight(),\r\n position: {\r\n my: \"top \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n at: \"bottom \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n collision: \"fit flip\",\r\n offset: {\r\n v: POPUP_VERTICAL_OFFSET\r\n },\r\n of: this.$element()\r\n },\r\n animation: animation,\r\n onOptionChanged: _ref2 => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n if (\"visible\" === name) {\r\n this.option(\"opened\", value)\r\n }\r\n },\r\n container: container,\r\n autoResizeEnabled: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n hideOnParentScroll: true,\r\n shading: false,\r\n dragEnabled: false,\r\n showTitle: false,\r\n fullScreen: false,\r\n _fixWrapperPosition: true\r\n })\r\n }\r\n _getMaxHeight() {\r\n var $element = this.$element();\r\n var offsetTop = $element.offset().top;\r\n var windowHeight = getOuterHeight(getWindow());\r\n var maxHeight = Math.max(offsetTop, windowHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(windowHeight, maxHeight - POPUP_VERTICAL_OFFSET - POPUP_BOUNDARY_VERTICAL_OFFSET)\r\n }\r\n _closeOutsideDropDownHandler(e) {\r\n var isOutsideClick = !$(e.target).closest(this.$element()).length;\r\n return isOutsideClick\r\n }\r\n _renderList(contentElement) {\r\n var $content = $(contentElement);\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, ToolbarMenuList, {\r\n dataSource: this._getListDataSource(),\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: e => {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n },\r\n tabIndex: -1,\r\n focusStateEnabled: false,\r\n activeStateEnabled: true,\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n })\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n var _a;\r\n null === (_a = this._list) || void 0 === _a ? void 0 : _a._itemOptionChanged(item, property, value);\r\n toggleItemFocusableElementTabIndex(this._list, item)\r\n }\r\n _getListDataSource() {\r\n var _a;\r\n return null !== (_a = this.option(\"dataSource\")) && void 0 !== _a ? _a : this.option(\"items\")\r\n }\r\n _setListDataSource() {\r\n var _a;\r\n null === (_a = this._list) || void 0 === _a ? void 0 : _a.option(\"dataSource\", this._getListDataSource());\r\n delete this._deferRendering\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat([this._list])\r\n }\r\n _toggleVisibility(visible) {\r\n var _a;\r\n super._toggleVisibility(visible);\r\n null === (_a = this._button) || void 0 === _a ? void 0 : _a.option(\"visible\", visible)\r\n }\r\n _optionChanged(args) {\r\n var _a, _b, _c;\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (!this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n null === (_a = this._list) || void 0 === _a ? void 0 : _a.option(name, this._getTemplate(value));\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n null === (_b = this._list) || void 0 === _b ? void 0 : _b.option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"onItemRendered\":\r\n null === (_c = this._list) || void 0 === _c ? void 0 : _c.option(name, value);\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(name, value);\r\n break;\r\n case \"disabled\":\r\n if (this._list) {\r\n this._updateFocusableItemsTabIndex()\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this.option(\"items\").forEach(item => toggleItemFocusableElementTabIndex(this._list, item))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/strategy/m_toolbar.singleline.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n deferRender,\r\n grep\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport DropDownMenu from \"../internal/m_toolbar.menu\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_AUTO_HIDE_ITEM_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_HIDDEN_ITEM = \"dx-toolbar-item-invisible\";\r\nexport class SingleLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {\r\n deferRender(() => {\r\n this._renderOverflowMenu();\r\n this._renderMenuItems()\r\n })\r\n }\r\n _renderOverflowMenu() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n var $menu = $(\"<div>\").appendTo(this._overflowMenuContainer());\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n var menuItemTemplate = this._toolbar._getTemplateByOption(\"menuItemTemplate\");\r\n this._menu = this._toolbar._createComponent($menu, DropDownMenu, {\r\n disabled: this._toolbar.option(\"disabled\"),\r\n itemTemplate: () => menuItemTemplate,\r\n onItemClick: e => {\r\n itemClickAction(e)\r\n },\r\n container: this._toolbar.option(\"menuContainer\"),\r\n onOptionChanged: _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"opened\" === name) {\r\n this._toolbar.option(\"overflowMenuVisible\", value)\r\n }\r\n if (\"items\" === name) {\r\n this._updateMenuVisibility(value)\r\n }\r\n }\r\n })\r\n }\r\n renderMenuItems() {\r\n if (!this._menu) {\r\n this._renderOverflowMenu()\r\n }\r\n this._menu && this._menu.option(\"items\", this._getMenuItems());\r\n if (this._menu && !this._menu.option(\"items\").length) {\r\n this._menu.option(\"opened\", false)\r\n }\r\n }\r\n _renderMenuButtonContainer() {\r\n this._$overflowMenuContainer = $(\"<div>\").appendTo(this._toolbar._$afterSection).addClass(TOOLBAR_BUTTON_CLASS).addClass(TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS)\r\n }\r\n _overflowMenuContainer() {\r\n return this._$overflowMenuContainer\r\n }\r\n _updateMenuVisibility(menuItems) {\r\n var items = null !== menuItems && void 0 !== menuItems ? menuItems : this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n }\r\n _toggleMenuVisibility(value) {\r\n if (!this._overflowMenuContainer()) {\r\n return\r\n }\r\n this._overflowMenuContainer().toggleClass(INVISIBLE_STATE_CLASS, !value)\r\n }\r\n _renderMenuItems() {\r\n deferRender(() => {\r\n this.renderMenuItems()\r\n })\r\n }\r\n _dimensionChanged() {\r\n this.renderMenuItems()\r\n }\r\n _getToolbarItems() {\r\n var _a;\r\n return grep(null !== (_a = this._toolbar.option(\"items\")) && void 0 !== _a ? _a : [], item => !this._toolbar._isMenuItem(item))\r\n }\r\n _getHiddenItems() {\r\n return this._toolbar._itemContainer().children(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS, \".\").concat(TOOLBAR_HIDDEN_ITEM)).not(\".\".concat(INVISIBLE_STATE_CLASS))\r\n }\r\n _getMenuItems() {\r\n var _a, _b;\r\n var menuItems = grep(null !== (_a = this._toolbar.option(\"items\")) && void 0 !== _a ? _a : [], item => this._toolbar._isMenuItem(item));\r\n var $hiddenItems = this._getHiddenItems();\r\n this._restoreItems = null !== (_b = this._restoreItems) && void 0 !== _b ? _b : [];\r\n var overflowItems = [].slice.call($hiddenItems).map(hiddenItem => {\r\n var itemData = this._toolbar._getItemData(hiddenItem);\r\n var $itemContainer = $(hiddenItem);\r\n var $itemMarkup = $itemContainer.children();\r\n return extend({\r\n menuItemTemplate: () => {\r\n this._restoreItems.push({\r\n container: $itemContainer,\r\n item: $itemMarkup\r\n });\r\n var $container = $(\"<div>\").addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n return $container.append($itemMarkup)\r\n }\r\n }, itemData)\r\n });\r\n return [...overflowItems, ...menuItems]\r\n }\r\n _hasVisibleMenuItems(items) {\r\n var menuItems = null !== items && void 0 !== items ? items : this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = compileGetter(\"visible\");\r\n var overflowGetter = compileGetter(\"locateInMenu\");\r\n each(menuItems, (index, item) => {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n });\r\n return result\r\n }\r\n _arrangeItems() {\r\n var _a;\r\n this._toolbar._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n each(null !== (_a = this._restoreItems) && void 0 !== _a ? _a : [], (_, obj) => {\r\n $(obj.container).append(obj.item)\r\n });\r\n this._restoreItems = [];\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n this._hideOverflowItems(elementWidth);\r\n return elementWidth\r\n }\r\n _hideOverflowItems(width) {\r\n var overflowItems = this._toolbar.$element().find(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS));\r\n if (!overflowItems.length) {\r\n return\r\n }\r\n var elementWidth = null !== width && void 0 !== width ? width : getWidth(this._toolbar.$element());\r\n $(overflowItems).removeClass(TOOLBAR_HIDDEN_ITEM);\r\n var itemsWidth = this._getItemsWidth();\r\n while (overflowItems.length && elementWidth < itemsWidth) {\r\n var $item = overflowItems.eq(-1);\r\n $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n itemsWidth = this._getItemsWidth();\r\n overflowItems.splice(-1, 1)\r\n }\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsSize(\"width\", [this._toolbar._$beforeSection, this._toolbar._$centerSection, this._toolbar._$afterSection])\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n var _a;\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n if (this._toolbar._isMenuItem(item)) {\r\n null === (_a = this._menu) || void 0 === _a ? void 0 : _a._itemOptionChanged(item, property, value);\r\n return\r\n }\r\n }\r\n this.renderMenuItems()\r\n }\r\n _renderItem(item, itemElement) {\r\n if (\"auto\" === item.locateInMenu) {\r\n itemElement.addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS)\r\n }\r\n }\r\n _optionChanged(name, value) {\r\n var _a, _b, _c, _d, _e;\r\n switch (name) {\r\n case \"disabled\":\r\n null === (_a = this._menu) || void 0 === _a ? void 0 : _a.option(name, value);\r\n break;\r\n case \"overflowMenuVisible\":\r\n null === (_b = this._menu) || void 0 === _b ? void 0 : _b.option(\"opened\", value);\r\n break;\r\n case \"onItemClick\":\r\n null === (_c = this._menu) || void 0 === _c ? void 0 : _c.option(name, value);\r\n break;\r\n case \"menuContainer\":\r\n null === (_d = this._menu) || void 0 === _d ? void 0 : _d.option(\"container\", value);\r\n break;\r\n case \"menuItemTemplate\":\r\n null === (_e = this._menu) || void 0 === _e ? void 0 : _e.option(\"itemTemplate\", value)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/m_toolbar.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport ToolbarBase from \"./m_toolbar.base\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./m_toolbar.utils\";\r\nimport {\r\n MultiLineStrategy\r\n} from \"./strategy/m_toolbar.multiline\";\r\nimport {\r\n SingleLineStrategy\r\n} from \"./strategy/m_toolbar.singleline\";\r\nvar TOOLBAR_MULTILINE_CLASS = \"dx-toolbar-multiline\";\r\nvar TOOLBAR_AUTO_HIDE_TEXT_CLASS = \"dx-toolbar-text-auto-hide\";\r\nclass Toolbar extends ToolbarBase {\r\n _getDefaultOptions() {\r\n return _extends(_extends({}, super._getDefaultOptions()), {\r\n menuItemTemplate: \"menuItem\",\r\n menuContainer: void 0,\r\n overflowMenuVisible: false,\r\n multiline: false\r\n })\r\n }\r\n _isMultiline() {\r\n return this.option(\"multiline\")\r\n }\r\n _dimensionChanged(dimension) {\r\n if (\"height\" === dimension) {\r\n return\r\n }\r\n super._dimensionChanged();\r\n this._layoutStrategy._dimensionChanged()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._updateFocusableItemsTabIndex();\r\n this._layoutStrategy._initMarkup()\r\n }\r\n _renderToolbar() {\r\n super._renderToolbar();\r\n this._renderLayoutStrategy()\r\n }\r\n _itemContainer() {\r\n if (this._isMultiline()) {\r\n return this._$toolbarItemsContainer\r\n }\r\n return super._itemContainer()\r\n }\r\n _renderLayoutStrategy() {\r\n this.$element().toggleClass(TOOLBAR_MULTILINE_CLASS, this._isMultiline());\r\n this._layoutStrategy = this._isMultiline() ? new MultiLineStrategy(this) : new SingleLineStrategy(this)\r\n }\r\n _renderSections() {\r\n if (this._isMultiline()) {\r\n return\r\n }\r\n return super._renderSections()\r\n }\r\n _postProcessRenderItems() {\r\n this._layoutStrategy._hideOverflowItems();\r\n this._layoutStrategy._updateMenuVisibility();\r\n super._postProcessRenderItems();\r\n this._layoutStrategy._renderMenuItems()\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var itemElement = super._renderItem(index, item, itemContainer, $after);\r\n this._layoutStrategy._renderItem(item, itemElement);\r\n var {\r\n widget: widget,\r\n showText: showText\r\n } = item;\r\n if (\"dxButton\" === widget && \"inMenu\" === showText) {\r\n itemElement.toggleClass(TOOLBAR_AUTO_HIDE_TEXT_CLASS)\r\n }\r\n return itemElement\r\n }\r\n _getItemsWidth() {\r\n return this._layoutStrategy._getItemsWidth()\r\n }\r\n _getMenuItems() {\r\n return this._layoutStrategy._getMenuItems()\r\n }\r\n _getToolbarItems() {\r\n return this._layoutStrategy._getToolbarItems()\r\n }\r\n _arrangeItems() {\r\n if (this.$element().is(\":hidden\")) {\r\n return\r\n }\r\n var elementWidth = this._layoutStrategy._arrangeItems();\r\n if (!this._isMultiline()) {\r\n super._arrangeItems(elementWidth)\r\n }\r\n }\r\n _itemOptionChanged(item, property, value, prevValue) {\r\n if (!this._isMenuItem(item)) {\r\n super._itemOptionChanged(item, property, value, prevValue)\r\n }\r\n this._layoutStrategy._itemOptionChanged(item, property, value);\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n toggleItemFocusableElementTabIndex(this, item)\r\n }\r\n if (\"location\" === property) {\r\n this.repaint()\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this._getToolbarItems().forEach(item => toggleItemFocusableElementTabIndex(this, item))\r\n }\r\n _isMenuItem(itemData) {\r\n return \"menu\" === itemData.location || \"always\" === itemData.locateInMenu\r\n }\r\n _isToolbarItem(itemData) {\r\n return void 0 === itemData.location || \"never\" === itemData.locateInMenu\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n this._layoutStrategy._optionChanged(name, value);\r\n switch (name) {\r\n case \"menuContainer\":\r\n case \"menuItemTemplate\":\r\n case \"overflowMenuVisible\":\r\n break;\r\n case \"multiline\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n super._optionChanged(args);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n updateDimensions() {\r\n this._dimensionChanged()\r\n }\r\n}\r\nregisterComponent(\"dxToolbar\", Toolbar);\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/header_panel/m_header_panel.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n getPathParts\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Toolbar from \"../../../../ui/toolbar\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar DEFAULT_TOOLBAR_ITEM_NAMES = [\"addRowButton\", \"applyFilterButton\", \"columnChooserButton\", \"exportButton\", \"groupPanel\", \"revertButton\", \"saveButton\", \"searchPanel\"];\r\nexport class HeaderPanel extends ColumnsView {\r\n init() {\r\n super.init();\r\n this._editingController = this.getController(\"editing\");\r\n this._headerFilterController = this.getController(\"headerFilter\");\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _getToolbarItems() {\r\n return []\r\n }\r\n _getButtonContainer() {\r\n return $(\"<div>\").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n }\r\n _getToolbarButtonClass(specificClass) {\r\n var secondClass = specificClass ? \" \".concat(specificClass) : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n }\r\n _getToolbarOptions() {\r\n var userToolbarOptions = this.option(\"toolbar\");\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n visible: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.visible,\r\n disabled: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.disabled,\r\n onItemRendered(e) {\r\n var itemRenderedCallback = e.itemData.onItemRendered;\r\n if (itemRenderedCallback) {\r\n itemRenderedCallback(e)\r\n }\r\n }\r\n }\r\n };\r\n var userItems = null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.items;\r\n options.toolbarOptions.items = this._normalizeToolbarItems(options.toolbarOptions.items, userItems);\r\n this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !isDefined(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(null === toolbarItems || void 0 === toolbarItems ? void 0 : toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n }\r\n _normalizeToolbarItems(defaultItems, userItems) {\r\n defaultItems.forEach(button => {\r\n if (!DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n throw new Error(\"Default toolbar item '\".concat(button.name, \"' is not added to DEFAULT_TOOLBAR_ITEM_NAMES\"))\r\n }\r\n });\r\n var defaultProps = {\r\n location: \"after\"\r\n };\r\n var isArray = Array.isArray(userItems);\r\n if (!isDefined(userItems)) {\r\n return defaultItems\r\n }\r\n if (!isArray) {\r\n userItems = [userItems]\r\n }\r\n var defaultButtonsByNames = {};\r\n defaultItems.forEach(button => {\r\n defaultButtonsByNames[button.name] = button\r\n });\r\n var normalizedItems = userItems.map(button => {\r\n if (isString(button)) {\r\n button = {\r\n name: button\r\n }\r\n }\r\n if (isDefined(button.name)) {\r\n if (isDefined(defaultButtonsByNames[button.name])) {\r\n button = extend(true, {}, defaultButtonsByNames[button.name], button)\r\n } else if (DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n button = _extends(_extends({}, button), {\r\n visible: false\r\n })\r\n }\r\n }\r\n return extend(true, {}, defaultProps, button)\r\n });\r\n return isArray ? normalizedItems : normalizedItems[0]\r\n }\r\n _renderCore() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = messageLocalization.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = $(\"<div>\").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, Toolbar, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n }\r\n _columnOptionChanged() {}\r\n _handleDataChanged() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n }\r\n _isDisabledDefinedByUser(name) {\r\n var _a;\r\n var userItems = null === (_a = this.option(\"toolbar\")) || void 0 === _a ? void 0 : _a.items;\r\n var userItem = null === userItems || void 0 === userItems ? void 0 : userItems.find(item => (null === item || void 0 === item ? void 0 : item.name) === name);\r\n return isDefined(null === userItem || void 0 === userItem ? void 0 : userItem.disabled)\r\n }\r\n render() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n super.render.apply(this, arguments)\r\n }\r\n setToolbarItemDisabled(name, disabled) {\r\n var _a;\r\n var toolbar = this._toolbar;\r\n var isDefinedByUser = this._isDisabledDefinedByUser(name);\r\n if (!toolbar || isDefinedByUser) {\r\n return\r\n }\r\n var items = null !== (_a = toolbar.option(\"items\")) && void 0 !== _a ? _a : [];\r\n var itemIndex = items.findIndex(item => item.name === name);\r\n if (itemIndex < 0) {\r\n return\r\n }\r\n var item = toolbar.option(\"items[\".concat(itemIndex, \"]\"));\r\n toolbar.option(\"items[\".concat(itemIndex, \"].disabled\"), disabled);\r\n if (item.options) {\r\n toolbar.option(\"items[\".concat(itemIndex, \"].options.disabled\"), disabled)\r\n }\r\n }\r\n updateToolbarDimensions() {\r\n var _a;\r\n null === (_a = this._toolbar) || void 0 === _a ? void 0 : _a.updateDimensions()\r\n }\r\n getHeaderPanel() {\r\n return this.element()\r\n }\r\n getHeight() {\r\n return this.getElementHeight()\r\n }\r\n optionChanged(args) {\r\n var _a, _b, _c;\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n if (\"toolbar\" === args.name) {\r\n var parts = getPathParts(args.fullName);\r\n var optionName = args.fullName.replace(/^toolbar\\./, \"\");\r\n if (1 === parts.length) {\r\n this._invalidate()\r\n } else if (\"items\" === parts[1]) {\r\n if (2 === parts.length) {\r\n var toolbarOptions = this._getToolbarOptions();\r\n null === (_a = this._toolbar) || void 0 === _a ? void 0 : _a.option(\"items\", toolbarOptions.items)\r\n } else if (3 === parts.length) {\r\n var normalizedItem = this._normalizeToolbarItems(this._getToolbarItems(), args.value);\r\n null === (_b = this._toolbar) || void 0 === _b ? void 0 : _b.option(optionName, normalizedItem)\r\n } else if (parts.length >= 4) {\r\n null === (_c = this._toolbar) || void 0 === _c ? void 0 : _c.option(optionName, args.value)\r\n }\r\n } else {\r\n this._invalidate()\r\n }\r\n args.handled = true\r\n }\r\n super.optionChanged(args)\r\n }\r\n isVisible() {\r\n return !!(this._toolbarOptions && this._toolbarOptions.visible)\r\n }\r\n allowDragging() {}\r\n hasGroupedColumns() {}\r\n}\r\nvar resizing = Base => class extends Base {\r\n _updateDimensionsCore() {\r\n super._updateDimensionsCore.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n};\r\nexport var headerPanelModule = {\r\n defaultOptions: () => ({}),\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: resizing\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/header_panel.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n headerPanelModule\r\n} from \"../../../grids/grid_core/header_panel/m_header_panel\";\r\nimport gridCore from \"../m_core\";\r\nexport var HeaderPanel = headerPanelModule.views.headerPanel;\r\ngridCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_widget_base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./module_not_extended/column_headers\";\r\nimport \"./m_columns_controller\";\r\nimport \"./m_data_controller\";\r\nimport \"./module_not_extended/sorting\";\r\nimport \"./module_not_extended/rows\";\r\nimport \"./module_not_extended/context_menu\";\r\nimport \"./module_not_extended/error_handling\";\r\nimport \"./module_not_extended/grid_view\";\r\nimport \"./module_not_extended/header_panel\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../../core/utils/console\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nimport gridCore from \"./m_core\";\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar DATAGRID_DEPRECATED_TEMPLATE_WARNING = \"Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead.\";\r\ngridCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions() {\r\n var result = this.callBase();\r\n each(gridCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n },\r\n rowTemplate: {\r\n since: \"21.2\",\r\n message: 'Use the \"dataRowTemplate\" option instead'\r\n },\r\n \"columnChooser.allowSearch\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.enabled\" option instead'\r\n },\r\n \"columnChooser.searchTimeout\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.timeout\" option instead'\r\n }\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n },\r\n selection: {\r\n showCheckBoxesMode: \"always\"\r\n }\r\n }\r\n }, {\r\n device: () => browser.webkit,\r\n options: {\r\n loadingTimeout: 30,\r\n loadPanel: {\r\n animation: {\r\n show: {\r\n easing: \"cubic-bezier(1, 0, 1, 0)\",\r\n duration: 500,\r\n from: {\r\n opacity: 0\r\n },\r\n to: {\r\n opacity: 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: device => \"desktop\" !== device.deviceType,\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n gridCoreUtils.logHeaderFilterDeprecatedWarningIfNeed(this);\r\n gridCore.processModules(this, gridCore);\r\n gridCore.callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged(args) {\r\n gridCore.callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent() {\r\n var that = this;\r\n deferRender(() => {\r\n that._renderContentImpl()\r\n })\r\n },\r\n _getTemplate(templateName) {\r\n var template = templateName;\r\n if (isString(template) && template.startsWith(\"#\")) {\r\n template = $(templateName);\r\n logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate() {\r\n gridCore.callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController(name) {\r\n return this._controllers[name]\r\n },\r\n getView(name) {\r\n return this._views[name]\r\n },\r\n focus(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = gridCore.registerModule.bind(gridCore);\r\nregisterComponent(\"dxDataGrid\", DataGrid);\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fromPromise\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n sessionStorage\r\n} from \"../../../../core/utils/storage\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }\r\n each(state, (key, value) => {\r\n if (isPlainObject(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n })\r\n};\r\nvar getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? sessionStorage() : getWindow().localStorage;\r\n if (!storage) {\r\n throw new Error(\"E1007\")\r\n }\r\n return storage\r\n};\r\nvar getUniqueStorageKey = function(options) {\r\n return isDefined(options.storageKey) ? options.storageKey : \"storage\"\r\n};\r\nexport class StateStoringController extends modules.ViewController {\r\n getDataController() {\r\n return this.getController(\"data\")\r\n }\r\n getExportController() {\r\n return this.getController(\"export\")\r\n }\r\n getColumnsController() {\r\n return this.getController(\"columns\")\r\n }\r\n init() {\r\n this._state = {};\r\n this._isLoaded = false;\r\n this._isLoading = false;\r\n this._windowUnloadHandler = () => {\r\n if (void 0 !== this._savingTimeoutID) {\r\n this._saveState(this.state())\r\n }\r\n };\r\n eventsEngine.on(getWindow(), \"visibilitychange\", this._windowUnloadHandler);\r\n return this\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (this.isEnabled() && !this.isLoading()) {\r\n this.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n dispose() {\r\n clearTimeout(this._savingTimeoutID);\r\n eventsEngine.off(getWindow(), \"visibilitychange\", this._windowUnloadHandler)\r\n }\r\n _loadState() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n errors.log(\"W1022\", \"State storing\", e.message)\r\n }\r\n }\r\n _saveState(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n }\r\n publicMethods() {\r\n return [\"state\"]\r\n }\r\n isEnabled() {\r\n return this.option(\"stateStoring.enabled\")\r\n }\r\n isLoaded() {\r\n return this._isLoaded\r\n }\r\n isLoading() {\r\n return this._isLoading\r\n }\r\n load() {\r\n this._isLoading = true;\r\n var loadResult = fromPromise(this._loadState());\r\n loadResult.always(() => {\r\n this._isLoaded = true;\r\n this._isLoading = false\r\n }).done(state => {\r\n if (null !== state && !isEmptyObject(state)) {\r\n this.state(state)\r\n }\r\n });\r\n return loadResult\r\n }\r\n state(state) {\r\n if (!arguments.length) {\r\n return extend(true, {}, this._state)\r\n }\r\n this._state = extend({}, state);\r\n parseDates(this._state)\r\n }\r\n save() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout(() => {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }, that.option(\"stateStoring.savingTimeout\"))\r\n }\r\n}\r\nexport default {\r\n StateStoringController: StateStoringController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n StateStoringController\r\n} from \"./m_state_storing_core\";\r\nvar getDataState = that => {\r\n var pagerView = that.getView(\"pagerView\");\r\n var dataController = that.getController(\"data\");\r\n var state = {\r\n allowedPageSizes: pagerView ? pagerView.getPageSizes() : void 0,\r\n filterPanel: {\r\n filterEnabled: that.option(\"filterPanel.filterEnabled\")\r\n },\r\n filterValue: that.option(\"filterValue\"),\r\n focusedRowKey: that.option(\"focusedRowEnabled\") ? that.option(\"focusedRowKey\") : void 0\r\n };\r\n return extend(state, dataController.getUserState())\r\n};\r\nvar processLoadState = that => {\r\n var columnsController = that.getController(\"columns\");\r\n var selectionController = that.getController(\"selection\");\r\n var exportController = that.getController(\"export\");\r\n var dataController = that.getController(\"data\");\r\n if (columnsController) {\r\n columnsController.columnsChanged.add(() => {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n })\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add(e => {\r\n that.updateState({\r\n selectedRowKeys: e.selectedRowKeys,\r\n selectionFilter: e.selectionFilter\r\n })\r\n })\r\n }\r\n if (dataController) {\r\n that._initialPageSize = that.option(\"paging.pageSize\");\r\n that._initialFilterValue = that.option(\"filterValue\");\r\n dataController.changed.add(() => {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n })\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add(() => {\r\n that.updateState({\r\n exportSelectionOnly: exportController.selectionOnly()\r\n })\r\n })\r\n }\r\n};\r\nvar DEFAULT_FILTER_VALUE = null;\r\nvar getFilterValue = (that, state) => {\r\n var filterSyncController = that.getController(\"filterSync\");\r\n var columnsController = that.getController(\"columns\");\r\n var hasFilterState = state.columns || void 0 !== state.filterValue;\r\n if (filterSyncController) {\r\n if (hasFilterState) {\r\n return state.filterValue || filterSyncController.getFilterValueFromColumns(state.columns)\r\n }\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nvar rowsView = Base => class extends Base {\r\n init() {\r\n super.init();\r\n this._dataController.stateLoaded.add(() => {\r\n if (this._dataController.isLoaded() && !this._dataController.getDataSource()) {\r\n this.setLoading(false);\r\n this.renderNoDataText();\r\n var columnHeadersView = this.component.getView(\"columnHeadersView\");\r\n columnHeadersView && columnHeadersView.render();\r\n this.component._fireContentReadyAction()\r\n }\r\n })\r\n }\r\n};\r\nvar stateStoring = Base => class extends Base {\r\n init() {\r\n super.init.apply(this, arguments);\r\n processLoadState(this);\r\n return this\r\n }\r\n isLoading() {\r\n return super.isLoading() || this.getDataController().isStateLoading()\r\n }\r\n state(state) {\r\n var result = super.state.apply(this, arguments);\r\n if (void 0 !== state) {\r\n this.applyState(extend(true, {}, state))\r\n }\r\n return result\r\n }\r\n updateState(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = extend({}, oldState, state);\r\n var oldStateHash = getKeyHash(oldState);\r\n var newStateHash = getKeyHash(newState);\r\n if (!equalByValue(oldStateHash, newStateHash)) {\r\n state = extend(true, {}, state);\r\n extend(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n extend(this._state, state)\r\n }\r\n }\r\n applyState(state) {\r\n var _a;\r\n var {\r\n allowedPageSizes: allowedPageSizes\r\n } = state;\r\n var {\r\n searchText: searchText\r\n } = state;\r\n var {\r\n selectedRowKeys: selectedRowKeys\r\n } = state;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = state;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === this.option(\"pager.visible\") && this.option(\"pager.showPageSizeSelector\");\r\n var hasHeight = null === (_a = this.getView(\"rowsView\")) || void 0 === _a ? void 0 : _a.hasHeight();\r\n this.component.beginUpdate();\r\n if (this.getColumnsController()) {\r\n this.getColumnsController().setUserState(state.columns)\r\n }\r\n if (this.getExportController()) {\r\n this.getExportController().selectionOnly(state.exportSelectionOnly)\r\n }\r\n if (!this.option(\"selection.deferred\")) {\r\n this.option(\"selectedRowKeys\", selectedRowKeys || [])\r\n }\r\n this.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === this.option(\"pager.allowedPageSizes\")) {\r\n this.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey || null)\r\n }\r\n this.component.endUpdate();\r\n this.option(\"searchPanel.text\", searchText || \"\");\r\n this.option(\"filterValue\", getFilterValue(this, state));\r\n this.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n this.option(\"paging.pageIndex\", (!isVirtualScrollingMode || hasHeight) && state.pageIndex || 0);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n this.getDataController() && this.getDataController().reset()\r\n }\r\n};\r\nvar columns = Base => class extends Base {\r\n _shouldReturnVisibleColumns() {\r\n var result = super._shouldReturnVisibleColumns.apply(this, arguments);\r\n return result && (!this._stateStoringController.isEnabled() || this._stateStoringController.isLoaded())\r\n }\r\n};\r\nvar data = Base => class extends Base {\r\n dispose() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n super.dispose()\r\n }\r\n callbackNames() {\r\n return super.callbackNames().concat([\"stateLoaded\"])\r\n }\r\n _refreshDataSource() {\r\n if (this._stateStoringController.isEnabled() && !this._stateStoringController.isLoaded()) {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n var deferred = new Deferred;\r\n this._restoreStateTimeoutID = setTimeout(() => {\r\n this._stateStoringController.load().always(() => {\r\n this._restoreStateTimeoutID = null\r\n }).done(() => {\r\n super._refreshDataSource();\r\n this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(error => {\r\n this.stateLoaded.fire();\r\n this._handleLoadError(error || \"Unknown error\");\r\n deferred.reject()\r\n })\r\n });\r\n return deferred.promise()\r\n }\r\n if (!this.isStateLoading()) {\r\n super._refreshDataSource()\r\n }\r\n }\r\n isLoading() {\r\n return super.isLoading() || this._stateStoringController.isLoading()\r\n }\r\n isStateLoading() {\r\n return isDefined(this._restoreStateTimeoutID)\r\n }\r\n isLoaded() {\r\n return super.isLoaded() && !this.isStateLoading()\r\n }\r\n};\r\nvar selection = Base => class extends Base {\r\n _fireSelectionChanged(options) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (this._stateStoringController.isLoading() && isDeferredSelection) {\r\n return\r\n }\r\n super._fireSelectionChanged.apply(this, arguments)\r\n }\r\n};\r\nexport var stateStoringModule = {\r\n defaultOptions: () => ({\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n }\r\n }),\r\n controllers: {\r\n stateStoring: StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: rowsView\r\n },\r\n controllers: {\r\n stateStoring: stateStoring,\r\n columns: columns,\r\n data: data,\r\n selection: selection\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/state_storing.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n stateStoringModule\r\n} from \"../../../grids/grid_core/state_storing/m_state_storing\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"stateStoring\", stateStoringModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/selection/m_selection.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n touch\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../../events/hold\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport Selection from \"../../../ui/selection/m_selection\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_SELECTION_CLASS = \"dx-selection\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar CHECKBOXES_HIDDEN_CLASS = \"dx-select-checkboxes-hidden\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar SHOW_CHECKBOXES_MODE = \"selection.showCheckBoxesMode\";\r\nvar SELECTION_MODE = \"selection.mode\";\r\nvar processLongTap = function(that, dxEvent) {\r\n var rowsView = that.getView(\"rowsView\");\r\n var selectionController = that.getController(\"selection\");\r\n var $row = $(dxEvent.target).closest(\".\".concat(DATA_ROW_CLASS));\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n if (selectionController.isSelectionWithCheckboxes()) {\r\n selectionController.stopSelectionWithCheckboxes()\r\n } else {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n } else {\r\n if (\"onClick\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (\"always\" !== that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.changeItemSelection(rowIndex, {\r\n control: true\r\n })\r\n }\r\n }\r\n};\r\nvar isSeveralRowsSelected = function(that, selectionFilter) {\r\n var keyIndex = 0;\r\n var store = that._dataController.store();\r\n var key = store && store.key();\r\n var isComplexKey = Array.isArray(key);\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (isComplexKey && Array.isArray(selectionFilter[0]) && \"and\" === selectionFilter[1]) {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i])) {\r\n if (selectionFilter[i][0] !== key[keyIndex] || \"=\" !== selectionFilter[i][1]) {\r\n return true\r\n }\r\n keyIndex++\r\n }\r\n }\r\n return false\r\n }\r\n return key !== selectionFilter[0]\r\n};\r\nvar selectionCellTemplate = (container, options) => {\r\n var {\r\n component: component\r\n } = options;\r\n var rowsView = component.getView(\"rowsView\");\r\n if (component.option(\"renderAsync\") && !component.option(\"selection.deferred\")) {\r\n options.value = component.isRowSelected(options.row.key)\r\n }\r\n rowsView.renderSelectCheckBoxContainer($(container), options)\r\n};\r\nvar selectionHeaderTemplate = (container, options) => {\r\n var {\r\n column: column\r\n } = options;\r\n var $cellElement = $(container);\r\n var columnHeadersView = options.component.getView(\"columnHeadersView\");\r\n $cellElement.addClass(EDITOR_CELL_CLASS);\r\n columnHeadersView._renderSelectAllCheckBox($cellElement, column);\r\n columnHeadersView._attachSelectAllCheckBoxClickEvent($cellElement)\r\n};\r\nexport class SelectionController extends modules.Controller {\r\n init() {\r\n var _a;\r\n var {\r\n deferred: deferred,\r\n selectAllMode: selectAllMode,\r\n mode: mode\r\n } = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n if (\"infinite\" === this.option(\"scrolling.mode\") && !deferred && \"multiple\" === mode && \"allPages\" === selectAllMode) {\r\n errors.log(\"W1018\")\r\n }\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._stateStoringController = this.getController(\"stateStoring\");\r\n this._selectionMode = mode;\r\n this._isSelectionWithCheckboxes = false;\r\n this._selection = this._createSelection();\r\n this._updateSelectColumn();\r\n this.createAction(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n if (!this._dataPushedHandler) {\r\n this._dataPushedHandler = this._handleDataPushed.bind(this);\r\n this._dataController.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n _handleDataPushed(changes) {\r\n this._deselectRemovedOnPush(changes);\r\n this._updateSelectedOnPush(changes)\r\n }\r\n _deselectRemovedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n if (isDeferredSelection) {\r\n var selectedKeys = this._dataController.items().filter(item => item.isSelected).map(item => item.key);\r\n removedKeys = removedKeys.filter(key => selectedKeys.find(selectedKey => equalByValue(selectedKey, key)))\r\n }\r\n removedKeys.length && this.deselectRows(removedKeys)\r\n }\r\n _updateSelectedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (isDeferredSelection) {\r\n return\r\n }\r\n var updateChanges = changes.filter(change => \"update\" === change.type);\r\n var data = this.getSelectedRowsData();\r\n applyBatch({\r\n keyInfo: this._selection.options,\r\n data: data,\r\n changes: updateChanges\r\n })\r\n }\r\n _getSelectionConfig() {\r\n var _a;\r\n var dataController = this._dataController;\r\n var columnsController = this._columnsController;\r\n var selectionOptions = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n var {\r\n deferred: deferred\r\n } = selectionOptions;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var virtualPaging = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var allowSelectAll = this.option(\"selection.allowSelectAll\");\r\n var legacyScrollingMode = this.option(\"scrolling.legacyMode\");\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: deferred,\r\n alwaysSelectByShift: selectionOptions.alwaysSelectByShift,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n ignoreDisabledItems: true,\r\n isVirtualPaging: virtualPaging,\r\n allowLoadByRange() {\r\n var hasGroupColumns = columnsController.getGroupColumns().length > 0;\r\n return virtualPaging && !legacyScrollingMode && !hasGroupColumns && allowSelectAll && !deferred\r\n },\r\n key: () => null === dataController || void 0 === dataController ? void 0 : dataController.key(),\r\n keyOf: item => null === dataController || void 0 === dataController ? void 0 : dataController.keyOf(item),\r\n dataFields() {\r\n var _a;\r\n return null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.select()\r\n },\r\n load(options) {\r\n var _a;\r\n return (null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.load(options)) || (new Deferred).resolve([])\r\n },\r\n plainItems: cached => dataController.items(true),\r\n isItemSelected: item => item.selected,\r\n isSelectableItem: item => \"data\" === (null === item || void 0 === item ? void 0 : item.rowType) && !item.isNewRow,\r\n getItemData: item => isDefined(null === item || void 0 === item ? void 0 : item.rowType) ? (null === item || void 0 === item ? void 0 : item.oldData) || (null === item || void 0 === item ? void 0 : item.data) : item,\r\n filter: () => dataController.getCombinedFilter(deferred),\r\n totalCount: () => dataController.totalCount(),\r\n getLoadOptions(loadItemIndex, focusedItemIndex, shiftItemIndex) {\r\n var _a, _b;\r\n var {\r\n sort: sort,\r\n filter: filter\r\n } = null !== (_b = null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.lastLoadOptions()) && void 0 !== _b ? _b : {};\r\n var minIndex = Math.min(loadItemIndex, focusedItemIndex);\r\n var maxIndex = Math.max(loadItemIndex, focusedItemIndex);\r\n if (isDefined(shiftItemIndex)) {\r\n minIndex = Math.min(shiftItemIndex, minIndex);\r\n maxIndex = Math.max(shiftItemIndex, maxIndex)\r\n }\r\n var take = maxIndex - minIndex + 1;\r\n return {\r\n skip: minIndex,\r\n take: take,\r\n filter: filter,\r\n sort: sort\r\n }\r\n },\r\n onSelectionChanged: this._updateSelectedItems.bind(this)\r\n }\r\n }\r\n _updateSelectColumn() {\r\n var columnsController = this._columnsController;\r\n var isSelectColumnVisible = this.isSelectColumnVisible();\r\n columnsController.addCommandColumn({\r\n type: \"selection\",\r\n command: \"select\",\r\n visible: isSelectColumnVisible,\r\n visibleIndex: -1,\r\n dataType: \"boolean\",\r\n alignment: \"center\",\r\n cssClass: COMMAND_SELECT_CLASS,\r\n width: \"auto\",\r\n cellTemplate: selectionCellTemplate,\r\n headerCellTemplate: selectionHeaderTemplate\r\n });\r\n columnsController.columnOption(\"command:select\", \"visible\", isSelectColumnVisible)\r\n }\r\n _createSelection() {\r\n var options = this._getSelectionConfig();\r\n return new Selection(options)\r\n }\r\n _fireSelectionChanged(options) {\r\n var argument = this.option(\"selection.deferred\") ? {\r\n selectionFilter: this.option(\"selectionFilter\")\r\n } : {\r\n selectedRowKeys: this.option(\"selectedRowKeys\")\r\n };\r\n this.selectionChanged.fire(argument);\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\r\n }\r\n _updateCheckboxesState(options) {\r\n var {\r\n isDeferredMode: isDeferredMode\r\n } = options;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = options;\r\n var {\r\n selectedItemKeys: selectedItemKeys\r\n } = options;\r\n var {\r\n removedItemKeys: removedItemKeys\r\n } = options;\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n if (isDeferredMode ? selectionFilter && isSeveralRowsSelected(this, selectionFilter) : selectedItemKeys.length > 1) {\r\n this.startSelectionWithCheckboxes()\r\n } else if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n }\r\n _updateSelectedItems(args) {\r\n var selectionChangedOptions;\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n var selectionFilter = this._selection.selectionFilter();\r\n var dataController = this._dataController;\r\n var items = dataController.items(true);\r\n var visibleItems = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = this.isSelectionWithCheckboxes();\r\n var changedItemIndexes = this.getChangedItemIndexes(items);\r\n var visibleChangedItemIndexes = this.getChangedItemIndexes(visibleItems);\r\n this._updateCheckboxesState({\r\n selectedItemKeys: args.selectedItemKeys,\r\n removedItemKeys: args.removedItemKeys,\r\n selectionFilter: selectionFilter,\r\n isDeferredMode: isDeferredMode\r\n });\r\n if (changedItemIndexes.length || isSelectionWithCheckboxes !== this.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: visibleChangedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n this.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n this._selectedItemsInternalChange = true;\r\n this.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n this._selectedItemsInternalChange = false;\r\n selectionChangedOptions = {\r\n selectedRowsData: args.selectedItems.slice(0),\r\n selectedRowKeys: args.selectedItemKeys.slice(0),\r\n currentSelectedRowKeys: args.addedItemKeys.slice(0),\r\n currentDeselectedRowKeys: args.removedItemKeys.slice(0)\r\n }\r\n }\r\n this._fireSelectionChanged(selectionChangedOptions)\r\n }\r\n getChangedItemIndexes(items) {\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, {\r\n length: length\r\n } = items; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = this.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (this._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n }\r\n callbackNames() {\r\n return [\"selectionChanged\"]\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = this._selectionMode;\r\n this.init();\r\n if (\"selection.showCheckBoxesMode\" !== args.fullName) {\r\n var selectionMode = this._selectionMode;\r\n var selectedRowKeys = this.option(\"selectedRowKeys\");\r\n if (oldSelectionMode !== selectionMode) {\r\n if (\"single\" === selectionMode) {\r\n if (selectedRowKeys.length > 1) {\r\n selectedRowKeys = [selectedRowKeys[0]]\r\n }\r\n } else if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n this.selectRows(selectedRowKeys).always(() => {\r\n this._fireSelectionChanged()\r\n })\r\n }\r\n this._columnsController.updateColumns();\r\n args.handled = true;\r\n break;\r\n case \"selectionFilter\":\r\n this._selection.selectionFilter(args.value);\r\n args.handled = true;\r\n break;\r\n case \"selectedRowKeys\":\r\n var value = args.value || [];\r\n if (Array.isArray(value) && !this._selectedItemsInternalChange && (this.component.getDataSource() || !value.length)) {\r\n this.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n }\r\n isRowSelected(arg) {\r\n return this._selection.isItemSelected(arg)\r\n }\r\n isSelectColumnVisible() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || \"onClick\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n _isOnePageSelectAll() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n }\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n }\r\n selectAll() {\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n this.startSelectionWithCheckboxes()\r\n }\r\n return this._selection.selectAll(this._isOnePageSelectAll())\r\n }\r\n deselectAll() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n refresh() {\r\n var _a;\r\n var selectedRowKeys = null !== (_a = this.option(\"selectedRowKeys\")) && void 0 !== _a ? _a : [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n }\r\n selectedItemKeys(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n }\r\n getSelectedRowKeys(mode) {\r\n return this._selection.getSelectedItemKeys()\r\n }\r\n selectRows(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n }\r\n deselectRows(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectRowsByIndexes(indexes) {\r\n var items = this._dataController.items();\r\n var keys = [];\r\n if (!Array.isArray(indexes)) {\r\n indexes = Array.prototype.slice.call(arguments, 0)\r\n }\r\n each(indexes, (function() {\r\n var item = items[this];\r\n if (item && \"data\" === item.rowType) {\r\n keys.push(item.key)\r\n }\r\n }));\r\n return this.selectRows(keys)\r\n }\r\n getSelectedRowsData(mode) {\r\n return this._selection.getSelectedItems()\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selection.loadSelectedItemsWithFilter()\r\n }\r\n changeItemSelection(visibleItemIndex, keys, setFocusOnly) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n var loadedItemIndex = visibleItemIndex + this._dataController.getRowIndexOffset() - this._dataController.getRowIndexOffset(true);\r\n return this._selection.changeItemSelection(loadedItemIndex, keys, setFocusOnly)\r\n }\r\n focusedItemIndex(itemIndex) {\r\n if (isDefined(itemIndex)) {\r\n this._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return this._selection._focusedItemIndex\r\n }\r\n return\r\n }\r\n isSelectionWithCheckboxes() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n startSelectionWithCheckboxes() {\r\n if (\"multiple\" === this.option(SELECTION_MODE) && !this.isSelectionWithCheckboxes()) {\r\n this._isSelectionWithCheckboxes = true;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n stopSelectionWithCheckboxes() {\r\n if (this._isSelectionWithCheckboxes) {\r\n this._isSelectionWithCheckboxes = false;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nexport var dataSelectionExtenderMixin = Base => class extends Base {\r\n init() {\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n super.init.apply(this, arguments);\r\n if (isDeferredMode) {\r\n this._selectionController._updateCheckboxesState({\r\n isDeferredMode: true,\r\n selectionFilter: this.option(\"selectionFilter\")\r\n })\r\n }\r\n }\r\n _loadDataSource() {\r\n var that = this;\r\n return super._loadDataSource().always(() => {\r\n that._selectionController.refresh()\r\n })\r\n }\r\n _processDataItem(item, options) {\r\n var hasSelectColumn = this._selectionController.isSelectColumnVisible();\r\n var isDeferredSelection = options.isDeferredSelection = void 0 === options.isDeferredSelection ? this.option(\"selection.deferred\") : options.isDeferredSelection;\r\n var dataItem = super._processDataItem.apply(this, arguments);\r\n dataItem.isSelected = this._selectionController.isRowSelected(isDeferredSelection ? dataItem.data : dataItem.key);\r\n if (hasSelectColumn && dataItem.values) {\r\n for (var i = 0; i < options.visibleColumns.length; i++) {\r\n if (\"select\" === options.visibleColumns[i].command) {\r\n dataItem.values[i] = dataItem.isSelected;\r\n break\r\n }\r\n }\r\n }\r\n return dataItem\r\n }\r\n refresh(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n super.refresh.apply(this, arguments).done(() => {\r\n if (!options || options.selection) {\r\n that._selectionController.refresh().done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n _handleDataChanged(e) {\r\n var hasLoadOperation = this.hasLoadOperation();\r\n super._handleDataChanged.apply(this, arguments);\r\n if (hasLoadOperation && !this._repaintChangesOnly) {\r\n this._selectionController.focusedItemIndex(-1)\r\n }\r\n }\r\n _applyChange(change) {\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach((item, index) => {\r\n var currentItem = this._items[index];\r\n if (currentItem) {\r\n currentItem.isSelected = item.isSelected;\r\n currentItem.values = item.values\r\n }\r\n });\r\n return\r\n }\r\n return super._applyChange.apply(this, arguments)\r\n }\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(change => \"updateSelection\" === change.changeType);\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(change => change.itemIndexes || []).reduce((a, b) => a.concat(b));\r\n this._changes = [{\r\n changeType: \"updateSelection\",\r\n itemIndexes: itemIndexes\r\n }]\r\n }\r\n super._endUpdateCore.apply(this, arguments)\r\n }\r\n};\r\nvar contextMenu = Base => class extends Base {\r\n _contextMenuPrepared(options) {\r\n var dxEvent = options.event;\r\n if (dxEvent.originalEvent && \"dxhold\" !== dxEvent.originalEvent.type || options.items && options.items.length > 0) {\r\n return\r\n }\r\n processLongTap(this, dxEvent)\r\n }\r\n};\r\nexport var columnHeadersSelectionExtenderMixin = Base => class extends Base {\r\n init() {\r\n super.init();\r\n this._selectionController.selectionChanged.add(this._updateSelectAllValue.bind(this))\r\n }\r\n _updateSelectAllValue() {\r\n var $element = this.element();\r\n var $editor = $element && $element.find(\".\".concat(SELECT_CHECKBOX_CLASS));\r\n if ($element && $editor.length && \"multiple\" === this.option(\"selection.mode\")) {\r\n var selectAllValue = this._selectionController.isSelectAll();\r\n var hasSelection = false !== selectAllValue;\r\n var isVisible = this.option(\"selection.allowSelectAll\") ? !this._dataController.isEmpty() : hasSelection;\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: isVisible,\r\n value: selectAllValue\r\n })\r\n }\r\n }\r\n _handleDataChanged(e) {\r\n super._handleDataChanged(e);\r\n if (!e || \"refresh\" === e.changeType || e.repaintChangesOnly && \"update\" === e.changeType) {\r\n this.waitAsyncTemplates().done(() => {\r\n this._updateSelectAllValue()\r\n })\r\n }\r\n }\r\n _renderSelectAllCheckBox($container, column) {\r\n var that = this;\r\n var isEmptyData = that._dataController.isEmpty();\r\n var groupElement = $(\"<div>\").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectAll\"), groupElement);\r\n that._editorFactoryController.createEditor(groupElement, extend({}, column, {\r\n parentType: \"headerRow\",\r\n dataType: \"boolean\",\r\n value: this._selectionController.isSelectAll(),\r\n editorOptions: {\r\n visible: !isEmptyData && (that.option(\"selection.allowSelectAll\") || false !== this._selectionController.isSelectAll())\r\n },\r\n tabIndex: that.option(\"useLegacyKeyboardNavigation\") ? -1 : that.option(\"tabIndex\") || 0,\r\n setValue: (value, e) => {\r\n var allowSelectAll = that.option(\"selection.allowSelectAll\");\r\n e.component.option(\"visible\", allowSelectAll || false !== e.component.option(\"value\"));\r\n if (!e.event || this._selectionController.isSelectAll() === value) {\r\n return\r\n }\r\n if (e.value && !allowSelectAll) {\r\n e.component.option(\"value\", false)\r\n } else {\r\n e.value ? this._selectionController.selectAll() : this._selectionController.deselectAll()\r\n }\r\n e.event.preventDefault()\r\n }\r\n }));\r\n return groupElement\r\n }\r\n _attachSelectAllCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (!$(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n eventsEngine.trigger($(event.currentTarget).children(\".\".concat(SELECT_CHECKBOX_CLASS)), clickEventName)\r\n }\r\n event.preventDefault()\r\n }))\r\n }\r\n};\r\nexport var rowsViewSelectionExtenderMixin = Base => class extends Base {\r\n renderSelectCheckBoxContainer($container, options) {\r\n if (\"data\" === options.rowType && !options.row.isNewRow) {\r\n $container.addClass(EDITOR_CELL_CLASS);\r\n this._attachCheckBoxClickEvent($container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n }\r\n _renderSelectCheckBox(container, options) {\r\n var groupElement = $(\"<div>\").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), groupElement);\r\n this._editorFactoryController.createEditor(groupElement, extend({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue(value, e) {\r\n var _a;\r\n if (\"keydown\" === (null === (_a = null === e || void 0 === e ? void 0 : e.event) || void 0 === _a ? void 0 : _a.type)) {\r\n eventsEngine.trigger(e.element, clickEventName, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n }\r\n _attachCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n var rowIndex = this.getRowIndex($(event.currentTarget).closest(\".\".concat(ROW_CLASS)));\r\n if (rowIndex >= 0) {\r\n this._selectionController.startSelectionWithCheckboxes();\r\n this._selectionController.changeItemSelection(rowIndex, {\r\n shift: event.shiftKey\r\n });\r\n if ($(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n this._dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: [rowIndex]\r\n })\r\n }\r\n }\r\n })))\r\n }\r\n _update(change) {\r\n var that = this;\r\n var tableElements = that.getTableElements();\r\n if (\"updateSelection\" === change.changeType) {\r\n if (tableElements.length > 0) {\r\n each(tableElements, (_, tableElement) => {\r\n each(change.itemIndexes || [], (_, index) => {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements($(tableElement)).eq(index);\r\n if ($row.length) {\r\n var {\r\n isSelected: isSelected\r\n } = change.items[index];\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\".concat(SELECT_CHECKBOX_CLASS)).dxCheckBox(\"option\", \"value\", isSelected);\r\n that.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n })\r\n });\r\n that._updateCheckboxesClass()\r\n }\r\n } else {\r\n super._update(change)\r\n }\r\n }\r\n _createTable() {\r\n var that = this;\r\n var selectionMode = that.option(\"selection.mode\");\r\n var $table = super._createTable.apply(that, arguments);\r\n if (\"none\" !== selectionMode) {\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE) || !touch) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \".\".concat(DATA_ROW_CLASS), that.createAction(e => {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n }))\r\n }\r\n eventsEngine.on($table, \"mousedown selectstart\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }))\r\n }\r\n return $table\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row) {\r\n var {\r\n isSelected: isSelected\r\n } = row;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n var selectionMode = this.option(SELECTION_MODE);\r\n if (\"none\" !== selectionMode) {\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n return $row\r\n }\r\n _rowClickForTreeList(e) {\r\n super._rowClick(e)\r\n }\r\n _rowClick(e) {\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = $(dxEvent.target).closest(\".\".concat(SELECTION_DISABLED_CLASS)).length;\r\n if (!this.isClickableElement($(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== this.option(SELECTION_MODE) || \"always\" !== this.option(SHOW_CHECKBOXES_MODE))) {\r\n if (this._selectionController.changeItemSelection(e.rowIndex, {\r\n control: isCommandKeyPressed(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n super._rowClick(e)\r\n }\r\n }\r\n isClickableElement($target) {\r\n var isCommandSelect = $target.closest(\".\".concat(COMMAND_SELECT_CLASS)).length;\r\n return !!isCommandSelect\r\n }\r\n _renderCore(change) {\r\n var deferred = super._renderCore(change);\r\n this._updateCheckboxesClass();\r\n return deferred\r\n }\r\n _updateCheckboxesClass() {\r\n var tableElements = this.getTableElements();\r\n var isCheckBoxesHidden = this._selectionController.isSelectColumnVisible() && !this._selectionController.isSelectionWithCheckboxes();\r\n each(tableElements, (_, tableElement) => {\r\n $(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n })\r\n }\r\n};\r\nexport var selectionModule = {\r\n defaultOptions: () => ({\r\n selection: {\r\n mode: \"none\",\r\n showCheckBoxesMode: \"onClick\",\r\n allowSelectAll: true,\r\n selectAllMode: \"allPages\",\r\n deferred: false,\r\n maxFilterLengthInRequest: 1500,\r\n alwaysSelectByShift: false\r\n },\r\n selectionFilter: [],\r\n selectedRowKeys: []\r\n }),\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: dataSelectionExtenderMixin,\r\n contextMenu: contextMenu\r\n },\r\n views: {\r\n columnHeadersView: columnHeadersSelectionExtenderMixin,\r\n rowsView: rowsViewSelectionExtenderMixin\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/selection.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n selectionModule\r\n} from \"../../../grids/grid_core/selection/m_selection\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"selection\", selectionModule);\r\n","/**\r\n * DevExtreme (esm/renovation/utils/dom.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function querySelectorInSameDocument(el, selector) {\r\n var _el$getRootNode, _el$getRootNode2;\r\n var root = null !== (_el$getRootNode = null === (_el$getRootNode2 = el.getRootNode) || void 0 === _el$getRootNode2 ? void 0 : _el$getRootNode2.call(el)) && void 0 !== _el$getRootNode ? _el$getRootNode : document;\r\n return root.querySelector(selector)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/editor.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport Component from \"../common/component\";\r\nimport ValidationEngine from \"../../../ui/validation_engine\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../../core/element_data\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport OldEditor from \"../../../ui/editor/editor\";\r\nimport {\r\n querySelectorInSameDocument\r\n} from \"../../utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nexport default class Editor extends Component {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onFocusIn = () => {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (isValidationMessageShownOnFocus) {\r\n var $validationMessageWrapper = $(querySelectorInSameDocument(this.element(), \".dx-invalid-message.dx-overlay-wrapper\"));\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n this.showValidationMessageTimeout = setTimeout(() => {\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO)\r\n }, 150)\r\n }\r\n };\r\n props.saveValueChangeEvent = e => {\r\n this._valueChangeEventInstance = e\r\n };\r\n return props\r\n }\r\n _createElement(element) {\r\n super._createElement(element);\r\n this.showValidationMessageTimeout = void 0;\r\n this.validationRequest = Callbacks();\r\n data(this.$element()[0], VALIDATION_TARGET, this)\r\n }\r\n _render() {\r\n var _this$option;\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n }\r\n _init() {\r\n super._init();\r\n this._initialValue = this.option(\"value\")\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _initOptions(options) {\r\n super._initOptions(options);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n }\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var innerWidgetOptions = extend({}, innerWidget.option());\r\n var syncOptions = () => this._silent(optionsContainer, innerWidgetOptions);\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n }\r\n _raiseValidation(value, previousValue) {\r\n var areValuesEmpty = !isDefined(value) && !isDefined(previousValue);\r\n if (value !== previousValue && !areValuesEmpty) {\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n }\r\n }\r\n _raiseValueChangeAction(value, previousValue) {\r\n var _this$_valueChangeAct;\r\n null === (_this$_valueChangeAct = this._valueChangeAction) || void 0 === _this$_valueChangeAct ? void 0 : _this$_valueChangeAct.call(this, {\r\n element: this.$element(),\r\n previousValue: previousValue,\r\n value: value,\r\n event: this._valueChangeEventInstance\r\n });\r\n this._valueChangeEventInstance = void 0\r\n }\r\n _optionChanged(option) {\r\n var {\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n if (name && void 0 !== this._getActionConfigs()[name]) {\r\n this._addAction(name)\r\n }\r\n switch (name) {\r\n case \"value\":\r\n this._raiseValidation(value, previousValue);\r\n this.option(\"isDirty\", this._initialValue !== value);\r\n this._raiseValueChangeAction(value, previousValue);\r\n break;\r\n case \"onValueChanged\":\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(option, this.option()))\r\n }\r\n super._optionChanged(option)\r\n }\r\n clear() {\r\n var {\r\n value: value\r\n } = this._getDefaultOptions();\r\n this.option({\r\n value: value\r\n })\r\n }\r\n reset() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this._initialValue = value\r\n }\r\n this.option(\"value\", this._initialValue);\r\n this.option(\"isDirty\", false);\r\n this.option(\"isValid\", true)\r\n }\r\n _dispose() {\r\n super._dispose();\r\n data(this.element(), VALIDATION_TARGET, null);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n }\r\n}\r\nvar prevIsEditor = OldEditor.isEditor;\r\nvar newIsEditor = instance => prevIsEditor(instance) || instance instanceof Editor;\r\nEditor.isEditor = newIsEditor;\r\nOldEditor.isEditor = newIsEditor;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/check_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Editor from \"./editor\";\r\nexport default class CheckBox extends Editor {\r\n _useTemplates() {\r\n return false\r\n }\r\n _isFocused() {\r\n var focusTarget = this.$element()[0];\r\n return focusTarget.classList.contains(\"dx-state-focused\")\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n if (null !== props.value) {\r\n props.value = Boolean(props.value)\r\n }\r\n return props\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/get_updated_options.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nvar defaultNotDeepCopyArrays = [\"dataSource\", \"selectedRowKeys\"];\r\nvar propsToIgnore = {\r\n integrationOptions: true\r\n};\r\n\r\nfunction getDiffItem(key, value, previousValue) {\r\n return {\r\n path: key,\r\n value: value,\r\n previousValue: previousValue\r\n }\r\n}\r\n\r\nfunction compare(resultPaths, item1, item2, key, fullPropName, notDeepCopyArrays) {\r\n if (propsToIgnore[key]) {\r\n return\r\n }\r\n var type1 = type(item1);\r\n var type2 = type(item2);\r\n if (item1 === item2) {\r\n return\r\n }\r\n if (type1 !== type2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (\"object\" === type1) {\r\n if (!isPlainObject(item2)) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n resultPaths.push(...diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key, \".\").concat(item.path)\r\n })))\r\n }\r\n } else if (\"array\" === type1) {\r\n var notDeepCopy = notDeepCopyArrays.some(prop => fullPropName.includes(prop));\r\n if (notDeepCopy && item1 !== item2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (item1.length !== item2.length) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var _diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n [].push.apply(resultPaths, _diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key).concat(item.path)\r\n })))\r\n }\r\n } else {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n }\r\n}\r\nvar objectDiffsFiltered = propsEnumerator => (oldProps, props, fullPropName, notDeepCopyArrays) => {\r\n var resultPaths = [];\r\n var processItem = !Array.isArray(oldProps) ? propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], propName, \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n } : propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], \"[\".concat(propName, \"]\"), \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n };\r\n propsEnumerator(oldProps).forEach(processItem);\r\n Object.keys(props).filter(propName => !Object.prototype.hasOwnProperty.call(oldProps, propName) && oldProps[propName] !== props[propName]).forEach(propName => {\r\n resultPaths.push({\r\n path: propName,\r\n value: props[propName],\r\n previousValue: oldProps[propName]\r\n })\r\n });\r\n return resultPaths\r\n};\r\nvar objectDiffs = objectDiffsFiltered(oldProps => Object.keys(oldProps));\r\nvar reactProps = {\r\n key: true,\r\n ref: true,\r\n children: true,\r\n style: true\r\n};\r\nvar objectDiffsWithoutReactProps = objectDiffsFiltered(prop => Object.keys(prop).filter(p => !reactProps[p]));\r\nexport function getUpdatedOptions(oldProps, props) {\r\n var notDeepCopyArrays = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : defaultNotDeepCopyArrays;\r\n return objectDiffsWithoutReactProps(oldProps, props, \"\", notDeepCopyArrays)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/dom_component_wrapper.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"valueChange\"],\r\n _excluded2 = [\"componentProps\", \"componentType\", \"templateNames\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n renderTemplate,\r\n hasTemplate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n getUpdatedOptions\r\n} from \"./utils/get_updated_options\";\r\nvar normalizeProps = props => Object.keys(props).reduce((accumulator, key) => {\r\n if (void 0 !== props[key]) {\r\n accumulator[key] = props[key]\r\n }\r\n return accumulator\r\n}, {});\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n componentProps: {\r\n className: className\r\n }\r\n },\r\n restAttributes: restAttributes,\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return normalizeProps(createVNode(1, \"div\", className, null, 1, _extends({}, restAttributes), null, widgetRef))\r\n};\r\nexport var DomComponentWrapperProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class DomComponentWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.getInstance = this.getInstance.bind(this);\r\n this.setupWidget = this.setupWidget.bind(this);\r\n this.updateWidget = this.updateWidget.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setupWidget, []), new InfernoEffect(this.updateWidget, [this.props.componentProps, this.config, this.props.templateNames])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.componentProps, this.config, this.props.templateNames])\r\n }\r\n setupWidget() {\r\n var componentInstance = new this.props.componentType(this.widgetRef.current, this.properties);\r\n this.instance = componentInstance;\r\n return () => {\r\n componentInstance.dispose();\r\n this.instance = null\r\n }\r\n }\r\n updateWidget() {\r\n var instance = this.getInstance();\r\n if (!instance) {\r\n return\r\n }\r\n var updatedOptions = getUpdatedOptions(this.prevProps || {}, this.properties);\r\n if (updatedOptions.length) {\r\n instance.beginUpdate();\r\n updatedOptions.forEach(_ref2 => {\r\n var {\r\n path: path,\r\n value: value\r\n } = _ref2;\r\n instance.option(path, value)\r\n });\r\n instance.endUpdate()\r\n }\r\n this.prevProps = this.properties\r\n }\r\n get properties() {\r\n var _this$config;\r\n var normalizedProps = normalizeProps(this.props.componentProps);\r\n var {\r\n valueChange: valueChange\r\n } = normalizedProps, restProps = _objectWithoutPropertiesLoose(normalizedProps, _excluded);\r\n var properties = _extends({\r\n rtlEnabled: !!(null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled),\r\n isRenovated: true\r\n }, restProps);\r\n if (valueChange) {\r\n properties.onValueChanged = _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n return valueChange(value)\r\n }\r\n }\r\n var templates = this.props.templateNames;\r\n templates.forEach(name => {\r\n if (hasTemplate(name, properties, this)) {\r\n properties[name] = (item, index, container) => {\r\n renderTemplate(this.props.componentProps[name], {\r\n item: item,\r\n index: index,\r\n container: container\r\n }, this)\r\n }\r\n }\r\n });\r\n return properties\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded2);\r\n return restProps\r\n }\r\n getInstance() {\r\n return this.instance\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n config: this.config,\r\n properties: this.properties,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDomComponentWrapper.defaultProps = DomComponentWrapperProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/overlays/validation_message.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"boundary\", \"className\", \"contentId\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"mode\", \"offset\", \"onClick\", \"onKeyDown\", \"positionSide\", \"rtlEnabled\", \"tabIndex\", \"target\", \"validationErrors\", \"visible\", \"visualContainer\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacyValidationMessage from \"../../../ui/validation_message\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../common/dom_component_wrapper\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../common/base_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacyValidationMessage,\r\n componentProps: componentProps,\r\n templateNames: []\r\n }, restAttributes)))\r\n};\r\nexport var ValidationMessageProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n mode: \"auto\",\r\n positionSide: \"top\",\r\n offset: Object.freeze({\r\n h: 0,\r\n v: 0\r\n }),\r\n isReactComponentWrapper: true\r\n})));\r\nexport class ValidationMessage extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get componentProps() {\r\n return this.props\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nValidationMessage.defaultProps = ValidationMessageProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"children\", \"className\", \"classes\", \"defaultValue\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"inputAttr\", \"isDirty\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"tabIndex\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport {\r\n Widget,\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../../common/base_props\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n ValidationMessage\r\n} from \"../../overlays/validation_message\";\r\nvar getCssClasses = model => {\r\n var {\r\n classes: classes,\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = model;\r\n var classesMap = {\r\n \"dx-state-readonly\": !!readOnly,\r\n \"dx-invalid\": !isValid,\r\n [\"\".concat(classes)]: !!classes\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n isValidationMessageVisible: isValidationMessageVisible,\r\n onFocusIn: onFocusIn,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n children: children,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes,\r\n rootElementRef: rootElementRef,\r\n validationErrors: validationErrors,\r\n validationMessageGuid: validationMessageGuid,\r\n validationMessageTarget: validationMessageTarget,\r\n widgetRef: widgetRef\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n rootElementRef: rootElementRef,\r\n aria: aria,\r\n classes: classes,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n accessKey: accessKey,\r\n className: className,\r\n rtlEnabled: rtlEnabled,\r\n hint: hint,\r\n disabled: disabled,\r\n height: height,\r\n width: width,\r\n onFocusIn: onFocusIn,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n tabIndex: tabIndex,\r\n visible: visible\r\n }, restAttributes, {\r\n children: createFragment([children, isValidationMessageVisible && createComponentVNode(2, ValidationMessage, {\r\n validationErrors: validationErrors,\r\n mode: validationMessageMode,\r\n positionSide: validationMessagePosition,\r\n rtlEnabled: rtlEnabled,\r\n target: validationMessageTarget,\r\n boundary: validationMessageTarget,\r\n visualContainer: validationMessageTarget,\r\n contentId: validationMessageGuid\r\n })], 0)\r\n }), null, widgetRef))\r\n};\r\nexport var EditorProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n readOnly: false,\r\n name: \"\",\r\n validationError: null,\r\n validationErrors: null,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationStatus: \"valid\",\r\n isValid: true,\r\n isDirty: false,\r\n inputAttr: Object.freeze({}),\r\n defaultValue: null,\r\n valueChange: () => {}\r\n})));\r\nexport var EditorPropsType = {\r\n get readOnly() {\r\n return EditorProps.readOnly\r\n },\r\n get name() {\r\n return EditorProps.name\r\n },\r\n get validationError() {\r\n return EditorProps.validationError\r\n },\r\n get validationErrors() {\r\n return EditorProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return EditorProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return EditorProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return EditorProps.validationStatus\r\n },\r\n get isValid() {\r\n return EditorProps.isValid\r\n },\r\n get isDirty() {\r\n return EditorProps.isDirty\r\n },\r\n get inputAttr() {\r\n return EditorProps.inputAttr\r\n },\r\n get defaultValue() {\r\n return EditorProps.defaultValue\r\n },\r\n get valueChange() {\r\n return EditorProps.valueChange\r\n },\r\n get className() {\r\n return EditorProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return EditorProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorProps.focusStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return EditorProps.hoverStateEnabled\r\n },\r\n get tabIndex() {\r\n return EditorProps.tabIndex\r\n },\r\n get visible() {\r\n return EditorProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n },\r\n get classes() {\r\n return WidgetProps.classes\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Editor extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetRef = infernoCreateRef();\r\n this.rootElementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.state = {\r\n validationMessageGuid: \"dx-\".concat(new Guid),\r\n isValidationMessageVisible: false,\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.updateValidationMessageVisibility = this.updateValidationMessageVisibility.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onFocusIn = this.onFocusIn.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateValidationMessageVisibility, [this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors])\r\n }\r\n updateValidationMessageVisibility() {\r\n this.setState(__state_argument => ({\r\n isValidationMessageVisible: this.shouldShowValidationMessage\r\n }))\r\n }\r\n onFocusIn(event) {\r\n var {\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n get cssClasses() {\r\n return \"\".concat(getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })))\r\n }\r\n get shouldShowValidationMessage() {\r\n var _this$validationError;\r\n var {\r\n isValid: isValid,\r\n validationStatus: validationStatus\r\n } = this.props;\r\n var validationErrors = null !== (_this$validationError = this.validationErrors) && void 0 !== _this$validationError ? _this$validationError : [];\r\n var isEditorValid = isValid && \"invalid\" !== validationStatus;\r\n return !isEditorValid && validationErrors.length > 0\r\n }\r\n get aria() {\r\n var {\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = this.props;\r\n var result = {\r\n readonly: readOnly ? \"true\" : \"false\",\r\n invalid: !isValid ? \"true\" : \"false\"\r\n };\r\n if (this.shouldShowValidationMessage) {\r\n result.describedBy = this.state.validationMessageGuid\r\n }\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get validationErrors() {\r\n if (void 0 !== this.__getterCache.validationErrors) {\r\n return this.__getterCache.validationErrors\r\n }\r\n return this.__getterCache.validationErrors = (() => {\r\n var {\r\n validationError: validationError,\r\n validationErrors: validationErrors\r\n } = this.props;\r\n var allValidationErrors = validationErrors && [...validationErrors];\r\n if (!allValidationErrors && validationError) {\r\n allValidationErrors = [_extends({}, validationError)]\r\n }\r\n return allValidationErrors\r\n })()\r\n }\r\n get validationMessageTarget() {\r\n var _this$rootElementRef;\r\n return null === (_this$rootElementRef = this.rootElementRef) || void 0 === _this$rootElementRef ? void 0 : _this$rootElementRef.current\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n blur() {\r\n this.widgetRef.current.blur()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.validationError !== nextProps.validationError || this.props.validationErrors !== nextProps.validationErrors) {\r\n this.__getterCache.validationErrors = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n validationMessageGuid: this.state.validationMessageGuid,\r\n isValidationMessageVisible: this.state.isValidationMessageVisible,\r\n rootElementRef: this.rootElementRef,\r\n widgetRef: this.widgetRef,\r\n onFocusIn: this.onFocusIn,\r\n cssClasses: this.cssClasses,\r\n shouldShowValidationMessage: this.shouldShowValidationMessage,\r\n aria: this.aria,\r\n validationErrors: this.validationErrors,\r\n validationMessageTarget: this.validationMessageTarget,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nEditor.defaultProps = EditorPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Editor.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Editor.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/get_computed_style.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nexport default function getElementComputedStyle(el) {\r\n var _window$getComputedSt;\r\n var window = getWindow();\r\n return el ? null === (_window$getComputedSt = window.getComputedStyle) || void 0 === _window$getComputedSt ? void 0 : _window$getComputedSt.call(window, el) : null\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isMaterial,\r\n isCompact,\r\n current\r\n} from \"../../../../ui/themes\";\r\nvar defaultIconSizes = [\r\n [22, 16],\r\n [18, 16]\r\n];\r\nvar defaultFontSizes = [\r\n [\r\n [12, 8],\r\n [20, 18]\r\n ],\r\n [\r\n [16, 10],\r\n [16, 14]\r\n ]\r\n];\r\n\r\nfunction getThemeType() {\r\n var theme = current();\r\n return {\r\n isMaterialTheme: isMaterial(theme),\r\n isCompactTheme: isCompact(theme)\r\n }\r\n}\r\n\r\nfunction getDefaultIconSize() {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultIconSizes[+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getDefaultFontSize(isChecked) {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultFontSizes[+isChecked][+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getFontSizeByIconSize(iconSize, isChecked) {\r\n var defaultFontSize = getDefaultFontSize(isChecked);\r\n var defaultIconSize = getDefaultIconSize();\r\n var fontToIconSizeRatio = defaultFontSize / defaultIconSize;\r\n return Math.ceil(fontToIconSizeRatio * iconSize)\r\n}\r\nexport {\r\n getDefaultFontSize,\r\n getDefaultIconSize,\r\n getFontSizeByIconSize\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box_icon.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isChecked\", \"size\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isNumeric as isNumber\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getFontSizeByIconSize\r\n} from \"./utils\";\r\nexport var viewFunction = viewModel => {\r\n var {\r\n cssStyles: cssStyles,\r\n elementRef: elementRef\r\n } = viewModel;\r\n return createVNode(1, \"span\", \"dx-checkbox-icon\", null, 1, {\r\n style: normalizeStyles(cssStyles)\r\n }, null, elementRef)\r\n};\r\nexport var CheckBoxIconProps = {\r\n isChecked: false\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBoxIcon extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.elementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.updateFontSize = this.updateFontSize.bind(this);\r\n this.setIconFontSize = this.setIconFontSize.bind(this);\r\n this.getIconSize = this.getIconSize.bind(this);\r\n this.getComputedIconSize = this.getComputedIconSize.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateFontSize, [this.props.isChecked, this.props.size])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isChecked, this.props.size])\r\n }\r\n updateFontSize() {\r\n var {\r\n isChecked: isChecked,\r\n size: size\r\n } = this.props;\r\n if (hasWindow() && size) {\r\n var newIconSize = this.getIconSize(size);\r\n var newFontSize = getFontSizeByIconSize(newIconSize, isChecked);\r\n this.setIconFontSize(newFontSize)\r\n }\r\n }\r\n setIconFontSize(fontSize) {\r\n var element = this.elementRef.current;\r\n element.style.fontSize = \"\".concat(fontSize, \"px\")\r\n }\r\n getIconSize(size) {\r\n if (isNumber(size)) {\r\n return size\r\n }\r\n if (size.endsWith(\"px\")) {\r\n return parseInt(size, 10)\r\n }\r\n return this.getComputedIconSize()\r\n }\r\n getComputedIconSize() {\r\n var element = this.elementRef.current;\r\n var iconComputedStyle = getElementComputedStyle(element);\r\n var computedIconSize = parseInt(null === iconComputedStyle || void 0 === iconComputedStyle ? void 0 : iconComputedStyle.width, 10);\r\n return computedIconSize\r\n }\r\n get cssStyles() {\r\n if (void 0 !== this.__getterCache.cssStyles) {\r\n return this.__getterCache.cssStyles\r\n }\r\n return this.__getterCache.cssStyles = (() => {\r\n var {\r\n size: size\r\n } = this.props;\r\n var width = normalizeStyleProp(\"width\", size);\r\n var height = normalizeStyleProp(\"height\", size);\r\n return {\r\n height: height,\r\n width: width\r\n }\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.size !== nextProps.size) {\r\n this.__getterCache.cssStyles = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n elementRef: this.elementRef,\r\n setIconFontSize: this.setIconFontSize,\r\n getIconSize: this.getIconSize,\r\n getComputedIconSize: this.getComputedIconSize,\r\n cssStyles: this.cssStyles,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nCheckBoxIcon.defaultProps = CheckBoxIconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"className\", \"defaultValue\", \"disabled\", \"enableThreeStateBehavior\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"iconSize\", \"inputAttr\", \"isDirty\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"saveValueChangeEvent\", \"tabIndex\", \"text\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport devices from \"../../../../core/devices\";\r\nimport {\r\n Editor,\r\n EditorProps\r\n} from \"../common/editor\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n CheckBoxIcon\r\n} from \"./check_box_icon\";\r\nimport {\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nvar getCssClasses = model => {\r\n var {\r\n text: text,\r\n value: value\r\n } = model;\r\n var checked = value;\r\n var indeterminate = null === checked;\r\n var classesMap = {\r\n \"dx-checkbox\": true,\r\n \"dx-checkbox-checked\": true === checked,\r\n \"dx-checkbox-has-text\": !!text,\r\n \"dx-checkbox-indeterminate\": indeterminate\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n editorRef: editorRef,\r\n keyDown: onKeyDown,\r\n onWidgetClick: onClick,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n iconSize: iconSize,\r\n isValid: isValid,\r\n name: name,\r\n onFocusIn: onFocusIn,\r\n readOnly: readOnly,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n text: text,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n value: value,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Editor, _extends({\r\n aria: aria,\r\n classes: classes,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n readOnly: readOnly,\r\n hint: hint,\r\n height: height,\r\n width: width,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n visible: visible,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n isValid: isValid,\r\n onFocusIn: onFocusIn\r\n }, restAttributes, {\r\n children: createFragment([normalizeProps(createVNode(64, \"input\", null, null, 1, _extends({\r\n type: \"hidden\",\r\n value: \"\".concat(value)\r\n }, name && {\r\n name: name\r\n }))), createVNode(1, \"div\", \"dx-checkbox-container\", [createComponentVNode(2, CheckBoxIcon, {\r\n size: iconSize,\r\n isChecked: true === value\r\n }), text && createVNode(1, \"span\", \"dx-checkbox-text\", text, 0)], 0)], 4)\r\n }), null, editorRef))\r\n};\r\nexport var CheckBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n text: \"\",\r\n enableThreeStateBehavior: false,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n get focusStateEnabled() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n defaultValue: false,\r\n valueChange: () => {}\r\n})));\r\nexport var CheckBoxPropsType = {\r\n get text() {\r\n return CheckBoxProps.text\r\n },\r\n get enableThreeStateBehavior() {\r\n return CheckBoxProps.enableThreeStateBehavior\r\n },\r\n get activeStateEnabled() {\r\n return CheckBoxProps.activeStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return CheckBoxProps.hoverStateEnabled\r\n },\r\n get focusStateEnabled() {\r\n return CheckBoxProps.focusStateEnabled\r\n },\r\n get defaultValue() {\r\n return CheckBoxProps.defaultValue\r\n },\r\n get valueChange() {\r\n return CheckBoxProps.valueChange\r\n },\r\n get readOnly() {\r\n return CheckBoxProps.readOnly\r\n },\r\n get name() {\r\n return CheckBoxProps.name\r\n },\r\n get validationError() {\r\n return CheckBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return CheckBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return CheckBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return CheckBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return CheckBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return CheckBoxProps.isValid\r\n },\r\n get isDirty() {\r\n return CheckBoxProps.isDirty\r\n },\r\n get inputAttr() {\r\n return CheckBoxProps.inputAttr\r\n },\r\n get className() {\r\n return CheckBoxProps.className\r\n },\r\n get disabled() {\r\n return CheckBoxProps.disabled\r\n },\r\n get tabIndex() {\r\n return CheckBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return CheckBoxProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBox extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.editorRef = infernoCreateRef();\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this)\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n enableThreeStateBehavior: enableThreeStateBehavior,\r\n readOnly: readOnly,\r\n saveValueChangeEvent: saveValueChangeEvent\r\n } = this.props;\r\n if (!readOnly) {\r\n null === saveValueChangeEvent || void 0 === saveValueChangeEvent ? void 0 : saveValueChangeEvent(event);\r\n if (enableThreeStateBehavior) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = null === (void 0 !== this.props.value ? this.props.value : __state_argument.value) || (!(void 0 !== this.props.value ? this.props.value : __state_argument.value) ? null : false);\r\n return {\r\n value: __newValue\r\n }\r\n });\r\n this.props.valueChange(__newValue)\r\n } else {\r\n var _newValue;\r\n this.setState(__state_argument => {\r\n var _ref;\r\n _newValue = !(null !== (_ref = void 0 !== this.props.value ? this.props.value : __state_argument.value) && void 0 !== _ref ? _ref : false);\r\n return {\r\n value: _newValue\r\n }\r\n });\r\n this.props.valueChange(_newValue)\r\n }\r\n }\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which) {\r\n originalEvent.preventDefault();\r\n this.onWidgetClick(originalEvent)\r\n }\r\n return\r\n }\r\n get cssClasses() {\r\n return getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }))\r\n }\r\n get aria() {\r\n var checked = true === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var indeterminate = null === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var result = {\r\n role: \"checkbox\",\r\n checked: indeterminate ? \"mixed\" : \"\".concat(checked)\r\n };\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.editorRef.current.focus()\r\n }\r\n blur() {\r\n this.editorRef.current.blur()\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n editorRef: this.editorRef,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n cssClasses: this.cssClasses,\r\n aria: this.aria,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nCheckBox.defaultProps = CheckBoxPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n CheckBox.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(CheckBox.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.j.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../core/component_registrator\";\r\nimport BaseComponent from \"../../../component_wrapper/editors/check_box\";\r\nimport {\r\n CheckBox as CheckBoxComponent,\r\n defaultOptions\r\n} from \"./check_box\";\r\nexport default class CheckBox extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n blur() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.blur(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onFocusIn: {},\r\n onClick: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [\r\n [\"value\", \"defaultValue\", \"valueChange\"]\r\n ],\r\n allowNull: [\"defaultValue\", \"validationError\", \"validationErrors\", \"value\"],\r\n elements: [],\r\n templates: [],\r\n props: [\"text\", \"iconSize\", \"enableThreeStateBehavior\", \"activeStateEnabled\", \"hoverStateEnabled\", \"focusStateEnabled\", \"saveValueChangeEvent\", \"defaultValue\", \"valueChange\", \"readOnly\", \"name\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"isValid\", \"isDirty\", \"inputAttr\", \"onFocusIn\", \"className\", \"accessKey\", \"disabled\", \"height\", \"hint\", \"onClick\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\", \"aria\", \"value\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return CheckBoxComponent\r\n }\r\n}\r\nregisterComponent(\"dxCheckBox\", CheckBox);\r\nCheckBox.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tree_view/m_tree_view.base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPrimitive,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../../events/double_click\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_VERTICAL,\r\n SCROLLABLE_CONTENT_CLASS\r\n} from \"../../../renovation/ui/scroll_view/common/consts\";\r\nimport {\r\n getRelativeOffset\r\n} from \"../../../renovation/ui/scroll_view/utils/get_relative_offset\";\r\nimport CheckBox from \"../../../ui/check_box\";\r\nimport HierarchicalCollectionWidget from \"../../../ui/hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport Scrollable from \"../../../ui/scroll_view/ui.scrollable\";\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS = \"\".concat(ITEM_CLASS, \"-with-custom-expander-icon\");\r\nvar CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expander-icon-item-container\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar CUSTOM_COLLAPSE_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-collapse-icon\");\r\nvar CUSTOM_EXPAND_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expand-icon\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar ITEM_URL_CLASS = \"dx-item-url\";\r\nvar CHECK_BOX_CLASS = \"dx-checkbox\";\r\nvar CHECK_BOX_ICON_CLASS = \"dx-checkbox-icon\";\r\nvar ROOT_NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-root-node\");\r\nvar EXPANDER_ICON_STUB_CLASS = \"\".concat(WIDGET_CLASS, \"-expander-icon-stub\");\r\nvar TreeViewBase = HierarchicalCollectionWidget.inherit({\r\n _supportedKeys(e) {\r\n var click = e => {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n this._itemClickHandler(e, $itemElement.children(\".\".concat(ITEM_CLASS)));\r\n var expandEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === addNamespace(clickEventName, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n this._expandEventHandler(e)\r\n }\r\n };\r\n var select = e => {\r\n e.preventDefault();\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n var checkboxInstance = this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n this._updateItemSelection(!currentState, $focusedElement.find(\".\".concat(ITEM_CLASS)).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = $(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return extend(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each((function() {\r\n var $node = $(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n }))\r\n }\r\n return cache.$nodeByKey[key] || $()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return $(element)\r\n },\r\n _activeStateUnit: \".\".concat(ITEM_CLASS),\r\n _widgetClass: () => WIDGET_CLASS,\r\n _getDefaultOptions() {\r\n var defaultOptions = extend(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n expandIcon: null,\r\n collapseIcon: null,\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n useNativeScrolling: true,\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null,\r\n _supportItemUrl: false\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => !nativeScrolling,\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }])\r\n },\r\n _initSelectedItems: noop,\r\n _syncSelectionOptions: asyncNoop,\r\n _fireSelectionChanged() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n when(selectionChangePromise).done(() => {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n })\r\n },\r\n _createSelectAllValueChangedAction() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange(value, previousValue) {\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var previousSelectAllEnabled = this._selectAllEnabled(previousValue);\r\n var previousItemsContainer = this._itemContainer(searchEnabled, previousSelectAllEnabled);\r\n this._detachClickEvent(previousItemsContainer);\r\n this._detachExpandEvent(previousItemsContainer);\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection() {\r\n var that = this;\r\n each(this._dataAdapter.getFullData(), (_, node) => {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n this._invalidate();\r\n break;\r\n case \"scrollDirection\":\r\n this.getScrollable().option(\"direction\", value);\r\n break;\r\n case \"useNativeScrolling\":\r\n this.getScrollable().option(\"useNative\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._attachExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n case \"_supportItemUrl\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n case \"expandIcon\":\r\n case \"collapseIcon\":\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(newItems => {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n })\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader() {\r\n return isFunction(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return Deferred().resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && isFunction(invocationResult.then)) {\r\n return fromPromise(invocationResult)\r\n }\r\n return Deferred().resolve([]).promise()\r\n },\r\n _combineFilter() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler() {\r\n this._renderEmptyMessage()\r\n },\r\n _init() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator() {\r\n this._treeViewLoadIndicator = $(\"<div>\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, LoadIndicator, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = $(\"<div>\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers() {\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", newItem => {\r\n this.option().items = this.option(\"items\").concat(newItem);\r\n this._dataAdapter.addItem(newItem);\r\n if (!this._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n this._updateLevel(this._parentIdGetter(newItem))\r\n }).on(\"removed\", removedKey => {\r\n var node = this._dataAdapter.getNodeByKey(removedKey);\r\n if (isDefined(node)) {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n this._markChildrenItemsToRemove(node);\r\n this._removeItems();\r\n this._dataAdapter.removeItem(removedKey);\r\n this._updateLevel(this._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove(node) {\r\n var keys = node.internalFields.childrenKeys;\r\n each(keys, (_, key) => {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(key)] = 0;\r\n this._markChildrenItemsToRemove(this._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems() {\r\n var items = extend(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n each(items, (index, item) => {\r\n if (!item) {\r\n this.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n return $(scrollable.content()).children()\r\n }\r\n return $()\r\n },\r\n _getContainerByParentKey(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n var scrollable = this.getScrollable();\r\n if (!scrollable) {\r\n this._renderScrollableContainer()\r\n }\r\n $(scrollable.content()).append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions() {\r\n var _a, _b, _c;\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort(),\r\n langParams: null === (_c = null === (_b = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.loadOptions) || void 0 === _b ? void 0 : _b.call(_a)) || void 0 === _c ? void 0 : _c.langParams\r\n }\r\n },\r\n _initMarkup() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this._setAriaRole()\r\n },\r\n _setAriaRole() {\r\n var {\r\n items: items\r\n } = this.option();\r\n if (null === items || void 0 === items ? void 0 : items.length) {\r\n this.setAria({\r\n role: \"tree\"\r\n })\r\n }\r\n },\r\n _renderContentImpl() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n $(this.getScrollable().content()).append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._attachExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded() || this._skipContentReadyAndItemExpanded;\r\n var scrollable = this.getScrollable();\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n },\r\n _renderScrollableContainer() {\r\n this._scrollable = this._createComponent($(\"<div>\").appendTo(this.$element()), Scrollable, {\r\n useNative: this.option(\"useNativeScrolling\"),\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer($parent) {\r\n var $container = $(\"<ul>\").addClass(NODE_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"group\", $container);\r\n if ($parent && $parent.length) {\r\n var itemData = this._getItemData($parent.children(\".\".concat(ITEM_CLASS)));\r\n if (this._expandedGetter(itemData)) {\r\n $container.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n $container.appendTo($parent)\r\n }\r\n return $container\r\n },\r\n _createDOMElement($nodeContainer, node) {\r\n var _a, _b;\r\n var $node = $(\"<li>\").addClass(NODE_CLASS).attr(DATA_ITEM_ID, this._encodeString(node.internalFields.key)).prependTo($nodeContainer);\r\n var attrs = {\r\n role: \"treeitem\",\r\n label: this._displayGetter(node.internalFields.item) || \"\",\r\n level: this._getLevel($nodeContainer)\r\n };\r\n var hasChildNodes = !!(null === (_b = null === (_a = null === node || void 0 === node ? void 0 : node.internalFields) || void 0 === _a ? void 0 : _a.childrenKeys) || void 0 === _b ? void 0 : _b.length);\r\n if (hasChildNodes) {\r\n attrs.expanded = node.internalFields.expanded || false\r\n }\r\n this.setAria(attrs, $node);\r\n return $node\r\n },\r\n _getLevel($nodeContainer) {\r\n var parent = $nodeContainer.parent();\r\n return parent.hasClass(\"dx-scrollable-content\") ? 1 : parseInt(parent.attr(\"aria-level\")) + 1\r\n },\r\n _showCheckboxes() {\r\n return \"none\" !== this.option(\"showCheckBoxesMode\")\r\n },\r\n _hasCustomExpanderIcons() {\r\n return this.option(\"expandIcon\") || this.option(\"collapseIcon\")\r\n },\r\n _selectAllEnabled(showCheckBoxesMode) {\r\n var mode = null !== showCheckBoxesMode && void 0 !== showCheckBoxesMode ? showCheckBoxesMode : this.option(\"showCheckBoxesMode\");\r\n return \"selectAll\" === mode && !this._isSingleSelection()\r\n },\r\n _renderItems($nodeContainer, nodes) {\r\n var length = nodes.length - 1;\r\n for (var i = length; i >= 0; i--) {\r\n this._renderItem(i, nodes[i], $nodeContainer)\r\n }\r\n this._renderedItemsCount += nodes.length\r\n },\r\n _renderItem(nodeIndex, node, $nodeContainer) {\r\n var $node = this._createDOMElement($nodeContainer, node);\r\n var nodeData = node.internalFields;\r\n var showCheckBox = this._showCheckboxes();\r\n $node.addClass(showCheckBox ? ITEM_WITH_CHECKBOX_CLASS : ITEM_WITHOUT_CHECKBOX_CLASS);\r\n $node.toggleClass(INVISIBLE_STATE_CLASS, false === nodeData.item.visible);\r\n if (this._hasCustomExpanderIcons()) {\r\n $node.addClass(ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS);\r\n $nodeContainer.addClass(CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS)\r\n }\r\n this.setAria(\"selected\", nodeData.selected, $node);\r\n this._toggleSelectedClass($node, nodeData.selected);\r\n if (nodeData.disabled) {\r\n this.setAria(\"disabled\", nodeData.disabled, $node)\r\n }\r\n this.callBase(this._renderedItemsCount + nodeIndex, nodeData.item, $node);\r\n var parent = this._getNode(node.internalFields.parentKey);\r\n if (!parent) {\r\n $node.addClass(ROOT_NODE_CLASS)\r\n }\r\n if (false !== nodeData.item.visible) {\r\n this._renderChildren($node, node)\r\n }\r\n },\r\n _setAriaSelectionAttribute: noop,\r\n _renderChildren($node, node) {\r\n if (!this._hasChildren(node)) {\r\n this._addLeafClass($node);\r\n $(\"<div>\").addClass(EXPANDER_ICON_STUB_CLASS).appendTo(this._getItem($node));\r\n return\r\n }\r\n if (this._hasCustomExpanderIcons()) {\r\n this._renderCustomExpanderIcons($node, node)\r\n } else {\r\n this._renderDefaultExpanderIcons($node, node)\r\n }\r\n if (this._shouldRenderSublevel(node.internalFields.expanded)) {\r\n this._loadSublevel(node).done(childNodes => {\r\n this._renderSublevel($node, this._getActualNode(node), childNodes)\r\n })\r\n }\r\n },\r\n _shouldRenderSublevel(expanded) {\r\n return expanded || !this.option(\"deferRendering\")\r\n },\r\n _getActualNode(cachedNode) {\r\n return this._dataAdapter.getNodeByKey(cachedNode.internalFields.key)\r\n },\r\n _hasChildren(node) {\r\n if (this._isVirtualMode() || this._useCustomChildrenLoader()) {\r\n return false !== this._hasItemsGetter(node.internalFields.item)\r\n }\r\n return this.callBase(node)\r\n },\r\n _loadSublevel(node) {\r\n var deferred = Deferred();\r\n var childrenNodes = this._getChildNodes(node);\r\n if (childrenNodes.length) {\r\n deferred.resolve(childrenNodes)\r\n } else {\r\n this._loadNestedItems(node).done(items => {\r\n deferred.resolve(this._dataAdapter.getNodesByItems(items))\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _getItemExtraPropNames: () => [\"url\", \"linkAttr\"],\r\n _addContent($container, itemData) {\r\n var {\r\n html: html,\r\n url: url\r\n } = itemData;\r\n if (this.option(\"_supportItemUrl\") && url) {\r\n $container.html(html);\r\n var link = this._getLinkContainer(this._getIconContainer(itemData), this._getTextContainer(itemData), itemData);\r\n $container.append(link)\r\n } else {\r\n this.callBase($container, itemData)\r\n }\r\n },\r\n _postprocessRenderItem(args) {\r\n var {\r\n itemData: itemData,\r\n itemElement: itemElement\r\n } = args;\r\n if (this._showCheckboxes()) {\r\n this._renderCheckBox(itemElement, this._getNode(itemData))\r\n }\r\n this.callBase(args)\r\n },\r\n _renderSublevel($node, node, childNodes) {\r\n var $nestedNodeContainer = this._renderNodeContainer($node, node);\r\n var childNodesByChildrenKeys = childNodes.filter(childNode => -1 !== node.internalFields.childrenKeys.indexOf(childNode.internalFields.key));\r\n this._renderItems($nestedNodeContainer, childNodesByChildrenKeys);\r\n if (childNodesByChildrenKeys.length && !node.internalFields.selected) {\r\n var firstChild = childNodesByChildrenKeys[0];\r\n this._updateParentsState(firstChild, this._getNodeElement(firstChild))\r\n }\r\n this._normalizeIconState($node, childNodesByChildrenKeys.length);\r\n if (node.internalFields.expanded) {\r\n $nestedNodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n },\r\n _executeItemRenderAction(itemIndex, itemData, itemElement) {\r\n var node = this._getNode(itemElement);\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: itemIndex,\r\n itemData: itemData,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _addLeafClass($node) {\r\n $node.addClass(IS_LEAF)\r\n },\r\n _expandEventHandler(e) {\r\n var $nodeElement = $(e.currentTarget.parentNode);\r\n if (!$nodeElement.hasClass(IS_LEAF)) {\r\n this._toggleExpandedState(e.currentTarget, void 0, e)\r\n }\r\n },\r\n _attachExpandEvent() {\r\n var expandedEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var $itemsContainer = this._itemContainer();\r\n this._detachExpandEvent($itemsContainer);\r\n eventsEngine.on($itemsContainer, expandedEventName, this._itemSelector(), this._expandEventHandler.bind(this))\r\n },\r\n _detachExpandEvent(itemsContainer) {\r\n eventsEngine.off(itemsContainer, \".\".concat(EXPAND_EVENT_NAMESPACE), this._itemSelector())\r\n },\r\n _getEventNameByOption(name) {\r\n var event = \"click\" === name ? clickEventName : dblclickEvent;\r\n return addNamespace(event, EXPAND_EVENT_NAMESPACE)\r\n },\r\n _getNode(identifier) {\r\n if (!isDefined(identifier)) {\r\n return null\r\n }\r\n if (identifier.internalFields) {\r\n return identifier\r\n }\r\n if (isPrimitive(identifier)) {\r\n return this._dataAdapter.getNodeByKey(identifier)\r\n }\r\n var itemElement = $(identifier).get(0);\r\n if (!itemElement) {\r\n return null\r\n }\r\n if (domAdapter.isElementNode(itemElement)) {\r\n return this._getNodeByElement(itemElement)\r\n }\r\n return this._dataAdapter.getNodeByItem(itemElement)\r\n },\r\n _getNodeByElement(itemElement) {\r\n var $node = $(itemElement).closest(\".\".concat(NODE_CLASS));\r\n var key = this._decodeString($node.attr(DATA_ITEM_ID));\r\n return this._dataAdapter.getNodeByKey(key)\r\n },\r\n _toggleExpandedState(itemElement, state, e) {\r\n var node = this._getNode(itemElement);\r\n if (!node) {\r\n return Deferred().reject().promise()\r\n }\r\n if (node.internalFields.disabled) {\r\n return Deferred().reject().promise()\r\n }\r\n var currentState = node.internalFields.expanded;\r\n if (currentState === state) {\r\n return Deferred().resolve().promise()\r\n }\r\n if (this._hasChildren(node)) {\r\n var $node = this._getNodeElement(node);\r\n if ($node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS, \":not(.\").concat(INVISIBLE_STATE_CLASS, \")\")).length) {\r\n return Deferred().reject().promise()\r\n }\r\n if (!currentState && !this._nodeHasRenderedChildren($node)) {\r\n this._createLoadIndicator($node)\r\n }\r\n }\r\n if (!isDefined(state)) {\r\n state = !currentState\r\n }\r\n this._dataAdapter.toggleExpansion(node.internalFields.key, state);\r\n return this._updateExpandedItemsUI(node, state, e)\r\n },\r\n _nodeHasRenderedChildren($node) {\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n return $nodeContainer.not(\":empty\").length\r\n },\r\n _getItem: $node => $node.children(\".\".concat(ITEM_CLASS)).eq(0),\r\n _createLoadIndicator($node) {\r\n var $treeviewItem = this._getItem($node);\r\n this._createComponent($(\"<div>\").addClass(NODE_LOAD_INDICATOR_CLASS), LoadIndicator, {}).$element().appendTo($treeviewItem);\r\n var $icon = $treeviewItem.children(\".\".concat(TOGGLE_ITEM_VISIBILITY_CLASS, \",.\").concat(CUSTOM_EXPAND_ICON_CLASS));\r\n $icon.hide()\r\n },\r\n _renderExpanderIcon($node, node, $icon, iconClass) {\r\n $icon.appendTo(this._getItem($node));\r\n $icon.addClass(iconClass);\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderDefaultExpanderIcons($node, node) {\r\n var $treeViewItem = this._getItem($node);\r\n var $icon = $(\"<div>\").addClass(TOGGLE_ITEM_VISIBILITY_CLASS).appendTo($treeViewItem);\r\n if (node.internalFields.expanded) {\r\n $icon.addClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS);\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderCustomExpanderIcons($node, node) {\r\n var {\r\n expandIcon: expandIcon,\r\n collapseIcon: collapseIcon\r\n } = this.option();\r\n var $expandIcon = getImageContainer(null !== expandIcon && void 0 !== expandIcon ? expandIcon : collapseIcon);\r\n var $collapseIcon = getImageContainer(null !== collapseIcon && void 0 !== collapseIcon ? collapseIcon : expandIcon);\r\n this._renderExpanderIcon($node, node, $expandIcon, CUSTOM_EXPAND_ICON_CLASS);\r\n this._renderExpanderIcon($node, node, $collapseIcon, CUSTOM_COLLAPSE_ICON_CLASS);\r\n var isNodeExpanded = node.internalFields.expanded;\r\n if (isNodeExpanded) {\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n this._toggleCustomExpanderIcons($expandIcon, $collapseIcon, isNodeExpanded)\r\n },\r\n _renderToggleItemVisibilityIconClick($icon, node) {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off($icon, eventName);\r\n eventsEngine.on($icon, eventName, e => {\r\n this._toggleExpandedState(node.internalFields.key, void 0, e);\r\n return false\r\n })\r\n },\r\n _toggleCustomExpanderIcons($expandIcon, $collapseIcon, isNodeExpanded) {\r\n $collapseIcon.toggle(isNodeExpanded);\r\n $expandIcon.toggle(!isNodeExpanded)\r\n },\r\n _updateExpandedItemsUI(node, state, e) {\r\n var $node = this._getNodeElement(node);\r\n var isHiddenNode = !$node.length || state && $node.is(\":hidden\");\r\n if (this.option(\"expandNodesRecursive\") && isHiddenNode) {\r\n var parentNode = this._getNode(node.internalFields.parentKey);\r\n if (parentNode) {\r\n this._updateExpandedItemsUI(parentNode, state, e)\r\n }\r\n }\r\n if (!this._hasCustomExpanderIcons()) {\r\n var $icon = this._getItem($node).children(\".\".concat(TOGGLE_ITEM_VISIBILITY_CLASS));\r\n $icon.toggleClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS, state)\r\n } else if (this._nodeHasRenderedChildren($node)) {\r\n var $item = this._getItem($node);\r\n var $childExpandIcons = $item.children(\".\".concat(CUSTOM_EXPAND_ICON_CLASS));\r\n var $childCollapseIcons = $item.children(\".\".concat(CUSTOM_COLLAPSE_ICON_CLASS));\r\n this._toggleCustomExpanderIcons($childExpandIcons, $childCollapseIcons, state)\r\n }\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n var nodeContainerExists = $nodeContainer.length > 0;\r\n var completionCallback = Deferred();\r\n if (!state || nodeContainerExists && !$nodeContainer.is(\":empty\")) {\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n if (0 === node.internalFields.childrenKeys.length && (this._isVirtualMode() || this._useCustomChildrenLoader())) {\r\n this._loadNestedItemsWithUpdate(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n this._renderSublevel($node, node, this._getChildNodes(node));\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n },\r\n _loadNestedItemsWithUpdate(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n this._loadNestedItems(node).done(items => {\r\n var actualNodeData = this._getActualNode(node);\r\n this._renderSublevel($node, actualNodeData, this._dataAdapter.getNodesByItems(items));\r\n if (!items || !items.length) {\r\n completionCallback.resolve();\r\n return\r\n }\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(actualNodeData, state, e, completionCallback)\r\n })\r\n },\r\n _loadNestedItems(node) {\r\n if (this._useCustomChildrenLoader()) {\r\n var publicNode = this._dataAdapter.getPublicNode(node);\r\n return this._loadChildrenByCustomLoader(publicNode).done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n }\r\n if (!this._isVirtualMode()) {\r\n return Deferred().resolve([]).promise()\r\n }\r\n this._filter.internal = [this.option(\"parentIdExpr\"), node.internalFields.key];\r\n this._dataSource.filter(this._combineFilter());\r\n return this._dataSource.load().done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n },\r\n _areNodesExists(newItems, items) {\r\n var keyOfRootItem = this.keyOf(newItems[0]);\r\n var fullData = this._dataAdapter.getFullData();\r\n return !!this._dataAdapter.getNodeByKey(keyOfRootItem, fullData)\r\n },\r\n _appendItems(newItems) {\r\n this.option().items = this.option(\"items\").concat(newItems);\r\n this._initDataAdapter()\r\n },\r\n _animateNodeContainer(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if (node && completionCallback && 0 === $nodeContainer.length) {\r\n completionCallback.resolve()\r\n }\r\n $nodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS);\r\n var nodeHeight = getHeight($nodeContainer);\r\n fx.stop($nodeContainer, true);\r\n fx.animate($nodeContainer, {\r\n type: \"custom\",\r\n duration: this.option(\"animationEnabled\") ? 400 : 0,\r\n from: {\r\n maxHeight: state ? 0 : nodeHeight\r\n },\r\n to: {\r\n maxHeight: state ? nodeHeight : 0\r\n },\r\n complete: function() {\r\n $nodeContainer.css(\"maxHeight\", \"none\");\r\n $nodeContainer.toggleClass(OPENED_NODE_CONTAINER_CLASS, state);\r\n this.setAria(\"expanded\", state, $node);\r\n this.getScrollable().update();\r\n this._fireExpandedStateUpdatedEvent(state, node, e);\r\n if (completionCallback) {\r\n completionCallback.resolve()\r\n }\r\n }.bind(this)\r\n })\r\n },\r\n _fireExpandedStateUpdatedEvent(isExpanded, node, e) {\r\n if (!this._hasChildren(node) || this._skipContentReadyAndItemExpanded) {\r\n return\r\n }\r\n var optionName = isExpanded ? \"onItemExpanded\" : \"onItemCollapsed\";\r\n if (isDefined(e)) {\r\n this._itemDXEventHandler(e, optionName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n } else {\r\n var target = this._getNodeElement(node);\r\n this._itemEventHandler(target, optionName, {\r\n event: e,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n }\r\n },\r\n _normalizeIconState($node, hasNewItems) {\r\n var _a;\r\n var $loadIndicator = $node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS));\r\n if ($loadIndicator.length) {\r\n null === (_a = LoadIndicator.getInstance($loadIndicator)) || void 0 === _a ? void 0 : _a.option(\"visible\", false)\r\n }\r\n var $treeViewItem = this._getItem($node);\r\n var $toggleItem = $treeViewItem.children(\".\".concat(CUSTOM_COLLAPSE_ICON_CLASS, \",.\").concat(TOGGLE_ITEM_VISIBILITY_CLASS));\r\n if (hasNewItems) {\r\n $toggleItem.show();\r\n return\r\n }\r\n $toggleItem.removeClass(TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $node.addClass(IS_LEAF)\r\n },\r\n _emptyMessageContainer() {\r\n var scrollable = this.getScrollable();\r\n return scrollable ? $(scrollable.content()) : this.callBase()\r\n },\r\n _renderContent() {\r\n var items = this.option(\"items\");\r\n if (items && items.length) {\r\n this._contentAlreadyRendered = true\r\n }\r\n this.callBase()\r\n },\r\n _renderSelectAllItem($container) {\r\n var {\r\n selectAllText: selectAllText,\r\n focusStateEnabled: focusStateEnabled\r\n } = this.option();\r\n $container = $container || this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n this._$selectAllItem = $(\"<div>\").addClass(SELECT_ALL_ITEM_CLASS);\r\n var value = this._dataAdapter.isAllSelected();\r\n this._createComponent(this._$selectAllItem, CheckBox, {\r\n value: value,\r\n elementAttr: {\r\n \"aria-label\": \"Select All\"\r\n },\r\n text: selectAllText,\r\n focusStateEnabled: focusStateEnabled,\r\n onValueChanged: this._onSelectAllCheckboxValueChanged.bind(this),\r\n onInitialized: _ref => {\r\n var {\r\n component: component\r\n } = _ref;\r\n component.registerKeyHandler(\"enter\", () => {\r\n component.option(\"value\", !component.option(\"value\"))\r\n })\r\n }\r\n });\r\n this._toggleSelectedClass(this._$selectAllItem, value);\r\n $container.before(this._$selectAllItem)\r\n },\r\n _onSelectAllCheckboxValueChanged(args) {\r\n this._toggleSelectAll(args);\r\n this._fireSelectAllValueChanged(args.value)\r\n },\r\n _toggleSelectAll(args) {\r\n this._dataAdapter.toggleSelectAll(args.value);\r\n this._updateItemsUI();\r\n this._fireSelectionChanged()\r\n },\r\n _renderCheckBox($node, node) {\r\n var $checkbox = $(\"<div>\").appendTo($node);\r\n this._createComponent($checkbox, CheckBox, {\r\n value: node.internalFields.selected,\r\n onValueChanged: this._changeCheckboxValue.bind(this),\r\n focusStateEnabled: false,\r\n elementAttr: {\r\n \"aria-label\": \"Check State\"\r\n },\r\n disabled: this._disabledGetter(node)\r\n })\r\n },\r\n _toggleSelectedClass($node, value) {\r\n $node.toggleClass(SELECTED_ITEM_CLASS, !!value)\r\n },\r\n _toggleNodeDisabledState(node, state) {\r\n var $node = this._getNodeElement(node);\r\n var $item = $node.find(\".\".concat(ITEM_CLASS)).eq(0);\r\n this._dataAdapter.toggleNodeDisabledState(node.internalFields.key, state);\r\n $item.toggleClass(DISABLED_STATE_CLASS, !!state);\r\n if (this._showCheckboxes()) {\r\n var checkbox = this._getCheckBoxInstance($node);\r\n checkbox.option(\"disabled\", !!state)\r\n }\r\n },\r\n _itemOptionChanged(item, property, value) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n if (property === this.option(\"disabledExpr\")) {\r\n this._toggleNodeDisabledState(node, value)\r\n }\r\n },\r\n _changeCheckboxValue(e) {\r\n var $node = $(e.element).closest(\".\".concat(NODE_CLASS));\r\n var $item = this._getItem($node);\r\n var item = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n var {\r\n value: value\r\n } = e;\r\n if (node && node.internalFields.selected === value) {\r\n return\r\n }\r\n this._updateItemSelection(value, item, e.event)\r\n },\r\n _isSingleSelection() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _isRecursiveSelection() {\r\n return this.option(\"selectNodesRecursive\") && \"single\" !== this.option(\"selectionMode\")\r\n },\r\n _isLastSelectedBranch(publicNode, selectedNodesKeys, deep) {\r\n var keyIndex = selectedNodesKeys.indexOf(publicNode.key);\r\n if (keyIndex >= 0) {\r\n selectedNodesKeys.splice(keyIndex, 1)\r\n }\r\n if (deep) {\r\n each(publicNode.children, (_, childNode) => {\r\n this._isLastSelectedBranch(childNode, selectedNodesKeys, true)\r\n })\r\n }\r\n if (publicNode.parent) {\r\n this._isLastSelectedBranch(publicNode.parent, selectedNodesKeys)\r\n }\r\n return 0 === selectedNodesKeys.length\r\n },\r\n _isLastRequired(node) {\r\n var selectionRequired = this.option(\"selectionRequired\");\r\n var isSingleMode = this._isSingleSelection();\r\n var selectedNodesKeys = this.getSelectedNodeKeys();\r\n if (!selectionRequired) {\r\n return\r\n }\r\n if (isSingleMode) {\r\n return 1 === selectedNodesKeys.length\r\n }\r\n return this._isLastSelectedBranch(node.internalFields.publicNode, selectedNodesKeys.slice(), true)\r\n },\r\n _updateItemSelection(value, itemElement, dxEvent) {\r\n var node = this._getNode(itemElement);\r\n if (!node || false === node.visible) {\r\n return false\r\n }\r\n if (node.internalFields.selected === value) {\r\n return true\r\n }\r\n if (!value && this._isLastRequired(node)) {\r\n if (this._showCheckboxes()) {\r\n var $node = this._getNodeElement(node);\r\n this._getCheckBoxInstance($node).option(\"value\", true)\r\n }\r\n return false\r\n }\r\n if (value && this._isSingleSelection()) {\r\n var selectedKeys = this.getSelectedNodeKeys();\r\n each(selectedKeys, (index, key) => {\r\n this._dataAdapter.toggleSelection(key, false);\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(this._getNode(key))\r\n })\r\n }\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value);\r\n var isAllSelected = this._dataAdapter.isAllSelected();\r\n var needFireSelectAllChanged = this._selectAllEnabled() && this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\") !== isAllSelected;\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(node, dxEvent);\r\n this._fireSelectionChanged();\r\n if (needFireSelectAllChanged) {\r\n this._fireSelectAllValueChanged(isAllSelected)\r\n }\r\n return true\r\n },\r\n _fireItemSelectionChanged(node, dxEvent) {\r\n var initiator = dxEvent || this._findItemElementByItem(node.internalFields.item);\r\n var handler = dxEvent ? this._itemDXEventHandler : this._itemEventHandler;\r\n handler.call(this, initiator, \"onItemSelectionChanged\", {\r\n node: this._dataAdapter.getPublicNode(node),\r\n itemData: node.internalFields.item\r\n })\r\n },\r\n _getCheckBoxInstance($node) {\r\n var $treeViewItem = this._getItem($node);\r\n return $treeViewItem.children(\".\".concat(CHECK_BOX_CLASS)).dxCheckBox(\"instance\")\r\n },\r\n _updateItemsUI() {\r\n var cache = {};\r\n each(this._dataAdapter.getData(), (_, node) => {\r\n var $node = this._getNodeElement(node, cache);\r\n var nodeSelection = node.internalFields.selected;\r\n if (!$node.length) {\r\n return\r\n }\r\n this._toggleSelectedClass($node, nodeSelection);\r\n this.setAria(\"selected\", nodeSelection, $node);\r\n if (this._showCheckboxes()) {\r\n this._getCheckBoxInstance($node).option(\"value\", nodeSelection)\r\n }\r\n });\r\n if (this._selectAllEnabled()) {\r\n var selectAllCheckbox = this._$selectAllItem.dxCheckBox(\"instance\");\r\n selectAllCheckbox.option(\"onValueChanged\", void 0);\r\n selectAllCheckbox.option(\"value\", this._dataAdapter.isAllSelected());\r\n selectAllCheckbox.option(\"onValueChanged\", this._onSelectAllCheckboxValueChanged.bind(this))\r\n }\r\n },\r\n _updateParentsState(node, $node) {\r\n if (!$node) {\r\n return\r\n }\r\n var parentNode = this._dataAdapter.getNodeByKey(node.internalFields.parentKey);\r\n var $parentNode = $($node.parents(\".\".concat(NODE_CLASS))[0]);\r\n if (this._showCheckboxes()) {\r\n var parentValue = parentNode.internalFields.selected;\r\n this._getCheckBoxInstance($parentNode).option(\"value\", parentValue);\r\n this._toggleSelectedClass($parentNode, parentValue)\r\n }\r\n if (parentNode.internalFields.parentKey !== this.option(\"rootValue\")) {\r\n this._updateParentsState(parentNode, $parentNode)\r\n }\r\n },\r\n _itemEventHandlerImpl(initiator, action, actionArgs) {\r\n var $itemElement = $(initiator).closest(\".\".concat(NODE_CLASS)).children(\".\".concat(ITEM_CLASS));\r\n return action(extend(this._extendActionArgs($itemElement), actionArgs))\r\n },\r\n _itemContextMenuHandler(e) {\r\n this._createEventHandler(\"onItemContextMenu\", e)\r\n },\r\n _itemHoldHandler(e) {\r\n this._createEventHandler(\"onItemHold\", e)\r\n },\r\n _createEventHandler(eventName, e) {\r\n var node = this._getNodeByElement(e.currentTarget);\r\n this._itemDXEventHandler(e, eventName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _itemClass: () => ITEM_CLASS,\r\n _itemDataKey: () => ITEM_DATA_KEY,\r\n _attachClickEvent() {\r\n var $itemContainer = this._itemContainer();\r\n this._detachClickEvent($itemContainer);\r\n var {\r\n clickEventNamespace: clickEventNamespace,\r\n itemSelector: itemSelector,\r\n pointerDownEventNamespace: pointerDownEventNamespace,\r\n nodeSelector: nodeSelector\r\n } = this._getItemClickEventData();\r\n eventsEngine.on($itemContainer, clickEventNamespace, itemSelector, e => {\r\n if ($(e.target).hasClass(CHECK_BOX_ICON_CLASS) || $(e.target).hasClass(CHECK_BOX_CLASS)) {\r\n return\r\n }\r\n this._itemClickHandler(e, $(e.currentTarget))\r\n });\r\n eventsEngine.on($itemContainer, pointerDownEventNamespace, nodeSelector, e => {\r\n this._itemPointerDownHandler(e)\r\n })\r\n },\r\n _detachClickEvent(itemsContainer) {\r\n var {\r\n clickEventNamespace: clickEventNamespace,\r\n itemSelector: itemSelector,\r\n pointerDownEventNamespace: pointerDownEventNamespace,\r\n nodeSelector: nodeSelector\r\n } = this._getItemClickEventData();\r\n eventsEngine.off(itemsContainer, clickEventNamespace, itemSelector);\r\n eventsEngine.off(itemsContainer, pointerDownEventNamespace, nodeSelector)\r\n },\r\n _getItemClickEventData() {\r\n var itemSelector = \".\".concat(this._itemClass());\r\n var nodeSelector = \".\".concat(NODE_CLASS, \", .\").concat(SELECT_ALL_ITEM_CLASS);\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEventNamespace = addNamespace(pointerEvents.down, this.NAME);\r\n return {\r\n clickEventNamespace: clickEventNamespace,\r\n itemSelector: itemSelector,\r\n pointerDownEventNamespace: pointerDownEventNamespace,\r\n nodeSelector: nodeSelector\r\n }\r\n },\r\n _itemClick(actionArgs) {\r\n var args = actionArgs.args[0];\r\n var target = args.event.target[0] || args.event.target;\r\n var link = target.getElementsByClassName(ITEM_URL_CLASS)[0];\r\n if (args.itemData.url && link) {\r\n link.click()\r\n }\r\n },\r\n _itemClickHandler(e, $item) {\r\n var itemData = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n this._itemDXEventHandler(e, \"onItemClick\", {\r\n node: this._dataAdapter.getPublicNode(node)\r\n }, {\r\n beforeExecute: this._itemClick\r\n });\r\n if (this.option(\"selectByClick\") && !e.isDefaultPrevented()) {\r\n this._updateItemSelection(!node.internalFields.selected, itemData, e)\r\n }\r\n },\r\n _updateSelectionToFirstItem($items, startIndex) {\r\n var itemIndex = startIndex;\r\n while (itemIndex >= 0) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\".concat(ITEM_CLASS)).get(0));\r\n itemIndex--\r\n }\r\n },\r\n _updateSelectionToLastItem($items, startIndex) {\r\n var {\r\n length: length\r\n } = $items;\r\n var itemIndex = startIndex;\r\n while (itemIndex < length) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\".concat(ITEM_CLASS)).get(0));\r\n itemIndex++\r\n }\r\n },\r\n focus() {\r\n if (this._selectAllEnabled()) {\r\n eventsEngine.trigger(this._$selectAllItem, \"focus\");\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _focusInHandler(e) {\r\n this._updateFocusState(e, true);\r\n var isSelectAllItem = $(e.target).hasClass(SELECT_ALL_ITEM_CLASS);\r\n if (isSelectAllItem || this.option(\"focusedElement\")) {\r\n clearTimeout(this._setFocusedItemTimeout);\r\n this._setFocusedItemTimeout = setTimeout(() => {\r\n var element = isSelectAllItem ? getPublicElement(this._$selectAllItem) : $(this.option(\"focusedElement\"));\r\n this._setFocusedItem(element)\r\n });\r\n return\r\n }\r\n var $activeItem = this._getActiveItem();\r\n this.option(\"focusedElement\", getPublicElement($activeItem.closest(\".\".concat(NODE_CLASS))))\r\n },\r\n _itemPointerDownHandler(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n var $target = $(e.target).closest(\".\".concat(NODE_CLASS, \", .\").concat(SELECT_ALL_ITEM_CLASS));\r\n if (!$target.length) {\r\n return\r\n }\r\n var itemElement = $target.hasClass(DISABLED_STATE_CLASS) ? null : $target;\r\n this.option(\"focusedElement\", getPublicElement(itemElement))\r\n },\r\n _findNonDisabledNodes: $nodes => $nodes.not((function() {\r\n return $(this).children(\".\".concat(ITEM_CLASS)).hasClass(DISABLED_STATE_CLASS)\r\n })),\r\n _moveFocus(location, e) {\r\n var FOCUS_LEFT = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var FOCUS_RIGHT = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).each((function() {\r\n fx.stop(this, true)\r\n }));\r\n var $items = this._nodeElements();\r\n if (!$items || !$items.length) {\r\n return\r\n }\r\n switch (location) {\r\n case \"up\":\r\n var $prevItem = this._prevItem($items);\r\n this.option(\"focusedElement\", getPublicElement($prevItem));\r\n var prevItemElement = this._getNodeItemElement($prevItem);\r\n this.getScrollable().scrollToElement(prevItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, prevItemElement)\r\n }\r\n break;\r\n case \"down\":\r\n var $nextItem = this._nextItem($items);\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n var nextItemElement = this._getNodeItemElement($nextItem);\r\n this.getScrollable().scrollToElement(nextItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, nextItemElement)\r\n }\r\n break;\r\n case \"first\":\r\n var $firstItem = $items.first();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToFirstItem($items, $items.index(this._prevItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($firstItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($firstItem));\r\n break;\r\n case \"last\":\r\n var $lastItem = $items.last();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToLastItem($items, $items.index(this._nextItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($lastItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($lastItem));\r\n break;\r\n case FOCUS_RIGHT:\r\n this._expandFocusedContainer();\r\n break;\r\n case FOCUS_LEFT:\r\n this._collapseFocusedContainer();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getNodeItemElement: $node => $node.find(\".\".concat(ITEM_CLASS)).get(0),\r\n _nodeElements() {\r\n return this.$element().find(\".\".concat(NODE_CLASS)).not(\":hidden\")\r\n },\r\n _expandFocusedContainer() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length || $focusedNode.hasClass(IS_LEAF)) {\r\n return\r\n }\r\n var $node = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if ($node.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var $nextItem = this._nextItem(this._findNonDisabledNodes(this._nodeElements()));\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($nextItem));\r\n return\r\n }\r\n var node = this._getNodeByElement(this._getItem($focusedNode));\r\n this._toggleExpandedState(node, true)\r\n },\r\n _getClosestNonDisabledNode($node) {\r\n do {\r\n $node = $node.parent().closest(\".\".concat(NODE_CLASS))\r\n } while ($node.children(\".dx-treeview-item.dx-state-disabled\").length);\r\n return $node\r\n },\r\n _collapseFocusedContainer() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length) {\r\n return\r\n }\r\n var nodeElement = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if (!$focusedNode.hasClass(IS_LEAF) && nodeElement.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var node = this._getNodeByElement(this._getItem($focusedNode));\r\n this._toggleExpandedState(node, false)\r\n } else {\r\n var collapsedNode = this._getClosestNonDisabledNode($focusedNode);\r\n collapsedNode.length && this.option(\"focusedElement\", getPublicElement(collapsedNode));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement(collapsedNode))\r\n }\r\n },\r\n _encodeString: value => isString(value) ? encodeURI(value) : value,\r\n _decodeString: value => isString(value) ? decodeURI(value) : value,\r\n getScrollable() {\r\n return this._scrollable\r\n },\r\n updateDimensions() {\r\n var deferred = Deferred();\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n scrollable.update().done(() => {\r\n deferred.resolveWith(this)\r\n })\r\n } else {\r\n deferred.resolveWith(this)\r\n }\r\n return deferred.promise()\r\n },\r\n selectItem(itemElement) {\r\n return this._updateItemSelection(true, itemElement)\r\n },\r\n unselectItem(itemElement) {\r\n return this._updateItemSelection(false, itemElement)\r\n },\r\n expandItem(itemElement) {\r\n return this._toggleExpandedState(itemElement, true)\r\n },\r\n collapseItem(itemElement) {\r\n return this._toggleExpandedState(itemElement, false)\r\n },\r\n getNodes() {\r\n return this._dataAdapter.getTreeNodes()\r\n },\r\n getSelectedNodes() {\r\n return this.getSelectedNodeKeys().map(key => {\r\n var node = this._dataAdapter.getNodeByKey(key);\r\n return this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n getSelectedNodeKeys() {\r\n return this._dataAdapter.getSelectedNodesKeys()\r\n },\r\n selectAll() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", true)\r\n } else {\r\n this._toggleSelectAll({\r\n value: true\r\n })\r\n }\r\n },\r\n unselectAll() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", false)\r\n } else {\r\n this._toggleSelectAll({\r\n value: false\r\n })\r\n }\r\n },\r\n _allItemsExpandedHandler() {\r\n this._skipContentReadyAndItemExpanded = false;\r\n this._fireContentReadyAction()\r\n },\r\n expandAll() {\r\n var nodes = this._dataAdapter.getData();\r\n var expandingPromises = [];\r\n this._skipContentReadyAndItemExpanded = true;\r\n nodes.forEach(node => expandingPromises.push(this._toggleExpandedState(node.internalFields.key, true)));\r\n Promise.allSettled(expandingPromises).then(() => {\r\n var _a;\r\n return null === (_a = this._allItemsExpandedHandler) || void 0 === _a ? void 0 : _a.call(this)\r\n })\r\n },\r\n collapseAll() {\r\n each(this._dataAdapter.getExpandedNodesKeys(), (_, key) => {\r\n this._toggleExpandedState(key, false)\r\n })\r\n },\r\n scrollToItem(keyOrItemOrElement) {\r\n var node = this._getNode(keyOrItemOrElement);\r\n if (!node) {\r\n return Deferred().reject().promise()\r\n }\r\n var nodeKeysToExpand = [];\r\n var parentNode = node.internalFields.publicNode.parent;\r\n while (null != parentNode) {\r\n if (!parentNode.expanded) {\r\n nodeKeysToExpand.push(parentNode.key)\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n var scrollCallback = Deferred();\r\n this._expandNodes(nodeKeysToExpand.reverse()).always(() => {\r\n var $element = this._getNodeElement(node);\r\n if ($element && $element.length) {\r\n this.scrollToElementTopLeft($element.get(0));\r\n scrollCallback.resolve()\r\n } else {\r\n scrollCallback.reject()\r\n }\r\n });\r\n return scrollCallback.promise()\r\n },\r\n scrollToElementTopLeft(targetElement) {\r\n var scrollable = this.getScrollable();\r\n var {\r\n scrollDirection: scrollDirection,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var targetLocation = {\r\n top: 0,\r\n left: 0\r\n };\r\n var relativeOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement);\r\n if (scrollDirection !== DIRECTION_VERTICAL) {\r\n var containerElement = $(scrollable.container()).get(0);\r\n targetLocation.left = rtlEnabled ? relativeOffset.left + targetElement.offsetWidth - containerElement.clientWidth : relativeOffset.left\r\n }\r\n if (scrollDirection !== DIRECTION_HORIZONTAL) {\r\n targetLocation.top = relativeOffset.top\r\n }\r\n scrollable.scrollTo(targetLocation)\r\n },\r\n _expandNodes(keysToExpand) {\r\n if (!keysToExpand || 0 === keysToExpand.length) {\r\n return Deferred().resolve().promise()\r\n }\r\n var resultCallback = Deferred();\r\n var callbacksByNodes = keysToExpand.map(key => this.expandItem(key));\r\n when.apply($, callbacksByNodes).done(() => resultCallback.resolve()).fail(() => resultCallback.reject());\r\n return resultCallback.promise()\r\n },\r\n _dispose() {\r\n this.callBase();\r\n clearTimeout(this._setFocusedItemTimeout);\r\n this._allItemsExpandedHandler = null\r\n }\r\n});\r\nexport default TreeViewBase;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tree_view/m_tree_view.search.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport TextBox from \"../../../ui/text_box\";\r\nimport searchBoxMixin from \"../../../ui/widget/ui.search_box_mixin\";\r\nimport TreeViewBase from \"./m_tree_view.base\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-node-container\");\r\nvar TreeViewSearch = TreeViewBase.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: className => \"\".concat(WIDGET_CLASS, \"-\").concat(className),\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"searchValue\":\r\n if (this._showCheckboxes() && this._isRecursiveSelection()) {\r\n this._removeSelection()\r\n }\r\n this._initDataAdapter();\r\n this._updateSearch();\r\n this._repaintContainer();\r\n this.option(\"focusedElement\", null);\r\n break;\r\n case \"searchExpr\":\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"searchMode\":\r\n this.option(\"expandNodesRecursive\") ? this._updateDataAdapter() : this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateDataAdapter() {\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", false);\r\n this._initDataAdapter();\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", true)\r\n },\r\n _getDataAdapterOptions() {\r\n return extend(this.callBase(), {\r\n searchValue: this.option(\"searchValue\"),\r\n searchMode: this.option(\"searchMode\") || \"contains\",\r\n searchExpr: this.option(\"searchExpr\")\r\n })\r\n },\r\n _getNodeContainer() {\r\n return this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first()\r\n },\r\n _updateSearch() {\r\n if (this._searchEditor) {\r\n var editorOptions = this._getSearchEditorOptions();\r\n this._searchEditor.option(editorOptions)\r\n }\r\n },\r\n _repaintContainer() {\r\n var $container = this._getNodeContainer();\r\n var rootNodes;\r\n if ($container.length) {\r\n $container.empty();\r\n rootNodes = this._dataAdapter.getRootNodes();\r\n this._renderEmptyMessage(rootNodes);\r\n this._renderItems($container, rootNodes);\r\n this._fireContentReadyAction()\r\n }\r\n },\r\n _focusTarget() {\r\n return this._itemContainer(this.option(\"searchEnabled\"))\r\n },\r\n _cleanItemContainer() {\r\n this.$element().empty()\r\n },\r\n _itemContainer(isSearchMode, selectAllEnabled) {\r\n null !== selectAllEnabled && void 0 !== selectAllEnabled ? selectAllEnabled : selectAllEnabled = this._selectAllEnabled();\r\n if (selectAllEnabled) {\r\n return this._getNodeContainer()\r\n }\r\n if (this._scrollable && isSearchMode) {\r\n return $(this._scrollable.content())\r\n }\r\n return this.callBase()\r\n },\r\n _addWidgetClass() {\r\n this.$element().addClass(this._widgetClass())\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._removeSearchBox()\r\n }\r\n});\r\nregisterComponent(\"dxTreeView\", TreeViewSearch);\r\nexport default TreeViewSearch;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_chooser/m_column_chooser.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Button from \"../../../../ui/button\";\r\nimport Popup from \"../../../../ui/popup/ui.popup\";\r\nimport {\r\n current,\r\n isGeneric,\r\n isMaterial as isMaterialTheme\r\n} from \"../../../../ui/themes\";\r\nimport TreeView from \"../../../../ui/tree_view\";\r\nimport modules from \"../m_modules\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar COLUMN_CHOOSER_CLASS = \"column-chooser\";\r\nvar COLUMN_CHOOSER_BUTTON_CLASS = \"column-chooser-button\";\r\nvar NOTOUCH_ACTION_CLASS = \"notouch-action\";\r\nvar COLUMN_CHOOSER_LIST_CLASS = \"column-chooser-list\";\r\nvar COLUMN_CHOOSER_PLAIN_CLASS = \"column-chooser-plain\";\r\nvar COLUMN_CHOOSER_DRAG_CLASS = \"column-chooser-mode-drag\";\r\nvar COLUMN_CHOOSER_SELECT_CLASS = \"column-chooser-mode-select\";\r\nvar COLUMN_CHOOSER_ICON_NAME = \"column-chooser\";\r\nvar COLUMN_CHOOSER_ITEM_CLASS = \"dx-column-chooser-item\";\r\nvar COLUMN_OPTIONS_USED_IN_ITEMS = [\"showInColumnChooser\", \"caption\", \"allowHiding\", \"visible\", \"cssClass\", \"ownerBand\"];\r\nvar processItems = function(that, chooserColumns) {\r\n var items = [];\r\n var isSelectMode = that.isSelectMode();\r\n var isRecursive = that.option(\"columnChooser.selection.recursive\");\r\n if (chooserColumns.length) {\r\n each(chooserColumns, (index, column) => {\r\n var item = {\r\n text: column.caption,\r\n cssClass: column.cssClass,\r\n allowHiding: column.allowHiding,\r\n expanded: true,\r\n id: column.index,\r\n disabled: false === column.allowHiding,\r\n parentId: isDefined(column.ownerBand) ? column.ownerBand : null\r\n };\r\n var isRecursiveWithColumns = isRecursive && column.hasColumns;\r\n if (isSelectMode && !isRecursiveWithColumns) {\r\n item.selected = column.visible\r\n }\r\n items.push(item)\r\n })\r\n }\r\n return items\r\n};\r\nexport class ColumnChooserController extends modules.ViewController {\r\n init() {\r\n super.init();\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n renderShowColumnChooserButton($element) {\r\n var that = this;\r\n var columnChooserButtonClass = that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS);\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n var $showColumnChooserButton = $element.find(\".\".concat(columnChooserButtonClass));\r\n var $columnChooserButton;\r\n if (columnChooserEnabled) {\r\n if (!$showColumnChooserButton.length) {\r\n $columnChooserButton = $(\"<div>\").addClass(columnChooserButtonClass).appendTo($element);\r\n that._createComponent($columnChooserButton, Button, {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick() {\r\n that.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: that.option(\"columnChooser.title\"),\r\n integrationOptions: {}\r\n })\r\n } else {\r\n $showColumnChooserButton.show()\r\n }\r\n } else {\r\n $showColumnChooserButton.hide()\r\n }\r\n }\r\n getPosition() {\r\n var position = this.option(\"columnChooser.position\");\r\n return isDefined(position) ? position : {\r\n my: \"right bottom\",\r\n at: \"right bottom\",\r\n of: this._rowsView && this._rowsView.element(),\r\n collision: \"fit\",\r\n offset: \"-2 -2\",\r\n boundaryOffset: \"2 2\"\r\n }\r\n }\r\n}\r\nexport class ColumnChooserView extends ColumnsView {\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._initializePopupContainer();\r\n this.render(null, \"full\");\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n publicMethods() {\r\n return [\"showColumnChooser\", \"hideColumnChooser\"]\r\n }\r\n _resizeCore() {}\r\n _isWinDevice() {\r\n return !!devices.real().win\r\n }\r\n _initializePopupContainer() {\r\n var that = this;\r\n var columnChooserClass = that.addWidgetPrefix(COLUMN_CHOOSER_CLASS);\r\n var $element = that.element().addClass(columnChooserClass);\r\n var columnChooserOptions = that.option(\"columnChooser\");\r\n var popupPosition = this._columnChooserController.getPosition();\r\n var themeName = current();\r\n var isGenericTheme = isGeneric(themeName);\r\n var isMaterial = isMaterialTheme(themeName);\r\n var dxPopupOptions = {\r\n visible: false,\r\n shading: false,\r\n showCloseButton: false,\r\n dragEnabled: true,\r\n resizeEnabled: true,\r\n wrapperAttr: {\r\n class: columnChooserClass\r\n },\r\n toolbarItems: [{\r\n text: columnChooserOptions.title,\r\n toolbar: \"top\",\r\n location: isGenericTheme || isMaterial ? \"before\" : \"center\"\r\n }],\r\n position: popupPosition,\r\n width: columnChooserOptions.width,\r\n height: columnChooserOptions.height,\r\n rtlEnabled: that.option(\"rtlEnabled\"),\r\n onHidden() {\r\n if (that._isWinDevice()) {\r\n $(\"body\").removeClass(that.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n container: columnChooserOptions.container\r\n };\r\n if (isGenericTheme || isMaterial) {\r\n extend(dxPopupOptions, {\r\n showCloseButton: true\r\n })\r\n } else {\r\n dxPopupOptions.toolbarItems[dxPopupOptions.toolbarItems.length] = {\r\n shortcut: \"cancel\"\r\n }\r\n }\r\n if (!isDefined(this._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions);\r\n that._popupContainer.on(\"optionChanged\", args => {\r\n if (\"visible\" === args.name) {\r\n that.renderCompleted.fire()\r\n }\r\n })\r\n } else {\r\n this._popupContainer.option(dxPopupOptions)\r\n }\r\n this.setPopupAttributes()\r\n }\r\n setPopupAttributes() {\r\n var isSelectMode = this.isSelectMode();\r\n var isBandColumnsUsed = this._columnsController.isBandColumnsUsed();\r\n this._popupContainer.setAria({\r\n role: \"dialog\",\r\n label: messageLocalization.format(\"dxDataGrid-columnChooserTitle\")\r\n });\r\n this._popupContainer.$wrapper().toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_DRAG_CLASS), !isSelectMode).toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_SELECT_CLASS), isSelectMode);\r\n this._popupContainer.$content().addClass(this.addWidgetPrefix(COLUMN_CHOOSER_LIST_CLASS));\r\n if (isSelectMode && !isBandColumnsUsed) {\r\n this._popupContainer.$content().addClass(this.addWidgetPrefix(COLUMN_CHOOSER_PLAIN_CLASS))\r\n }\r\n }\r\n _renderCore(change) {\r\n if (this._popupContainer) {\r\n var isDragMode = !this.isSelectMode();\r\n if (!this._columnChooserList || \"full\" === change) {\r\n this._renderTreeView()\r\n } else if (isDragMode) {\r\n this._updateItems()\r\n }\r\n }\r\n }\r\n _renderTreeView() {\r\n var _a, _b, _c;\r\n var that = this;\r\n var $container = this._popupContainer.$content();\r\n var columnChooser = this.option(\"columnChooser\");\r\n var isSelectMode = this.isSelectMode();\r\n var searchEnabled = isDefined(columnChooser.allowSearch) ? columnChooser.allowSearch : null === (_a = columnChooser.search) || void 0 === _a ? void 0 : _a.enabled;\r\n var searchTimeout = isDefined(columnChooser.searchTimeout) ? columnChooser.searchTimeout : null === (_b = columnChooser.search) || void 0 === _b ? void 0 : _b.timeout;\r\n var treeViewConfig = {\r\n dataStructure: \"plain\",\r\n activeStateEnabled: true,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n itemTemplate: \"item\",\r\n showCheckBoxesMode: \"none\",\r\n rootValue: null,\r\n searchEnabled: searchEnabled,\r\n searchTimeout: searchTimeout,\r\n searchEditorOptions: null === (_c = columnChooser.search) || void 0 === _c ? void 0 : _c.editorOptions\r\n };\r\n if (this._isWinDevice()) {\r\n treeViewConfig.useNativeScrolling = false\r\n }\r\n extend(treeViewConfig, isSelectMode ? this._prepareSelectModeConfig() : this._prepareDragModeConfig());\r\n if (this._columnChooserList) {\r\n if (!treeViewConfig.searchEnabled) {\r\n treeViewConfig.searchValue = \"\"\r\n }\r\n this._columnChooserList.option(treeViewConfig);\r\n this._updateItems()\r\n } else {\r\n this._columnChooserList = this._createComponent($container, TreeView, treeViewConfig);\r\n this._updateItems();\r\n var scrollTop = 0;\r\n this._columnChooserList.on(\"optionChanged\", e => {\r\n var scrollable = e.component.getScrollable();\r\n scrollTop = scrollable.scrollTop()\r\n });\r\n this._columnChooserList.on(\"contentReady\", e => {\r\n deferUpdate(() => {\r\n var scrollable = e.component.getScrollable();\r\n scrollable.scrollTo({\r\n y: scrollTop\r\n });\r\n that.renderCompleted.fire()\r\n })\r\n })\r\n }\r\n }\r\n _prepareDragModeConfig() {\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return {\r\n noDataText: columnChooserOptions.emptyPanelText,\r\n activeStateEnabled: false,\r\n hoverStateEnabled: false,\r\n itemTemplate(data, index, item) {\r\n $(item).text(data.text).parent().addClass(data.cssClass).addClass(COLUMN_CHOOSER_ITEM_CLASS)\r\n }\r\n }\r\n }\r\n _prepareSelectModeConfig() {\r\n var _a;\r\n var that = this;\r\n var selectionOptions = null !== (_a = this.option(\"columnChooser.selection\")) && void 0 !== _a ? _a : {};\r\n var isUpdatingSelection = false;\r\n return {\r\n selectByClick: selectionOptions.selectByClick,\r\n selectNodesRecursive: selectionOptions.recursive,\r\n showCheckBoxesMode: selectionOptions.allowSelectAll ? \"selectAll\" : \"normal\",\r\n onSelectionChanged: e => {\r\n if (isUpdatingSelection) {\r\n return\r\n }\r\n var nodes = (nodes => {\r\n var addNodesToArray = (nodes, flatNodesArray) => nodes.reduce((result, node) => {\r\n result.push(node);\r\n if (node.children.length) {\r\n addNodesToArray(node.children, result)\r\n }\r\n return result\r\n }, flatNodesArray);\r\n return addNodesToArray(nodes, [])\r\n })(e.component.getNodes());\r\n e.component.beginUpdate();\r\n isUpdatingSelection = true;\r\n ((e, nodes) => {\r\n nodes.filter(node => false === node.itemData.allowHiding).forEach(node => e.component.selectItem(node.key))\r\n })(e, nodes);\r\n e.component.endUpdate();\r\n isUpdatingSelection = false;\r\n that.component.beginUpdate();\r\n this._isUpdatingColumnVisibility = true;\r\n (nodes => {\r\n nodes.forEach(node => {\r\n var columnIndex = node.itemData.id;\r\n var isVisible = false !== node.selected;\r\n that._columnsController.columnOption(columnIndex, \"visible\", isVisible)\r\n })\r\n })(nodes);\r\n that.component.endUpdate();\r\n this._isUpdatingColumnVisibility = false\r\n }\r\n }\r\n }\r\n _updateItems() {\r\n var isSelectMode = this.isSelectMode();\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n var items = processItems(this, chooserColumns);\r\n this._columnChooserList.option(\"items\", items)\r\n }\r\n _updateItemsSelection(columnIndices) {\r\n var changedColumns = null === columnIndices || void 0 === columnIndices ? void 0 : columnIndices.map(columnIndex => this._columnsController.columnOption(columnIndex));\r\n this._columnChooserList.beginUpdate();\r\n null === changedColumns || void 0 === changedColumns ? void 0 : changedColumns.forEach(_ref => {\r\n var {\r\n visible: visible,\r\n index: index\r\n } = _ref;\r\n if (visible) {\r\n this._columnChooserList.selectItem(index)\r\n } else {\r\n this._columnChooserList.unselectItem(index)\r\n }\r\n });\r\n this._columnChooserList.endUpdate()\r\n }\r\n _columnOptionChanged(e) {\r\n super._columnOptionChanged(e);\r\n var isSelectMode = this.isSelectMode();\r\n if (isSelectMode && this._columnChooserList && !this._isUpdatingColumnVisibility) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var onlyVisibleChanged = optionNames.visible && 1 === optionNames.length;\r\n var columnIndices = isDefined(e.columnIndex) ? [e.columnIndex] : e.columnIndices;\r\n var needUpdate = COLUMN_OPTIONS_USED_IN_ITEMS.some(optionName => optionNames[optionName]) || e.changeTypes.columns && optionNames.all;\r\n if (needUpdate) {\r\n this._updateItemsSelection(columnIndices);\r\n if (!onlyVisibleChanged) {\r\n this._updateItems()\r\n }\r\n }\r\n }\r\n }\r\n getColumnElements() {\r\n var result = [];\r\n var isSelectMode = this.isSelectMode();\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n var $content = this._popupContainer && this._popupContainer.$content();\r\n var $nodes = $content && $content.find(\".dx-treeview-node\");\r\n if ($nodes) {\r\n chooserColumns.forEach(column => {\r\n var $node = $nodes.filter(\"[data-item-id = '\".concat(column.index, \"']\"));\r\n var item = $node.length ? $node.children(\".\".concat(COLUMN_CHOOSER_ITEM_CLASS)).get(0) : null;\r\n result.push(item)\r\n })\r\n }\r\n return $(result)\r\n }\r\n getName() {\r\n return \"columnChooser\"\r\n }\r\n getColumns() {\r\n return this._columnsController.getChooserColumns()\r\n }\r\n allowDragging(column) {\r\n var isParentColumnVisible = this._columnsController.isParentColumnVisible(column.index);\r\n var isColumnHidden = !column.visible && column.allowHiding;\r\n return this.isColumnChooserVisible() && isParentColumnVisible && isColumnHidden\r\n }\r\n allowColumnHeaderDragging(column) {\r\n var isDragMode = !this.isSelectMode();\r\n return isDragMode && this.isColumnChooserVisible() && column.allowHiding\r\n }\r\n getBoundingRect() {\r\n var container = this._popupContainer && this._popupContainer.$overlayContent();\r\n if (container && container.is(\":visible\")) {\r\n var offset = container.offset();\r\n return {\r\n left: offset.left,\r\n top: offset.top,\r\n right: offset.left + getOuterWidth(container),\r\n bottom: offset.top + getOuterHeight(container)\r\n }\r\n }\r\n return null\r\n }\r\n showColumnChooser() {\r\n if (!this._popupContainer) {\r\n this._initializePopupContainer();\r\n this.render()\r\n }\r\n this._popupContainer.show();\r\n if (this._isWinDevice()) {\r\n $(\"body\").addClass(this.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n }\r\n hideColumnChooser() {\r\n if (this._popupContainer) {\r\n this._popupContainer.hide()\r\n }\r\n }\r\n isColumnChooserVisible() {\r\n var popupContainer = this._popupContainer;\r\n return popupContainer && popupContainer.option(\"visible\")\r\n }\r\n isSelectMode() {\r\n return \"select\" === this.option(\"columnChooser.mode\")\r\n }\r\n hasHiddenColumns() {\r\n var isEnabled = this.option(\"columnChooser.enabled\");\r\n var hiddenColumns = this.getColumns().filter(column => !column.visible);\r\n return isEnabled && hiddenColumns.length\r\n }\r\n}\r\nvar headerPanel = Base => class extends Base {\r\n _getToolbarItems() {\r\n var items = super._getToolbarItems();\r\n return this._appendColumnChooserItem(items)\r\n }\r\n _appendColumnChooserItem(items) {\r\n var that = this;\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n if (columnChooserEnabled) {\r\n var hintText = that.option(\"columnChooser.title\");\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.component.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS)))\r\n },\r\n elementAttr: {\r\n \"aria-haspopup\": \"dialog\"\r\n }\r\n },\r\n showText: \"inMenu\",\r\n location: \"after\",\r\n name: \"columnChooserButton\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n isVisible() {\r\n var columnChooserEnabled = this.option(\"columnChooser.enabled\");\r\n return super.isVisible() || columnChooserEnabled\r\n }\r\n};\r\nvar columns = Base => class extends Base {\r\n allowMoveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var isMoveColumnDisallowed = isSelectMode && \"columnChooser\" === targetLocation;\r\n return isMoveColumnDisallowed ? false : super.allowMoveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation)\r\n }\r\n};\r\nvar columnHeadersView = Base => class extends Base {\r\n allowDragging(column) {\r\n var isDragMode = !this._columnChooserView.isSelectMode();\r\n var isColumnChooserVisible = this._columnChooserView.isColumnChooserVisible();\r\n return isDragMode && isColumnChooserVisible && column.allowHiding || super.allowDragging(column)\r\n }\r\n};\r\nexport var columnChooserModule = {\r\n defaultOptions: () => ({\r\n columnChooser: {\r\n enabled: false,\r\n search: {\r\n enabled: false,\r\n timeout: 500,\r\n editorOptions: {}\r\n },\r\n selection: {\r\n allowSelectAll: false,\r\n selectByClick: false,\r\n recursive: false\r\n },\r\n position: void 0,\r\n mode: \"dragAndDrop\",\r\n width: 250,\r\n height: 260,\r\n title: messageLocalization.format(\"dxDataGrid-columnChooserTitle\"),\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-columnChooserEmptyText\"),\r\n container: void 0\r\n }\r\n }),\r\n controllers: {\r\n columnChooser: ColumnChooserController\r\n },\r\n views: {\r\n columnChooserView: ColumnChooserView\r\n },\r\n extenders: {\r\n views: {\r\n headerPanel: headerPanel,\r\n columnHeadersView: columnHeadersView\r\n },\r\n controllers: {\r\n columns: columns\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/column_chooser.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnChooserModule\r\n} from \"../../../grids/grid_core/column_chooser/m_column_chooser\";\r\nimport gridCore from \"../m_core\";\r\nexport var ColumnChooserController = columnChooserModule.controllers.columnChooser;\r\nexport var ColumnChooserView = columnChooserModule.views.columnChooserView;\r\ngridCore.registerModule(\"columnChooser\", columnChooserModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../../data/utils\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nexport function createGroupFilter(path, storeLoadOptions) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n filter.push([groups[i].selector, \"=\", path[i]])\r\n }\r\n if (storeLoadOptions.filter) {\r\n filter.push(storeLoadOptions.filter)\r\n }\r\n return gridCoreUtils.combineFilters(filter)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/grouping/m_grouping_core.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../../../data/utils\";\r\nimport gridCore from \"../m_core\";\r\nexport function createOffsetFilter(path, storeLoadOptions, lastLevelOnly) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = lastLevelOnly ? path.length - 1 : 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n var {\r\n selector: selector\r\n } = groups[j];\r\n if (i === j && (null === path[j] || false === path[j] || true === path[j])) {\r\n if (false === path[j]) {\r\n filterElement.push([selector, \"=\", groups[j].desc ? true : null])\r\n } else if (path[j] ? !groups[j].desc : groups[j].desc) {\r\n filterElement.push([selector, \"<>\", path[j]])\r\n } else {\r\n filterElement.push([selector, \"<>\", null]);\r\n filterElement.push([selector, \"=\", null])\r\n }\r\n } else {\r\n var currentFilter = [selector, i === j ? groups[j].desc ? \">\" : \"<\" : \"=\", path[j]];\r\n if (\"<\" === currentFilter[1]) {\r\n filterElement.push([currentFilter, \"or\", [selector, \"=\", null]])\r\n } else {\r\n filterElement.push(currentFilter)\r\n }\r\n }\r\n }\r\n filter.push(gridCore.combineFilters(filterElement))\r\n }\r\n filter = gridCore.combineFilters(filter, \"or\");\r\n return gridCore.combineFilters([filter, storeLoadOptions.filter])\r\n}\r\nvar findGroupInfoByKey = function(groupsInfo, key) {\r\n var {\r\n hash: hash\r\n } = groupsInfo;\r\n return hash && hash[JSON.stringify(key)]\r\n};\r\nvar getGroupInfoIndexByOffset = function(groupsInfo, offset) {\r\n var leftIndex = 0;\r\n var rightIndex = groupsInfo.length - 1;\r\n if (!groupsInfo.length) {\r\n return 0\r\n }\r\n do {\r\n var middleIndex = rightIndex + leftIndex >> 1;\r\n if (groupsInfo[middleIndex].offset > offset) {\r\n rightIndex = middleIndex\r\n } else {\r\n leftIndex = middleIndex\r\n }\r\n } while (rightIndex - leftIndex > 1);\r\n var index;\r\n for (index = leftIndex; index <= rightIndex; index++) {\r\n if (groupsInfo[index].offset > offset) {\r\n break\r\n }\r\n }\r\n return index\r\n};\r\nvar cleanGroupsInfo = function cleanGroupsInfo(groupsInfo, groupIndex, groupsCount) {\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n if (groupIndex + 1 >= groupsCount) {\r\n groupsInfo[i].children = []\r\n } else {\r\n cleanGroupsInfo(groupsInfo[i].children, groupIndex + 1, groupsCount)\r\n }\r\n }\r\n};\r\nvar calculateItemsCount = function calculateItemsCount(that, items, groupsCount) {\r\n var result = 0;\r\n if (items) {\r\n if (!groupsCount) {\r\n result = items.length\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n if (that.isGroupItemCountable(items[i])) {\r\n result++\r\n }\r\n result += calculateItemsCount(that, items[i].items, groupsCount - 1)\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport class GroupingHelper {\r\n constructor(dataSourceAdapter) {\r\n this._dataSource = dataSourceAdapter;\r\n this.reset()\r\n }\r\n reset() {\r\n this._groupsInfo = [];\r\n this._totalCountCorrection = 0\r\n }\r\n totalCountCorrection() {\r\n return this._totalCountCorrection\r\n }\r\n updateTotalItemsCount(totalCountCorrection) {\r\n this._totalCountCorrection = totalCountCorrection || 0\r\n }\r\n isGroupItemCountable(item) {\r\n return !this._isVirtualPaging() || !item.isContinuation\r\n }\r\n _isVirtualPaging() {\r\n var scrollingMode = this._dataSource.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n }\r\n itemsCount() {\r\n var dataSourceAdapter = this._dataSource;\r\n var dataSource = dataSourceAdapter._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(dataSource.group() || []).length;\r\n var itemsCount = calculateItemsCount(this, dataSource.items(), groupCount);\r\n return itemsCount\r\n }\r\n foreachGroups(callback, childrenAtFirst, foreachCollapsedGroups, updateOffsets, updateParentOffsets) {\r\n var that = this;\r\n return function foreachGroupsCore(groupsInfo, callback, childrenAtFirst, parents) {\r\n var callbackResults = [];\r\n\r\n function executeCallback(callback, data, parents, callbackResults) {\r\n var callbackResult = data && callback(data, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n return callbackResult\r\n }\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n parents.push(groupsInfo[i].data);\r\n if (!childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.isExpanded || foreachCollapsedGroups) {\r\n var {\r\n children: children\r\n } = groupsInfo[i];\r\n var callbackResult = children.length && foreachGroupsCore(children, callback, childrenAtFirst, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n if (false === callbackResult) {\r\n return false\r\n }\r\n }\r\n if (childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.offset !== groupsInfo[i].offset) {\r\n updateOffsets = true\r\n }\r\n parents.pop()\r\n }\r\n var currentParents = updateParentOffsets && parents.slice(0);\r\n return updateOffsets && when.apply($, callbackResults).always(() => {\r\n that._updateGroupInfoOffsets(groupsInfo, currentParents)\r\n })\r\n }(that._groupsInfo, callback, childrenAtFirst, [])\r\n }\r\n _updateGroupInfoOffsets(groupsInfo, parents) {\r\n parents = parents || [];\r\n for (var index = 0; index < groupsInfo.length; index++) {\r\n var groupInfo = groupsInfo[index];\r\n if (groupInfo.data && groupInfo.data.offset !== groupInfo.offset) {\r\n groupInfo.offset = groupInfo.data.offset;\r\n for (var parentIndex = 0; parentIndex < parents.length; parentIndex++) {\r\n parents[parentIndex].offset = groupInfo.offset\r\n }\r\n }\r\n }\r\n groupsInfo.sort((a, b) => a.offset - b.offset)\r\n }\r\n findGroupInfo(path) {\r\n var groupInfo;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; groupsInfo && pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n groupsInfo = groupInfo && groupInfo.children\r\n }\r\n return groupInfo && groupInfo.data\r\n }\r\n addGroupInfo(groupInfoData) {\r\n var groupInfo;\r\n var {\r\n path: path\r\n } = groupInfoData;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n if (!groupInfo) {\r\n groupInfo = {\r\n key: path[pathIndex],\r\n offset: groupInfoData.offset,\r\n data: {\r\n offset: groupInfoData.offset,\r\n isExpanded: true,\r\n path: path.slice(0, pathIndex + 1)\r\n },\r\n children: []\r\n };\r\n var index = getGroupInfoIndexByOffset(groupsInfo, groupInfoData.offset);\r\n groupsInfo.splice(index, 0, groupInfo);\r\n groupsInfo.hash = groupsInfo.hash || {};\r\n groupsInfo.hash[JSON.stringify(groupInfo.key)] = groupInfo\r\n }\r\n if (pathIndex === path.length - 1) {\r\n groupInfo.data = groupInfoData;\r\n if (groupInfo.offset !== groupInfoData.offset) {\r\n this._updateGroupInfoOffsets(groupsInfo)\r\n }\r\n }\r\n groupsInfo = groupInfo.children\r\n }\r\n }\r\n allowCollapseAll() {\r\n return true\r\n }\r\n refresh(options) {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var groups = normalizeSortingInfo(storeLoadOptions.group || []);\r\n var oldGroups = \"_group\" in this ? normalizeSortingInfo(this._group || []) : groups;\r\n var groupsCount = Math.min(oldGroups.length, groups.length);\r\n this._group = storeLoadOptions.group;\r\n for (var groupIndex = 0; groupIndex < groupsCount; groupIndex++) {\r\n if (oldGroups[groupIndex].selector !== groups[groupIndex].selector) {\r\n groupsCount = groupIndex;\r\n break\r\n }\r\n }\r\n if (!groupsCount) {\r\n this.reset()\r\n } else {\r\n cleanGroupsInfo(this._groupsInfo, 0, groupsCount)\r\n }\r\n }\r\n handleDataLoading() {}\r\n handleDataLoaded(options, callBase) {\r\n callBase(options)\r\n }\r\n handleDataLoadedCore(options, callBase) {\r\n callBase(options)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/grouping/m_grouping_collapsed.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../../../data/errors\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport dataGridCore from \"../m_core\";\r\nimport {\r\n createGroupFilter\r\n} from \"../m_utils\";\r\nimport {\r\n createOffsetFilter,\r\n GroupingHelper as GroupingHelperCore\r\n} from \"./m_grouping_core\";\r\n\r\nfunction getContinuationGroupCount(groupOffset, pageSize, groupSize, groupIndex) {\r\n groupIndex = groupIndex || 0;\r\n if (pageSize > 1 && groupSize > 0) {\r\n var pageOffset = groupOffset - Math.floor(groupOffset / pageSize) * pageSize || pageSize;\r\n pageOffset += groupSize - groupIndex - 2;\r\n if (pageOffset < 0) {\r\n pageOffset += pageSize\r\n }\r\n return Math.floor(pageOffset / (pageSize - groupIndex - 1))\r\n }\r\n return 0\r\n}\r\nvar foreachExpandedGroups = function(that, callback, updateGroups) {\r\n return that.foreachGroups((groupInfo, parents) => {\r\n if (groupInfo.isExpanded) {\r\n return callback(groupInfo, parents)\r\n }\r\n }, true, false, updateGroups, updateGroups)\r\n};\r\nvar processGroupItems = function processGroupItems(that, items, groupsCount, expandedInfo, path, isCustomLoading, isLastGroupExpanded) {\r\n var isExpanded;\r\n expandedInfo.items = expandedInfo.items || [];\r\n expandedInfo.paths = expandedInfo.paths || [];\r\n expandedInfo.count = expandedInfo.count || 0;\r\n expandedInfo.lastCount = expandedInfo.lastCount || 0;\r\n if (!groupsCount) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n if (isCustomLoading) {\r\n isExpanded = true\r\n } else {\r\n var groupInfo = that.findGroupInfo(path);\r\n isExpanded = groupInfo && groupInfo.isExpanded\r\n }\r\n if (!isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null\r\n } else if (item.items) {\r\n processGroupItems(that, item.items, groupsCount - 1, expandedInfo, path, isCustomLoading, isLastGroupExpanded)\r\n } else if (1 === groupsCount && item.count && (!isCustomLoading || isLastGroupExpanded)) {\r\n expandedInfo.items.push(item);\r\n expandedInfo.paths.push(path.slice(0));\r\n expandedInfo.count += expandedInfo.lastCount;\r\n expandedInfo.lastCount = item.count\r\n }\r\n path.pop()\r\n }\r\n }\r\n};\r\nvar updateGroupInfoItem = function(that, item, isLastGroupLevel, path, offset) {\r\n var groupInfo = that.findGroupInfo(path);\r\n var count;\r\n if (!groupInfo) {\r\n if (isLastGroupLevel) {\r\n count = item.count > 0 ? item.count : item.items.length\r\n }\r\n that.addGroupInfo({\r\n isExpanded: that._isGroupExpanded(path.length - 1),\r\n path: path.slice(0),\r\n offset: offset,\r\n count: count || 0\r\n })\r\n } else {\r\n if (isLastGroupLevel) {\r\n groupInfo.count = item.count > 0 ? item.count : item.items && item.items.length || 0\r\n } else {\r\n item.count = groupInfo.count || item.count\r\n }\r\n groupInfo.offset = offset\r\n }\r\n};\r\nvar updateGroupInfos = function updateGroupInfos(that, options, items, loadedGroupCount, groupIndex, path, parentIndex) {\r\n var groupCount = options.group ? options.group.length : 0;\r\n var isLastGroupLevel = groupCount === loadedGroupCount;\r\n var remotePaging = options.remoteOperations.paging;\r\n var offset = 0;\r\n var totalCount = 0;\r\n var count;\r\n groupIndex = groupIndex || 0;\r\n path = path || [];\r\n if (remotePaging && !parentIndex) {\r\n offset = 0 === groupIndex ? options.skip || 0 : options.skips[groupIndex - 1] || 0\r\n }\r\n if (groupIndex >= loadedGroupCount) {\r\n return items.length\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item) {\r\n path.push(item.key);\r\n if (!item.count && !item.items || void 0 === item.items) {\r\n return -1\r\n }\r\n updateGroupInfoItem(that, item, isLastGroupLevel, path, offset + i);\r\n count = item.items ? updateGroupInfos(that, options, item.items, loadedGroupCount, groupIndex + 1, path, i) : item.count || -1;\r\n if (count < 0) {\r\n return -1\r\n }\r\n totalCount += count;\r\n path.pop()\r\n }\r\n }\r\n return totalCount\r\n};\r\nvar isGroupExpanded = function(groups, groupIndex) {\r\n return groups && groups.length && groups[groupIndex] && !!groups[groupIndex].isExpanded\r\n};\r\nvar getTotalOffset = function(groupInfos, pageSize, offset) {\r\n var groupSize;\r\n var totalOffset = offset;\r\n for (var groupIndex = 0; groupIndex < groupInfos.length; groupIndex++) {\r\n groupSize = groupInfos[groupIndex].offset + 1;\r\n if (groupIndex > 0) {\r\n groupSize += groupInfos[groupIndex - 1].childrenTotalCount;\r\n if (pageSize) {\r\n groupSize += getContinuationGroupCount(totalOffset, pageSize, groupSize, groupIndex - 1) * groupIndex\r\n }\r\n }\r\n totalOffset += groupSize\r\n }\r\n return totalOffset\r\n};\r\n\r\nfunction applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n var skip = options.skips && options.skips[groupLevel];\r\n var take = options.takes && options.takes[groupLevel];\r\n var isLastExpandedItem = expandedItemIndex === expandedInfo.items.length - 1;\r\n var isFirstExpandedItem = 0 === expandedItemIndex;\r\n var lastExpandedItemSkip = isFirstExpandedItem && skip || 0;\r\n var isItemsTruncatedByTake = item.count > take + lastExpandedItemSkip;\r\n if (isFirstExpandedItem && void 0 !== skip) {\r\n item.isContinuation = true\r\n }\r\n if (isLastExpandedItem && void 0 !== take && isItemsTruncatedByTake) {\r\n item.isContinuationOnNextPage = true\r\n }\r\n}\r\n\r\nfunction fillSkipTakeInExpandedInfo(options, expandedInfo, currentGroupCount) {\r\n var currentGroupIndex = currentGroupCount - 1;\r\n var groupCount = options.group ? options.group.length : 0;\r\n expandedInfo.skip = options.skips && options.skips[currentGroupIndex];\r\n if (options.takes && void 0 !== options.takes[currentGroupIndex]) {\r\n if (groupCount === currentGroupCount) {\r\n expandedInfo.take = expandedInfo.count ? expandedInfo.count - (expandedInfo.skip || 0) : 0\r\n } else {\r\n expandedInfo.take = 0\r\n }\r\n expandedInfo.take += options.takes[currentGroupIndex]\r\n }\r\n}\r\n\r\nfunction isDataDeferred(data) {\r\n return !Array.isArray(data)\r\n}\r\n\r\nfunction makeDataDeferred(options) {\r\n if (!isDataDeferred(options.data)) {\r\n options.data = new Deferred\r\n }\r\n}\r\n\r\nfunction loadGroupItems(that, options, loadedGroupCount, expandedInfo, groupLevel, data) {\r\n if (!options.isCustomLoading) {\r\n expandedInfo = {};\r\n processGroupItems(that, data, loadedGroupCount, expandedInfo, []);\r\n fillSkipTakeInExpandedInfo(options, expandedInfo, loadedGroupCount)\r\n }\r\n var groupCount = options.group ? options.group.length : 0;\r\n if (expandedInfo.paths.length && groupCount - loadedGroupCount > 0) {\r\n makeDataDeferred(options);\r\n loadExpandedGroups(that, options, expandedInfo, loadedGroupCount, groupLevel, data)\r\n } else if (expandedInfo.paths.length && options.storeLoadOptions.group) {\r\n makeDataDeferred(options);\r\n loadLastLevelGroupItems(that, options, expandedInfo, data)\r\n } else if (isDataDeferred(options.data)) {\r\n options.data.resolve(data)\r\n }\r\n}\r\n\r\nfunction loadExpandedGroups(that, options, expandedInfo, loadedGroupCount, groupLevel, data) {\r\n var groups = options.group || [];\r\n var currentGroup = groups[groupLevel + 1];\r\n var deferreds = [];\r\n each(expandedInfo.paths, expandedItemIndex => {\r\n var _a;\r\n var loadOptions = {\r\n requireTotalCount: false,\r\n requireGroupCount: true,\r\n group: [currentGroup],\r\n groupSummary: options.storeLoadOptions.groupSummary,\r\n filter: createGroupFilter(expandedInfo.paths[expandedItemIndex], {\r\n filter: options.storeLoadOptions.filter,\r\n group: groups\r\n }),\r\n select: options.storeLoadOptions.select,\r\n langParams: null === (_a = options.storeLoadOptions) || void 0 === _a ? void 0 : _a.langParams\r\n };\r\n if (0 === expandedItemIndex) {\r\n loadOptions.skip = expandedInfo.skip || 0\r\n }\r\n if (expandedItemIndex === expandedInfo.paths.length - 1) {\r\n loadOptions.take = expandedInfo.take\r\n }\r\n var loadResult = 0 === loadOptions.take ? [] : that._dataSource.loadFromStore(loadOptions);\r\n when(loadResult).done(data => {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex);\r\n item.items = data\r\n });\r\n deferreds.push(loadResult)\r\n });\r\n when.apply(null, deferreds).done(() => {\r\n updateGroupInfos(that, options, data, loadedGroupCount + 1);\r\n loadGroupItems(that, options, loadedGroupCount + 1, expandedInfo, groupLevel + 1, data)\r\n })\r\n}\r\n\r\nfunction loadLastLevelGroupItems(that, options, expandedInfo, data) {\r\n var expandedFilters = [];\r\n var groups = options.group || [];\r\n each(expandedInfo.paths, (_, expandedPath) => {\r\n expandedFilters.push(createGroupFilter(expandedPath, {\r\n group: options.isCustomLoading ? options.storeLoadOptions.group : groups\r\n }))\r\n });\r\n var {\r\n filter: filter\r\n } = options.storeLoadOptions;\r\n if (!options.storeLoadOptions.isLoadingAll) {\r\n filter = dataGridCore.combineFilters([filter, dataGridCore.combineFilters(expandedFilters, \"or\")])\r\n }\r\n var loadOptions = extend({}, options.storeLoadOptions, {\r\n requireTotalCount: false,\r\n requireGroupCount: false,\r\n group: null,\r\n sort: groups.concat(dataGridCore.normalizeSortingInfo(options.storeLoadOptions.sort || [])),\r\n filter: filter\r\n });\r\n var isPagingLocal = that._dataSource.isLastLevelGroupItemsPagingLocal();\r\n if (!isPagingLocal) {\r\n loadOptions.skip = expandedInfo.skip;\r\n loadOptions.take = expandedInfo.take\r\n }\r\n when(0 === expandedInfo.take ? [] : that._dataSource.loadFromStore(loadOptions)).done(items => {\r\n if (isPagingLocal) {\r\n items = that._dataSource.sortLastLevelGroupItems(items, groups, expandedInfo.paths);\r\n items = expandedInfo.skip ? items.slice(expandedInfo.skip) : items;\r\n items = expandedInfo.take ? items.slice(0, expandedInfo.take) : items\r\n }\r\n each(expandedInfo.items, (index, item) => {\r\n var itemCount = item.count - (0 === index && expandedInfo.skip || 0);\r\n var expandedItems = items.splice(0, itemCount);\r\n applyContinuationToGroupItem(options, expandedInfo, groups.length - 1, index);\r\n item.items = expandedItems\r\n });\r\n options.data.resolve(data)\r\n }).fail(options.data.reject)\r\n}\r\nvar loadGroupTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var isGrouping = !!(options.group && options.group.length);\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireGroupCount: isGrouping,\r\n requireTotalCount: !isGrouping\r\n }, options, {\r\n group: isGrouping ? options.group : null\r\n });\r\n dataSource.load(loadOptions).done((data, extra) => {\r\n var count = extra && (isGrouping ? extra.groupCount : extra.totalCount);\r\n if (!isFinite(count)) {\r\n d.reject(dataErrors.Error(isGrouping ? \"E4022\" : \"E4021\"));\r\n return\r\n }\r\n d.resolve(count)\r\n }).fail(d.reject.bind(d));\r\n return d\r\n};\r\nexport class GroupingHelper extends GroupingHelperCore {\r\n updateTotalItemsCount(options) {\r\n var totalItemsCount = 0;\r\n var totalCount = options.extra && options.extra.totalCount || 0;\r\n var groupCount = options.extra && options.extra.groupCount || 0;\r\n var pageSize = this._dataSource.pageSize();\r\n var isVirtualPaging = this._isVirtualPaging();\r\n foreachExpandedGroups(this, groupInfo => {\r\n groupInfo.childrenTotalCount = 0\r\n });\r\n foreachExpandedGroups(this, (groupInfo, parents) => {\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, totalItemsCount);\r\n var count = groupInfo.count + groupInfo.childrenTotalCount;\r\n if (!isVirtualPaging) {\r\n count += getContinuationGroupCount(totalOffset, pageSize, count, parents.length - 1)\r\n }\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += count\r\n } else {\r\n totalItemsCount += count\r\n }\r\n });\r\n super.updateTotalItemsCount(totalItemsCount - totalCount + groupCount)\r\n }\r\n _isGroupExpanded(groupIndex) {\r\n var groups = this._dataSource.group();\r\n return isGroupExpanded(groups, groupIndex)\r\n }\r\n _updatePagingOptions(options, callback) {\r\n var isVirtualPaging = this._isVirtualPaging();\r\n var pageSize = this._dataSource.pageSize();\r\n var skips = [];\r\n var takes = [];\r\n var skipChildrenTotalCount = 0;\r\n var childrenTotalCount = 0;\r\n if (options.take) {\r\n foreachExpandedGroups(this, groupInfo => {\r\n groupInfo.childrenTotalCount = 0;\r\n groupInfo.skipChildrenTotalCount = 0\r\n });\r\n foreachExpandedGroups(this, (groupInfo, parents) => {\r\n var take;\r\n var takeCorrection = 0;\r\n var parentTakeCorrection = 0;\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, childrenTotalCount);\r\n var continuationGroupCount = 0;\r\n var skipContinuationGroupCount = 0;\r\n var groupInfoCount = groupInfo.count + groupInfo.childrenTotalCount;\r\n var childrenGroupInfoCount = groupInfoCount;\r\n callback && callback(groupInfo, totalOffset);\r\n var skip = options.skip - totalOffset;\r\n if (totalOffset <= options.skip + options.take && groupInfoCount) {\r\n take = options.take;\r\n if (!isVirtualPaging) {\r\n continuationGroupCount = getContinuationGroupCount(totalOffset, pageSize, groupInfoCount, parents.length - 1);\r\n groupInfoCount += continuationGroupCount * parents.length;\r\n childrenGroupInfoCount += continuationGroupCount;\r\n if (pageSize && skip >= 0) {\r\n takeCorrection = parents.length;\r\n parentTakeCorrection = parents.length - 1;\r\n skipContinuationGroupCount = Math.floor(skip / pageSize)\r\n }\r\n }\r\n if (skip >= 0) {\r\n if (totalOffset + groupInfoCount > options.skip) {\r\n skips.unshift(skip - skipContinuationGroupCount * takeCorrection - groupInfo.skipChildrenTotalCount)\r\n }\r\n if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take - takeCorrection - groupInfo.childrenTotalCount + groupInfo.skipChildrenTotalCount)\r\n }\r\n } else if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take + skip - groupInfo.childrenTotalCount)\r\n }\r\n }\r\n if (totalOffset <= options.skip) {\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1 - skipContinuationGroupCount * parentTakeCorrection)\r\n } else {\r\n skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1)\r\n }\r\n }\r\n if (totalOffset <= options.skip + take) {\r\n groupInfoCount = Math.min(childrenGroupInfoCount, skip + take - (skipContinuationGroupCount + 1) * parentTakeCorrection);\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += groupInfoCount\r\n } else {\r\n childrenTotalCount += groupInfoCount\r\n }\r\n }\r\n });\r\n options.skip -= skipChildrenTotalCount;\r\n options.take -= childrenTotalCount - skipChildrenTotalCount\r\n }\r\n options.skips = skips;\r\n options.takes = takes\r\n }\r\n changeRowExpand(path) {\r\n var groupInfo = this.findGroupInfo(path);\r\n var dataSource = this._dataSource;\r\n var remoteGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var groups = dataGridCore.normalizeSortingInfo(dataSource.group());\r\n if (groupInfo) {\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n if (remoteGroupPaging && groupInfo.isExpanded && path.length < groups.length) {\r\n return loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.lastLoadOptions().filter,\r\n group: dataSource.group()\r\n }),\r\n group: [groups[path.length]],\r\n select: dataSource.select()\r\n }).done(groupCount => {\r\n groupInfo.count = groupCount\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n return (new Deferred).reject()\r\n }\r\n handleDataLoading(options) {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var groups = dataGridCore.normalizeSortingInfo(storeLoadOptions.group || options.loadOptions.group);\r\n if (options.isCustomLoading || !groups.length) {\r\n return\r\n }\r\n if (options.remoteOperations.grouping) {\r\n var remotePaging = this._dataSource.remoteOperations().paging;\r\n storeLoadOptions.group = dataGridCore.normalizeSortingInfo(storeLoadOptions.group);\r\n storeLoadOptions.group.forEach((group, index) => {\r\n var isLastGroup = index === storeLoadOptions.group.length - 1;\r\n group.isExpanded = !remotePaging || !isLastGroup\r\n })\r\n }\r\n options.group = options.group || groups;\r\n if (options.remoteOperations.paging) {\r\n options.skip = storeLoadOptions.skip;\r\n options.take = storeLoadOptions.take;\r\n storeLoadOptions.requireGroupCount = true;\r\n storeLoadOptions.group = groups.slice(0, 1);\r\n this._updatePagingOptions(options);\r\n storeLoadOptions.skip = options.skip;\r\n storeLoadOptions.take = options.take\r\n } else {\r\n options.skip = options.loadOptions.skip;\r\n options.take = options.loadOptions.take;\r\n this._updatePagingOptions(options)\r\n }\r\n }\r\n handleDataLoadedCore(options, callBase) {\r\n var loadedGroupCount = dataGridCore.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var groupCount = options.group ? options.group.length : 0;\r\n var totalCount;\r\n var expandedInfo = {};\r\n if (options.isCustomLoading) {\r\n callBase(options);\r\n processGroupItems(this, options.data, loadedGroupCount, expandedInfo, [], options.isCustomLoading, options.storeLoadOptions.isLoadingAll)\r\n } else {\r\n if (!options.remoteOperations.paging) {\r\n this.foreachGroups(groupInfo => {\r\n groupInfo.count = 0\r\n })\r\n }\r\n totalCount = updateGroupInfos(this, options, options.data, loadedGroupCount);\r\n if (totalCount < 0) {\r\n options.data = (new Deferred).reject(errors.Error(\"E1037\"));\r\n return\r\n }\r\n if (!options.remoteOperations.paging) {\r\n if (loadedGroupCount && options.extra && options.loadOptions.requireTotalCount) {\r\n options.extra.totalCount = totalCount;\r\n options.extra.groupCount = options.data.length\r\n }\r\n }\r\n if (groupCount && options.storeLoadOptions.requireGroupCount && !isFinite(options.extra.groupCount)) {\r\n options.data = (new Deferred).reject(dataErrors.Error(\"E4022\"));\r\n return\r\n }\r\n this.updateTotalItemsCount(options);\r\n if (!options.remoteOperations.paging) {\r\n this._updatePagingOptions(options);\r\n options.lastLoadOptions.skips = options.skips;\r\n options.lastLoadOptions.takes = options.takes\r\n }\r\n callBase(options);\r\n if (!options.remoteOperations.paging) {\r\n this._processPaging(options, loadedGroupCount)\r\n }\r\n }\r\n loadGroupItems(this, options, loadedGroupCount, expandedInfo, 0, options.data)\r\n }\r\n _processSkips(items, skips, groupCount) {\r\n if (!groupCount) {\r\n return\r\n }\r\n var firstItem = items[0];\r\n var skip = skips[0];\r\n var children = firstItem && firstItem.items;\r\n if (void 0 !== skip) {\r\n firstItem.isContinuation = true;\r\n if (children) {\r\n firstItem.items = children.slice(skip);\r\n this._processSkips(firstItem.items, skips.slice(1), groupCount - 1)\r\n }\r\n }\r\n }\r\n _processTakes(items, skips, takes, groupCount, parents) {\r\n if (!groupCount || !items) {\r\n return\r\n }\r\n parents = parents || [];\r\n var lastItem = items[items.length - 1];\r\n var children = lastItem && lastItem.items;\r\n var take = takes[0];\r\n var skip = skips[0];\r\n if (lastItem) {\r\n var maxTakeCount = lastItem.count - (lastItem.isContinuation && skip || 0) || children.length;\r\n if (void 0 !== take && maxTakeCount > take) {\r\n lastItem.isContinuationOnNextPage = true;\r\n parents.forEach(parent => {\r\n parent.isContinuationOnNextPage = true\r\n });\r\n if (children) {\r\n children = children.slice(0, take);\r\n lastItem.items = children\r\n }\r\n }\r\n parents.push(lastItem);\r\n this._processTakes(children, skips.slice(1), takes.slice(1), groupCount - 1, parents)\r\n }\r\n }\r\n _processPaging(options, groupCount) {\r\n this._processSkips(options.data, options.skips, groupCount);\r\n this._processTakes(options.data, options.skips, options.takes, groupCount)\r\n }\r\n isLastLevelGroupItemsPagingLocal() {\r\n return false\r\n }\r\n sortLastLevelGroupItems(items) {\r\n return items\r\n }\r\n refresh(options, operationTypes) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var group = options.group || options.storeLoadOptions.group;\r\n var oldGroups = dataGridCore.normalizeSortingInfo(that._group);\r\n var isExpanded;\r\n var groupIndex;\r\n\r\n function handleGroup(groupInfo, parents) {\r\n if (parents.length === groupIndex + 1) {\r\n groupInfo.isExpanded = isExpanded\r\n }\r\n }\r\n for (groupIndex = 0; groupIndex < oldGroups.length; groupIndex++) {\r\n isExpanded = isGroupExpanded(group, groupIndex);\r\n if (isGroupExpanded(that._group, groupIndex) !== isExpanded) {\r\n that.foreachGroups(handleGroup)\r\n }\r\n }\r\n super.refresh.apply(this, arguments);\r\n if (group && options.remoteOperations.paging && operationTypes.reload) {\r\n return foreachExpandedGroups(that, groupInfo => {\r\n var groupCountQuery = loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }),\r\n group: group.slice(groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n var groupOffsetQuery = loadGroupTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }, true),\r\n group: group.slice(groupInfo.path.length - 1, groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((offset, count) => {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount(options)\r\n }\r\n })\r\n }, true)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/grouping/m_grouping_expanded.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n toComparable\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport dataQuery from \"../../../../data/query\";\r\nimport storeHelper from \"../../../../data/store_helper\";\r\nimport {\r\n keysEqual\r\n} from \"../../../../data/utils\";\r\nimport dataGridCore from \"../m_core\";\r\nimport {\r\n createGroupFilter\r\n} from \"../m_utils\";\r\nimport {\r\n createOffsetFilter,\r\n GroupingHelper as GroupingHelperCore\r\n} from \"./m_grouping_core\";\r\nvar loadTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }, options);\r\n dataSource.load(loadOptions).done((data, extra) => {\r\n d.resolve(extra && extra.totalCount)\r\n }).fail(d.reject.bind(d));\r\n return d\r\n};\r\nvar foreachCollapsedGroups = function(that, callback, updateOffsets) {\r\n return that.foreachGroups(groupInfo => {\r\n if (!groupInfo.isExpanded) {\r\n return callback(groupInfo)\r\n }\r\n }, false, false, updateOffsets, true)\r\n};\r\nvar correctSkipLoadOption = function(that, skip) {\r\n var skipCorrection = 0;\r\n var resultSkip = skip || 0;\r\n if (skip) {\r\n foreachCollapsedGroups(that, groupInfo => {\r\n if (groupInfo.offset - skipCorrection >= skip) {\r\n return false\r\n }\r\n skipCorrection += groupInfo.count - 1\r\n });\r\n resultSkip += skipCorrection\r\n }\r\n return resultSkip\r\n};\r\nvar processGroupItems = function processGroupItems(that, items, path, offset, skipFirstItem, take) {\r\n var removeLastItemsCount = 0;\r\n var needRemoveFirstItem = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null;\r\n offset += groupInfo.count;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n } else if (item.items) {\r\n var offsetInfo = processGroupItems(that, item.items, path, offset, skipFirstItem, take);\r\n if (skipFirstItem) {\r\n if (offsetInfo.offset - offset > 1) {\r\n item.isContinuation = true\r\n } else {\r\n needRemoveFirstItem = true\r\n }\r\n }\r\n offset = offsetInfo.offset;\r\n take = offsetInfo.take;\r\n if (take < 0) {\r\n if (item.items.length) {\r\n item.isContinuationOnNextPage = true\r\n } else {\r\n removeLastItemsCount++\r\n }\r\n }\r\n }\r\n path.pop()\r\n } else {\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n offset++;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n }\r\n skipFirstItem = false\r\n }\r\n if (needRemoveFirstItem) {\r\n items.splice(0, 1)\r\n }\r\n if (removeLastItemsCount) {\r\n items.splice(-removeLastItemsCount, removeLastItemsCount)\r\n }\r\n return {\r\n offset: offset,\r\n take: take\r\n }\r\n};\r\nvar pathEquals = function(path1, path2) {\r\n if (path1.length !== path2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < path1.length; i++) {\r\n if (!keysEqual(null, path1[i], path2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nvar updateGroupOffsets = function updateGroupOffsets(that, items, path, offset, additionalGroupInfo) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"key\" in item && void 0 !== item.items) {\r\n path.push(item.key);\r\n if (additionalGroupInfo && pathEquals(additionalGroupInfo.path, path) && !item.isContinuation) {\r\n additionalGroupInfo.offset = offset\r\n }\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !item.isContinuation) {\r\n groupInfo.offset = offset\r\n }\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n offset += groupInfo.count\r\n } else {\r\n offset = updateGroupOffsets(that, item.items, path, offset, additionalGroupInfo)\r\n }\r\n path.pop()\r\n } else {\r\n offset++\r\n }\r\n }\r\n return offset\r\n};\r\nvar removeGroupLoadOption = function(storeLoadOptions, loadOptions) {\r\n if (loadOptions.group) {\r\n var groups = dataGridCore.normalizeSortingInfo(loadOptions.group);\r\n var sorts = dataGridCore.normalizeSortingInfo(storeLoadOptions.sort);\r\n storeLoadOptions.sort = storeHelper.arrangeSortingInfo(groups, sorts);\r\n delete loadOptions.group\r\n }\r\n};\r\nvar createNotGroupFilter = function(path, storeLoadOptions, group) {\r\n var groups = dataGridCore.normalizeSortingInfo(group || storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n filterElement.push([groups[j].selector, i === j ? \"<>\" : \"=\", path[j]])\r\n }\r\n filter.push(dataGridCore.combineFilters(filterElement))\r\n }\r\n filter = dataGridCore.combineFilters(filter, \"or\");\r\n return dataGridCore.combineFilters([filter, storeLoadOptions.filter])\r\n};\r\nvar getGroupCount = function getGroupCount(item, groupCount) {\r\n var count = item.count || item.items.length;\r\n if (!item.count && groupCount > 1) {\r\n count = 0;\r\n for (var i = 0; i < item.items.length; i++) {\r\n count += getGroupCount(item.items[i], groupCount - 1)\r\n }\r\n }\r\n return count\r\n};\r\nexport class GroupingHelper extends GroupingHelperCore {\r\n handleDataLoading(options) {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var collapsedGroups = [];\r\n var collapsedItemsCount = 0;\r\n var skipFirstItem = false;\r\n var take;\r\n var {\r\n group: group\r\n } = options.loadOptions;\r\n var skipCorrection = 0;\r\n removeGroupLoadOption(storeLoadOptions, options.loadOptions);\r\n options.group = options.group || group;\r\n if (options.isCustomLoading) {\r\n return\r\n }\r\n var loadOptions = extend({}, storeLoadOptions);\r\n loadOptions.skip = correctSkipLoadOption(this, storeLoadOptions.skip);\r\n if (loadOptions.skip && loadOptions.take && group) {\r\n loadOptions.skip--;\r\n loadOptions.take++;\r\n skipFirstItem = true\r\n }\r\n if (loadOptions.take && group) {\r\n take = loadOptions.take;\r\n loadOptions.take++\r\n }\r\n foreachCollapsedGroups(this, groupInfo => {\r\n if (groupInfo.offset >= loadOptions.skip + loadOptions.take + skipCorrection) {\r\n return false\r\n }\r\n if (groupInfo.offset >= loadOptions.skip + skipCorrection && groupInfo.count) {\r\n skipCorrection += groupInfo.count - 1;\r\n collapsedGroups.push(groupInfo);\r\n collapsedItemsCount += groupInfo.count\r\n }\r\n });\r\n each(collapsedGroups, (function() {\r\n loadOptions.filter = createNotGroupFilter(this.path, loadOptions, group)\r\n }));\r\n options.storeLoadOptions = loadOptions;\r\n options.collapsedGroups = collapsedGroups;\r\n options.collapsedItemsCount = collapsedItemsCount;\r\n options.skip = loadOptions.skip || 0;\r\n options.skipFirstItem = skipFirstItem;\r\n options.take = take\r\n }\r\n handleDataLoaded(options, callBase) {\r\n var {\r\n collapsedGroups: collapsedGroups\r\n } = options;\r\n var groups = dataGridCore.normalizeSortingInfo(options.group);\r\n var groupCount = groups.length;\r\n\r\n function appendCollapsedPath(data, path, groups, collapsedGroup, offset) {\r\n if (!data || !path.length || !groups.length) {\r\n return\r\n }\r\n var keyValue;\r\n var i;\r\n var pathValue = toComparable(path[0], true);\r\n for (i = 0; i < data.length; i++) {\r\n keyValue = toComparable(data[i].key, true);\r\n if (offset >= collapsedGroup.offset || pathValue === keyValue) {\r\n break\r\n } else {\r\n offset += getGroupCount(data[i], groups.length)\r\n }\r\n }\r\n if (!data.length || pathValue !== keyValue) {\r\n data.splice(i, 0, {\r\n key: path[0],\r\n items: [],\r\n count: 1 === path.length ? collapsedGroup.count : void 0\r\n })\r\n }\r\n appendCollapsedPath(data[i].items, path.slice(1), groups.slice(1), collapsedGroup, offset)\r\n }\r\n if (options.collapsedItemsCount && options.extra && options.extra.totalCount >= 0) {\r\n if (!options.extra._totalCountWasIncreasedByCollapsedItems) {\r\n options.extra.totalCount += options.collapsedItemsCount;\r\n options.extra._totalCountWasIncreasedByCollapsedItems = true\r\n }\r\n }\r\n callBase(options);\r\n if (groupCount) {\r\n var {\r\n data: data\r\n } = options;\r\n var query = dataQuery(data);\r\n storeHelper.multiLevelGroup(query, groups).enumerate().done(groupedData => {\r\n data = groupedData\r\n });\r\n if (collapsedGroups) {\r\n for (var pathIndex = 0; pathIndex < collapsedGroups.length; pathIndex++) {\r\n appendCollapsedPath(data, collapsedGroups[pathIndex].path, groups, collapsedGroups[pathIndex], options.skip)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n processGroupItems(this, data, [], options.skip, options.skipFirstItem, options.take)\r\n }\r\n options.data = data\r\n }\r\n }\r\n isGroupItemCountable(item) {\r\n return null === item.items\r\n }\r\n updateTotalItemsCount() {\r\n var itemsCountCorrection = 0;\r\n foreachCollapsedGroups(this, groupInfo => {\r\n if (groupInfo.count) {\r\n itemsCountCorrection -= groupInfo.count - 1\r\n }\r\n });\r\n super.updateTotalItemsCount(itemsCountCorrection)\r\n }\r\n changeRowExpand(path) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : dataSource.pageIndex();\r\n var dataSourceItems = dataSource.items();\r\n var offset = correctSkipLoadOption(that, beginPageIndex * dataSource.pageSize());\r\n var groupInfo = that.findGroupInfo(path);\r\n var groupCountQuery;\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n groupCountQuery = (new Deferred).resolve(groupInfo.count)\r\n } else {\r\n groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.filter(),\r\n group: dataSource.group()\r\n })\r\n })\r\n }\r\n return when(groupCountQuery).done(count => {\r\n count = parseInt(count.length ? count[0] : count);\r\n if (groupInfo) {\r\n updateGroupOffsets(that, dataSourceItems, [], offset);\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n groupInfo.count = count\r\n } else {\r\n groupInfo = {\r\n offset: -1,\r\n count: count,\r\n path: path,\r\n isExpanded: false\r\n };\r\n updateGroupOffsets(that, dataSourceItems, [], offset, groupInfo);\r\n if (groupInfo.offset >= 0) {\r\n that.addGroupInfo(groupInfo)\r\n }\r\n }\r\n that.updateTotalItemsCount()\r\n }).fail((function() {\r\n dataSource._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n }))\r\n }\r\n allowCollapseAll() {\r\n return false\r\n }\r\n refresh(options, operationTypes) {\r\n var that = this;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var dataSource = that._dataSource;\r\n super.refresh.apply(this, arguments);\r\n if (operationTypes.reload) {\r\n return foreachCollapsedGroups(that, groupInfo => {\r\n var groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n var groupOffsetQuery = loadTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((offset, count) => {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount()\r\n }\r\n })\r\n }, true)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/grouping/m_grouping.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n restoreFocus,\r\n setTabIndex\r\n} from \"../../../../ui/shared/accessibility\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../../../grids/grid_core/m_accessibility\";\r\nimport gridCore from \"../m_core\";\r\nimport dataSourceAdapterProvider from \"../m_data_source_adapter\";\r\nimport {\r\n GroupingHelper as CollapsedGroupingHelper\r\n} from \"./m_grouping_collapsed\";\r\nimport {\r\n GroupingHelper as ExpandedGroupingHelper\r\n} from \"./m_grouping_expanded\";\r\nvar DATAGRID_GROUP_PANEL_CLASS = \"dx-datagrid-group-panel\";\r\nvar DATAGRID_GROUP_PANEL_MESSAGE_CLASS = \"dx-group-panel-message\";\r\nvar DATAGRID_GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nvar DATAGRID_GROUP_PANEL_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar DATAGRID_GROUP_PANEL_CONTAINER_CLASS = \"dx-toolbar-item\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar DATAGRID_GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar dataSourceAdapterExtender = Base => class extends Base {\r\n init() {\r\n super.init.apply(this, arguments);\r\n this._initGroupingHelper()\r\n }\r\n _initGroupingHelper(options) {\r\n var grouping = this._grouping;\r\n var isAutoExpandAll = this.option(\"grouping.autoExpandAll\");\r\n var isFocusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var remoteOperations = options ? options.remoteOperations : this.remoteOperations();\r\n var isODataRemoteOperations = remoteOperations.filtering && remoteOperations.sorting && remoteOperations.paging;\r\n if (isODataRemoteOperations && !remoteOperations.grouping && (isAutoExpandAll || !isFocusedRowEnabled)) {\r\n if (!grouping || grouping instanceof CollapsedGroupingHelper) {\r\n this._grouping = new ExpandedGroupingHelper(this)\r\n }\r\n } else if (!grouping || grouping instanceof ExpandedGroupingHelper) {\r\n this._grouping = new CollapsedGroupingHelper(this)\r\n }\r\n }\r\n totalItemsCount() {\r\n var totalCount = super.totalItemsCount();\r\n return totalCount > 0 && this._dataSource.group() && this._dataSource.requireTotalCount() ? totalCount + this._grouping.totalCountCorrection() : totalCount\r\n }\r\n itemsCount() {\r\n return this._dataSource.group() ? this._grouping.itemsCount() || 0 : super.itemsCount.apply(this, arguments)\r\n }\r\n allowCollapseAll() {\r\n return this._grouping.allowCollapseAll()\r\n }\r\n isGroupItemCountable(item) {\r\n return this._grouping.isGroupItemCountable(item)\r\n }\r\n isRowExpanded(key) {\r\n var groupInfo = this._grouping.findGroupInfo(key);\r\n return groupInfo ? groupInfo.isExpanded : !this._grouping.allowCollapseAll()\r\n }\r\n collapseAll(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, false)\r\n }\r\n expandAll(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, true)\r\n }\r\n _collapseExpandAll(groupIndex, isExpand) {\r\n var dataSource = this._dataSource;\r\n var group = dataSource.group();\r\n var groups = gridCore.normalizeSortingInfo(group || []);\r\n if (groups.length) {\r\n for (var i = 0; i < groups.length; i++) {\r\n if (void 0 === groupIndex || groupIndex === i) {\r\n groups[i].isExpanded = isExpand\r\n } else if (group && group[i]) {\r\n groups[i].isExpanded = group[i].isExpanded\r\n }\r\n }\r\n dataSource.group(groups);\r\n this._grouping.foreachGroups((groupInfo, parents) => {\r\n if (void 0 === groupIndex || groupIndex === parents.length - 1) {\r\n groupInfo.isExpanded = isExpand\r\n }\r\n }, false, true);\r\n this.resetPagesCache()\r\n }\r\n return true\r\n }\r\n refresh() {\r\n super.refresh.apply(this, arguments);\r\n return this._grouping.refresh.apply(this._grouping, arguments)\r\n }\r\n changeRowExpand(path) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.group()) {\r\n dataSource.beginLoading();\r\n if (this._lastLoadOptions) {\r\n this._lastLoadOptions.groupExpand = true\r\n }\r\n return this._changeRowExpandCore(path).always(() => {\r\n dataSource.endLoading()\r\n })\r\n }\r\n }\r\n _changeRowExpandCore(path) {\r\n return this._grouping.changeRowExpand(path)\r\n }\r\n _hasGroupLevelsExpandState(group, isExpanded) {\r\n if (group && Array.isArray(group)) {\r\n for (var i = 0; i < group.length; i++) {\r\n if (group[i].isExpanded === isExpanded) {\r\n return true\r\n }\r\n }\r\n }\r\n }\r\n _customizeRemoteOperations(options, operationTypes) {\r\n var {\r\n remoteOperations: remoteOperations\r\n } = options;\r\n if (options.storeLoadOptions.group) {\r\n if (remoteOperations.grouping && !options.isCustomLoading) {\r\n if (!remoteOperations.groupPaging || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, true)) {\r\n remoteOperations.paging = false\r\n }\r\n }\r\n if (!remoteOperations.grouping && (!remoteOperations.sorting || !remoteOperations.filtering || options.isCustomLoading || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, false))) {\r\n remoteOperations.paging = false\r\n }\r\n } else if (!options.isCustomLoading && remoteOperations.paging && operationTypes.grouping) {\r\n this.resetCache()\r\n }\r\n super._customizeRemoteOperations.apply(this, arguments)\r\n }\r\n _handleDataLoading(options) {\r\n super._handleDataLoading(options);\r\n this._initGroupingHelper(options);\r\n return this._grouping.handleDataLoading(options)\r\n }\r\n _handleDataLoaded(options) {\r\n return this._grouping.handleDataLoaded(options, super._handleDataLoaded.bind(this))\r\n }\r\n _handleDataLoadedCore(options) {\r\n return this._grouping.handleDataLoadedCore(options, super._handleDataLoadedCore.bind(this))\r\n }\r\n};\r\ndataSourceAdapterProvider.extend(dataSourceAdapterExtender);\r\nvar GroupingDataControllerExtender = Base => class extends Base {\r\n init() {\r\n super.init();\r\n this.createAction(\"onRowExpanding\");\r\n this.createAction(\"onRowExpanded\");\r\n this.createAction(\"onRowCollapsing\");\r\n this.createAction(\"onRowCollapsed\")\r\n }\r\n _beforeProcessItems(items) {\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n items = super._beforeProcessItems(items);\r\n if (items.length && groupColumns.length) {\r\n items = this._processGroupItems(items, groupColumns.length)\r\n }\r\n return items\r\n }\r\n _processItem(item, options) {\r\n if (isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")) {\r\n item = this._processGroupItem(item, options);\r\n options.dataIndex = 0\r\n } else {\r\n item = super._processItem.apply(this, arguments)\r\n }\r\n return item\r\n }\r\n _processGroupItem(item, options) {\r\n return item\r\n }\r\n _processGroupItems(items, groupsCount, options) {\r\n var groupedColumns = this._columnsController.getGroupColumns();\r\n var column = groupedColumns[groupedColumns.length - groupsCount];\r\n if (!options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n options = {\r\n collectContinuationItems: \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode,\r\n resultItems: [],\r\n path: [],\r\n values: []\r\n }\r\n }\r\n var {\r\n resultItems: resultItems\r\n } = options;\r\n if (options.data) {\r\n if (options.collectContinuationItems || !options.data.isContinuation) {\r\n resultItems.push({\r\n rowType: \"group\",\r\n data: options.data,\r\n groupIndex: options.path.length - 1,\r\n isExpanded: !!options.data.items,\r\n key: options.path.slice(0),\r\n values: options.values.slice(0)\r\n })\r\n }\r\n }\r\n if (items) {\r\n if (0 === groupsCount) {\r\n resultItems.push.apply(resultItems, items)\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item && \"items\" in item) {\r\n options.data = item;\r\n options.path.push(item.key);\r\n options.values.push(column && column.deserializeValue && !column.calculateDisplayValue ? column.deserializeValue(item.key) : item.key);\r\n this._processGroupItems(item.items, groupsCount - 1, options);\r\n options.data = void 0;\r\n options.path.pop();\r\n options.values.pop()\r\n } else {\r\n resultItems.push(item)\r\n }\r\n }\r\n }\r\n }\r\n return resultItems\r\n }\r\n publicMethods() {\r\n return super.publicMethods().concat([\"collapseAll\", \"expandAll\", \"isRowExpanded\", \"expandRow\", \"collapseRow\"])\r\n }\r\n collapseAll(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.collapseAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n }\r\n expandAll(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.expandAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n }\r\n changeRowExpand(key) {\r\n var that = this;\r\n var expanded = that.isRowExpanded(key);\r\n var args = {\r\n key: key,\r\n expanded: expanded\r\n };\r\n that.executeAction(expanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return when(that._changeRowExpandCore(key)).done(() => {\r\n args.expanded = !expanded;\r\n that.executeAction(expanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n _changeRowExpandCore(key) {\r\n var that = this;\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n d.resolve()\r\n } else {\r\n when(dataSource.changeRowExpand(key)).done(() => {\r\n that.load().done(d.resolve).fail(d.reject)\r\n }).fail(d.reject)\r\n }\r\n return d\r\n }\r\n isRowExpanded(key) {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.isRowExpanded(key)\r\n }\r\n expandRow(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n collapseRow(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n optionChanged(args) {\r\n if (\"grouping\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n super.optionChanged(args)\r\n }\r\n};\r\nvar onGroupingMenuItemClick = function(column, params) {\r\n var columnsController = this._columnsController;\r\n switch (params.itemData.value) {\r\n case \"group\":\r\n var groups = columnsController._dataSource.group() || [];\r\n columnsController.columnOption(column.dataField, \"groupIndex\", groups.length);\r\n break;\r\n case \"ungroup\":\r\n columnsController.columnOption(column.dataField, \"groupIndex\", -1);\r\n break;\r\n case \"ungroupAll\":\r\n this.component.clearGrouping()\r\n }\r\n};\r\nvar isGroupPanelVisible = groupPanelOptions => {\r\n var visible = null === groupPanelOptions || void 0 === groupPanelOptions ? void 0 : groupPanelOptions.visible;\r\n return \"auto\" === visible ? \"desktop\" === devices.current().deviceType : !!visible\r\n};\r\nvar allowDragging = (groupPanelOptions, column) => {\r\n var isVisible = isGroupPanelVisible(groupPanelOptions);\r\n var canDrag = (null === groupPanelOptions || void 0 === groupPanelOptions ? void 0 : groupPanelOptions.allowColumnDragging) && column.allowGrouping;\r\n return isVisible && !!canDrag\r\n};\r\nexport var GroupingHeaderPanelExtender = Base => class extends Base {\r\n _getToolbarItems() {\r\n var items = super._getToolbarItems();\r\n return this._appendGroupingItem(items)\r\n }\r\n _appendGroupingItem(items) {\r\n if (this._isGroupPanelVisible()) {\r\n var isRendered = false;\r\n var toolbarItem = {\r\n template: () => {\r\n var $groupPanel = $(\"<div>\").addClass(DATAGRID_GROUP_PANEL_CLASS);\r\n this._updateGroupPanelContent($groupPanel);\r\n registerKeyboardAction(\"groupPanel\", this, $groupPanel, void 0, this._handleActionKeyDown.bind(this));\r\n return $groupPanel\r\n },\r\n name: \"groupPanel\",\r\n onItemRendered: () => {\r\n isRendered && this.renderCompleted.fire();\r\n isRendered = true\r\n },\r\n location: \"before\",\r\n locateInMenu: \"never\",\r\n sortIndex: 1\r\n };\r\n items.push(toolbarItem);\r\n this.updateToolbarDimensions()\r\n }\r\n return items\r\n }\r\n _handleActionKeyDown(args) {\r\n var {\r\n event: event\r\n } = args;\r\n var $target = $(event.target);\r\n var groupColumnIndex = $target.closest(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS)).index();\r\n var column = this._columnsController.getGroupColumns()[groupColumnIndex];\r\n var columnIndex = column && column.index;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n this._headerFilterController.showHeaderFilterMenu(columnIndex, true)\r\n } else {\r\n this._processGroupItemAction(columnIndex)\r\n }\r\n event.preventDefault()\r\n }\r\n _isGroupPanelVisible() {\r\n return isGroupPanelVisible(this.option(\"groupPanel\"))\r\n }\r\n _renderGroupPanelItems($groupPanel, groupColumns) {\r\n var that = this;\r\n $groupPanel.empty();\r\n each(groupColumns, (index, groupColumn) => {\r\n that._createGroupPanelItem($groupPanel, groupColumn)\r\n });\r\n restoreFocus(this)\r\n }\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var $groupPanelItem = $(\"<div>\").addClass(groupColumn.cssClass).addClass(DATAGRID_GROUP_PANEL_ITEM_CLASS).data(\"columnData\", groupColumn).appendTo($rootElement).text(groupColumn.caption);\r\n setTabIndex(this, $groupPanelItem);\r\n return $groupPanelItem\r\n }\r\n _columnOptionChanged(e) {\r\n if (!this._requireReady && !gridCore.checkChanges(e.optionNames, [\"width\", \"visibleWidth\"])) {\r\n var $toolbarElement = this.element();\r\n var $groupPanel = $toolbarElement && $toolbarElement.find(\".\".concat(DATAGRID_GROUP_PANEL_CLASS));\r\n if ($groupPanel && $groupPanel.length) {\r\n this._updateGroupPanelContent($groupPanel);\r\n this.updateToolbarDimensions();\r\n this.renderCompleted.fire()\r\n }\r\n }\r\n super._columnOptionChanged()\r\n }\r\n _updateGroupPanelContent($groupPanel) {\r\n var groupColumns = this.getColumns();\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n this._renderGroupPanelItems($groupPanel, groupColumns);\r\n if (groupPanelOptions.allowColumnDragging && !groupColumns.length) {\r\n $(\"<div>\").addClass(DATAGRID_GROUP_PANEL_MESSAGE_CLASS).text(groupPanelOptions.emptyPanelText).appendTo($groupPanel);\r\n $groupPanel.closest(\".\".concat(DATAGRID_GROUP_PANEL_CONTAINER_CLASS)).addClass(DATAGRID_GROUP_PANEL_LABEL_CLASS);\r\n $groupPanel.closest(\".\".concat(DATAGRID_GROUP_PANEL_LABEL_CLASS)).css(\"maxWidth\", \"none\")\r\n }\r\n }\r\n allowDragging(column) {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n return allowDragging(groupPanelOptions, column)\r\n }\r\n getColumnElements() {\r\n var $element = this.element();\r\n return $element && $element.find(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS))\r\n }\r\n getColumns() {\r\n return this._columnsController.getGroupColumns()\r\n }\r\n getBoundingRect() {\r\n var $element = this.element();\r\n if ($element && $element.find(\".\".concat(DATAGRID_GROUP_PANEL_CLASS)).length) {\r\n var offset = $element.offset();\r\n return {\r\n top: offset.top,\r\n bottom: offset.top + getHeight($element)\r\n }\r\n }\r\n return null\r\n }\r\n getName() {\r\n return \"group\"\r\n }\r\n getContextMenuItems(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var $groupedColumnElement = $(options.targetElement).closest(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS));\r\n var items;\r\n if ($groupedColumnElement.length) {\r\n options.column = $groupedColumnElement.data(\"columnData\")\r\n }\r\n if (contextMenuEnabled && options.column) {\r\n var {\r\n column: column\r\n } = options;\r\n var isGroupingAllowed = isDefined(column.allowGrouping) ? column.allowGrouping : true;\r\n if (isGroupingAllowed) {\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [{\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return items\r\n }\r\n isVisible() {\r\n return super.isVisible() || this._isGroupPanelVisible()\r\n }\r\n hasGroupedColumns() {\r\n return this._isGroupPanelVisible() && !!this.getColumns().length\r\n }\r\n optionChanged(args) {\r\n if (\"groupPanel\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n};\r\nvar GroupingRowsViewExtender = Base => class extends Base {\r\n getContextMenuItems(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items;\r\n if (contextMenuEnabled && options.row && \"group\" === options.row.rowType) {\r\n var columnsController = this._columnsController;\r\n var column = columnsController.columnOption(\"groupIndex:\".concat(options.row.groupIndex));\r\n if (column && column.allowGrouping) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [];\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n }\r\n _rowClick(e) {\r\n var expandMode = this.option(\"grouping.expandMode\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isGroupRowStateChanged = \"infinite\" !== scrollingMode && \"rowClick\" === expandMode && $(e.event.target).closest(\".\".concat(DATAGRID_GROUP_ROW_CLASS)).length;\r\n var isExpandButtonClicked = $(e.event.target).closest(\".\".concat(DATAGRID_EXPAND_CLASS)).length;\r\n if (isGroupRowStateChanged || isExpandButtonClicked) {\r\n this._changeGroupRowState(e)\r\n }\r\n super._rowClick(e)\r\n }\r\n _changeGroupRowState(e) {\r\n var row = this._dataController.items()[e.rowIndex];\r\n var allowCollapsing = this._columnsController.columnOption(\"groupIndex:\".concat(row.groupIndex), \"allowCollapsing\");\r\n if (\"data\" === row.rowType || \"group\" === row.rowType && false !== allowCollapsing) {\r\n this._dataController.changeRowExpand(row.key, true);\r\n e.event.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n};\r\nvar columnHeadersViewExtender = Base => class extends Base {\r\n getContextMenuItems(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items = super.getContextMenuItems(options);\r\n if (contextMenuEnabled && options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var {\r\n column: column\r\n } = options;\r\n if (!column.command && (!isDefined(column.allowGrouping) || column.allowGrouping)) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = items || [];\r\n items.push({\r\n text: groupingTexts.groupByThisColumn,\r\n value: \"group\",\r\n beginGroup: true,\r\n disabled: isColumnGrouped,\r\n onItemClick: onItemClick\r\n });\r\n if (column.showWhenGrouped) {\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n items.push({\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n }\r\n allowDragging(column) {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n return allowDragging(groupPanelOptions, column) || super.allowDragging(column)\r\n }\r\n};\r\ngridCore.registerModule(\"grouping\", {\r\n defaultOptions: () => ({\r\n grouping: {\r\n autoExpandAll: true,\r\n allowCollapsing: true,\r\n contextMenuEnabled: false,\r\n expandMode: \"buttonClick\",\r\n texts: {\r\n groupContinuesMessage: messageLocalization.format(\"dxDataGrid-groupContinuesMessage\"),\r\n groupContinuedMessage: messageLocalization.format(\"dxDataGrid-groupContinuedMessage\"),\r\n groupByThisColumn: messageLocalization.format(\"dxDataGrid-groupHeaderText\"),\r\n ungroup: messageLocalization.format(\"dxDataGrid-ungroupHeaderText\"),\r\n ungroupAll: messageLocalization.format(\"dxDataGrid-ungroupAllText\")\r\n }\r\n },\r\n groupPanel: {\r\n visible: false,\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-groupPanelEmptyText\"),\r\n allowColumnDragging: true\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n data: GroupingDataControllerExtender,\r\n columns: Base => class extends Base {\r\n _getExpandColumnOptions() {\r\n var options = super._getExpandColumnOptions.apply(this, arguments);\r\n options.cellTemplate = gridCore.getExpandCellTemplate();\r\n return options\r\n }\r\n },\r\n editing: Base => class extends Base {\r\n _isProcessedItem(item) {\r\n return isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: GroupingHeaderPanelExtender,\r\n rowsView: GroupingRowsViewExtender,\r\n columnHeadersView: columnHeadersViewExtender\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/master_detail/m_master_detail.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n grep\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar columns = Base => class extends Base {\r\n _getExpandColumnsCore() {\r\n var expandColumns = super._getExpandColumnsCore();\r\n if (this.option(\"masterDetail.enabled\")) {\r\n expandColumns.push({\r\n type: \"detailExpand\",\r\n cellTemplate: gridCoreUtils.getExpandCellTemplate()\r\n })\r\n }\r\n return expandColumns\r\n }\r\n};\r\nvar initMasterDetail = function(that) {\r\n that._expandedItems = [];\r\n that._isExpandAll = that.option(\"masterDetail.autoExpandAll\")\r\n};\r\nexport var dataMasterDetailExtenderMixin = Base => class extends Base {\r\n init() {\r\n initMasterDetail(this);\r\n super.init()\r\n }\r\n expandAll(groupIndex) {\r\n if (groupIndex < 0) {\r\n this._isExpandAll = true;\r\n this._expandedItems = [];\r\n this.updateItems()\r\n } else {\r\n super.expandAll.apply(this, arguments)\r\n }\r\n }\r\n collapseAll(groupIndex) {\r\n if (groupIndex < 0) {\r\n this._isExpandAll = false;\r\n this._expandedItems = [];\r\n this.updateItems()\r\n } else {\r\n super.collapseAll.apply(this, arguments)\r\n }\r\n }\r\n isRowExpandedHack() {\r\n return super.isRowExpanded.apply(this, arguments)\r\n }\r\n isRowExpanded(key) {\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, this._expandedItems);\r\n if (Array.isArray(key)) {\r\n return super.isRowExpanded.apply(this, arguments)\r\n }\r\n return !!(this._isExpandAll ^ (expandIndex >= 0 && this._expandedItems[expandIndex].visible))\r\n }\r\n _getRowIndicesForExpand(key) {\r\n var rowIndex = this.getRowIndexByKey(key);\r\n return [rowIndex, rowIndex + 1]\r\n }\r\n _changeRowExpandCore(key) {\r\n var result;\r\n if (Array.isArray(key)) {\r\n result = super._changeRowExpandCore.apply(this, arguments)\r\n } else {\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, this._expandedItems);\r\n if (expandIndex >= 0) {\r\n var {\r\n visible: visible\r\n } = this._expandedItems[expandIndex];\r\n this._expandedItems[expandIndex].visible = !visible\r\n } else {\r\n this._expandedItems.push({\r\n key: key,\r\n visible: true\r\n })\r\n }\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: this._getRowIndicesForExpand(key)\r\n });\r\n result = (new Deferred).resolve()\r\n }\r\n return result\r\n }\r\n _processDataItemHack() {\r\n return super._processDataItem.apply(this, arguments)\r\n }\r\n _processDataItem(data, options) {\r\n var dataItem = super._processDataItem.apply(this, arguments);\r\n dataItem.isExpanded = this.isRowExpanded(dataItem.key);\r\n if (void 0 === options.detailColumnIndex) {\r\n options.detailColumnIndex = -1;\r\n each(options.visibleColumns, (index, column) => {\r\n if (\"expand\" === column.command && !isDefined(column.groupIndex)) {\r\n options.detailColumnIndex = index;\r\n return false\r\n }\r\n return\r\n })\r\n }\r\n if (options.detailColumnIndex >= 0) {\r\n dataItem.values[options.detailColumnIndex] = dataItem.isExpanded\r\n }\r\n return dataItem\r\n }\r\n _processItemsHack() {\r\n return super._processItems.apply(this, arguments)\r\n }\r\n _processItems(items, change) {\r\n var that = this;\r\n var {\r\n changeType: changeType\r\n } = change;\r\n var result = [];\r\n items = super._processItems.apply(that, arguments);\r\n if (\"loadingAll\" === changeType) {\r\n return items\r\n }\r\n if (\"refresh\" === changeType) {\r\n that._expandedItems = grep(that._expandedItems, item => item.visible)\r\n }\r\n each(items, (index, item) => {\r\n result.push(item);\r\n var expandIndex = gridCoreUtils.getIndexByKey(item.key, that._expandedItems);\r\n if (\"data\" === item.rowType && (item.isExpanded || expandIndex >= 0) && !item.isNewRow) {\r\n result.push({\r\n visible: item.isExpanded,\r\n rowType: \"detail\",\r\n key: item.key,\r\n data: item.data,\r\n values: []\r\n })\r\n }\r\n });\r\n return result\r\n }\r\n optionChanged(args) {\r\n var isEnabledChanged;\r\n var isAutoExpandAllChanged;\r\n if (\"masterDetail\" === args.name) {\r\n args.name = \"dataSource\";\r\n switch (args.fullName) {\r\n case \"masterDetail\":\r\n var value = args.value || {};\r\n var previousValue = args.previousValue || {};\r\n isEnabledChanged = value.enabled !== previousValue.enabled;\r\n isAutoExpandAllChanged = value.autoExpandAll !== previousValue.autoExpandAll;\r\n break;\r\n case \"masterDetail.template\":\r\n initMasterDetail(this);\r\n break;\r\n case \"masterDetail.enabled\":\r\n isEnabledChanged = true;\r\n break;\r\n case \"masterDetail.autoExpandAll\":\r\n isAutoExpandAllChanged = true\r\n }\r\n if (isEnabledChanged || isAutoExpandAllChanged) {\r\n initMasterDetail(this)\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n};\r\nvar resizing = Base => class extends Base {\r\n fireContentReadyAction() {\r\n super.fireContentReadyAction.apply(this, arguments);\r\n this._updateParentDataGrids(this.component.$element())\r\n }\r\n _updateParentDataGrids($element) {\r\n var $masterDetailRow = $element.closest(\".\".concat(MASTER_DETAIL_ROW_CLASS));\r\n if ($masterDetailRow.length) {\r\n when(this._updateMasterDataGrid($masterDetailRow, $element)).done(() => {\r\n this._updateParentDataGrids($masterDetailRow.parent())\r\n })\r\n }\r\n }\r\n _updateMasterDataGrid($masterDetailRow, $detailElement) {\r\n var masterRowOptions = $($masterDetailRow).data(\"options\");\r\n var masterDataGrid = $($masterDetailRow).closest(\".\".concat(this.getWidgetContainerClass())).parent().data(\"dxDataGrid\");\r\n if (masterRowOptions && masterDataGrid) {\r\n return this._updateMasterDataGridCore(masterDataGrid, masterRowOptions)\r\n }\r\n return\r\n }\r\n _updateMasterDataGridCore(masterDataGrid, masterRowOptions) {\r\n var d = Deferred();\r\n if (masterDataGrid.getView(\"rowsView\").isFixedColumns()) {\r\n this._updateFixedMasterDetailGrids(masterDataGrid, masterRowOptions.rowIndex, $(masterRowOptions.rowElement)).done(d.resolve)\r\n } else {\r\n if (true === masterDataGrid.option(\"scrolling.useNative\")) {\r\n masterDataGrid.updateDimensions().done(() => d.resolve(true));\r\n return\r\n }\r\n var scrollable = masterDataGrid.getScrollable();\r\n if (scrollable) {\r\n null === scrollable || void 0 === scrollable ? void 0 : scrollable.update().done(() => d.resolve())\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n return d.promise()\r\n }\r\n _updateFixedMasterDetailGrids(masterDataGrid, masterRowIndex, $detailElement) {\r\n var d = Deferred();\r\n var $rows = $(masterDataGrid.getRowElement(masterRowIndex));\r\n var $tables = $(masterDataGrid.getView(\"rowsView\").getTableElements());\r\n var rowsNotEqual = 2 === (null === $rows || void 0 === $rows ? void 0 : $rows.length) && getHeight($rows.eq(0)) !== getHeight($rows.eq(1));\r\n var tablesNotEqual = 2 === (null === $tables || void 0 === $tables ? void 0 : $tables.length) && getHeight($tables.eq(0)) !== getHeight($tables.eq(1));\r\n if (rowsNotEqual || tablesNotEqual) {\r\n var detailElementWidth = getWidth($detailElement);\r\n masterDataGrid.updateDimensions().done(() => {\r\n var isDetailHorizontalScrollCanBeShown = this.option(\"columnAutoWidth\") && true === masterDataGrid.option(\"scrolling.useNative\");\r\n var isDetailGridWidthChanged = isDetailHorizontalScrollCanBeShown && detailElementWidth !== getWidth($detailElement);\r\n if (isDetailHorizontalScrollCanBeShown && isDetailGridWidthChanged) {\r\n this.updateDimensions().done(() => d.resolve(true))\r\n } else {\r\n d.resolve(true)\r\n }\r\n });\r\n return d.promise()\r\n }\r\n return Deferred().resolve()\r\n }\r\n _toggleBestFitMode(isBestFit) {\r\n super._toggleBestFitMode.apply(this, arguments);\r\n if (this.option(\"masterDetail.template\")) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n if ($rowsTable) {\r\n $rowsTable.find(\".dx-master-detail-cell\").css(\"maxWidth\", isBestFit ? 0 : \"\")\r\n }\r\n }\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n _getCellTemplate(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var editingController = this._editingController;\r\n var isEditRow = editingController && editingController.isEditRow(options.rowIndex);\r\n var template;\r\n if (\"detail\" === column.command && !isEditRow) {\r\n template = this.option(\"masterDetail.template\") || {\r\n allowRenderToDetachedContainer: false,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n } else {\r\n template = super._getCellTemplate.apply(this, arguments)\r\n }\r\n return template\r\n }\r\n _isDetailRow(row) {\r\n return row && row.rowType && 0 === row.rowType.indexOf(\"detail\")\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row && this._isDetailRow(row)) {\r\n this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n $row.addClass(MASTER_DETAIL_ROW_CLASS);\r\n if (isDefined(row.visible)) {\r\n $row.toggle(row.visible)\r\n }\r\n }\r\n return $row\r\n }\r\n _renderCells($row, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var $detailCell;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (row.rowType && this._isDetailRow(row)) {\r\n if (this._needRenderCell(0, options.columnIndices)) {\r\n $detailCell = this._renderCell($row, {\r\n value: null,\r\n row: row,\r\n rowIndex: row.rowIndex,\r\n column: {\r\n command: \"detail\"\r\n },\r\n columnIndex: 0,\r\n change: options.change\r\n });\r\n $detailCell.addClass(CELL_FOCUS_DISABLED_CLASS).addClass(MASTER_DETAIL_CELL_CLASS).attr(\"colSpan\", visibleColumns.length)\r\n }\r\n } else {\r\n super._renderCells.apply(this, arguments)\r\n }\r\n }\r\n};\r\nexport var masterDetailModule = {\r\n defaultOptions: () => ({\r\n masterDetail: {\r\n enabled: false,\r\n autoExpandAll: false,\r\n template: null\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n columns: columns,\r\n data: dataMasterDetailExtenderMixin,\r\n resizing: resizing\r\n },\r\n views: {\r\n rowsView: rowsView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/master_detail.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n masterDetailModule\r\n} from \"../../../grids/grid_core/master_detail/m_master_detail\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"masterDetail\", masterDetailModule);\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.spin.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n lock\r\n} from \"../../../events/core/emitter.feedback\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../events/hold\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_BUTTON_CLASS = \"dx-numberbox-spin-button\";\r\nvar SPIN_HOLD_DELAY = 100;\r\nvar NUMBER_BOX = \"dxNumberBox\";\r\nvar POINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, NUMBER_BOX);\r\nvar POINTERCANCEL_EVENT_NAME = addNamespace(pointerEvents.cancel, NUMBER_BOX);\r\nvar SpinButton = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n direction: \"up\",\r\n onChange: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true\r\n })\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n var direction = \"\".concat(SPIN_CLASS, \"-\").concat(this.option(\"direction\"));\r\n this.$element().addClass(SPIN_BUTTON_CLASS).addClass(direction);\r\n this._spinIcon = $(\"<div>\").addClass(\"\".concat(direction, \"-icon\")).appendTo(this.$element())\r\n },\r\n _render() {\r\n this.callBase();\r\n var eventName = addNamespace(pointerEvents.down, this.NAME);\r\n var $element = this.$element();\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, this._spinDownHandler.bind(this));\r\n this._spinChangeHandler = this._createActionByOption(\"onChange\")\r\n },\r\n _spinDownHandler(e) {\r\n e.preventDefault();\r\n this._clearTimer();\r\n eventsEngine.on(this.$element(), holdEvent.name, () => {\r\n this._feedBackDeferred = Deferred();\r\n lock(this._feedBackDeferred);\r\n this._spinChangeHandler({\r\n event: e\r\n });\r\n this._holdTimer = setInterval(this._spinChangeHandler, SPIN_HOLD_DELAY, {\r\n event: e\r\n })\r\n });\r\n var document = domAdapter.getDocument();\r\n eventsEngine.on(document, POINTERUP_EVENT_NAME, this._clearTimer.bind(this));\r\n eventsEngine.on(document, POINTERCANCEL_EVENT_NAME, this._clearTimer.bind(this));\r\n this._spinChangeHandler({\r\n event: e\r\n })\r\n },\r\n _dispose() {\r\n this._clearTimer();\r\n this.callBase()\r\n },\r\n _clearTimer() {\r\n eventsEngine.off(this.$element(), holdEvent.name);\r\n var document = domAdapter.getDocument();\r\n eventsEngine.off(document, POINTERUP_EVENT_NAME);\r\n eventsEngine.off(document, POINTERCANCEL_EVENT_NAME);\r\n if (this._feedBackDeferred) {\r\n this._feedBackDeferred.resolve()\r\n }\r\n if (this._holdTimer) {\r\n clearInterval(this._holdTimer)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onChange\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default SpinButton;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.spins.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport pointer from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport TextEditorButton from \"../../ui/text_box/texteditor_button_collection/m_button\";\r\nimport SpinButton from \"./m_number_box.spin\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_CONTAINER_CLASS = \"dx-numberbox-spin-container\";\r\nvar SPIN_TOUCH_FRIENDLY_CLASS = \"dx-numberbox-spin-touch-friendly\";\r\nexport default class SpinButtons extends TextEditorButton {\r\n _attachEvents(instance, $spinContainer) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var eventName = addNamespace(pointer.down, editor.NAME);\r\n var $spinContainerChildren = $spinContainer.children();\r\n var pointerDownAction = editor._createAction(e => editor._spinButtonsPointerDownHandler(e));\r\n eventsEngine.off($spinContainer, eventName);\r\n eventsEngine.on($spinContainer, eventName, e => pointerDownAction({\r\n event: e\r\n }));\r\n SpinButton.getInstance($spinContainerChildren.eq(0)).option(\"onChange\", e => editor._spinUpChangeHandler(e));\r\n SpinButton.getInstance($spinContainerChildren.eq(1)).option(\"onChange\", e => editor._spinDownChangeHandler(e))\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $spinContainer = $(\"<div>\").addClass(SPIN_CONTAINER_CLASS);\r\n var $spinUp = $(\"<div>\").appendTo($spinContainer);\r\n var $spinDown = $(\"<div>\").appendTo($spinContainer);\r\n var options = this._getOptions();\r\n this._addToContainer($spinContainer);\r\n editor._createComponent($spinUp, SpinButton, extend({\r\n direction: \"up\"\r\n }, options));\r\n editor._createComponent($spinDown, SpinButton, extend({\r\n direction: \"down\"\r\n }, options));\r\n this._legacyRender(editor.$element(), this._isTouchFriendly(), options.visible);\r\n return {\r\n instance: $spinContainer,\r\n $element: $spinContainer\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var disabled = editor.option(\"disabled\");\r\n return {\r\n visible: visible,\r\n disabled: disabled\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showSpinButtons\")\r\n }\r\n _isTouchFriendly() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"showSpinButtons\") && editor.option(\"useLargeSpinButtons\")\r\n }\r\n _legacyRender($editor, isTouchFriendly, isVisible) {\r\n $editor.toggleClass(SPIN_TOUCH_FRIENDLY_CLASS, isTouchFriendly);\r\n $editor.toggleClass(SPIN_CLASS, isVisible)\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n var isTouchFriendly = this._isTouchFriendly();\r\n var $spinButtons = instance.children();\r\n var spinUp = SpinButton.getInstance($spinButtons.eq(0));\r\n var spinDown = SpinButton.getInstance($spinButtons.eq(1));\r\n var options = this._getOptions();\r\n spinUp.option(options);\r\n spinDown.option(options);\r\n this._legacyRender($editor, isTouchFriendly, isVisible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n applyServerDecimalSeparator,\r\n ensureDefined\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport TextEditor from \"../../../ui/text_box/ui.text_editor\";\r\nimport SpinButtons from \"./m_number_box.spins\";\r\nvar math = Math;\r\nvar WIDGET_CLASS = \"dx-numberbox\";\r\nvar FIREFOX_CONTROL_KEYS = [\"tab\", \"del\", \"backspace\", \"leftArrow\", \"rightArrow\", \"home\", \"end\", \"enter\"];\r\nvar FORCE_VALUECHANGE_EVENT_NAMESPACE = \"NumberBoxForceValueChange\";\r\nvar NumberBoxBase = TextEditor.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n upArrow(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinUpChangeHandler(e)\r\n }\r\n },\r\n downArrow(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinDownChangeHandler(e)\r\n }\r\n },\r\n enter() {}\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n value: 0,\r\n min: void 0,\r\n max: void 0,\r\n step: 1,\r\n showSpinButtons: false,\r\n useLargeSpinButtons: true,\r\n mode: \"text\",\r\n invalidValueMessage: messageLocalization.format(\"dxNumberBox-invalidValueMessage\"),\r\n buttons: void 0\r\n })\r\n },\r\n _useTemplates: () => false,\r\n _getDefaultButtons() {\r\n return this.callBase().concat([{\r\n name: \"spins\",\r\n Ctor: SpinButtons\r\n }])\r\n },\r\n _isSupportInputMode() {\r\n var version = parseFloat(browser.version);\r\n return browser.chrome && version >= 66 || browser.safari && version >= 12\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => devices.real().generic && !devices.isSimulator(),\r\n options: {\r\n useLargeSpinButtons: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType && !this._isSupportInputMode()\r\n }.bind(this),\r\n options: {\r\n mode: \"number\"\r\n }\r\n }])\r\n },\r\n _initMarkup() {\r\n this._renderSubmitElement();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this.callBase()\r\n },\r\n _getDefaultAttributes() {\r\n var attributes = this.callBase();\r\n attributes.inputmode = \"decimal\";\r\n return attributes\r\n },\r\n _renderContentImpl() {\r\n this.option(\"isValid\") && this._validateValue(this.option(\"value\"));\r\n this.setAria(\"role\", \"spinbutton\")\r\n },\r\n _renderSubmitElement() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue(value) {\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value))\r\n },\r\n _getSubmitElement() {\r\n return this._$submitElement\r\n },\r\n _keyPressHandler(e) {\r\n this.callBase(e);\r\n var char = getChar(e);\r\n var isInputCharValid = /[\\d.,eE\\-+]/.test(char);\r\n if (!isInputCharValid) {\r\n var keyName = normalizeKeyName(e);\r\n if (isCommandKeyPressed(e) || keyName && FIREFOX_CONTROL_KEYS.includes(keyName)) {\r\n return\r\n }\r\n e.preventDefault();\r\n return false\r\n }\r\n this._keyPressed = true\r\n },\r\n _onMouseWheel(dxEvent) {\r\n dxEvent.delta > 0 ? this._spinValueChange(1, dxEvent) : this._spinValueChange(-1, dxEvent)\r\n },\r\n _renderValue() {\r\n var inputValue = this._input().val();\r\n var value = this.option(\"value\");\r\n if (!inputValue.length || Number(inputValue) !== value) {\r\n this._forceValueRender();\r\n this._toggleEmptinessEventHandler()\r\n }\r\n var valueText = isDefined(value) ? null : messageLocalization.format(\"dxNumberBox-noDataText\");\r\n this.setAria({\r\n valuenow: ensureDefined(value, \"\"),\r\n valuetext: valueText\r\n });\r\n this.option(\"text\", this._input().val());\r\n this._updateButtons();\r\n return Deferred().resolve()\r\n },\r\n _forceValueRender() {\r\n var value = this.option(\"value\");\r\n var number = Number(value);\r\n var formattedValue = isNaN(number) ? \"\" : this._applyDisplayValueFormatter(value);\r\n this._renderDisplayText(formattedValue)\r\n },\r\n _applyDisplayValueFormatter(value) {\r\n return this.option(\"displayValueFormatter\")(value)\r\n },\r\n _renderProps() {\r\n this._input().prop({\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n step: this.option(\"step\")\r\n });\r\n this.setAria({\r\n valuemin: ensureDefined(this.option(\"min\"), \"\"),\r\n valuemax: ensureDefined(this.option(\"max\"), \"\")\r\n })\r\n },\r\n _spinButtonsPointerDownHandler() {\r\n var $input = this._input();\r\n if (!this.option(\"useLargeSpinButtons\") && domAdapter.getActiveElement() !== $input[0]) {\r\n eventsEngine.trigger($input, \"focus\")\r\n }\r\n },\r\n _spinUpChangeHandler(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(1, e.event || e)\r\n }\r\n },\r\n _spinDownChangeHandler(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(-1, e.event || e)\r\n }\r\n },\r\n _spinValueChange(sign, dxEvent) {\r\n var step = parseFloat(this.option(\"step\"));\r\n if (0 === step) {\r\n return\r\n }\r\n var value = parseFloat(this._normalizeInputValue()) || 0;\r\n value = this._correctRounding(value, step * sign);\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (isDefined(min)) {\r\n value = Math.max(min, value)\r\n }\r\n if (isDefined(max)) {\r\n value = Math.min(max, value)\r\n }\r\n this._saveValueChangeEvent(dxEvent);\r\n this.option(\"value\", value)\r\n },\r\n _correctRounding(value, step) {\r\n var regex = /[,.](.*)/;\r\n var isFloatValue = regex.test(value);\r\n var isFloatStep = regex.test(step);\r\n if (isFloatValue || isFloatStep) {\r\n var valueAccuracy = isFloatValue ? regex.exec(value)[0].length : 0;\r\n var stepAccuracy = isFloatStep ? regex.exec(step)[0].length : 0;\r\n var accuracy = math.max(valueAccuracy, stepAccuracy);\r\n value = this._round(value + step, accuracy);\r\n return value\r\n }\r\n return value + step\r\n },\r\n _round(value, precision) {\r\n precision = precision || 0;\r\n var multiplier = 10 ** precision;\r\n value *= multiplier;\r\n value = Math.round(value) / multiplier;\r\n return value\r\n },\r\n _renderValueChangeEvent() {\r\n this.callBase();\r\n var forceValueChangeEvent = addNamespace(\"focusout\", FORCE_VALUECHANGE_EVENT_NAMESPACE);\r\n eventsEngine.off(this.element(), forceValueChangeEvent);\r\n eventsEngine.on(this.element(), forceValueChangeEvent, this._forceRefreshInputValue.bind(this))\r\n },\r\n _forceRefreshInputValue() {\r\n if (\"number\" === this.option(\"mode\")) {\r\n return\r\n }\r\n var $input = this._input();\r\n var formattedValue = this._applyDisplayValueFormatter(this.option(\"value\"));\r\n $input.val(null);\r\n $input.val(formattedValue)\r\n },\r\n _valueChangeEventHandler(e) {\r\n var $input = this._input();\r\n var inputValue = this._normalizeText();\r\n var value = this._parseValue(inputValue);\r\n var valueHasDigits = \".\" !== inputValue && \"-\" !== inputValue;\r\n if (this._isValueValid() && !this._validateValue(value)) {\r\n $input.val(this._applyDisplayValueFormatter(value));\r\n return\r\n }\r\n if (valueHasDigits) {\r\n this.callBase(e, isNaN(value) ? null : value)\r\n }\r\n this._applyValueBoundaries(inputValue, value);\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n },\r\n _applyValueBoundaries(inputValue, parsedValue) {\r\n var isValueIncomplete = this._isValueIncomplete(inputValue);\r\n var isValueCorrect = this._isValueInRange(inputValue);\r\n if (!isValueIncomplete && !isValueCorrect && null !== parsedValue) {\r\n if (Number(inputValue) !== parsedValue) {\r\n this._input().val(this._applyDisplayValueFormatter(parsedValue))\r\n }\r\n }\r\n },\r\n _replaceCommaWithPoint: value => value.replace(\",\", \".\"),\r\n _inputIsInvalid() {\r\n var isNumberMode = \"number\" === this.option(\"mode\");\r\n var validityState = this._input().get(0).validity;\r\n return isNumberMode && validityState && validityState.badInput\r\n },\r\n _renderDisplayText(text) {\r\n if (this._inputIsInvalid()) {\r\n return\r\n }\r\n this.callBase(text)\r\n },\r\n _isValueIncomplete: value => /(^-$)|(^-?\\d*\\.$)|(\\d+e-?$)/i.test(value),\r\n _isValueInRange(value) {\r\n return inRange(value, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _isNumber(value) {\r\n return null !== this._parseValue(value)\r\n },\r\n _validateValue(value) {\r\n var inputValue = this._normalizeText();\r\n var isValueValid = this._isValueValid();\r\n var isValid = true;\r\n var isNumber = this._isNumber(inputValue);\r\n if (isNaN(Number(value))) {\r\n isValid = false\r\n }\r\n if (!value && isValueValid) {\r\n isValid = true\r\n } else if (!isNumber && !isValueValid) {\r\n isValid = false\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"invalidValueMessage\")\r\n }\r\n });\r\n return isValid\r\n },\r\n _normalizeInputValue() {\r\n return this._parseValue(this._normalizeText())\r\n },\r\n _normalizeText() {\r\n var value = this._input().val().trim();\r\n return this._replaceCommaWithPoint(value)\r\n },\r\n _parseValue(value) {\r\n var number = parseFloat(value);\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n return fitIntoRange(number, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _clearValue() {\r\n if (this._inputIsInvalid()) {\r\n this._input().val(\"\");\r\n this._validateValue()\r\n }\r\n this.callBase()\r\n },\r\n clear() {\r\n if (null === this.option(\"value\")) {\r\n this.option(\"text\", \"\");\r\n if (this._input().length) {\r\n this._renderValue()\r\n }\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._validateValue(args.value);\r\n this._setSubmitValue(args.value);\r\n this.callBase(args);\r\n this._resumeValueChangeAction();\r\n break;\r\n case \"step\":\r\n this._renderProps();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderProps();\r\n this.option(\"value\", this._parseValue(this.option(\"value\")));\r\n break;\r\n case \"showSpinButtons\":\r\n case \"useLargeSpinButtons\":\r\n this._updateButtons([\"spins\"]);\r\n break;\r\n case \"invalidValueMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default NumberBoxBase;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adjust\r\n} from \"../../../core/utils/math\";\r\nvar getRealSeparatorIndex = function(str) {\r\n var quoteBalance = 0;\r\n var separatorCount = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n if (\"'\" === str[i]) {\r\n quoteBalance++\r\n }\r\n if (\".\" === str[i]) {\r\n ++separatorCount;\r\n if (quoteBalance % 2 === 0) {\r\n return {\r\n occurrence: separatorCount,\r\n index: i\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n occurrence: 1,\r\n index: -1\r\n }\r\n};\r\nvar getNthOccurrence = function(str, c, n) {\r\n var i = -1;\r\n while (n-- && i++ < str.length) {\r\n i = str.indexOf(c, i)\r\n }\r\n return i\r\n};\r\nvar splitByIndex = function(str, index) {\r\n if (-1 === index) {\r\n return [str]\r\n }\r\n return [str.slice(0, index), str.slice(index + 1)]\r\n};\r\nvar adjustPercentValue = function(rawValue, precision) {\r\n return rawValue && adjust(rawValue / 100, precision)\r\n};\r\nexport {\r\n adjustPercentValue,\r\n getNthOccurrence,\r\n getRealSeparatorIndex,\r\n splitByIndex\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.caret.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../../core/utils/math\";\r\nimport number from \"../../../localization/number\";\r\nimport {\r\n getNthOccurrence,\r\n getRealSeparatorIndex,\r\n splitByIndex\r\n} from \"./m_utils\";\r\nexport var getCaretBoundaries = function(text, format) {\r\n if (\"string\" === typeof format) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\".concat(signParts[0]);\r\n format = signParts[sign < 0 ? 1 : 0];\r\n format = (str = format, str.replace(/'([^']*)'/g, str => str.split(\"\").map(() => \" \").join(\"\").substr(2)));\r\n var prefixStubLength = /^[^#0.,]*/.exec(format)[0].length;\r\n var postfixStubLength = /[^#0.,]*$/.exec(format)[0].length;\r\n return {\r\n start: prefixStubLength,\r\n end: text.length - postfixStubLength\r\n }\r\n }\r\n var str;\r\n return {\r\n start: 0,\r\n end: text.length\r\n }\r\n};\r\nvar _getDigitCountBeforeIndex = function(index, text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\".concat(escapeRegExp(decimalSeparator), \"]\"), \"g\");\r\n var textBeforePosition = text.slice(0, index);\r\n return textBeforePosition.replace(regExp, \"\").length\r\n};\r\nvar _reverseText = function(text) {\r\n return text.split(\"\").reverse().join(\"\")\r\n};\r\nvar _getDigitPositionByIndex = function(digitIndex, text) {\r\n if (!digitIndex) {\r\n return -1\r\n }\r\n var regExp = /[0-9]/g;\r\n var counter = 1;\r\n var index = null;\r\n var result = regExp.exec(text);\r\n while (result) {\r\n index = result.index;\r\n if (counter >= digitIndex) {\r\n return index\r\n }\r\n counter++;\r\n result = regExp.exec(text)\r\n }\r\n return null === index ? text.length : index\r\n};\r\nvar _trimNonNumericCharsFromEnd = function(text) {\r\n return text.replace(/[^0-9e]+$/, \"\")\r\n};\r\nexport var getCaretWithOffset = function(caret, offset) {\r\n if (void 0 === caret.start) {\r\n caret = {\r\n start: caret,\r\n end: caret\r\n }\r\n }\r\n return {\r\n start: caret.start + offset,\r\n end: caret.end + offset\r\n }\r\n};\r\nexport var getCaretAfterFormat = function(text, formatted, caret, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var point = number.getDecimalSeparator();\r\n var isSeparatorBasedText = isSeparatorBasedString(text);\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(format).occurrence;\r\n var pointPosition = isSeparatorBasedText ? 0 : getNthOccurrence(text, point, realSeparatorOccurrenceIndex);\r\n var newPointPosition = getNthOccurrence(formatted, point, realSeparatorOccurrenceIndex);\r\n var textParts = splitByIndex(text, pointPosition);\r\n var formattedParts = splitByIndex(formatted, newPointPosition);\r\n var isCaretOnFloat = -1 !== pointPosition && caret.start > pointPosition;\r\n if (isCaretOnFloat) {\r\n var relativeIndex = caret.start - pointPosition - 1;\r\n var digitsBefore = _getDigitCountBeforeIndex(relativeIndex, textParts[1]);\r\n var newPosition = formattedParts[1] ? newPointPosition + 1 + _getDigitPositionByIndex(digitsBefore, formattedParts[1]) + 1 : formatted.length;\r\n return getCaretInBoundaries(newPosition, formatted, format)\r\n }\r\n var formattedIntPart = _trimNonNumericCharsFromEnd(formattedParts[0]);\r\n var positionFromEnd = textParts[0].length - caret.start;\r\n var digitsFromEnd = _getDigitCountBeforeIndex(positionFromEnd, _reverseText(textParts[0]));\r\n var newPositionFromEnd = _getDigitPositionByIndex(digitsFromEnd, _reverseText(formattedIntPart));\r\n var newPositionFromBegin = formattedIntPart.length - (newPositionFromEnd + 1);\r\n return getCaretInBoundaries(newPositionFromBegin, formatted, format)\r\n};\r\n\r\nfunction isSeparatorBasedString(text) {\r\n return 1 === text.length && !!text.match(/^[,.][0-9]*$/g)\r\n}\r\nexport var isCaretInBoundaries = function(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretInBoundaries(caret, text, format);\r\n return caret.start >= boundaries.start && caret.end <= boundaries.end\r\n};\r\nexport function getCaretInBoundaries(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretBoundaries(text, format);\r\n var adjustedCaret = {\r\n start: fitIntoRange(caret.start, boundaries.start, boundaries.end),\r\n end: fitIntoRange(caret.end, boundaries.start, boundaries.end)\r\n };\r\n return adjustedCaret\r\n}\r\nexport var getCaretOffset = function(previousText, newText, format) {\r\n var previousBoundaries = getCaretBoundaries(previousText, format);\r\n var newBoundaries = getCaretBoundaries(newText, format);\r\n return newBoundaries.start - previousBoundaries.start\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.mask.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n ensureDefined,\r\n escapeRegExp\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as dxDblClickEvent\r\n} from \"../../../events/double_click\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n getFormat as getLDMLFormat\r\n} from \"../../../localization/ldml/number\";\r\nimport number from \"../../../localization/number\";\r\nimport NumberBoxBase from \"./m_number_box.base\";\r\nimport {\r\n getCaretAfterFormat,\r\n getCaretBoundaries,\r\n getCaretInBoundaries,\r\n getCaretOffset,\r\n getCaretWithOffset,\r\n isCaretInBoundaries\r\n} from \"./m_number_box.caret\";\r\nimport {\r\n adjustPercentValue,\r\n getNthOccurrence,\r\n getRealSeparatorIndex,\r\n splitByIndex\r\n} from \"./m_utils\";\r\nvar NUMBER_FORMATTER_NAMESPACE = \"dxNumberFormatter\";\r\nvar MOVE_FORWARD = 1;\r\nvar MOVE_BACKWARD = -1;\r\nvar MINUS = \"-\";\r\nvar MINUS_KEY = \"minus\";\r\nvar INPUT_EVENT = \"input\";\r\nvar NUMPAD_DOT_KEY_CODE = 110;\r\nvar CARET_TIMEOUT_DURATION = 0;\r\nvar NumberBoxMask = NumberBoxBase.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: true,\r\n format: null\r\n })\r\n },\r\n _isDeleteKey: key => \"del\" === key,\r\n _supportedKeys() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n return extend(this.callBase(), {\r\n minus: this._revertSign.bind(this),\r\n del: this._removeHandler.bind(this),\r\n backspace: this._removeHandler.bind(this),\r\n leftArrow: this._arrowHandler.bind(this, MOVE_BACKWARD),\r\n rightArrow: this._arrowHandler.bind(this, MOVE_FORWARD),\r\n home: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_FORWARD),\r\n enter: this._updateFormattedValue.bind(this),\r\n end: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_BACKWARD)\r\n })\r\n },\r\n _getTextSeparatorIndex(text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(this.option(\"format\")).occurrence;\r\n return getNthOccurrence(text, decimalSeparator, realSeparatorOccurrenceIndex)\r\n },\r\n _focusInHandler(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this.clearCaretTimeout();\r\n this._caretTimeout = setTimeout(() => {\r\n this._caretTimeout = void 0;\r\n var caret = this._caret();\r\n if (caret.start === caret.end && this._useMaskBehavior()) {\r\n var text = this._getInputVal();\r\n var decimalSeparatorIndex = this._getTextSeparatorIndex(text);\r\n if (decimalSeparatorIndex >= 0) {\r\n this._caret({\r\n start: decimalSeparatorIndex,\r\n end: decimalSeparatorIndex\r\n })\r\n } else {\r\n this._moveCaretToBoundaryEventHandler(MOVE_BACKWARD, e)\r\n }\r\n }\r\n }, CARET_TIMEOUT_DURATION)\r\n }\r\n this.callBase(e)\r\n },\r\n _focusOutHandler(e) {\r\n var shouldHandleEvent = !this._preventNestedFocusEvent(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = true;\r\n if (this._useMaskBehavior()) {\r\n this._updateFormattedValue()\r\n }\r\n }\r\n this.callBase(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = false\r\n }\r\n },\r\n _hasValueBeenChanged(inputValue) {\r\n var format = this._getFormatPattern();\r\n var value = this.option(\"value\");\r\n var formatted = this._format(value, format) || \"\";\r\n return formatted !== inputValue\r\n },\r\n _updateFormattedValue() {\r\n var inputValue = this._getInputVal();\r\n if (this._hasValueBeenChanged(inputValue)) {\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this._setTextByParsedValue();\r\n if (this._parsedValue !== this.option(\"value\")) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n }\r\n },\r\n _arrowHandler(step, e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this._getInputVal();\r\n var format = this._getFormatPattern();\r\n var nextCaret = getCaretWithOffset(this._caret(), step);\r\n if (!isCaretInBoundaries(nextCaret, text, format)) {\r\n nextCaret = step === MOVE_FORWARD ? nextCaret.end : nextCaret.start;\r\n e.preventDefault();\r\n this._caret(getCaretInBoundaries(nextCaret, text, format))\r\n }\r\n },\r\n _moveCaretToBoundary(direction) {\r\n var boundaries = getCaretBoundaries(this._getInputVal(), this._getFormatPattern());\r\n var newCaret = getCaretWithOffset(direction === MOVE_FORWARD ? boundaries.start : boundaries.end, 0);\r\n this._caret(newCaret)\r\n },\r\n _moveCaretToBoundaryEventHandler(direction, e) {\r\n if (!this._useMaskBehavior() || e && e.shiftKey) {\r\n return\r\n }\r\n this._moveCaretToBoundary(direction);\r\n e && e.preventDefault()\r\n },\r\n _shouldMoveCaret(text, caret) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalSeparatorNext = text.charAt(caret.end) === decimalSeparator;\r\n var moveToFloat = (this._lastKey === decimalSeparator || \".\" === this._lastKey || \",\" === this._lastKey) && isDecimalSeparatorNext;\r\n return moveToFloat\r\n },\r\n _getInputVal() {\r\n return number.convertDigits(this._input().val(), true)\r\n },\r\n _keyboardHandler(e) {\r\n this.clearCaretTimeout();\r\n this._lastKey = number.convertDigits(getChar(e), true);\r\n this._lastKeyName = normalizeKeyName(e);\r\n if (!this._shouldHandleKey(e.originalEvent)) {\r\n return this.callBase(e)\r\n }\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var enteredChar;\r\n if (this._lastKeyName === MINUS_KEY) {\r\n enteredChar = \"\"\r\n } else {\r\n enteredChar = e.which === NUMPAD_DOT_KEY_CODE ? number.getDecimalSeparator() : this._lastKey\r\n }\r\n var newValue = this._tryParse(normalizedText, caret, enteredChar);\r\n if (this._shouldMoveCaret(normalizedText, caret)) {\r\n this._moveCaret(1);\r\n e.originalEvent.preventDefault()\r\n }\r\n if (void 0 === newValue) {\r\n if (this._lastKeyName !== MINUS_KEY) {\r\n e.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._parsedValue = newValue\r\n }\r\n return this.callBase(e)\r\n },\r\n _keyPressHandler(e) {\r\n if (!this._useMaskBehavior()) {\r\n this.callBase(e)\r\n }\r\n },\r\n _removeHandler(e) {\r\n var caret = this._caret();\r\n var text = this._getInputVal();\r\n var {\r\n start: start\r\n } = caret;\r\n var {\r\n end: end\r\n } = caret;\r\n this._lastKey = getChar(e);\r\n this._lastKeyName = normalizeKeyName(e);\r\n var isDeleteKey = this._isDeleteKey(this._lastKeyName);\r\n var isBackspaceKey = !isDeleteKey;\r\n if (start === end) {\r\n var caretPosition = start;\r\n var canDelete = isBackspaceKey && caretPosition > 0 || isDeleteKey && caretPosition < text.length;\r\n if (canDelete) {\r\n isDeleteKey && end++;\r\n isBackspaceKey && start--\r\n } else {\r\n e.preventDefault();\r\n return\r\n }\r\n }\r\n var char = text.slice(start, end);\r\n if (this._isStub(char)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n if (this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0) {\r\n this._revertSign(e);\r\n this._setTextByParsedValue();\r\n var shouldTriggerInputEvent = this.option(\"valueChangeEvent\").split(\" \").includes(\"input\");\r\n if (shouldTriggerInputEvent) {\r\n eventsEngine.trigger(this._input(), \"input\")\r\n }\r\n }\r\n e.preventDefault();\r\n return\r\n }\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (char === decimalSeparator) {\r\n var decimalSeparatorIndex = text.indexOf(decimalSeparator);\r\n if (this._isNonStubAfter(decimalSeparatorIndex + 1)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n e.preventDefault()\r\n }\r\n return\r\n }\r\n if (end - start < text.length) {\r\n var editedText = this._replaceSelectedText(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n var noDigits = editedText.search(/[0-9]/) < 0;\r\n if (noDigits && this._isValueInRange(0)) {\r\n this._parsedValue = this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0 ? -0 : 0;\r\n return\r\n }\r\n }\r\n var valueAfterRemoving = this._tryParse(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n if (void 0 === valueAfterRemoving) {\r\n e.preventDefault()\r\n } else {\r\n this._parsedValue = valueAfterRemoving\r\n }\r\n },\r\n _isPercentFormat() {\r\n var format = this._getFormatPattern();\r\n var noEscapedFormat = format.replace(/'[^']+'/g, \"\");\r\n return -1 !== noEscapedFormat.indexOf(\"%\")\r\n },\r\n _parse(text, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomParser = isFunction(formatOption.parser);\r\n var parser = isCustomParser ? formatOption.parser : number.parse;\r\n var integerPartStartIndex = 0;\r\n if (!isCustomParser) {\r\n var formatPointIndex = getRealSeparatorIndex(format).index;\r\n var textPointIndex = this._getTextSeparatorIndex(text);\r\n var formatIntegerPartLength = -1 !== formatPointIndex ? formatPointIndex : format.length;\r\n var textIntegerPartLength = -1 !== textPointIndex ? textPointIndex : text.length;\r\n if (textIntegerPartLength > formatIntegerPartLength && -1 === format.indexOf(\"#\")) {\r\n integerPartStartIndex = textIntegerPartLength - formatIntegerPartLength\r\n }\r\n }\r\n text = text.substr(integerPartStartIndex);\r\n return parser(text, format)\r\n },\r\n _format(value, format) {\r\n var formatOption = this.option(\"format\");\r\n var customFormatter = (null === formatOption || void 0 === formatOption ? void 0 : formatOption.formatter) || formatOption;\r\n var formatter = isFunction(customFormatter) ? customFormatter : number.format;\r\n var formattedValue = null === value ? \"\" : formatter(value, format);\r\n return formattedValue\r\n },\r\n _getFormatPattern() {\r\n if (!this._currentFormat) {\r\n this._updateFormat()\r\n }\r\n return this._currentFormat\r\n },\r\n _updateFormat() {\r\n var format = this.option(\"format\");\r\n var isCustomParser = isFunction(null === format || void 0 === format ? void 0 : format.parser);\r\n var isLDMLPattern = isString(format) && (format.includes(\"0\") || format.includes(\"#\"));\r\n var isExponentialFormat = \"exponential\" === format || \"exponential\" === (null === format || void 0 === format ? void 0 : format.type);\r\n var shouldUseFormatAsIs = isCustomParser || isLDMLPattern || isExponentialFormat;\r\n this._currentFormat = shouldUseFormatAsIs ? format : getLDMLFormat(value => {\r\n var text = this._format(value, format);\r\n return number.convertDigits(text, true)\r\n })\r\n },\r\n _getFormatForSign(text) {\r\n var format = this._getFormatPattern();\r\n if (isString(format)) {\r\n var signParts = format.split(\";\");\r\n var _sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\".concat(signParts[0]);\r\n return _sign < 0 ? signParts[1] : signParts[0]\r\n }\r\n var sign = number.getSign(text);\r\n return sign < 0 ? \"-\" : \"\"\r\n },\r\n _removeStubs(text, excludeComma) {\r\n var format = this._getFormatForSign(text);\r\n var thousandsSeparator = number.getThousandsSeparator();\r\n var stubs = this._getStubs(format);\r\n var result = text;\r\n if (stubs.length) {\r\n var prefixStubs = stubs[0];\r\n var postfixRegex = new RegExp(\"(\".concat(escapeRegExp(stubs[1] || \"\"), \")$\"), \"g\");\r\n var decoratorsRegex = new RegExp(\"[-\".concat(escapeRegExp(excludeComma ? \"\" : thousandsSeparator), \"]\"), \"g\");\r\n result = result.replace(prefixStubs, \"\").replace(postfixRegex, \"\").replace(decoratorsRegex, \"\")\r\n }\r\n return result\r\n },\r\n _getStubs(format) {\r\n var regExpResult = /[^']([#0.,]+)/g.exec(format);\r\n var pattern = regExpResult && regExpResult[0].trim();\r\n return format.split(pattern).map(stub => stub.replace(/'/g, \"\"))\r\n },\r\n _truncateToPrecision(value, maxPrecision) {\r\n if (isDefined(value)) {\r\n var strValue = value.toString();\r\n var decimalSeparatorIndex = strValue.indexOf(\".\");\r\n if (strValue && decimalSeparatorIndex > -1) {\r\n var parsedValue = parseFloat(strValue.substr(0, decimalSeparatorIndex + maxPrecision + 1));\r\n return isNaN(parsedValue) ? value : parsedValue\r\n }\r\n }\r\n return value\r\n },\r\n _tryParse(text, selection, char) {\r\n var isTextSelected = selection.start !== selection.end;\r\n var isWholeTextSelected = isTextSelected && 0 === selection.start && selection.end === text.length;\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (isWholeTextSelected && char === decimalSeparator) {\r\n return 0\r\n }\r\n var editedText = this._replaceSelectedText(text, selection, char);\r\n var format = this._getFormatPattern();\r\n var parsedValue = this._getParsedValue(editedText, format);\r\n var maxPrecision = !format.parser && this._getPrecisionLimits(editedText).max;\r\n var isValueChanged = parsedValue !== this._parsedValue;\r\n var isDecimalPointRestricted = char === decimalSeparator && 0 === maxPrecision;\r\n var isUselessCharRestricted = !isTextSelected && !isValueChanged && char !== MINUS && this._isStub(char);\r\n if (isDecimalPointRestricted || isUselessCharRestricted) {\r\n return\r\n }\r\n if (\"\" === this._removeStubs(editedText)) {\r\n parsedValue = Math.abs(0 * this._parsedValue)\r\n }\r\n if (isNaN(parsedValue)) {\r\n return\r\n }\r\n var value = null === parsedValue ? this._parsedValue : parsedValue;\r\n parsedValue = maxPrecision ? this._truncateToPrecision(value, maxPrecision) : parsedValue;\r\n return !format.parser && this._isPercentFormat() ? adjustPercentValue(parsedValue, maxPrecision) : parsedValue\r\n },\r\n _getParsedValue(text, format) {\r\n var sign = number.getSign(text, (null === format || void 0 === format ? void 0 : format.formatter) || format);\r\n var textWithoutStubs = this._removeStubs(text, true);\r\n var parsedValue = this._parse(textWithoutStubs, format);\r\n var parsedValueSign = parsedValue < 0 ? -1 : 1;\r\n var parsedValueWithSign = isNumeric(parsedValue) && sign !== parsedValueSign ? sign * parsedValue : parsedValue;\r\n return parsedValueWithSign\r\n },\r\n _isValueIncomplete(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n var caret = this._caret();\r\n var point = number.getDecimalSeparator();\r\n var pointIndex = this._getTextSeparatorIndex(text);\r\n var isCaretOnFloat = pointIndex >= 0 && pointIndex < caret.start;\r\n var textParts = this._removeStubs(text, true).split(point);\r\n if (!isCaretOnFloat || 2 !== textParts.length) {\r\n return false\r\n }\r\n var floatLength = textParts[1].length;\r\n var format = this._getFormatPattern();\r\n var isCustomParser = !!format.parser;\r\n var precision = !isCustomParser && this._getPrecisionLimits(this._getFormatPattern(), text);\r\n var isPrecisionInRange = isCustomParser ? true : inRange(floatLength, precision.min, precision.max);\r\n var endsWithZero = \"0\" === textParts[1].charAt(floatLength - 1);\r\n return isPrecisionInRange && (endsWithZero || !floatLength)\r\n },\r\n _isValueInRange(value) {\r\n var min = ensureDefined(this.option(\"min\"), -1 / 0);\r\n var max = ensureDefined(this.option(\"max\"), 1 / 0);\r\n return inRange(value, min, max)\r\n },\r\n _setInputText(text) {\r\n var normalizedText = number.convertDigits(text, true);\r\n var newCaret = getCaretAfterFormat(this._getInputVal(), normalizedText, this._caret(), this._getFormatPattern());\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler();\r\n this._formattedValue = text;\r\n if (!this._focusOutOccurs) {\r\n this._caret(newCaret)\r\n }\r\n },\r\n _useMaskBehavior() {\r\n return !!this.option(\"format\") && this.option(\"useMaskBehavior\")\r\n },\r\n _renderInputType() {\r\n var isNumberType = \"number\" === this.option(\"mode\");\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (this._useMaskBehavior() && isNumberType) {\r\n this._setInputType(isDesktop || this._isSupportInputMode() ? \"text\" : \"tel\")\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _isChar: str => isString(str) && 1 === str.length,\r\n _moveCaret(offset) {\r\n if (!offset) {\r\n return\r\n }\r\n var newCaret = getCaretWithOffset(this._caret(), offset);\r\n var adjustedCaret = getCaretInBoundaries(newCaret, this._getInputVal(), this._getFormatPattern());\r\n this._caret(adjustedCaret)\r\n },\r\n _shouldHandleKey(e) {\r\n var keyName = normalizeKeyName(e);\r\n var isSpecialChar = isCommandKeyPressed(e) || e.altKey || e.shiftKey || !this._isChar(keyName);\r\n var isMinusKey = keyName === MINUS_KEY;\r\n var useMaskBehavior = this._useMaskBehavior();\r\n return useMaskBehavior && !isSpecialChar && !isMinusKey\r\n },\r\n _renderInput() {\r\n this.callBase();\r\n this._renderFormatter()\r\n },\r\n _renderFormatter() {\r\n this._clearCache();\r\n this._detachFormatterEvents();\r\n if (this._useMaskBehavior()) {\r\n this._attachFormatterEvents()\r\n }\r\n },\r\n _detachFormatterEvents() {\r\n eventsEngine.off(this._input(), \".\".concat(NUMBER_FORMATTER_NAMESPACE))\r\n },\r\n _isInputFromPaste(e) {\r\n var inputType = e.originalEvent && e.originalEvent.inputType;\r\n if (isDefined(inputType)) {\r\n return \"insertFromPaste\" === inputType\r\n }\r\n return this._isValuePasted\r\n },\r\n _attachFormatterEvents() {\r\n var $input = this._input();\r\n eventsEngine.on($input, addNamespace(INPUT_EVENT, NUMBER_FORMATTER_NAMESPACE), e => {\r\n this._formatValue(e);\r\n this._isValuePasted = false\r\n });\r\n eventsEngine.on($input, addNamespace(\"dxclick\", NUMBER_FORMATTER_NAMESPACE), () => {\r\n if (!this._caretTimeout) {\r\n this._caretTimeout = setTimeout(() => {\r\n this._caretTimeout = void 0;\r\n this._caret(getCaretInBoundaries(this._caret(), this._getInputVal(), this._getFormatPattern()))\r\n }, CARET_TIMEOUT_DURATION)\r\n }\r\n });\r\n eventsEngine.on($input, dxDblClickEvent, () => {\r\n this.clearCaretTimeout()\r\n })\r\n },\r\n clearCaretTimeout() {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = void 0\r\n },\r\n _forceRefreshInputValue() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n },\r\n _isNonStubAfter(index) {\r\n var text = this._getInputVal().slice(index);\r\n return text && !this._isStub(text, true)\r\n },\r\n _isStub(str, isString) {\r\n var escapedDecimalSeparator = escapeRegExp(number.getDecimalSeparator());\r\n var regExpString = \"^[^0-9\".concat(escapedDecimalSeparator, \"]+$\");\r\n var stubRegExp = new RegExp(regExpString, \"g\");\r\n return stubRegExp.test(str) && (isString || this._isChar(str))\r\n },\r\n _parseValue(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n return this._parsedValue\r\n },\r\n _getPrecisionLimits(text) {\r\n var currentFormat = this._getFormatForSign(text);\r\n var realSeparatorIndex = getRealSeparatorIndex(currentFormat).index;\r\n var floatPart = (splitByIndex(currentFormat, realSeparatorIndex)[1] || \"\").replace(/[^#0]/g, \"\");\r\n var minPrecision = floatPart.replace(/^(0*)#*/, \"$1\").length;\r\n var maxPrecision = floatPart.length;\r\n return {\r\n min: minPrecision,\r\n max: maxPrecision\r\n }\r\n },\r\n _revertSign(e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n if (caret.start !== caret.end) {\r\n if (normalizeKeyName(e) === MINUS_KEY) {\r\n this._applyRevertedSign(e, caret, true);\r\n return\r\n }\r\n this._caret(getCaretInBoundaries(0, this._getInputVal(), this._getFormatPattern()))\r\n }\r\n this._applyRevertedSign(e, caret)\r\n },\r\n _applyRevertedSign(e, caret, preserveSelectedText) {\r\n var newValue = -1 * ensureDefined(this._parsedValue, null);\r\n if (this._isValueInRange(newValue) || 0 === newValue) {\r\n this._parsedValue = newValue;\r\n if (preserveSelectedText) {\r\n var format = this._getFormatPattern();\r\n var previousText = this._getInputVal();\r\n this._setTextByParsedValue();\r\n e.preventDefault();\r\n var currentText = this._getInputVal();\r\n var offset = getCaretOffset(previousText, currentText, format);\r\n caret = getCaretWithOffset(caret, offset);\r\n var caretInBoundaries = getCaretInBoundaries(caret, currentText, format);\r\n this._caret(caretInBoundaries)\r\n }\r\n }\r\n },\r\n _removeMinusFromText(text, caret) {\r\n var isMinusPressed = this._lastKeyName === MINUS_KEY && text.charAt(caret.start - 1) === MINUS;\r\n return isMinusPressed ? this._replaceSelectedText(text, {\r\n start: caret.start - 1,\r\n end: caret.start\r\n }, \"\") : text\r\n },\r\n _setTextByParsedValue() {\r\n var format = this._getFormatPattern();\r\n var parsed = this._parseValue();\r\n var formatted = this._format(parsed, format) || \"\";\r\n this._setInputText(formatted)\r\n },\r\n _formatValue(e) {\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var textWithoutMinus = this._removeMinusFromText(normalizedText, caret);\r\n var wasMinusRemoved = textWithoutMinus !== normalizedText;\r\n normalizedText = textWithoutMinus;\r\n if (!this._isInputFromPaste(e) && this._isValueIncomplete(textWithoutMinus)) {\r\n this._formattedValue = normalizedText;\r\n if (wasMinusRemoved) {\r\n this._setTextByParsedValue()\r\n }\r\n return\r\n }\r\n var textWasChanged = number.convertDigits(this._formattedValue, true) !== normalizedText;\r\n if (textWasChanged) {\r\n var value = this._tryParse(normalizedText, caret, \"\");\r\n if (isDefined(value)) {\r\n this._parsedValue = value\r\n }\r\n }\r\n this._setTextByParsedValue()\r\n },\r\n _renderDisplayText() {\r\n if (this._useMaskBehavior()) {\r\n this._toggleEmptinessEventHandler()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _renderValue() {\r\n if (this._useMaskBehavior()) {\r\n this._parsedValue = this.option(\"value\");\r\n this._setTextByParsedValue()\r\n }\r\n return this.callBase()\r\n },\r\n _updateParsedValue() {\r\n var inputValue = this._getInputVal();\r\n this._parsedValue = this._tryParse(inputValue, this._caret())\r\n },\r\n _adjustParsedValue() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var clearedText = this._removeStubs(this._getInputVal());\r\n var parsedValue = clearedText ? this._parseValue() : null;\r\n if (!isNumeric(parsedValue)) {\r\n this._parsedValue = parsedValue;\r\n return\r\n }\r\n this._parsedValue = fitIntoRange(parsedValue, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _valueChangeEventHandler(e) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(e)\r\n }\r\n var caret = this._caret();\r\n this._saveValueChangeEvent(e);\r\n this._lastKey = null;\r\n this._lastKeyName = null;\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this.option(\"value\", this._parsedValue);\r\n if (caret) {\r\n this._caret(caret)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"format\":\r\n case \"useMaskBehavior\":\r\n this._renderInputType();\r\n this._updateFormat();\r\n this._renderFormatter();\r\n this._renderValue();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._adjustParsedValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearCache() {\r\n delete this._formattedValue;\r\n delete this._lastKey;\r\n delete this._lastKeyName;\r\n delete this._parsedValue;\r\n delete this._focusOutOccurs;\r\n clearTimeout(this._caretTimeout);\r\n delete this._caretTimeout\r\n },\r\n _clean() {\r\n this._clearCache();\r\n this.callBase()\r\n }\r\n});\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport NumberBoxMask from \"./m_number_box.mask\";\r\nregisterComponent(\"dxNumberBox\", NumberBoxMask);\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/radio_group/m_radio_button.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RadioButton = Editor.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n }\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false\r\n })\r\n },\r\n _canValueBeChangedByClick: () => true,\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this.$element().addClass(RADIO_BUTTON_CLASS)\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderIcon();\r\n this._renderCheckedState(this.option(\"value\"));\r\n this._renderClick();\r\n this.setAria(\"role\", \"radio\")\r\n },\r\n _renderIcon() {\r\n this._$icon = $(\"<div>\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"<div>\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo(this._$icon);\r\n this.$element().append(this._$icon)\r\n },\r\n _renderCheckedState(checked) {\r\n this.$element().toggleClass(RADIO_BUTTON_CHECKED_CLASS, checked).find(\".\".concat(RADIO_BUTTON_ICON_CLASS)).toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, checked);\r\n this.setAria(\"checked\", checked)\r\n },\r\n _renderClick() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n this._clickAction = this._createAction(args => {\r\n this._clickHandler(args.event)\r\n });\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, e => {\r\n this._clickAction({\r\n event: e\r\n })\r\n })\r\n },\r\n _clickHandler(e) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", true)\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderCheckedState(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxRadioButton\", RadioButton);\r\nexport default RadioButton;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.decorator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n end as swipeEventEnd,\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe\r\n} from \"../../../events/swipe\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar SWIPE_START_EVENT_NAME = addNamespace(swipeEventStart, LIST_EDIT_DECORATOR);\r\nvar SWIPE_UPDATE_EVENT_NAME = addNamespace(swipeEventSwipe, LIST_EDIT_DECORATOR);\r\nvar SWIPE_END_EVENT_NAME = addNamespace(swipeEventEnd, LIST_EDIT_DECORATOR);\r\nvar EditDecorator = Class.inherit({\r\n ctor(list) {\r\n this._list = list;\r\n this._init()\r\n },\r\n _init: noop,\r\n _shouldHandleSwipe: false,\r\n _attachSwipeEvent(config) {\r\n var swipeConfig = {\r\n itemSizeFunc: function() {\r\n if (this._clearSwipeCache) {\r\n this._itemWidthCache = getWidth(this._list.$element());\r\n this._clearSwipeCache = false\r\n }\r\n return this._itemWidthCache\r\n }.bind(this)\r\n };\r\n eventsEngine.on(config.$itemElement, SWIPE_START_EVENT_NAME, swipeConfig, this._itemSwipeStartHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_UPDATE_EVENT_NAME, this._itemSwipeUpdateHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_END_EVENT_NAME, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeStartHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n clearTimeout(this._list._inkRippleTimer);\r\n this._swipeStartHandler($itemElement, e)\r\n },\r\n _itemSwipeUpdateHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeUpdateHandler($itemElement, e)\r\n },\r\n _itemSwipeEndHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeEndHandler($itemElement, e);\r\n this._clearSwipeCache = true\r\n },\r\n beforeBag: noop,\r\n afterBag: noop,\r\n _commonOptions() {\r\n return {\r\n activeStateEnabled: this._list.option(\"activeStateEnabled\"),\r\n hoverStateEnabled: this._list.option(\"hoverStateEnabled\"),\r\n focusStateEnabled: this._list.option(\"focusStateEnabled\")\r\n }\r\n },\r\n modifyElement(config) {\r\n if (this._shouldHandleSwipe) {\r\n this._attachSwipeEvent(config);\r\n this._clearSwipeCache = true\r\n }\r\n },\r\n afterRender: noop,\r\n handleClick: noop,\r\n handleKeyboardEvents: noop,\r\n handleEnterPressing: noop,\r\n handleContextMenu: noop,\r\n _swipeStartHandler: noop,\r\n _swipeUpdateHandler: noop,\r\n _swipeEndHandler: noop,\r\n visibilityChange: noop,\r\n getExcludedSelectors: noop,\r\n dispose: noop\r\n});\r\nexport default EditDecorator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.decorator_registry.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nexport var registry = {};\r\nexport function register(option, type, decoratorClass) {\r\n var decoratorsRegistry = registry;\r\n var decoratorConfig = {};\r\n decoratorConfig[option] = decoratorsRegistry[option] ? decoratorsRegistry[option] : {};\r\n decoratorConfig[option][type] = decoratorClass;\r\n extend(decoratorsRegistry, decoratorConfig)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.decorator.selection.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport CheckBox from \"../../../ui/check_box\";\r\nimport RadioButton from \"../../../ui/radio_group/radio_button\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport EditDecorator from \"./m_list.edit.decorator\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./m_list.edit.decorator_registry\";\r\nvar SELECT_DECORATOR_ENABLED_CLASS = \"dx-list-select-decorator-enabled\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CLASS = \"dx-list-select-all\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS = \"dx-list-select-all-checkbox\";\r\nvar SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS = \"dx-list-select-all-label\";\r\nvar SELECT_CHECKBOX_CONTAINER_CLASS = \"dx-list-select-checkbox-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-list-select-checkbox\";\r\nvar SELECT_RADIO_BUTTON_CONTAINER_CLASS = \"dx-list-select-radiobutton-container\";\r\nvar SELECT_RADIO_BUTTON_CLASS = \"dx-list-select-radiobutton\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, \"dxListEditDecorator\");\r\nregisterDecorator(\"selection\", \"default\", EditDecorator.inherit({\r\n _init() {\r\n this.callBase.apply(this, arguments);\r\n var selectionMode = this._list.option(\"selectionMode\");\r\n this._singleStrategy = \"single\" === selectionMode;\r\n this._containerClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CONTAINER_CLASS : SELECT_CHECKBOX_CONTAINER_CLASS;\r\n this._controlClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CLASS : SELECT_CHECKBOX_CLASS;\r\n this._controlWidget = this._singleStrategy ? RadioButton : CheckBox;\r\n this._list.$element().addClass(SELECT_DECORATOR_ENABLED_CLASS)\r\n },\r\n beforeBag(config) {\r\n var {\r\n $itemElement: $itemElement\r\n } = config;\r\n var $container = config.$container.addClass(this._containerClass);\r\n var $control = $(\"<div>\").addClass(this._controlClass).appendTo($container);\r\n new this._controlWidget($control, extend(this._commonOptions(), {\r\n value: this._isSelected($itemElement),\r\n elementAttr: {\r\n \"aria-label\": \"Check State\"\r\n },\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n onValueChanged: function(e) {\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n this._processCheckedState($itemElement, e.value);\r\n e.event && e.event.stopPropagation()\r\n }.bind(this)\r\n }))\r\n },\r\n modifyElement(config) {\r\n this.callBase.apply(this, arguments);\r\n var {\r\n $itemElement: $itemElement\r\n } = config;\r\n var control = this._controlWidget.getInstance($itemElement.find(\".\".concat(this._controlClass)));\r\n eventsEngine.on($itemElement, \"stateChanged\", (e, state) => {\r\n control.option(\"value\", state)\r\n })\r\n },\r\n _updateSelectAllState() {\r\n if (!this._$selectAll) {\r\n return\r\n }\r\n this._selectAllCheckBox.option(\"value\", this._list.isSelectAll())\r\n },\r\n afterRender() {\r\n if (\"all\" !== this._list.option(\"selectionMode\")) {\r\n return\r\n }\r\n if (!this._$selectAll) {\r\n this._renderSelectAll()\r\n } else {\r\n this._updateSelectAllState()\r\n }\r\n },\r\n handleKeyboardEvents(currentFocusedIndex, moveFocusUp) {\r\n var moveFocusDown = !moveFocusUp;\r\n var list = this._list;\r\n var $selectAll = this._$selectAll;\r\n var lastItemIndex = list._getLastItemIndex();\r\n var isFocusOutOfList = moveFocusUp && 0 === currentFocusedIndex || moveFocusDown && currentFocusedIndex === lastItemIndex;\r\n var hasSelectAllItem = !!$selectAll;\r\n if (hasSelectAllItem && isFocusOutOfList) {\r\n list.option(\"focusedElement\", $selectAll);\r\n list.scrollToItem(list.option(\"focusedElement\"));\r\n return true\r\n }\r\n return false\r\n },\r\n handleEnterPressing(e) {\r\n if (this._$selectAll && this._$selectAll.hasClass(FOCUSED_STATE_CLASS)) {\r\n e.target = this._$selectAll.get(0);\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"));\r\n return true\r\n }\r\n },\r\n _renderSelectAll() {\r\n var $selectAll = this._$selectAll = $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CLASS);\r\n var list = this._list;\r\n var downArrowHandler = list._supportedKeys().downArrow.bind(list);\r\n this._selectAllCheckBox = list._createComponent($(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS).appendTo($selectAll), CheckBox, {\r\n elementAttr: {\r\n \"aria-label\": \"Select All\"\r\n },\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false\r\n });\r\n this._selectAllCheckBox.registerKeyHandler(\"downArrow\", downArrowHandler);\r\n $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS).text(this._list.option(\"selectAllText\")).appendTo($selectAll);\r\n this._list.itemsContainer().prepend($selectAll);\r\n this._updateSelectAllState();\r\n this._attachSelectAllHandler()\r\n },\r\n _attachSelectAllHandler() {\r\n this._selectAllCheckBox.option(\"onValueChanged\", this._selectAllHandler.bind(this));\r\n eventsEngine.off(this._$selectAll, CLICK_EVENT_NAME);\r\n eventsEngine.on(this._$selectAll, CLICK_EVENT_NAME, this._selectAllClickHandler.bind(this))\r\n },\r\n _selectAllHandler(e) {\r\n e.event && e.event.stopPropagation();\r\n var isSelectedAll = this._selectAllCheckBox.option(\"value\");\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n if (true === isSelectedAll) {\r\n this._selectAllItems()\r\n } else if (false === isSelectedAll) {\r\n this._unselectAllItems()\r\n }\r\n this._list._createActionByOption(\"onSelectAllValueChanged\")({\r\n value: isSelectedAll\r\n })\r\n },\r\n _checkSelectAllCapability() {\r\n var list = this._list;\r\n var dataController = list._dataController;\r\n if (\"allPages\" === list.option(\"selectAllMode\") && list.option(\"grouped\") && !dataController.group()) {\r\n errors.log(\"W1010\");\r\n return false\r\n }\r\n return true\r\n },\r\n _selectAllItems() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.selectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _unselectAllItems() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.deselectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _selectAllClickHandler(e) {\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"))\r\n },\r\n _isSelected($itemElement) {\r\n return this._list.isItemSelected($itemElement)\r\n },\r\n _processCheckedState($itemElement, checked) {\r\n if (checked) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n },\r\n dispose() {\r\n this._disposeSelectAll();\r\n this._list.$element().removeClass(SELECT_DECORATOR_ENABLED_CLASS);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeSelectAll() {\r\n if (this._$selectAll) {\r\n this._$selectAll.remove();\r\n this._$selectAll = null\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/ui/editor/m_data_expression.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isObject as isObjectType,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport variableWrapper from \"../../../core/utils/variable_wrapper\";\r\nimport ArrayStore from \"../../../data/array_store\";\r\nimport {\r\n DataSource\r\n} from \"../../../data/data_source/data_source\";\r\nimport DataHelperMixin from \"../../../data_helper\";\r\nvar DataExpressionMixin = extend({}, DataHelperMixin, {\r\n _dataExpressionDefaultOptions: () => ({\r\n items: [],\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n value: null,\r\n valueExpr: \"this\",\r\n displayExpr: void 0\r\n }),\r\n _initDataExpressions() {\r\n this._compileValueGetter();\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._initDataSource();\r\n this._itemsToDataSource()\r\n },\r\n _itemsToDataSource() {\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore(this.option(\"items\")),\r\n pageSize: 0\r\n });\r\n this._initDataController()\r\n }\r\n },\r\n _compileDisplayGetter() {\r\n this._displayGetter = compileGetter(this._displayGetterExpr())\r\n },\r\n _displayGetterExpr() {\r\n return this.option(\"displayExpr\")\r\n },\r\n _compileValueGetter() {\r\n this._valueGetter = compileGetter(this._valueGetterExpr())\r\n },\r\n _valueGetterExpr() {\r\n return this.option(\"valueExpr\") || \"this\"\r\n },\r\n _loadValue(value) {\r\n var deferred = Deferred();\r\n value = this._unwrappedValue(value);\r\n if (!isDefined(value)) {\r\n return deferred.reject().promise()\r\n }\r\n this._loadSingle(this._valueGetterExpr(), value).done(item => {\r\n this._isValueEquals(this._valueGetter(item), value) ? deferred.resolve(item) : deferred.reject()\r\n }).fail(() => {\r\n deferred.reject()\r\n });\r\n this._loadValueDeferred = deferred;\r\n return deferred.promise()\r\n },\r\n _rejectValueLoading() {\r\n var _a;\r\n null === (_a = this._loadValueDeferred) || void 0 === _a ? void 0 : _a.reject({\r\n shouldSkipCallback: true\r\n })\r\n },\r\n _getCurrentValue() {\r\n return this.option(\"value\")\r\n },\r\n _unwrappedValue(value) {\r\n value = null !== value && void 0 !== value ? value : this._getCurrentValue();\r\n if (value && this._dataSource && \"this\" === this._valueGetterExpr()) {\r\n value = this._getItemKey(value)\r\n }\r\n return variableWrapper.unwrap(value)\r\n },\r\n _getItemKey(value) {\r\n var key = this._dataSource.key();\r\n if (Array.isArray(key)) {\r\n var result = {};\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n result[key[i]] = value[key[i]]\r\n }\r\n return result\r\n }\r\n if (key && \"object\" === typeof value) {\r\n value = value[key]\r\n }\r\n return value\r\n },\r\n _isValueEquals(value1, value2) {\r\n var dataSourceKey = this._dataSource && this._dataSource.key();\r\n var result = this._compareValues(value1, value2);\r\n if (!result && dataSourceKey && isDefined(value1) && isDefined(value2)) {\r\n if (Array.isArray(dataSourceKey)) {\r\n result = this._compareByCompositeKey(value1, value2, dataSourceKey)\r\n } else {\r\n result = this._compareByKey(value1, value2, dataSourceKey)\r\n }\r\n }\r\n return result\r\n },\r\n _compareByCompositeKey(value1, value2, key) {\r\n var isObject = isObjectType;\r\n if (!isObject(value1) || !isObject(value2)) {\r\n return false\r\n }\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n if (value1[key[i]] !== value2[key[i]]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _compareByKey(value1, value2, key) {\r\n var unwrapObservable = variableWrapper.unwrap;\r\n var valueKey1 = ensureDefined(unwrapObservable(value1[key]), value1);\r\n var valueKey2 = ensureDefined(unwrapObservable(value2[key]), value2);\r\n return this._compareValues(valueKey1, valueKey2)\r\n },\r\n _compareValues: (value1, value2) => toComparable(value1, true) === toComparable(value2, true),\r\n _initDynamicTemplates: noop,\r\n _setCollectionWidgetItemTemplate() {\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"itemTemplate\", this.option(\"itemTemplate\"))\r\n },\r\n _getCollectionKeyExpr() {\r\n var valueExpr = this.option(\"valueExpr\");\r\n var isValueExprField = isString(valueExpr) && \"this\" !== valueExpr || isFunction(valueExpr);\r\n return isValueExprField ? valueExpr : null\r\n },\r\n _dataExpressionOptionChanged(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._itemsToDataSource();\r\n this._setCollectionWidgetOption(\"items\");\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n break;\r\n case \"itemTemplate\":\r\n this._setCollectionWidgetItemTemplate();\r\n break;\r\n case \"valueExpr\":\r\n this._compileValueGetter();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"displayExpr\")\r\n }\r\n }\r\n});\r\nexport default DataExpressionMixin;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.provider.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n registry\r\n} from \"./m_list.edit.decorator_registry\";\r\nvar editOptionsRegistry = [];\r\nvar registerOption = function(enabledFunc, decoratorTypeFunc, decoratorSubTypeFunc) {\r\n editOptionsRegistry.push({\r\n enabled: enabledFunc,\r\n decoratorType: decoratorTypeFunc,\r\n decoratorSubType: decoratorSubTypeFunc\r\n })\r\n};\r\nregisterOption((function() {\r\n return this.option(\"menuItems\").length\r\n}), () => \"menu\", (function() {\r\n return this.option(\"menuMode\")\r\n}));\r\nregisterOption((function() {\r\n return !this.option(\"menuItems\").length && this.option(\"allowItemDeleting\")\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n return \"toggle\" === mode || \"slideButton\" === mode || \"swipe\" === mode || \"static\" === mode ? \"delete\" : \"menu\"\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n if (\"slideItem\" === mode) {\r\n mode = \"slide\"\r\n }\r\n return mode\r\n}));\r\nregisterOption((function() {\r\n return \"none\" !== this.option(\"selectionMode\") && this.option(\"showSelectionControls\")\r\n}), () => \"selection\", () => \"default\");\r\nregisterOption((function() {\r\n return this.option(\"itemDragging.allowReordering\") || this.option(\"itemDragging.allowDropInsideItem\") || this.option(\"itemDragging.group\")\r\n}), () => \"reorder\", () => \"default\");\r\nvar LIST_ITEM_BEFORE_BAG_CLASS = \"dx-list-item-before-bag\";\r\nvar LIST_ITEM_AFTER_BAG_CLASS = \"dx-list-item-after-bag\";\r\nvar DECORATOR_BEFORE_BAG_CREATE_METHOD = \"beforeBag\";\r\nvar DECORATOR_AFTER_BAG_CREATE_METHOD = \"afterBag\";\r\nvar DECORATOR_MODIFY_ELEMENT_METHOD = \"modifyElement\";\r\nvar DECORATOR_AFTER_RENDER_METHOD = \"afterRender\";\r\nvar DECORATOR_GET_EXCLUDED_SELECTORS_METHOD = \"getExcludedSelectors\";\r\nvar EditProvider = Class.inherit({\r\n ctor(list) {\r\n this._list = list;\r\n this._fetchRequiredDecorators()\r\n },\r\n dispose() {\r\n if (this._decorators && this._decorators.length) {\r\n each(this._decorators, (_, decorator) => {\r\n decorator.dispose()\r\n })\r\n }\r\n },\r\n _fetchRequiredDecorators() {\r\n this._decorators = [];\r\n each(editOptionsRegistry, (_, option) => {\r\n var optionEnabled = option.enabled.call(this._list);\r\n if (optionEnabled) {\r\n var decoratorType = option.decoratorType.call(this._list);\r\n var decoratorSubType = option.decoratorSubType.call(this._list);\r\n var decorator = this._createDecorator(decoratorType, decoratorSubType);\r\n this._decorators.push(decorator)\r\n }\r\n })\r\n },\r\n _createDecorator(type, subType) {\r\n var decoratorClass = this._findDecorator(type, subType);\r\n return new decoratorClass(this._list)\r\n },\r\n _findDecorator(type, subType) {\r\n var _a;\r\n var foundDecorator = null === (_a = registry[type]) || void 0 === _a ? void 0 : _a[subType];\r\n if (!foundDecorator) {\r\n throw errors.Error(\"E1012\", type, subType)\r\n }\r\n return foundDecorator\r\n },\r\n modifyItemElement(args) {\r\n var $itemElement = $(args.itemElement);\r\n var config = {\r\n $itemElement: $itemElement\r\n };\r\n this._prependBeforeBags($itemElement, config);\r\n this._appendAfterBags($itemElement, config);\r\n this._applyDecorators(DECORATOR_MODIFY_ELEMENT_METHOD, config)\r\n },\r\n afterItemsRendered() {\r\n this._applyDecorators(DECORATOR_AFTER_RENDER_METHOD)\r\n },\r\n _prependBeforeBags($itemElement, config) {\r\n var $beforeBags = this._collectDecoratorsMarkup(DECORATOR_BEFORE_BAG_CREATE_METHOD, config, LIST_ITEM_BEFORE_BAG_CLASS);\r\n $itemElement.prepend($beforeBags)\r\n },\r\n _appendAfterBags($itemElement, config) {\r\n var $afterBags = this._collectDecoratorsMarkup(DECORATOR_AFTER_BAG_CREATE_METHOD, config, LIST_ITEM_AFTER_BAG_CLASS);\r\n $itemElement.append($afterBags)\r\n },\r\n _collectDecoratorsMarkup(method, config, containerClass) {\r\n var $collector = $(\"<div>\");\r\n each(this._decorators, (function() {\r\n var $container = $(\"<div>\").addClass(containerClass);\r\n this[method](extend({\r\n $container: $container\r\n }, config));\r\n if ($container.children().length) {\r\n $collector.append($container)\r\n }\r\n }));\r\n return $collector.children()\r\n },\r\n _applyDecorators(method, config) {\r\n each(this._decorators, (function() {\r\n this[method](config)\r\n }))\r\n },\r\n _handlerExists(name) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var decorators = this._decorators;\r\n var {\r\n length: length\r\n } = decorators;\r\n for (var i = 0; i < length; i++) {\r\n if (decorators[i][name] !== noop) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _eventHandler(name, $itemElement, e) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var response = false;\r\n var decorators = this._decorators;\r\n var {\r\n length: length\r\n } = decorators;\r\n for (var i = 0; i < length; i++) {\r\n response = decorators[i][name]($itemElement, e);\r\n if (response) {\r\n break\r\n }\r\n }\r\n return response\r\n },\r\n handleClick($itemElement, e) {\r\n return this._eventHandler(\"handleClick\", $itemElement, e)\r\n },\r\n handleKeyboardEvents(currentFocusedIndex, moveFocusUp) {\r\n return this._eventHandler(\"handleKeyboardEvents\", currentFocusedIndex, moveFocusUp)\r\n },\r\n handleEnterPressing(e) {\r\n return this._eventHandler(\"handleEnterPressing\", e)\r\n },\r\n contextMenuHandlerExists() {\r\n return this._handlerExists(\"handleContextMenu\")\r\n },\r\n handleContextMenu($itemElement, e) {\r\n return this._eventHandler(\"handleContextMenu\", $itemElement, e)\r\n },\r\n getExcludedItemSelectors() {\r\n var excludedSelectors = [];\r\n this._applyDecorators(DECORATOR_GET_EXCLUDED_SELECTORS_METHOD, excludedSelectors);\r\n return excludedSelectors.join(\",\")\r\n }\r\n});\r\nexport default EditProvider;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.strategy.grouped.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isNumeric\r\n} from \"../../../core/utils/type\";\r\nimport query from \"../../../data/query\";\r\nimport storeHelper from \"../../../data/store_helper\";\r\nimport EditStrategy from \"../../ui/collection/m_collection_widget.edit.strategy.plain\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar SELECTION_SHIFT = 20;\r\nvar SELECTION_MASK = (1 << SELECTION_SHIFT) - 1;\r\nvar combineIndex = function(indices) {\r\n return (indices.group << SELECTION_SHIFT) + indices.item\r\n};\r\nvar splitIndex = function(combinedIndex) {\r\n return {\r\n group: combinedIndex >> SELECTION_SHIFT,\r\n item: combinedIndex & SELECTION_MASK\r\n }\r\n};\r\nvar GroupedEditStrategy = EditStrategy.inherit({\r\n _groupElements() {\r\n return this._collectionWidget._itemContainer().find(\".\".concat(LIST_GROUP_CLASS))\r\n },\r\n _groupItemElements: $group => $group.find(\".\".concat(LIST_ITEM_CLASS)),\r\n getIndexByItemData(itemData) {\r\n var groups = this._collectionWidget.option(\"items\");\r\n var index = false;\r\n if (!itemData) {\r\n return false\r\n }\r\n if (itemData.items && itemData.items.length) {\r\n itemData = itemData.items[0]\r\n }\r\n each(groups, (groupIndex, group) => {\r\n if (!group.items) {\r\n return false\r\n }\r\n each(group.items, (itemIndex, item) => {\r\n if (item !== itemData) {\r\n return true\r\n }\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n });\r\n if (index) {\r\n return false\r\n }\r\n });\r\n return index\r\n },\r\n getItemDataByIndex(index) {\r\n var items = this._collectionWidget.option(\"items\");\r\n if (isNumeric(index)) {\r\n return this.itemsGetter()[index]\r\n }\r\n return index && items[index.group] && items[index.group].items[index.item] || null\r\n },\r\n itemsGetter() {\r\n var resultItems = [];\r\n var items = this._collectionWidget.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n resultItems = resultItems.concat(items[i].items)\r\n } else {\r\n resultItems.push(items[i])\r\n }\r\n }\r\n return resultItems\r\n },\r\n deleteItemAtIndex(index) {\r\n var indices = splitIndex(index);\r\n var itemGroup = this._collectionWidget.option(\"items\")[indices.group].items;\r\n itemGroup.splice(indices.item, 1)\r\n },\r\n getKeysByItems(items) {\r\n var plainItems = [];\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n var result = [];\r\n for (i = 0; i < plainItems.length; i++) {\r\n result.push(this._collectionWidget.keyOf(plainItems[i]))\r\n }\r\n return result\r\n },\r\n getIndexByKey(key, items) {\r\n var groups = items || this._collectionWidget.option(\"items\");\r\n var index = -1;\r\n var that = this;\r\n each(groups, (groupIndex, group) => {\r\n if (!group.items) {\r\n return\r\n }\r\n each(group.items, (itemIndex, item) => {\r\n var itemKey = that._collectionWidget.keyOf(item);\r\n if (that._equalKeys(itemKey, key)) {\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }\r\n });\r\n if (-1 !== index) {\r\n return false\r\n }\r\n });\r\n return index\r\n },\r\n _getGroups(items) {\r\n var dataController = this._collectionWidget._dataController;\r\n var group = dataController.group();\r\n if (group) {\r\n return storeHelper.queryByOptions(query(items), {\r\n group: group\r\n }).toArray()\r\n }\r\n return this._collectionWidget.option(\"items\")\r\n },\r\n getItemsByKeys(keys, items) {\r\n var result = [];\r\n var groups = this._getGroups(items);\r\n var groupItemByKeyMap = {};\r\n var getItemMeta = key => {\r\n var index = this.getIndexByKey(key, groups);\r\n var group = index && groups[index.group];\r\n if (!group) {\r\n return\r\n }\r\n return {\r\n groupKey: group.key,\r\n item: group.items[index.item]\r\n }\r\n };\r\n each(keys, (_, key) => {\r\n var itemMeta = getItemMeta(key);\r\n if (!itemMeta) {\r\n return\r\n }\r\n var {\r\n groupKey: groupKey\r\n } = itemMeta;\r\n var {\r\n item: item\r\n } = itemMeta;\r\n var selectedGroup = groupItemByKeyMap[groupKey];\r\n if (!selectedGroup) {\r\n selectedGroup = {\r\n key: groupKey,\r\n items: []\r\n };\r\n groupItemByKeyMap[groupKey] = selectedGroup;\r\n result.push(selectedGroup)\r\n }\r\n selectedGroup.items.push(item)\r\n });\r\n return result\r\n },\r\n moveItemAtIndexToIndex(movingIndex, destinationIndex) {\r\n var items = this._collectionWidget.option(\"items\");\r\n var movingIndices = splitIndex(movingIndex);\r\n var destinationIndices = splitIndex(destinationIndex);\r\n var movingItemGroup = items[movingIndices.group].items;\r\n var destinationItemGroup = items[destinationIndices.group].items;\r\n var movedItemData = movingItemGroup[movingIndices.item];\r\n movingItemGroup.splice(movingIndices.item, 1);\r\n destinationItemGroup.splice(destinationIndices.item, 0, movedItemData)\r\n },\r\n _isItemIndex: index => index && isNumeric(index.group) && isNumeric(index.item),\r\n _getNormalizedItemIndex(itemElement) {\r\n var $item = $(itemElement);\r\n var $group = $item.closest(\".\".concat(LIST_GROUP_CLASS));\r\n if (!$group.length) {\r\n return -1\r\n }\r\n return combineIndex({\r\n group: this._groupElements().index($group),\r\n item: this._groupItemElements($group).index($item)\r\n })\r\n },\r\n _normalizeItemIndex: index => combineIndex(index),\r\n _denormalizeItemIndex: index => splitIndex(index),\r\n _getItemByNormalizedIndex(index) {\r\n var indices = splitIndex(index);\r\n var $group = this._groupElements().eq(indices.group);\r\n return this._groupItemElements($group).eq(indices.item)\r\n },\r\n _itemsFromSameParent: (firstIndex, secondIndex) => splitIndex(firstIndex).group === splitIndex(secondIndex).group\r\n});\r\nexport default GroupedEditStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isTouchEvent\r\n} from \"../../../events/utils/index\";\r\nimport localizationMessage from \"../../../localization/message\";\r\nimport {\r\n ListBase\r\n} from \"./m_list.base\";\r\nimport EditProvider from \"./m_list.edit.provider\";\r\nimport GroupedEditStrategy from \"./m_list.edit.strategy.grouped\";\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar LIST_ITEM_RESPONSE_WAIT_CLASS = \"dx-list-item-response-wait\";\r\nvar ListEdit = ListBase.inherit({\r\n _supportedKeys() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var moveFocusedItem = (e, moveUp) => {\r\n var editStrategy = this._editStrategy;\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n if (isLastIndexFocused && this._dataController.isLoading()) {\r\n return\r\n }\r\n if (e.shiftKey && that.option(\"itemDragging.allowReordering\")) {\r\n var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);\r\n var $nextItem = editStrategy.getItemElement(nextItemIndex);\r\n this.reorderItem(focusedElement, $nextItem);\r\n this.scrollToItem(focusedElement);\r\n e.preventDefault()\r\n } else {\r\n var editProvider = this._editProvider;\r\n var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);\r\n if (!isInternalMoving) {\r\n moveUp ? parent.upArrow(e) : parent.downArrow(e)\r\n }\r\n }\r\n };\r\n return extend({}, parent, {\r\n del: e => {\r\n if (that.option(\"allowItemDeleting\")) {\r\n e.preventDefault();\r\n that.deleteItem(that.option(\"focusedElement\"))\r\n }\r\n },\r\n upArrow: e => moveFocusedItem(e, true),\r\n downArrow: e => moveFocusedItem(e),\r\n enter: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.enter.apply(this, arguments)\r\n }\r\n },\r\n space: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.space.apply(this, arguments)\r\n }\r\n }\r\n })\r\n },\r\n _updateSelection() {\r\n this._editProvider.afterItemsRendered();\r\n this.callBase()\r\n },\r\n _getLastItemIndex() {\r\n return this._itemElements().length - 1\r\n },\r\n _refreshItemElements() {\r\n this.callBase();\r\n var excludedSelectors = this._editProvider.getExcludedItemSelectors();\r\n if (excludedSelectors.length) {\r\n this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)\r\n }\r\n },\r\n _isItemStrictEquals(item1, item2) {\r\n var privateKey = item1 && item1.__dx_key__;\r\n if (privateKey && !this.key() && this._selection.isItemSelected(privateKey)) {\r\n return false\r\n }\r\n return this.callBase(item1, item2)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n showSelectionControls: false,\r\n selectionMode: \"none\",\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n selectAllText: localizationMessage.format(\"dxList-selectAll\"),\r\n menuItems: [],\r\n menuMode: \"context\",\r\n allowItemDeleting: false,\r\n itemDeleteMode: \"static\",\r\n itemDragging: {}\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: _device => \"ios\" === _device.platform,\r\n options: {\r\n menuMode: \"slide\",\r\n itemDeleteMode: \"slideItem\"\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n itemDeleteMode: \"swipe\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initEditProvider()\r\n },\r\n _initDataSource() {\r\n this.callBase();\r\n if (!this._isPageSelectAll()) {\r\n this._dataSource && this._dataSource.requireTotalCount(true)\r\n }\r\n },\r\n _isPageSelectAll() {\r\n return \"page\" === this.option(\"selectAllMode\")\r\n },\r\n _initEditProvider() {\r\n this._editProvider = new EditProvider(this)\r\n },\r\n _disposeEditProvider() {\r\n if (this._editProvider) {\r\n this._editProvider.dispose()\r\n }\r\n },\r\n _refreshEditProvider() {\r\n this._disposeEditProvider();\r\n this._initEditProvider()\r\n },\r\n _initEditStrategy() {\r\n if (this.option(\"grouped\")) {\r\n this._editStrategy = new GroupedEditStrategy(this)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _initMarkup() {\r\n this._refreshEditProvider();\r\n this.callBase()\r\n },\r\n _renderItems() {\r\n this.callBase(...arguments);\r\n this._editProvider.afterItemsRendered()\r\n },\r\n _selectedItemClass: () => LIST_ITEM_SELECTED_CLASS,\r\n _itemResponseWaitClass: () => LIST_ITEM_RESPONSE_WAIT_CLASS,\r\n _itemClickHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = this._editProvider.handleClick($itemElement, e);\r\n if (handledByEditProvider) {\r\n return\r\n }\r\n this._saveSelectionChangeEvent(e);\r\n this.callBase(...arguments)\r\n },\r\n _shouldFireContextMenuEvent() {\r\n return this.callBase(...arguments) || this._editProvider.contextMenuHandlerExists()\r\n },\r\n _itemHoldHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = isTouchEvent(e) && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.handledByEditProvider = true;\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _getItemContainer(changeData) {\r\n var _a;\r\n if (this.option(\"grouped\")) {\r\n var groupIndex = null === (_a = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _a ? void 0 : _a.group;\r\n return this._getGroupContainerByIndex(groupIndex)\r\n }\r\n return this.callBase(changeData)\r\n },\r\n _itemContextMenuHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.preventDefault();\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _postprocessRenderItem(args) {\r\n this.callBase(...arguments);\r\n this._editProvider.modifyItemElement(args)\r\n },\r\n _clean() {\r\n this._disposeEditProvider();\r\n this.callBase()\r\n },\r\n focusListItem(index) {\r\n var $item = this._editStrategy.getItemElement(index);\r\n this.option(\"focusedElement\", $item);\r\n this.focus();\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectAllMode\":\r\n this._initDataSource();\r\n this._dataController.pageIndex(0);\r\n this._dataController.load();\r\n break;\r\n case \"grouped\":\r\n this._clearSelectedItems();\r\n delete this._renderingGroupIndex;\r\n this._initEditStrategy();\r\n this.callBase(args);\r\n break;\r\n case \"showSelectionControls\":\r\n case \"menuItems\":\r\n case \"menuMode\":\r\n case \"allowItemDeleting\":\r\n case \"itemDeleteMode\":\r\n case \"itemDragging\":\r\n case \"selectAllText\":\r\n this._invalidate();\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n selectAll() {\r\n return this._selection.selectAll(this._isPageSelectAll())\r\n },\r\n unselectAll() {\r\n return this._selection.deselectAll(this._isPageSelectAll())\r\n },\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isPageSelectAll())\r\n },\r\n getFlatIndexByItemElement(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n getItemElementByFlatIndex(flatIndex) {\r\n var $itemElements = this._itemElements();\r\n if (flatIndex < 0 || flatIndex >= $itemElements.length) {\r\n return $()\r\n }\r\n return $itemElements.eq(flatIndex)\r\n },\r\n getItemByIndex(index) {\r\n return this._editStrategy.getItemDataByIndex(index)\r\n },\r\n deleteItem(itemElement) {\r\n var editStrategy = this._editStrategy;\r\n var deletingElementIndex = editStrategy.getNormalizedIndex(itemElement);\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n var focusedItemIndex = focusedElement ? editStrategy.getNormalizedIndex(focusedElement) : deletingElementIndex;\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n var nextFocusedItem = isLastIndexFocused || deletingElementIndex < focusedItemIndex ? focusedItemIndex - 1 : focusedItemIndex;\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n if (focusStateEnabled) {\r\n this.focusListItem(nextFocusedItem)\r\n }\r\n }))\r\n }\r\n});\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.search.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport searchBoxMixin from \"../../../ui/widget/ui.search_box_mixin\";\r\nimport ListEdit from \"./m_list.edit\";\r\nvar ListSearch = ListEdit.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: className => \"dx-list-\".concat(className),\r\n _getCombinedFilter() {\r\n var dataController = this._dataController;\r\n var storeLoadOptions = {\r\n filter: dataController.filter()\r\n };\r\n dataController.addSearchFilter(storeLoadOptions);\r\n var {\r\n filter: filter\r\n } = storeLoadOptions;\r\n return filter\r\n },\r\n _initDataSource() {\r\n var value = this.option(\"searchValue\");\r\n var expr = this.option(\"searchExpr\");\r\n var mode = this.option(\"searchMode\");\r\n this.callBase();\r\n var dataController = this._dataController;\r\n value && value.length && dataController.searchValue(value);\r\n mode.length && dataController.searchOperation(searchBoxMixin.getOperationBySearchMode(mode));\r\n expr && dataController.searchExpr(expr)\r\n }\r\n});\r\nexport default ListSearch;\r\n","/**\r\n * DevExtreme (esm/ui/list_light.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"../__internal/ui/list/m_list.edit.search\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nregisterComponent(\"dxList\", ListEdit);\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/drop_down_editor/m_drop_down_button.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Button from \"../../../ui/button\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/m_button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_CLASS = \"dx-dropdowneditor-button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_VISIBLE = \"dx-dropdowneditor-button-visible\";\r\nvar BUTTON_MESSAGE = \"dxDropDownEditor-selectLabel\";\r\nexport default class DropDownButton extends TextEditorButton {\r\n constructor(name, editor, options) {\r\n super(name, editor, options);\r\n this.currentTemplate = null\r\n }\r\n _attachEvents(instance) {\r\n var {\r\n editor: editor\r\n } = this;\r\n instance.option(\"onClick\", e => {\r\n var _a;\r\n if (null === (_a = editor._shouldCallOpenHandler) || void 0 === _a ? void 0 : _a.call(editor)) {\r\n editor._openHandler(e);\r\n return\r\n }!editor.option(\"openOnFieldClick\") && editor._openHandler(e)\r\n });\r\n eventsEngine.on(instance.$element(), \"mousedown\", e => {\r\n if (editor.$element().is(\".dx-state-focused\")) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"<div>\");\r\n var options = this._getOptions();\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, options, {\r\n elementAttr: {\r\n \"aria-label\": messageLocalization.format(BUTTON_MESSAGE)\r\n }\r\n }));\r\n this._legacyRender(editor.$element(), $element, options.visible);\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var isReadOnly = editor.option(\"readOnly\");\r\n var options = {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n activeStateEnabled: false,\r\n useInkRipple: false,\r\n disabled: isReadOnly,\r\n visible: visible\r\n };\r\n this._addTemplate(options);\r\n return options\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showDropDownButton\")\r\n }\r\n _legacyRender($editor, $element, isVisible) {\r\n $editor.toggleClass(DROP_DOWN_EDITOR_BUTTON_VISIBLE, isVisible);\r\n if ($element) {\r\n $element.removeClass(\"dx-button\").removeClass(\"dx-button-mode-contained\").addClass(DROP_DOWN_EDITOR_BUTTON_CLASS)\r\n }\r\n }\r\n _isSameTemplate() {\r\n return this.editor.option(\"dropDownButtonTemplate\") === this.currentTemplate\r\n }\r\n _addTemplate(options) {\r\n if (!this._isSameTemplate()) {\r\n options.template = this.editor._getTemplateByOption(\"dropDownButtonTemplate\");\r\n this.currentTemplate = this.editor.option(\"dropDownButtonTemplate\")\r\n }\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var options = this._getOptions();\r\n null === instance || void 0 === instance ? void 0 : instance.option(options);\r\n this._legacyRender($editor, null === instance || void 0 === instance ? void 0 : instance.$element(), options.visible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/drop_down_editor/m_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nvar getElementWidth = function($element) {\r\n if (hasWindow()) {\r\n return getOuterWidth($element)\r\n }\r\n};\r\nvar getSizeValue = function(size) {\r\n if (null === size) {\r\n size = void 0\r\n }\r\n if (\"function\" === typeof size) {\r\n size = size()\r\n }\r\n return size\r\n};\r\nexport {\r\n getElementWidth,\r\n getSizeValue\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/drop_down_editor/m_drop_down_editor.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport animationPosition from \"../../../animation/position\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../../animation/translator\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../../core/templates/function_template\";\r\nimport {\r\n noop,\r\n splitPair\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Popup from \"../../../ui/popup/ui.popup\";\r\nimport TextBox from \"../../../ui/text_box\";\r\nimport {\r\n focused\r\n} from \"../../../ui/widget/selectors\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport DropDownButton from \"./m_drop_down_button\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"./m_utils\";\r\nvar DROP_DOWN_EDITOR_CLASS = \"dx-dropdowneditor\";\r\nvar DROP_DOWN_EDITOR_INPUT_WRAPPER = \"dx-dropdowneditor-input-wrapper\";\r\nvar DROP_DOWN_EDITOR_BUTTON_ICON = \"dx-dropdowneditor-icon\";\r\nvar DROP_DOWN_EDITOR_OVERLAY = \"dx-dropdowneditor-overlay\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_FLIPPED = \"dx-dropdowneditor-overlay-flipped\";\r\nvar DROP_DOWN_EDITOR_ACTIVE = \"dx-dropdowneditor-active\";\r\nvar DROP_DOWN_EDITOR_FIELD_CLICKABLE = \"dx-dropdowneditor-field-clickable\";\r\nvar DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER = \"dx-dropdowneditor-field-template-wrapper\";\r\nvar isIOs = \"ios\" === devices.current().platform;\r\nvar DropDownEditor = TextBox.inherit({\r\n _supportedKeys() {\r\n return extend({}, this.callBase(), {\r\n tab(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n if (!this._popup.getFocusableElements().length) {\r\n this.close();\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this._getLastPopupElement() : this._getFirstPopupElement();\r\n if ($focusableElement) {\r\n eventsEngine.trigger($focusableElement, \"focus\");\r\n $focusableElement.select()\r\n }\r\n e.preventDefault()\r\n },\r\n escape(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault()\r\n }\r\n this.close();\r\n return true\r\n },\r\n upArrow(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this.close();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n downArrow(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this._validatedOpening();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n enter(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e)\r\n }\r\n return true\r\n }\r\n })\r\n },\r\n _getDefaultButtons() {\r\n return this.callBase().concat([{\r\n name: \"dropDown\",\r\n Ctor: DropDownButton\r\n }])\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n onOpened: null,\r\n onClosed: null,\r\n opened: false,\r\n acceptCustomValue: true,\r\n applyValueMode: \"instantly\",\r\n deferRendering: true,\r\n activeStateEnabled: true,\r\n dropDownButtonTemplate: \"dropDownButton\",\r\n fieldTemplate: null,\r\n openOnFieldClick: false,\r\n showDropDownButton: true,\r\n buttons: void 0,\r\n dropDownOptions: {\r\n showTitle: false\r\n },\r\n popupPosition: this._getDefaultPopupPosition(),\r\n onPopupInitialized: null,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n cancelButtonText: messageLocalization.format(\"Cancel\"),\r\n buttonsLocation: \"default\",\r\n useHiddenSubmitElement: false,\r\n validationMessagePosition: \"auto\"\r\n })\r\n },\r\n _useTemplates: () => true,\r\n _getDefaultPopupPosition(isRtlEnabled) {\r\n var position = getDefaultAlignment(isRtlEnabled);\r\n return {\r\n offset: {\r\n h: 0,\r\n v: -1\r\n },\r\n my: \"\".concat(position, \" top\"),\r\n at: \"\".concat(position, \" bottom\"),\r\n collision: \"flip flip\"\r\n }\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device(device) {\r\n var isGeneric = \"generic\" === device.platform;\r\n return isGeneric\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 0\r\n }\r\n }\r\n }\r\n }])\r\n },\r\n _inputWrapper() {\r\n return this.$element().find(\".\".concat(DROP_DOWN_EDITOR_INPUT_WRAPPER)).first()\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initVisibilityActions();\r\n this._initPopupInitializedAction();\r\n this._updatePopupPosition(this.option(\"rtlEnabled\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _updatePopupPosition(isRtlEnabled) {\r\n var {\r\n my: my,\r\n at: at\r\n } = this._getDefaultPopupPosition(isRtlEnabled);\r\n var currentPosition = this.option(\"popupPosition\");\r\n this.option(\"popupPosition\", extend({}, currentPosition, {\r\n my: my,\r\n at: at\r\n }))\r\n },\r\n _initVisibilityActions() {\r\n this._openAction = this._createActionByOption(\"onOpened\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._closeAction = this._createActionByOption(\"onClosed\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initPopupInitializedAction() {\r\n this._popupInitializedAction = this._createActionByOption(\"onPopupInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_EDITOR_CLASS);\r\n this.setAria(\"role\", this._getAriaRole())\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderOpenHandler();\r\n this._attachFocusOutHandler();\r\n this._renderOpenedState()\r\n },\r\n _renderContentImpl() {\r\n if (!this.option(\"deferRendering\")) {\r\n this._createPopup()\r\n }\r\n },\r\n _renderInput() {\r\n this.callBase();\r\n this._renderTemplateWrapper();\r\n this._wrapInput();\r\n this._setDefaultAria()\r\n },\r\n _wrapInput() {\r\n this._$container = this.$element().wrapInner($(\"<div>\").addClass(DROP_DOWN_EDITOR_INPUT_WRAPPER)).children().eq(0)\r\n },\r\n _getAriaHasPopup: () => \"true\",\r\n _getAriaAutocomplete: () => \"list\",\r\n _getAriaRole: () => \"combobox\",\r\n _setDefaultAria() {\r\n this.setAria({\r\n haspopup: this._getAriaHasPopup(),\r\n autocomplete: this._getAriaAutocomplete(),\r\n role: this._getAriaRole()\r\n })\r\n },\r\n _readOnlyPropValue() {\r\n return !this._isEditable() || this.callBase()\r\n },\r\n _cleanFocusState() {\r\n this.callBase();\r\n if (this.option(\"fieldTemplate\")) {\r\n this._detachFocusEvents()\r\n }\r\n },\r\n _getFieldTemplate() {\r\n return this.option(\"fieldTemplate\") && this._getTemplateByOption(\"fieldTemplate\")\r\n },\r\n _renderMask() {\r\n if (this.option(\"fieldTemplate\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _renderField() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n fieldTemplate && this._renderTemplatedField(fieldTemplate, this._fieldRenderData())\r\n },\r\n _renderPlaceholder() {\r\n var hasFieldTemplate = !!this._getFieldTemplate();\r\n if (!hasFieldTemplate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderValue() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._setSubmitValue()\r\n }\r\n var promise = this.callBase();\r\n promise.always(this._renderField.bind(this))\r\n },\r\n _getButtonsContainer() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n return fieldTemplate ? this._$container : this._$textEditorContainer\r\n },\r\n _renderTemplateWrapper() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n if (!fieldTemplate) {\r\n return\r\n }\r\n if (!this._$templateWrapper) {\r\n this._$templateWrapper = $(\"<div>\").addClass(DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER).prependTo(this.$element())\r\n }\r\n },\r\n _renderTemplatedField(fieldTemplate, data) {\r\n var isFocused = focused(this._input());\r\n this._detachKeyboardEvents();\r\n this._detachFocusEvents();\r\n this._$textEditorContainer.remove();\r\n this._$templateWrapper.empty();\r\n var $templateWrapper = this._$templateWrapper;\r\n var currentRenderContext = Symbol(\"renderContext\");\r\n this._activeRenderContext = currentRenderContext;\r\n fieldTemplate.render({\r\n model: data,\r\n container: getPublicElement($templateWrapper),\r\n onRendered: () => {\r\n if (this._activeRenderContext !== currentRenderContext) {\r\n return\r\n }\r\n var isRenderedInRoot = !!this.$element().find($templateWrapper).length;\r\n if (!isRenderedInRoot) {\r\n return\r\n }\r\n var $input = this._input();\r\n if (!$input.length) {\r\n throw errors.Error(\"E1010\")\r\n }\r\n this._integrateInput();\r\n isFocused && eventsEngine.trigger($input, \"focus\")\r\n }\r\n })\r\n },\r\n _integrateInput() {\r\n var _a;\r\n var {\r\n isValid: isValid\r\n } = this.option();\r\n this._renderFocusState();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n this._refreshEmptinessEvent();\r\n this._setDefaultAria();\r\n this._setFieldAria();\r\n this._toggleValidationClasses(!isValid);\r\n null === (_a = this.option(\"_onMarkupRendered\")) || void 0 === _a ? void 0 : _a()\r\n },\r\n _refreshEmptinessEvent() {\r\n eventsEngine.off(this._input(), \"input blur\", this._toggleEmptinessEventHandler);\r\n this._renderEmptinessEvent()\r\n },\r\n _fieldRenderData() {\r\n return this.option(\"value\")\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n dropDownButton: new FunctionTemplate(options => {\r\n var $icon = $(\"<div>\").addClass(DROP_DOWN_EDITOR_BUTTON_ICON);\r\n $(options.container).append($icon)\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _renderOpenHandler() {\r\n var $inputWrapper = this._inputWrapper();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var openOnFieldClick = this.option(\"openOnFieldClick\");\r\n eventsEngine.off($inputWrapper, eventName);\r\n eventsEngine.on($inputWrapper, eventName, this._getInputClickHandler(openOnFieldClick));\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_FIELD_CLICKABLE, openOnFieldClick);\r\n if (openOnFieldClick) {\r\n this._openOnFieldClickAction = this._createAction(this._openHandler.bind(this))\r\n }\r\n },\r\n _attachFocusOutHandler() {\r\n if (isIOs) {\r\n this._detachFocusOutEvents();\r\n eventsEngine.on(this._inputWrapper(), addNamespace(\"focusout\", this.NAME), event => {\r\n var newTarget = event.relatedTarget;\r\n if (newTarget && this.option(\"opened\")) {\r\n var isNewTargetOutside = this._isTargetOutOfComponent(newTarget);\r\n if (isNewTargetOutside) {\r\n this.close()\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _isTargetOutOfComponent(newTarget) {\r\n var popupWrapper = this.content ? $(this.content()).closest(\".\".concat(DROP_DOWN_EDITOR_OVERLAY)) : this._$popup;\r\n var isTargetOutsidePopup = 0 === $(newTarget).closest(\".\".concat(DROP_DOWN_EDITOR_OVERLAY), popupWrapper).length;\r\n return isTargetOutsidePopup\r\n },\r\n _detachFocusOutEvents() {\r\n isIOs && eventsEngine.off(this._inputWrapper(), addNamespace(\"focusout\", this.NAME))\r\n },\r\n _getInputClickHandler(openOnFieldClick) {\r\n return openOnFieldClick ? e => {\r\n this._executeOpenAction(e)\r\n } : () => {\r\n this._focusInput()\r\n }\r\n },\r\n _openHandler() {\r\n this._toggleOpenState()\r\n },\r\n _executeOpenAction(e) {\r\n this._openOnFieldClickAction({\r\n event: e\r\n })\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._input()\r\n },\r\n _focusInput() {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"focusStateEnabled\") && !focused(this._input())) {\r\n this._resetCaretPosition();\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n }\r\n return true\r\n },\r\n _resetCaretPosition() {\r\n var ignoreEditable = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var inputElement = this._input().get(0);\r\n if (inputElement) {\r\n var {\r\n value: value\r\n } = inputElement;\r\n var caretPosition = isDefined(value) && (ignoreEditable || this._isEditable()) ? value.length : 0;\r\n this._caret({\r\n start: caretPosition,\r\n end: caretPosition\r\n }, true)\r\n }\r\n },\r\n _isEditable() {\r\n return this.option(\"acceptCustomValue\")\r\n },\r\n _toggleOpenState(isVisible) {\r\n if (!this._focusInput()) {\r\n return\r\n }\r\n if (!this.option(\"readOnly\")) {\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n this.option(\"opened\", isVisible)\r\n }\r\n },\r\n _getControlsAria() {\r\n return this._popup && this._popupContentId\r\n },\r\n _renderOpenedState() {\r\n var opened = this.option(\"opened\");\r\n if (opened) {\r\n this._createPopup()\r\n }\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_ACTIVE, opened);\r\n this._setPopupOption(\"visible\", opened);\r\n var arias = {\r\n expanded: opened,\r\n controls: this._getControlsAria()\r\n };\r\n this.setAria(arias);\r\n this.setAria(\"owns\", opened ? this._popupContentId : void 0, this.$element())\r\n },\r\n _createPopup() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"<div>\").addClass(DROP_DOWN_EDITOR_OVERLAY).appendTo(this.$element());\r\n this._renderPopup();\r\n this._renderPopupContent()\r\n },\r\n _renderPopupContent: noop,\r\n _renderPopup() {\r\n var popupConfig = extend(this._popupConfig(), this._options.cache(\"dropDownOptions\"));\r\n delete popupConfig.closeOnOutsideClick;\r\n if (popupConfig.elementAttr && !Object.keys(popupConfig.elementAttr).length) {\r\n delete popupConfig.elementAttr\r\n }\r\n this._popup = this._createComponent(this._$popup, Popup, popupConfig);\r\n this._popup.on({\r\n showing: this._popupShowingHandler.bind(this),\r\n shown: this._popupShownHandler.bind(this),\r\n hiding: this._popupHidingHandler.bind(this),\r\n hidden: this._popupHiddenHandler.bind(this),\r\n contentReady: this._contentReadyHandler.bind(this)\r\n });\r\n this._attachPopupKeyHandler();\r\n this._contentReadyHandler();\r\n this._setPopupContentId(this._popup.$content());\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _attachPopupKeyHandler() {\r\n eventsEngine.on(this._popup.$overlayContent(), addNamespace(\"keydown\", this.NAME), e => this._popupKeyHandler(e))\r\n },\r\n _popupKeyHandler(e) {\r\n switch (normalizeKeyName(e)) {\r\n case \"tab\":\r\n this._popupTabHandler(e);\r\n break;\r\n case \"escape\":\r\n this._popupEscHandler(e)\r\n }\r\n },\r\n _popupTabHandler(e) {\r\n var $target = $(e.target);\r\n var moveBackward = e.shiftKey && $target.is(this._getFirstPopupElement());\r\n var moveForward = !e.shiftKey && $target.is(this._getLastPopupElement());\r\n if (moveForward || moveBackward) {\r\n eventsEngine.trigger(this.field(), \"focus\");\r\n e.preventDefault()\r\n }\r\n },\r\n _popupEscHandler() {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n this.close()\r\n },\r\n _setPopupContentId($popupContent) {\r\n this._popupContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"id\", this._popupContentId, $popupContent)\r\n },\r\n _contentReadyHandler: noop,\r\n _popupConfig() {\r\n return {\r\n onInitialized: this._getPopupInitializedHandler(),\r\n position: extend(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n showTitle: this.option(\"dropDownOptions.showTitle\"),\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n hideOnParentScroll: true,\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n deferRendering: false,\r\n focusStateEnabled: false,\r\n showCloseButton: false,\r\n dragEnabled: false,\r\n toolbarItems: this._getPopupToolbarItems(),\r\n onPositioned: this._popupPositionedHandler.bind(this),\r\n fullScreen: false,\r\n contentTemplate: null,\r\n _hideOnParentScrollTarget: this.$element(),\r\n _wrapperClassExternal: DROP_DOWN_EDITOR_OVERLAY,\r\n _ignorePreventScrollEventsDeprecation: true\r\n }\r\n },\r\n _popupInitializedHandler: noop,\r\n _getPopupInitializedHandler() {\r\n var onPopupInitialized = this.option(\"onPopupInitialized\");\r\n return e => {\r\n this._popupInitializedHandler(e);\r\n if (onPopupInitialized) {\r\n this._popupInitializedAction({\r\n popup: e.component\r\n })\r\n }\r\n }\r\n },\r\n _dimensionChanged() {\r\n if (hasWindow() && !this.$element().is(\":visible\")) {\r\n this.close();\r\n return\r\n }\r\n this._updatePopupWidth()\r\n },\r\n _updatePopupWidth() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _popupPositionedHandler(e) {\r\n var _a, _b;\r\n var {\r\n labelMode: labelMode,\r\n stylingMode: stylingMode\r\n } = this.option();\r\n if (!this._popup) {\r\n return\r\n }\r\n var $popupOverlayContent = this._popup.$overlayContent();\r\n var isOverlayFlipped = null === (_b = null === (_a = e.position) || void 0 === _a ? void 0 : _a.v) || void 0 === _b ? void 0 : _b.flip;\r\n var shouldIndentForLabel = \"hidden\" !== labelMode && \"outside\" !== labelMode && \"outlined\" === stylingMode;\r\n if (e.position) {\r\n $popupOverlayContent.toggleClass(DROP_DOWN_EDITOR_OVERLAY_FLIPPED, isOverlayFlipped)\r\n }\r\n if (isOverlayFlipped && shouldIndentForLabel && this._label.isVisible()) {\r\n var $label = this._label.$element();\r\n move($popupOverlayContent, {\r\n top: locate($popupOverlayContent).top - parseInt($label.css(\"fontSize\"))\r\n })\r\n }\r\n },\r\n _popupShowingHandler: noop,\r\n _popupHidingHandler() {\r\n this.option(\"opened\", false)\r\n },\r\n _popupShownHandler() {\r\n var _a;\r\n this._openAction();\r\n null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _popupHiddenHandler() {\r\n var _a;\r\n this._closeAction();\r\n null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _getValidationMessagePositionSide() {\r\n var validationMessagePosition = this.option(\"validationMessagePosition\");\r\n if (\"auto\" !== validationMessagePosition) {\r\n return validationMessagePosition\r\n }\r\n var positionSide = \"bottom\";\r\n if (this._popup && this._popup.option(\"visible\")) {\r\n var {\r\n top: myTop\r\n } = animationPosition.setup(this.$element());\r\n var {\r\n top: popupTop\r\n } = animationPosition.setup(this._popup.$content());\r\n positionSide = myTop + this.option(\"popupPosition\").offset.v > popupTop ? \"bottom\" : \"top\"\r\n }\r\n return positionSide\r\n },\r\n _closeOutsideDropDownHandler(_ref) {\r\n var {\r\n target: target\r\n } = _ref;\r\n var $target = $(target);\r\n var dropDownButton = this.getButton(\"dropDown\");\r\n var $dropDownButton = dropDownButton && dropDownButton.$element();\r\n var isInputClicked = !!$target.closest(this.$element()).length;\r\n var isDropDownButtonClicked = !!$target.closest($dropDownButton).length;\r\n var isOutsideClick = !isInputClicked && !isDropDownButtonClicked;\r\n return isOutsideClick\r\n },\r\n _clean() {\r\n delete this._openOnFieldClickAction;\r\n delete this._$templateWrapper;\r\n if (this._$popup) {\r\n this._$popup.remove();\r\n delete this._$popup;\r\n delete this._popup\r\n }\r\n this.callBase()\r\n },\r\n _setPopupOption(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _validatedOpening() {\r\n if (!this.option(\"readOnly\")) {\r\n this._toggleOpenState(true)\r\n }\r\n },\r\n _getPopupToolbarItems() {\r\n return \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : []\r\n },\r\n _getFirstPopupElement() {\r\n return $(this._popup.getFocusableElements()).first()\r\n },\r\n _getLastPopupElement() {\r\n return $(this._popup.getFocusableElements()).last()\r\n },\r\n _popupToolbarItemsConfig() {\r\n var buttonsConfig = [{\r\n shortcut: \"done\",\r\n options: {\r\n onClick: this._applyButtonHandler.bind(this),\r\n text: this.option(\"applyButtonText\")\r\n }\r\n }, {\r\n shortcut: \"cancel\",\r\n options: {\r\n onClick: this._cancelButtonHandler.bind(this),\r\n text: this.option(\"cancelButtonText\")\r\n }\r\n }];\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _applyButtonsLocation(buttonsConfig) {\r\n var buttonsLocation = this.option(\"buttonsLocation\");\r\n var resultConfig = buttonsConfig;\r\n if (\"default\" !== buttonsLocation) {\r\n var position = splitPair(buttonsLocation);\r\n each(resultConfig, (_, element) => {\r\n extend(element, {\r\n toolbar: position[0],\r\n location: position[1]\r\n })\r\n })\r\n }\r\n return resultConfig\r\n },\r\n _applyButtonHandler() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _cancelButtonHandler() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupOptionChanged(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (optionsKeys.includes(\"width\") || optionsKeys.includes(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _renderSubmitElement() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n }\r\n },\r\n _setSubmitValue() {\r\n this._getSubmitElement().val(this.option(\"value\"))\r\n },\r\n _getSubmitElement() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n return this._$submitElement\r\n }\r\n return this.callBase()\r\n },\r\n _dispose() {\r\n this._detachFocusOutEvents();\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n var _a;\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_a = this._popup) || void 0 === _a ? void 0 : _a.repaint();\r\n break;\r\n case \"opened\":\r\n this._renderOpenedState();\r\n break;\r\n case \"onOpened\":\r\n case \"onClosed\":\r\n this._initVisibilityActions();\r\n break;\r\n case \"onPopupInitialized\":\r\n this._initPopupInitializedAction();\r\n break;\r\n case \"fieldTemplate\":\r\n case \"acceptCustomValue\":\r\n case \"openOnFieldClick\":\r\n this._invalidate();\r\n break;\r\n case \"dropDownButtonTemplate\":\r\n case \"showDropDownButton\":\r\n this._updateButtons([\"dropDown\"]);\r\n break;\r\n case \"dropDownOptions\":\r\n this._popupOptionChanged(args);\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"));\r\n break;\r\n case \"popupPosition\":\r\n break;\r\n case \"deferRendering\":\r\n if (hasWindow()) {\r\n this._createPopup()\r\n }\r\n break;\r\n case \"applyValueMode\":\r\n case \"applyButtonText\":\r\n case \"cancelButtonText\":\r\n case \"buttonsLocation\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"useHiddenSubmitElement\":\r\n if (this._$submitElement) {\r\n this._$submitElement.remove();\r\n this._$submitElement = void 0\r\n }\r\n this._renderSubmitElement();\r\n break;\r\n case \"rtlEnabled\":\r\n this._updatePopupPosition(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open() {\r\n this.option(\"opened\", true)\r\n },\r\n close() {\r\n this.option(\"opened\", false)\r\n },\r\n field() {\r\n return getPublicElement(this._input())\r\n },\r\n content() {\r\n return this._popup ? this._popup.content() : null\r\n }\r\n});\r\nregisterComponent(\"dxDropDownEditor\", DropDownEditor);\r\nexport default DropDownEditor;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/drop_down_editor/m_drop_down_list.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../../core/templates/child_default_template\";\r\nimport {\r\n ensureDefined,\r\n grep,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport dataQuery from \"../../../data/query\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport DataExpressionMixin from \"../../../ui/editor/ui.data_expression\";\r\nimport List from \"../../../ui/list_light\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport DataConverterMixin from \"../../ui/shared/m_grouped_data_converter_mixin\";\r\nimport DropDownEditor from \"./m_drop_down_editor\";\r\nvar window = getWindow();\r\nvar LIST_ITEM_SELECTOR = \".dx-list-item\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar DROPDOWNLIST_POPUP_WRAPPER_CLASS = \"dx-dropdownlist-popup-wrapper\";\r\nvar SEARCH_EVENT = \"input\";\r\nvar SEARCH_MODES = [\"startswith\", \"contains\", \"endwith\", \"notcontains\"];\r\nvar useCompositionEvents = \"android\" !== devices.real().platform;\r\nvar DropDownList = DropDownEditor.inherit({\r\n _supportedKeys() {\r\n var parent = this.callBase();\r\n return extend({}, parent, {\r\n tab(e) {\r\n if (this._allowSelectItemByTab()) {\r\n this._saveValueChangeEvent(e);\r\n var $focusedItem = $(this._list.option(\"focusedElement\"));\r\n $focusedItem.length && this._setSelectedElement($focusedItem)\r\n }\r\n parent.tab.apply(this, arguments)\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n })\r\n },\r\n _allowSelectItemByTab() {\r\n return this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")\r\n },\r\n _setSelectedElement($element) {\r\n var value = this._valueGetter(this._list._getItemData($element));\r\n this._setValue(value)\r\n },\r\n _setValue(value) {\r\n this.option(\"value\", value)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), extend(DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n displayValue: void 0,\r\n searchEnabled: false,\r\n searchMode: \"contains\",\r\n searchTimeout: 500,\r\n minSearchLength: 0,\r\n searchExpr: null,\r\n valueChangeEvent: \"input change keyup\",\r\n selectedItem: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n onSelectionChanged: null,\r\n onItemClick: noop,\r\n showDataBeforeSearch: false,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n popupPosition: {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n collision: \"flip\"\r\n },\r\n wrapItemText: false,\r\n useItemTextAsTitle: false\r\n }))\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: -1\r\n }\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom center\"\r\n }\r\n }])\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n value: true,\r\n selectedItem: true,\r\n displayValue: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initDataExpressions();\r\n this._initActions();\r\n this._setListDataSource();\r\n this._validateSearchMode();\r\n this._clearSelectedItem();\r\n this._initItems()\r\n },\r\n _setListFocusedElementOptionChange() {\r\n this._list._updateParentActiveDescendant = this._updateActiveDescendant.bind(this)\r\n },\r\n _initItems() {\r\n var {\r\n items: items\r\n } = this.option();\r\n if (items && !items.length && this._dataSource) {\r\n this.option().items = this._dataSource.items()\r\n }\r\n },\r\n _initActions() {\r\n this._initContentReadyAction();\r\n this._initSelectionChangedAction();\r\n this._initItemClickAction()\r\n },\r\n _initContentReadyAction() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _isEditable() {\r\n return this.callBase() || this.option(\"searchEnabled\")\r\n },\r\n _saveFocusOnWidget() {\r\n if (this._list && this._list.initialOption(\"focusStateEnabled\")) {\r\n this._focusInput()\r\n }\r\n },\r\n _fitIntoRange(value, start, end) {\r\n if (value > end) {\r\n return start\r\n }\r\n if (value < start) {\r\n return end\r\n }\r\n return value\r\n },\r\n _items() {\r\n var items = this._getPlainItems(!this._list && this._dataSource.items());\r\n var availableItems = new dataQuery(items).filter(\"disabled\", \"<>\", true).toArray();\r\n return availableItems\r\n },\r\n _calcNextItem(step) {\r\n var items = this._items();\r\n var nextIndex = this._fitIntoRange(this._getSelectedIndex() + step, 0, items.length - 1);\r\n return items[nextIndex]\r\n },\r\n _getSelectedIndex() {\r\n var items = this._items();\r\n var selectedItem = this.option(\"selectedItem\");\r\n var result = -1;\r\n each(items, (index, item) => {\r\n if (this._isValueEquals(item, selectedItem)) {\r\n result = index;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _createPopup() {\r\n this.callBase();\r\n this._updateCustomBoundaryContainer();\r\n this._popup.$wrapper().addClass(this._popupWrapperClass());\r\n var $popupContent = this._popup.$content();\r\n eventsEngine.off($popupContent, \"mouseup\");\r\n eventsEngine.on($popupContent, \"mouseup\", this._saveFocusOnWidget.bind(this))\r\n },\r\n _updateCustomBoundaryContainer() {\r\n var customContainer = this.option(\"dropDownOptions.container\");\r\n var $container = customContainer && $(customContainer);\r\n if ($container && $container.length && !isWindow($container.get(0))) {\r\n var $containerWithParents = [].slice.call($container.parents());\r\n $containerWithParents.unshift($container.get(0));\r\n each($containerWithParents, (i, parent) => {\r\n if (parent === $(\"body\").get(0)) {\r\n return false\r\n }\r\n if (\"hidden\" === window.getComputedStyle(parent).overflowY) {\r\n this._$customBoundaryContainer = $(parent);\r\n return false\r\n }\r\n })\r\n }\r\n },\r\n _popupWrapperClass: () => DROPDOWNLIST_POPUP_WRAPPER_CLASS,\r\n _renderInputValue() {\r\n var value = this._getCurrentValue();\r\n this._rejectValueLoading();\r\n return this._loadInputValue(value, this._setSelectedItem.bind(this)).always(this.callBase.bind(this, value))\r\n },\r\n _loadInputValue(value, callback) {\r\n return this._loadItem(value).always(callback)\r\n },\r\n _getItemFromPlain(value, cache) {\r\n var plainItems;\r\n var selectedItem;\r\n if (cache && \"object\" !== typeof value) {\r\n if (!cache.itemByValue) {\r\n cache.itemByValue = {};\r\n plainItems = this._getPlainItems();\r\n plainItems.forEach((function(item) {\r\n cache.itemByValue[this._valueGetter(item)] = item\r\n }), this)\r\n }\r\n selectedItem = cache.itemByValue[value]\r\n }\r\n if (!selectedItem) {\r\n plainItems = this._getPlainItems();\r\n selectedItem = grep(plainItems, item => this._isValueEquals(this._valueGetter(item), value))[0]\r\n }\r\n return selectedItem\r\n },\r\n _loadItem(value, cache) {\r\n var selectedItem = this._getItemFromPlain(value, cache);\r\n return void 0 !== selectedItem ? Deferred().resolve(selectedItem).promise() : this._loadValue(value)\r\n },\r\n _getPlainItems(items) {\r\n var plainItems = [];\r\n items = items || this.option(\"items\") || this._dataSource.items() || [];\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n return plainItems\r\n },\r\n _updateActiveDescendant($target) {\r\n var _a;\r\n var opened = this.option(\"opened\");\r\n var listFocusedItemId = null === (_a = this._list) || void 0 === _a ? void 0 : _a.getFocusedItemId();\r\n var isElementOnDom = $(\"#\".concat(listFocusedItemId)).length > 0;\r\n var activedescendant = opened && isElementOnDom && listFocusedItemId;\r\n this.setAria({\r\n activedescendant: activedescendant || null\r\n }, $target)\r\n },\r\n _setSelectedItem(item) {\r\n var displayValue = this._displayValue(item);\r\n this.option(\"selectedItem\", ensureDefined(item, null));\r\n this.option(\"displayValue\", displayValue)\r\n },\r\n _displayValue(item) {\r\n return this._displayGetter(item)\r\n },\r\n _refreshSelected() {\r\n var cache = {};\r\n this._listItemElements().each((_, itemElement) => {\r\n var $itemElement = $(itemElement);\r\n var itemValue = this._valueGetter($itemElement.data(LIST_ITEM_DATA_KEY));\r\n var isItemSelected = this._isSelectedValue(itemValue, cache);\r\n if (isItemSelected) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n })\r\n },\r\n _popupShownHandler() {\r\n this.callBase();\r\n this._setFocusPolicy()\r\n },\r\n _setFocusPolicy() {\r\n if (!this.option(\"focusStateEnabled\") || !this._list) {\r\n return\r\n }\r\n this._list.option(\"focusedElement\", null)\r\n },\r\n _isSelectedValue(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _validateSearchMode() {\r\n var searchMode = this.option(\"searchMode\");\r\n var normalizedSearchMode = searchMode.toLowerCase();\r\n if (!SEARCH_MODES.includes(normalizedSearchMode)) {\r\n throw errors.Error(\"E1019\", searchMode)\r\n }\r\n },\r\n _clearSelectedItem() {\r\n this.option(\"selectedItem\", null)\r\n },\r\n _processDataSourceChanging() {\r\n this._initDataController();\r\n this._setListOption(\"_dataController\", this._dataController);\r\n this._setListDataSource();\r\n this._renderInputValue().fail(() => {\r\n if (this._isCustomValueAllowed()) {\r\n return\r\n }\r\n this._clearSelectedItem()\r\n })\r\n },\r\n _isCustomValueAllowed() {\r\n return this.option(\"displayCustomValue\")\r\n },\r\n clear() {\r\n this.callBase();\r\n this._clearFilter();\r\n this._clearSelectedItem()\r\n },\r\n _listItemElements() {\r\n return this._$list ? this._$list.find(LIST_ITEM_SELECTOR) : $()\r\n },\r\n _popupConfig() {\r\n return extend(this.callBase(), {\r\n templatesRenderAsynchronously: false,\r\n autoResizeEnabled: false,\r\n maxHeight: this._getMaxHeight.bind(this)\r\n })\r\n },\r\n _renderPopupContent() {\r\n this.callBase();\r\n this._renderList()\r\n },\r\n _getKeyboardListeners() {\r\n var canListHaveFocus = this._canListHaveFocus();\r\n return this.callBase().concat([!canListHaveFocus && this._list])\r\n },\r\n _renderList() {\r\n this._listId = \"dx-\".concat((new Guid)._value);\r\n var $list = $(\"<div>\").attr(\"id\", this._listId).appendTo(this._popup.$content());\r\n this._$list = $list;\r\n this._list = this._createComponent($list, List, this._listConfig());\r\n this._refreshList();\r\n this._renderPreventBlurOnListClick();\r\n this._setListFocusedElementOptionChange()\r\n },\r\n _renderPreventBlurOnListClick() {\r\n var eventName = addNamespace(\"mousedown\", \"dxDropDownList\");\r\n eventsEngine.off(this._$list, eventName);\r\n eventsEngine.on(this._$list, eventName, e => e.preventDefault())\r\n },\r\n _getControlsAria() {\r\n return this._list && this._listId\r\n },\r\n _renderOpenedState() {\r\n this.callBase();\r\n this._list && this._updateActiveDescendant();\r\n this.setAria(\"owns\", this._popup && this._popupContentId)\r\n },\r\n _getAriaHasPopup: () => \"listbox\",\r\n _refreshList() {\r\n if (this._list && this._shouldRefreshDataSource()) {\r\n this._setListDataSource()\r\n }\r\n },\r\n _shouldRefreshDataSource() {\r\n var dataSourceProvided = !!this._list.option(\"dataSource\");\r\n return dataSourceProvided !== this._needPassDataSourceToList()\r\n },\r\n _isDesktopDevice: () => \"desktop\" === devices.real().deviceType,\r\n _listConfig() {\r\n var options = {\r\n selectionMode: \"single\",\r\n _templates: this.option(\"_templates\"),\r\n templateProvider: this.option(\"templateProvider\"),\r\n noDataText: this.option(\"noDataText\"),\r\n encodeNoDataText: this.option(\"encodeNoDataText\"),\r\n grouped: this.option(\"grouped\"),\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: this._listContentReadyHandler.bind(this),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n indicateLoading: false,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n displayExpr: this._displayGetterExpr(),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n onItemClick: this._listItemClickAction.bind(this),\r\n dataSource: this._getDataSource(),\r\n _dataController: this._dataController,\r\n hoverStateEnabled: this._isDesktopDevice() ? this.option(\"hoverStateEnabled\") : false,\r\n focusStateEnabled: this._isDesktopDevice() ? this.option(\"focusStateEnabled\") : false\r\n };\r\n if (!this._canListHaveFocus()) {\r\n options.tabIndex = null\r\n }\r\n return options\r\n },\r\n _canListHaveFocus: () => false,\r\n _getDataSource() {\r\n return this._needPassDataSourceToList() ? this._dataSource : null\r\n },\r\n _dataSourceOptions: () => ({\r\n paginate: false\r\n }),\r\n _getGroupedOption() {\r\n return this.option(\"grouped\")\r\n },\r\n _dataSourceFromUrlLoadMode: () => \"raw\",\r\n _listContentReadyHandler() {\r\n this._list = this._list || this._$list.dxList(\"instance\");\r\n if (!this.option(\"deferRendering\")) {\r\n this._refreshSelected()\r\n }\r\n this._updatePopupWidth();\r\n this._updateListDimensions();\r\n this._contentReadyAction()\r\n },\r\n _setListOption(optionName, value) {\r\n this._setWidgetOption(\"_list\", arguments)\r\n },\r\n _listItemClickAction(e) {\r\n this._listItemClickHandler(e);\r\n this._itemClickAction(e)\r\n },\r\n _listItemClickHandler: noop,\r\n _setListDataSource() {\r\n if (!this._list) {\r\n return\r\n }\r\n this._setListOption(\"dataSource\", this._getDataSource());\r\n if (!this._needPassDataSourceToList()) {\r\n this._setListOption(\"items\", [])\r\n }\r\n },\r\n _needPassDataSourceToList() {\r\n return this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded()\r\n },\r\n _isMinSearchLengthExceeded() {\r\n return this._searchValue().toString().length >= this.option(\"minSearchLength\")\r\n },\r\n _needClearFilter() {\r\n return this._canKeepDataSource() ? false : this._needPassDataSourceToList()\r\n },\r\n _canKeepDataSource() {\r\n var isMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n return this._dataController.isLoaded() && this.option(\"showDataBeforeSearch\") && this.option(\"minSearchLength\") && !isMinSearchLengthExceeded && !this._isLastMinSearchLengthExceeded\r\n },\r\n _searchValue() {\r\n return this._input().val() || \"\"\r\n },\r\n _getSearchEvent() {\r\n return addNamespace(SEARCH_EVENT, \"\".concat(this.NAME, \"Search\"))\r\n },\r\n _getCompositionStartEvent() {\r\n return addNamespace(\"compositionstart\", \"\".concat(this.NAME, \"CompositionStart\"))\r\n },\r\n _getCompositionEndEvent() {\r\n return addNamespace(\"compositionend\", \"\".concat(this.NAME, \"CompositionEnd\"))\r\n },\r\n _getSetFocusPolicyEvent() {\r\n return addNamespace(\"input\", \"\".concat(this.NAME, \"FocusPolicy\"))\r\n },\r\n _renderEvents() {\r\n this.callBase();\r\n eventsEngine.on(this._input(), this._getSetFocusPolicyEvent(), () => {\r\n this._setFocusPolicy()\r\n });\r\n if (this._shouldRenderSearchEvent()) {\r\n eventsEngine.on(this._input(), this._getSearchEvent(), e => {\r\n this._searchHandler(e)\r\n });\r\n if (useCompositionEvents) {\r\n eventsEngine.on(this._input(), this._getCompositionStartEvent(), () => {\r\n this._isTextCompositionInProgress(true)\r\n });\r\n eventsEngine.on(this._input(), this._getCompositionEndEvent(), e => {\r\n this._isTextCompositionInProgress(void 0);\r\n this._searchHandler(e, this._searchValue())\r\n })\r\n }\r\n }\r\n },\r\n _shouldRenderSearchEvent() {\r\n return this.option(\"searchEnabled\")\r\n },\r\n _refreshEvents() {\r\n eventsEngine.off(this._input(), this._getSearchEvent());\r\n eventsEngine.off(this._input(), this._getSetFocusPolicyEvent());\r\n if (useCompositionEvents) {\r\n eventsEngine.off(this._input(), this._getCompositionStartEvent());\r\n eventsEngine.off(this._input(), this._getCompositionEndEvent())\r\n }\r\n this.callBase()\r\n },\r\n _isTextCompositionInProgress(value) {\r\n if (arguments.length) {\r\n this._isTextComposition = value\r\n } else {\r\n return this._isTextComposition\r\n }\r\n },\r\n _searchHandler(e, searchValue) {\r\n if (this._isTextCompositionInProgress()) {\r\n return\r\n }\r\n if (!this._isMinSearchLengthExceeded()) {\r\n this._searchCanceled();\r\n return\r\n }\r\n var searchTimeout = this.option(\"searchTimeout\");\r\n if (searchTimeout) {\r\n this._clearSearchTimer();\r\n this._searchTimer = setTimeout(() => {\r\n this._searchDataSource(searchValue)\r\n }, searchTimeout)\r\n } else {\r\n this._searchDataSource(searchValue)\r\n }\r\n },\r\n _searchCanceled() {\r\n this._clearSearchTimer();\r\n if (this._needClearFilter()) {\r\n this._filterDataSource(null)\r\n }\r\n this._refreshList()\r\n },\r\n _searchDataSource() {\r\n var searchValue = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._searchValue();\r\n this._filterDataSource(searchValue)\r\n },\r\n _filterDataSource(searchValue) {\r\n this._clearSearchTimer();\r\n var dataController = this._dataController;\r\n dataController.searchExpr(this.option(\"searchExpr\") || this._displayGetterExpr());\r\n dataController.searchOperation(this.option(\"searchMode\"));\r\n dataController.searchValue(searchValue);\r\n dataController.load().done(this._dataSourceFiltered.bind(this, searchValue))\r\n },\r\n _clearFilter() {\r\n var dataController = this._dataController;\r\n dataController.searchValue() && dataController.searchValue(null)\r\n },\r\n _dataSourceFiltered() {\r\n this._isLastMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n this._refreshList();\r\n this._refreshPopupVisibility()\r\n },\r\n _shouldOpenPopup() {\r\n return this._hasItemsToShow()\r\n },\r\n _refreshPopupVisibility() {\r\n if (this.option(\"readOnly\") || !this._searchValue()) {\r\n return\r\n }\r\n var shouldOpenPopup = this._shouldOpenPopup();\r\n if (shouldOpenPopup && !this._isFocused()) {\r\n return\r\n }\r\n this.option(\"opened\", shouldOpenPopup);\r\n if (shouldOpenPopup) {\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n }\r\n },\r\n _dataSourceChangedHandler(newItems) {\r\n if (0 === this._dataController.pageIndex()) {\r\n this.option().items = newItems\r\n } else {\r\n this.option().items = this.option().items.concat(newItems)\r\n }\r\n },\r\n _hasItemsToShow() {\r\n var dataController = this._dataController;\r\n var resultItems = dataController.items() || [];\r\n var resultAmount = resultItems.length;\r\n var isMinSearchLengthExceeded = this._needPassDataSourceToList();\r\n return !!(isMinSearchLengthExceeded && resultAmount)\r\n },\r\n _clearSearchTimer() {\r\n clearTimeout(this._searchTimer);\r\n delete this._searchTimer\r\n },\r\n _popupShowingHandler() {\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n },\r\n _dimensionChanged() {\r\n this.callBase();\r\n this._updateListDimensions()\r\n },\r\n _needPopupRepaint() {\r\n var dataController = this._dataController;\r\n var currentPageIndex = dataController.pageIndex();\r\n var needRepaint = isDefined(this._pageIndex) && currentPageIndex <= this._pageIndex || dataController.isLastPage() && !this._list._scrollViewIsFull();\r\n this._pageIndex = currentPageIndex;\r\n return needRepaint\r\n },\r\n _updateListDimensions() {\r\n if (!this._popup) {\r\n return\r\n }\r\n if (this._needPopupRepaint()) {\r\n this._popup.repaint()\r\n }\r\n this._list && this._list.updateDimensions()\r\n },\r\n _getMaxHeight() {\r\n var $element = this.$element();\r\n var $customBoundaryContainer = this._$customBoundaryContainer;\r\n var offsetTop = $element.offset().top - ($customBoundaryContainer ? $customBoundaryContainer.offset().top : 0);\r\n var windowHeight = getOuterHeight(window);\r\n var containerHeight = $customBoundaryContainer ? Math.min(getOuterHeight($customBoundaryContainer), windowHeight) : windowHeight;\r\n var maxHeight = Math.max(offsetTop, containerHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(.5 * containerHeight, maxHeight)\r\n },\r\n _clean() {\r\n if (this._list) {\r\n delete this._list\r\n }\r\n delete this._isLastMinSearchLengthExceeded;\r\n this.callBase()\r\n },\r\n _dispose() {\r\n this._clearSearchTimer();\r\n this.callBase()\r\n },\r\n _setCollectionWidgetOption() {\r\n this._setListOption.apply(this, arguments)\r\n },\r\n _setSubmitValue() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _optionChanged(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"hoverStateEnabled\":\r\n case \"focusStateEnabled\":\r\n this._isDesktopDevice() && this._setListOption(args.name, args.value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n if (!this.option(\"dataSource\")) {\r\n this._processDataSourceChanging()\r\n }\r\n break;\r\n case \"dataSource\":\r\n this._processDataSourceChanging();\r\n break;\r\n case \"valueExpr\":\r\n this._renderValue();\r\n this._setListOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n this._setListOption(\"displayExpr\", this._displayGetterExpr());\r\n break;\r\n case \"searchMode\":\r\n this._validateSearchMode();\r\n break;\r\n case \"minSearchLength\":\r\n this._refreshList();\r\n break;\r\n case \"searchEnabled\":\r\n case \"showDataBeforeSearch\":\r\n case \"searchExpr\":\r\n this._invalidate();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._initSelectionChangedAction();\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"grouped\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(args.name);\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"itemTemplate\":\r\n case \"searchTimeout\":\r\n break;\r\n case \"selectedItem\":\r\n if (args.previousValue !== args.value) {\r\n this._selectionChangedAction({\r\n selectedItem: args.value\r\n })\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataExpressionMixin, DataConverterMixin);\r\nregisterComponent(\"dxDropDownList\", DropDownList);\r\nexport default DropDownList;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_select_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../ui/list/modules/m_selection\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport errors from \"../../core/errors\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPromise\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport DropDownList from \"../../ui/drop_down_editor/ui.drop_down_list\";\r\nvar DISABLED_STATE_SELECTOR = \".dx-state-disabled\";\r\nvar SELECTBOX_CLASS = \"dx-selectbox\";\r\nvar SELECTBOX_POPUP_CLASS = \"dx-selectbox-popup\";\r\nvar SELECTBOX_CONTAINER_CLASS = \"dx-selectbox-container\";\r\nvar SELECTBOX_POPUP_WRAPPER_CLASS = \"dx-selectbox-popup-wrapper\";\r\nvar SelectBox = DropDownList.inherit({\r\n _supportedKeys() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var clearSelectBox = function(e) {\r\n var isEditable = this._isEditable();\r\n if (!isEditable) {\r\n if (this.option(\"showClearButton\")) {\r\n e.preventDefault();\r\n this.clear()\r\n }\r\n } else if (this._valueSubstituted()) {\r\n this._preventFiltering = true\r\n }\r\n this._savedTextRemoveEvent = e;\r\n this._preventSubstitution = true\r\n };\r\n var searchIfNeeded = function() {\r\n if (that.option(\"searchEnabled\") && that._valueSubstituted()) {\r\n that._searchHandler()\r\n }\r\n };\r\n return extend({}, parent, {\r\n tab() {\r\n if (this.option(\"opened\") && !this._popup.getFocusableElements().length) {\r\n this._resetCaretPosition(true)\r\n }\r\n parent.tab && parent.tab.apply(this, arguments);\r\n this._cancelSearchIfNeed()\r\n },\r\n upArrow(e) {\r\n if (parent.upArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n return\r\n },\r\n downArrow(e) {\r\n if (parent.downArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n return\r\n },\r\n leftArrow() {\r\n var _a;\r\n searchIfNeeded();\r\n null === (_a = parent.leftArrow) || void 0 === _a ? void 0 : _a.apply(this, arguments)\r\n },\r\n rightArrow() {\r\n searchIfNeeded();\r\n parent.rightArrow && parent.rightArrow.apply(this, arguments)\r\n },\r\n home() {\r\n searchIfNeeded();\r\n parent.home && parent.home.apply(this, arguments)\r\n },\r\n end() {\r\n searchIfNeeded();\r\n parent.end && parent.end.apply(this, arguments)\r\n },\r\n escape() {\r\n var result = parent.escape && parent.escape.apply(this, arguments);\r\n this._cancelEditing();\r\n return null !== result && void 0 !== result ? result : true\r\n },\r\n enter(e) {\r\n var isOpened = this.option(\"opened\");\r\n var inputText = this._input().val().trim();\r\n var isCustomText = inputText && this._list && !this._list.option(\"focusedElement\");\r\n if (!inputText && isDefined(this.option(\"value\")) && this.option(\"allowClearing\")) {\r\n this._saveValueChangeEvent(e);\r\n this.option({\r\n selectedItem: null,\r\n value: null\r\n });\r\n this.close()\r\n } else {\r\n if (this.option(\"acceptCustomValue\")) {\r\n e.preventDefault();\r\n if (isCustomText) {\r\n if (isOpened) {\r\n this._toggleOpenState()\r\n }\r\n this._valueChangeEventHandler(e)\r\n }\r\n return isOpened\r\n }\r\n if (parent.enter && parent.enter.apply(this, arguments)) {\r\n return isOpened\r\n }\r\n }\r\n },\r\n space(e) {\r\n var isOpened = this.option(\"opened\");\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n var acceptCustomValue = this.option(\"acceptCustomValue\");\r\n if (!isOpened || isSearchEnabled || acceptCustomValue) {\r\n return\r\n }\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e);\r\n return true\r\n },\r\n backspace: clearSelectBox,\r\n del: clearSelectBox\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n placeholder: messageLocalization.format(\"Select\"),\r\n fieldTemplate: null,\r\n customItemCreateEvent: \"change\",\r\n valueChangeEvent: \"change\",\r\n acceptCustomValue: false,\r\n onCustomItemCreating(e) {\r\n if (!isDefined(e.customItem)) {\r\n e.customItem = e.text\r\n }\r\n },\r\n showSelectionControls: false,\r\n allowClearing: true,\r\n tooltipEnabled: false,\r\n openOnFieldClick: true,\r\n showDropDownButton: true,\r\n displayCustomValue: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initCustomItemCreatingAction()\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(SELECTBOX_CLASS);\r\n this._renderTooltip();\r\n this.callBase();\r\n this._$container.addClass(SELECTBOX_CONTAINER_CLASS)\r\n },\r\n _createPopup() {\r\n this.callBase();\r\n this._popup.$element().addClass(SELECTBOX_POPUP_CLASS);\r\n this._popup.$overlayContent().attr(\"tabindex\", -1)\r\n },\r\n _popupWrapperClass() {\r\n return \"\".concat(this.callBase(), \" \").concat(SELECTBOX_POPUP_WRAPPER_CLASS)\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n valueChangeEvent: {\r\n since: \"22.2\",\r\n alias: \"customItemCreateEvent\"\r\n }\r\n })\r\n },\r\n _cancelEditing() {\r\n if (!this.option(\"searchEnabled\") && this._list) {\r\n this._focusListElement(null);\r\n this._updateField(this.option(\"selectedItem\"))\r\n }\r\n },\r\n _renderOpenedState() {\r\n this.callBase();\r\n if (this.option(\"opened\")) {\r\n this._scrollToSelectedItem();\r\n this._focusSelectedElement()\r\n }\r\n },\r\n _focusSelectedElement() {\r\n var _a;\r\n var searchValue = this._searchValue();\r\n if (!searchValue) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var {\r\n items: items,\r\n selectedItem: selectedItem\r\n } = this.option();\r\n var $listItems = this._list._itemElements();\r\n var index = null !== (_a = null === items || void 0 === items ? void 0 : items.indexOf(selectedItem)) && void 0 !== _a ? _a : -1;\r\n var focusedElement = -1 !== index && !this._isCustomItemSelected() ? $listItems.eq(index) : null;\r\n this._focusListElement(focusedElement)\r\n },\r\n _renderFocusedElement() {\r\n if (!this._list) {\r\n return\r\n }\r\n var searchValue = this._searchValue();\r\n if (!searchValue || this.option(\"acceptCustomValue\")) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var focusedElement = $listItems.not(DISABLED_STATE_SELECTOR).eq(0);\r\n this._focusListElement(focusedElement)\r\n },\r\n _focusListElement(element) {\r\n this._preventInputValueRender = true;\r\n this._list.option(\"focusedElement\", getPublicElement(element));\r\n delete this._preventInputValueRender\r\n },\r\n _scrollToSelectedItem() {\r\n this._list && this._list.scrollToItem(this._list.option(\"selectedItem\"))\r\n },\r\n _listContentReadyHandler() {\r\n this.callBase();\r\n var isPaginate = this._dataController.paginate();\r\n if (isPaginate && this._needPopupRepaint()) {\r\n return\r\n }\r\n this._scrollToSelectedItem()\r\n },\r\n _renderValue() {\r\n this._renderInputValue();\r\n this._setSubmitValue();\r\n return Deferred().resolve()\r\n },\r\n _renderInputValue() {\r\n return this.callBase().always(() => {\r\n this._renderInputValueAsync()\r\n })\r\n },\r\n _renderInputValueAsync() {\r\n this._renderTooltip();\r\n this._renderInputValueImpl().always(() => {\r\n this._refreshSelected()\r\n })\r\n },\r\n _renderInputValueImpl() {\r\n this._renderField();\r\n return Deferred().resolve()\r\n },\r\n _setNextItem(step) {\r\n var item = this._calcNextItem(step);\r\n var value = this._valueGetter(item);\r\n this._setValue(value)\r\n },\r\n _setNextValue(e) {\r\n var dataSourceIsLoaded = this._dataController.isLoaded() ? Deferred().resolve() : this._dataController.load();\r\n dataSourceIsLoaded.done(() => {\r\n var selectedIndex = this._getSelectedIndex();\r\n var hasPages = this._dataController.pageSize();\r\n var isLastPage = this._dataController.isLastPage();\r\n var isLastItem = selectedIndex === this._items().length - 1;\r\n this._saveValueChangeEvent(e);\r\n var step = \"downArrow\" === normalizeKeyName(e) ? 1 : -1;\r\n if (hasPages && !isLastPage && isLastItem && step > 0) {\r\n if (!this._popup) {\r\n this._createPopup()\r\n }\r\n if (!this._dataController.isLoading()) {\r\n this._list._loadNextPage().done(this._setNextItem.bind(this, step))\r\n }\r\n } else {\r\n this._setNextItem(step)\r\n }\r\n })\r\n },\r\n _setSelectedItem(item) {\r\n var isUnknownItem = !this._isCustomValueAllowed() && void 0 === item;\r\n this.callBase(isUnknownItem ? null : item);\r\n if (!isUnknownItem && (!this._isEditable() || this._isCustomItemSelected())) {\r\n this._setListOption(\"selectedItem\", this.option(\"selectedItem\"))\r\n }\r\n },\r\n _isCustomValueAllowed() {\r\n return this.option(\"acceptCustomValue\") || this.callBase()\r\n },\r\n _displayValue(item) {\r\n item = !isDefined(item) && this._isCustomValueAllowed() ? this.option(\"value\") : item;\r\n return this.callBase(item)\r\n },\r\n _listConfig() {\r\n var result = extend(this.callBase(), {\r\n pageLoadMode: \"scrollBottom\",\r\n onSelectionChanged: this._getSelectionChangeHandler(),\r\n selectedItem: this.option(\"selectedItem\"),\r\n onFocusedItemChanged: this._listFocusedItemChangeHandler.bind(this)\r\n });\r\n if (this.option(\"showSelectionControls\")) {\r\n extend(result, {\r\n showSelectionControls: true,\r\n selectByClick: true\r\n })\r\n }\r\n return result\r\n },\r\n _listFocusedItemChangeHandler(e) {\r\n if (this._preventInputValueRender) {\r\n return\r\n }\r\n var list = e.component;\r\n var focusedElement = $(list.option(\"focusedElement\"));\r\n var focusedItem = list._getItemData(focusedElement);\r\n this._updateField(focusedItem)\r\n },\r\n _updateField(item) {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (!(fieldTemplate && this.option(\"fieldTemplate\"))) {\r\n var text = this._displayGetter(item);\r\n this.option(\"text\", text);\r\n this._renderDisplayText(text);\r\n return\r\n }\r\n this._renderField()\r\n },\r\n _getSelectionChangeHandler() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : noop\r\n },\r\n _selectionChangeHandler(e) {\r\n each(e.addedItems || [], (_, addedItem) => {\r\n this._setValue(this._valueGetter(addedItem))\r\n })\r\n },\r\n _getActualSearchValue() {\r\n return this._dataController.searchValue()\r\n },\r\n _toggleOpenState(isVisible) {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n if (!isVisible && !this._shouldClearFilter()) {\r\n this._restoreInputText(true)\r\n }\r\n if (this._wasSearch() && isVisible) {\r\n this._wasSearch(false);\r\n var showDataImmediately = this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded();\r\n if (showDataImmediately && this._dataController.getDataSource()) {\r\n if (this._searchTimer) {\r\n return\r\n }\r\n var searchValue = this._getActualSearchValue();\r\n searchValue && this._wasSearch(true);\r\n this._filterDataSource(searchValue || null)\r\n } else {\r\n this._setListOption(\"items\", [])\r\n }\r\n }\r\n if (isVisible) {\r\n this._scrollToSelectedItem()\r\n }\r\n this.callBase(isVisible)\r\n },\r\n _renderTooltip() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n this.$element().attr(\"title\", this.option(\"displayValue\"))\r\n }\r\n },\r\n _renderDimensions() {\r\n this.callBase();\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n },\r\n _isValueEqualInputText() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (null === initialSelectedItem) {\r\n return false\r\n }\r\n var value = this._displayGetter(initialSelectedItem);\r\n var displayValue = value ? String(value) : \"\";\r\n var inputText = this._searchValue();\r\n return displayValue === inputText\r\n },\r\n _popupHidingHandler() {\r\n if (this._isValueEqualInputText()) {\r\n this._cancelEditing()\r\n }\r\n this.callBase()\r\n },\r\n _popupHiddenHandler() {\r\n this.callBase();\r\n if (this._shouldCancelSearch()) {\r\n this._wasSearch(false);\r\n this._searchCanceled();\r\n this._shouldCancelSearch(false)\r\n }\r\n },\r\n _restoreInputText(saveEditingValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._loadItemDeferred && this._loadItemDeferred.always(() => {\r\n var {\r\n acceptCustomValue: acceptCustomValue,\r\n text: text,\r\n selectedItem: initialSelectedItem\r\n } = this.option();\r\n if (acceptCustomValue) {\r\n if (!saveEditingValue && !this._isValueChanging) {\r\n this._updateField(null !== initialSelectedItem && void 0 !== initialSelectedItem ? initialSelectedItem : this._createCustomItem(text));\r\n this._clearFilter()\r\n }\r\n return\r\n }\r\n if (this.option(\"searchEnabled\")) {\r\n if (!this._searchValue() && this.option(\"allowClearing\")) {\r\n this._clearTextValue();\r\n return\r\n }\r\n }\r\n if (this._isValueEqualInputText()) {\r\n return\r\n }\r\n this._renderInputValue().always(selectedItem => {\r\n var newSelectedItem = ensureDefined(selectedItem, initialSelectedItem);\r\n this._setSelectedItem(newSelectedItem);\r\n this._updateField(newSelectedItem);\r\n this._clearFilter()\r\n })\r\n })\r\n },\r\n _valueChangeEventIncludesBlur() {\r\n var valueChangeEvent = this.option(this._getValueChangeEventOptionName());\r\n return valueChangeEvent.includes(\"blur\")\r\n },\r\n _isPreventedFocusOutEvent(e) {\r\n return this._preventNestedFocusEvent(e) || this._valueChangeEventIncludesBlur()\r\n },\r\n _focusOutHandler(e) {\r\n if (!this._isPreventedFocusOutEvent(e)) {\r\n var isOverlayTarget = this._isOverlayNestedTarget(e.relatedTarget);\r\n if (!isOverlayTarget) {\r\n this._restoreInputText();\r\n this._clearSearchTimer()\r\n }\r\n this._cancelSearchIfNeed(e)\r\n }\r\n e.target = this._input().get(0);\r\n this.callBase(e)\r\n },\r\n _cancelSearchIfNeed(e) {\r\n var _a;\r\n var {\r\n searchEnabled: searchEnabled\r\n } = this.option();\r\n var isOverlayTarget = this._isOverlayNestedTarget(null === e || void 0 === e ? void 0 : e.relatedTarget);\r\n var shouldCancelSearch = this._wasSearch() && searchEnabled && !isOverlayTarget;\r\n if (shouldCancelSearch) {\r\n var isPopupVisible = null === (_a = this._popup) || void 0 === _a ? void 0 : _a._hideAnimationProcessing;\r\n this._clearSearchTimer();\r\n if (isPopupVisible) {\r\n this._shouldCancelSearch(true)\r\n } else {\r\n this._wasSearch(false);\r\n this._searchCanceled()\r\n }\r\n }\r\n },\r\n _shouldCancelSearch(value) {\r\n if (!arguments.length) {\r\n return this._shouldCancelSearchValue\r\n }\r\n this._shouldCancelSearchValue = value\r\n },\r\n _isOverlayNestedTarget: target => !!$(target).closest(\".\".concat(SELECTBOX_POPUP_WRAPPER_CLASS)).length,\r\n _clearTextValue() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n var shouldRestoreValue = selectedItem && \"\" !== selectedItemText;\r\n if (shouldRestoreValue) {\r\n if (this._savedTextRemoveEvent) {\r\n this._saveValueChangeEvent(this._savedTextRemoveEvent)\r\n }\r\n this.option(\"value\", null)\r\n }\r\n delete this._savedTextRemoveEvent\r\n },\r\n _shouldOpenPopup() {\r\n return this._needPassDataSourceToList() && this._wasSearch()\r\n },\r\n _isFocused() {\r\n var activeElement = domAdapter.getActiveElement(this.element());\r\n return this.callBase() && $(activeElement).closest(this._input()).length > 0\r\n },\r\n _getValueChangeEventOptionName: () => \"customItemCreateEvent\",\r\n _renderValueChangeEvent() {\r\n if (this._isEditable()) {\r\n this.callBase()\r\n }\r\n },\r\n _fieldRenderData() {\r\n var $listFocused = this._list && this.option(\"opened\") && $(this._list.option(\"focusedElement\"));\r\n if ($listFocused && $listFocused.length) {\r\n return this._list._getItemData($listFocused)\r\n }\r\n return this.option(\"selectedItem\")\r\n },\r\n _isSelectedValue(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _shouldCloseOnItemClick() {\r\n return !(this.option(\"showSelectionControls\") && \"single\" !== this.option(\"selectionMode\"))\r\n },\r\n _listItemClickHandler(e) {\r\n var previousValue = this._getCurrentValue();\r\n this._focusListElement($(e.itemElement));\r\n this._saveValueChangeEvent(e.event);\r\n this._completeSelection(this._valueGetter(e.itemData));\r\n if (this._shouldCloseOnItemClick()) {\r\n this.option(\"opened\", false)\r\n }\r\n if (this.option(\"searchEnabled\") && previousValue === this._valueGetter(e.itemData)) {\r\n this._updateField(e.itemData)\r\n }\r\n if (this._shouldClearFilter()) {\r\n this._cancelSearchIfNeed()\r\n }\r\n },\r\n _shouldClearFilter() {\r\n return this._wasSearch()\r\n },\r\n _completeSelection(value) {\r\n this._setValue(value)\r\n },\r\n _loadItem(value, cache) {\r\n var that = this;\r\n var deferred = Deferred();\r\n this.callBase(value, cache).done(item => {\r\n deferred.resolve(item)\r\n }).fail(args => {\r\n if (null === args || void 0 === args ? void 0 : args.shouldSkipCallback) {\r\n return\r\n }\r\n var selectedItem = that.option(\"selectedItem\");\r\n if (that.option(\"acceptCustomValue\") && value === that._valueGetter(selectedItem)) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n deferred.reject()\r\n }\r\n });\r\n return deferred.promise()\r\n },\r\n _loadInputValue(value, callback) {\r\n this._loadItemDeferred = this._loadItem(value).always(callback);\r\n return this._loadItemDeferred\r\n },\r\n _isCustomItemSelected() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var searchValue = this._searchValue();\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n return !selectedItemText || searchValue !== selectedItemText.toString()\r\n },\r\n _valueChangeEventHandler(e) {\r\n if (this.option(\"acceptCustomValue\") && this._isCustomItemSelected() && !this._isValueChanging) {\r\n this._isValueChanging = true;\r\n this._customItemAddedHandler(e)\r\n }\r\n },\r\n _initCustomItemCreatingAction() {\r\n this._customItemCreatingAction = this._createActionByOption(\"onCustomItemCreating\")\r\n },\r\n _createCustomItem(text) {\r\n var params = {\r\n text: text\r\n };\r\n var actionResult = this._customItemCreatingAction(params);\r\n var item = ensureDefined(actionResult, params.customItem);\r\n if (isDefined(actionResult)) {\r\n errors.log(\"W0015\", \"onCustomItemCreating\", \"customItem\")\r\n }\r\n return item\r\n },\r\n _customItemAddedHandler(e) {\r\n var searchValue = this._searchValue();\r\n var item = this._createCustomItem(searchValue);\r\n this._saveValueChangeEvent(e);\r\n if (void 0 === item) {\r\n this._renderValue();\r\n throw errors.Error(\"E0121\")\r\n }\r\n if (isPromise(item)) {\r\n fromPromise(item).done(this._setCustomItem.bind(this)).fail(this._setCustomItem.bind(this, null))\r\n } else {\r\n this._setCustomItem(item)\r\n }\r\n },\r\n _setCustomItem(item) {\r\n if (this._disposed) {\r\n return\r\n }\r\n item = item || null;\r\n this.option(\"selectedItem\", item);\r\n this._cancelSearchIfNeed();\r\n this._setValue(this._valueGetter(item));\r\n this._renderDisplayText(this._displayGetter(item));\r\n this._isValueChanging = false\r\n },\r\n _clearValueHandler(e) {\r\n this._preventFiltering = true;\r\n this.callBase(e);\r\n this._searchCanceled();\r\n return false\r\n },\r\n _wasSearch(value) {\r\n if (!arguments.length) {\r\n return !!this._wasSearchValue\r\n }\r\n this._wasSearchValue = value;\r\n return\r\n },\r\n _searchHandler() {\r\n if (this._preventFiltering) {\r\n delete this._preventFiltering;\r\n return\r\n }\r\n if (this._needPassDataSourceToList()) {\r\n this._wasSearch(true)\r\n }\r\n this.callBase(arguments)\r\n },\r\n _dataSourceFiltered(searchValue) {\r\n this.callBase();\r\n if (null !== searchValue) {\r\n this._renderInputSubstitution();\r\n this._renderFocusedElement()\r\n }\r\n },\r\n _valueSubstituted() {\r\n var input = this._input().get(0);\r\n var currentSearchLength = this._searchValue().length;\r\n var isAllSelected = 0 === input.selectionStart && input.selectionEnd === currentSearchLength;\r\n var inputHasSelection = input.selectionStart !== input.selectionEnd;\r\n var isLastSymbolSelected = currentSearchLength === input.selectionEnd;\r\n return this._wasSearch() && inputHasSelection && !isAllSelected && isLastSymbolSelected && this._shouldSubstitutionBeRendered()\r\n },\r\n _shouldSubstitutionBeRendered() {\r\n return !this._preventSubstitution && this.option(\"searchEnabled\") && !this.option(\"acceptCustomValue\") && \"startswith\" === this.option(\"searchMode\")\r\n },\r\n _renderInputSubstitution() {\r\n if (!this._shouldSubstitutionBeRendered()) {\r\n delete this._preventSubstitution;\r\n return\r\n }\r\n var item = this._list && this._getPlainItems(this._list.option(\"items\"))[0];\r\n if (!item) {\r\n return\r\n }\r\n var $input = this._input();\r\n var valueLength = $input.val().length;\r\n if (0 === valueLength) {\r\n return\r\n }\r\n var inputElement = $input.get(0);\r\n var displayValue = this._displayGetter(item).toString();\r\n inputElement.value = displayValue;\r\n this._caret({\r\n start: valueLength,\r\n end: displayValue.length\r\n })\r\n },\r\n _dispose() {\r\n this._renderInputValueAsync = noop;\r\n delete this._loadItemDeferred;\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"customItemCreateEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onCustomItemCreating\":\r\n this._initCustomItemCreatingAction();\r\n break;\r\n case \"tooltipEnabled\":\r\n this._renderTooltip();\r\n break;\r\n case \"displayCustomValue\":\r\n case \"acceptCustomValue\":\r\n case \"showSelectionControls\":\r\n this._invalidate();\r\n break;\r\n case \"allowClearing\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSelectBox\", SelectBox);\r\nexport default SelectBox;\r\n","/**\r\n * DevExtreme (esm/events/gesture/swipeable.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../swipe\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name\r\n} from \"../../core/utils/public_component\";\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: swipeEventStart,\r\n onUpdated: swipeEventSwipe,\r\n onEnd: swipeEventEnd,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar Swipeable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n immediateTimeout: IMMEDIATE_TIMEOUT,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n each(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = addNamespace(eventName, NAME);\r\n eventsEngine.on(this.$element(), eventName, this._eventData, (function(e) {\r\n return action({\r\n event: e\r\n })\r\n }))\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\"),\r\n immediateTimeout: this.option(\"immediateTimeout\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nname(Swipeable, DX_SWIPEABLE);\r\nexport default Swipeable;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.selection.strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nclass CalendarSelectionStrategy {\r\n constructor(component) {\r\n this.calendar = component\r\n }\r\n dateOption(optionName) {\r\n return this.calendar._dateOption(optionName)\r\n }\r\n dateValue(value, e) {\r\n this.calendar._dateValue(value, e)\r\n }\r\n skipNavigate() {\r\n this.calendar._skipNavigate = true\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n this.calendar._updateAriaSelected(value, previousValue);\r\n if (value[0] && this.calendar.option(\"currentDate\").getTime() === value[0].getTime()) {\r\n this.calendar._updateAriaId(value[0])\r\n }\r\n }\r\n processValueChanged(value, previousValue) {\r\n if (isDefined(value) && !Array.isArray(value)) {\r\n value = [value]\r\n }\r\n if (isDefined(previousValue) && !Array.isArray(previousValue)) {\r\n previousValue = [previousValue]\r\n }\r\n value = (null === value || void 0 === value ? void 0 : value.map(item => this._convertToDate(item))) || [];\r\n previousValue = (null === previousValue || void 0 === previousValue ? void 0 : previousValue.map(item => this._convertToDate(item))) || [];\r\n this._updateViewsValue(value);\r\n this.updateAriaSelected(value, previousValue);\r\n if (!this._currentDateChanged) {\r\n this.calendar._initCurrentDate()\r\n }\r\n this._currentDateChanged = false\r\n }\r\n _isDateDisabled(date) {\r\n var min = this.calendar._dateOption(\"min\");\r\n var max = this.calendar._dateOption(\"max\");\r\n var isLessThanMin = isDefined(min) && date < min && !dateUtils.sameDate(min, date);\r\n var isBiggerThanMax = isDefined(max) && date > max && !dateUtils.sameDate(max, date);\r\n return this.calendar._view.isDateDisabled(date) || isLessThanMin || isBiggerThanMax\r\n }\r\n _getLowestDateInArray(dates) {\r\n if (dates.length) {\r\n return new Date(Math.min(...dates))\r\n }\r\n }\r\n _convertToDate(value) {\r\n return this.calendar._convertToDate(value)\r\n }\r\n _isMaxZoomLevel() {\r\n return this.calendar._isMaxZoomLevel()\r\n }\r\n _updateViewsOption(optionName, optionValue) {\r\n this.calendar._updateViewsOption(optionName, optionValue)\r\n }\r\n _updateViewsValue(value) {\r\n this._updateViewsOption(\"value\", value)\r\n }\r\n _updateCurrentDate(value) {\r\n this.calendar.option(\"currentDate\", null !== value && void 0 !== value ? value : new Date)\r\n }\r\n _shouldHandleWeekNumberClick() {\r\n var {\r\n selectionMode: selectionMode,\r\n selectWeekOnClick: selectWeekOnClick\r\n } = this.calendar.option();\r\n return selectWeekOnClick && \"single\" !== selectionMode\r\n }\r\n}\r\nexport default CalendarSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.multiple.selection.strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CalendarSelectionStrategy from \"./m_calendar.selection.strategy\";\r\nclass CalendarMultiSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"MultiSelection\"\r\n }\r\n getViewOptions() {\r\n return {\r\n value: this.dateOption(\"value\"),\r\n range: [],\r\n selectionMode: \"multiple\",\r\n onWeekNumberClick: this._shouldHandleWeekNumberClick() ? this._weekNumberClickHandler.bind(this) : null\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n var value = [...this.dateOption(\"value\")];\r\n var alreadySelectedIndex = value.findIndex(date => (null === date || void 0 === date ? void 0 : date.toDateString()) === selectedValue.toDateString());\r\n if (alreadySelectedIndex > -1) {\r\n value.splice(alreadySelectedIndex, 1)\r\n } else {\r\n value.push(selectedValue)\r\n }\r\n this.skipNavigate();\r\n this._updateCurrentDate(selectedValue);\r\n this._currentDateChanged = true;\r\n this.dateValue(value, e)\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n null !== value && void 0 !== value ? value : value = this.dateOption(\"value\");\r\n null !== previousValue && void 0 !== previousValue ? previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n getDefaultCurrentDate() {\r\n var dates = this.dateOption(\"value\").filter(value => value);\r\n return this._getLowestDateInArray(dates)\r\n }\r\n restoreValue() {\r\n this.calendar.option(\"value\", [])\r\n }\r\n _weekNumberClickHandler(_ref) {\r\n var {\r\n rowDates: rowDates,\r\n event: event\r\n } = _ref;\r\n var selectedDates = rowDates.filter(date => !this._isDateDisabled(date));\r\n this.dateValue(selectedDates, event)\r\n }\r\n}\r\nexport default CalendarMultiSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.navigator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Button from \"../../../ui/button\";\r\nimport {\r\n isFluent,\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport Widget from \"../widget\";\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar BUTTON_TEXT_CLASS = \"dx-button-text\";\r\nclass Navigator extends Widget {\r\n _getDefaultOptions() {\r\n return _extends(_extends({}, super._getDefaultOptions()), {\r\n onClick: void 0,\r\n onCaptionClick: void 0,\r\n type: \"normal\",\r\n stylingMode: \"outlined\",\r\n text: \"\"\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => isMaterial(),\r\n options: {\r\n type: \"default\",\r\n stylingMode: \"text\"\r\n }\r\n }, {\r\n device: () => isFluent(),\r\n options: {\r\n type: \"normal\",\r\n stylingMode: \"text\"\r\n }\r\n }])\r\n }\r\n _init() {\r\n super._init();\r\n this._initActions()\r\n }\r\n _initActions() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n $(this.element()).addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n }\r\n _renderButtons() {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n type: type,\r\n stylingMode: stylingMode,\r\n focusStateEnabled: focusStateEnabled\r\n } = this.option();\r\n this._prevButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: focusStateEnabled,\r\n icon: rtlEnabled ? \"chevronright\" : \"chevronleft\",\r\n onClick: e => {\r\n this._clickAction({\r\n direction: -1,\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n integrationOptions: {}\r\n });\r\n var $prevButton = $(this._prevButton.element()).addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: focusStateEnabled,\r\n icon: rtlEnabled ? \"chevronleft\" : \"chevronright\",\r\n onClick: e => {\r\n this._clickAction({\r\n direction: 1,\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n integrationOptions: {}\r\n });\r\n var $nextButton = $(this._nextButton.element()).addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent($(\"<div>\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), Button, {\r\n focusStateEnabled: focusStateEnabled,\r\n onClick: e => {\r\n this._captionClickAction({\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n template: (_, content) => {\r\n var {\r\n text: text\r\n } = this.option();\r\n var viewCaptionTexts = text.split(\" - \");\r\n viewCaptionTexts.forEach(captionText => {\r\n $(content).append($(\"<span>\").addClass(BUTTON_TEXT_CLASS).text(captionText))\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n }\r\n _renderCaption() {\r\n var _a;\r\n null === (_a = this._caption) || void 0 === _a ? void 0 : _a.option(\"text\", this.option(\"text\"))\r\n }\r\n toggleButton(buttonPrefix, value) {\r\n var buttonName = \"_\".concat(buttonPrefix, \"Button\");\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default Navigator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.range.selection.strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport CalendarSelectionStrategy from \"./m_calendar.selection.strategy\";\r\nvar DAY_INTERVAL = 864e5;\r\nclass CalendarRangeSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"RangeSelection\"\r\n }\r\n getViewOptions() {\r\n var value = this._getValue();\r\n var range = this._getDaysInRange(value[0], value[1]);\r\n return {\r\n value: value,\r\n range: range,\r\n selectionMode: \"range\",\r\n onCellHover: this._cellHoverHandler.bind(this),\r\n onWeekNumberClick: this._shouldHandleWeekNumberClick() ? this._weekNumberClickHandler.bind(this) : null\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n var [startDate, endDate] = this._getValue();\r\n this.skipNavigate();\r\n this._updateCurrentDate(selectedValue);\r\n this._currentDateChanged = true;\r\n if (true === this.calendar.option(\"_allowChangeSelectionOrder\")) {\r\n this.calendar._valueSelected = true;\r\n if (\"startDate\" === this.calendar.option(\"_currentSelection\")) {\r\n if (this.calendar._convertToDate(selectedValue) > this.calendar._convertToDate(endDate)) {\r\n this.dateValue([selectedValue, null], e)\r\n } else {\r\n this.dateValue([selectedValue, endDate], e)\r\n }\r\n } else if (this.calendar._convertToDate(selectedValue) >= this.calendar._convertToDate(startDate)) {\r\n this.dateValue([startDate, selectedValue], e)\r\n } else {\r\n this.dateValue([selectedValue, null], e)\r\n }\r\n } else if (!startDate || endDate) {\r\n this.dateValue([selectedValue, null], e)\r\n } else {\r\n this.dateValue(startDate < selectedValue ? [startDate, selectedValue] : [selectedValue, startDate], e)\r\n }\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n null !== value && void 0 !== value ? value : value = this._getValue();\r\n null !== previousValue && void 0 !== previousValue ? previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n processValueChanged(value, previousValue) {\r\n super.processValueChanged(value, previousValue);\r\n var range = this._getRange();\r\n this._updateViewsOption(\"range\", range)\r\n }\r\n getDefaultCurrentDate() {\r\n var {\r\n _allowChangeSelectionOrder: _allowChangeSelectionOrder,\r\n _currentSelection: _currentSelection\r\n } = this.calendar.option();\r\n var value = this.dateOption(\"value\");\r\n if (_allowChangeSelectionOrder) {\r\n if (\"startDate\" === _currentSelection && value[0]) {\r\n return value[0]\r\n }\r\n if (\"endDate\" === _currentSelection && value[1]) {\r\n return value[1]\r\n }\r\n }\r\n var dates = value.filter(value => value);\r\n return this._getLowestDateInArray(dates)\r\n }\r\n restoreValue() {\r\n this.calendar.option(\"value\", [null, null])\r\n }\r\n _getValue() {\r\n var value = this.dateOption(\"value\");\r\n if (!value.length) {\r\n return value\r\n }\r\n var [startDate, endDate] = value;\r\n if (startDate && endDate && startDate > endDate) {\r\n [startDate, endDate] = [endDate, startDate]\r\n }\r\n return [startDate, endDate]\r\n }\r\n _getRange() {\r\n var [startDate, endDate] = this._getValue();\r\n return this._getDaysInRange(startDate, endDate)\r\n }\r\n _getDaysInRange(startDate, endDate) {\r\n if (!startDate || !endDate) {\r\n return []\r\n }\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.calendar.option();\r\n var isAdditionalViewDate = this.calendar._isAdditionalViewDate(currentDate);\r\n var firstDateInViews = dateUtils.getFirstMonthDate(dateUtils.addDateInterval(currentDate, \"month\", isAdditionalViewDate ? -2 : -1));\r\n var lastDateInViews = dateUtils.getLastMonthDate(dateUtils.addDateInterval(currentDate, \"month\", isAdditionalViewDate ? 1 : viewsCount));\r\n var rangeStartDate = new Date(Math.max(firstDateInViews, startDate));\r\n var rangeEndDate = new Date(Math.min(lastDateInViews, endDate));\r\n return [...dateUtils.getDatesOfInterval(rangeStartDate, rangeEndDate, DAY_INTERVAL), rangeEndDate]\r\n }\r\n _cellHoverHandler(e) {\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n var [startDate, endDate] = this._getValue();\r\n var {\r\n _allowChangeSelectionOrder: _allowChangeSelectionOrder,\r\n _currentSelection: _currentSelection\r\n } = this.calendar.option();\r\n if (isMaxZoomLevel) {\r\n var skipHoveredRange = _allowChangeSelectionOrder && \"startDate\" === _currentSelection;\r\n if (startDate && !endDate && !skipHoveredRange) {\r\n if (e.value > startDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(startDate, e.value));\r\n return\r\n }\r\n } else if (!startDate && endDate && !(_allowChangeSelectionOrder && \"endDate\" === _currentSelection)) {\r\n if (e.value < endDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(e.value, endDate));\r\n return\r\n }\r\n } else if (startDate && endDate) {\r\n if (\"startDate\" === _currentSelection && e.value < startDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(e.value, startDate));\r\n return\r\n }\r\n if (\"endDate\" === _currentSelection && e.value > endDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(endDate, e.value));\r\n return\r\n }\r\n }\r\n this._updateViewsOption(\"hoveredRange\", [])\r\n }\r\n }\r\n _weekNumberClickHandler(_ref) {\r\n var {\r\n rowDates: rowDates,\r\n event: event\r\n } = _ref;\r\n var selectedDates = rowDates.filter(date => !this._isDateDisabled(date));\r\n var value = selectedDates.length ? [selectedDates[0], selectedDates[selectedDates.length - 1]] : [null, null];\r\n this.dateValue(value, event)\r\n }\r\n}\r\nexport default CalendarRangeSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.single.selection.strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CalendarSelectionStrategy from \"./m_calendar.selection.strategy\";\r\nclass CalendarSingleSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"SingleSelection\"\r\n }\r\n getViewOptions() {\r\n return {\r\n value: this.dateOption(\"value\"),\r\n range: [],\r\n selectionMode: \"single\"\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n this.skipNavigate();\r\n this.dateValue(selectedValue, e)\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n null !== value && void 0 !== value ? value : value = [this.dateOption(\"value\")];\r\n null !== previousValue && void 0 !== previousValue ? previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n getDefaultCurrentDate() {\r\n return this.dateOption(\"value\")\r\n }\r\n restoreValue() {\r\n this.calendar.option(\"value\", null)\r\n }\r\n _updateViewsValue(value) {\r\n this._updateViewsOption(\"value\", value[0])\r\n }\r\n}\r\nexport default CalendarSingleSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.base_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n data as elementData\r\n} from \"../../../core/element_data\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport coreDateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start as hoverStartEventName\r\n} from \"../../../events/hover\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nvar {\r\n abstract: abstract\r\n} = Widget;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_CELL_START_CLASS = \"dx-calendar-cell-start\";\r\nvar CALENDAR_CELL_END_CLASS = \"dx-calendar-cell-end\";\r\nvar CALENDAR_CELL_START_IN_ROW_CLASS = \"dx-calendar-cell-start-in-row\";\r\nvar CALENDAR_CELL_END_IN_ROW_CLASS = \"dx-calendar-cell-end-in-row\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CELL_IN_RANGE_CLASS = \"dx-calendar-cell-in-range\";\r\nvar CALENDAR_CELL_RANGE_HOVER_CLASS = \"dx-calendar-cell-range-hover\";\r\nvar CALENDAR_CELL_RANGE_HOVER_START_CLASS = \"dx-calendar-cell-range-hover-start\";\r\nvar CALENDAR_CELL_RANGE_HOVER_END_CLASS = \"dx-calendar-cell-range-hover-end\";\r\nvar CALENDAR_RANGE_START_DATE_CLASS = \"dx-calendar-range-start-date\";\r\nvar CALENDAR_RANGE_END_DATE_CLASS = \"dx-calendar-range-end-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar NOT_WEEK_CELL_SELECTOR = \"td:not(.\".concat(CALENDAR_WEEK_NUMBER_CELL_CLASS, \")\");\r\nvar CALENDAR_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxCalendar\");\r\nvar CALENDAR_DXHOVERSTART_EVENT_NAME = addNamespace(hoverStartEventName, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar DAY_INTERVAL = 864e5;\r\nvar BaseView = Widget.inherit({\r\n _getViewName: () => \"base\",\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n onCellHover: null,\r\n onWeekNumberClick: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderRange();\r\n this._renderEvents()\r\n },\r\n _createTable() {\r\n this._$table = $(\"<table>\");\r\n var localizedWidgetName = messageLocalization.format(\"dxCalendar-ariaWidgetName\");\r\n this.setAria({\r\n label: localizedWidgetName,\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody() {\r\n this.$body = $(\"<tbody>\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n this._renderWeekNumberCell(rowData)\r\n }\r\n },\r\n _createRow() {\r\n var row = domAdapter.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", $(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _createCell(cellDate, cellIndex) {\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = this._getClassNameByDate(cellDate, cellIndex);\r\n cell.setAttribute(\"data-value\", dateSerialization.serializeDate(cellDate, coreDateUtils.getShortDateFormat()));\r\n elementData(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell(params, cellIndex) {\r\n var {\r\n cellDate: cellDate,\r\n prevCellDate: prevCellDate,\r\n row: row\r\n } = params;\r\n if (prevCellDate) {\r\n coreDateUtils.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var {\r\n cell: cell,\r\n $cell: $cell\r\n } = this._createCell(cellDate, cellIndex);\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n $(row).append(cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate(cellDate, cellIndex) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n if (\"range\" === this.option(\"selectionMode\")) {\r\n if (0 === cellIndex) {\r\n className += \" \".concat(CALENDAR_CELL_START_IN_ROW_CLASS)\r\n }\r\n if (cellIndex === this.option(\"colCount\") - 1) {\r\n className += \" \".concat(CALENDAR_CELL_END_IN_ROW_CLASS)\r\n }\r\n if (this._isStartDayOfMonth(cellDate)) {\r\n className += \" \".concat(CALENDAR_CELL_START_CLASS)\r\n }\r\n if (this._isEndDayOfMonth(cellDate)) {\r\n className += \" \".concat(CALENDAR_CELL_END_CLASS)\r\n }\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData(cellDate, cellIndex, $cell) {\r\n var isDateCell = cellDate instanceof Date;\r\n var text = isDateCell ? this._getCellText(cellDate) : cellDate;\r\n var date = isDateCell ? cellDate : void 0;\r\n var view = this._getViewName();\r\n return {\r\n model: {\r\n text: text,\r\n date: date,\r\n view: view\r\n },\r\n container: getPublicElement($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents() {\r\n this._createCellClickAction();\r\n eventsEngine.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, NOT_WEEK_CELL_SELECTOR, e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellClickAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n });\r\n var {\r\n selectionMode: selectionMode\r\n } = this.option();\r\n eventsEngine.off(this._$table, CALENDAR_DXHOVERSTART_EVENT_NAME);\r\n if (\"range\" === selectionMode) {\r\n this._createCellHoverAction();\r\n eventsEngine.on(this._$table, CALENDAR_DXHOVERSTART_EVENT_NAME, NOT_WEEK_CELL_SELECTOR, e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellHoverAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n }\r\n if (\"single\" !== selectionMode) {\r\n this._createWeekNumberCellClickAction();\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, \".\".concat(CALENDAR_WEEK_NUMBER_CELL_CLASS), e => {\r\n var $row = $(e.currentTarget).closest(\"tr\");\r\n var firstDateInRow = $row.find(\".\".concat(CALENDAR_CELL_CLASS)).first().data(CALENDAR_DATE_VALUE_KEY);\r\n var lastDateInRow = $row.find(\".\".concat(CALENDAR_CELL_CLASS)).last().data(CALENDAR_DATE_VALUE_KEY);\r\n var rowDates = [...coreDateUtils.getDatesOfInterval(firstDateInRow, lastDateInRow, DAY_INTERVAL), lastDateInRow];\r\n this._weekNumberCellClickAction({\r\n event: e,\r\n rowDates: rowDates\r\n })\r\n })\r\n }\r\n },\r\n _createCellClickAction() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createCellHoverAction() {\r\n this._cellHoverAction = this._createActionByOption(\"onCellHover\")\r\n },\r\n _createWeekNumberCellClickAction() {\r\n this._weekNumberCellClickAction = this._createActionByOption(\"onWeekNumberClick\")\r\n },\r\n _createDisabledDatesHandler() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || noop\r\n },\r\n _getDefaultDisabledDatesHandler: disabledDates => noop,\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _isStartDayOfMonth: abstract,\r\n _isEndDayOfMonth: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n if (contouredDate) {\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n }\r\n },\r\n _getContouredCell() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _renderValue() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n if (!Array.isArray(value)) {\r\n value = [value]\r\n }\r\n this._updateSelectedClass(value)\r\n },\r\n _updateSelectedClass(value) {\r\n var _a;\r\n if (this._isRangeMode() && !this._isMonthView()) {\r\n return\r\n }\r\n null === (_a = this._$selectedCells) || void 0 === _a ? void 0 : _a.forEach($cell => {\r\n $cell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n });\r\n this._$selectedCells = value.map(value => this._getCellByDate(value));\r\n this._$selectedCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_SELECTED_DATE_CLASS)\r\n })\r\n },\r\n _renderRange() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n var {\r\n allowValueSelection: allowValueSelection,\r\n value: value,\r\n range: range\r\n } = this.option();\r\n if (!allowValueSelection || !this._isRangeMode() || !this._isMonthView()) {\r\n return\r\n }\r\n null === (_a = this._$rangeCells) || void 0 === _a ? void 0 : _a.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_IN_RANGE_CLASS)\r\n });\r\n null === (_b = this._$hoveredRangeCells) || void 0 === _b ? void 0 : _b.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_c = this._$rangeStartHoverCell) || void 0 === _c ? void 0 : _c.removeClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_d = this._$rangeEndHoverCell) || void 0 === _d ? void 0 : _d.removeClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS);\r\n null === (_e = this._$rangeStartDateCell) || void 0 === _e ? void 0 : _e.removeClass(CALENDAR_RANGE_START_DATE_CLASS);\r\n null === (_f = this._$rangeEndDateCell) || void 0 === _f ? void 0 : _f.removeClass(CALENDAR_RANGE_END_DATE_CLASS);\r\n this._$rangeCells = range.map(value => this._getCellByDate(value));\r\n this._$rangeStartDateCell = this._getCellByDate(value[0]);\r\n this._$rangeEndDateCell = this._getCellByDate(value[1]);\r\n this._$rangeCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_CELL_IN_RANGE_CLASS)\r\n });\r\n null === (_g = this._$rangeStartDateCell) || void 0 === _g ? void 0 : _g.addClass(CALENDAR_RANGE_START_DATE_CLASS);\r\n null === (_h = this._$rangeEndDateCell) || void 0 === _h ? void 0 : _h.addClass(CALENDAR_RANGE_END_DATE_CLASS)\r\n },\r\n _renderHoveredRange() {\r\n var _a, _b, _c, _d, _e;\r\n var {\r\n allowValueSelection: allowValueSelection,\r\n hoveredRange: hoveredRange\r\n } = this.option();\r\n if (!allowValueSelection || !this._isRangeMode() || !this._isMonthView()) {\r\n return\r\n }\r\n null === (_a = this._$hoveredRangeCells) || void 0 === _a ? void 0 : _a.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_b = this._$rangeStartHoverCell) || void 0 === _b ? void 0 : _b.removeClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_c = this._$rangeEndHoverCell) || void 0 === _c ? void 0 : _c.removeClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS);\r\n this._$hoveredRangeCells = hoveredRange.map(value => this._getCellByDate(value));\r\n this._$rangeStartHoverCell = this._getCellByDate(hoveredRange[0]);\r\n this._$rangeEndHoverCell = this._getCellByDate(hoveredRange[hoveredRange.length - 1]);\r\n this._$hoveredRangeCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_d = this._$rangeStartHoverCell) || void 0 === _d ? void 0 : _d.addClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_e = this._$rangeEndHoverCell) || void 0 === _e ? void 0 : _e.addClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS)\r\n },\r\n _isMonthView() {\r\n return \"month\" === this.option(\"zoomLevel\")\r\n },\r\n _isRangeMode() {\r\n return \"range\" === this.option(\"selectionMode\")\r\n },\r\n getCellAriaLabel(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = coreDateUtils.getViewFirstCellDate(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"range\":\r\n this._renderRange();\r\n break;\r\n case \"hoveredRange\":\r\n this._renderHoveredRange();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"onCellHover\":\r\n this._createCellHoverAction();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default BaseView;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.views.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport BaseView from \"./m_calendar.base_view\";\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar CALENDAR_WEEK_SELECTION_CLASS = \"dx-calendar-week-selection\";\r\nvar Views = {\r\n month: BaseView.inherit({\r\n _getViewName: () => \"month\",\r\n _getCurrentDateFormat: () => \"longdate\",\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n firstDayOfWeek: 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: noop,\r\n getCellAriaLabel: date => dateLocalization.format(date, \"longdate\"),\r\n _renderHeader() {\r\n var $headerRow = $(\"<tr>\");\r\n var $header = $(\"<thead>\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n if (this.option(\"showWeekNumbers\")) {\r\n this._renderWeekHeaderCell($headerRow)\r\n }\r\n },\r\n _renderHeaderCell(cellIndex, $headerRow) {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var {\r\n full: fullCaption,\r\n abbreviated: abbrCaption\r\n } = this._getDayCaption(firstDayOfWeek + cellIndex);\r\n var $cell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n $headerRow.append($cell)\r\n },\r\n _renderWeekHeaderCell($headerRow) {\r\n var $weekNumberHeaderCell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: \"WeekNumber\",\r\n class: \"dx-week-number-header\"\r\n });\r\n $headerRow.prepend($weekNumberHeaderCell)\r\n },\r\n _renderWeekNumberCell(rowData) {\r\n var {\r\n showWeekNumbers: showWeekNumbers,\r\n cellTemplate: cellTemplate,\r\n selectionMode: selectionMode,\r\n selectWeekOnClick: selectWeekOnClick\r\n } = this.option();\r\n if (!showWeekNumbers) {\r\n return\r\n }\r\n var weekNumber = this._getWeekNumber(rowData.prevCellDate);\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = CALENDAR_WEEK_NUMBER_CELL_CLASS;\r\n if (\"single\" !== selectionMode && selectWeekOnClick) {\r\n $cell.addClass(CALENDAR_WEEK_SELECTION_CLASS)\r\n }\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(weekNumber, -1, $cell))\r\n } else {\r\n cell.innerHTML = weekNumber\r\n }\r\n rowData.row.prepend(cell);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: \"Week \".concat(weekNumber)\r\n }, $cell)\r\n },\r\n _getWeekNumber(date) {\r\n var {\r\n weekNumberRule: weekNumberRule,\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n if (\"auto\" === weekNumberRule) {\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, 1 === firstDayOfWeek ? \"firstFourDays\" : \"firstDay\")\r\n }\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, weekNumberRule)\r\n },\r\n getNavigatorCaption() {\r\n return dateLocalization.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _isStartDayOfMonth(cellDate) {\r\n return dateUtils.sameDate(cellDate, dateUtils.getFirstMonthDate(this.option(\"date\")))\r\n },\r\n _isEndDayOfMonth(cellDate) {\r\n return dateUtils.sameDate(cellDate, dateUtils.getLastMonthDate(this.option(\"date\")))\r\n },\r\n _getCellText: cellDate => dateLocalization.format(cellDate, \"d\"),\r\n _getDayCaption(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: dateLocalization.getDayNames()[dayIndex],\r\n abbreviated: dateLocalization.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData() {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var firstDay = dateUtils.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = firstDayOfWeek - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData(date) {\r\n date = new Date(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getCellByDate(date) {\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(date, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary(date) {\r\n return dateUtils.sameMonthAndYear(date, this.option(\"min\")) || dateUtils.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: disabledDates => function(args) {\r\n var isDisabledDate = disabledDates.some(item => dateUtils.sameDate(item, args.date));\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }),\r\n year: BaseView.inherit({\r\n _getViewName: () => \"year\",\r\n _getCurrentDateFormat: () => \"monthandyear\",\r\n _isTodayCell(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, dateUtils.getFirstMonthDate(this.option(\"min\")), dateUtils.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: () => false,\r\n _isStartDayOfMonth: () => false,\r\n _isEndDayOfMonth: () => false,\r\n _getCellText: cellDate => dateLocalization.getMonthNames(\"abbreviated\")[cellDate.getMonth()],\r\n _getFirstCellData() {\r\n var currentDate = this.option(\"date\");\r\n var data = new Date(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData(date) {\r\n date = new Date(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: date => dateLocalization.format(date, \"monthandyear\"),\r\n getNavigatorCaption() {\r\n return dateLocalization.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary(date) {\r\n return dateUtils.sameYear(date, this.option(\"min\")) || dateUtils.sameYear(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n decade: BaseView.inherit({\r\n _getViewName: () => \"decade\",\r\n _isTodayCell(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameDecade(date, this.option(\"date\"))\r\n },\r\n _isStartDayOfMonth: () => false,\r\n _isEndDayOfMonth: () => false,\r\n _getCellText: cellDate => dateLocalization.format(cellDate, \"yyyy\"),\r\n _getFirstCellData() {\r\n var year = dateUtils.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return dateUtils.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = dateUtils.getFirstYearInDecade(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return \"\".concat(dateLocalization.format(startDate, \"yyyy\"), \"-\").concat(dateLocalization.format(endDate, \"yyyy\"))\r\n },\r\n _isValueOnCurrentView: (currentDate, value) => dateUtils.sameDecade(currentDate, value),\r\n _getCellByDate(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary(date) {\r\n return dateUtils.sameDecade(date, this.option(\"min\")) || dateUtils.sameDecade(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n century: BaseView.inherit({\r\n _getViewName: () => \"century\",\r\n _isTodayCell(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange(cellDate) {\r\n var decade = dateUtils.getFirstYearInDecade(cellDate);\r\n var minDecade = dateUtils.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = dateUtils.getFirstYearInDecade(this.option(\"max\"));\r\n return !dateUtils.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameCentury(date, this.option(\"date\"))\r\n },\r\n _isStartDayOfMonth: () => false,\r\n _isEndDayOfMonth: () => false,\r\n _getCellText(cellDate) {\r\n var startDate = dateLocalization.format(cellDate, \"yyyy\");\r\n var endDate = new Date(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return \"\".concat(startDate, \" - \").concat(dateLocalization.format(endDate, \"yyyy\"))\r\n },\r\n _getFirstCellData() {\r\n var decade = dateUtils.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return dateUtils.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return \"\".concat(dateLocalization.format(startDate, \"yyyy\"), \"-\").concat(dateLocalization.format(endDate, \"yyyy\"))\r\n },\r\n isBoundary(date) {\r\n return dateUtils.sameCentury(date, this.option(\"min\")) || dateUtils.sameCentury(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n })\r\n};\r\nexport default Views;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport fx from \"../../../animation/fx\";\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../../core/templates/function_template\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n inRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport Swipeable from \"../../../events/gesture/swipeable\";\r\nimport {\r\n end as hoverEndEventName\r\n} from \"../../../events/hover\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../events/utils/index\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Button from \"../../../ui/button\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport {\r\n isFluent\r\n} from \"../../../ui/themes\";\r\nimport CalendarMultipleSelectionStrategy from \"./m_calendar.multiple.selection.strategy\";\r\nimport Navigator from \"./m_calendar.navigator\";\r\nimport CalendarRangeSelectionStrategy from \"./m_calendar.range.selection.strategy\";\r\nimport CalendarSingleSelectionStrategy from \"./m_calendar.single.selection.strategy\";\r\nimport Views from \"./m_calendar.views\";\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar CALENDAR_MULTIVIEW_CLASS = \"dx-calendar-multiview\";\r\nvar CALENDAR_RANGE_CLASS = \"dx-calendar-range\";\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar CALENDAR_DXHOVEREND_EVENT_NAME = addNamespace(hoverEndEventName, \"dxCalendar\");\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\nvar SELECTION_STRATEGIES = {\r\n SingleSelection: CalendarSingleSelectionStrategy,\r\n MultipleSelection: CalendarMultipleSelectionStrategy,\r\n RangeSelection: CalendarRangeSelectionStrategy\r\n};\r\nvar Calendar = Editor.inherit({\r\n _activeStateUnit: \".\".concat(CALENDAR_CELL_CLASS),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n viewsCount: 1,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n selectionMode: \"single\",\r\n selectWeekOnClick: true,\r\n showTodayButton: false,\r\n showWeekNumbers: false,\r\n weekNumberRule: \"auto\",\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n skipFocusCheck: false,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n rightArrow(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateUp()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateDown()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, min) ? min : dateUtils.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, max) ? max : dateUtils.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: noop,\r\n enter: this._enterKeyHandler\r\n })\r\n },\r\n _enterKeyHandler(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._selectionStrategy.selectValue(value, e)\r\n }\r\n },\r\n _getSerializationFormat(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: value => dateSerialization.deserializeDate(value),\r\n _dateValue(value, event) {\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(\"value\", value)\r\n },\r\n _dateOption(optionName, optionValue) {\r\n var isArray = \"value\" === optionName && !this._isSingleMode();\r\n var value = this.option(\"value\");\r\n if (1 === arguments.length) {\r\n return isArray ? (null !== value && void 0 !== value ? value : []).map(value => this._convertToDate(value)) : this._convertToDate(this.option(optionName))\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n var serializedValue = isArray ? (null === optionValue || void 0 === optionValue ? void 0 : optionValue.map(value => dateSerialization.serializeDate(value, serializationFormat))) || [] : dateSerialization.serializeDate(optionValue, serializationFormat);\r\n this.option(optionName, serializedValue)\r\n },\r\n _isSingleMode() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _shiftDate(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = inRange(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (!this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = inRange(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n var direction = offset > 0 ? 1 : -1;\r\n var isViewDisabled = 1 === direction ? this._isNextViewDisabled() : this._isPrevViewDisabled();\r\n if (!isViewDisabled) {\r\n this._waitRenderView(direction)\r\n } else {\r\n this._moveToClosestAvailableDate(currentDate)\r\n }\r\n } else {\r\n this._skipNavigate = true;\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _isNextViewDisabled() {\r\n return this._navigator._nextButton.option(\"disabled\")\r\n },\r\n _isPrevViewDisabled() {\r\n return this._navigator._prevButton.option(\"disabled\")\r\n },\r\n _areDatesInSameView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return (a = date1.getMonth(), b = date2.getMonth(), abs = Math.abs(a - b), Math.min(abs, 12 - abs)) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n var a, b, abs\r\n },\r\n _moveToClosestAvailableDate() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = new Date(currentDate);\r\n var dateBackward = new Date(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !inRange(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initSelectionStrategy();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _initSelectionStrategy() {\r\n var strategyName = this._getSelectionStrategyName();\r\n var strategy = SELECTION_STRATEGIES[strategyName];\r\n if (!this._selectionStrategy || this._selectionStrategy.NAME !== strategyName) {\r\n this._selectionStrategy = new strategy(this)\r\n }\r\n },\r\n _refreshSelectionStrategy() {\r\n this._initSelectionStrategy();\r\n this._selectionStrategy.restoreValue();\r\n this._refresh()\r\n },\r\n _getSelectionStrategyName() {\r\n var selectionMode = this.option(\"selectionMode\");\r\n switch (selectionMode) {\r\n case \"multiple\":\r\n return \"MultipleSelection\";\r\n case \"range\":\r\n return \"RangeSelection\";\r\n default:\r\n return \"SingleSelection\"\r\n }\r\n },\r\n _correctZoomLevel() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n },\r\n _initCurrentDate() {\r\n var _a;\r\n var currentDate = null !== (_a = this._getNormalizedDate(this._selectionStrategy.getDefaultCurrentDate())) && void 0 !== _a ? _a : this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate(date) {\r\n date = dateUtils.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return isDefined(date) ? this._getDate(date) : date\r\n },\r\n _initActions() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new FunctionTemplate(options => {\r\n var data = options.model;\r\n $(options.container).append($(\"<span>\").text(data && data.text || String(data)))\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate(date) {\r\n if (fx.isAnimating(this._$viewsWrapper)) {\r\n fx.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", new Date(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n if (this._additionalView) {\r\n if (offset > 2 || offset < -1) {\r\n this._refreshViews();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate);\r\n this._renderNavigator()\r\n } else if (1 === offset && this._skipNavigate) {\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n } else {\r\n this._navigate(offset, normalizedDate)\r\n }\r\n } else {\r\n this._navigate(offset, normalizedDate)\r\n }\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n this._skipNavigate = false\r\n },\r\n _isAdditionalViewDate(date) {\r\n if (!this._additionalView) {\r\n return false\r\n }\r\n return date >= this._additionalView._getFirstAvailableDate()\r\n },\r\n _getActiveView(date) {\r\n return this._isAdditionalViewDate(date) ? this._additionalView : this._view\r\n },\r\n _setViewContoured(date) {\r\n var _a;\r\n if (this.option(\"skipFocusCheck\") || $(this._$viewsWrapper).is(\":focus\")) {\r\n this._view.option(\"contouredDate\", null);\r\n null === (_a = this._additionalView) || void 0 === _a ? void 0 : _a.option(\"contouredDate\", null);\r\n var view = this._isAdditionalViewDate(date) ? this._additionalView : this._view;\r\n view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate() {\r\n var _rangeMin = this.option(\"_rangeMin\");\r\n if (_rangeMin) {\r\n return _rangeMin\r\n }\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate() {\r\n var _rangeMax = this.option(\"_rangeMax\");\r\n if (_rangeMax) {\r\n return _rangeMax\r\n }\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView(offset) {\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(() => {\r\n this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset(offset, date) {\r\n date = this._getDate(null !== date && void 0 !== date ? date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = dateUtils.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = dateUtils.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget() {\r\n return this._$viewsWrapper\r\n },\r\n _focusEventTarget() {\r\n return this.$element()\r\n },\r\n _initMarkup() {\r\n this._renderSubmitElement();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n $element.toggleClass(CALENDAR_RANGE_CLASS, \"range\" === this.option(\"selectionMode\"));\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderNavigator();\r\n this.callBase();\r\n this._renderEvents();\r\n $element.prepend(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._selectionStrategy.updateAriaSelected();\r\n this._updateAriaId();\r\n this._updateNavigatorLabels();\r\n this.setAria(\"role\", \"application\");\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = $(\"<div>\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = $(\"<div>\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews() {\r\n this.$element().addClass(\"\".concat(CALENDAR_VIEW_CLASS, \"-\").concat(this.option(\"zoomLevel\")));\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.option();\r\n this.$element().toggleClass(CALENDAR_MULTIVIEW_CLASS, viewsCount > 1);\r\n this._view = this._renderSpecificView(currentDate);\r\n if (hasWindow()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(viewsCount, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n if (viewsCount > 1) {\r\n this._additionalView = this._renderSpecificView(this._getDateByOffset(1, currentDate))\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView(date) {\r\n var {\r\n zoomLevel: zoomLevel\r\n } = this.option();\r\n var specificView = Views[zoomLevel];\r\n var $view = $(\"<div>\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n var view = this._createComponent($view, specificView, config);\r\n return view\r\n },\r\n _viewConfig(date) {\r\n var _a;\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return _extends(_extends({}, this._selectionStrategy.getViewOptions()), {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: null !== (_a = this.option(\"firstDayOfWeek\")) && void 0 !== _a ? _a : dateLocalization.firstDayOfWeekIndex(),\r\n showWeekNumbers: this.option(\"showWeekNumbers\"),\r\n selectWeekOnClick: this.option(\"selectWeekOnClick\"),\r\n weekNumberRule: this.option(\"weekNumberRule\"),\r\n zoomLevel: this.option(\"zoomLevel\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n })\r\n },\r\n _renderEvents() {\r\n eventsEngine.off(this._$viewsWrapper, CALENDAR_DXHOVEREND_EVENT_NAME);\r\n if (\"range\" === this.option(\"selectionMode\")) {\r\n eventsEngine.on(this._$viewsWrapper, CALENDAR_DXHOVEREND_EVENT_NAME, null, () => {\r\n this._updateViewsOption(\"hoveredRange\", [])\r\n })\r\n }\r\n },\r\n _injectComponent(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = dateUtils.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = dateUtils.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return dateUtils.dateInRange(date, min, max)\r\n },\r\n _translateViews() {\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n move(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._moveViewElement(this._beforeView, -1);\r\n this._moveViewElement(this._afterView, viewsCount);\r\n this._moveViewElement(this._additionalView, 1)\r\n },\r\n _moveViewElement(view, coefficient) {\r\n view && move(view.$element(), {\r\n left: this._getViewPosition(coefficient),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n return \"\".concat(100 * coefficient * rtlCorrection, \"%\")\r\n },\r\n _cellClickHandler(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._selectionStrategy.selectValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent(date) {\r\n var result = new Date(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue && this._isSingleMode()) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = $(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator() {\r\n if (!this._navigator) {\r\n this._navigator = new Navigator($(\"<div>\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._getViewsCaption(this._view, this._additionalView));\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return {\r\n text: this._getViewsCaption(this._view, this._additionalView),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n focusStateEnabled: focusStateEnabled,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: void 0\r\n }\r\n },\r\n _navigatorClickHandler(e) {\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.option();\r\n var offset = e.direction;\r\n if (viewsCount > 1) {\r\n var additionalViewActive = this._isAdditionalViewDate(currentDate);\r\n var shouldDoubleOffset = additionalViewActive && offset < 0 || !additionalViewActive && offset > 0;\r\n if (shouldDoubleOffset) {\r\n offset *= 2\r\n }\r\n }\r\n var newCurrentDate = this._getDateByOffset(offset, currentDate);\r\n this._moveToClosestAvailableDate(newCurrentDate)\r\n },\r\n _navigateUp() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return dateUtils.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility() {\r\n this._navigator.toggleButton(\"next\", !isDefined(this._afterView));\r\n this._navigator.toggleButton(\"prev\", !isDefined(this._beforeView))\r\n },\r\n _renderSwipeable() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), Swipeable, {\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler(e) {\r\n fx.stop(this._$viewsWrapper, true);\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n this._toggleGestureCoverCursor(\"grabbing\");\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 / viewsCount : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 / viewsCount : 0\r\n },\r\n _toggleGestureCoverCursor(cursor) {\r\n $(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", cursor)\r\n },\r\n _getRequiredView(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler(e) {\r\n var {\r\n offset: offset\r\n } = e.event;\r\n move(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler(e) {\r\n this._toggleGestureCoverCursor(\"auto\");\r\n var {\r\n currentDate: currentDate,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var {\r\n targetOffset: targetOffset\r\n } = e.event;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n var isAdditionalViewActive = this._isAdditionalViewDate(currentDate);\r\n var shouldDoubleOffset = isAdditionalViewActive && (rtlEnabled ? -1 === moveOffset : 1 === moveOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var offset = -moveOffset * this._getRtlCorrection() * (shouldDoubleOffset ? 2 : 1);\r\n var date = this._getDateByOffset(offset);\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = getWidth(this.$element()) / this.option(\"viewsCount\")\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption(offset) {\r\n offset *= this._getRtlCorrection();\r\n var isMultiView = this.option(\"viewsCount\") > 1;\r\n var view;\r\n var additionalView;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView;\r\n additionalView = isMultiView && this._view\r\n } else if (offset < -.5 && this._afterView) {\r\n view = isMultiView ? this._additionalView : this._afterView;\r\n additionalView = isMultiView ? this._afterView : null\r\n } else {\r\n view = this._view;\r\n additionalView = isMultiView ? this._additionalView : null\r\n }\r\n this._navigator.option(\"text\", this._getViewsCaption(view, additionalView))\r\n },\r\n _getViewsCaption(view, additionalView) {\r\n var caption = view.getNavigatorCaption();\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n if (viewsCount > 1 && additionalView) {\r\n var additionalViewCaption = additionalView.getNavigatorCaption();\r\n caption = \"\".concat(caption, \" - \").concat(additionalViewCaption)\r\n }\r\n return caption\r\n },\r\n _isDateInInvalidRange(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = dateUtils.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n onClick: args => {\r\n this._toTodayView(args)\r\n },\r\n type: isFluent() ? \"normal\" : \"default\",\r\n stylingMode: isFluent() ? \"outlined\" : \"text\",\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = $(\"<div>\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(dateSerialization.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement() {\r\n return this._$submitElement\r\n },\r\n _animateShowView() {\r\n fx.stop(this._view.$element(), true);\r\n this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW);\r\n if (this.option(\"viewsCount\") > 1) {\r\n fx.stop(this._additionalView.$element(), true);\r\n this._popAnimationView(this._additionalView, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW)\r\n }\r\n },\r\n _popAnimationView: (view, from, to, duration) => fx.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n }),\r\n _navigate(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper(to, duration) {\r\n return fx.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate: value => new Date(value),\r\n _toTodayView(args) {\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._selectionStrategy.selectValue(today, args.event);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._selectionStrategy.selectValue(today, args.event);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate);\r\n this._selectionStrategy.updateAriaSelected()\r\n },\r\n _rearrangeViews(offset) {\r\n var _a;\r\n if (0 === offset) {\r\n return\r\n }\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n var viewBeforeCreateKey;\r\n var viewAfterRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\";\r\n viewBeforeCreateKey = \"_view\";\r\n viewAfterRemoveKey = 1 === viewsCount ? \"_view\" : \"_additionalView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\";\r\n viewBeforeCreateKey = 1 === viewsCount ? \"_view\" : \"_additionalView\";\r\n viewAfterRemoveKey = \"_view\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n null === (_a = this[viewToRemoveKey]) || void 0 === _a ? void 0 : _a.$element().remove();\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset * viewsCount, destinationDate));\r\n this[viewAfterRemoveKey].$element().remove();\r\n if (1 === viewsCount) {\r\n this[viewAfterRemoveKey] = this[viewToCreateKey]\r\n } else {\r\n this[viewAfterRemoveKey] = this[viewBeforeCreateKey];\r\n this[viewBeforeCreateKey] = this[viewToCreateKey]\r\n }\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation() {\r\n move(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._additionalView && this._additionalView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._additionalView;\r\n delete this._beforeView;\r\n delete this._afterView;\r\n delete this._skipNavigate\r\n },\r\n _dispose() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews() {\r\n this._resetActiveState();\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged() {\r\n this._translateViews()\r\n },\r\n _shouldSkipFocusEvent(event) {\r\n var {\r\n target: target,\r\n relatedTarget: relatedTarget\r\n } = event;\r\n return $(target).parents(\".\".concat(CALENDAR_CLASS)).length && $(relatedTarget).parents(\".\".concat(CALENDAR_CLASS)).length\r\n },\r\n _focusInHandler(event) {\r\n if ($(event.target).is(this._$viewsWrapper)) {\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n }\r\n if (this._shouldSkipFocusEvent(event)) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._toggleFocusClass(true, this.$element())\r\n },\r\n _focusOutHandler(event) {\r\n var _a;\r\n if ($(event.target).is(this._$viewsWrapper)) {\r\n this._view.option(\"contouredDate\", null);\r\n null === (_a = this._additionalView) || void 0 === _a ? void 0 : _a.option(\"contouredDate\", null)\r\n }\r\n if (this._shouldSkipFocusEvent(event)) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._toggleFocusClass(false, this.$element())\r\n },\r\n _updateViewsOption(optionName, newValue) {\r\n var _a, _b, _c;\r\n this._view.option(optionName, newValue);\r\n null === (_a = this._additionalView) || void 0 === _a ? void 0 : _a.option(optionName, newValue);\r\n null === (_b = this._beforeView) || void 0 === _b ? void 0 : _b.option(optionName, newValue);\r\n null === (_c = this._afterView) || void 0 === _c ? void 0 : _c.option(optionName, newValue)\r\n },\r\n _setViewsMinOption(min) {\r\n this._restoreViewsMinMaxOptions();\r\n this.option(\"_rangeMin\", this._convertToDate(min));\r\n this._updateViewsOption(\"min\", this._getMinDate())\r\n },\r\n _setViewsMaxOption(max) {\r\n this._restoreViewsMinMaxOptions();\r\n this.option(\"_rangeMax\", this._convertToDate(max));\r\n this._updateViewsOption(\"max\", this._getMaxDate())\r\n },\r\n _restoreViewsMinMaxOptions() {\r\n this._resetActiveState();\r\n this.option({\r\n _rangeMin: null,\r\n _rangeMax: null\r\n });\r\n this._updateViewsOption(\"min\", this._getMinDate());\r\n this._updateViewsOption(\"max\", this._getMaxDate())\r\n },\r\n _updateNavigatorLabels() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n zoomLevel = zoomLevel.charAt(0).toUpperCase() + zoomLevel.slice(1);\r\n var captionButtonText = this._navigator._caption.option(\"text\");\r\n var localizedPrevButtonLabel = messageLocalization.format(\"dxCalendar-previous\".concat(zoomLevel, \"ButtonLabel\"));\r\n var localizedCaptionLabel = messageLocalization.format(\"dxCalendar-caption\".concat(zoomLevel, \"Label\"));\r\n var localizedNextButtonLabel = messageLocalization.format(\"dxCalendar-next\".concat(zoomLevel, \"ButtonLabel\"));\r\n this.setAria(\"label\", localizedPrevButtonLabel, this._navigator._prevButton.$element());\r\n this.setAria(\"label\", \"\".concat(captionButtonText, \". \").concat(localizedCaptionLabel), this._navigator._caption.$element());\r\n this.setAria(\"label\", localizedNextButtonLabel, this._navigator._nextButton.$element())\r\n },\r\n _updateAriaSelected(value, previousValue) {\r\n previousValue.forEach(item => {\r\n this.setAria(\"selected\", void 0, this._view._getCellByDate(item))\r\n });\r\n value.forEach(item => {\r\n this.setAria(\"selected\", true, this._view._getCellByDate(item))\r\n });\r\n if (this.option(\"viewsCount\") > 1) {\r\n previousValue.forEach(item => {\r\n this.setAria(\"selected\", void 0, this._additionalView._getCellByDate(item))\r\n });\r\n value.forEach(item => {\r\n this.setAria(\"selected\", true, this._additionalView._getCellByDate(item))\r\n })\r\n }\r\n },\r\n _updateAriaId(value) {\r\n value = null !== value && void 0 !== value ? value : this.option(\"currentDate\");\r\n var ariaId = \"dx-\".concat(new Guid);\r\n var view = this._getActiveView(value);\r\n var $newCell = view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged(args) {\r\n var {\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"selectionMode\":\r\n this._refreshSelectionStrategy();\r\n this._initCurrentDate();\r\n break;\r\n case \"selectWeekOnClick\":\r\n this._refreshViews();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"focusStateEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(\"\".concat(CALENDAR_VIEW_CLASS, \"-\").concat(previousValue));\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n this._updateNavigatorLabels();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n this._selectionStrategy.processValueChanged(value, previousValue);\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"viewsCount\":\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"skipFocusCheck\":\r\n break;\r\n case \"_todayDate\":\r\n case \"showWeekNumbers\":\r\n case \"weekNumberRule\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getContouredDate() {\r\n return this._view.option(\"contouredDate\")\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nvar {\r\n abstract: abstract\r\n} = Class;\r\nvar DateBoxStrategy = Class.inherit({\r\n ctor(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget(element) {\r\n element = element || $(\"<div>\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: () => ({\r\n mode: \"text\"\r\n }),\r\n getDisplayFormat: abstract,\r\n supportedKeys: noop,\r\n getKeyboardListener: noop,\r\n customizeButtons: noop,\r\n getParsedText(text, format) {\r\n var value = dateLocalization.parse(text, format);\r\n return value || dateLocalization.parse(text)\r\n },\r\n renderInputMinMax: noop,\r\n renderOpenedState() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged() {\r\n var _a;\r\n null === (_a = this._getPopup()) || void 0 === _a ? void 0 : _a.repaint()\r\n },\r\n renderPopupContent() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n eventsEngine.off($popupContent, \"mousedown\");\r\n eventsEngine.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n _preventFocusOnPopup(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: noop,\r\n popupHiddenHandler: noop,\r\n _updateValue() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: noop,\r\n getDefaultDate: () => new Date,\r\n textChangedHandler: noop,\r\n renderValue() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: () => false,\r\n dispose() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n }\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n});\r\nexport default DateBoxStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.calendar.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n splitPair\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isEmptyObject,\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Calendar from \"../../../ui/calendar\";\r\nimport {\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport DateBoxStrategy from \"./m_date_box.strategy\";\r\nvar TODAY_BUTTON_CLASS = \"dx-button-today\";\r\nvar CalendarStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Calendar\",\r\n getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n todayButtonText: messageLocalization.format(\"dxCalendar-todayButtonText\")\r\n })\r\n },\r\n supportedKeys() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n var shouldCloseDropDown = this._closeDropDownByEnter();\r\n if (shouldCloseDropDown && viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n shouldCloseDropDown && this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e);\r\n return !shouldCloseDropDown\r\n }\r\n return true\r\n }\r\n this.dateBox._valueChangeEventHandler(e)\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: displayFormat => displayFormat || \"shortdate\",\r\n _closeDropDownByEnter: () => true,\r\n _getWidgetName: () => Calendar,\r\n _getContouredValue() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _getWidgetOptions() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return extend(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n selectionMode: \"single\",\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n disabledDates: isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n skipFocusCheck: true\r\n })\r\n },\r\n _injectComponent(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _getTodayButtonConfig() {\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var isButtonsLocationDefault = \"default\" === buttonsLocation;\r\n var position = isButtonsLocationDefault ? [\"bottom\", \"center\"] : splitPair(buttonsLocation);\r\n var stylingMode = isMaterial() ? \"text\" : \"outlined\";\r\n return {\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onClick: args => {\r\n this._widget._toTodayView(args)\r\n },\r\n text: this.dateBox.option(\"todayButtonText\"),\r\n elementAttr: {\r\n class: TODAY_BUTTON_CLASS\r\n },\r\n stylingMode: stylingMode\r\n }\r\n }\r\n },\r\n _isCalendarVisible() {\r\n var {\r\n calendarOptions: calendarOptions\r\n } = this.dateBox.option();\r\n return isEmptyObject(calendarOptions) || false !== calendarOptions.visible\r\n },\r\n _getPopupToolbarItems(toolbarItems) {\r\n var useButtons = \"useButtons\" === this.dateBox.option(\"applyValueMode\");\r\n var shouldRenderTodayButton = useButtons && this._isCalendarVisible();\r\n if (shouldRenderTodayButton) {\r\n var todayButton = this._getTodayButtonConfig();\r\n return [todayButton, ...toolbarItems]\r\n }\r\n return toolbarItems\r\n },\r\n popupConfig: popupConfig => extend(true, popupConfig, {\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n }),\r\n _valueChangedHandler(e) {\r\n var {\r\n value: value\r\n } = e;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue) && dateUtils.sameHoursAndMinutes(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === this.dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler(e) {\r\n var {\r\n dateBox: dateBox\r\n } = this;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nexport default CalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n dasherize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n normalizeStyleProp,\r\n setStyle,\r\n styleProp,\r\n stylePropPrefix\r\n} from \"../../core/utils/style\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.edit\";\r\nimport CollectionWidgetItem from \"../ui/collection/m_item\";\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_FLEX_CLASS = \"dx-box-flex\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar SHRINK = 1;\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = (element, prop, value) => {\r\n value = normalizeStyleProp(prop, value);\r\n element.style[styleProp(prop)] = value;\r\n if (!hasWindow()) {\r\n if (\"\" === value || !isDefined(value)) {\r\n return\r\n }\r\n var cssName = dasherize(prop);\r\n var styleExpr = \"\".concat(cssName, \": \").concat(value, \";\");\r\n setStyle(element, styleExpr, false)\r\n }\r\n};\r\nclass BoxItem extends CollectionWidgetItem {\r\n _renderVisible(value, oldValue) {\r\n super._renderVisible(value);\r\n if (isDefined(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n }\r\n}\r\nclass LayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n display: \"\".concat(stylePropPrefix(\"flexDirection\"), \"flex\")\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n }\r\n renderAlign() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n }\r\n _normalizedAlign() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n }\r\n renderCrossAlign() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n }\r\n _normalizedCrossAlign() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n }\r\n renderItems($items) {\r\n var flexPropPrefix = stylePropPrefix(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n each($items, (function() {\r\n var $item = $(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: \"\".concat(flexPropPrefix, \"flex\")\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", isDefined(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each((_, itemContent) => {\r\n $(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: \"\".concat(stylePropPrefix(\"flexDirection\"), \"flex\"),\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", $(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n }))\r\n }\r\n}\r\nclass Box extends CollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _queue: void 0\r\n })\r\n }\r\n _itemClass() {\r\n return BOX_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return BOX_ITEM_DATA_KEY\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(BOX_FLEX_CLASS);\r\n this._initLayout();\r\n this._initBoxQueue()\r\n }\r\n _initLayout() {\r\n this._layout = new LayoutStrategy(this.$element(), this.option.bind(this))\r\n }\r\n _initBoxQueue() {\r\n this._queue = this.option(\"_queue\") || []\r\n }\r\n _queueIsNotEmpty() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n }\r\n _pushItemToQueue($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n }\r\n _shiftItemFromQueue() {\r\n return this._queue.shift()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n super._initMarkup();\r\n this._renderAlign();\r\n this._renderActions()\r\n }\r\n _renderActions() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n }\r\n _renderAlign() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n }\r\n _renderItems(items) {\r\n super._renderItems(items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, extend({\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements())\r\n }\r\n _renderItemContent(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return super._renderItemContent(args)\r\n }\r\n _postprocessRenderItem(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n }\r\n _createItemByTemplate(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : $()\r\n }\r\n return super._createItemByTemplate(itemTemplate, args)\r\n }\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _itemOptions() {\r\n var options = super._itemOptions();\r\n options.fireItemStateChangedAction = e => {\r\n this._onItemStateChanged(e)\r\n };\r\n return options\r\n }\r\n}\r\nBox.ItemClass = BoxItem;\r\nregisterComponent(\"dxBox\", Box);\r\nexport default Box;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDate\r\n} from \"../../../core/utils/type\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = typeof format;\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: () => \"yyyy-MM-dd\",\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: () => \"HH:mm\",\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern() {\r\n var standardPattern;\r\n ! function() {\r\n var $input = $(\"<input>\").attr(\"type\", \"datetime\");\r\n $input.val(\"2000-01-01T01:01Z\");\r\n if ($input.val()) {\r\n standardPattern = \"yyyy-MM-ddTHH:mmZ\"\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [...DATE_COMPONENTS, ...TIME_COMPONENTS]\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: () => \"yyyy-MM-ddTHH:mm:ss\",\r\n components: [...DATE_COMPONENTS, \"hours\", \"minutes\", \"seconds\"]\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return dateSerialization.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat(text) {\r\n var date = dateSerialization.dateParser(text);\r\n return isDate(date) ? date : void 0\r\n },\r\n getMaxMonthDay: (year, month) => new Date(year, month + 1, 0).getDate(),\r\n mergeDates(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n each(formatInfo.components, (function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n }));\r\n return result\r\n },\r\n getLongestCaptionIndex(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: format => dateLocalization.formatUsesMonthName(format),\r\n formatUsesDayName: format => dateLocalization.formatUsesDayName(format),\r\n getLongestDate(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return dateLocalization.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return dateLocalization.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: value => dateLocalization.getMonthNames()[value],\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: value => dateLocalization.format(new Date(0, 0, 0, value), \"hour\"),\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: value => dateLocalization.format(new Date(0, 0, 0, 0, value), \"minute\"),\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: value => dateLocalization.format(new Date(0, 0, 0, 0, 0, value), \"second\"),\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: value => dateLocalization.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\"),\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_time_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport Box from \"../../../ui/box\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport NumberBox from \"../../../ui/number_box\";\r\nimport SelectBox from \"../../../ui/select_box\";\r\nimport dateUtils from \"./m_date_utils\";\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\".concat(angle, \"deg)\") + \" translate(0,\".concat(offset, \"px)\"))\r\n};\r\nvar TimeView = Editor.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 5,\r\n stylingMode: void 0\r\n })\r\n },\r\n _getValue() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox() {\r\n var $box = $(\"<div>\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock(_, __, container) {\r\n this._$hourArrow = $(\"<div>\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = $(\"<div>\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = $(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems(is12HourFormat) {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._hourBox.$element()\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: $(\"<div>\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(dateLocalization.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._minuteBox.$element()\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._format12.$element()\r\n })\r\n }\r\n return items\r\n },\r\n _renderField() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent($(\"<div>\").addClass(TIMEVIEW_FIELD_CLASS), Box, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox(is12HourFormat) {\r\n var editor = this._hourBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged(_ref) {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n dateUtils.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox() {\r\n var editor = this._minuteBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref2;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(this._getValue());\r\n time.setMinutes(newMinutes);\r\n dateUtils.normalizeTime(time);\r\n this.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box() {\r\n var periodNames = dateLocalization.getPeriodNames();\r\n var editor = this._format12 = this._createComponent($(\"<div>\").addClass(TIMEVIEW_FORMAT12_CLASS), SelectBox, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n var hours = this._getValue().getHours();\r\n var time = new Date(this._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n this.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: value => (value < 10 ? \"0\" : \"\") + value,\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTimeView\", TimeView);\r\nexport default TimeView;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.calendar_with_time.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport Box from \"../../../ui/box\";\r\nimport CalendarStrategy from \"./m_date_box.strategy.calendar\";\r\nimport uiDateUtils from \"./m_date_utils\";\r\nimport TimeView from \"./m_time_view\";\r\nvar window = getWindow();\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar DATEBOX_TIMEVIEW_SIDE_CLASS = \"dx-datebox-datetime-time-side\";\r\nvar CalendarWithTimeStrategy = CalendarStrategy.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n _closeDropDownByEnter() {\r\n return dateUtils.sameDate(this._getContouredValue(), this.widgetOption(\"value\"))\r\n },\r\n getDisplayFormat: displayFormat => displayFormat || \"shortdateshorttime\",\r\n _is24HourFormat() {\r\n return dateLocalization.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent($(\"<div>\"), TimeView, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n })\r\n },\r\n renderOpenedState() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(() => {\r\n this._getPopup() && this._getPopup().repaint()\r\n }, 0)\r\n },\r\n isAdaptivityChanged() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n uiDateUtils.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: () => getWidth(window) <= SHRINK_VIEW_SCREEN_WIDTH,\r\n _isShrinkView() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent($(\"<div>\").appendTo($popupContent), Box, {\r\n direction: \"row\",\r\n crossAlign: \"stretch\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data, i, element) {\r\n var $container = $(\"<div>\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n this._timeView.$element().addClass(DATEBOX_TIMEVIEW_SIDE_CLASS);\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element());\r\n $(element).addClass(DATEBOX_TIMEVIEW_SIDE_CLASS)\r\n }\r\n return $container\r\n }.bind(this)\r\n })\r\n },\r\n popupConfig(popupConfig) {\r\n var calendarPopupConfig = this.callBase(popupConfig);\r\n return extend(calendarPopupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n _preventFocusOnPopup(e) {\r\n if (!$(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue() {\r\n var _a;\r\n var date = null !== (_a = this._widget.option(\"value\")) && void 0 !== _a ? _a : this._widget.getContouredDate();\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nexport default CalendarWithTimeStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/scroll_direction.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DIRECTION_VERTICAL,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_BOTH\r\n} from \"../common/consts\";\r\nexport class ScrollDirection {\r\n constructor(direction) {\r\n this.DIRECTION_HORIZONTAL = \"horizontal\";\r\n this.DIRECTION_VERTICAL = \"vertical\";\r\n this.DIRECTION_BOTH = \"both\";\r\n this.direction = null !== direction && void 0 !== direction ? direction : DIRECTION_VERTICAL\r\n }\r\n get isHorizontal() {\r\n return this.direction === DIRECTION_HORIZONTAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isVertical() {\r\n return this.direction === DIRECTION_VERTICAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isBoth() {\r\n return this.direction === DIRECTION_BOTH\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/convert_location.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function convertToLocation(location, direction) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? left : void 0,\r\n top: isDefined(top) ? top : void 0\r\n }\r\n }\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n return {\r\n left: isHorizontal && isDefined(location) ? location : void 0,\r\n top: isVertical && isDefined(location) ? location : void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_view_roller.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../../animation/translator\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n convertToLocation\r\n} from \"../../../renovation/ui/scroll_view/utils/convert_location\";\r\nimport Scrollable from \"../scroll_view/m_scrollable\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nclass DateViewRoller extends Scrollable {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showScrollbar: \"never\",\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null,\r\n scrollByContent: true\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.option(\"onVisibilityChange\", this._visibilityChangedHandler.bind(this));\r\n this.option(\"onEnd\", this._endActionHandler.bind(this))\r\n }\r\n _render() {\r\n super._render();\r\n this._renderSelectedItemFrame();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._renderSelectedIndexChanged()\r\n }\r\n _renderSelectedIndexChanged() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n }\r\n _renderWheelEvent() {\r\n eventsEngine.on($(this.container()), \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n }\r\n _renderContainerClick() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off($(this.container()), eventName);\r\n eventsEngine.on($(this.container()), eventName, e => {\r\n clickAction({\r\n event: e\r\n })\r\n })\r\n }\r\n _renderItems() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n $(this.content()).empty();\r\n items.forEach(item => {\r\n $items = $items.add($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n });\r\n $(this.content()).append($items);\r\n this._$items = $items;\r\n this.update()\r\n }\r\n _renderSelectedItemFrame() {\r\n $(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo($(this.container()))\r\n }\r\n _renderSelectedValue(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n }\r\n _fitIndex(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n }\r\n _getItemPosition(index) {\r\n return Math.round(this._itemHeight() * index)\r\n }\r\n _renderItemsClick() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n }\r\n _getItemSelector() {\r\n return \".\".concat(DATEVIEW_ROLLER_ITEM_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n }\r\n _itemElementIndex(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n }\r\n _itemElements() {\r\n return this.$element().find(this._getItemSelector())\r\n }\r\n _renderActiveStateItem() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n }\r\n _shouldScrollToNeighborItem() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n }\r\n _moveTo(targetLocation) {\r\n var {\r\n top: top,\r\n left: left\r\n } = convertToLocation(targetLocation);\r\n var location = this.scrollOffset();\r\n var delta = {\r\n x: location.left - left,\r\n y: location.top - top\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop($(this.content()));\r\n fx.animate($(this.content()), {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete() {\r\n resetPosition($(that.content()));\r\n that.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n }\r\n _validate(e) {\r\n return this._moveIsAllowed(e)\r\n }\r\n _fitSelectedIndexInRange(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n }\r\n _isInNullNeighborhood(x) {\r\n return -.1 <= x && x <= .1\r\n }\r\n _getSelectedIndexAfterScroll(currentSelectedIndex) {\r\n var locationTop = this.scrollOffset().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n }\r\n _getNewSelectedIndex(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = this.scrollOffset().top / this._itemHeight();\r\n return Math.round(ratio)\r\n }\r\n _endActionHandler() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n }\r\n _itemHeight() {\r\n var $item = this._$items.first();\r\n return getHeight($item)\r\n }\r\n _toggleActive(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n }\r\n _isVisible() {\r\n return $(this.container()).is(\":visible\")\r\n }\r\n _fireSelectedIndexChanged(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n super._visibilityChanged(visible);\r\n this._visibilityChangedHandler(visible)\r\n }\r\n _visibilityChangedHandler(visible) {\r\n if (visible) {\r\n this._visibilityTimer = setTimeout(() => {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n })\r\n }\r\n this.toggleActiveState(false)\r\n }\r\n toggleActiveState(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n }\r\n _refreshSelectedIndex() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._visibilityTimer);\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport uiDateUtils from \"./m_date_utils\";\r\nimport DateViewRoller from \"./m_date_view_roller\";\r\nvar DATEVIEW_CLASS = \"dx-dateview\";\r\nvar DATEVIEW_COMPACT_CLASS = \"dx-dateview-compact\";\r\nvar DATEVIEW_WRAPPER_CLASS = \"dx-dateview-wrapper\";\r\nvar DATEVIEW_ROLLER_CONTAINER_CLASS = \"dx-dateview-rollers\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar ROLLER_TYPE = {\r\n year: \"year\",\r\n month: \"month\",\r\n day: \"day\",\r\n hours: \"hours\"\r\n};\r\nvar DateView = Editor.inherit({\r\n _valueOption() {\r\n var value = this.option(\"value\");\r\n var date = new Date(value);\r\n return !value || isNaN(date) ? this._getDefaultDate() : date\r\n },\r\n _getDefaultDate() {\r\n var date = new Date;\r\n if (this.option(\"type\") === TYPE.date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n }\r\n return date\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n minDate: uiDateUtils.MIN_DATEVIEW_DEFAULT_DATE,\r\n maxDate: uiDateUtils.MAX_DATEVIEW_DEFAULT_DATE,\r\n type: TYPE.date,\r\n value: new Date,\r\n applyCompactClass: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: device => \"desktop\" !== device.deviceType,\r\n options: {\r\n applyCompactClass: true\r\n }\r\n }])\r\n },\r\n _render() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_CLASS);\r\n this._toggleFormatClasses(this.option(\"type\"));\r\n this._toggleCompactClass()\r\n },\r\n _toggleFormatClasses(currentFormat, previousFormat) {\r\n this.$element().addClass(\"\".concat(DATEVIEW_CLASS, \"-\").concat(currentFormat));\r\n previousFormat && this.$element().removeClass(\"\".concat(DATEVIEW_CLASS, \"-\").concat(previousFormat))\r\n },\r\n _toggleCompactClass() {\r\n this.$element().toggleClass(DATEVIEW_COMPACT_CLASS, this.option(\"applyCompactClass\"))\r\n },\r\n _wrapper() {\r\n return this._$wrapper\r\n },\r\n _renderContentImpl() {\r\n this._$wrapper = $(\"<div>\").addClass(DATEVIEW_WRAPPER_CLASS);\r\n this._renderRollers();\r\n this._$wrapper.appendTo(this.$element())\r\n },\r\n _renderRollers() {\r\n if (!this._$rollersContainer) {\r\n this._$rollersContainer = $(\"<div>\").addClass(DATEVIEW_ROLLER_CONTAINER_CLASS)\r\n }\r\n this._$rollersContainer.empty();\r\n this._createRollerConfigs();\r\n this._rollers = {};\r\n var that = this;\r\n each(that._rollerConfigs, name => {\r\n var $roller = $(\"<div>\").appendTo(that._$rollersContainer).addClass(\"\".concat(DATEVIEW_ROLLER_CLASS, \"-\").concat(that._rollerConfigs[name].type));\r\n that._rollers[that._rollerConfigs[name].type] = that._createComponent($roller, DateViewRoller, {\r\n items: that._rollerConfigs[name].displayItems,\r\n selectedIndex: that._rollerConfigs[name].selectedIndex,\r\n showScrollbar: \"never\",\r\n scrollByContent: true,\r\n onStart(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n },\r\n onEnd(e) {\r\n var roller = e.component;\r\n roller._toggleActive(false)\r\n },\r\n onClick(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n roller._toggleActive(false)\r\n },\r\n onSelectedIndexChanged(e) {\r\n var roller = e.component;\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n }\r\n })\r\n });\r\n that._$rollersContainer.appendTo(that._wrapper())\r\n },\r\n _createRollerConfigs(type) {\r\n var that = this;\r\n type = type || that.option(\"type\");\r\n that._rollerConfigs = {};\r\n dateLocalization.getFormatParts(uiDateUtils.FORMATS_MAP[type]).forEach(partName => {\r\n that._createRollerConfig(partName)\r\n })\r\n },\r\n _createRollerConfig(componentName) {\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var valueRange = this._calculateRollerConfigValueRange(componentName);\r\n var {\r\n startValue: startValue\r\n } = valueRange;\r\n var {\r\n endValue: endValue\r\n } = valueRange;\r\n var {\r\n formatter: formatter\r\n } = componentInfo;\r\n var curDate = this._getCurrentDate();\r\n var config = {\r\n type: componentName,\r\n setValue: componentInfo.setter,\r\n valueItems: [],\r\n displayItems: [],\r\n getIndex: value => value[componentInfo.getter]() - startValue\r\n };\r\n for (var i = startValue; i <= endValue; i++) {\r\n config.valueItems.push(i);\r\n config.displayItems.push(formatter(i, curDate))\r\n }\r\n config.selectedIndex = config.getIndex(curDate);\r\n this._rollerConfigs[componentName] = config\r\n },\r\n _setActiveRoller(currentRoller) {\r\n var activeRoller = currentRoller && this._rollers[currentRoller.type];\r\n each(this._rollers, (function() {\r\n this.toggleActiveState(this === activeRoller)\r\n }))\r\n },\r\n _updateRollersPosition() {\r\n var that = this;\r\n each(this._rollers, (function(type) {\r\n var correctIndex = that._rollerConfigs[type].getIndex(that._getCurrentDate());\r\n this.option(\"selectedIndex\", correctIndex)\r\n }))\r\n },\r\n _setRollerState(roller, selectedIndex) {\r\n if (selectedIndex !== roller.selectedIndex) {\r\n var rollerValue = roller.valueItems[selectedIndex];\r\n var {\r\n setValue: setValue\r\n } = roller;\r\n var currentValue = new Date(this._getCurrentDate());\r\n var currentDate = currentValue.getDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n if (roller.type === ROLLER_TYPE.month) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(currentValue.getFullYear(), rollerValue))\r\n } else if (roller.type === ROLLER_TYPE.year) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(rollerValue, currentValue.getMonth()))\r\n }\r\n currentValue.setDate(currentDate);\r\n currentValue[setValue](rollerValue);\r\n var normalizedDate = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n currentValue = uiDateUtils.mergeDates(normalizedDate, currentValue, \"time\");\r\n currentValue = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n this.option(\"value\", currentValue);\r\n roller.selectedIndex = selectedIndex\r\n }\r\n if (roller.type === ROLLER_TYPE.year) {\r\n this._refreshRollers()\r\n }\r\n if (roller.type === ROLLER_TYPE.month) {\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n }\r\n },\r\n _refreshRoller(rollerType) {\r\n var roller = this._rollers[rollerType];\r\n if (roller) {\r\n this._createRollerConfig(rollerType);\r\n var rollerConfig = this._rollerConfigs[rollerType];\r\n if (rollerType === ROLLER_TYPE.day || rollerConfig.displayItems.toString() !== roller.option(\"items\").toString()) {\r\n roller.option({\r\n items: rollerConfig.displayItems,\r\n selectedIndex: rollerConfig.selectedIndex\r\n })\r\n }\r\n }\r\n },\r\n _getCurrentDate() {\r\n var curDate = this._valueOption();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n return dateUtils.normalizeDate(curDate, minDate, maxDate)\r\n },\r\n _calculateRollerConfigValueRange(componentName) {\r\n var curDate = this._getCurrentDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n var minYear = dateUtils.sameYear(curDate, minDate);\r\n var minMonth = minYear && curDate.getMonth() === minDate.getMonth();\r\n var maxYear = dateUtils.sameYear(curDate, maxDate);\r\n var maxMonth = maxYear && curDate.getMonth() === maxDate.getMonth();\r\n var minHour = minMonth && curDate.getDate() === minDate.getDate();\r\n var maxHour = maxMonth && curDate.getDate() === maxDate.getDate();\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var {\r\n startValue: startValue\r\n } = componentInfo;\r\n var {\r\n endValue: endValue\r\n } = componentInfo;\r\n if (componentName === ROLLER_TYPE.year) {\r\n startValue = minDate.getFullYear();\r\n endValue = maxDate.getFullYear()\r\n }\r\n if (componentName === ROLLER_TYPE.month) {\r\n if (minYear) {\r\n startValue = minDate.getMonth()\r\n }\r\n if (maxYear) {\r\n endValue = maxDate.getMonth()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.day) {\r\n endValue = uiDateUtils.getMaxMonthDay(curDate.getFullYear(), curDate.getMonth());\r\n if (minYear && minMonth) {\r\n startValue = minDate.getDate()\r\n }\r\n if (maxYear && maxMonth) {\r\n endValue = maxDate.getDate()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.hours) {\r\n startValue = minHour ? minDate.getHours() : startValue;\r\n endValue = maxHour ? maxDate.getHours() : endValue\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n },\r\n _refreshRollers() {\r\n this._refreshRoller(ROLLER_TYPE.month);\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"minDate\":\r\n case \"maxDate\":\r\n case \"type\":\r\n this._renderRollers();\r\n this._toggleFormatClasses(args.value, args.previousValue);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n this._renderRollers()\r\n }\r\n break;\r\n case \"value\":\r\n this.option(\"value\", this._valueOption());\r\n this._refreshRollers();\r\n this._updateRollersPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean() {\r\n this.callBase();\r\n delete this._$rollersContainer\r\n }\r\n});\r\nregisterComponent(\"dxDateView\", DateView);\r\nexport default DateView;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.date_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport DateBoxStrategy from \"./m_date_box.strategy\";\r\nimport dateUtils from \"./m_date_utils\";\r\nimport DateView from \"./m_date_view\";\r\nvar window = getWindow();\r\nvar DateViewStrategy = DateBoxStrategy.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat(displayFormat) {\r\n return displayFormat || dateUtils.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device(device) {\r\n var {\r\n platform: platform\r\n } = device;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device(device) {\r\n var {\r\n platform: platform\r\n } = device;\r\n var {\r\n phone: phone\r\n } = device;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget() {\r\n if (inputType(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = $(\"<div>\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: () => DateView,\r\n renderOpenedState() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * dateUtils.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nexport default DateViewStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.list.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../../ui/list/modules/m_selection\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDate\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport List from \"../../../ui/list_light\";\r\nimport {\r\n getSizeValue\r\n} from \"../../ui/drop_down_editor/m_utils\";\r\nimport DateBoxStrategy from \"./m_date_box.strategy\";\r\nimport dateUtils from \"./m_date_utils\";\r\nvar window = getWindow();\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = DateBoxStrategy.inherit({\r\n NAME: \"List\",\r\n supportedKeys: () => ({\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n }),\r\n getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: displayFormat => displayFormat || \"shorttime\",\r\n popupConfig: popupConfig => popupConfig,\r\n getValue() {\r\n var selectedIndex = this._widget.option(\"selectedIndex\");\r\n if (-1 === selectedIndex) {\r\n return this.dateBox.option(\"value\")\r\n }\r\n var itemData = this._widgetItems[selectedIndex];\r\n return this._getDateByItemData(itemData)\r\n },\r\n useCurrentDateByDefault: () => true,\r\n getDefaultDate: () => new Date(null),\r\n popupShowingHandler() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: () => List,\r\n _getWidgetOptions() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (-1 === dateIndex) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: (first, second) => isDate(first) && isDate(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes(),\r\n _getTimeListItems() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > dateUtils.ONE_DAY) {\r\n delta = dateUtils.ONE_DAY\r\n }\r\n if (value - min < dateUtils.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < dateUtils.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * dateUtils.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date(ensureDefined(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return dateLocalization.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler(e) {\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var date = this._getDateByItemData(e.itemData);\r\n this.dateBox.option(\"opened\", false);\r\n this.dateBoxValue(date, e.event)\r\n },\r\n _getDateByItemData(itemData) {\r\n var date = this.dateBox.option(\"value\");\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n return date\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _updatePopupHeight() {\r\n var dropDownOptionsHeight = getSizeValue(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = getOuterHeight(this._widget.$element());\r\n var maxHeight = .45 * getHeight(window);\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = dateUtils.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nexport default ListStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.native.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../../core/utils/support\";\r\nimport DateBoxStrategy from \"./m_date_box.strategy\";\r\nimport dateUtils from \"./m_date_utils\";\r\nvar NativeStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Native\",\r\n popupConfig: popupConfig => extend({}, popupConfig, {\r\n width: \"auto\"\r\n }),\r\n getParsedText(text) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n return dateUtils.fromStandardDateFormat(text)\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType() {\r\n var type = this.dateBox.option(\"type\");\r\n if (!dateUtils.SUPPORTED_FORMATS.includes(type)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (devices.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", () => {\r\n this.dateBox._input().get(0).click()\r\n })\r\n }\r\n },\r\n getDefaultOptions() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || dateUtils.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax($input) {\r\n $input.attr({\r\n min: dateSerialization.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: dateSerialization.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.base.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../../../core/config\";\r\nimport devices from \"../../../core/devices\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n inputType\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n isDate as isDateType,\r\n isNumeric,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport DropDownEditor from \"../../ui/drop_down_editor/m_drop_down_editor\";\r\nimport Calendar from \"./m_date_box.strategy.calendar\";\r\nimport CalendarWithTime from \"./m_date_box.strategy.calendar_with_time\";\r\nimport DateView from \"./m_date_box.strategy.date_view\";\r\nimport List from \"./m_date_box.strategy.list\";\r\nimport Native from \"./m_date_box.strategy.native\";\r\nimport uiDateUtils from \"./m_date_utils\";\r\nvar window = getWindow();\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar DROPDOWNEDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: messageLocalization.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: messageLocalization.format(\"validation-range\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true,\r\n _showValidationIcon: true\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device() {\r\n var realDevice = devices.real();\r\n var {\r\n platform: platform\r\n } = realDevice;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions(options) {\r\n this._userOptions = extend({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this._pickerType = pickerType;\r\n this._setShowDropDownButtonOption()\r\n },\r\n _setShowDropDownButtonOption() {\r\n var {\r\n platform: platform\r\n } = devices.real();\r\n var isMozillaOnAndroid = \"android\" === platform && browser.mozilla;\r\n var isNativePickerType = this._isNativeType();\r\n var showDropDownButton = \"generic\" !== platform || !isNativePickerType;\r\n if (isNativePickerType && isMozillaOnAndroid) {\r\n showDropDownButton = false\r\n }\r\n this.option({\r\n showDropDownButton: showDropDownButton\r\n })\r\n },\r\n _init() {\r\n this._initStrategy();\r\n this.option(extend({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: string => string.charAt(0).toLowerCase() + string.substr(1),\r\n _initStrategy() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n }\r\n if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._updatePopupWidth();\r\n this._updatePopupHeight()\r\n },\r\n _dimensionChanged() {\r\n this.callBase();\r\n this._updatePopupHeight()\r\n },\r\n _updatePopupHeight() {\r\n var _a, _b;\r\n if (this._popup) {\r\n null === (_b = (_a = this._strategy)._updatePopupHeight) || void 0 === _b ? void 0 : _b.call(_a)\r\n }\r\n },\r\n _refreshFormatClass() {\r\n var $element = this.$element();\r\n each(TYPE, (_, item) => {\r\n $element.removeClass(\"\".concat(DATEBOX_CLASS, \"-\").concat(item))\r\n });\r\n $element.addClass(\"\".concat(DATEBOX_CLASS, \"-\").concat(this.option(\"type\")))\r\n },\r\n _refreshPickerTypeClass() {\r\n var $element = this.$element();\r\n each(PICKER_TYPE, (_, item) => {\r\n $element.removeClass(\"\".concat(DATEBOX_CLASS, \"-\").concat(item))\r\n });\r\n $element.addClass(\"\".concat(DATEBOX_CLASS, \"-\").concat(this._pickerType))\r\n },\r\n _formatValidationIcon() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var {\r\n style: style\r\n } = inputElement;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon && this.option(\"_showValidationIcon\"));\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = \"\".concat(this._storedPadding, \"px\") : style.paddingRight = \"\".concat(this._storedPadding, \"px\")\r\n }\r\n },\r\n _getClearButtonWidth() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\".concat(DX_CLEAR_BUTTON_CLASS)).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = dateLocalization.format(uiDateUtils.getLongestDate(format, dateLocalization.getMonthNames(), dateLocalization.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = createTextElementHiddenCopy($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup() {\r\n this.callBase();\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _getPopupToolbarItems() {\r\n var _a, _b, _c;\r\n var defaultItems = this.callBase();\r\n return null !== (_c = null === (_b = (_a = this._strategy)._getPopupToolbarItems) || void 0 === _b ? void 0 : _b.call(_a, defaultItems)) && void 0 !== _c ? _c : defaultItems\r\n },\r\n _popupConfig() {\r\n var popupConfig = this.callBase();\r\n return extend(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = extend({}, TYPE, PICKER_TYPE);\r\n each(classPostfixes, (_, item) => {\r\n $element.removeClass(\"\".concat(DATEBOX_WRAPPER_CLASS, \"-\").concat(item))\r\n });\r\n this._popup.$wrapper().addClass(\"\".concat(DATEBOX_WRAPPER_CLASS, \"-\").concat(this.option(\"type\"))).addClass(\"\".concat(DATEBOX_WRAPPER_CLASS, \"-\").concat(this._pickerType)).addClass(DROPDOWNEDITOR_OVERLAY_CLASS)\r\n },\r\n _renderPopupContent() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _popupShowingHandler() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var {\r\n platform: platform\r\n } = devices.real();\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = uiDateUtils.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? dateSerialization.serializeDate(value, dateSerializationFormat) : uiDateUtils.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = dateLocalization.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = dateLocalization.format(value, format)\r\n } else {\r\n displayedText = uiDateUtils.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: mode => inputType(mode) ? null : uiDateUtils.FORMATS_MAP[mode],\r\n _valueChangeEventHandler(e) {\r\n var {\r\n text: text,\r\n type: type,\r\n validationError: validationError\r\n } = this.option();\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n this._recallInternalValidation(currentValue, validationError);\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _recallInternalValidation(value, validationError) {\r\n if (!validationError || validationError.editorSpecific) {\r\n this._applyInternalValidation(value);\r\n this._applyCustomValidation(value)\r\n }\r\n },\r\n _getDateByDefault() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && isDateType(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && dateUtils.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n this._updateInternalValidationState(isValid, validationMessage);\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _updateInternalValidationState(isValid, validationMessage) {\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n })\r\n },\r\n _applyCustomValidation(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _refreshStrategy() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler(e) {\r\n var value = this._strategy.getValue();\r\n this.dateValue(value, e.event);\r\n this.callBase()\r\n },\r\n _dispose() {\r\n var _a;\r\n this.callBase();\r\n null === (_a = this._strategy) || void 0 === _a ? void 0 : _a.dispose()\r\n },\r\n _isNativeType() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _updatePopupTitle() {\r\n var _a;\r\n null === (_a = this._popup) || void 0 === _a ? void 0 : _a.option(\"title\", this._getPopupTitle())\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this.callBase.apply(this, arguments);\r\n this._updatePopupTitle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"todayButtonText\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n case \"_showValidationIcon\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && config().forceIsoDateParsing) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _updateValue(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption(optionName, value) {\r\n if (1 === arguments.length) {\r\n return dateSerialization.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return dateSerialization.serializeDate(date, serializationFormat)\r\n },\r\n _clearValue() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyCustomValidation(null)\r\n }\r\n },\r\n clear() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyInternalValidation(null)\r\n }\r\n }\r\n});\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.mask.parts.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n getPatternSetters\r\n} from \"../../../localization/ldml/date.parser\";\r\nvar monthGetter = date => date.getMonth() + 1;\r\nvar monthSetter = (date, value) => {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = fitIntoRange(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var {\r\n min: min,\r\n max: max\r\n } = getLimits(\"dM\", date);\r\n var newDay = fitIntoRange(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: date => date.getHours() < 12 ? 0 : 1,\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\",\r\n x: \"getTimezoneOffset\"\r\n};\r\nvar PATTERN_SETTERS = extend({}, getPatternSetters(), {\r\n a: (date, value) => {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: (date, value) => {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: (date, value) => {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: (date, value) => {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: (date, value) => {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n },\r\n x: date => date\r\n});\r\nvar getPatternGetter = patternChar => PATTERN_GETTERS[patternChar] || (() => patternChar);\r\nexport var renderDateParts = (text, regExpInfo) => {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n var _loop = function() {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return getLimits(pattern[0], ...args)\r\n },\r\n setter: PATTERN_SETTERS[pattern[0]] || noop,\r\n getter: getter\r\n })\r\n };\r\n for (var i = 1; i < result.length; i++) {\r\n _loop()\r\n }\r\n return sections\r\n};\r\nvar getLimits = (pattern, date, forcedPattern) => {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 1,\r\n max: 12\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n },\r\n x: {\r\n min: 0,\r\n max: 0\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nexport var getDatePartIndexByPosition = (dateParts, position) => {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.mask.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n clipboardText\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange,\r\n sign\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n isDate,\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport defaultDateNames from \"../../../localization/default_date_names\";\r\nimport {\r\n getFormat\r\n} from \"../../../localization/ldml/date.format\";\r\nimport {\r\n getRegExpInfo\r\n} from \"../../../localization/ldml/date.parser\";\r\nimport numberLocalization from \"../../../localization/number\";\r\nimport DateBoxBase from \"./m_date_box.base\";\r\nimport {\r\n getDatePartIndexByPosition,\r\n renderDateParts\r\n} from \"./m_date_box.mask.parts\";\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = DateBoxBase.inherit({\r\n _supportedKeys(e) {\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = e => {\r\n var originalHandler = originalHandlers[normalizeKeyName(e)];\r\n return originalHandler && originalHandler.apply(this, [e])\r\n };\r\n var applyHandler = (e, maskHandler) => {\r\n if (this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(this, [e])\r\n }\r\n return maskHandler.apply(this, [e])\r\n };\r\n return extend({}, originalHandlers, {\r\n del: e => applyHandler(e, event => {\r\n this._revertPart(FORWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n backspace: e => applyHandler(e, event => {\r\n this._revertPart(BACKWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n home: e => applyHandler(e, event => {\r\n this._selectFirstPart();\r\n event.preventDefault()\r\n }),\r\n end: e => applyHandler(e, event => {\r\n this._selectLastPart();\r\n event.preventDefault()\r\n }),\r\n escape: e => applyHandler(e, event => {\r\n this._revertChanges(event)\r\n }),\r\n enter: e => applyHandler(e, () => {\r\n this._enterHandler()\r\n }),\r\n leftArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n }),\r\n rightArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n }),\r\n upArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n }),\r\n downArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n })\r\n },\r\n _shouldUseOriginalHandler(e) {\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && ![\"backspace\", \"del\"].includes(normalizeKeyName(e));\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._changePartValue(delta + step, true)\r\n },\r\n _changePartValue(step, lockOtherParts) {\r\n var activePartPattern = this._getActivePartProp(\"pattern\");\r\n var isAmPmPartActive = /^a{1,5}$/.test(activePartPattern);\r\n if (isAmPmPartActive) {\r\n this._toggleAmPm()\r\n } else {\r\n this._partIncrease(step, lockOtherParts)\r\n }\r\n },\r\n _toggleAmPm() {\r\n var currentValue = this._getActivePartProp(\"text\");\r\n var indexOfCurrentValue = defaultDateNames.getPeriodNames().indexOf(currentValue);\r\n var newValue = 1 ^ indexOfCurrentValue;\r\n this._setActivePartValue(newValue)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey(_ref) {\r\n var {\r\n originalEvent: originalEvent,\r\n alt: alt\r\n } = _ref;\r\n var key = originalEvent.data || originalEvent.key;\r\n return \"string\" === typeof key && 1 === key.length && !alt && !isCommandKeyPressed(originalEvent)\r\n },\r\n _isSingleDigitKey(e) {\r\n var _a;\r\n var data = null === (_a = e.originalEvent) || void 0 === _a ? void 0 : _a.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: () => devices.real().android,\r\n _keyInputHandler(e, key) {\r\n var oldInputValue = this._input().val();\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n var isValueChanged = oldInputValue !== this._input().val();\r\n isValueChanged && eventsEngine.trigger(this._input(), \"input\")\r\n },\r\n _keyboardHandler(e) {\r\n var {\r\n key: key\r\n } = e.originalEvent;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (browser.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n } else if (this._isSingleCharKey(e)) {\r\n this._keyInputHandler(e.originalEvent, key)\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._keyInputHandler(e, key);\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat(value => dateLocalization.format(value, format))\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(\"\".concat(this._searchValue, \"0\")) > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber(char) {\r\n var {\r\n max: max\r\n } = this._getActivePartLimits();\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._changePartValue(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo() {\r\n this._regExpInfo = getRegExpInfo(this._getFormatPattern(), dateLocalization);\r\n var {\r\n regexp: regexp\r\n } = this._regExpInfo;\r\n var {\r\n source: source\r\n } = regexp;\r\n var {\r\n flags: flags\r\n } = regexp;\r\n var quantifierRegexp = new RegExp(/(\\{[0-9]+,?[0-9]*\\})/);\r\n var convertedSource = source.split(quantifierRegexp).map(sourcePart => quantifierRegexp.test(sourcePart) ? sourcePart : numberLocalization.convertDigits(sourcePart, false)).join(\"\");\r\n this._regExpInfo.regexp = new RegExp(convertedSource, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n },\r\n _attachMaskEvents() {\r\n eventsEngine.on(this._input(), addNamespace(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"drop\", MASK_EVENT_NAMESPACE), () => {\r\n this._renderSelectedPart()\r\n });\r\n eventsEngine.on(this._input(), addNamespace(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n eventsEngine.on(this._input(), addNamespace(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = fitIntoRange(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n }\r\n index = this._activePartIndex\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return isFunction(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = inRange(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes(fitIntoRange(value, limits.min, limits.max));\r\n isFunction(setter) ? setter(dateValue, value) : dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var {\r\n max: max,\r\n min: min\r\n } = this._getActivePartLimits(lockOtherParts);\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n max: max\r\n })\r\n } else if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n max: max\r\n })\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits(newValue, _ref2) {\r\n var {\r\n limitBase: limitBase,\r\n limitClosest: limitClosest,\r\n max: max\r\n } = _ref2;\r\n var delta = (newValue - limitClosest) % max;\r\n return delta ? limitBase + delta - 1 * sign(delta) : limitClosest\r\n },\r\n _maskClickHandler() {\r\n this._loadMaskValue(this._maskValue);\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (!this._isAllSelected()) {\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler() {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD)\r\n },\r\n _focusOutHandler(e) {\r\n var shouldFireChangeEvent = this._useMaskBehavior() && !e.isDefaultPrevented();\r\n if (shouldFireChangeEvent) {\r\n this._fireChangeEvent();\r\n this.callBase(e);\r\n this._selectFirstPart(e)\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n clear() {\r\n this._clearMaskState();\r\n this._activePartIndex = 0;\r\n this.callBase()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport DateBoxMask from \"./m_date_box.mask\";\r\nregisterComponent(\"dxDateBox\", DateBoxMask);\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/shared/ui.editor_factory_mixin.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar {\r\n isWrapped: isWrapped\r\n} = variableWrapper;\r\nimport \"../text_box\";\r\nimport \"../number_box\";\r\nimport \"../check_box\";\r\nimport \"../select_box\";\r\nimport \"../date_box\";\r\nvar CHECKBOX_SIZE_CLASS = \"checkbox-size\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar getResultConfig = function(config, options) {\r\n return extend(config, {\r\n readOnly: options.readOnly,\r\n placeholder: options.placeholder,\r\n inputAttr: {\r\n id: options.id,\r\n \"aria-labelledby\": options[\"aria-labelledby\"]\r\n },\r\n tabIndex: options.tabIndex\r\n }, options.editorOptions)\r\n};\r\nvar checkEnterBug = function() {\r\n return browser.mozilla || devices.real().ios\r\n};\r\nvar getTextEditorConfig = function(options) {\r\n var data = {};\r\n var isEnterBug = checkEnterBug();\r\n var sharedData = options.sharedData || data;\r\n return getResultConfig({\r\n placeholder: options.placeholder,\r\n width: options.width,\r\n value: options.value,\r\n onValueChanged: function(e) {\r\n var needDelayedUpdate = \"filterRow\" === options.parentType || \"searchPanel\" === options.parentType;\r\n var isInputOrKeyUpEvent = e.event && (\"input\" === e.event.type || \"keyup\" === e.event.type);\r\n var updateValue = function(e, notFireEvent) {\r\n options && options.setValue(e.value, notFireEvent)\r\n };\r\n clearTimeout(data.valueChangeTimeout);\r\n if (isInputOrKeyUpEvent && needDelayedUpdate) {\r\n sharedData.valueChangeTimeout = data.valueChangeTimeout = setTimeout((function() {\r\n updateValue(e, data.valueChangeTimeout !== sharedData.valueChangeTimeout)\r\n }), isDefined(options.updateValueTimeout) ? options.updateValueTimeout : 0)\r\n } else {\r\n updateValue(e)\r\n }\r\n },\r\n onKeyDown: function(e) {\r\n if (isEnterBug && \"enter\" === normalizeKeyName(e.event)) {\r\n eventsEngine.trigger($(e.component._input()), \"change\")\r\n }\r\n },\r\n valueChangeEvent: \"change\" + (\"filterRow\" === options.parentType ? \" keyup input\" : \"\")\r\n }, options)\r\n};\r\nvar prepareDateBox = function(options) {\r\n options.editorName = \"dxDateBox\";\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n },\r\n onKeyDown: function(_ref) {\r\n var {\r\n component: component,\r\n event: event\r\n } = _ref;\r\n var useMaskBehavior = component.option(\"useMaskBehavior\");\r\n if ((checkEnterBug() || useMaskBehavior) && \"enter\" === normalizeKeyName(event)) {\r\n component.blur();\r\n component.focus()\r\n }\r\n },\r\n displayFormat: options.format,\r\n type: options.dataType,\r\n dateSerializationFormat: null,\r\n width: \"filterBuilder\" === options.parentType ? void 0 : \"auto\"\r\n }, options)\r\n};\r\nvar prepareTextBox = function(options) {\r\n var config = getTextEditorConfig(options);\r\n var isSearching = \"searchPanel\" === options.parentType;\r\n if (options.editorType && \"dxTextBox\" !== options.editorType) {\r\n config.value = options.value\r\n } else {\r\n config.value = (value = options.value, isDefined(value) ? value.toString() : \"\")\r\n }\r\n var value;\r\n config.valueChangeEvent += isSearching ? \" keyup input search\" : \"\";\r\n config.mode = config.mode || (isSearching ? \"search\" : \"text\");\r\n options.editorName = \"dxTextBox\";\r\n options.editorOptions = config\r\n};\r\nvar prepareNumberBox = function(options) {\r\n var config = getTextEditorConfig(options);\r\n config.value = isDefined(options.value) ? options.value : null;\r\n options.editorName = \"dxNumberBox\";\r\n options.editorOptions = config\r\n};\r\nvar prepareBooleanEditor = function(options) {\r\n if (\"filterRow\" === options.parentType || \"filterBuilder\" === options.parentType) {\r\n prepareLookupEditor(extend(options, {\r\n lookup: {\r\n displayExpr: function(data) {\r\n if (true === data) {\r\n return options.trueText || \"true\"\r\n } else if (false === data) {\r\n return options.falseText || \"false\"\r\n }\r\n },\r\n dataSource: [true, false]\r\n }\r\n }))\r\n } else {\r\n prepareCheckBox(options)\r\n }\r\n};\r\n\r\nfunction watchLookupDataSource(options) {\r\n if (options.row && options.row.watch && \"dataRow\" === options.parentType) {\r\n var editorOptions = options.editorOptions || {};\r\n options.editorOptions = editorOptions;\r\n var selectBox;\r\n var onInitialized = editorOptions.onInitialized;\r\n editorOptions.onInitialized = function(e) {\r\n onInitialized && onInitialized.apply(this, arguments);\r\n selectBox = e.component;\r\n selectBox.on(\"disposing\", stopWatch)\r\n };\r\n var dataSource;\r\n var stopWatch = options.row.watch(() => {\r\n dataSource = options.lookup.dataSource(options.row);\r\n return dataSource && dataSource.filter\r\n }, () => {\r\n selectBox.option(\"dataSource\", dataSource)\r\n }, row => {\r\n options.row = row\r\n })\r\n }\r\n}\r\n\r\nfunction prepareLookupEditor(options) {\r\n var lookup = options.lookup;\r\n var displayGetter;\r\n var dataSource;\r\n var postProcess;\r\n var isFilterRow = \"filterRow\" === options.parentType;\r\n if (lookup) {\r\n var _options$editorType;\r\n displayGetter = compileGetter(lookup.displayExpr);\r\n dataSource = lookup.dataSource;\r\n if (isFunction(dataSource) && !isWrapped(dataSource)) {\r\n dataSource = dataSource(options.row || {});\r\n watchLookupDataSource(options)\r\n }\r\n if (isObject(dataSource) || Array.isArray(dataSource)) {\r\n dataSource = normalizeDataSourceOptions(dataSource);\r\n if (isFilterRow) {\r\n postProcess = dataSource.postProcess;\r\n dataSource.postProcess = function(items) {\r\n if (0 === this.pageIndex()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n if (postProcess) {\r\n return postProcess.call(this, items)\r\n }\r\n return items\r\n }\r\n }\r\n }\r\n var allowClearing = Boolean(lookup.allowClearing && !isFilterRow);\r\n options.editorName = null !== (_options$editorType = options.editorType) && void 0 !== _options$editorType ? _options$editorType : \"dxSelectBox\";\r\n options.editorOptions = getResultConfig({\r\n searchEnabled: true,\r\n value: options.value,\r\n valueExpr: options.lookup.valueExpr,\r\n searchExpr: options.lookup.searchExpr || options.lookup.displayExpr,\r\n allowClearing: allowClearing,\r\n showClearButton: allowClearing,\r\n displayExpr: function(data) {\r\n if (null === data) {\r\n return options.showAllText\r\n }\r\n return displayGetter(data)\r\n },\r\n dataSource: dataSource,\r\n onValueChanged: function(e) {\r\n var params = [e.value];\r\n !isFilterRow && params.push(e.component.option(\"text\"));\r\n options.setValue.apply(this, params)\r\n }\r\n }, options)\r\n }\r\n}\r\n\r\nfunction prepareCheckBox(options) {\r\n options.editorName = \"dxCheckBox\";\r\n options.editorOptions = getResultConfig({\r\n elementAttr: {\r\n id: options.id\r\n },\r\n value: isDefined(options.value) ? options.value : void 0,\r\n hoverStateEnabled: !options.readOnly,\r\n focusStateEnabled: !options.readOnly,\r\n activeStateEnabled: false,\r\n onValueChanged: function(e) {\r\n options.setValue && options.setValue(e.value, e)\r\n }\r\n }, options)\r\n}\r\nvar createEditorCore = function(that, options) {\r\n var $editorElement = $(options.editorElement);\r\n if (options.editorName && options.editorOptions && $editorElement[options.editorName]) {\r\n if (\"dxCheckBox\" === options.editorName || \"dxSwitch\" === options.editorName) {\r\n if (!options.isOnForm) {\r\n $editorElement.addClass(that.addWidgetPrefix(CHECKBOX_SIZE_CLASS));\r\n $editorElement.parent().addClass(EDITOR_INLINE_BLOCK)\r\n }\r\n }\r\n that._createComponent($editorElement, options.editorName, options.editorOptions);\r\n if (\"dxDateBox\" === options.editorName) {\r\n var dateBox = $editorElement.dxDateBox(\"instance\");\r\n var defaultEnterKeyHandler = dateBox._supportedKeys().enter;\r\n dateBox.registerKeyHandler(\"enter\", e => {\r\n if (dateBox.option(\"opened\")) {\r\n defaultEnterKeyHandler(e)\r\n }\r\n return true\r\n })\r\n }\r\n if (\"dxTextArea\" === options.editorName) {\r\n $editorElement.dxTextArea(\"instance\").registerKeyHandler(\"enter\", (function(event) {\r\n if (\"enter\" === normalizeKeyName(event) && !event.ctrlKey && !event.shiftKey) {\r\n event.stopPropagation()\r\n }\r\n }))\r\n }\r\n }\r\n};\r\nvar prepareCustomEditor = options => {\r\n options.editorName = options.editorType;\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n }\r\n }, options)\r\n};\r\nvar prepareEditor = options => {\r\n var prepareDefaultEditor = {\r\n dxDateBox: prepareDateBox,\r\n dxCheckBox: prepareCheckBox,\r\n dxNumberBox: prepareNumberBox,\r\n dxTextBox: prepareTextBox\r\n };\r\n if (options.lookup) {\r\n prepareLookupEditor(options)\r\n } else if (options.editorType) {\r\n var _prepareDefaultEditor;\r\n (null !== (_prepareDefaultEditor = prepareDefaultEditor[options.editorType]) && void 0 !== _prepareDefaultEditor ? _prepareDefaultEditor : prepareCustomEditor)(options)\r\n } else {\r\n switch (options.dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n prepareDateBox(options);\r\n break;\r\n case \"boolean\":\r\n prepareBooleanEditor(options);\r\n break;\r\n case \"number\":\r\n prepareNumberBox(options);\r\n break;\r\n default:\r\n prepareTextBox(options)\r\n }\r\n }\r\n};\r\nvar EditorFactoryMixin = Base => class extends Base {\r\n createEditor($container, options) {\r\n options.cancel = false;\r\n options.editorElement = getPublicElement($container);\r\n if (!isDefined(options.tabIndex)) {\r\n options.tabIndex = this.option(\"tabIndex\")\r\n }\r\n prepareEditor(options);\r\n this.executeAction(\"onEditorPreparing\", options);\r\n if (options.cancel) {\r\n return\r\n }\r\n if (\"dataRow\" === options.parentType && !options.isOnForm && !isDefined(options.editorOptions.showValidationMark)) {\r\n options.editorOptions.showValidationMark = false\r\n }\r\n createEditorCore(this, options);\r\n this.executeAction(\"onEditorPrepared\", options)\r\n }\r\n};\r\nexport default EditorFactoryMixin;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editor_factory/m_editor_factory.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport positionUtils from \"../../../../animation/position\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth,\r\n setOuterHeight,\r\n setOuterWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../../../events/utils/index\";\r\nimport EditorFactoryMixin from \"../../../../ui/shared/ui.editor_factory_mixin\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar CELL_MODIFIED_CLASS = \"dx-cell-modified\";\r\nvar CELL_INVALID_CLASS = \"invalid\";\r\nvar FOCUSED_CELL_MODIFIED_CLASS = \"dx-focused-cell-modified\";\r\nvar FOCUSED_CELL_INVALID_CLASS = \"dx-focused-cell-invalid\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar FOCUSED_ELEMENT_CLASS = \"dx-focused\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar MODULE_NAMESPACE = \"dxDataGridEditorFactory\";\r\nvar UPDATE_FOCUS_EVENTS = addNamespace([pointerEvents.down, \"focusin\", clickEventName].join(\" \"), MODULE_NAMESPACE);\r\nvar DX_HIDDEN = \"dx-hidden\";\r\nvar ViewControllerWithMixin = EditorFactoryMixin(modules.ViewController);\r\nexport class EditorFactory extends ViewControllerWithMixin {\r\n init() {\r\n this.createAction(\"onEditorPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onEditorPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this._columnsResizerController = this.getController(\"columnsResizer\");\r\n this._editingController = this.getController(\"editing\");\r\n this._keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._validatingController = this.getController(\"validating\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._updateFocusHandler = this._updateFocusHandler || this.createAction(this._updateFocus.bind(this));\r\n this._subscribedContainerRoot = this._getContainerRoot();\r\n eventsEngine.on(this._subscribedContainerRoot, UPDATE_FOCUS_EVENTS, this._updateFocusHandler);\r\n this._attachContainerEventHandlers()\r\n }\r\n dispose() {\r\n clearTimeout(this._focusTimeoutID);\r\n clearTimeout(this._updateFocusTimeoutID);\r\n eventsEngine.off(this._subscribedContainerRoot, UPDATE_FOCUS_EVENTS, this._updateFocusHandler)\r\n }\r\n _getFocusedElement($dataGridElement) {\r\n var rowSelector = this.option(\"focusedRowEnabled\") ? \"tr[tabindex]:focus\" : \"tr[tabindex]:not(.dx-data-row):focus\";\r\n var focusedElementSelector = [\"td[tabindex]:focus\", \"\".concat(rowSelector), \"input:focus\", \"button:focus\", \"textarea:focus\", \"div[tabindex]:focus\", \".dx-lookup-field:focus\", \".dx-checkbox:focus\", \".dx-switch:focus\", \".dx-dropdownbutton .dx-buttongroup:focus\", \".dx-adaptive-item-text:focus\"].join(\",\");\r\n var $focusedElement = $dataGridElement.find(focusedElementSelector);\r\n return this.elementIsInsideGrid($focusedElement) && $focusedElement\r\n }\r\n _getFocusCellSelector() {\r\n return \".dx-row > td\"\r\n }\r\n _updateFocusCore() {\r\n var $dataGridElement = this.component && this.component.$element();\r\n if ($dataGridElement) {\r\n var $focus = this._getFocusedElement($dataGridElement);\r\n if ($focus && $focus.length) {\r\n var isHideBorder;\r\n if (!$focus.hasClass(CELL_FOCUS_DISABLED_CLASS) && !$focus.hasClass(ROW_CLASS)) {\r\n var $focusCell = $focus.closest(\"\".concat(this._getFocusCellSelector(), \", .\").concat(CELL_FOCUS_DISABLED_CLASS));\r\n if ($focusCell.get(0) !== $focus.get(0)) {\r\n isHideBorder = this._needHideBorder($focusCell);\r\n $focus = $focusCell\r\n }\r\n }\r\n if ($focus.length && !$focus.hasClass(CELL_FOCUS_DISABLED_CLASS)) {\r\n this.focus($focus, isHideBorder);\r\n return\r\n }\r\n }\r\n }\r\n this.loseFocus()\r\n }\r\n _needHideBorder($element) {\r\n var rowsViewElement = this._rowsView.element();\r\n var isRowsView = $element.closest(rowsViewElement).length > 0;\r\n var isEditing = this._editingController.isEditing();\r\n return $element.hasClass(EDITOR_INLINE_BLOCK) || isRowsView && !isEditing\r\n }\r\n _updateFocus(e) {\r\n var that = this;\r\n var isFocusOverlay = e && e.event && $(e.event.target).hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n that._isFocusOverlay = that._isFocusOverlay || isFocusOverlay;\r\n clearTimeout(that._updateFocusTimeoutID);\r\n that._updateFocusTimeoutID = setTimeout(() => {\r\n delete that._updateFocusTimeoutID;\r\n if (!that._isFocusOverlay) {\r\n that._updateFocusCore()\r\n }\r\n that._isFocusOverlay = false\r\n })\r\n }\r\n _updateFocusOverlaySize($element, position) {\r\n $element.hide();\r\n var location = positionUtils.calculate($element, extend({\r\n collision: \"fit\"\r\n }, position));\r\n if (location.h.oversize > 0) {\r\n setOuterWidth($element, getOuterWidth($element) - location.h.oversize)\r\n }\r\n if (location.v.oversize > 0) {\r\n setOuterHeight($element, getOuterHeight($element) - location.v.oversize)\r\n }\r\n $element.show()\r\n }\r\n callbackNames() {\r\n return [\"focused\"]\r\n }\r\n focus($element, isHideBorder) {\r\n var that = this;\r\n if (void 0 === $element) {\r\n return that._$focusedElement\r\n }\r\n if ($element) {\r\n if (!$element.is(that._$focusedElement)) {\r\n that._$focusedElement && that._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS)\r\n }\r\n that._$focusedElement = $element;\r\n clearTimeout(that._focusTimeoutID);\r\n that._focusTimeoutID = setTimeout(() => {\r\n delete that._focusTimeoutID;\r\n that.renderFocusOverlay($element, isHideBorder);\r\n $element.addClass(FOCUSED_ELEMENT_CLASS);\r\n that.focused.fire($element)\r\n })\r\n }\r\n }\r\n refocus() {\r\n var $focus = this.focus();\r\n this.focus($focus)\r\n }\r\n renderFocusOverlay($element, isHideBorder) {\r\n if (!gridCoreUtils.isElementInCurrentGrid(this, $element)) {\r\n return\r\n }\r\n if (!this._$focusOverlay) {\r\n this._$focusOverlay = $(\"<div>\").addClass(this.addWidgetPrefix(FOCUS_OVERLAY_CLASS))\r\n }\r\n if (isHideBorder) {\r\n this._$focusOverlay.addClass(DX_HIDDEN)\r\n } else if ($element.length) {\r\n var align = browser.mozilla ? \"right bottom\" : \"left top\";\r\n var $content = $element.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS)));\r\n var elemCoord = getBoundingRect($element.get(0));\r\n var isFocusedCellInvalid = $element.hasClass(this.addWidgetPrefix(CELL_INVALID_CLASS));\r\n var isFocusedCellModified = $element.hasClass(CELL_MODIFIED_CLASS) && !isFocusedCellInvalid;\r\n this._$focusOverlay.removeClass(DX_HIDDEN).toggleClass(FOCUSED_CELL_INVALID_CLASS, isFocusedCellInvalid).toggleClass(FOCUSED_CELL_MODIFIED_CLASS, isFocusedCellModified).appendTo($content);\r\n setOuterHeight(this._$focusOverlay, elemCoord.bottom - elemCoord.top + 1);\r\n setOuterWidth(this._$focusOverlay, elemCoord.right - elemCoord.left + 1);\r\n var focusOverlayPosition = {\r\n precise: true,\r\n my: align,\r\n at: align,\r\n of: $element,\r\n boundary: $content.length && $content\r\n };\r\n this._updateFocusOverlaySize(this._$focusOverlay, focusOverlayPosition);\r\n positionUtils.setup(this._$focusOverlay, focusOverlayPosition);\r\n this._$focusOverlay.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n resize() {\r\n var $focusedElement = this._$focusedElement;\r\n if ($focusedElement) {\r\n this.focus($focusedElement)\r\n }\r\n }\r\n loseFocus(skipValidator) {\r\n this._$focusedElement && this._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS);\r\n this._$focusedElement = null;\r\n this._$focusOverlay && this._$focusOverlay.addClass(DX_HIDDEN)\r\n }\r\n _getContainerRoot() {\r\n var _a;\r\n var $container = null === (_a = this.component) || void 0 === _a ? void 0 : _a.$element();\r\n var root = domAdapter.getRootNode(null === $container || void 0 === $container ? void 0 : $container.get(0));\r\n if (root.nodeType === Node.DOCUMENT_FRAGMENT_NODE && !root.host) {\r\n return domAdapter.getDocument()\r\n }\r\n return root\r\n }\r\n _attachContainerEventHandlers() {\r\n var that = this;\r\n var $container = that.component && that.component.$element();\r\n if ($container) {\r\n eventsEngine.on($container, addNamespace(\"keydown\", MODULE_NAMESPACE), e => {\r\n if (\"tab\" === normalizeKeyName(e)) {\r\n that._updateFocusHandler(e)\r\n }\r\n })\r\n }\r\n }\r\n}\r\nexport var editorFactoryModule = {\r\n defaultOptions: () => ({}),\r\n controllers: {\r\n editorFactory: EditorFactory\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/editor_factory.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editorFactoryModule\r\n} from \"../../../grids/grid_core/editor_factory/m_editor_factory\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"editorFactory\", editorFactoryModule);\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_dialog.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Action from \"../../core/action\";\r\nimport config from \"../../core/config\";\r\nimport devices from \"../../core/devices\";\r\nimport Guid from \"../../core/guid\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n value as getViewport\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Popup from \"../../ui/popup/ui.popup\";\r\nimport {\r\n isFluent\r\n} from \"../../ui/themes\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nvar window = getWindow();\r\nvar DEFAULT_BUTTON = {\r\n text: \"OK\",\r\n onClick: () => true\r\n};\r\nvar DX_DIALOG_CLASSNAME = \"dx-dialog\";\r\nvar DX_DIALOG_WRAPPER_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-wrapper\");\r\nvar DX_DIALOG_ROOT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-root\");\r\nvar DX_DIALOG_CONTENT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-content\");\r\nvar DX_DIALOG_MESSAGE_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-message\");\r\nvar DX_DIALOG_BUTTONS_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-buttons\");\r\nvar DX_DIALOG_BUTTON_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-button\");\r\nvar DX_BUTTON_CLASSNAME = \"dx-button\";\r\nvar getApplyButtonConfig = () => {\r\n if (isFluent()) {\r\n return {\r\n stylingMode: \"contained\",\r\n type: \"default\"\r\n }\r\n }\r\n return {}\r\n};\r\nvar getCancelButtonConfig = () => {\r\n if (isFluent()) {\r\n return {\r\n stylingMode: \"outlined\",\r\n type: \"default\"\r\n }\r\n }\r\n return {}\r\n};\r\nexport var custom = function(options) {\r\n var _a;\r\n var deferred = Deferred();\r\n options = options || {};\r\n var $element = $(\"<div>\").addClass(DX_DIALOG_CLASSNAME).appendTo(getViewport());\r\n var isMessageDefined = \"message\" in options;\r\n var isMessageHtmlDefined = \"messageHtml\" in options;\r\n if (isMessageDefined) {\r\n errors.log(\"W1013\")\r\n }\r\n var messageHtml = String(isMessageHtmlDefined ? options.messageHtml : options.message);\r\n var messageId = options.title ? null : new Guid;\r\n var $message = $(\"<div>\").addClass(DX_DIALOG_MESSAGE_CLASSNAME).html(messageHtml).attr(\"id\", messageId);\r\n var popupToolbarItems = [];\r\n var popupInstance = new Popup($element, extend({\r\n title: null !== (_a = options.title) && void 0 !== _a ? _a : \"\",\r\n showTitle: ensureDefined(options.showTitle, true),\r\n dragEnabled: ensureDefined(options.dragEnabled, true),\r\n height: \"auto\",\r\n width: options.width,\r\n showCloseButton: options.showCloseButton || false,\r\n ignoreChildEvents: false,\r\n container: $element,\r\n visualContainer: window,\r\n dragAndResizeArea: window,\r\n onContentReady(args) {\r\n args.component.$content().addClass(DX_DIALOG_CONTENT_CLASSNAME).append($message);\r\n if (messageId) {\r\n args.component.$overlayContent().attr(\"aria-labelledby\", messageId)\r\n }\r\n },\r\n onShowing(e) {\r\n e.component.bottomToolbar().addClass(DX_DIALOG_BUTTONS_CLASSNAME).find(\".\".concat(DX_BUTTON_CLASSNAME)).addClass(DX_DIALOG_BUTTON_CLASSNAME);\r\n resetActiveElement()\r\n },\r\n onShown(e) {\r\n var $firstButton = e.component.bottomToolbar().find(\".\".concat(DX_BUTTON_CLASSNAME)).first();\r\n eventsEngine.trigger($firstButton, \"focus\")\r\n },\r\n onHiding() {\r\n deferred.reject()\r\n },\r\n onHidden(_ref) {\r\n var {\r\n element: element\r\n } = _ref;\r\n $(element).remove()\r\n },\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 400\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 400,\r\n to: {\r\n opacity: 0,\r\n scale: 0\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n rtlEnabled: config().rtlEnabled,\r\n position: {\r\n boundaryOffset: {\r\n h: 10,\r\n v: 0\r\n }\r\n }\r\n }, options.popupOptions));\r\n var buttonOptions = options.buttons || [DEFAULT_BUTTON];\r\n buttonOptions.forEach(options => {\r\n var action = new Action(options.onClick, {\r\n context: popupInstance\r\n });\r\n popupToolbarItems.push({\r\n toolbar: \"bottom\",\r\n location: devices.current().android ? \"after\" : \"center\",\r\n widget: \"dxButton\",\r\n options: _extends(_extends({}, options), {\r\n onClick() {\r\n var result = action.execute(...arguments);\r\n hide(result)\r\n }\r\n })\r\n })\r\n });\r\n popupInstance.option(\"toolbarItems\", popupToolbarItems);\r\n popupInstance.$wrapper().addClass(DX_DIALOG_WRAPPER_CLASSNAME);\r\n if (options.position) {\r\n popupInstance.option(\"position\", options.position)\r\n }\r\n popupInstance.$wrapper().addClass(DX_DIALOG_ROOT_CLASSNAME);\r\n\r\n function hide(value) {\r\n deferred.resolve(value);\r\n popupInstance.hide()\r\n }\r\n return {\r\n show: function() {\r\n if (\"phone\" === devices.real().deviceType) {\r\n var isPortrait = getHeight(window) > getWidth(window);\r\n var width = isPortrait ? \"90%\" : \"60%\";\r\n popupInstance.option({\r\n width: width\r\n })\r\n }\r\n popupInstance.show();\r\n return deferred.promise()\r\n },\r\n hide: hide\r\n }\r\n};\r\nexport var alert = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [_extends(_extends({}, DEFAULT_BUTTON), getApplyButtonConfig())],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexport var confirm = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [_extends({\r\n text: messageLocalization.format(\"Yes\"),\r\n onClick: () => true\r\n }, getApplyButtonConfig()), _extends({\r\n text: messageLocalization.format(\"No\"),\r\n onClick: () => false\r\n }, getCancelButtonConfig())],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/const.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nexport var EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nexport var ROW_CLASS = \"dx-row\";\r\nexport var CELL_MODIFIED_CLASS = \"dx-cell-modified\";\r\nexport var ROW_SELECTED_CLASS = \"dx-selection\";\r\nexport var EDIT_FORM_CLASS = \"edit-form\";\r\nexport var DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nexport var DATA_EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nexport var EDITING_POPUP_OPTION_NAME = \"editing.popup\";\r\nexport var EDITING_FORM_OPTION_NAME = \"editing.form\";\r\nexport var EDITING_EDITROWKEY_OPTION_NAME = \"editing.editRowKey\";\r\nexport var EDITING_EDITCOLUMNNAME_OPTION_NAME = \"editing.editColumnName\";\r\nexport var TARGET_COMPONENT_NAME = \"targetComponent\";\r\nexport var EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nexport var FOCUSABLE_ELEMENT_SELECTOR = \"[tabindex]:not([disabled]), \".concat(EDITORS_INPUT_SELECTOR, \":not([disabled])\");\r\nexport var EDIT_MODE_BATCH = \"batch\";\r\nexport var EDIT_MODE_ROW = \"row\";\r\nexport var EDIT_MODE_CELL = \"cell\";\r\nexport var EDIT_MODE_FORM = \"form\";\r\nexport var EDIT_MODE_POPUP = \"popup\";\r\nexport var FIRST_NEW_ROW_POSITION = \"first\";\r\nexport var LAST_NEW_ROW_POSITION = \"last\";\r\nexport var PAGE_BOTTOM_NEW_ROW_POSITION = \"pageBottom\";\r\nexport var PAGE_TOP_NEW_ROW_POSITION = \"pageTop\";\r\nexport var VIEWPORT_BOTTOM_NEW_ROW_POSITION = \"viewportBottom\";\r\nexport var VIEWPORT_TOP_NEW_ROW_POSITION = \"viewportTop\";\r\nexport var EDIT_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var ROW_BASED_MODES = [EDIT_MODE_ROW, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var CELL_BASED_MODES = [EDIT_MODE_BATCH, EDIT_MODE_CELL];\r\nexport var REQUIRED_EDITOR_LABELLEDBY_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL];\r\nexport var MODES_WITH_DELAYED_FOCUS = [EDIT_MODE_ROW, EDIT_MODE_FORM];\r\nexport var READONLY_CLASS = \"readonly\";\r\nexport var LINK_CLASS = \"dx-link\";\r\nexport var LINK_ICON_CLASS = \"dx-link-icon\";\r\nexport var ROW_SELECTED = \"dx-selection\";\r\nexport var EDIT_BUTTON_CLASS = \"dx-edit-button\";\r\nexport var COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nexport var COMMAND_EDIT_WITH_ICONS_CLASS = \"\".concat(COMMAND_EDIT_CLASS, \"-with-icons\");\r\nexport var INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nexport var ROW_INSERTED = \"dx-row-inserted\";\r\nexport var ROW_MODIFIED = \"dx-row-modified\";\r\nexport var CELL_MODIFIED = \"dx-cell-modified\";\r\nexport var EDITING_NAMESPACE = \"dxDataGridEditing\";\r\nexport var CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nexport var DATA_EDIT_DATA_UPDATE_TYPE = \"update\";\r\nexport var DEFAULT_START_EDIT_ACTION = \"click\";\r\nexport var EDIT_LINK_CLASS = {\r\n save: \"dx-link-save\",\r\n cancel: \"dx-link-cancel\",\r\n edit: \"dx-link-edit\",\r\n undelete: \"dx-link-undelete\",\r\n delete: \"dx-link-delete\",\r\n add: \"dx-link-add\"\r\n};\r\nexport var EDIT_ICON_CLASS = {\r\n save: \"save\",\r\n cancel: \"revert\",\r\n edit: \"edit\",\r\n undelete: \"revert\",\r\n delete: \"trash\",\r\n add: \"add\"\r\n};\r\nexport var METHOD_NAMES = {\r\n edit: \"editRow\",\r\n delete: \"deleteRow\",\r\n undelete: \"undeleteRow\",\r\n save: \"saveEditData\",\r\n cancel: \"cancelEditData\",\r\n add: \"addRowByRowIndex\"\r\n};\r\nexport var ACTION_OPTION_NAMES = {\r\n add: \"allowAdding\",\r\n edit: \"allowUpdating\",\r\n delete: \"allowDeleting\"\r\n};\r\nexport var BUTTON_NAMES = [\"edit\", \"save\", \"cancel\", \"delete\", \"undelete\"];\r\nexport var EDITING_CHANGES_OPTION_NAME = \"editing.changes\";\r\nexport var FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nexport var ADD_ROW_BUTTON_CLASS = \"addrow-button\";\r\nexport var DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nexport var DATA_ROW_CLASS = \"dx-data-row\";\r\nexport var ROW_REMOVED = \"dx-row-removed\";\r\nexport var FILTER_ROW_CLASS = \"filter-row\";\r\nvar isRenovatedScrollable = !!Scrollable.IS_RENOVATED_WIDGET;\r\nexport var EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nexport var EDIT_POPUP_CLASS = \"edit-popup\";\r\nexport var EDIT_POPUP_FORM_CLASS = \"edit-popup-form\";\r\nexport var FOCUSABLE_ELEMENT_CLASS = isRenovatedScrollable ? \"dx-scrollable\" : \"dx-scrollable-container\";\r\nexport var BUTTON_CLASS = \"dx-button\";\r\nexport var FORM_BUTTONS_CONTAINER_CLASS = \"form-buttons-container\";\r\nexport var EDIT_ROW = \"dx-edit-row\";\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../../core/guid\";\r\nimport {\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nvar NEW_ROW_TEMP_KEY_PREFIX = \"_DX_KEY_\";\r\nvar GUID_LENGTH = 36;\r\nexport var createFailureHandler = function(deferred) {\r\n return function(arg) {\r\n var error = arg instanceof Error ? arg : new Error(arg && String(arg) || \"Unknown error\");\r\n deferred.reject(error)\r\n }\r\n};\r\nexport var isEditingCell = function(isEditRow, cellOptions) {\r\n return cellOptions.isEditing || isEditRow && cellOptions.column.allowEditing\r\n};\r\nexport var isEditingOrShowEditorAlwaysDataCell = function(isEditRow, cellOptions) {\r\n var isCommandCell = !!cellOptions.column.command;\r\n var isEditing = isEditingCell(isEditRow, cellOptions);\r\n var isEditorCell = !isCommandCell && (isEditing || cellOptions.column.showEditorAlways);\r\n return \"data\" === cellOptions.rowType && isEditorCell\r\n};\r\nexport var getEditingTexts = options => {\r\n var editingTexts = options.component.option(\"editing.texts\") || {};\r\n return {\r\n save: editingTexts.saveRowChanges,\r\n cancel: editingTexts.cancelRowChanges,\r\n edit: editingTexts.editRow,\r\n undelete: editingTexts.undeleteRow,\r\n delete: editingTexts.deleteRow,\r\n add: editingTexts.addRowToNode\r\n }\r\n};\r\nexport var generateNewRowTempKey = () => \"\".concat(NEW_ROW_TEMP_KEY_PREFIX).concat(new Guid);\r\nexport var isNewRowTempKey = key => \"string\" === typeof key && key.startsWith(NEW_ROW_TEMP_KEY_PREFIX) && key.length === NEW_ROW_TEMP_KEY_PREFIX.length + GUID_LENGTH;\r\nexport var getButtonIndex = (buttons, name) => {\r\n var result = -1;\r\n buttons.some((button, index) => {\r\n if (getButtonName(button) === name) {\r\n result = index;\r\n return true\r\n }\r\n });\r\n return result\r\n};\r\nexport function getButtonName(button) {\r\n return isObject(button) ? button.name : button\r\n}\r\nexport function isEditable($element) {\r\n return $element && ($element.is(\"input\") || $element.is(\"textarea\"))\r\n}\r\nexport var getEditorType = item => {\r\n var _a;\r\n var {\r\n column: column\r\n } = item;\r\n return item.isCustomEditorType ? item.editorType : null === (_a = column.formItem) || void 0 === _a ? void 0 : _a.editorType\r\n};\r\nexport var forEachFormItems = (items, callBack) => {\r\n items.forEach(item => {\r\n if (item.items || item.tabs) {\r\n forEachFormItems(item.items || item.tabs, callBack)\r\n } else {\r\n callBack(item)\r\n }\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport devices from \"../../../../core/devices\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport * as iconUtils from \"../../../../core/utils/icon\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../../../data/array_utils\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n confirm\r\n} from \"../../../../ui/dialog\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../../../ui/themes\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ACTION_OPTION_NAMES,\r\n BUTTON_NAMES,\r\n CELL_BASED_MODES,\r\n CELL_FOCUS_DISABLED_CLASS,\r\n CELL_MODIFIED,\r\n COMMAND_EDIT_CLASS,\r\n COMMAND_EDIT_WITH_ICONS_CLASS,\r\n DATA_EDIT_DATA_INSERT_TYPE,\r\n DATA_EDIT_DATA_REMOVE_TYPE,\r\n DATA_EDIT_DATA_UPDATE_TYPE,\r\n DEFAULT_START_EDIT_ACTION,\r\n EDIT_BUTTON_CLASS,\r\n EDIT_FORM_CLASS,\r\n EDIT_ICON_CLASS,\r\n EDIT_LINK_CLASS,\r\n EDIT_MODE_POPUP,\r\n EDIT_MODE_ROW,\r\n EDIT_MODES,\r\n EDITING_CHANGES_OPTION_NAME,\r\n EDITING_EDITCOLUMNNAME_OPTION_NAME,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITING_NAMESPACE,\r\n EDITING_POPUP_OPTION_NAME,\r\n EDITOR_CELL_CLASS,\r\n EDITORS_INPUT_SELECTOR,\r\n FIRST_NEW_ROW_POSITION,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n INSERT_INDEX,\r\n LAST_NEW_ROW_POSITION,\r\n LINK_CLASS,\r\n LINK_ICON_CLASS,\r\n METHOD_NAMES,\r\n PAGE_BOTTOM_NEW_ROW_POSITION,\r\n PAGE_TOP_NEW_ROW_POSITION,\r\n READONLY_CLASS,\r\n REQUIRED_EDITOR_LABELLEDBY_MODES,\r\n ROW_BASED_MODES,\r\n ROW_CLASS,\r\n ROW_INSERTED,\r\n ROW_MODIFIED,\r\n ROW_SELECTED,\r\n TARGET_COMPONENT_NAME,\r\n VIEWPORT_BOTTOM_NEW_ROW_POSITION,\r\n VIEWPORT_TOP_NEW_ROW_POSITION\r\n} from \"./const\";\r\nimport {\r\n createFailureHandler,\r\n generateNewRowTempKey,\r\n getButtonIndex,\r\n getButtonName,\r\n getEditingTexts,\r\n isEditingCell,\r\n isEditingOrShowEditorAlwaysDataCell\r\n} from \"./m_editing_utils\";\r\nclass EditingControllerImpl extends modules.ViewController {\r\n init() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this._validatingController = this.getController(\"validating\");\r\n this._editorFactoryController = this.getController(\"editorFactory\");\r\n this._focusController = this.getController(\"focus\");\r\n this._keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n this._columnsResizerController = this.getController(\"columnsResizer\");\r\n this._errorHandlingController = this.getController(\"errorHandling\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._headerPanelView = this.getView(\"headerPanel\");\r\n this._lastOperation = null;\r\n this._changes = [];\r\n if (this._deferreds) {\r\n this._deferreds.forEach(d => {\r\n d.reject(\"cancel\")\r\n })\r\n }\r\n this._deferreds = [];\r\n if (!this._dataChangedHandler) {\r\n this._dataChangedHandler = this._handleDataChanged.bind(this);\r\n this._dataController.changed.add(this._dataChangedHandler)\r\n }\r\n if (!this._saveEditorHandler) {\r\n this.createAction(\"onInitNewRow\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserted\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditingStart\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdating\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdated\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceling\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceled\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n this._updateEditColumn();\r\n this._updateEditButtons();\r\n if (!this._internalState) {\r\n this._internalState = []\r\n }\r\n this.component._optionsByReference[EDITING_EDITROWKEY_OPTION_NAME] = true;\r\n this.component._optionsByReference[EDITING_CHANGES_OPTION_NAME] = true\r\n }\r\n getEditMode() {\r\n var _a;\r\n var editMode = null !== (_a = this.option(\"editing.mode\")) && void 0 !== _a ? _a : EDIT_MODE_ROW;\r\n if (EDIT_MODES.includes(editMode)) {\r\n return editMode\r\n }\r\n return EDIT_MODE_ROW\r\n }\r\n isCellBasedEditMode() {\r\n var editMode = this.getEditMode();\r\n return CELL_BASED_MODES.includes(editMode)\r\n }\r\n _getDefaultEditorTemplate() {\r\n return (container, options) => {\r\n var $editor = $(\"<div>\").appendTo(container);\r\n var editorOptions = extend({}, options.column, {\r\n value: options.value,\r\n setValue: options.setValue,\r\n row: options.row,\r\n parentType: \"dataRow\",\r\n width: null,\r\n readOnly: !options.setValue,\r\n isOnForm: options.isOnForm,\r\n id: options.id\r\n });\r\n var needLabel = REQUIRED_EDITOR_LABELLEDBY_MODES.includes(this.getEditMode());\r\n if (needLabel) {\r\n editorOptions[\"aria-labelledby\"] = options.column.headerId\r\n }\r\n this._editorFactoryController.createEditor($editor, editorOptions)\r\n }\r\n }\r\n _getNewRowPosition() {\r\n var newRowPosition = this.option(\"editing.newRowPosition\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" === scrollingMode) {\r\n switch (newRowPosition) {\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n return VIEWPORT_TOP_NEW_ROW_POSITION;\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n return VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n default:\r\n return newRowPosition\r\n }\r\n }\r\n return newRowPosition\r\n }\r\n getChanges() {\r\n return this.option(EDITING_CHANGES_OPTION_NAME)\r\n }\r\n getInsertRowCount() {\r\n var changes = this.option(EDITING_CHANGES_OPTION_NAME);\r\n return changes.filter(change => \"insert\" === change.type).length\r\n }\r\n resetChanges() {\r\n var changes = this.getChanges();\r\n var needReset = null === changes || void 0 === changes ? void 0 : changes.length;\r\n if (needReset) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, [])\r\n }\r\n }\r\n _getInternalData(key) {\r\n return this._internalState.filter(item => equalByValue(item.key, key))[0]\r\n }\r\n _addInternalData(params) {\r\n var internalData = this._getInternalData(params.key);\r\n if (internalData) {\r\n return extend(internalData, params)\r\n }\r\n this._internalState.push(params);\r\n return params\r\n }\r\n _getOldData(key) {\r\n var _a;\r\n return null === (_a = this._getInternalData(key)) || void 0 === _a ? void 0 : _a.oldData\r\n }\r\n getUpdatedData(data) {\r\n var key = this._dataController.keyOf(data);\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (changes[editIndex]) {\r\n return createObjectWithChanges(data, changes[editIndex].data)\r\n }\r\n return data\r\n }\r\n getInsertedData() {\r\n return this.getChanges().filter(change => change.data && change.type === DATA_EDIT_DATA_INSERT_TYPE).map(change => change.data)\r\n }\r\n getRemovedData() {\r\n return this.getChanges().filter(change => this._getOldData(change.key) && change.type === DATA_EDIT_DATA_REMOVE_TYPE).map(change => this._getOldData(change.key))\r\n }\r\n _fireDataErrorOccurred(arg) {\r\n if (\"cancel\" === arg) {\r\n return\r\n }\r\n var $popupContent = this.getPopupContent();\r\n this._dataController.dataErrorOccurred.fire(arg, $popupContent)\r\n }\r\n _needToCloseEditableCell($targetElement) {}\r\n _closeEditItem($targetElement) {}\r\n _handleDataChanged(args) {}\r\n _isDefaultButtonVisible(button, options) {\r\n var result = true;\r\n switch (button.name) {\r\n case \"delete\":\r\n result = this.allowDeleting(options);\r\n break;\r\n case \"undelete\":\r\n result = false\r\n }\r\n return result\r\n }\r\n isPopupEditMode() {\r\n var editMode = this.option(\"editing.mode\");\r\n return editMode === EDIT_MODE_POPUP\r\n }\r\n _isButtonVisible(button, options) {\r\n var {\r\n visible: visible\r\n } = button;\r\n if (!isDefined(visible)) {\r\n return this._isDefaultButtonVisible(button, options)\r\n }\r\n return isFunction(visible) ? visible.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : visible\r\n }\r\n _isButtonDisabled(button, options) {\r\n var {\r\n disabled: disabled\r\n } = button;\r\n return isFunction(disabled) ? disabled.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : !!disabled\r\n }\r\n _getButtonConfig(button, options) {\r\n var config = isObject(button) ? button : {};\r\n var buttonName = getButtonName(button);\r\n var editingTexts = getEditingTexts(options);\r\n var methodName = METHOD_NAMES[buttonName];\r\n var editingOptions = this.option(\"editing\");\r\n var actionName = ACTION_OPTION_NAMES[buttonName];\r\n var allowAction = actionName ? editingOptions[actionName] : true;\r\n return extend({\r\n name: buttonName,\r\n text: editingTexts[buttonName],\r\n cssClass: EDIT_LINK_CLASS[buttonName]\r\n }, {\r\n onClick: methodName && (e => {\r\n var {\r\n event: event\r\n } = e;\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setTimeout(() => {\r\n options.row && allowAction && this[methodName] && this[methodName](options.row.rowIndex)\r\n })\r\n })\r\n }, config)\r\n }\r\n _getEditingButtons(options) {\r\n var buttonIndex;\r\n var haveCustomButtons = !!options.column.buttons;\r\n var buttons = (options.column.buttons || []).slice();\r\n if (haveCustomButtons) {\r\n buttonIndex = getButtonIndex(buttons, \"edit\");\r\n if (buttonIndex >= 0) {\r\n if (getButtonIndex(buttons, \"save\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"save\")\r\n }\r\n if (getButtonIndex(buttons, \"cancel\") < 0) {\r\n buttons.splice(getButtonIndex(buttons, \"save\") + 1, 0, \"cancel\")\r\n }\r\n }\r\n buttonIndex = getButtonIndex(buttons, \"delete\");\r\n if (buttonIndex >= 0 && getButtonIndex(buttons, \"undelete\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"undelete\")\r\n }\r\n } else {\r\n buttons = BUTTON_NAMES.slice()\r\n }\r\n return buttons.map(button => this._getButtonConfig(button, options))\r\n }\r\n _renderEditingButtons($container, buttons, options, change) {\r\n buttons.forEach(button => {\r\n if (this._isButtonVisible(button, options)) {\r\n this._createButton($container, button, options, change)\r\n }\r\n })\r\n }\r\n _getEditCommandCellTemplate() {\r\n return (container, options, change) => {\r\n var $container = $(container);\r\n if (\"data\" === options.rowType) {\r\n var buttons = this._getEditingButtons(options);\r\n this._renderEditingButtons($container, buttons, options, change);\r\n if (options.watch) {\r\n var dispose = options.watch(() => buttons.map(button => ({\r\n visible: this._isButtonVisible(button, options),\r\n disabled: this._isButtonDisabled(button, options)\r\n })), () => {\r\n $container.empty();\r\n this._renderEditingButtons($container, buttons, options)\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n }\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n }\r\n }\r\n isRowBasedEditMode() {\r\n var editMode = this.getEditMode();\r\n return ROW_BASED_MODES.includes(editMode)\r\n }\r\n getFirstEditableColumnIndex() {\r\n var columnIndex;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n each(visibleColumns, (index, column) => {\r\n if (column.allowEditing) {\r\n columnIndex = index;\r\n return false\r\n }\r\n });\r\n return columnIndex\r\n }\r\n getFirstEditableCellInRow(rowIndex) {\r\n var _a;\r\n var columnIndex = this.getFirstEditableColumnIndex();\r\n return null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a._getCellElement(rowIndex || 0, columnIndex)\r\n }\r\n getFocusedCellInRow(rowIndex) {\r\n return this.getFirstEditableCellInRow(rowIndex)\r\n }\r\n getIndexByKey(key, items) {\r\n return gridCoreUtils.getIndexByKey(key, items)\r\n }\r\n hasChanges(rowIndex) {\r\n var changes = this.getChanges();\r\n var result = false;\r\n for (var i = 0; i < (null === changes || void 0 === changes ? void 0 : changes.length); i++) {\r\n if (changes[i].type && (!isDefined(rowIndex) || this._dataController.getRowIndexByKey(changes[i].key) === rowIndex)) {\r\n result = true;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n dispose() {\r\n super.dispose();\r\n clearTimeout(this._inputFocusTimeoutID);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.up, this._pointerUpEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.down, this._pointerDownEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), clickEventName, this._saveEditorHandler)\r\n }\r\n _silentOption(name, value) {\r\n if (\"editing.changes\" === name) {\r\n this._changes = deepExtendArraySafe([], value)\r\n }\r\n super._silentOption(name, value)\r\n }\r\n optionChanged(args) {\r\n if (\"editing\" === args.name) {\r\n var {\r\n fullName: fullName\r\n } = args;\r\n if (fullName === EDITING_EDITROWKEY_OPTION_NAME) {\r\n this._handleEditRowKeyChange(args)\r\n } else if (fullName === EDITING_CHANGES_OPTION_NAME) {\r\n var isEqual = equalByValue(args.value, this._changes, {\r\n maxDepth: 4\r\n });\r\n if (!isEqual) {\r\n this._changes = deepExtendArraySafe([], args.value);\r\n this._handleChangesChange(args)\r\n }\r\n } else if (!args.handled) {\r\n this._columnsController.reinit();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n _handleEditRowKeyChange(args) {\r\n var rowIndex = this._dataController.getRowIndexByKey(args.value);\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n if (isDefined(args.value)) {\r\n if (args.value !== args.previousValue) {\r\n this._editRowFromOptionChanged(rowIndex, oldRowIndex)\r\n }\r\n } else {\r\n this.cancelEditData()\r\n }\r\n }\r\n _handleChangesChange(args) {\r\n var dataController = this._dataController;\r\n var changes = args.value;\r\n if (!args.value.length && !args.previousValue.length) {\r\n return\r\n }\r\n changes.forEach(change => {\r\n var _a;\r\n if (\"insert\" === change.type) {\r\n this._addInsertInfo(change)\r\n } else {\r\n var items = dataController.getCachedStoreData() || (null === (_a = dataController.items()) || void 0 === _a ? void 0 : _a.map(item => item.data));\r\n var rowIndex = gridCoreUtils.getIndexByKey(change.key, items, dataController.key());\r\n this._addInternalData({\r\n key: change.key,\r\n oldData: items[rowIndex]\r\n })\r\n }\r\n });\r\n dataController.updateItems({\r\n repaintChangesOnly: true,\r\n isLiveUpdate: false,\r\n isOptionChanged: true\r\n })\r\n }\r\n publicMethods() {\r\n return [\"addRow\", \"deleteRow\", \"undeleteRow\", \"editRow\", \"saveEditData\", \"cancelEditData\", \"hasEditData\"]\r\n }\r\n refresh() {\r\n if (!isDefined(this._pageIndex)) {\r\n return\r\n }\r\n this._refreshCore.apply(this, arguments)\r\n }\r\n _refreshCore(params) {}\r\n isEditing() {\r\n var isEditRowKeyDefined = isDefined(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n return isEditRowKeyDefined\r\n }\r\n isEditRow(rowIndex) {\r\n return false\r\n }\r\n _setEditRowKey(value, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n } else {\r\n this.option(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n }\r\n if (this._refocusEditCell) {\r\n this._refocusEditCell = false;\r\n this._focusEditingCell()\r\n }\r\n }\r\n _setEditRowKeyByIndex(rowIndex, silent) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (void 0 === key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n this._setEditRowKey(key, silent)\r\n }\r\n getEditRowIndex() {\r\n return this._getVisibleEditRowIndex()\r\n }\r\n getEditFormRowIndex() {\r\n return -1\r\n }\r\n isEditRowByIndex(rowIndex) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var isKeyEqual = isDefined(key) && equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key);\r\n if (isKeyEqual) {\r\n return this._getVisibleEditRowIndex() === rowIndex\r\n }\r\n return isKeyEqual\r\n }\r\n isEditCell(visibleRowIndex, columnIndex) {\r\n return this.isEditRowByIndex(visibleRowIndex) && this._getVisibleEditColumnIndex() === columnIndex\r\n }\r\n getPopupContent() {}\r\n _isProcessedItem(item) {\r\n return false\r\n }\r\n _getInsertRowIndex(items, change, isProcessedItems) {\r\n var result = -1;\r\n var dataController = this._dataController;\r\n var key = this._getInsertAfterOrBeforeKey(change);\r\n if (!isDefined(key) && 0 === items.length) {\r\n result = 0\r\n } else if (isDefined(key)) {\r\n items.some((item, index) => {\r\n var isProcessedItem = isProcessedItems || this._isProcessedItem(item);\r\n if (isObject(item)) {\r\n if (isProcessedItem || isDefined(item[INSERT_INDEX])) {\r\n if (equalByValue(item.key, key)) {\r\n result = index\r\n }\r\n } else if (equalByValue(dataController.keyOf(item), key)) {\r\n result = index\r\n }\r\n }\r\n if (result >= 0) {\r\n var nextItem = items[result + 1];\r\n if (nextItem && (\"detail\" === nextItem.rowType || \"detailAdaptive\" === nextItem.rowType) && isDefined(change.insertAfterKey)) {\r\n return\r\n }\r\n if (isDefined(change.insertAfterKey)) {\r\n result += 1\r\n }\r\n return true\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n _generateNewItem(key) {\r\n var _a;\r\n var item = {\r\n key: key\r\n };\r\n var insertInfo = null === (_a = this._getInternalData(key)) || void 0 === _a ? void 0 : _a.insertInfo;\r\n if (null === insertInfo || void 0 === insertInfo ? void 0 : insertInfo[INSERT_INDEX]) {\r\n item[INSERT_INDEX] = insertInfo[INSERT_INDEX]\r\n }\r\n return item\r\n }\r\n _getLoadedRowIndex(items, change, isProcessedItems) {\r\n var loadedRowIndex = this._getInsertRowIndex(items, change, isProcessedItems);\r\n var dataController = this._dataController;\r\n if (loadedRowIndex < 0) {\r\n var newRowPosition = this._getNewRowPosition();\r\n var pageIndex = dataController.pageIndex();\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (newRowPosition !== LAST_NEW_ROW_POSITION && 0 === pageIndex && !isDefined(insertAfterOrBeforeKey)) {\r\n loadedRowIndex = 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && dataController.isLastPageLoaded()) {\r\n loadedRowIndex = items.length\r\n }\r\n }\r\n return loadedRowIndex\r\n }\r\n processItems(items, e) {\r\n var {\r\n changeType: changeType\r\n } = e;\r\n this.update(changeType);\r\n var changes = this.getChanges();\r\n changes.forEach(change => {\r\n var _a;\r\n var isInsert = change.type === DATA_EDIT_DATA_INSERT_TYPE;\r\n if (!isInsert) {\r\n return\r\n }\r\n var {\r\n key: key\r\n } = change;\r\n var insertInfo = null === (_a = this._getInternalData(key)) || void 0 === _a ? void 0 : _a.insertInfo;\r\n if (!isDefined(key) || !isDefined(insertInfo)) {\r\n insertInfo = this._addInsertInfo(change);\r\n key = insertInfo.key\r\n }\r\n var loadedRowIndex = this._getLoadedRowIndex(items, change);\r\n var item = this._generateNewItem(key);\r\n if (loadedRowIndex >= 0) {\r\n items.splice(loadedRowIndex, 0, item)\r\n }\r\n });\r\n return items\r\n }\r\n processDataItem(item, options, generateDataValues) {\r\n var columns = options.visibleColumns;\r\n var key = item.data[INSERT_INDEX] ? item.data.key : item.key;\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n item.isEditing = false;\r\n if (editIndex >= 0) {\r\n this._processDataItemCore(item, changes[editIndex], key, columns, generateDataValues)\r\n }\r\n }\r\n _processDataItemCore(item, change, key, columns, generateDataValues) {\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n switch (type) {\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n item.isNewRow = true;\r\n item.key = key;\r\n item.data = data;\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n item.modified = true;\r\n item.oldData = item.data;\r\n item.data = createObjectWithChanges(item.data, data);\r\n item.modifiedValues = generateDataValues(data, columns, true);\r\n break;\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n item.removed = true\r\n }\r\n }\r\n _initNewRow(options) {\r\n this.executeAction(\"onInitNewRow\", options);\r\n if (options.promise) {\r\n var deferred = new Deferred;\r\n when(fromPromise(options.promise)).done(deferred.resolve).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n return deferred\r\n }\r\n }\r\n _createInsertInfo() {\r\n var insertInfo = {};\r\n insertInfo[INSERT_INDEX] = this._getInsertIndex();\r\n return insertInfo\r\n }\r\n _addInsertInfo(change, parentKey) {\r\n var _a;\r\n var insertInfo;\r\n change.key = this.getChangeKeyValue(change);\r\n var {\r\n key: key\r\n } = change;\r\n insertInfo = null === (_a = this._getInternalData(key)) || void 0 === _a ? void 0 : _a.insertInfo;\r\n if (!isDefined(insertInfo)) {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n insertInfo = this._createInsertInfo();\r\n if (!isDefined(insertAfterOrBeforeKey)) {\r\n this._setInsertAfterOrBeforeKey(change, parentKey)\r\n }\r\n }\r\n this._addInternalData({\r\n insertInfo: insertInfo,\r\n key: key\r\n });\r\n return {\r\n insertInfo: insertInfo,\r\n key: key\r\n }\r\n }\r\n getChangeKeyValue(change) {\r\n if (isDefined(change.key)) {\r\n return change.key\r\n }\r\n var keyExpr = this._dataController.key();\r\n var keyValue;\r\n if (change.data && keyExpr && !Array.isArray(keyExpr)) {\r\n keyValue = change.data[keyExpr]\r\n }\r\n if (!isDefined(keyValue)) {\r\n keyValue = generateNewRowTempKey()\r\n }\r\n return keyValue\r\n }\r\n _setInsertAfterOrBeforeKey(change, parentKey) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var dataController = this._dataController;\r\n var allItems = dataController.items(true);\r\n var newRowPosition = this._getNewRowPosition();\r\n switch (newRowPosition) {\r\n case FIRST_NEW_ROW_POSITION:\r\n case LAST_NEW_ROW_POSITION:\r\n break;\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n if (allItems.length) {\r\n var itemIndex = newRowPosition === PAGE_TOP_NEW_ROW_POSITION ? 0 : allItems.length - 1;\r\n change[0 === itemIndex ? \"insertBeforeKey\" : \"insertAfterKey\"] = allItems[itemIndex].key\r\n }\r\n break;\r\n default:\r\n var isViewportBottom = newRowPosition === VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n var visibleItemIndex = isViewportBottom ? null === rowsView || void 0 === rowsView ? void 0 : rowsView.getBottomVisibleItemIndex() : null === rowsView || void 0 === rowsView ? void 0 : rowsView.getTopVisibleItemIndex();\r\n var row = dataController.getVisibleRows()[visibleItemIndex];\r\n if (row && (!row.isEditing && \"detail\" === row.rowType || \"detailAdaptive\" === row.rowType)) {\r\n visibleItemIndex++\r\n }\r\n var insertKey = dataController.getKeyByRowIndex(visibleItemIndex);\r\n if (isDefined(insertKey)) {\r\n change.insertBeforeKey = insertKey\r\n }\r\n }\r\n }\r\n _getInsertIndex() {\r\n var maxInsertIndex = 0;\r\n this.getChanges().forEach(editItem => {\r\n var _a;\r\n var insertInfo = null === (_a = this._getInternalData(editItem.key)) || void 0 === _a ? void 0 : _a.insertInfo;\r\n if (isDefined(insertInfo) && editItem.type === DATA_EDIT_DATA_INSERT_TYPE && insertInfo[INSERT_INDEX] > maxInsertIndex) {\r\n maxInsertIndex = insertInfo[INSERT_INDEX]\r\n }\r\n });\r\n return maxInsertIndex + 1\r\n }\r\n _getInsertAfterOrBeforeKey(insertChange) {\r\n var _a;\r\n return null !== (_a = insertChange.insertAfterKey) && void 0 !== _a ? _a : insertChange.insertBeforeKey\r\n }\r\n _getPageIndexToInsertRow() {\r\n var newRowPosition = this._getNewRowPosition();\r\n var dataController = this._dataController;\r\n var pageIndex = dataController.pageIndex();\r\n var lastPageIndex = dataController.pageCount() - 1;\r\n if (newRowPosition === FIRST_NEW_ROW_POSITION && 0 !== pageIndex) {\r\n return 0\r\n }\r\n if (newRowPosition === LAST_NEW_ROW_POSITION && pageIndex !== lastPageIndex) {\r\n return lastPageIndex\r\n }\r\n return -1\r\n }\r\n addRow(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n if (!store) {\r\n dataController.fireError(\"E1052\", this.component.NAME);\r\n return (new Deferred).reject()\r\n }\r\n return this._addRow(parentKey)\r\n }\r\n _addRow(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var param = {\r\n data: {}\r\n };\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var deferred = new Deferred;\r\n this.refresh({\r\n allowCancelEditing: true\r\n });\r\n if (!this._allowRowAdding()) {\r\n when(this._navigateToNewRow(oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n if (!key) {\r\n param.data.__KEY__ = String(new Guid)\r\n }\r\n when(this._initNewRow(param, parentKey)).done(() => {\r\n if (this._allowRowAdding()) {\r\n when(this._addRowCore(param.data, parentKey, oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n _allowRowAdding(params) {\r\n var insertIndex = this._getInsertIndex();\r\n if (insertIndex > 1) {\r\n return false\r\n }\r\n return true\r\n }\r\n _addRowCore(data, parentKey, initialOldEditRowIndex) {\r\n var change = {\r\n data: data,\r\n type: DATA_EDIT_DATA_INSERT_TYPE\r\n };\r\n var editRowIndex = this._getVisibleEditRowIndex();\r\n var insertInfo = this._addInsertInfo(change, parentKey);\r\n var {\r\n key: key\r\n } = insertInfo;\r\n this._setEditRowKey(key, true);\r\n this._addChange(change);\r\n return this._navigateToNewRow(initialOldEditRowIndex, change, editRowIndex)\r\n }\r\n _navigateToNewRow(oldEditRowIndex, change, editRowIndex) {\r\n var d = new Deferred;\r\n var dataController = this._dataController;\r\n editRowIndex = null !== editRowIndex && void 0 !== editRowIndex ? editRowIndex : -1;\r\n change = null !== change && void 0 !== change ? change : this.getChanges().filter(c => c.type === DATA_EDIT_DATA_INSERT_TYPE)[0];\r\n if (!change) {\r\n return d.reject(\"cancel\").promise()\r\n }\r\n var pageIndexToInsertRow = this._getPageIndexToInsertRow();\r\n var rowIndex = this._getLoadedRowIndex(dataController.items(), change, true);\r\n var navigateToRowByKey = key => {\r\n var _a;\r\n when(null === (_a = this._focusController) || void 0 === _a ? void 0 : _a.navigateToRow(key)).done(() => {\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n d.resolve()\r\n })\r\n };\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (pageIndexToInsertRow >= 0) {\r\n dataController.pageIndex(pageIndexToInsertRow).done(() => {\r\n navigateToRowByKey(change.key)\r\n }).fail(d.reject)\r\n } else if (rowIndex < 0 && isDefined(insertAfterOrBeforeKey)) {\r\n navigateToRowByKey(insertAfterOrBeforeKey)\r\n } else {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, editRowIndex, rowIndex]\r\n });\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n if (rowIndex < 0) {\r\n navigateToRowByKey(change.key)\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n d.done(() => {\r\n var _a;\r\n null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.waitAsyncTemplates(true).done(() => {\r\n this._showAddedRow(rowIndex);\r\n this._afterInsertRow(change.key)\r\n })\r\n });\r\n return d.promise()\r\n }\r\n _showAddedRow(rowIndex) {\r\n this._focusFirstEditableCellInRow(rowIndex)\r\n }\r\n _beforeFocusElementInRow(rowIndex) {}\r\n _focusFirstEditableCellInRow(rowIndex) {\r\n var _a;\r\n var dataController = this._dataController;\r\n var key = dataController.getKeyByRowIndex(rowIndex);\r\n var $firstCell = this.getFirstEditableCellInRow(rowIndex);\r\n null === (_a = this._keyboardNavigationController) || void 0 === _a ? void 0 : _a.focus($firstCell);\r\n this.option(\"focusedRowKey\", key);\r\n this._editCellInProgress = true;\r\n this._delayedInputFocus($firstCell, () => {\r\n rowIndex = dataController.getRowIndexByKey(key);\r\n this._editCellInProgress = false;\r\n this._beforeFocusElementInRow(rowIndex)\r\n })\r\n }\r\n _isEditingStart(options) {\r\n this.executeAction(\"onEditingStart\", options);\r\n return options.cancel\r\n }\r\n _beforeUpdateItems(rowIndices, rowIndex) {}\r\n _getVisibleEditColumnIndex() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n if (!isDefined(editColumnName)) {\r\n return -1\r\n }\r\n return this._columnsController.getVisibleColumnIndex(editColumnName)\r\n }\r\n _setEditColumnNameByIndex(index, silent) {\r\n var _a;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n this._setEditColumnName(null === (_a = visibleColumns[index]) || void 0 === _a ? void 0 : _a.name, silent)\r\n }\r\n _setEditColumnName(name, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n } else {\r\n this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n }\r\n }\r\n _resetEditColumnName() {\r\n this._setEditColumnName(null, true)\r\n }\r\n _getEditColumn() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n return this._getColumnByName(editColumnName)\r\n }\r\n _getColumnByName(name) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var editColumn;\r\n isDefined(name) && visibleColumns.some(column => {\r\n if (column.name === name) {\r\n editColumn = column;\r\n return true\r\n }\r\n });\r\n return editColumn\r\n }\r\n _getVisibleEditRowIndex(columnName) {\r\n var dataController = this._dataController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var rowIndex = dataController.getRowIndexByKey(editRowKey);\r\n if (-1 === rowIndex) {\r\n return rowIndex\r\n }\r\n return rowIndex + this._getEditRowIndexCorrection(columnName)\r\n }\r\n _getEditRowIndexCorrection(columnName) {\r\n var editColumn = columnName ? this._getColumnByName(columnName) : this._getEditColumn();\r\n var isColumnHidden = \"adaptiveHidden\" === (null === editColumn || void 0 === editColumn ? void 0 : editColumn.visibleWidth);\r\n return isColumnHidden ? 1 : 0\r\n }\r\n _resetEditRowKey() {\r\n this._refocusEditCell = false;\r\n this._setEditRowKey(null, true)\r\n }\r\n _resetEditIndices() {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n editRow(rowIndex) {\r\n var _a;\r\n var dataController = this._dataController;\r\n var items = dataController.items();\r\n var item = items[rowIndex];\r\n var params = {\r\n data: item && item.data,\r\n cancel: false\r\n };\r\n var oldRowIndex = this._getVisibleEditRowIndex();\r\n if (!item) {\r\n return\r\n }\r\n if (rowIndex === oldRowIndex) {\r\n return true\r\n }\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return\r\n }\r\n this.resetChanges();\r\n this.init();\r\n this._resetEditColumnName();\r\n this._pageIndex = dataController.pageIndex();\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: null !== (_a = item.oldData) && void 0 !== _a ? _a : item.data\r\n });\r\n this._setEditRowKey(item.key)\r\n }\r\n _editRowFromOptionChanged(rowIndex, oldRowIndex) {\r\n var rowIndices = [oldRowIndex, rowIndex];\r\n this._beforeUpdateItems(rowIndices, rowIndex, oldRowIndex);\r\n this._editRowFromOptionChangedCore(rowIndices, rowIndex)\r\n }\r\n _editRowFromOptionChangedCore(rowIndices, rowIndex, preventRendering) {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices,\r\n cancel: preventRendering\r\n })\r\n }\r\n _focusEditorIfNeed() {}\r\n _showEditPopup(rowIndex, repaintForm) {}\r\n _repaintEditPopup() {}\r\n _getEditPopupHiddenHandler() {\r\n return e => {\r\n if (this.isEditing()) {\r\n this.cancelEditData()\r\n }\r\n }\r\n }\r\n _getPopupEditFormTemplate(rowIndex) {}\r\n _getSaveButtonConfig() {\r\n var buttonConfig = {\r\n text: this.option(\"editing.texts.saveRowChanges\"),\r\n onClick: this.saveEditData.bind(this)\r\n };\r\n if (isFluent(current())) {\r\n buttonConfig.stylingMode = \"contained\";\r\n buttonConfig.type = \"default\"\r\n }\r\n return buttonConfig\r\n }\r\n _getCancelButtonConfig() {\r\n var buttonConfig = {\r\n text: this.option(\"editing.texts.cancelRowChanges\"),\r\n onClick: this.cancelEditData.bind(this)\r\n };\r\n if (isFluent(current())) {\r\n buttonConfig.stylingMode = \"outlined\"\r\n }\r\n return buttonConfig\r\n }\r\n _removeInternalData(key) {\r\n var internalData = this._getInternalData(key);\r\n var index = this._internalState.indexOf(internalData);\r\n if (index > -1) {\r\n this._internalState.splice(index, 1)\r\n }\r\n }\r\n _updateInsertAfterOrBeforeKeys(changes, index) {\r\n var removeChange = changes[index];\r\n changes.forEach(change => {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (equalByValue(insertAfterOrBeforeKey, removeChange.key)) {\r\n change[isDefined(change.insertAfterKey) ? \"insertAfterKey\" : \"insertBeforeKey\"] = this._getInsertAfterOrBeforeKey(removeChange)\r\n }\r\n })\r\n }\r\n _removeChange(index) {\r\n if (index >= 0) {\r\n var changes = [...this.getChanges()];\r\n var {\r\n key: key\r\n } = changes[index];\r\n this._removeInternalData(key);\r\n this._updateInsertAfterOrBeforeKeys(changes, index);\r\n changes.splice(index, 1);\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n }\r\n executeOperation(deferred, func) {\r\n this._lastOperation && this._lastOperation.reject();\r\n this._lastOperation = deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (\"rejected\" === deferred.state()) {\r\n return\r\n }\r\n func();\r\n this._lastOperation = null\r\n }).fail(() => {\r\n deferred.reject();\r\n this._lastOperation = null\r\n })\r\n }\r\n waitForDeferredOperations() {\r\n return when(...this._deferreds)\r\n }\r\n _processCanceledEditingCell() {}\r\n _repaintEditCell(column, oldColumn, oldEditRowIndex) {\r\n if (!column || !column.showEditorAlways || oldColumn && !oldColumn.showEditorAlways) {\r\n this._editCellInProgress = true;\r\n this._needFocusEditor = true;\r\n this._editorFactoryController.loseFocus();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, this._getVisibleEditRowIndex()]\r\n })\r\n } else if (column !== oldColumn) {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: []\r\n })\r\n }\r\n }\r\n _delayedInputFocus($cell, beforeFocusCallback, callBeforeFocusCallbackAlways) {\r\n var inputFocus = () => {\r\n if (beforeFocusCallback) {\r\n beforeFocusCallback()\r\n }\r\n if ($cell) {\r\n var $focusableElement = $cell.find(FOCUSABLE_ELEMENT_SELECTOR).first();\r\n gridCoreUtils.focusAndSelectElement(this, $focusableElement)\r\n }\r\n this._beforeFocusCallback = null\r\n };\r\n if (devices.real().ios || devices.real().android) {\r\n inputFocus()\r\n } else {\r\n if (this._beforeFocusCallback) {\r\n this._beforeFocusCallback()\r\n }\r\n clearTimeout(this._inputFocusTimeoutID);\r\n if (callBeforeFocusCallbackAlways) {\r\n this._beforeFocusCallback = beforeFocusCallback\r\n }\r\n this._inputFocusTimeoutID = setTimeout(inputFocus)\r\n }\r\n }\r\n _focusEditingCell(beforeFocusCallback, $editCell, callBeforeFocusCallbackAlways) {\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n $editCell = $editCell || this._rowsView && this._rowsView._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($editCell) {\r\n this._delayedInputFocus($editCell, beforeFocusCallback, callBeforeFocusCallbackAlways)\r\n }\r\n }\r\n deleteRow(rowIndex) {\r\n this._checkAndDeleteRow(rowIndex)\r\n }\r\n _checkAndDeleteRow(rowIndex) {\r\n var editingOptions = this.option(\"editing\");\r\n var editingTexts = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.texts;\r\n var confirmDelete = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.confirmDelete;\r\n var confirmDeleteMessage = null === editingTexts || void 0 === editingTexts ? void 0 : editingTexts.confirmDeleteMessage;\r\n var item = this._dataController.items()[rowIndex];\r\n var allowDeleting = !this.isEditing() || item.isNewRow;\r\n if (item && allowDeleting) {\r\n if (!confirmDelete || !confirmDeleteMessage) {\r\n this._deleteRowCore(rowIndex)\r\n } else {\r\n var confirmDeleteTitle = editingTexts && editingTexts.confirmDeleteTitle;\r\n var showDialogTitle = isDefined(confirmDeleteTitle) && confirmDeleteTitle.length > 0;\r\n confirm(confirmDeleteMessage, confirmDeleteTitle, showDialogTitle).done(confirmResult => {\r\n if (confirmResult) {\r\n this._deleteRowCore(rowIndex)\r\n }\r\n })\r\n }\r\n }\r\n }\r\n _deleteRowCore(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var key = item && item.key;\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n this.refresh();\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n if (changes[editIndex].type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n } else {\r\n this._addChange({\r\n key: key,\r\n oldData: item.data,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n return this._afterDeleteRow(rowIndex, oldEditRowIndex)\r\n }\r\n _afterDeleteRow(rowIndex, oldEditRowIndex) {\r\n return this.saveEditData()\r\n }\r\n undeleteRow(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var key = item && item.key;\r\n var changes = this.getChanges();\r\n if (item) {\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var {\r\n data: data\r\n } = changes[editIndex];\r\n if (isEmptyObject(data)) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n })\r\n }\r\n }\r\n }\r\n _fireOnSaving() {\r\n var onSavingParams = {\r\n cancel: false,\r\n promise: null,\r\n changes: [...this.getChanges()]\r\n };\r\n this.executeAction(\"onSaving\", onSavingParams);\r\n var d = new Deferred;\r\n when(fromPromise(onSavingParams.promise)).done(() => {\r\n d.resolve(onSavingParams)\r\n }).fail(arg => {\r\n createFailureHandler(d);\r\n this._fireDataErrorOccurred(arg);\r\n d.resolve({\r\n cancel: true\r\n })\r\n });\r\n return d\r\n }\r\n _executeEditingAction(actionName, params, func) {\r\n if (this.component._disposed) {\r\n return null\r\n }\r\n var deferred = new Deferred;\r\n this.executeAction(actionName, params);\r\n when(fromPromise(params.cancel)).done(cancel => {\r\n if (cancel) {\r\n setTimeout(() => {\r\n deferred.resolve(\"cancel\")\r\n })\r\n } else {\r\n func(params).done(deferred.resolve).fail(createFailureHandler(deferred))\r\n }\r\n }).fail(createFailureHandler(deferred));\r\n return deferred\r\n }\r\n _processChanges(deferreds, results, dataChanges, changes) {\r\n var store = this._dataController.store();\r\n each(changes, (index, change) => {\r\n var oldData = this._getOldData(change.key);\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n var changeCopy = _extends({}, change);\r\n var deferred;\r\n var params;\r\n if (this._beforeSaveEditData(change, index)) {\r\n return\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n params = {\r\n data: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowRemoving\", params, () => store.remove(change.key).done(key => {\r\n dataChanges.push({\r\n type: \"remove\",\r\n key: key\r\n })\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n params = {\r\n data: data,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowInserting\", params, () => store.insert(params.data).done((data, key) => {\r\n if (isDefined(key)) {\r\n changeCopy.key = key\r\n }\r\n if (data && isObject(data) && data !== params.data) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"insert\",\r\n data: data,\r\n index: 0\r\n })\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n params = {\r\n newData: data,\r\n oldData: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowUpdating\", params, () => store.update(change.key, params.newData).done((data, key) => {\r\n if (data && isObject(data) && data !== params.newData) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"update\",\r\n key: key,\r\n data: data\r\n })\r\n }))\r\n }\r\n changes[index] = changeCopy;\r\n if (deferred) {\r\n var doneDeferred = new Deferred;\r\n deferred.always(data => {\r\n results.push({\r\n key: change.key,\r\n result: data\r\n })\r\n }).always(doneDeferred.resolve);\r\n deferreds.push(doneDeferred.promise())\r\n }\r\n })\r\n }\r\n _processRemoveIfError(changes, editIndex) {\r\n var change = changes[editIndex];\r\n if ((null === change || void 0 === change ? void 0 : change.type) === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n }\r\n return true\r\n }\r\n _processRemove(changes, editIndex, cancel) {\r\n var change = changes[editIndex];\r\n if (!cancel || !change || change.type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n return this._processRemoveCore(changes, editIndex, !cancel || !change)\r\n }\r\n }\r\n _processRemoveCore(changes, editIndex, processIfBatch) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n return true\r\n }\r\n _processSaveEditDataResult(results) {\r\n var hasSavedData = false;\r\n var changes = [...this.getChanges()];\r\n var changesLength = changes.length;\r\n for (var i = 0; i < results.length; i++) {\r\n var arg = results[i].result;\r\n var cancel = \"cancel\" === arg;\r\n var editIndex = gridCoreUtils.getIndexByKey(results[i].key, changes);\r\n var change = changes[editIndex];\r\n var isError = arg && arg instanceof Error;\r\n if (isError) {\r\n if (change) {\r\n this._addInternalData({\r\n key: change.key,\r\n error: arg\r\n })\r\n }\r\n this._fireDataErrorOccurred(arg);\r\n if (this._processRemoveIfError(changes, editIndex)) {\r\n break\r\n }\r\n } else if (this._processRemove(changes, editIndex, cancel)) {\r\n hasSavedData = !cancel\r\n }\r\n }\r\n if (changes.length < changesLength) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes)\r\n }\r\n return hasSavedData\r\n }\r\n _fireSaveEditDataEvents(changes) {\r\n each(changes, (_, _ref) => {\r\n var {\r\n data: data,\r\n key: key,\r\n type: type\r\n } = _ref;\r\n var internalData = this._addInternalData({\r\n key: key\r\n });\r\n var params = {\r\n key: key,\r\n data: data\r\n };\r\n if (internalData.error) {\r\n params.error = internalData.error\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n this.executeAction(\"onRowRemoved\", extend({}, params, {\r\n data: internalData.oldData\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n this.executeAction(\"onRowInserted\", params);\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n this.executeAction(\"onRowUpdated\", params)\r\n }\r\n });\r\n this.executeAction(\"onSaved\", {\r\n changes: changes\r\n })\r\n }\r\n saveEditData() {\r\n var deferred = new Deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (this.isSaving()) {\r\n this._resolveAfterSave(deferred);\r\n return\r\n }\r\n when(this._beforeSaveEditData()).done(cancel => {\r\n if (cancel) {\r\n this._resolveAfterSave(deferred, {\r\n cancel: cancel\r\n });\r\n return\r\n }\r\n this._saving = true;\r\n this._saveEditDataInner().always(() => {\r\n this._saving = false;\r\n if (this._refocusEditCell) {\r\n this._focusEditingCell()\r\n }\r\n }).done(deferred.resolve).fail(deferred.reject)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n _resolveAfterSave(deferred) {\r\n var {\r\n cancel: cancel,\r\n error: error\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n when(this._afterSaveEditData(cancel)).done(() => {\r\n deferred.resolve(error)\r\n }).fail(deferred.reject)\r\n }\r\n _saveEditDataInner() {\r\n var result = new Deferred;\r\n var results = [];\r\n var deferreds = [];\r\n var dataChanges = [];\r\n var dataSource = this._dataController.dataSource();\r\n when(this._fireOnSaving()).done(_ref2 => {\r\n var {\r\n cancel: cancel,\r\n changes: changes\r\n } = _ref2;\r\n if (cancel) {\r\n return result.resolve().promise()\r\n }\r\n this._processChanges(deferreds, results, dataChanges, changes);\r\n if (deferreds.length) {\r\n this._refocusEditCell = true;\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.beginLoading();\r\n when(...deferreds).done(() => {\r\n if (this._processSaveEditDataResult(results)) {\r\n this._endSaving(dataChanges, changes, result)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve()\r\n }\r\n }).fail(error => {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve(error)\r\n });\r\n return result.always(() => {\r\n this._refocusEditCell = true\r\n }).promise()\r\n }\r\n this._cancelSaving(result)\r\n }).fail(result.reject);\r\n return result.promise()\r\n }\r\n _beforeEndSaving(changes) {\r\n this._resetEditIndices()\r\n }\r\n _endSaving(dataChanges, changes, deferred) {\r\n var dataSource = this._dataController.dataSource();\r\n this._beforeEndSaving(changes);\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n this._refreshDataAfterSave(dataChanges, changes, deferred)\r\n }\r\n _cancelSaving(result) {\r\n this.executeAction(\"onSaved\", {\r\n changes: []\r\n });\r\n this._resolveAfterSave(result)\r\n }\r\n _refreshDataAfterSave(dataChanges, changes, deferred) {\r\n var dataController = this._dataController;\r\n var refreshMode = this.option(\"editing.refreshMode\");\r\n var isFullRefresh = \"reshape\" !== refreshMode && \"repaint\" !== refreshMode;\r\n if (!isFullRefresh) {\r\n dataController.push(dataChanges)\r\n }\r\n when(dataController.refresh({\r\n selection: isFullRefresh,\r\n reload: isFullRefresh,\r\n load: \"reshape\" === refreshMode,\r\n changesOnly: this.option(\"repaintChangesOnly\")\r\n })).always(() => {\r\n this._fireSaveEditDataEvents(changes)\r\n }).done(() => {\r\n this._resolveAfterSave(deferred)\r\n }).fail(error => {\r\n this._resolveAfterSave(deferred, {\r\n error: error\r\n })\r\n })\r\n }\r\n isSaving() {\r\n return this._saving\r\n }\r\n _updateEditColumn() {\r\n var isEditColumnVisible = this._isEditColumnVisible();\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var cssClass = COMMAND_EDIT_CLASS + (useIcons ? \" \".concat(COMMAND_EDIT_WITH_ICONS_CLASS) : \"\");\r\n this._columnsController.addCommandColumn({\r\n type: \"buttons\",\r\n command: \"edit\",\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass,\r\n width: \"auto\",\r\n alignment: \"center\",\r\n cellTemplate: this._getEditCommandCellTemplate(),\r\n fixedPosition: \"right\"\r\n });\r\n this._columnsController.columnOption(\"command:edit\", {\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass\r\n })\r\n }\r\n _isEditColumnVisible() {\r\n var editingOptions = this.option(\"editing\");\r\n return editingOptions.allowDeleting\r\n }\r\n _isEditButtonDisabled() {\r\n var hasChanges = this.hasChanges();\r\n var isEditRowDefined = isDefined(this.option(\"editing.editRowKey\"));\r\n return !(isEditRowDefined || hasChanges)\r\n }\r\n _updateEditButtons() {\r\n var isButtonDisabled = this._isEditButtonDisabled();\r\n if (this._headerPanelView) {\r\n this._headerPanelView.setToolbarItemDisabled(\"saveButton\", isButtonDisabled);\r\n this._headerPanelView.setToolbarItemDisabled(\"revertButton\", isButtonDisabled)\r\n }\r\n }\r\n _applyModified($element, options) {\r\n $element && $element.addClass(CELL_MODIFIED)\r\n }\r\n _beforeCloseEditCellInBatchMode(rowIndices) {}\r\n cancelEditData() {\r\n var changes = this.getChanges();\r\n var params = {\r\n cancel: false,\r\n changes: changes\r\n };\r\n this.executeAction(\"onEditCanceling\", params);\r\n if (!params.cancel) {\r\n this._cancelEditDataCore();\r\n this.executeAction(\"onEditCanceled\", {\r\n changes: changes\r\n })\r\n }\r\n }\r\n _cancelEditDataCore() {\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n this._beforeCancelEditData();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey();\r\n this._afterCancelEditData(rowIndex)\r\n }\r\n _afterCancelEditData(rowIndex) {\r\n var dataController = this._dataController;\r\n dataController.updateItems({\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\")\r\n })\r\n }\r\n _hideEditPopup() {}\r\n hasEditData() {\r\n return this.hasChanges()\r\n }\r\n update(changeType) {\r\n var dataController = this._dataController;\r\n if (dataController && this._pageIndex !== dataController.pageIndex()) {\r\n if (\"refresh\" === changeType) {\r\n this.refresh({\r\n isPageChanged: true\r\n })\r\n }\r\n this._pageIndex = dataController.pageIndex()\r\n }\r\n this._updateEditButtons()\r\n }\r\n _getRowIndicesForCascadeUpdating(row, skipCurrentRow) {\r\n return skipCurrentRow ? [] : [row.rowIndex]\r\n }\r\n addDeferred(deferred) {\r\n if (!this._deferreds.includes(deferred)) {\r\n this._deferreds.push(deferred);\r\n deferred.always(() => {\r\n var index = this._deferreds.indexOf(deferred);\r\n if (index >= 0) {\r\n this._deferreds.splice(index, 1)\r\n }\r\n })\r\n }\r\n }\r\n _prepareChange(options, value, text) {\r\n var _a;\r\n var newData = {};\r\n var oldData = null === (_a = options.row) || void 0 === _a ? void 0 : _a.data;\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 !== rowKey) {\r\n options.value = value;\r\n var setCellValueResult = fromPromise(options.column.setCellValue(newData, value, extend(true, {}, oldData), text));\r\n setCellValueResult.done(() => {\r\n deferred.resolve({\r\n data: newData,\r\n key: rowKey,\r\n oldData: oldData,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n if (isDefined(text) && options.column.displayValueMap) {\r\n options.column.displayValueMap[value] = text\r\n }\r\n this._updateRowValues(options);\r\n this.addDeferred(deferred)\r\n }\r\n return deferred\r\n }\r\n _updateRowValues(options) {\r\n if (options.values) {\r\n var dataController = this._dataController;\r\n var rowIndex = dataController.getRowIndexByKey(options.key);\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n if (row) {\r\n options.row.values = row.values;\r\n options.values = row.values\r\n }\r\n options.values[options.columnIndex] = options.value\r\n }\r\n }\r\n updateFieldValue(options, value, text, forceUpdateRow) {\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 === rowKey) {\r\n this._dataController.fireError(\"E1043\")\r\n }\r\n if (options.column.setCellValue) {\r\n this._prepareChange(options, value, text).done(params => {\r\n when(this._applyChange(options, params, forceUpdateRow)).always(() => {\r\n deferred.resolve()\r\n })\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n }\r\n _focusPreviousEditingCellIfNeed(options) {\r\n if (this.hasEditData() && !this.isEditCell(options.rowIndex, options.columnIndex)) {\r\n this._focusEditingCell();\r\n this._updateEditRow(options.row, true);\r\n return true\r\n }\r\n }\r\n _needUpdateRow(column) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (!column) {\r\n column = this._getEditColumn()\r\n }\r\n var isCustomSetCellValue = column && column.setCellValue !== column.defaultSetCellValue;\r\n var isCustomCalculateCellValue = visibleColumns.some(visibleColumn => visibleColumn.calculateCellValue !== visibleColumn.defaultCalculateCellValue);\r\n return isCustomSetCellValue || isCustomCalculateCellValue\r\n }\r\n _applyChange(options, params, forceUpdateRow) {\r\n var changeOptions = _extends(_extends({}, options), {\r\n forceUpdateRow: forceUpdateRow\r\n });\r\n this._addChange(params, changeOptions);\r\n this._updateEditButtons();\r\n return this._applyChangeCore(options, changeOptions.forceUpdateRow)\r\n }\r\n _applyChangeCore(options, forceUpdateRow) {\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var {\r\n row: row\r\n } = options;\r\n if (row) {\r\n if (forceUpdateRow || isCustomSetCellValue) {\r\n this._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n } else if (row.update) {\r\n row.update()\r\n }\r\n }\r\n }\r\n _updateEditRowCore(row, skipCurrentRow, isCustomSetCellValue) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: this._getRowIndicesForCascadeUpdating(row, skipCurrentRow)\r\n })\r\n }\r\n _updateEditRow(row, forceUpdateRow, isCustomSetCellValue) {\r\n if (forceUpdateRow) {\r\n this._updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n this._updateRowWithDelay(row, isCustomSetCellValue)\r\n }\r\n }\r\n _updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue) {\r\n this._updateEditRowCore(row, !forceUpdateRow, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (!forceUpdateRow) {\r\n this._focusEditingCell()\r\n }\r\n }\r\n _updateRowWithDelay(row, isCustomSetCellValue) {\r\n var deferred = new Deferred;\r\n this.addDeferred(deferred);\r\n setTimeout(() => {\r\n var _a;\r\n var elementContainer = (null === (_a = this._editForm) || void 0 === _a ? void 0 : _a.element()) || this.component.$element().get(0);\r\n var $focusedElement = $(domAdapter.getActiveElement(elementContainer));\r\n var columnIndex = this._rowsView.getCellIndex($focusedElement, row.rowIndex);\r\n var focusedElement = $focusedElement.get(0);\r\n var selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._updateEditRowCore(row, false, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (columnIndex >= 0) {\r\n var $focusedItem = this._rowsView._getCellElement(row.rowIndex, columnIndex);\r\n this._delayedInputFocus($focusedItem, () => {\r\n setTimeout(() => {\r\n var _a;\r\n focusedElement = domAdapter.getActiveElement(null === (_a = this.component.$element()) || void 0 === _a ? void 0 : _a.get(0));\r\n if (selectionRange.selectionStart >= 0) {\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n }\r\n })\r\n })\r\n }\r\n deferred.resolve()\r\n })\r\n }\r\n _validateEditFormAfterUpdate() {}\r\n _addChange(changeParams, options) {\r\n var _a;\r\n var row = null === options || void 0 === options ? void 0 : options.row;\r\n var changes = [...this.getChanges()];\r\n var index = gridCoreUtils.getIndexByKey(changeParams.key, changes);\r\n if (index < 0) {\r\n index = changes.length;\r\n this._addInternalData({\r\n key: changeParams.key,\r\n oldData: changeParams.oldData\r\n });\r\n delete changeParams.oldData;\r\n changes.push(changeParams)\r\n }\r\n var change = _extends({}, changes[index]);\r\n if (change) {\r\n if (changeParams.data) {\r\n change.data = createObjectWithChanges(change.data, changeParams.data)\r\n }\r\n if ((!change.type || !changeParams.data) && changeParams.type) {\r\n change.type = changeParams.type\r\n }\r\n if (row) {\r\n row.oldData = this._getOldData(row.key);\r\n row.data = createObjectWithChanges(row.data, changeParams.data)\r\n }\r\n }\r\n changes[index] = change;\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (options && change !== (null === (_a = this.getChanges()) || void 0 === _a ? void 0 : _a[index])) {\r\n options.forceUpdateRow = true\r\n }\r\n return change\r\n }\r\n _getFormEditItemTemplate(cellOptions, column) {\r\n return column.editCellTemplate || this._getDefaultEditorTemplate()\r\n }\r\n getColumnTemplate(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var rowIndex = options.row && options.row.rowIndex;\r\n var template;\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isRowEditing = this.isEditRow(rowIndex);\r\n var isCellEditing = this.isEditCell(rowIndex, options.columnIndex);\r\n var editingStartOptions;\r\n if ((column.showEditorAlways || column.setCellValue && (isRowEditing && column.allowEditing || isCellEditing)) && (\"data\" === options.rowType || \"detailAdaptive\" === options.rowType) && !column.command) {\r\n var allowUpdating = this.allowUpdating(options);\r\n if (((allowUpdating || isRowEditing) && column.allowEditing || isCellEditing) && (isRowEditing || !isRowMode)) {\r\n if (column.showEditorAlways && !isRowMode) {\r\n editingStartOptions = {\r\n cancel: false,\r\n key: options.row.isNewRow ? void 0 : options.row.key,\r\n data: options.row.data,\r\n column: column\r\n };\r\n this._isEditingStart(editingStartOptions)\r\n }\r\n if (!editingStartOptions || !editingStartOptions.cancel) {\r\n options.setValue = (value, text) => {\r\n this.updateFieldValue(options, value, text)\r\n }\r\n }\r\n }\r\n template = column.editCellTemplate || this._getDefaultEditorTemplate()\r\n } else if (\"detail\" === column.command && \"detail\" === options.rowType && isRowEditing) {\r\n template = null === this || void 0 === this ? void 0 : this.getEditFormTemplate(options)\r\n }\r\n return template\r\n }\r\n _createButton($container, button, options, change) {\r\n var icon = EDIT_ICON_CLASS[button.name];\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var useLegacyColumnButtonTemplate = this.option(\"useLegacyColumnButtonTemplate\");\r\n var $button = $(\"<a>\").attr(\"href\", \"#\").addClass(LINK_CLASS).addClass(button.cssClass);\r\n if (button.template && useLegacyColumnButtonTemplate) {\r\n this._rowsView.renderTemplate($container, button.template, options, true)\r\n } else {\r\n if (button.template) {\r\n $button = $(\"<span>\").addClass(button.cssClass)\r\n } else if (useIcons && icon || button.icon) {\r\n icon = button.icon || icon;\r\n var iconType = iconUtils.getImageSourceType(icon);\r\n if (\"image\" === iconType || \"svg\" === iconType) {\r\n $button = iconUtils.getImageContainer(icon).addClass(button.cssClass)\r\n } else {\r\n $button.addClass(\"dx-icon\".concat(\"dxIcon\" === iconType ? \"-\" : \" \").concat(icon)).attr(\"title\", button.text)\r\n }\r\n $button.addClass(LINK_ICON_CLASS);\r\n $container.addClass(COMMAND_EDIT_WITH_ICONS_CLASS);\r\n var localizationName = this.getButtonLocalizationNames()[button.name];\r\n localizationName && $button.attr(\"aria-label\", messageLocalization.format(localizationName))\r\n } else {\r\n $button.text(button.text)\r\n }\r\n if (isDefined(button.hint)) {\r\n $button.attr(\"title\", button.hint)\r\n }\r\n if (this._isButtonDisabled(button, options)) {\r\n $button.addClass(\"dx-state-disabled\")\r\n } else if (!button.template || button.onClick) {\r\n eventsEngine.on($button, addNamespace(\"click\", EDITING_NAMESPACE), this.createAction(e => {\r\n var _a;\r\n null === (_a = button.onClick) || void 0 === _a ? void 0 : _a.call(button, extend({}, e, {\r\n row: options.row,\r\n column: options.column\r\n }));\r\n e.event.preventDefault();\r\n e.event.stopPropagation()\r\n }))\r\n }\r\n $container.append($button, \" \");\r\n if (button.template) {\r\n options.renderAsync = false;\r\n this._rowsView.renderTemplate($button, button.template, options, true, change)\r\n }\r\n }\r\n }\r\n getButtonLocalizationNames() {\r\n return {\r\n edit: \"dxDataGrid-editingEditRow\",\r\n save: \"dxDataGrid-editingSaveRowChanges\",\r\n delete: \"dxDataGrid-editingDeleteRow\",\r\n undelete: \"dxDataGrid-editingUndeleteRow\",\r\n cancel: \"dxDataGrid-editingCancelRowChanges\"\r\n }\r\n }\r\n prepareButtonItem(headerPanel, name, methodName, sortIndex) {\r\n var _a;\r\n var editingTexts = null !== (_a = this.option(\"editing.texts\")) && void 0 !== _a ? _a : {};\r\n var titleButtonTextByClassNames = {\r\n revert: editingTexts.cancelAllChanges,\r\n save: editingTexts.saveAllChanges,\r\n addRow: editingTexts.addRow\r\n };\r\n var className = {\r\n revert: \"cancel\",\r\n save: \"save\",\r\n addRow: \"addrow\"\r\n } [name];\r\n var hintText = titleButtonTextByClassNames[name];\r\n var isButtonDisabled = (\"save\" === className || \"cancel\" === className) && this._isEditButtonDisabled();\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n onInitialized: e => {\r\n $(e.element).addClass(headerPanel._getToolbarButtonClass(\"\".concat(EDIT_BUTTON_CLASS, \" \").concat(this.addWidgetPrefix(className), \"-button\")))\r\n },\r\n icon: \"edit-button-\".concat(className),\r\n disabled: isButtonDisabled,\r\n onClick: () => {\r\n setTimeout(() => {\r\n this[methodName]()\r\n })\r\n },\r\n text: hintText,\r\n hint: hintText\r\n },\r\n showText: \"inMenu\",\r\n name: \"\".concat(name, \"Button\"),\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: sortIndex\r\n }\r\n }\r\n prepareEditButtons(headerPanel) {\r\n var _a;\r\n var editingOptions = null !== (_a = this.option(\"editing\")) && void 0 !== _a ? _a : {};\r\n var buttonItems = [];\r\n if (editingOptions.allowAdding) {\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"addRow\", \"addRow\", 20))\r\n }\r\n return buttonItems\r\n }\r\n highlightDataCell($cell, params) {\r\n this.shouldHighlightCell(params) && $cell.addClass(CELL_MODIFIED)\r\n }\r\n _afterInsertRow(key) {}\r\n _beforeSaveEditData(change) {\r\n if (change && !isDefined(change.key) && isDefined(change.type)) {\r\n return true\r\n }\r\n }\r\n _afterSaveEditData() {}\r\n _beforeCancelEditData() {}\r\n _allowEditAction(actionName, options) {\r\n var allowEditAction = this.option(\"editing.\".concat(actionName));\r\n if (isFunction(allowEditAction)) {\r\n allowEditAction = allowEditAction({\r\n component: this.component,\r\n row: options.row\r\n })\r\n }\r\n return allowEditAction\r\n }\r\n allowUpdating(options, eventName) {\r\n var _a;\r\n var startEditAction = null !== (_a = this.option(\"editing.startEditAction\")) && void 0 !== _a ? _a : DEFAULT_START_EDIT_ACTION;\r\n var needCallback = arguments.length > 1 ? startEditAction === eventName || \"down\" === eventName : true;\r\n return needCallback && this._allowEditAction(\"allowUpdating\", options)\r\n }\r\n allowDeleting(options) {\r\n return this._allowEditAction(\"allowDeleting\", options)\r\n }\r\n isCellModified(parameters) {\r\n var _a, _b, _c;\r\n var {\r\n columnIndex: columnIndex\r\n } = parameters;\r\n var modifiedValue = null === (_b = null === (_a = null === parameters || void 0 === parameters ? void 0 : parameters.row) || void 0 === _a ? void 0 : _a.modifiedValues) || void 0 === _b ? void 0 : _b[columnIndex];\r\n if (null === (_c = null === parameters || void 0 === parameters ? void 0 : parameters.row) || void 0 === _c ? void 0 : _c.isNewRow) {\r\n modifiedValue = parameters.value\r\n }\r\n return void 0 !== modifiedValue\r\n }\r\n isNewRowInEditMode() {\r\n var visibleEditRowIndex = this._getVisibleEditRowIndex();\r\n var rows = this._dataController.items();\r\n return visibleEditRowIndex >= 0 ? rows[visibleEditRowIndex].isNewRow : false\r\n }\r\n _isRowDeleteAllowed() {}\r\n shouldHighlightCell(parameters) {\r\n var cellModified = this.isCellModified(parameters);\r\n return cellModified && parameters.column.setCellValue && (this.getEditMode() !== EDIT_MODE_ROW || !parameters.row.isEditing)\r\n }\r\n}\r\nexport var dataControllerEditingExtenderMixin = Base => class extends Base {\r\n reload(full, repaintChangesOnly) {\r\n !repaintChangesOnly && this._editingController.refresh();\r\n return super.reload.apply(this, arguments)\r\n }\r\n repaintRows() {\r\n if (this._editingController.isSaving()) {\r\n return\r\n }\r\n return super.repaintRows.apply(this, arguments)\r\n }\r\n _updateEditRow(items) {\r\n var _a;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = gridCoreUtils.getIndexByKey(editRowKey, items);\r\n var editItem = items[editRowIndex];\r\n if (editItem) {\r\n editItem.isEditing = true;\r\n null === (_a = this._updateEditItem) || void 0 === _a ? void 0 : _a.call(this, editItem)\r\n }\r\n }\r\n _updateItemsCore(change) {\r\n super._updateItemsCore(change);\r\n this._updateEditRow(this.items(true))\r\n }\r\n _applyChangeUpdate(change) {\r\n this._updateEditRow(change.items);\r\n super._applyChangeUpdate(change)\r\n }\r\n _applyChangesOnly(change) {\r\n this._updateEditRow(change.items);\r\n super._applyChangesOnly(change)\r\n }\r\n _processItems(items, change) {\r\n items = this._editingController.processItems(items, change);\r\n return super._processItems(items, change)\r\n }\r\n _processDataItem(dataItem, options) {\r\n this._editingController.processDataItem(dataItem, options, this.generateDataValues);\r\n return super._processDataItem(dataItem, options)\r\n }\r\n _processItem(item, options) {\r\n item = super._processItem(item, options);\r\n if (item.isNewRow) {\r\n options.dataIndex--;\r\n delete item.dataIndex\r\n }\r\n return item\r\n }\r\n _getChangedColumnIndices(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n if (oldItem.isNewRow !== newItem.isNewRow || oldItem.removed !== newItem.removed) {\r\n return\r\n }\r\n return super._getChangedColumnIndices.apply(this, arguments)\r\n }\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var cell = oldRow.cells && oldRow.cells[columnIndex];\r\n var isEditing = this._editingController && this._editingController.isEditCell(visibleRowIndex, columnIndex);\r\n if (isLiveUpdate && isEditing) {\r\n return false\r\n }\r\n if (cell && cell.column && !cell.column.showEditorAlways && cell.isEditing !== isEditing) {\r\n return true\r\n }\r\n return super._isCellChanged.apply(this, arguments)\r\n }\r\n needToRefreshOnDataSourceChange(args) {\r\n var isParasiteChange = Array.isArray(args.value) && args.value === args.previousValue && this._editingController.isSaving();\r\n return !isParasiteChange\r\n }\r\n _handleDataSourceChange(args) {\r\n var result = super._handleDataSourceChange(args);\r\n var changes = this.option(\"editing.changes\");\r\n var dataSource = args.value;\r\n if (Array.isArray(dataSource) && changes.length) {\r\n var dataSourceKeys = dataSource.map(item => this.keyOf(item));\r\n var newChanges = changes.filter(change => \"insert\" === change.type || dataSourceKeys.some(key => equalByValue(change.key, key)));\r\n if (newChanges.length !== changes.length) {\r\n this.option(\"editing.changes\", newChanges)\r\n }\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n var isEditNewItem = newChanges.some(change => \"insert\" === change.type && equalByValue(editRowKey, change.key));\r\n if (!isEditNewItem && dataSourceKeys.every(key => !equalByValue(editRowKey, key))) {\r\n this.option(\"editing.editRowKey\", null)\r\n }\r\n }\r\n return result\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n getCellIndex($cell, rowIndex) {\r\n if (!$cell.is(\"td\") && rowIndex >= 0) {\r\n var $cellElements = this.getCellElements(rowIndex);\r\n var cellIndex = -1;\r\n each($cellElements, (index, cellElement) => {\r\n if ($(cellElement).find($cell).length) {\r\n cellIndex = index\r\n }\r\n });\r\n return cellIndex\r\n }\r\n return super.getCellIndex.apply(this, arguments)\r\n }\r\n publicMethods() {\r\n return super.publicMethods().concat([\"cellValue\"])\r\n }\r\n _getCellTemplate(options) {\r\n var template = this._editingController.getColumnTemplate(options);\r\n return template || super._getCellTemplate(options)\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row) {\r\n var isRowRemoved = !!row.removed;\r\n var isRowInserted = !!row.isNewRow;\r\n var isRowModified = !!row.modified;\r\n isRowInserted && $row.addClass(ROW_INSERTED);\r\n isRowModified && $row.addClass(ROW_MODIFIED);\r\n if (isRowInserted || isRowRemoved) {\r\n $row.removeClass(ROW_SELECTED)\r\n }\r\n }\r\n return $row\r\n }\r\n _getColumnIndexByElement($element) {\r\n var $tableElement = $element.closest(\"table\");\r\n var $tableElements = this.getTableElements();\r\n while ($tableElement.length && !$tableElements.filter($tableElement).length) {\r\n $element = $tableElement.closest(\"td\");\r\n $tableElement = $element.closest(\"table\")\r\n }\r\n return this._getColumnIndexByElementCore($element)\r\n }\r\n _getColumnIndexByElementCore($element) {\r\n var $targetElement = $element.closest(\".\".concat(ROW_CLASS, \"> td:not(.dx-master-detail-cell)\"));\r\n return this.getCellIndex($targetElement)\r\n }\r\n _editCellByClick(e, eventName) {\r\n var editingController = this._editingController;\r\n var $targetElement = $(e.event.target);\r\n var columnIndex = this._getColumnIndexByElement($targetElement);\r\n var row = this._dataController.items()[e.rowIndex];\r\n var allowUpdating = editingController.allowUpdating({\r\n row: row\r\n }, eventName) || row && row.isNewRow;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var isEditedCell = editingController.isEditCell(e.rowIndex, columnIndex);\r\n var allowEditing = allowUpdating && column && (column.allowEditing || isEditedCell);\r\n var startEditAction = this.option(\"editing.startEditAction\") || \"click\";\r\n var isShowEditorAlways = column && column.showEditorAlways;\r\n if (isEditedCell) {\r\n return true\r\n }\r\n if (\"down\" === eventName) {\r\n if (devices.real().ios || devices.real().android) {\r\n resetActiveElement()\r\n }\r\n return isShowEditorAlways && allowEditing && editingController.editCell(e.rowIndex, columnIndex)\r\n }\r\n if (\"click\" === eventName && \"dblClick\" === startEditAction && this._pointerDownTarget === $targetElement.get(0)) {\r\n var withoutSaveEditData = null === row || void 0 === row ? void 0 : row.isNewRow;\r\n editingController.closeEditCell(false, withoutSaveEditData)\r\n }\r\n if (allowEditing && eventName === startEditAction) {\r\n return editingController.editCell(e.rowIndex, columnIndex) || editingController.isEditRow(e.rowIndex)\r\n }\r\n }\r\n _rowPointerDown(e) {\r\n this._pointerDownTarget = e.event.target;\r\n this._pointerDownTimeout = setTimeout(() => {\r\n this._editCellByClick(e, \"down\")\r\n })\r\n }\r\n _rowClickTreeListHack(e) {\r\n super._rowClick.apply(this, arguments)\r\n }\r\n _rowClick(e) {\r\n var isEditForm = $(e.rowElement).hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS));\r\n e.event[TARGET_COMPONENT_NAME] = this.component;\r\n if (!this._editCellByClick(e, \"click\") && !isEditForm) {\r\n super._rowClick.apply(this, arguments)\r\n }\r\n }\r\n _rowDblClickTreeListHack(e) {\r\n super._rowDblClick.apply(this, arguments)\r\n }\r\n _rowDblClick(e) {\r\n if (!this._editCellByClick(e, \"dblClick\")) {\r\n super._rowDblClick.apply(this, arguments)\r\n }\r\n }\r\n _cellPrepared($cell, parameters) {\r\n var _a;\r\n var editingController = this._editingController;\r\n var isCommandCell = !!parameters.column.command;\r\n var isEditableCell = parameters.setValue;\r\n var isEditRow = editingController.isEditRow(parameters.rowIndex);\r\n var isEditing = isEditingCell(isEditRow, parameters);\r\n if (isEditingOrShowEditorAlwaysDataCell(isEditRow, parameters)) {\r\n var {\r\n alignment: alignment\r\n } = parameters.column;\r\n $cell.toggleClass(this.addWidgetPrefix(READONLY_CLASS), !isEditableCell).toggleClass(CELL_FOCUS_DISABLED_CLASS, !isEditableCell);\r\n if (alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", alignment)\r\n }\r\n }\r\n if (isEditing) {\r\n this._editCellPrepared($cell)\r\n }\r\n var hasTemplate = !!(null === (_a = parameters.column) || void 0 === _a ? void 0 : _a.cellTemplate);\r\n if (parameters.column && !isCommandCell && (!hasTemplate || editingController.shouldHighlightCell(parameters))) {\r\n editingController.highlightDataCell($cell, parameters)\r\n }\r\n super._cellPrepared.apply(this, arguments)\r\n }\r\n _getCellOptions(options) {\r\n var cellOptions = super._getCellOptions(options);\r\n var {\r\n columnIndex: columnIndex,\r\n row: row\r\n } = options;\r\n cellOptions.isEditing = this._editingController.isEditCell(cellOptions.rowIndex, cellOptions.columnIndex);\r\n cellOptions.removed = row.removed;\r\n if (row.modified) {\r\n cellOptions.modified = void 0 !== row.modifiedValues[columnIndex]\r\n }\r\n return cellOptions\r\n }\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n super._setCellAriaAttributes($cell, cellOptions);\r\n if (cellOptions.removed) {\r\n this.setAria(\"roledescription\", messageLocalization.format(\"dxDataGrid-ariaDeletedCell\"), $cell)\r\n }\r\n if (cellOptions.modified) {\r\n this.setAria(\"roledescription\", messageLocalization.format(\"dxDataGrid-ariaModifiedCell\"), $cell)\r\n }\r\n var isEditableCell = cellOptions.column.allowEditing && !cellOptions.removed && !cellOptions.modified && \"data\" === cellOptions.rowType && cellOptions.column.calculateCellValue === cellOptions.column.defaultCalculateCellValue && this._editingController.isCellBasedEditMode();\r\n if (isEditableCell) {\r\n this.setAria(\"roledescription\", messageLocalization.format(\"dxDataGrid-ariaEditableCell\"), $cell)\r\n }\r\n }\r\n _createCell(options) {\r\n var $cell = super._createCell(options);\r\n var isEditRow = this._editingController.isEditRow(options.rowIndex);\r\n isEditingOrShowEditorAlwaysDataCell(isEditRow, options) && $cell.addClass(EDITOR_CELL_CLASS);\r\n return $cell\r\n }\r\n cellValue(rowIndex, columnIdentifier, value, text) {\r\n var cellOptions = this.getCellOptions(rowIndex, columnIdentifier);\r\n if (cellOptions) {\r\n if (void 0 === value) {\r\n return cellOptions.value\r\n }\r\n this._editingController.updateFieldValue(cellOptions, value, text, true)\r\n }\r\n }\r\n dispose() {\r\n super.dispose.apply(this, arguments);\r\n clearTimeout(this._pointerDownTimeout)\r\n }\r\n _renderCore() {\r\n super._renderCore.apply(this, arguments);\r\n return this.waitAsyncTemplates(true).done(() => {\r\n this._editingController._focusEditorIfNeed()\r\n })\r\n }\r\n _editCellPrepared() {}\r\n _formItemPrepared() {}\r\n};\r\nvar headerPanel = Base => class extends Base {\r\n optionChanged(args) {\r\n var {\r\n fullName: fullName\r\n } = args;\r\n switch (args.name) {\r\n case \"editing\":\r\n var excludedOptions = [EDITING_POPUP_OPTION_NAME, EDITING_CHANGES_OPTION_NAME, EDITING_EDITCOLUMNNAME_OPTION_NAME, EDITING_EDITROWKEY_OPTION_NAME];\r\n var shouldInvalidate = fullName && !excludedOptions.some(optionName => optionName === fullName);\r\n shouldInvalidate && this._invalidate();\r\n super.optionChanged(args);\r\n break;\r\n case \"useLegacyColumnButtonTemplate\":\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _getToolbarItems() {\r\n var items = super._getToolbarItems();\r\n var editButtonItems = this._editingController.prepareEditButtons(this);\r\n return editButtonItems.concat(items)\r\n }\r\n isVisible() {\r\n var editingOptions = this._editingController.option(\"editing\");\r\n return super.isVisible() || (null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.allowAdding)\r\n }\r\n};\r\nexport var editingModule = {\r\n defaultOptions: () => ({\r\n editing: {\r\n mode: \"row\",\r\n refreshMode: \"full\",\r\n newRowPosition: VIEWPORT_TOP_NEW_ROW_POSITION,\r\n allowAdding: false,\r\n allowUpdating: false,\r\n allowDeleting: false,\r\n useIcons: false,\r\n selectTextOnEditStart: false,\r\n confirmDelete: true,\r\n texts: {\r\n editRow: messageLocalization.format(\"dxDataGrid-editingEditRow\"),\r\n saveAllChanges: messageLocalization.format(\"dxDataGrid-editingSaveAllChanges\"),\r\n saveRowChanges: messageLocalization.format(\"dxDataGrid-editingSaveRowChanges\"),\r\n cancelAllChanges: messageLocalization.format(\"dxDataGrid-editingCancelAllChanges\"),\r\n cancelRowChanges: messageLocalization.format(\"dxDataGrid-editingCancelRowChanges\"),\r\n addRow: messageLocalization.format(\"dxDataGrid-editingAddRow\"),\r\n deleteRow: messageLocalization.format(\"dxDataGrid-editingDeleteRow\"),\r\n undeleteRow: messageLocalization.format(\"dxDataGrid-editingUndeleteRow\"),\r\n confirmDeleteMessage: messageLocalization.format(\"dxDataGrid-editingConfirmDeleteMessage\"),\r\n confirmDeleteTitle: \"\"\r\n },\r\n form: {\r\n colCount: 2\r\n },\r\n popup: {},\r\n startEditAction: \"click\",\r\n editRowKey: null,\r\n editColumnName: null,\r\n changes: []\r\n },\r\n useLegacyColumnButtonTemplate: false\r\n }),\r\n controllers: {\r\n editing: EditingControllerImpl\r\n },\r\n extenders: {\r\n controllers: {\r\n data: dataControllerEditingExtenderMixin\r\n },\r\n views: {\r\n rowsView: rowsView,\r\n headerPanel: headerPanel\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_editing.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"./module_not_extended/editor_factory\";\r\nimport {\r\n dataControllerEditingExtenderMixin,\r\n editingModule\r\n} from \"../../grids/grid_core/editing/m_editing\";\r\nimport gridCore from \"./m_core\";\r\nvar data = Base => class extends(dataControllerEditingExtenderMixin(Base)) {\r\n _changeRowExpandCore(key) {\r\n var editingController = this._editingController;\r\n if (Array.isArray(key)) {\r\n editingController && editingController.refresh()\r\n }\r\n return super._changeRowExpandCore.apply(this, arguments)\r\n }\r\n};\r\ngridCore.registerModule(\"editing\", _extends(_extends({}, editingModule), {\r\n extenders: _extends(_extends({}, editingModule.extenders), {\r\n controllers: _extends(_extends({}, editingModule.extenders.controllers), {\r\n data: data\r\n })\r\n })\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing_row_based.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n EDIT_FORM_CLASS,\r\n EDIT_MODE_ROW,\r\n EDIT_ROW,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n MODES_WITH_DELAYED_FOCUS,\r\n ROW_SELECTED_CLASS\r\n} from \"./const\";\r\nvar editingControllerExtender = Base => class extends Base {\r\n isRowEditMode() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n }\r\n _afterCancelEditData(rowIndex) {\r\n var dataController = this._dataController;\r\n if (this.isRowBasedEditMode() && rowIndex >= 0) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [rowIndex, rowIndex + 1]\r\n })\r\n } else {\r\n super._afterCancelEditData(rowIndex)\r\n }\r\n }\r\n _isDefaultButtonVisible(button, options) {\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isPopupEditMode = this.isPopupEditMode();\r\n var isEditRow = !isPopupEditMode && options.row && equalByValue(options.row.key, this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n if (isRowMode) {\r\n switch (button.name) {\r\n case \"edit\":\r\n return !isEditRow && this.allowUpdating(options);\r\n case \"delete\":\r\n return super._isDefaultButtonVisible(button, options) && !isEditRow;\r\n case \"save\":\r\n case \"cancel\":\r\n return isEditRow;\r\n default:\r\n return super._isDefaultButtonVisible(button, options)\r\n }\r\n }\r\n return super._isDefaultButtonVisible(button, options)\r\n }\r\n isEditRow(rowIndex) {\r\n return this.isRowBasedEditMode() && this.isEditRowByIndex(rowIndex)\r\n }\r\n _cancelSaving(result) {\r\n if (this.isRowBasedEditMode()) {\r\n if (!this.hasChanges()) {\r\n this._cancelEditDataCore()\r\n }\r\n }\r\n super._cancelSaving(result)\r\n }\r\n _refreshCore(params) {\r\n var {\r\n allowCancelEditing: allowCancelEditing\r\n } = null !== params && void 0 !== params ? params : {};\r\n if (this.isRowBasedEditMode()) {\r\n var hasUpdateChanges = this.getChanges().filter(it => \"update\" === it.type).length > 0;\r\n this.init();\r\n allowCancelEditing && hasUpdateChanges && this._cancelEditDataCore()\r\n }\r\n super._refreshCore(params)\r\n }\r\n _isEditColumnVisible() {\r\n var result = super._isEditColumnVisible();\r\n var editingOptions = this.option(\"editing\");\r\n var isRowEditMode = this.isRowEditMode();\r\n var isVisibleInRowEditMode = editingOptions.allowUpdating || editingOptions.allowAdding;\r\n return result || isRowEditMode && isVisibleInRowEditMode\r\n }\r\n _focusEditorIfNeed() {\r\n var editMode = this.getEditMode();\r\n if (this._needFocusEditor) {\r\n if (MODES_WITH_DELAYED_FOCUS.includes(editMode)) {\r\n var $editingCell = this.getFocusedCellInRow(this._getVisibleEditRowIndex());\r\n this._delayedInputFocus($editingCell, () => {\r\n $editingCell && this.component.focus($editingCell)\r\n })\r\n }\r\n this._needFocusEditor = false\r\n }\r\n }\r\n};\r\nvar data = Base => class extends Base {\r\n _getChangedColumnIndices(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n if (this._editingController.isRowBasedEditMode() && oldItem.isEditing !== newItem.isEditing) {\r\n return\r\n }\r\n return super._getChangedColumnIndices.apply(this, arguments)\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isEditRow = editingController.isEditRow(row.rowIndex);\r\n if (isEditRow) {\r\n $row.addClass(EDIT_ROW);\r\n $row.removeClass(ROW_SELECTED_CLASS);\r\n if (\"detail\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(EDIT_FORM_CLASS))\r\n }\r\n }\r\n }\r\n return $row\r\n }\r\n _update(change) {\r\n super._update(change);\r\n if (\"updateSelection\" === change.changeType) {\r\n this.getTableElements().children(\"tbody\").children(\".\".concat(EDIT_ROW)).removeClass(ROW_SELECTED_CLASS)\r\n }\r\n }\r\n};\r\nexport var editingRowBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: editingControllerExtender,\r\n data: data\r\n },\r\n views: {\r\n rowsView: rowsView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/editing_row_based.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editingRowBasedModule\r\n} from \"../../../grids/grid_core/editing/m_editing_row_based\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"editingRowBased\", editingRowBasedModule);\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_responsive_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n defaultScreenFactorFunc,\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport Box from \"../../ui/box\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.edit\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nvar RESPONSIVE_BOX_CLASS = \"dx-responsivebox\";\r\nvar SCREEN_SIZE_CLASS_PREFIX = \"\".concat(RESPONSIVE_BOX_CLASS, \"-screen-\");\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar HD_SCREEN_WIDTH = 1920;\r\nvar ResponsiveBox = CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n rows: [],\r\n cols: [],\r\n screenByWidth: null,\r\n singleColumnScreen: \"\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n onLayoutChanged: null,\r\n currentScreenFactor: void 0\r\n })\r\n },\r\n _init() {\r\n if (!this.option(\"screenByWidth\")) {\r\n this._options.silent(\"screenByWidth\", defaultScreenFactorFunc)\r\n }\r\n this.callBase();\r\n this._initLayoutChangedAction()\r\n },\r\n _initLayoutChangedAction() {\r\n this._layoutChangedAction = this._createActionByOption(\"onLayoutChanged\", {\r\n excludeValidators: [\"disabled\", \"readonly\"]\r\n })\r\n },\r\n _itemClass: () => BOX_ITEM_CLASS,\r\n _itemDataKey: () => BOX_ITEM_DATA_KEY,\r\n _initMarkup() {\r\n this.callBase();\r\n this.$element().addClass(RESPONSIVE_BOX_CLASS)\r\n },\r\n _renderItems() {\r\n this._setScreenSize();\r\n this._screenItems = this._itemsByScreen();\r\n this._prepareGrid();\r\n this._spreadItems();\r\n this._layoutItems();\r\n this._linkNodeToItem()\r\n },\r\n _itemOptionChanged(item) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n this._refreshItem($item, item);\r\n this._clearItemNodeTemplates();\r\n this._update(true)\r\n },\r\n _setScreenSize() {\r\n var currentScreen = this._getCurrentScreen();\r\n this._removeScreenSizeClass();\r\n this.$element().addClass(SCREEN_SIZE_CLASS_PREFIX + currentScreen);\r\n this.option(\"currentScreenFactor\", currentScreen)\r\n },\r\n _removeScreenSizeClass() {\r\n var currentScreenFactor = this.option(\"currentScreenFactor\");\r\n currentScreenFactor && this.$element().removeClass(SCREEN_SIZE_CLASS_PREFIX + currentScreenFactor)\r\n },\r\n _prepareGrid() {\r\n var grid = this._grid = [];\r\n this._prepareRowsAndCols();\r\n each(this._rows, () => {\r\n var row = [];\r\n grid.push(row);\r\n each(this._cols, () => {\r\n row.push(this._createEmptyCell())\r\n })\r\n })\r\n },\r\n getSingleColumnRows() {\r\n var rows = this.option(\"rows\");\r\n var screenItemsLength = this._screenItems.length;\r\n if (rows.length) {\r\n var filteredRows = this._filterByScreen(rows);\r\n var result = [];\r\n for (var i = 0; i < screenItemsLength; i++) {\r\n var sizeConfig = this._defaultSizeConfig();\r\n if (i < filteredRows.length && isDefined(filteredRows[i].shrink)) {\r\n sizeConfig.shrink = filteredRows[i].shrink\r\n }\r\n result.push(sizeConfig)\r\n }\r\n return result\r\n }\r\n return this._defaultSizeConfig(screenItemsLength)\r\n },\r\n _prepareRowsAndCols() {\r\n if (this._isSingleColumnScreen()) {\r\n this._prepareSingleColumnScreenItems();\r\n this._rows = this.getSingleColumnRows();\r\n this._cols = this._defaultSizeConfig(1)\r\n } else {\r\n this._rows = this._sizesByScreen(this.option(\"rows\"));\r\n this._cols = this._sizesByScreen(this.option(\"cols\"))\r\n }\r\n },\r\n _isSingleColumnScreen() {\r\n return this._screenRegExp().test(this.option(\"singleColumnScreen\")) || !this.option(\"rows\").length || !this.option(\"cols\").length\r\n },\r\n _prepareSingleColumnScreenItems() {\r\n this._screenItems.sort((item1, item2) => item1.location.row - item2.location.row || item1.location.col - item2.location.col);\r\n each(this._screenItems, (index, item) => {\r\n extend(item.location, {\r\n row: index,\r\n col: 0,\r\n rowspan: 1,\r\n colspan: 1\r\n })\r\n })\r\n },\r\n _sizesByScreen(sizeConfigs) {\r\n return map(this._filterByScreen(sizeConfigs), sizeConfig => extend(this._defaultSizeConfig(), sizeConfig))\r\n },\r\n _createDefaultSizeConfig: () => ({\r\n ratio: 1,\r\n baseSize: 0,\r\n minSize: 0,\r\n maxSize: 0\r\n }),\r\n _defaultSizeConfig(size) {\r\n var defaultSizeConfig = this._createDefaultSizeConfig();\r\n if (!arguments.length) {\r\n return defaultSizeConfig\r\n }\r\n var result = [];\r\n for (var i = 0; i < size; i++) {\r\n result.push(defaultSizeConfig)\r\n }\r\n return result\r\n },\r\n _filterByScreen(items) {\r\n var screenRegExp = this._screenRegExp();\r\n return grep(items, item => !item.screen || screenRegExp.test(item.screen))\r\n },\r\n _screenRegExp() {\r\n var screen = this._getCurrentScreen();\r\n return new RegExp(\"(^|\\\\s)\".concat(screen, \"($|\\\\s)\"), \"i\")\r\n },\r\n _getCurrentScreen() {\r\n var width = this._screenWidth();\r\n return this.option(\"screenByWidth\")(width)\r\n },\r\n _screenWidth: () => hasWindow() ? getWidth(getWindow()) : HD_SCREEN_WIDTH,\r\n _createEmptyCell: () => ({\r\n item: {},\r\n location: {\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }),\r\n _spreadItems() {\r\n each(this._screenItems, (_, itemInfo) => {\r\n var location = itemInfo.location || {};\r\n var itemCol = location.col;\r\n var itemRow = location.row;\r\n var row = this._grid[itemRow];\r\n var itemCell = row && row[itemCol];\r\n this._occupyCells(itemCell, itemInfo)\r\n })\r\n },\r\n _itemsByScreen() {\r\n return this.option(\"items\").reduce((result, item) => {\r\n var locations = item.location || {};\r\n locations = isPlainObject(locations) ? [locations] : locations;\r\n this._filterByScreen(locations).forEach(location => {\r\n result.push({\r\n item: item,\r\n location: extend({\r\n rowspan: 1,\r\n colspan: 1\r\n }, location)\r\n })\r\n });\r\n return result\r\n }, [])\r\n },\r\n _occupyCells(itemCell, itemInfo) {\r\n if (!itemCell || this._isItemCellOccupied(itemCell, itemInfo)) {\r\n return\r\n }\r\n extend(itemCell, itemInfo);\r\n this._markSpanningCell(itemCell)\r\n },\r\n _isItemCellOccupied(itemCell, itemInfo) {\r\n if (!isEmptyObject(itemCell.item)) {\r\n return true\r\n }\r\n var result = false;\r\n this._loopOverSpanning(itemInfo.location, cell => {\r\n result = result || !isEmptyObject(cell.item)\r\n });\r\n return result\r\n },\r\n _loopOverSpanning(location, callback) {\r\n var rowEnd = location.row + location.rowspan - 1;\r\n var colEnd = location.col + location.colspan - 1;\r\n var boundRowEnd = Math.min(rowEnd, this._rows.length - 1);\r\n var boundColEnd = Math.min(colEnd, this._cols.length - 1);\r\n location.rowspan -= rowEnd - boundRowEnd;\r\n location.colspan -= colEnd - boundColEnd;\r\n for (var rowIndex = location.row; rowIndex <= boundRowEnd; rowIndex++) {\r\n for (var colIndex = location.col; colIndex <= boundColEnd; colIndex++) {\r\n if (rowIndex !== location.row || colIndex !== location.col) {\r\n callback(this._grid[rowIndex][colIndex])\r\n }\r\n }\r\n }\r\n },\r\n _markSpanningCell(itemCell) {\r\n this._loopOverSpanning(itemCell.location, cell => {\r\n extend(cell, {\r\n item: itemCell.item,\r\n spanningCell: itemCell\r\n })\r\n })\r\n },\r\n _linkNodeToItem() {\r\n each(this._itemElements(), (_, itemNode) => {\r\n var $item = $(itemNode);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n if (!item.box) {\r\n item.node = $item.children()\r\n }\r\n })\r\n },\r\n _layoutItems() {\r\n var rowsCount = this._grid.length;\r\n var colsCount = rowsCount && this._grid[0].length;\r\n if (!rowsCount && !colsCount) {\r\n return\r\n }\r\n var result = this._layoutBlock({\r\n direction: \"col\",\r\n row: {\r\n start: 0,\r\n end: rowsCount - 1\r\n },\r\n col: {\r\n start: 0,\r\n end: colsCount - 1\r\n }\r\n });\r\n var rootBox = this._prepareBoxConfig(result.box || {\r\n direction: \"row\",\r\n items: [extend(result, {\r\n ratio: 1\r\n })]\r\n });\r\n extend(rootBox, this._rootBoxConfig(rootBox.items));\r\n this._$root = $(\"<div>\").appendTo(this._itemContainer());\r\n this._createComponent(this._$root, Box, rootBox)\r\n },\r\n _rootBoxConfig(items) {\r\n var rootItems = each(items, (index, item) => {\r\n this._needApplyAutoBaseSize(item) && extend(item, {\r\n baseSize: \"auto\"\r\n })\r\n });\r\n return {\r\n width: \"100%\",\r\n height: \"100%\",\r\n items: rootItems,\r\n itemTemplate: this._getTemplateByOption(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this._createActionByOption(\"onItemHold\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onItemContextMenu\"),\r\n onItemRendered: this._createActionByOption(\"onItemRendered\")\r\n }\r\n },\r\n _needApplyAutoBaseSize: item => !item.baseSize && (!item.minSize || \"auto\" === item.minSize) && (!item.maxSize || \"auto\" === item.maxSize),\r\n _prepareBoxConfig(config) {\r\n return extend(config || {}, {\r\n crossAlign: \"stretch\",\r\n onItemStateChanged: this.option(\"onItemStateChanged\")\r\n })\r\n },\r\n _layoutBlock(options) {\r\n if (this._isSingleItem(options)) {\r\n return this._itemByCell(options.row.start, options.col.start)\r\n }\r\n return this._layoutDirection(options)\r\n },\r\n _isSingleItem(options) {\r\n var firstCellLocation = this._grid[options.row.start][options.col.start].location;\r\n var isItemRowSpanned = options.row.end - options.row.start === firstCellLocation.rowspan - 1;\r\n var isItemColSpanned = options.col.end - options.col.start === firstCellLocation.colspan - 1;\r\n return isItemRowSpanned && isItemColSpanned\r\n },\r\n _itemByCell(rowIndex, colIndex) {\r\n var itemCell = this._grid[rowIndex][colIndex];\r\n return itemCell.spanningCell ? null : itemCell.item\r\n },\r\n _layoutDirection(options) {\r\n var items = [];\r\n var {\r\n direction: direction\r\n } = options;\r\n var crossDirection = this._crossDirection(direction);\r\n var block;\r\n while (block = this._nextBlock(options)) {\r\n if (this._isBlockIndivisible(options.prevBlockOptions, block)) {\r\n throw errors.Error(\"E1025\")\r\n }\r\n var item = this._layoutBlock({\r\n direction: crossDirection,\r\n row: block.row,\r\n col: block.col,\r\n prevBlockOptions: options\r\n });\r\n if (item) {\r\n extend(item, this._blockSize(block, crossDirection));\r\n items.push(item)\r\n }\r\n options[crossDirection].start = block[crossDirection].end + 1\r\n }\r\n return {\r\n box: this._prepareBoxConfig({\r\n direction: direction,\r\n items: items\r\n })\r\n }\r\n },\r\n _isBlockIndivisible: (options, block) => options && options.col.start === block.col.start && options.col.end === block.col.end && options.row.start === block.row.start && options.row.end === block.row.end,\r\n _crossDirection: direction => \"col\" === direction ? \"row\" : \"col\",\r\n _nextBlock(options) {\r\n var {\r\n direction: direction\r\n } = options;\r\n var crossDirection = this._crossDirection(direction);\r\n var startIndex = options[direction].start;\r\n var endIndex = options[direction].end;\r\n var crossStartIndex = options[crossDirection].start;\r\n if (crossStartIndex > options[crossDirection].end) {\r\n return null\r\n }\r\n var crossSpan = 1;\r\n for (var crossIndex = crossStartIndex; crossIndex < crossStartIndex + crossSpan; crossIndex++) {\r\n var lineCrossSpan = 1;\r\n for (var index = startIndex; index <= endIndex; index++) {\r\n var cell = this._cellByDirection(direction, index, crossIndex);\r\n lineCrossSpan = Math.max(lineCrossSpan, cell.location[\"\".concat(crossDirection, \"span\")])\r\n }\r\n var lineCrossEndIndex = crossIndex + lineCrossSpan;\r\n var crossEndIndex = crossStartIndex + crossSpan;\r\n if (lineCrossEndIndex > crossEndIndex) {\r\n crossSpan += lineCrossEndIndex - crossEndIndex\r\n }\r\n }\r\n var result = {};\r\n result[direction] = {\r\n start: startIndex,\r\n end: endIndex\r\n };\r\n result[crossDirection] = {\r\n start: crossStartIndex,\r\n end: crossStartIndex + crossSpan - 1\r\n };\r\n return result\r\n },\r\n _cellByDirection(direction, index, crossIndex) {\r\n return \"col\" === direction ? this._grid[crossIndex][index] : this._grid[index][crossIndex]\r\n },\r\n _blockSize(block, direction) {\r\n var defaultMinSize = \"row\" === direction ? \"auto\" : 0;\r\n var sizeConfigs = \"row\" === direction ? this._rows : this._cols;\r\n var result = extend(this._createDefaultSizeConfig(), {\r\n ratio: 0\r\n });\r\n for (var index = block[direction].start; index <= block[direction].end; index++) {\r\n var sizeConfig = sizeConfigs[index];\r\n result.ratio += sizeConfig.ratio;\r\n result.baseSize += sizeConfig.baseSize;\r\n result.minSize += sizeConfig.minSize;\r\n result.maxSize += sizeConfig.maxSize;\r\n if (isDefined(sizeConfig.shrink)) {\r\n result.shrink = sizeConfig.shrink\r\n }\r\n }\r\n result.minSize = result.minSize ? result.minSize : defaultMinSize;\r\n result.maxSize = result.maxSize ? result.maxSize : \"auto\";\r\n this._isSingleColumnScreen() && (result.baseSize = \"auto\");\r\n return result\r\n },\r\n _update(forceRemoveRoot) {\r\n var $existingRoot = this._$root;\r\n this._renderItems();\r\n if ($existingRoot) {\r\n if (forceRemoveRoot) {\r\n $existingRoot.remove()\r\n } else {\r\n $existingRoot.detach();\r\n this._saveAssistantRoot($existingRoot)\r\n }\r\n }\r\n this._layoutChangedAction()\r\n },\r\n _saveAssistantRoot($root) {\r\n this._assistantRoots = this._assistantRoots || [];\r\n this._assistantRoots.push($root)\r\n },\r\n _dispose() {\r\n this._clearItemNodeTemplates();\r\n this._cleanUnusedRoots();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _cleanUnusedRoots() {\r\n if (!this._assistantRoots) {\r\n return\r\n }\r\n each(this._assistantRoots, (_, item) => {\r\n $(item).remove()\r\n })\r\n },\r\n _clearItemNodeTemplates() {\r\n each(this.option(\"items\"), (function() {\r\n delete this.node\r\n }))\r\n },\r\n _attachClickEvent: noop,\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"rows\":\r\n case \"cols\":\r\n case \"screenByWidth\":\r\n case \"singleColumnScreen\":\r\n this._clearItemNodeTemplates();\r\n this._invalidate();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._update();\r\n break;\r\n case \"onLayoutChanged\":\r\n this._initLayoutChangedAction();\r\n break;\r\n case \"itemTemplate\":\r\n this._clearItemNodeTemplates();\r\n this.callBase(args);\r\n break;\r\n case \"currentScreenFactor\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged() {\r\n if (this._getCurrentScreen() !== this.option(\"currentScreenFactor\")) {\r\n this._update()\r\n }\r\n },\r\n repaint() {\r\n this._update()\r\n }\r\n});\r\nregisterComponent(\"dxResponsiveBox\", ResponsiveBox);\r\nexport default ResponsiveBox;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/components/m_button_item.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nvar FIELD_BUTTON_ITEM_CLASS = \"dx-field-button-item\";\r\nexport function renderButtonItem(_ref) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n validationGroup: validationGroup,\r\n createComponentCallback: createComponentCallback\r\n } = _ref;\r\n var $rootElement = $(\"<div>\").appendTo($parent).addClass(rootElementCssClassList.join(\" \")).addClass(FIELD_BUTTON_ITEM_CLASS).css(\"textAlign\", convertAlignmentToTextAlign(item.horizontalAlignment));\r\n $parent.css(\"justifyContent\", convertAlignmentToJustifyContent(item.verticalAlignment));\r\n var $button = $(\"<div>\").appendTo($rootElement);\r\n return {\r\n $rootElement: $rootElement,\r\n buttonInstance: createComponentCallback($button, \"dxButton\", extend({\r\n validationGroup: validationGroup\r\n }, item.buttonOptions))\r\n }\r\n}\r\n\r\nfunction convertAlignmentToTextAlign(horizontalAlignment) {\r\n return isDefined(horizontalAlignment) ? horizontalAlignment : \"right\"\r\n}\r\n\r\nfunction convertAlignmentToJustifyContent(verticalAlignment) {\r\n switch (verticalAlignment) {\r\n case \"center\":\r\n return \"center\";\r\n case \"bottom\":\r\n return \"flex-end\";\r\n default:\r\n return \"flex-start\"\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/components/m_empty_item.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nexport var FIELD_EMPTY_ITEM_CLASS = \"dx-field-empty-item\";\r\nexport function renderEmptyItem(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref;\r\n return $(\"<div>\").addClass(FIELD_EMPTY_ITEM_CLASS).html(\" \").addClass(rootElementCssClassList.join(\" \")).appendTo($parent)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/validation/m_default_adapter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nvar DefaultAdapter = Class.inherit({\r\n ctor(editor, validator) {\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = args => {\r\n this.validationRequestsCallbacks.forEach(item => item(args))\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", () => {\r\n editor.validationRequest.remove(handler)\r\n })\r\n },\r\n getValue() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset() {\r\n this.editor.clear()\r\n },\r\n focus() {\r\n this.editor.focus()\r\n }\r\n});\r\nexport default DefaultAdapter;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_validator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Guid from \"../../core/guid\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport ValidationEngine from \"./m_validation_engine\";\r\nimport DefaultAdapter from \"./validation/m_default_adapter\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = DOMComponent.inherit({\r\n _initOptions(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = Callbacks();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", args => {\r\n ValidationEngine.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n })\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n ValidationEngine.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n ValidationEngine.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _getEditor() {\r\n var element = this.$element()[0];\r\n return elementData(element, \"dx-validation-target\")\r\n },\r\n _initAdapter() {\r\n var dxStandardEditor = this._getEditor();\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new DefaultAdapter(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(args => {\r\n if (this._validationInfo.skipValidation) {\r\n return\r\n }\r\n this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw errors.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(args => {\r\n this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection(isRtl) {\r\n var _a, _b, _c;\r\n var rtlEnabled = null !== (_c = null === (_b = null === (_a = this.option(\"adapter\")) || void 0 === _a ? void 0 : _a.editor) || void 0 === _b ? void 0 : _b.option(\"rtlEnabled\")) && void 0 !== _c ? _c : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._toggleAccessibilityAttributes()\r\n },\r\n _toggleAccessibilityAttributes() {\r\n var dxStandardEditor = this._getEditor();\r\n if (dxStandardEditor) {\r\n var rules = this.option(\"validationRules\") || [];\r\n var isRequired = rules.some(_ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n return \"required\" === type\r\n }) || null;\r\n if (dxStandardEditor.isInitialized()) {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n }\r\n dxStandardEditor.option(\"_onMarkupRendered\", () => {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n })\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n this._toggleAccessibilityAttributes();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules() {\r\n if (!this._validationRules) {\r\n this._validationRules = map(this.option(\"validationRules\"), (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }))\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules() {\r\n delete this._validationRules\r\n },\r\n validate(args) {\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = ValidationEngine.validate(value, rules, name)\r\n }\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = Deferred();\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: () => false\r\n});\r\nregisterComponent(\"dxValidator\", Validator);\r\nexport default Validator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/constants.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var WIDGET_CLASS = \"dx-widget\";\r\nexport var FORM_CLASS = \"dx-form\";\r\nexport var FORM_GROUP_CLASS = \"dx-form-group\";\r\nexport var FORM_GROUP_CAPTION_CLASS = \"dx-form-group-caption\";\r\nexport var FORM_FIELD_ITEM_COL_CLASS = \"dx-col-\";\r\nexport var FIELD_ITEM_CLASS = \"dx-field-item\";\r\nexport var LAYOUT_MANAGER_ONE_COLUMN = \"dx-layout-manager-one-col\";\r\nexport var FIELD_ITEM_LABEL_CONTENT_CLASS = \"dx-field-item-label-content\";\r\nexport var FORM_LAYOUT_MANAGER_CLASS = \"dx-layout-manager\";\r\nexport var FIELD_ITEM_LABEL_CLASS = \"dx-field-item-label\";\r\nexport var FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nexport var SINGLE_COLUMN_ITEM_CONTENT = \"dx-single-column-item-content\";\r\nexport var ROOT_SIMPLE_ITEM_CLASS = \"dx-root-simple-item\";\r\nexport var FORM_GROUP_CONTENT_CLASS = \"dx-form-group-content\";\r\nexport var FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = \"dx-field-item-has-group\";\r\nexport var FIELD_ITEM_CONTENT_HAS_TABS_CLASS = \"dx-field-item-has-tabs\";\r\nexport var FORM_GROUP_WITH_CAPTION_CLASS = \"dx-form-group-with-caption\";\r\nexport var FIELD_ITEM_TAB_CLASS = \"dx-field-item-tab\";\r\nexport var GROUP_COL_COUNT_CLASS = \"dx-group-colcount-\";\r\nexport var GROUP_COL_COUNT_ATTR = \"group-col-count\";\r\nexport var FORM_VALIDATION_SUMMARY = \"dx-form-validation-summary\";\r\nexport var FORM_UNDERLINED_CLASS = \"dx-form-styling-mode-underlined\";\r\nexport var SIMPLE_ITEM_TYPE = \"simple\";\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.layout_manager.utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../core/guid\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n SIMPLE_ITEM_TYPE\r\n} from \"./constants\";\r\nvar EDITORS_WITH_ARRAY_VALUE = [\"dxTagBox\", \"dxRangeSlider\", \"dxDateRangeBox\"];\r\nvar EDITORS_WITH_SPECIFIC_LABELS = [\"dxRangeSlider\", \"dxSlider\"];\r\nexport var EDITORS_WITHOUT_LABELS = [\"dxCalendar\", \"dxCheckBox\", \"dxHtmlEditor\", \"dxRadioGroup\", \"dxRangeSlider\", \"dxSlider\", \"dxSwitch\"];\r\nexport function convertToRenderFieldItemOptions(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n item: item,\r\n template: template,\r\n labelTemplate: labelTemplate,\r\n name: name,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n showColonAfterLabel: showColonAfterLabel,\r\n managerLabelLocation: managerLabelLocation,\r\n itemId: itemId,\r\n managerMarkOptions: managerMarkOptions,\r\n labelMode: labelMode,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref;\r\n var isRequired = isDefined(item.isRequired) ? item.isRequired : !!_hasRequiredRuleInSet(item.validationRules);\r\n var isSimpleItem = item.itemType === SIMPLE_ITEM_TYPE;\r\n var helpID = item.helpText ? \"dx-\".concat(new Guid) : null;\r\n var labelOptions = _convertToLabelOptions({\r\n item: item,\r\n id: itemId,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: managerLabelLocation,\r\n formLabelMode: labelMode,\r\n labelTemplate: labelTemplate,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n });\r\n var needRenderLabel = labelOptions.visible && (labelOptions.text || labelOptions.labelTemplate && isSimpleItem);\r\n var {\r\n location: labelLocation,\r\n labelID: labelID\r\n } = labelOptions;\r\n var labelNeedBaselineAlign = \"top\" !== labelLocation && [\"dxTextArea\", \"dxRadioGroup\", \"dxCalendar\", \"dxHtmlEditor\"].includes(item.editorType);\r\n var editorOptions = _convertToEditorOptions({\r\n editorType: item.editorType,\r\n editorValue: editorValue,\r\n defaultEditorName: item.dataField,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: item.editorOptions,\r\n editorInputId: itemId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: labelMode,\r\n labelText: labelOptions.textWithoutColon,\r\n labelMark: labelOptions.markOptions.showRequiredMark ? String.fromCharCode(160) + labelOptions.markOptions.requiredMark : \"\"\r\n });\r\n var needRenderOptionalMarkAsHelpText = labelOptions.markOptions.showOptionalMark && !labelOptions.visible && \"hidden\" !== editorOptions.labelMode && !isDefined(item.helpText);\r\n var helpText = needRenderOptionalMarkAsHelpText ? labelOptions.markOptions.optionalMark : item.helpText;\r\n return {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n item: item,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorOptions: editorOptions\r\n }\r\n}\r\nexport function getLabelMarkText(_ref2) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref2;\r\n if (!showRequiredMark && !showOptionalMark) {\r\n return \"\"\r\n }\r\n return String.fromCharCode(160) + (showRequiredMark ? requiredMark : optionalMark)\r\n}\r\nexport function convertToLabelMarkOptions(_ref3, isRequired) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref3;\r\n return {\r\n showRequiredMark: showRequiredMark && isRequired,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark && !isRequired,\r\n optionalMark: optionalMark\r\n }\r\n}\r\n\r\nfunction _convertToEditorOptions(_ref4) {\r\n var {\r\n editorType: editorType,\r\n defaultEditorName: defaultEditorName,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: externalEditorOptions,\r\n editorInputId: editorInputId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: formLabelMode,\r\n labelText: labelText,\r\n labelMark: labelMark\r\n } = _ref4;\r\n var editorOptionsWithValue = {};\r\n if (void 0 !== editorValue || canAssignUndefinedValueToEditor) {\r\n editorOptionsWithValue.value = editorValue\r\n }\r\n if (EDITORS_WITH_ARRAY_VALUE.includes(editorType)) {\r\n editorOptionsWithValue.value = editorOptionsWithValue.value || []\r\n }\r\n var labelMode = null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.labelMode;\r\n if (!isDefined(labelMode)) {\r\n labelMode = \"outside\" === formLabelMode ? \"hidden\" : formLabelMode\r\n }\r\n var stylingMode = (null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.stylingMode) || editorStylingMode;\r\n var useSpecificLabelOptions = EDITORS_WITH_SPECIFIC_LABELS.includes(editorType);\r\n var result = extend(true, editorOptionsWithValue, externalEditorOptions, {\r\n inputAttr: {\r\n id: editorInputId\r\n },\r\n validationBoundary: editorValidationBoundary,\r\n stylingMode: stylingMode,\r\n label: useSpecificLabelOptions ? null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.label : labelText,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n });\r\n if (externalEditorOptions) {\r\n if (result.dataSource) {\r\n result.dataSource = externalEditorOptions.dataSource\r\n }\r\n if (result.items) {\r\n result.items = externalEditorOptions.items\r\n }\r\n }\r\n if (defaultEditorName && !result.name) {\r\n result.name = defaultEditorName\r\n }\r\n return result\r\n}\r\n\r\nfunction _hasRequiredRuleInSet(rules) {\r\n var hasRequiredRule;\r\n if (rules && rules.length) {\r\n each(rules, (index, rule) => {\r\n if (\"required\" === rule.type) {\r\n hasRequiredRule = true;\r\n return false\r\n }\r\n })\r\n }\r\n return hasRequiredRule\r\n}\r\n\r\nfunction _convertToLabelOptions(_ref5) {\r\n var {\r\n item: item,\r\n id: id,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: labelLocation,\r\n labelTemplate: labelTemplate,\r\n formLabelMode: formLabelMode,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref5;\r\n var isEditorWithoutLabels = EDITORS_WITHOUT_LABELS.includes(item.editorType);\r\n var labelOptions = extend({\r\n showColon: showColonAfterLabel,\r\n location: labelLocation,\r\n id: id,\r\n visible: \"outside\" === formLabelMode || isEditorWithoutLabels && \"hidden\" !== formLabelMode,\r\n isRequired: isRequired\r\n }, item ? item.label : {}, {\r\n markOptions: convertToLabelMarkOptions(managerMarkOptions, isRequired),\r\n labelTemplate: labelTemplate,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n });\r\n if ([\"dxRadioGroup\", \"dxCheckBox\", \"dxLookup\", \"dxSlider\", \"dxRangeSlider\", \"dxSwitch\", \"dxHtmlEditor\", \"dxDateRangeBox\"].includes(item.editorType)) {\r\n labelOptions.labelID = \"dx-label-\".concat(new Guid)\r\n }\r\n if (!labelOptions.text && item.dataField) {\r\n labelOptions.text = captionize(item.dataField)\r\n }\r\n if (labelOptions.text) {\r\n labelOptions.textWithoutColon = labelOptions.text;\r\n labelOptions.text += labelOptions.showColon ? \":\" : \"\"\r\n }\r\n return labelOptions\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/components/m_label.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n FIELD_ITEM_LABEL_CLASS,\r\n FIELD_ITEM_LABEL_CONTENT_CLASS\r\n} from \"../constants\";\r\nimport {\r\n getLabelMarkText\r\n} from \"../m_form.layout_manager.utils\";\r\nexport var GET_LABEL_WIDTH_BY_TEXT_CLASS = \"dx-layout-manager-hidden-label\";\r\nexport var FIELD_ITEM_REQUIRED_MARK_CLASS = \"dx-field-item-required-mark\";\r\nexport var FIELD_ITEM_LABEL_LOCATION_CLASS = \"dx-field-item-label-location-\";\r\nexport var FIELD_ITEM_OPTIONAL_MARK_CLASS = \"dx-field-item-optional-mark\";\r\nexport var FIELD_ITEM_LABEL_TEXT_CLASS = \"dx-field-item-label-text\";\r\nexport function renderLabel(_ref) {\r\n var {\r\n text: text,\r\n id: id,\r\n location: location,\r\n alignment: alignment,\r\n labelID: labelID = null,\r\n markOptions: markOptions = {},\r\n labelTemplate: labelTemplate,\r\n labelTemplateData: labelTemplateData,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref;\r\n if ((!isDefined(text) || text.length <= 0) && !isDefined(labelTemplate)) {\r\n return null\r\n }\r\n var $label = $(\"<label>\").addClass(\"\".concat(FIELD_ITEM_LABEL_CLASS, \" \").concat(FIELD_ITEM_LABEL_LOCATION_CLASS).concat(location)).attr(\"for\", id).attr(\"id\", labelID).css(\"textAlign\", alignment);\r\n var $labelContainer = $(\"<span>\").addClass(FIELD_ITEM_LABEL_CONTENT_CLASS);\r\n var $labelContent = $(\"<span>\").addClass(FIELD_ITEM_LABEL_TEXT_CLASS).text(text);\r\n if (labelTemplate) {\r\n $labelContent = $(\"<div>\").addClass(\"dx-field-item-custom-label-content\");\r\n labelTemplateData.text = text;\r\n labelTemplate.render({\r\n container: getPublicElement($labelContent),\r\n model: labelTemplateData,\r\n onRendered() {\r\n null === onLabelTemplateRendered || void 0 === onLabelTemplateRendered ? void 0 : onLabelTemplateRendered()\r\n }\r\n })\r\n }\r\n return $label.append($labelContainer.append($labelContent, _renderLabelMark(markOptions)))\r\n}\r\n\r\nfunction _renderLabelMark(markOptions) {\r\n var markText = getLabelMarkText(markOptions);\r\n if (\"\" === markText) {\r\n return null\r\n }\r\n return $(\"<span>\").addClass(markOptions.showRequiredMark ? FIELD_ITEM_REQUIRED_MARK_CLASS : FIELD_ITEM_OPTIONAL_MARK_CLASS).text(markText)\r\n}\r\nexport function setLabelWidthByMaxLabelWidth($targetContainer, labelsSelector, labelMarkOptions) {\r\n var FIELD_ITEM_LABEL_CONTENT_CLASS_Selector = \"\".concat(labelsSelector, \" > .\").concat(FIELD_ITEM_LABEL_CLASS, \":not(.\").concat(FIELD_ITEM_LABEL_LOCATION_CLASS, \"top) > .\").concat(FIELD_ITEM_LABEL_CONTENT_CLASS);\r\n var $FIELD_ITEM_LABEL_CONTENT_CLASS_Items = $targetContainer.find(FIELD_ITEM_LABEL_CONTENT_CLASS_Selector);\r\n var FIELD_ITEM_LABEL_CONTENT_CLASS_Length = $FIELD_ITEM_LABEL_CONTENT_CLASS_Items.length;\r\n var labelWidth;\r\n var i;\r\n var maxWidth = 0;\r\n for (i = 0; i < FIELD_ITEM_LABEL_CONTENT_CLASS_Length; i++) {\r\n labelWidth = getLabelWidthByHTML($FIELD_ITEM_LABEL_CONTENT_CLASS_Items[i]);\r\n if (labelWidth > maxWidth) {\r\n maxWidth = labelWidth\r\n }\r\n }\r\n for (i = 0; i < FIELD_ITEM_LABEL_CONTENT_CLASS_Length; i++) {\r\n $FIELD_ITEM_LABEL_CONTENT_CLASS_Items[i].style.width = \"\".concat(maxWidth, \"px\")\r\n }\r\n}\r\n\r\nfunction getLabelWidthByHTML(labelContent) {\r\n var result = 0;\r\n var itemsCount = labelContent.children.length;\r\n for (var i = 0; i < itemsCount; i++) {\r\n var child = labelContent.children[i];\r\n result += child.offsetWidth\r\n }\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/components/m_field_item.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n captionize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../../../ui/themes\";\r\nimport Validator from \"../../../../ui/validator\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n FIELD_ITEM_CONTENT_CLASS\r\n} from \"../constants\";\r\nimport {\r\n renderLabel\r\n} from \"./m_label\";\r\nexport var FLEX_LAYOUT_CLASS = \"dx-flex-layout\";\r\nexport var FIELD_ITEM_OPTIONAL_CLASS = \"dx-field-item-optional\";\r\nexport var FIELD_ITEM_REQUIRED_CLASS = \"dx-field-item-required\";\r\nexport var FIELD_ITEM_CONTENT_WRAPPER_CLASS = \"dx-field-item-content-wrapper\";\r\nexport var FIELD_ITEM_CONTENT_LOCATION_CLASS = \"dx-field-item-content-location-\";\r\nexport var FIELD_ITEM_LABEL_ALIGN_CLASS = \"dx-field-item-label-align\";\r\nexport var FIELD_ITEM_HELP_TEXT_CLASS = \"dx-field-item-help-text\";\r\nexport var LABEL_VERTICAL_ALIGNMENT_CLASS = \"dx-label-v-align\";\r\nexport var LABEL_HORIZONTAL_ALIGNMENT_CLASS = \"dx-label-h-align\";\r\nexport var TOGGLE_CONTROLS_PADDING_CLASS = \"dx-toggle-controls-paddings\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar VALIDATION_TARGET_CLASS = \"dx-validation-target\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nexport function renderFieldItem(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n formLabelLocation: formLabelLocation,\r\n item: item,\r\n editorOptions: editorOptions,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup\r\n } = _ref;\r\n var $rootElement = $(\"<div>\").addClass(rootElementCssClassList.join(\" \")).appendTo($parent);\r\n $rootElement.addClass(isRequired ? FIELD_ITEM_REQUIRED_CLASS : FIELD_ITEM_OPTIONAL_CLASS);\r\n if (isSimpleItem) {\r\n $rootElement.addClass(FLEX_LAYOUT_CLASS)\r\n }\r\n if (isSimpleItem && labelNeedBaselineAlign) {\r\n $rootElement.addClass(FIELD_ITEM_LABEL_ALIGN_CLASS)\r\n }\r\n var $fieldEditorContainer = $(\"<div>\");\r\n $fieldEditorContainer.data(\"dx-form-item\", item);\r\n $fieldEditorContainer.addClass(FIELD_ITEM_CONTENT_CLASS).addClass(FIELD_ITEM_CONTENT_LOCATION_CLASS + {\r\n right: \"left\",\r\n left: \"right\",\r\n top: \"bottom\"\r\n } [formLabelLocation]);\r\n var $label = null;\r\n if (needRenderLabel) {\r\n if (labelOptions.labelTemplate) {\r\n labelOptions.labelTemplateData = getTemplateData(item, editorOptions, formOrLayoutManager)\r\n }\r\n $label = renderLabel(labelOptions)\r\n }\r\n if ($label) {\r\n var {\r\n editorType: editorType\r\n } = item;\r\n $rootElement.append($label);\r\n if (\"top\" === labelLocation || \"left\" === labelLocation) {\r\n $rootElement.append($fieldEditorContainer)\r\n }\r\n if (\"right\" === labelLocation) {\r\n $rootElement.prepend($fieldEditorContainer)\r\n }\r\n if (\"top\" === labelLocation) {\r\n $rootElement.addClass(LABEL_VERTICAL_ALIGNMENT_CLASS)\r\n } else {\r\n $rootElement.addClass(LABEL_HORIZONTAL_ALIGNMENT_CLASS)\r\n }\r\n if (\"dxCheckBox\" === editorType || \"dxSwitch\" === editorType) {\r\n eventsEngine.on($label, clickEventName, () => {\r\n eventsEngine.trigger($fieldEditorContainer.children(), clickEventName)\r\n })\r\n }\r\n var isToggleControls = [\"dxCheckBox\", \"dxSwitch\", \"dxRadioGroup\"].includes(editorType);\r\n var labelAlignment = labelOptions.alignment;\r\n var isLabelAlignmentLeft = \"left\" === labelAlignment || !labelAlignment;\r\n var hasNotTemplate = !template;\r\n var isLabelOnTop = \"top\" === labelLocation;\r\n if (hasNotTemplate && isToggleControls && isLabelOnTop && isLabelAlignmentLeft) {\r\n $fieldEditorContainer.addClass(TOGGLE_CONTROLS_PADDING_CLASS)\r\n }\r\n } else {\r\n $rootElement.append($fieldEditorContainer)\r\n }\r\n var widgetInstance;\r\n if (template) {\r\n template.render({\r\n container: getPublicElement($fieldEditorContainer),\r\n model: getTemplateData(item, editorOptions, formOrLayoutManager),\r\n onRendered() {\r\n var $validationTarget = getValidationTarget($fieldEditorContainer);\r\n var validationTargetInstance = tryGetValidationTargetInstance($validationTarget);\r\n subscribeWrapperInvalidClassToggle(validationTargetInstance)\r\n }\r\n })\r\n } else {\r\n var $div = $(\"<div>\").appendTo($fieldEditorContainer);\r\n try {\r\n widgetInstance = createComponentCallback($div, item.editorType, editorOptions);\r\n widgetInstance.setAria(\"describedby\", helpID);\r\n if (labelID) {\r\n widgetInstance.setAria(\"labelledby\", labelID)\r\n }\r\n widgetInstance.setAria(\"required\", isRequired)\r\n } catch (e) {\r\n errors.log(\"E1035\", e.message)\r\n }\r\n }\r\n var $validationTarget = getValidationTarget($fieldEditorContainer);\r\n var validationTargetInstance = $validationTarget && $validationTarget.data(VALIDATION_TARGET_CLASS);\r\n if (validationTargetInstance) {\r\n var isItemHaveCustomLabel = item.label && item.label.text;\r\n var itemName = isItemHaveCustomLabel ? null : name;\r\n var fieldName = isItemHaveCustomLabel ? item.label.text : itemName && captionize(itemName);\r\n var validationRules;\r\n if (isSimpleItem) {\r\n if (item.validationRules) {\r\n validationRules = item.validationRules\r\n } else {\r\n var requiredMessage = format(requiredMessageTemplate, fieldName || \"\");\r\n validationRules = item.isRequired ? [{\r\n type: \"required\",\r\n message: requiredMessage\r\n }] : null\r\n }\r\n }\r\n if (Array.isArray(validationRules) && validationRules.length) {\r\n createComponentCallback($validationTarget, Validator, {\r\n validationRules: validationRules,\r\n validationGroup: validationGroup,\r\n dataGetter: () => ({\r\n formItem: item\r\n })\r\n })\r\n }\r\n subscribeWrapperInvalidClassToggle(validationTargetInstance)\r\n }\r\n if (helpText && isSimpleItem) {\r\n var $editorParent = $fieldEditorContainer.parent();\r\n $editorParent.append($(\"<div>\").addClass(FIELD_ITEM_CONTENT_WRAPPER_CLASS).append($fieldEditorContainer).append($(\"<div>\").addClass(FIELD_ITEM_HELP_TEXT_CLASS).attr(\"id\", helpID).text(helpText)))\r\n }\r\n return {\r\n $fieldEditorContainer: $fieldEditorContainer,\r\n $rootElement: $rootElement,\r\n widgetInstance: widgetInstance\r\n }\r\n}\r\n\r\nfunction getValidationTarget($fieldEditorContainer) {\r\n var $editor = $fieldEditorContainer.children().first();\r\n return $editor.hasClass(TEMPLATE_WRAPPER_CLASS) ? $editor.children().first() : $editor\r\n}\r\n\r\nfunction tryGetValidationTargetInstance($validationTarget) {\r\n var _a, _b;\r\n return (null === $validationTarget || void 0 === $validationTarget ? void 0 : $validationTarget.data(VALIDATION_TARGET_CLASS)) || (null === (_b = null === (_a = null === $validationTarget || void 0 === $validationTarget ? void 0 : $validationTarget.parent) || void 0 === _a ? void 0 : _a.call($validationTarget)) || void 0 === _b ? void 0 : _b.data(VALIDATION_TARGET_CLASS))\r\n}\r\n\r\nfunction subscribeWrapperInvalidClassToggle(validationTargetInstance) {\r\n if (validationTargetInstance && isMaterialBased()) {\r\n var wrapperClass = \".\".concat(FIELD_ITEM_CONTENT_WRAPPER_CLASS);\r\n var toggleInvalidClass = _ref2 => {\r\n var {\r\n element: element,\r\n component: component\r\n } = _ref2;\r\n var {\r\n isValid: isValid,\r\n validationMessageMode: validationMessageMode\r\n } = component.option();\r\n $(element).parents(wrapperClass).toggleClass(INVALID_CLASS, false === isValid && (component._isFocused() || \"always\" === validationMessageMode))\r\n };\r\n validationTargetInstance.on(\"optionChanged\", e => {\r\n if (\"isValid\" !== e.name) {\r\n return\r\n }\r\n toggleInvalidClass(e)\r\n });\r\n validationTargetInstance.on(\"focusIn\", toggleInvalidClass).on(\"focusOut\", toggleInvalidClass).on(\"enterKey\", toggleInvalidClass)\r\n }\r\n}\r\n\r\nfunction getTemplateData(item, editorOptions, formOrLayoutManager) {\r\n return {\r\n dataField: item.dataField,\r\n editorType: item.editorType,\r\n editorOptions: editorOptions,\r\n component: formOrLayoutManager,\r\n name: item.name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.items_runtime_info.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../core/guid\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isString\r\n} from \"../../../core/utils/type\";\r\nexport default class FormItemsRunTimeInfo {\r\n constructor() {\r\n this._map = {}\r\n }\r\n _findWidgetInstance(condition) {\r\n var result;\r\n each(this._map, (guid, _ref) => {\r\n var {\r\n widgetInstance: widgetInstance,\r\n item: item\r\n } = _ref;\r\n if (condition(item)) {\r\n result = widgetInstance;\r\n return false\r\n }\r\n });\r\n return result\r\n }\r\n _findFieldByCondition(callback, valueExpr) {\r\n var result;\r\n each(this._map, (key, value) => {\r\n if (callback(value)) {\r\n result = \"guid\" === valueExpr ? key : value[valueExpr];\r\n return false\r\n }\r\n });\r\n return result\r\n }\r\n clear() {\r\n this._map = {}\r\n }\r\n removeItemsByItems(itemsRunTimeInfo) {\r\n each(itemsRunTimeInfo.getItems(), guid => this.removeItemByKey(guid))\r\n }\r\n removeItemByKey(key) {\r\n delete this._map[key]\r\n }\r\n add(options) {\r\n var key = options.guid || new Guid;\r\n this._map[key] = options;\r\n return key\r\n }\r\n addItemsOrExtendFrom(itemsRunTimeInfo) {\r\n itemsRunTimeInfo.each((key, itemRunTimeInfo) => {\r\n if (this._map[key]) {\r\n if (itemRunTimeInfo.widgetInstance) {\r\n this._map[key].widgetInstance = itemRunTimeInfo.widgetInstance\r\n }\r\n this._map[key].$itemContainer = itemRunTimeInfo.$itemContainer\r\n } else {\r\n this.add({\r\n item: itemRunTimeInfo.item,\r\n widgetInstance: itemRunTimeInfo.widgetInstance,\r\n guid: key,\r\n $itemContainer: itemRunTimeInfo.$itemContainer\r\n })\r\n }\r\n })\r\n }\r\n extendRunTimeItemInfoByKey(key, options) {\r\n if (this._map[key]) {\r\n this._map[key] = extend(this._map[key], options)\r\n }\r\n }\r\n findWidgetInstanceByItem(item) {\r\n return this._findWidgetInstance(storedItem => storedItem === item)\r\n }\r\n findGroupOrTabLayoutManagerByPath(targetPath) {\r\n return this._findFieldByCondition(_ref2 => {\r\n var {\r\n path: path\r\n } = _ref2;\r\n return path === targetPath\r\n }, \"layoutManager\")\r\n }\r\n findKeyByPath(targetPath) {\r\n return this._findFieldByCondition(_ref3 => {\r\n var {\r\n path: path\r\n } = _ref3;\r\n return path === targetPath\r\n }, \"guid\")\r\n }\r\n findWidgetInstanceByName(name) {\r\n return this._findWidgetInstance(item => name === item.name)\r\n }\r\n findWidgetInstanceByDataField(dataField) {\r\n return this._findWidgetInstance(item => dataField === (isString(item) ? item : item.dataField))\r\n }\r\n findItemContainerByItem(item) {\r\n for (var key in this._map) {\r\n if (this._map[key].item === item) {\r\n return this._map[key].$itemContainer\r\n }\r\n }\r\n return null\r\n }\r\n findItemIndexByItem(targetItem) {\r\n return this._findFieldByCondition(_ref4 => {\r\n var {\r\n item: item\r\n } = _ref4;\r\n return item === targetItem\r\n }, \"itemIndex\")\r\n }\r\n findPreparedItemByItem(item) {\r\n return this._findFieldByCondition(_ref5 => {\r\n var {\r\n item: currentItem\r\n } = _ref5;\r\n return currentItem === item\r\n }, \"preparedItem\")\r\n }\r\n getItems() {\r\n return this._map\r\n }\r\n each(handler) {\r\n each(this._map, (key, itemRunTimeInfo) => {\r\n handler(key, itemRunTimeInfo)\r\n })\r\n }\r\n removeItemsByPathStartWith(path) {\r\n var keys = Object.keys(this._map);\r\n var filteredKeys = keys.filter(key => {\r\n if (this._map[key].path) {\r\n return this._map[key].path.indexOf(path, 0) > -1\r\n }\r\n return false\r\n });\r\n filteredKeys.forEach(key => this.removeItemByKey(key))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.layout_manager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../../../ui/text_box\";\r\nimport \"../../../ui/number_box\";\r\nimport \"../../../ui/check_box\";\r\nimport \"../../../ui/date_box\";\r\nimport \"../../../ui/button\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n normalizeIndexes\r\n} from \"../../../core/utils/array\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../../../core/utils/type\";\r\nimport variableWrapper from \"../../../core/utils/variable_wrapper\";\r\nimport {\r\n getCurrentScreenFactor,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../events/remove\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport ResponsiveBox from \"../../../ui/responsive_box\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport {\r\n renderButtonItem\r\n} from \"./components/m_button_item\";\r\nimport {\r\n renderEmptyItem\r\n} from \"./components/m_empty_item\";\r\nimport {\r\n renderFieldItem\r\n} from \"./components/m_field_item\";\r\nimport {\r\n FIELD_ITEM_CLASS,\r\n FORM_LAYOUT_MANAGER_CLASS,\r\n LAYOUT_MANAGER_ONE_COLUMN,\r\n ROOT_SIMPLE_ITEM_CLASS,\r\n SIMPLE_ITEM_TYPE,\r\n SINGLE_COLUMN_ITEM_CONTENT\r\n} from \"./constants\";\r\nimport {\r\n default as FormItemsRunTimeInfo\r\n} from \"./m_form.items_runtime_info\";\r\nimport {\r\n convertToRenderFieldItemOptions\r\n} from \"./m_form.layout_manager.utils\";\r\nvar FORM_EDITOR_BY_DEFAULT = \"dxTextBox\";\r\nvar LAYOUT_MANAGER_FIRST_ROW_CLASS = \"dx-first-row\";\r\nvar LAYOUT_MANAGER_LAST_ROW_CLASS = \"dx-last-row\";\r\nvar LAYOUT_MANAGER_FIRST_COL_CLASS = \"dx-first-col\";\r\nvar LAYOUT_MANAGER_LAST_COL_CLASS = \"dx-last-col\";\r\nvar LayoutManager = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n layoutData: {},\r\n readOnly: false,\r\n colCount: 1,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n onFieldDataChanged: null,\r\n onEditorEnterKey: null,\r\n customizeItem: null,\r\n alignItemLabels: true,\r\n minColWidth: 200,\r\n showRequiredMark: true,\r\n screenByWidth: null,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n labelMode: \"outside\",\r\n optionalMark: messageLocalization.format(\"dxForm-optionalMark\"),\r\n requiredMessage: messageLocalization.getFormatter(\"dxForm-requiredMessage\")\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n layoutData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _init() {\r\n var layoutData = this.option(\"layoutData\");\r\n this.callBase();\r\n this._itemWatchers = [];\r\n this._itemsRunTimeInfo = new FormItemsRunTimeInfo;\r\n this._updateReferencedOptions(layoutData);\r\n this._initDataAndItems(layoutData)\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._cleanItemWatchers()\r\n },\r\n _initDataAndItems(initialData) {\r\n this._syncDataWithItems();\r\n this._updateItems(initialData)\r\n },\r\n _syncDataWithItems() {\r\n var layoutData = this.option(\"layoutData\");\r\n var userItems = this.option(\"items\");\r\n if (isDefined(userItems)) {\r\n userItems.forEach(item => {\r\n if (item.dataField && void 0 === this._getDataByField(item.dataField)) {\r\n var value;\r\n if (item.editorOptions) {\r\n value = item.editorOptions.value\r\n }\r\n if (isDefined(value) || item.dataField in layoutData) {\r\n this._updateFieldValue(item.dataField, value)\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _getDataByField(dataField) {\r\n return dataField ? this.option(\"layoutData.\".concat(dataField)) : null\r\n },\r\n _isCheckboxUndefinedStateEnabled(_ref) {\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n } = _ref;\r\n if (true === allowIndeterminateState && \"dxCheckBox\" === editorType) {\r\n var nameParts = [\"layoutData\", ...dataField.split(\".\")];\r\n var propertyName = nameParts.pop();\r\n var layoutData = this.option(nameParts.join(\".\"));\r\n return layoutData && propertyName in layoutData\r\n }\r\n return false\r\n },\r\n _updateFieldValue(dataField, value) {\r\n var layoutData = this.option(\"layoutData\");\r\n var newValue = value;\r\n if (!variableWrapper.isWrapped(layoutData[dataField]) && isDefined(dataField)) {\r\n this.option(\"layoutData.\".concat(dataField), newValue)\r\n } else if (variableWrapper.isWritableWrapped(layoutData[dataField])) {\r\n newValue = isFunction(newValue) ? newValue() : newValue;\r\n layoutData[dataField](newValue)\r\n }\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: newValue\r\n })\r\n },\r\n _triggerOnFieldDataChanged(args) {\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _updateItems(layoutData) {\r\n var that = this;\r\n var userItems = this.option(\"items\");\r\n var isUserItemsExist = isDefined(userItems);\r\n var customizeItem = that.option(\"customizeItem\");\r\n var items = isUserItemsExist ? userItems : this._generateItemsByData(layoutData);\r\n if (isDefined(items)) {\r\n var processedItems = [];\r\n each(items, (index, item) => {\r\n if (that._isAcceptableItem(item)) {\r\n item = that._processItem(item);\r\n customizeItem && customizeItem(item);\r\n if (isObject(item) && false !== variableWrapper.unwrap(item.visible)) {\r\n processedItems.push(item)\r\n }\r\n }\r\n });\r\n if (!that._itemWatchers.length || !isUserItemsExist) {\r\n that._updateItemWatchers(items)\r\n }\r\n this._setItems(processedItems);\r\n this._sortItems()\r\n }\r\n },\r\n _cleanItemWatchers() {\r\n this._itemWatchers.forEach(dispose => {\r\n dispose()\r\n });\r\n this._itemWatchers = []\r\n },\r\n _updateItemWatchers(items) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n items.forEach(item => {\r\n if (isObject(item) && isDefined(item.visible) && isFunction(watch)) {\r\n that._itemWatchers.push(watch(() => variableWrapper.unwrap(item.visible), () => {\r\n that._updateItems(that.option(\"layoutData\"));\r\n that.repaint()\r\n }, {\r\n skipImmediate: true\r\n }))\r\n }\r\n })\r\n },\r\n _generateItemsByData(layoutData) {\r\n var result = [];\r\n if (isDefined(layoutData)) {\r\n each(layoutData, dataField => {\r\n result.push({\r\n dataField: dataField\r\n })\r\n })\r\n }\r\n return result\r\n },\r\n _isAcceptableItem(item) {\r\n var itemField = item.dataField || item;\r\n var itemData = this._getDataByField(itemField);\r\n return !(isFunction(itemData) && !variableWrapper.isWrapped(itemData))\r\n },\r\n _processItem(item) {\r\n var _a;\r\n if (\"string\" === typeof item) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (\"object\" === typeof item && !item.itemType) {\r\n item.itemType = SIMPLE_ITEM_TYPE\r\n }\r\n if (!isDefined(item.editorType) && isDefined(item.dataField)) {\r\n var value = this._getDataByField(item.dataField);\r\n item.editorType = isDefined(value) ? this._getEditorTypeByDataType(type(value)) : FORM_EDITOR_BY_DEFAULT\r\n }\r\n if (\"dxCheckBox\" === item.editorType) {\r\n item.allowIndeterminateState = null !== (_a = item.allowIndeterminateState) && void 0 !== _a ? _a : true\r\n }\r\n return item\r\n },\r\n _getEditorTypeByDataType(dataType) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"dxNumberBox\";\r\n case \"date\":\r\n return \"dxDateBox\";\r\n case \"boolean\":\r\n return \"dxCheckBox\";\r\n default:\r\n return \"dxTextBox\"\r\n }\r\n },\r\n _sortItems() {\r\n normalizeIndexes(this._items, \"visibleIndex\");\r\n this._sortIndexes()\r\n },\r\n _sortIndexes() {\r\n this._items.sort((itemA, itemB) => {\r\n var indexA = itemA.visibleIndex;\r\n var indexB = itemB.visibleIndex;\r\n var result;\r\n if (indexA > indexB) {\r\n result = 1\r\n } else if (indexA < indexB) {\r\n result = -1\r\n } else {\r\n result = 0\r\n }\r\n return result\r\n })\r\n },\r\n _initMarkup() {\r\n this._itemsRunTimeInfo.clear();\r\n this.$element().addClass(FORM_LAYOUT_MANAGER_CLASS);\r\n this.callBase();\r\n this._renderResponsiveBox()\r\n },\r\n _renderResponsiveBox() {\r\n var templatesInfo = [];\r\n if (this._items && this._items.length) {\r\n var colCount = this._getColCount();\r\n var $container = $(\"<div>\").appendTo(this.$element());\r\n this._prepareItemsWithMerging(colCount);\r\n var layoutItems = this._generateLayoutItems();\r\n this._responsiveBox = this._createComponent($container, ResponsiveBox, this._getResponsiveBoxConfig(layoutItems, colCount, templatesInfo));\r\n if (!hasWindow()) {\r\n this._renderTemplates(templatesInfo)\r\n }\r\n }\r\n },\r\n _itemStateChangedHandler(e) {\r\n this._refresh()\r\n },\r\n _renderTemplates(templatesInfo) {\r\n var that = this;\r\n var itemsWithLabelTemplateCount = 0;\r\n templatesInfo.forEach(_ref2 => {\r\n var {\r\n item: item\r\n } = _ref2;\r\n var _a;\r\n if (null === (_a = null === item || void 0 === item ? void 0 : item.label) || void 0 === _a ? void 0 : _a.template) {\r\n itemsWithLabelTemplateCount++\r\n }\r\n });\r\n each(templatesInfo, (index, info) => {\r\n switch (info.itemType) {\r\n case \"empty\":\r\n renderEmptyItem(info);\r\n break;\r\n case \"button\":\r\n that._renderButtonItem(info);\r\n break;\r\n default:\r\n that._renderFieldItem(info, itemsWithLabelTemplateCount)\r\n }\r\n })\r\n },\r\n _getResponsiveBoxConfig(layoutItems, colCount, templatesInfo) {\r\n var that = this;\r\n var colCountByScreen = that.option(\"colCountByScreen\");\r\n var xsColCount = colCountByScreen && colCountByScreen.xs;\r\n return {\r\n onItemStateChanged: this._itemStateChangedHandler.bind(this),\r\n onLayoutChanged() {\r\n var onLayoutChanged = that.option(\"onLayoutChanged\");\r\n var isSingleColumnMode = that.isSingleColumnMode();\r\n if (onLayoutChanged) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, isSingleColumnMode);\r\n onLayoutChanged(isSingleColumnMode)\r\n }\r\n },\r\n onContentReady(e) {\r\n if (hasWindow()) {\r\n that._renderTemplates(templatesInfo)\r\n }\r\n if (that.option(\"onLayoutChanged\")) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, that.isSingleColumnMode(e.component))\r\n }\r\n },\r\n itemTemplate(e, itemData, itemElement) {\r\n if (!e.location) {\r\n return\r\n }\r\n var $itemElement = $(itemElement);\r\n var itemRenderedCountInPreviousRows = e.location.row * colCount;\r\n var item = that._items[e.location.col + itemRenderedCountInPreviousRows];\r\n if (!item) {\r\n return\r\n }\r\n var itemCssClassList = [item.cssClass];\r\n $itemElement.toggleClass(SINGLE_COLUMN_ITEM_CONTENT, that.isSingleColumnMode(this));\r\n if (0 === e.location.row) {\r\n itemCssClassList.push(LAYOUT_MANAGER_FIRST_ROW_CLASS)\r\n }\r\n if (0 === e.location.col) {\r\n itemCssClassList.push(LAYOUT_MANAGER_FIRST_COL_CLASS)\r\n }\r\n if (item.itemType === SIMPLE_ITEM_TYPE && that.option(\"isRoot\")) {\r\n $itemElement.addClass(ROOT_SIMPLE_ITEM_CLASS)\r\n }\r\n var isLastColumn = e.location.col === colCount - 1 || e.location.col + e.location.colspan === colCount;\r\n var rowsCount = that._getRowsCount();\r\n var isLastRow = e.location.row === rowsCount - 1;\r\n if (isLastColumn) {\r\n itemCssClassList.push(LAYOUT_MANAGER_LAST_COL_CLASS)\r\n }\r\n if (isLastRow) {\r\n itemCssClassList.push(LAYOUT_MANAGER_LAST_ROW_CLASS)\r\n }\r\n if (\"empty\" !== item.itemType) {\r\n itemCssClassList.push(FIELD_ITEM_CLASS);\r\n itemCssClassList.push(that.option(\"cssItemClass\"));\r\n if (isDefined(item.col)) {\r\n itemCssClassList.push(\"dx-col-\".concat(item.col))\r\n }\r\n }\r\n templatesInfo.push({\r\n itemType: item.itemType,\r\n item: item,\r\n $parent: $itemElement,\r\n rootElementCssClassList: itemCssClassList\r\n })\r\n },\r\n cols: that._generateRatio(colCount),\r\n rows: that._generateRatio(that._getRowsCount(), true),\r\n dataSource: layoutItems,\r\n screenByWidth: that.option(\"screenByWidth\"),\r\n singleColumnScreen: xsColCount ? false : \"xs\"\r\n }\r\n },\r\n _getColCount() {\r\n var colCount = this.option(\"colCount\");\r\n var colCountByScreen = this.option(\"colCountByScreen\");\r\n if (colCountByScreen) {\r\n var screenFactor = this.option(\"form\").getTargetScreenFactor();\r\n if (!screenFactor) {\r\n screenFactor = hasWindow() ? getCurrentScreenFactor(this.option(\"screenByWidth\")) : \"lg\"\r\n }\r\n colCount = colCountByScreen[screenFactor] || colCount\r\n }\r\n if (\"auto\" === colCount) {\r\n if (this._cashedColCount) {\r\n return this._cashedColCount\r\n }\r\n this._cashedColCount = colCount = this._getMaxColCount()\r\n }\r\n return colCount < 1 ? 1 : colCount\r\n },\r\n _getMaxColCount() {\r\n if (!hasWindow()) {\r\n return 1\r\n }\r\n var minColWidth = this.option(\"minColWidth\");\r\n var width = getWidth(this.$element());\r\n var itemsCount = this._items.length;\r\n var maxColCount = Math.floor(width / minColWidth) || 1;\r\n return itemsCount < maxColCount ? itemsCount : maxColCount\r\n },\r\n isCachedColCountObsolete() {\r\n return this._cashedColCount && this._getMaxColCount() !== this._cashedColCount\r\n },\r\n _prepareItemsWithMerging(colCount) {\r\n var items = this._items.slice(0);\r\n var item;\r\n var itemsMergedByCol;\r\n var result = [];\r\n var j;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n result.push(item);\r\n if (this.option(\"alignItemLabels\") || item.alignItemLabels || item.colSpan) {\r\n item.col = this._getColByIndex(result.length - 1, colCount)\r\n }\r\n if (item.colSpan > 1 && item.col + item.colSpan <= colCount) {\r\n itemsMergedByCol = [];\r\n for (j = 0; j < item.colSpan - 1; j++) {\r\n itemsMergedByCol.push({\r\n merged: true\r\n })\r\n }\r\n result = result.concat(itemsMergedByCol)\r\n } else {\r\n delete item.colSpan\r\n }\r\n }\r\n this._setItems(result)\r\n },\r\n _getColByIndex: (index, colCount) => index % colCount,\r\n _setItems(items) {\r\n this._items = items;\r\n this._cashedColCount = null\r\n },\r\n _generateLayoutItems() {\r\n var items = this._items;\r\n var colCount = this._getColCount();\r\n var result = [];\r\n var item;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n if (!item.merged) {\r\n var generatedItem = {\r\n location: {\r\n row: parseInt(i / colCount),\r\n col: this._getColByIndex(i, colCount)\r\n }\r\n };\r\n if (isDefined(item.disabled)) {\r\n generatedItem.disabled = item.disabled\r\n }\r\n if (isDefined(item.visible)) {\r\n generatedItem.visible = item.visible\r\n }\r\n if (isDefined(item.colSpan)) {\r\n generatedItem.location.colspan = item.colSpan\r\n }\r\n if (isDefined(item.rowSpan)) {\r\n generatedItem.location.rowspan = item.rowSpan\r\n }\r\n result.push(generatedItem)\r\n }\r\n }\r\n return result\r\n },\r\n _renderEmptyItem($container) {\r\n renderEmptyItem({\r\n $container: $container\r\n })\r\n },\r\n _renderButtonItem(_ref3) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref3;\r\n var {\r\n $rootElement: $rootElement,\r\n buttonInstance: buttonInstance\r\n } = renderButtonItem({\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n validationGroup: this.option(\"validationGroup\"),\r\n createComponentCallback: this._createComponent.bind(this)\r\n });\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: buttonInstance,\r\n guid: item.guid,\r\n $itemContainer: $rootElement\r\n })\r\n },\r\n _renderFieldItem(_ref4, itemsWithLabelTemplateCount) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref4;\r\n var _a, _b;\r\n var editorValue = this._getDataByField(item.dataField);\r\n var canAssignUndefinedValueToEditor = false;\r\n if (void 0 === editorValue) {\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n } = item;\r\n canAssignUndefinedValueToEditor = this._isCheckboxUndefinedStateEnabled({\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n })\r\n }\r\n var name = item.dataField || item.name;\r\n var formOrLayoutManager = this._getFormOrThis();\r\n var {\r\n $fieldEditorContainer: $fieldEditorContainer,\r\n widgetInstance: widgetInstance,\r\n $rootElement: $rootElement\r\n } = renderFieldItem(convertToRenderFieldItemOptions({\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n item: item,\r\n name: name,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n formOrLayoutManager: this._getFormOrThis(),\r\n createComponentCallback: this._createComponent.bind(this),\r\n formLabelLocation: this.option(\"labelLocation\"),\r\n requiredMessageTemplate: this.option(\"requiredMessage\"),\r\n validationGroup: this.option(\"validationGroup\"),\r\n editorValidationBoundary: this.option(\"validationBoundary\"),\r\n editorStylingMode: this.option(\"form\") && this.option(\"form\").option(\"stylingMode\"),\r\n showColonAfterLabel: this.option(\"showColonAfterLabel\"),\r\n managerLabelLocation: this.option(\"labelLocation\"),\r\n template: item.template ? this._getTemplate(item.template) : null,\r\n labelTemplate: (null === (_a = item.label) || void 0 === _a ? void 0 : _a.template) ? this._getTemplate(item.label.template) : null,\r\n itemId: this.option(\"form\") && this.option(\"form\").getItemID(name),\r\n managerMarkOptions: this._getMarkOptions(),\r\n labelMode: this.option(\"labelMode\"),\r\n onLabelTemplateRendered: () => {\r\n this._incTemplateRenderedCallCount();\r\n if (this._shouldAlignLabelsOnTemplateRendered(formOrLayoutManager, itemsWithLabelTemplateCount)) {\r\n formOrLayoutManager._alignLabels(this, this.isSingleColumnMode(formOrLayoutManager))\r\n }\r\n }\r\n }));\r\n null === (_b = this.option(\"onFieldItemRendered\")) || void 0 === _b ? void 0 : _b();\r\n if (widgetInstance && item.dataField) {\r\n this._bindDataField(widgetInstance, item.dataField, item.editorType, $fieldEditorContainer)\r\n }\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: widgetInstance,\r\n guid: item.guid,\r\n $itemContainer: $rootElement\r\n })\r\n },\r\n _incTemplateRenderedCallCount() {\r\n var _a;\r\n this._labelTemplateRenderedCallCount = (null !== (_a = this._labelTemplateRenderedCallCount) && void 0 !== _a ? _a : 0) + 1\r\n },\r\n _shouldAlignLabelsOnTemplateRendered(formOrLayoutManager, totalItemsWithLabelTemplate) {\r\n return formOrLayoutManager.option(\"templatesRenderAsynchronously\") && this._labelTemplateRenderedCallCount === totalItemsWithLabelTemplate\r\n },\r\n _getMarkOptions() {\r\n return {\r\n showRequiredMark: this.option(\"showRequiredMark\"),\r\n requiredMark: this.option(\"requiredMark\"),\r\n showOptionalMark: this.option(\"showOptionalMark\"),\r\n optionalMark: this.option(\"optionalMark\")\r\n }\r\n },\r\n _getFormOrThis() {\r\n return this.option(\"form\") || this\r\n },\r\n _bindDataField(editorInstance, dataField, editorType, $container) {\r\n var formOrThis = this._getFormOrThis();\r\n editorInstance.on(\"enterKey\", args => {\r\n formOrThis._createActionByOption(\"onEditorEnterKey\")(extend(args, {\r\n dataField: dataField\r\n }))\r\n });\r\n this._createWatcher(editorInstance, $container, dataField);\r\n this.linkEditorToDataField(editorInstance, dataField, editorType)\r\n },\r\n _createWatcher(editorInstance, $container, dataField) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n if (!isFunction(watch)) {\r\n return\r\n }\r\n var dispose = watch(() => that._getDataByField(dataField), () => {\r\n var fieldValue = that._getDataByField(dataField);\r\n if (\"dxTagBox\" === editorInstance.NAME) {\r\n var editorValue = editorInstance.option(\"value\");\r\n if (fieldValue !== editorValue && function(array1, array2) {\r\n if (!Array.isArray(array1) || !Array.isArray(array2) || array1.length !== array2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < array1.length; i++) {\r\n if (array1[i] !== array2[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n }(fieldValue, editorValue)) {\r\n return\r\n }\r\n }\r\n editorInstance.option(\"value\", fieldValue)\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n }, {\r\n createWatcherDataField: dataField\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n },\r\n _getWatch() {\r\n if (!isDefined(this._watch)) {\r\n var formInstance = this.option(\"form\");\r\n this._watch = formInstance && formInstance.option(\"integrationOptions.watchMethod\")\r\n }\r\n return this._watch\r\n },\r\n _createComponent($editor, type, editorOptions) {\r\n var readOnlyState = this.option(\"readOnly\");\r\n var hasEditorReadOnly = Object.hasOwn(editorOptions, \"readOnly\");\r\n var instance = this.callBase($editor, type, _extends(_extends({}, editorOptions), {\r\n readOnly: !hasEditorReadOnly ? readOnlyState : editorOptions.readOnly\r\n }));\r\n var isChangeByForm = false;\r\n instance.on(\"optionChanged\", args => {\r\n if (\"readOnly\" === args.name && !isChangeByForm) {\r\n hasEditorReadOnly = true\r\n }\r\n });\r\n this.on(\"optionChanged\", args => {\r\n if (\"readOnly\" === args.name && !hasEditorReadOnly) {\r\n isChangeByForm = true;\r\n instance.option(args.name, args.value);\r\n isChangeByForm = false\r\n }\r\n });\r\n return instance\r\n },\r\n _generateRatio(count, isAutoSize) {\r\n var result = [];\r\n var ratio;\r\n var i;\r\n for (i = 0; i < count; i++) {\r\n ratio = {\r\n ratio: 1\r\n };\r\n if (isAutoSize) {\r\n ratio.baseSize = \"auto\"\r\n }\r\n result.push(ratio)\r\n }\r\n return result\r\n },\r\n _getRowsCount() {\r\n return Math.ceil(this._items.length / this._getColCount())\r\n },\r\n _updateReferencedOptions(newLayoutData) {\r\n var layoutData = this.option(\"layoutData\");\r\n if (isObject(layoutData)) {\r\n Object.getOwnPropertyNames(layoutData).forEach(property => delete this._optionsByReference[\"layoutData.\".concat(property)])\r\n }\r\n if (isObject(newLayoutData)) {\r\n Object.getOwnPropertyNames(newLayoutData).forEach(property => this._optionsByReference[\"layoutData.\".concat(property)] = true)\r\n }\r\n },\r\n _clearWidget(instance) {\r\n this._disableEditorValueChangedHandler = true;\r\n instance.clear();\r\n this._disableEditorValueChangedHandler = false;\r\n instance.option(\"isValid\", true)\r\n },\r\n _optionChanged(args) {\r\n if (0 === args.fullName.search(\"layoutData.\")) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"showRequiredMark\":\r\n case \"showOptionalMark\":\r\n case \"requiredMark\":\r\n case \"optionalMark\":\r\n this._cashedRequiredConfig = null;\r\n this._invalidate();\r\n break;\r\n case \"layoutData\":\r\n this._updateReferencedOptions(args.value);\r\n if (this.option(\"items\")) {\r\n if (!isEmptyObject(args.value)) {\r\n this._itemsRunTimeInfo.each((_, itemRunTimeInfo) => {\r\n if (isDefined(itemRunTimeInfo.item)) {\r\n var {\r\n dataField: dataField\r\n } = itemRunTimeInfo.item;\r\n if (dataField && isDefined(itemRunTimeInfo.widgetInstance)) {\r\n var valueGetter = compileGetter(dataField);\r\n var dataValue = valueGetter(args.value);\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType\r\n } = itemRunTimeInfo.item;\r\n if (void 0 !== dataValue || this._isCheckboxUndefinedStateEnabled({\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n })) {\r\n itemRunTimeInfo.widgetInstance.option(\"value\", dataValue)\r\n } else {\r\n this._clearWidget(itemRunTimeInfo.widgetInstance)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n } else {\r\n this._initDataAndItems(args.value);\r\n this._invalidate()\r\n }\r\n break;\r\n case \"items\":\r\n this._cleanItemWatchers();\r\n this._initDataAndItems(args.value);\r\n this._invalidate();\r\n break;\r\n case \"alignItemLabels\":\r\n case \"labelLocation\":\r\n case \"labelMode\":\r\n case \"requiredMessage\":\r\n this._invalidate();\r\n break;\r\n case \"customizeItem\":\r\n this._updateItems(this.option(\"layoutData\"));\r\n this._invalidate();\r\n break;\r\n case \"colCount\":\r\n case \"colCountByScreen\":\r\n this._resetColCount();\r\n break;\r\n case \"minColWidth\":\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._resetColCount()\r\n }\r\n break;\r\n case \"readOnly\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._resetColCount()\r\n }\r\n break;\r\n case \"onFieldDataChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetColCount() {\r\n this._cashedColCount = null;\r\n this._invalidate()\r\n },\r\n linkEditorToDataField(editorInstance, dataField) {\r\n this.on(\"optionChanged\", args => {\r\n if (args.fullName === \"layoutData.\".concat(dataField)) {\r\n editorInstance._setOptionWithoutOptionChange(\"value\", args.value)\r\n }\r\n });\r\n editorInstance.on(\"valueChanged\", args => {\r\n var isValueReferenceType = isObject(args.value) || Array.isArray(args.value);\r\n if (!this._disableEditorValueChangedHandler && !(isValueReferenceType && args.value === args.previousValue)) {\r\n this._updateFieldValue(dataField, args.value)\r\n }\r\n })\r\n },\r\n _dimensionChanged() {\r\n if (\"auto\" === this.option(\"colCount\") && this.isCachedColCountObsolete()) {\r\n this._eventsStrategy.fireEvent(\"autoColCountChanged\")\r\n }\r\n },\r\n updateData(data, value) {\r\n var that = this;\r\n if (isObject(data)) {\r\n each(data, (dataField, fieldValue) => {\r\n that._updateFieldValue(dataField, fieldValue)\r\n })\r\n } else if (\"string\" === typeof data) {\r\n that._updateFieldValue(data, value)\r\n }\r\n },\r\n getEditor(field) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByDataField(field) || this._itemsRunTimeInfo.findWidgetInstanceByName(field)\r\n },\r\n isSingleColumnMode(component) {\r\n var responsiveBox = this._responsiveBox || component;\r\n if (responsiveBox) {\r\n return responsiveBox.option(\"currentScreenFactor\") === responsiveBox.option(\"singleColumnScreen\")\r\n }\r\n },\r\n getItemsRunTimeInfo() {\r\n return this._itemsRunTimeInfo\r\n }\r\n});\r\nregisterComponent(\"dxLayoutManager\", LayoutManager);\r\nexport default LayoutManager;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_validation_summary.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.edit\";\r\nimport ValidationEngine from \"./m_validation_engine\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nvar ITEM_CLASS = \"\".concat(VALIDATION_SUMMARY_CLASS, \"-item\");\r\nvar ITEM_DATA_KEY = \"\".concat(VALIDATION_SUMMARY_CLASS, \"-item-data\");\r\nvar ValidationSummary = CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n focusStateEnabled: false,\r\n noDataText: null\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration()\r\n },\r\n _initGroupRegistration() {\r\n var $element = this.$element();\r\n var group = this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element));\r\n var groupConfig = ValidationEngine.addGroup(group, true);\r\n this._unsubscribeGroup();\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n this.groupSubscription = this._groupValidationHandler.bind(this);\r\n groupConfig.on(\"validated\", this.groupSubscription)\r\n },\r\n _unsubscribeGroup() {\r\n var groupConfig = ValidationEngine.getGroupConfig(this._validationGroup);\r\n groupConfig && groupConfig.off(\"validated\", this.groupSubscription)\r\n },\r\n _getOrderedItems(validators, items) {\r\n var orderedItems = [];\r\n each(validators, (_, validator) => {\r\n var foundItems = grep(items, item => {\r\n if (item.validator === validator) {\r\n return true\r\n }\r\n });\r\n if (foundItems.length) {\r\n orderedItems = orderedItems.concat(foundItems)\r\n }\r\n });\r\n return orderedItems\r\n },\r\n _groupValidationHandler(params) {\r\n var items = this._getOrderedItems(params.validators, map(params.brokenRules, rule => ({\r\n text: rule.message,\r\n validator: rule.validator,\r\n index: rule.index\r\n })));\r\n this.validators = params.validators;\r\n each(this.validators, (_, validator) => {\r\n if (validator._validationSummary !== this) {\r\n var handler = this._itemValidationHandler.bind(this);\r\n validator.on(\"validated\", handler);\r\n validator.on(\"disposing\", (function() {\r\n validator.off(\"validated\", handler);\r\n validator._validationSummary = null;\r\n handler = null\r\n }));\r\n validator._validationSummary = this\r\n }\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _itemValidationHandler(_ref) {\r\n var {\r\n isValid: isValid,\r\n validator: validator,\r\n brokenRules: brokenRules\r\n } = _ref;\r\n var items = this.option(\"items\");\r\n var itemsChanged = false;\r\n var itemIndex = 0;\r\n var _loop = function() {\r\n var item = items[itemIndex];\r\n if (item.validator === validator) {\r\n var foundRule = grep(brokenRules || [], rule => rule.index === item.index)[0];\r\n if (isValid || !foundRule) {\r\n items.splice(itemIndex, 1);\r\n itemsChanged = true;\r\n return 1\r\n }\r\n if (foundRule.message !== item.text) {\r\n item.text = foundRule.message;\r\n itemsChanged = true\r\n }\r\n }\r\n itemIndex++\r\n };\r\n while (itemIndex < items.length) {\r\n if (_loop()) {\r\n continue\r\n }\r\n }\r\n each(brokenRules, (_, rule) => {\r\n var foundItem = grep(items, item => item.validator === validator && item.index === rule.index)[0];\r\n if (!foundItem) {\r\n items.push({\r\n text: rule.message,\r\n validator: validator,\r\n index: rule.index\r\n });\r\n itemsChanged = true\r\n }\r\n });\r\n if (itemsChanged) {\r\n items = this._getOrderedItems(this.validators, items);\r\n this.option(\"items\", items)\r\n }\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATION_SUMMARY_CLASS);\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemClass: () => ITEM_CLASS,\r\n _itemDataKey: () => ITEM_DATA_KEY,\r\n _postprocessRenderItem(params) {\r\n eventsEngine.on(params.itemElement, \"click\", () => {\r\n params.itemData.validator && params.itemData.validator.focus && params.itemData.validator.focus()\r\n })\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._unsubscribeGroup()\r\n },\r\n refreshValidationGroup() {\r\n this._initGroupRegistration()\r\n }\r\n});\r\nregisterComponent(\"dxValidationSummary\", ValidationSummary);\r\nexport default ValidationSummary;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_validation_group.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport $ from \"../../core/renderer\";\r\nimport ValidationEngine from \"./m_validation_engine\";\r\nimport ValidationSummary from \"./m_validation_summary\";\r\nimport Validator from \"./m_validator\";\r\nvar VALIDATION_ENGINE_CLASS = \"dx-validationgroup\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nclass ValidationGroup extends DOMComponent {\r\n _getDefaultOptions() {\r\n return super._getDefaultOptions()\r\n }\r\n _init() {\r\n super._init();\r\n ValidationEngine.addGroup(this, false)\r\n }\r\n _initMarkup() {\r\n var $element = this.$element();\r\n $element.addClass(VALIDATION_ENGINE_CLASS);\r\n $element.find(\".\".concat(VALIDATOR_CLASS)).each((_, validatorContainer) => {\r\n Validator.getInstance($(validatorContainer))._initGroupRegistration()\r\n });\r\n $element.find(\".\".concat(VALIDATION_SUMMARY_CLASS)).each((_, summaryContainer) => {\r\n ValidationSummary.getInstance($(summaryContainer)).refreshValidationGroup()\r\n });\r\n super._initMarkup()\r\n }\r\n validate() {\r\n return ValidationEngine.validateGroup(this)\r\n }\r\n reset() {\r\n return ValidationEngine.resetGroup(this)\r\n }\r\n _dispose() {\r\n ValidationEngine.removeGroup(this);\r\n this.$element().removeClass(VALIDATION_ENGINE_CLASS);\r\n super._dispose()\r\n }\r\n _useTemplates() {\r\n return false\r\n }\r\n}\r\nregisterComponent(\"dxValidationGroup\", ValidationGroup);\r\nexport default ValidationGroup;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/multi_view/m_multi_view.animation.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nexport var _translator = {\r\n move($element, position) {\r\n move($element, {\r\n left: position\r\n })\r\n }\r\n};\r\nexport var animation = {\r\n moveTo($element, position, duration, completeAction) {\r\n fx.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n complete($element) {\r\n fx.stop($element, true)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_multi_view.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate\r\n} from \"../../animation/translator\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.live_update\";\r\nimport {\r\n _translator,\r\n animation\r\n} from \"./multi_view/m_multi_view.animation\";\r\nvar MULTIVIEW_CLASS = \"dx-multiview\";\r\nvar MULTIVIEW_WRAPPER_CLASS = \"dx-multiview-wrapper\";\r\nvar MULTIVIEW_ITEM_CONTAINER_CLASS = \"dx-multiview-item-container\";\r\nvar MULTIVIEW_ITEM_CLASS = \"dx-multiview-item\";\r\nvar MULTIVIEW_ITEM_HIDDEN_CLASS = \"dx-multiview-item-hidden\";\r\nvar MULTIVIEW_ITEM_DATA_KEY = \"dxMultiViewItemData\";\r\nvar MULTIVIEW_ANIMATION_DURATION = 200;\r\nvar toNumber = value => +value;\r\nvar position = $element => locate($element).left;\r\nvar MultiView = CollectionWidget.inherit({\r\n _activeStateUnit: \".\".concat(MULTIVIEW_ITEM_CLASS),\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n selectedIndex: 0,\r\n swipeEnabled: true,\r\n animationEnabled: true,\r\n loop: false,\r\n deferRendering: true,\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectByClick: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _itemClass: () => MULTIVIEW_ITEM_CLASS,\r\n _itemDataKey: () => MULTIVIEW_ITEM_DATA_KEY,\r\n _itemContainer() {\r\n return this._$itemContainer\r\n },\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _itemWidth() {\r\n if (!this._itemWidthValue) {\r\n this._itemWidthValue = getWidth(this._$wrapper)\r\n }\r\n return this._itemWidthValue\r\n },\r\n _clearItemWidthCache() {\r\n delete this._itemWidthValue\r\n },\r\n _itemsCount() {\r\n return this.option(\"items\").length\r\n },\r\n _normalizeIndex(index) {\r\n var count = this._itemsCount();\r\n if (index < 0) {\r\n index += count\r\n }\r\n if (index >= count) {\r\n index -= count\r\n }\r\n return index\r\n },\r\n _getRTLSignCorrection() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _init() {\r\n this.callBase.apply(this, arguments);\r\n var $element = this.$element();\r\n $element.addClass(MULTIVIEW_CLASS);\r\n this._$wrapper = $(\"<div>\").addClass(MULTIVIEW_WRAPPER_CLASS);\r\n this._$wrapper.appendTo($element);\r\n this._$itemContainer = $(\"<div>\").addClass(MULTIVIEW_ITEM_CONTAINER_CLASS);\r\n this._$itemContainer.appendTo(this._$wrapper);\r\n this.option(\"loopItemFocus\", this.option(\"loop\"));\r\n this._findBoundaryIndices();\r\n this._initSwipeable()\r\n },\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase();\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0]);\r\n this._setElementAria();\r\n this._setItemsAria()\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1)\r\n }\r\n },\r\n _beforeItemElementInserted(change) {\r\n this.callBase.apply(this, arguments);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(change.index, 0, null)\r\n }\r\n },\r\n _executeItemRenderAction(index, itemData, itemElement) {\r\n index = (this.option(\"items\") || []).indexOf(itemData);\r\n this.callBase(index, itemData, itemElement)\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = Deferred();\r\n var that = this;\r\n var {\r\n callBase: callBase\r\n } = this;\r\n var deferred = Deferred();\r\n deferred.done(() => {\r\n var $itemContent = callBase.call(that, args);\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n this._deferredItems[args.index] = deferred;\r\n this.option(\"deferRendering\") || deferred.resolve();\r\n return renderContentDeferred.promise()\r\n },\r\n _render() {\r\n this.callBase();\r\n deferRender(() => {\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItems(selectedItemIndices[0])\r\n })\r\n },\r\n _getElementAria: () => ({\r\n role: \"group\",\r\n roledescription: messageLocalization.format(\"dxMultiView-elementAriaRoleDescription\"),\r\n label: messageLocalization.format(\"dxMultiView-elementAriaLabel\")\r\n }),\r\n _setElementAria() {\r\n var aria = this._getElementAria();\r\n this.setAria(aria, this.$element())\r\n },\r\n _setItemsAria() {\r\n var $itemElements = this._itemElements();\r\n var itemsCount = this._itemsCount();\r\n $itemElements.each((itemIndex, item) => {\r\n var aria = this._getItemAria({\r\n itemIndex: itemIndex,\r\n itemsCount: itemsCount\r\n });\r\n this.setAria(aria, $(item))\r\n })\r\n },\r\n _getItemAria(_ref) {\r\n var {\r\n itemIndex: itemIndex,\r\n itemsCount: itemsCount\r\n } = _ref;\r\n var aria = {\r\n role: \"group\",\r\n roledescription: messageLocalization.format(\"dxMultiView-itemAriaRoleDescription\"),\r\n label: messageLocalization.format(\"dxMultiView-itemAriaLabel\", itemIndex + 1, itemsCount)\r\n };\r\n return aria\r\n },\r\n _updateItems(selectedIndex, newIndex) {\r\n this._updateItemsPosition(selectedIndex, newIndex);\r\n this._updateItemsVisibility(selectedIndex, newIndex)\r\n },\r\n _modifyByChanges() {\r\n this.callBase.apply(this, arguments);\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _updateItemsPosition(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n var positionSign = isDefined(newIndex) ? -this._animationDirection(newIndex, selectedIndex) : void 0;\r\n var $selectedItem = $itemElements.eq(selectedIndex);\r\n _translator.move($selectedItem, 0);\r\n if (isDefined(newIndex)) {\r\n _translator.move($itemElements.eq(newIndex), \"\".concat(100 * positionSign, \"%\"))\r\n }\r\n },\r\n _updateItemsVisibility(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n $itemElements.each((itemIndex, item) => {\r\n var $item = $(item);\r\n var isHidden = itemIndex !== selectedIndex && itemIndex !== newIndex;\r\n if (!isHidden) {\r\n this._renderSpecificItem(itemIndex)\r\n }\r\n $item.toggleClass(MULTIVIEW_ITEM_HIDDEN_CLASS, isHidden);\r\n this.setAria(\"hidden\", isHidden || void 0, $item)\r\n })\r\n },\r\n _renderSpecificItem(index) {\r\n var $item = this._itemElements().eq(index);\r\n var hasItemContent = $item.find(this._itemContentClass()).length > 0;\r\n if (isDefined(index) && !hasItemContent) {\r\n this._deferredItems[index].resolve();\r\n triggerResizeEvent($item)\r\n }\r\n },\r\n _refreshItem($item, item) {\r\n this.callBase($item, item);\r\n this._updateItemsVisibility(this.option(\"selectedIndex\"))\r\n },\r\n _setAriaSelectionAttribute: noop,\r\n _updateSelection(addedSelection, removedSelection) {\r\n var newIndex = addedSelection[0];\r\n var prevIndex = removedSelection[0];\r\n animation.complete(this._$itemContainer);\r\n this._updateItems(prevIndex, newIndex);\r\n var animationDirection = this._animationDirection(newIndex, prevIndex);\r\n this._animateItemContainer(animationDirection * this._itemWidth(), () => {\r\n _translator.move(this._$itemContainer, 0);\r\n this._updateItems(newIndex);\r\n getWidth(this._$itemContainer)\r\n })\r\n },\r\n _animateItemContainer(position, completeCallback) {\r\n var duration = this.option(\"animationEnabled\") ? MULTIVIEW_ANIMATION_DURATION : 0;\r\n animation.moveTo(this._$itemContainer, position, duration, completeCallback)\r\n },\r\n _animationDirection(newIndex, prevIndex) {\r\n var containerPosition = position(this._$itemContainer);\r\n var indexDifference = (prevIndex - newIndex) * this._getRTLSignCorrection() * this._getItemFocusLoopSignCorrection();\r\n var isSwipePresent = 0 !== containerPosition;\r\n var directionSignVariable = isSwipePresent ? containerPosition : indexDifference;\r\n return sign(directionSignVariable)\r\n },\r\n _getSwipeDisabledState() {\r\n return !this.option(\"swipeEnabled\") || this._itemsCount() <= 1\r\n },\r\n _initSwipeable() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n disabled: this._getSwipeDisabledState(),\r\n elastic: false,\r\n itemSizeFunc: this._itemWidth.bind(this),\r\n onStart: args => this._swipeStartHandler(args.event),\r\n onUpdated: args => this._swipeUpdateHandler(args.event),\r\n onEnd: args => this._swipeEndHandler(args.event)\r\n })\r\n },\r\n _findBoundaryIndices() {\r\n var items = this.option(\"items\");\r\n var firstIndex;\r\n var lastIndex;\r\n items.forEach((item, index) => {\r\n var isDisabled = Boolean(null === item || void 0 === item ? void 0 : item.disabled);\r\n if (!isDisabled) {\r\n null !== firstIndex && void 0 !== firstIndex ? firstIndex : firstIndex = index;\r\n lastIndex = index\r\n }\r\n });\r\n this._boundaryIndices = {\r\n firstAvailableIndex: null !== firstIndex && void 0 !== firstIndex ? firstIndex : 0,\r\n lastAvailableIndex: null !== lastIndex && void 0 !== lastIndex ? lastIndex : items.length - 1,\r\n firstTrueIndex: 0,\r\n lastTrueIndex: items.length - 1\r\n }\r\n },\r\n _swipeStartHandler(e) {\r\n animation.complete(this._$itemContainer);\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var {\r\n firstAvailableIndex: firstAvailableIndex,\r\n lastAvailableIndex: lastAvailableIndex\r\n } = this._boundaryIndices;\r\n var rtl = this.option(\"rtlEnabled\");\r\n e.maxLeftOffset = toNumber(loop || (rtl ? selectedIndex > firstAvailableIndex : selectedIndex < lastAvailableIndex));\r\n e.maxRightOffset = toNumber(loop || (rtl ? selectedIndex < lastAvailableIndex : selectedIndex > firstAvailableIndex));\r\n this._swipeDirection = null\r\n },\r\n _swipeUpdateHandler(e) {\r\n var {\r\n offset: offset\r\n } = e;\r\n var swipeDirection = sign(offset) * this._getRTLSignCorrection();\r\n _translator.move(this._$itemContainer, offset * this._itemWidth());\r\n if (swipeDirection !== this._swipeDirection) {\r\n this._swipeDirection = swipeDirection;\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._normalizeIndex(selectedIndex - swipeDirection);\r\n this._updateItems(selectedIndex, newIndex)\r\n }\r\n },\r\n _findNextAvailableIndex(index, offset) {\r\n var {\r\n items: items,\r\n loop: loop\r\n } = this.option();\r\n var {\r\n firstAvailableIndex: firstAvailableIndex,\r\n lastAvailableIndex: lastAvailableIndex,\r\n firstTrueIndex: firstTrueIndex,\r\n lastTrueIndex: lastTrueIndex\r\n } = this._boundaryIndices;\r\n var isFirstActive = [firstTrueIndex, firstAvailableIndex].includes(index);\r\n var isLastActive = [lastTrueIndex, lastAvailableIndex].includes(index);\r\n if (loop) {\r\n if (isFirstActive && offset < 0) {\r\n return lastAvailableIndex\r\n }\r\n if (isLastActive && offset > 0) {\r\n return firstAvailableIndex\r\n }\r\n }\r\n for (var i = index + offset; i >= firstAvailableIndex && i <= lastAvailableIndex; i += offset) {\r\n var isDisabled = Boolean(items[i].disabled);\r\n if (!isDisabled) {\r\n return i\r\n }\r\n }\r\n return index\r\n },\r\n _swipeEndHandler(e) {\r\n var targetOffset = e.targetOffset * this._getRTLSignCorrection();\r\n if (targetOffset) {\r\n var newSelectedIndex = this._findNextAvailableIndex(this.option(\"selectedIndex\"), -targetOffset);\r\n this.option(\"selectedIndex\", newSelectedIndex);\r\n var $selectedElement = this.itemElements().filter(\".dx-item-selected\");\r\n this.option(\"focusStateEnabled\") && this.option(\"focusedElement\", getPublicElement($selectedElement))\r\n } else {\r\n this._animateItemContainer(0, noop)\r\n }\r\n },\r\n _getItemFocusLoopSignCorrection() {\r\n return this._itemFocusLooped ? -1 : 1\r\n },\r\n _moveFocus() {\r\n this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = false\r\n },\r\n _prevItem($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.last());\r\n return $result\r\n },\r\n _nextItem($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.first());\r\n return $result\r\n },\r\n _dimensionChanged() {\r\n this._clearItemWidthCache()\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _updateSwipeDisabledState() {\r\n var disabled = this._getSwipeDisabledState();\r\n Swipeable.getInstance(this.$element()).option(\"disabled\", disabled)\r\n },\r\n _dispose() {\r\n delete this._boundaryIndices;\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n var {\r\n value: value\r\n } = args;\r\n switch (args.name) {\r\n case \"loop\":\r\n this.option(\"loopItemFocus\", value);\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"swipeEnabled\":\r\n this._updateSwipeDisabledState();\r\n break;\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"items\":\r\n this._updateSwipeDisabledState();\r\n this._findBoundaryIndices();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxMultiView\", MultiView);\r\nexport default MultiView;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollLeftMax(element) {\r\n return element.scrollWidth - element.clientWidth\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_top_max.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollTopMax(element) {\r\n return element.scrollHeight - element.clientHeight\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_boundary_props.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getScrollLeftMax\r\n} from \"./get_scroll_left_max\";\r\nimport {\r\n getScrollTopMax\r\n} from \"./get_scroll_top_max\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function isReachedLeft(scrollOffsetLeft, epsilon) {\r\n return Math.round(scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedRight(element, scrollOffsetLeft, epsilon) {\r\n return Math.round(getScrollLeftMax(element) - scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedTop(scrollOffsetTop, epsilon) {\r\n return Math.round(scrollOffsetTop) <= epsilon\r\n}\r\nexport function isReachedBottom(element, scrollOffsetTop, pocketHeight, epsilon) {\r\n return Math.round(getScrollTopMax(element) - scrollOffsetTop - pocketHeight) <= epsilon\r\n}\r\nexport function getBoundaryProps(direction, scrollOffset, element) {\r\n var pocketHeight = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;\r\n var {\r\n left: left,\r\n top: top\r\n } = scrollOffset;\r\n var boundaryProps = {};\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n if (isHorizontal) {\r\n boundaryProps.reachedLeft = isReachedLeft(left, 0);\r\n boundaryProps.reachedRight = isReachedRight(element, left, 0)\r\n }\r\n if (isVertical) {\r\n boundaryProps.reachedTop = isReachedTop(top, 0);\r\n boundaryProps.reachedBottom = isReachedBottom(element, top, pocketHeight, 0)\r\n }\r\n return boundaryProps\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tabs/constants.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TABS_EXPANDED_CLASS = \"dx-tabs-expanded\";\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tabs/m_item.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport CollectionWidgetItem from \"../../ui/collection/m_item\";\r\nvar TABS_ITEM_BADGE_CLASS = \"dx-tabs-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar TabsItem = CollectionWidgetItem.inherit({\r\n _renderWatchers() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this))\r\n },\r\n _renderBadge(badge) {\r\n this._$element.children(\".\".concat(BADGE_CLASS)).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"<div>\").addClass(TABS_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge);\r\n this._$element.append($badge)\r\n }\r\n});\r\nexport default TabsItem;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tabs/m_tabs.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../events/hold\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n isReachedBottom,\r\n isReachedLeft,\r\n isReachedRight,\r\n isReachedTop\r\n} from \"../../../renovation/ui/scroll_view/utils/get_boundary_props\";\r\nimport {\r\n getScrollLeftMax\r\n} from \"../../../renovation/ui/scroll_view/utils/get_scroll_left_max\";\r\nimport Button from \"../../../ui/button\";\r\nimport {\r\n default as CollectionWidget\r\n} from \"../../../ui/collection/ui.collection_widget.live_update\";\r\nimport Scrollable from \"../../../ui/scroll_view/ui.scrollable\";\r\nimport {\r\n current as currentTheme,\r\n isFluent,\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport {\r\n render\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nimport {\r\n TABS_EXPANDED_CLASS\r\n} from \"./constants\";\r\nimport TabsItem from \"./m_item\";\r\nvar TABS_CLASS = \"dx-tabs\";\r\nvar TABS_WRAPPER_CLASS = \"dx-tabs-wrapper\";\r\nvar TABS_STRETCHED_CLASS = \"dx-tabs-stretched\";\r\nvar TABS_SCROLLABLE_CLASS = \"dx-tabs-scrollable\";\r\nvar TABS_NAV_BUTTONS_CLASS = \"dx-tabs-nav-buttons\";\r\nvar OVERFLOW_HIDDEN_CLASS = \"dx-overflow-hidden\";\r\nvar TABS_ITEM_CLASS = \"dx-tab\";\r\nvar TABS_ITEM_SELECTED_CLASS = \"dx-tab-selected\";\r\nvar TABS_SCROLLING_ENABLED_CLASS = \"dx-tabs-scrolling-enabled\";\r\nvar TABS_NAV_BUTTON_CLASS = \"dx-tabs-nav-button\";\r\nvar TABS_LEFT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-left\";\r\nvar TABS_RIGHT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-right\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TABS_ITEM_TEXT_SPAN_CLASS = \"dx-tab-text-span\";\r\nvar TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS = \"dx-tab-text-span-pseudo\";\r\nvar STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar FOCUSED_DISABLED_NEXT_TAB_CLASS = \"dx-focused-disabled-next-tab\";\r\nvar FOCUSED_DISABLED_PREV_TAB_CLASS = \"dx-focused-disabled-prev-tab\";\r\nvar TABS_ORIENTATION_CLASS = {\r\n vertical: \"dx-tabs-vertical\",\r\n horizontal: \"dx-tabs-horizontal\"\r\n};\r\nvar INDICATOR_POSITION_CLASS = {\r\n top: \"dx-tab-indicator-position-top\",\r\n right: \"dx-tab-indicator-position-right\",\r\n bottom: \"dx-tab-indicator-position-bottom\",\r\n left: \"dx-tab-indicator-position-left\"\r\n};\r\nvar TABS_ICON_POSITION_CLASS = {\r\n top: \"dx-tabs-icon-position-top\",\r\n end: \"dx-tabs-icon-position-end\",\r\n bottom: \"dx-tabs-icon-position-bottom\",\r\n start: \"dx-tabs-icon-position-start\"\r\n};\r\nvar TABS_STYLING_MODE_CLASS = {\r\n primary: \"dx-tabs-styling-mode-primary\",\r\n secondary: \"dx-tabs-styling-mode-secondary\"\r\n};\r\nvar TABS_ITEM_DATA_KEY = \"dxTabData\";\r\nvar BUTTON_NEXT_ICON = \"chevronnext\";\r\nvar BUTTON_PREV_ICON = \"chevronprev\";\r\nvar FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar FEEDBACK_DURATION_INTERVAL = 5;\r\nvar FEEDBACK_SCROLL_TIMEOUT = 300;\r\nvar TAB_OFFSET = 30;\r\nvar ORIENTATION = {\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\"\r\n};\r\nvar INDICATOR_POSITION = {\r\n top: \"top\",\r\n right: \"right\",\r\n bottom: \"bottom\",\r\n left: \"left\"\r\n};\r\nvar SCROLLABLE_DIRECTION = {\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\"\r\n};\r\nvar ICON_POSITION = {\r\n top: \"top\",\r\n end: \"end\",\r\n bottom: \"bottom\",\r\n start: \"start\"\r\n};\r\nvar STYLING_MODE = {\r\n primary: \"primary\",\r\n secondary: \"secondary\"\r\n};\r\nvar Tabs = CollectionWidget.inherit({\r\n _activeStateUnit: \".\".concat(TABS_ITEM_CLASS),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n showNavButtons: true,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n selectionMode: \"single\",\r\n orientation: ORIENTATION.horizontal,\r\n iconPosition: ICON_POSITION.start,\r\n stylingMode: STYLING_MODE.primary,\r\n activeStateEnabled: true,\r\n selectionRequired: false,\r\n selectOnFocus: true,\r\n loopItemFocus: false,\r\n useInkRipple: false,\r\n badgeExpr: data => data ? data.badge : void 0,\r\n _itemAttributes: {\r\n role: \"tab\"\r\n },\r\n _indicatorPosition: null\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" !== devices.real().deviceType,\r\n options: {\r\n showNavButtons: false\r\n }\r\n }, {\r\n device: {\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n scrollByContent: false\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isFluent(themeName),\r\n options: {\r\n iconPosition: ICON_POSITION.top,\r\n stylingMode: STYLING_MODE.secondary\r\n }\r\n }, {\r\n device: () => isMaterial(themeName),\r\n options: {\r\n useInkRipple: true,\r\n selectOnFocus: false,\r\n iconPosition: ICON_POSITION.top\r\n }\r\n }])\r\n },\r\n _init() {\r\n var {\r\n orientation: orientation,\r\n stylingMode: stylingMode,\r\n scrollingEnabled: scrollingEnabled\r\n } = this.option();\r\n var indicatorPosition = this._getIndicatorPosition();\r\n this.callBase();\r\n this.$element().addClass(TABS_CLASS);\r\n this._toggleScrollingEnabledClass(scrollingEnabled);\r\n this._toggleOrientationClass(orientation);\r\n this._toggleIndicatorPositionClass(indicatorPosition);\r\n this._toggleIconPositionClass();\r\n this._toggleStylingModeClass(stylingMode);\r\n this._renderWrapper();\r\n this._renderMultiple();\r\n this._feedbackHideTimeout = FEEDBACK_HIDE_TIMEOUT\r\n },\r\n _prepareDefaultItemTemplate(data, $container) {\r\n var text = isPlainObject(data) ? null === data || void 0 === data ? void 0 : data.text : data;\r\n if (isDefined(text)) {\r\n var $tabTextSpan = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_CLASS);\r\n $tabTextSpan.text(text);\r\n var $tabTextSpanPseudo = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS);\r\n $tabTextSpanPseudo.text(text);\r\n $tabTextSpanPseudo.appendTo($tabTextSpan);\r\n $tabTextSpan.appendTo($container)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data) => {\r\n this._prepareDefaultItemTemplate(data, $container);\r\n var $iconElement = getImageContainer(data.icon);\r\n $iconElement && $iconElement.prependTo($container);\r\n var $tabItem = $(\"<div>\").addClass(TABS_ITEM_TEXT_CLASS);\r\n $container.wrapInner($tabItem)\r\n }, [\"text\", \"html\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var {\r\n itemData: itemData,\r\n container: container,\r\n index: index\r\n } = renderArgs;\r\n this._deferredTemplates[index] = Deferred();\r\n return itemTemplate.render({\r\n model: itemData,\r\n container: container,\r\n index: index,\r\n onRendered: () => this._deferredTemplates[index].resolve()\r\n })\r\n },\r\n _itemClass: () => TABS_ITEM_CLASS,\r\n _selectedItemClass: () => TABS_ITEM_SELECTED_CLASS,\r\n _itemDataKey: () => TABS_ITEM_DATA_KEY,\r\n _initMarkup() {\r\n this._deferredTemplates = [];\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().addClass(OVERFLOW_HIDDEN_CLASS)\r\n },\r\n _render() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _deferRenderScrolling() {\r\n when.apply(this, this._deferredTemplates).done(() => this._renderScrolling())\r\n },\r\n _renderScrolling() {\r\n var removeClasses = [TABS_STRETCHED_CLASS, TABS_EXPANDED_CLASS, OVERFLOW_HIDDEN_CLASS];\r\n this.$element().removeClass(removeClasses.join(\" \"));\r\n if (this.option(\"scrollingEnabled\") && this._isItemsSizeExceeded()) {\r\n if (!this._scrollable) {\r\n this._renderScrollable();\r\n this._renderNavButtons()\r\n }\r\n var scrollable = this.getScrollable();\r\n scrollable.update();\r\n if (this.option(\"rtlEnabled\")) {\r\n var maxLeftOffset = getScrollLeftMax($(this.getScrollable().container()).get(0));\r\n scrollable.scrollTo({\r\n left: maxLeftOffset\r\n })\r\n }\r\n this._updateNavButtonsState();\r\n this._scrollToItem(this.option(\"selectedItem\"))\r\n }\r\n if (!(this.option(\"scrollingEnabled\") && this._isItemsSizeExceeded())) {\r\n this._cleanScrolling();\r\n if (this._needStretchItems()) {\r\n this.$element().addClass(TABS_STRETCHED_CLASS)\r\n }\r\n this.$element().removeClass(TABS_NAV_BUTTONS_CLASS).addClass(TABS_EXPANDED_CLASS)\r\n }\r\n },\r\n _isVertical() {\r\n return this.option(\"orientation\") === ORIENTATION.vertical\r\n },\r\n _isItemsSizeExceeded() {\r\n var isVertical = this._isVertical();\r\n var isItemsSizeExceeded = isVertical ? this._isItemsHeightExceeded() : this._isItemsWidthExceeded();\r\n return isItemsSizeExceeded\r\n },\r\n _isItemsWidthExceeded() {\r\n var $visibleItems = this._getVisibleItems();\r\n var tabItemTotalWidth = this._getSummaryItemsSize(\"width\", $visibleItems, true);\r\n var elementWidth = getWidth(this.$element());\r\n if ([tabItemTotalWidth, elementWidth].includes(0)) {\r\n return false\r\n }\r\n var isItemsWidthExceeded = tabItemTotalWidth > elementWidth - 1;\r\n return isItemsWidthExceeded\r\n },\r\n _isItemsHeightExceeded() {\r\n var $visibleItems = this._getVisibleItems();\r\n var itemsHeight = this._getSummaryItemsSize(\"height\", $visibleItems, true);\r\n var elementHeight = getHeight(this.$element());\r\n var isItemsHeightExceeded = itemsHeight - 1 > elementHeight;\r\n return isItemsHeightExceeded\r\n },\r\n _needStretchItems() {\r\n var $visibleItems = this._getVisibleItems();\r\n var elementWidth = getWidth(this.$element());\r\n var itemsWidth = [];\r\n each($visibleItems, (_, item) => {\r\n itemsWidth.push(getOuterWidth(item, true))\r\n });\r\n var maxTabItemWidth = Math.max.apply(null, itemsWidth);\r\n var requireWidth = elementWidth / $visibleItems.length;\r\n var needStretchItems = maxTabItemWidth > requireWidth + 1;\r\n return needStretchItems\r\n },\r\n _cleanNavButtons() {\r\n if (!this._leftButton || !this._rightButton) {\r\n return\r\n }\r\n this._leftButton.$element().remove();\r\n this._rightButton.$element().remove();\r\n this._leftButton = null;\r\n this._rightButton = null\r\n },\r\n _cleanScrolling() {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n this._$wrapper.appendTo(this.$element());\r\n this._scrollable.$element().remove();\r\n this._scrollable = null;\r\n this._cleanNavButtons()\r\n },\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n },\r\n _getPointerEvent: () => pointerEvents.up,\r\n _toggleActiveState($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _renderMultiple() {\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n this.option(\"selectOnFocus\", false)\r\n }\r\n },\r\n _renderWrapper() {\r\n this._$wrapper = $(\"<div>\").addClass(TABS_WRAPPER_CLASS);\r\n this.setAria(\"role\", \"tablist\", this._$wrapper);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _itemContainer() {\r\n return this._$wrapper\r\n },\r\n _getScrollableDirection() {\r\n var isVertical = this._isVertical();\r\n var scrollableDirection = isVertical ? SCROLLABLE_DIRECTION.vertical : SCROLLABLE_DIRECTION.horizontal;\r\n return scrollableDirection\r\n },\r\n _updateScrollable() {\r\n if (this.getScrollable()) {\r\n this._cleanScrolling()\r\n }\r\n this._renderScrolling()\r\n },\r\n _renderScrollable() {\r\n var $itemContainer = this.$element().wrapInner($(\"<div>\").addClass(TABS_SCROLLABLE_CLASS)).children();\r\n this._scrollable = this._createComponent($itemContainer, Scrollable, {\r\n direction: this._getScrollableDirection(),\r\n showScrollbar: \"never\",\r\n useKeyboard: false,\r\n useNative: false,\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n onScroll: () => {\r\n this._updateNavButtonsState()\r\n }\r\n });\r\n this.$element().append(this._scrollable.$element())\r\n },\r\n _scrollToItem(itemData) {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n var $item = this._editStrategy.getItemElement(itemData);\r\n this._scrollable.scrollToElement($item)\r\n },\r\n _renderNavButtons() {\r\n this.$element().toggleClass(TABS_NAV_BUTTONS_CLASS, this.option(\"showNavButtons\"));\r\n if (!this.option(\"showNavButtons\")) {\r\n return\r\n }\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this._leftButton = this._createNavButton(-TAB_OFFSET, rtlEnabled ? BUTTON_NEXT_ICON : BUTTON_PREV_ICON);\r\n var $leftButton = this._leftButton.$element();\r\n $leftButton.addClass(TABS_LEFT_NAV_BUTTON_CLASS);\r\n this.$element().prepend($leftButton);\r\n this._rightButton = this._createNavButton(TAB_OFFSET, rtlEnabled ? BUTTON_PREV_ICON : BUTTON_NEXT_ICON);\r\n var $rightButton = this._rightButton.$element();\r\n $rightButton.addClass(TABS_RIGHT_NAV_BUTTON_CLASS);\r\n this.$element().append($rightButton)\r\n },\r\n _updateNavButtonsState() {\r\n var _a, _b, _c, _d;\r\n var isVertical = this._isVertical();\r\n var scrollable = this.getScrollable();\r\n if (isVertical) {\r\n null === (_a = this._leftButton) || void 0 === _a ? void 0 : _a.option(\"disabled\", isReachedTop(scrollable.scrollTop(), 1));\r\n null === (_b = this._rightButton) || void 0 === _b ? void 0 : _b.option(\"disabled\", isReachedBottom($(scrollable.container()).get(0), scrollable.scrollTop(), 0, 1))\r\n } else {\r\n null === (_c = this._leftButton) || void 0 === _c ? void 0 : _c.option(\"disabled\", isReachedLeft(scrollable.scrollLeft(), 1));\r\n null === (_d = this._rightButton) || void 0 === _d ? void 0 : _d.option(\"disabled\", isReachedRight($(scrollable.container()).get(0), scrollable.scrollLeft(), 1))\r\n }\r\n },\r\n _updateScrollPosition(offset, duration) {\r\n this._scrollable.update();\r\n this._scrollable.scrollBy(offset / duration)\r\n },\r\n _createNavButton(offset, icon) {\r\n var holdAction = this._createAction(() => {\r\n this._holdInterval = setInterval(() => {\r\n this._updateScrollPosition(offset, FEEDBACK_DURATION_INTERVAL)\r\n }, FEEDBACK_DURATION_INTERVAL)\r\n });\r\n var holdEventName = addNamespace(holdEvent.name, \"dxNavButton\");\r\n var pointerUpEventName = addNamespace(pointerEvents.up, \"dxNavButton\");\r\n var pointerOutEventName = addNamespace(pointerEvents.out, \"dxNavButton\");\r\n var navButton = this._createComponent($(\"<div>\").addClass(TABS_NAV_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n icon: icon,\r\n integrationOptions: {},\r\n onClick: () => {\r\n this._updateScrollPosition(offset, 1)\r\n }\r\n });\r\n var $navButton = navButton.$element();\r\n eventsEngine.on($navButton, holdEventName, {\r\n timeout: FEEDBACK_SCROLL_TIMEOUT\r\n }, e => {\r\n holdAction({\r\n event: e\r\n })\r\n });\r\n eventsEngine.on($navButton, pointerUpEventName, () => {\r\n this._clearInterval()\r\n });\r\n eventsEngine.on($navButton, pointerOutEventName, () => {\r\n this._clearInterval()\r\n });\r\n return navButton\r\n },\r\n _clearInterval() {\r\n if (this._holdInterval) {\r\n clearInterval(this._holdInterval)\r\n }\r\n },\r\n _updateSelection(addedSelection) {\r\n this._scrollable && this._scrollable.scrollToElement(this.itemElements().eq(addedSelection[0]))\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged() {\r\n this._renderScrolling()\r\n },\r\n _itemSelectHandler(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _refreshActiveDescendant() {\r\n this.callBase(this._$wrapper)\r\n },\r\n _clean() {\r\n this._deferredTemplates = [];\r\n this._cleanScrolling();\r\n this.callBase()\r\n },\r\n _toggleTabsVerticalClass(value) {\r\n this.$element().toggleClass(TABS_ORIENTATION_CLASS.vertical, value)\r\n },\r\n _toggleTabsHorizontalClass(value) {\r\n this.$element().toggleClass(TABS_ORIENTATION_CLASS.horizontal, value)\r\n },\r\n _getIndicatorPositionClass: indicatorPosition => INDICATOR_POSITION_CLASS[indicatorPosition],\r\n _getIndicatorPosition() {\r\n var {\r\n _indicatorPosition: _indicatorPosition,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n if (_indicatorPosition) {\r\n return _indicatorPosition\r\n }\r\n var isVertical = this._isVertical();\r\n if (rtlEnabled) {\r\n return isVertical ? INDICATOR_POSITION.left : INDICATOR_POSITION.bottom\r\n }\r\n return isVertical ? INDICATOR_POSITION.right : INDICATOR_POSITION.bottom\r\n },\r\n _toggleIndicatorPositionClass(indicatorPosition) {\r\n var newClass = this._getIndicatorPositionClass(indicatorPosition);\r\n this._toggleElementClasses(INDICATOR_POSITION_CLASS, newClass)\r\n },\r\n _toggleScrollingEnabledClass(scrollingEnabled) {\r\n this.$element().toggleClass(TABS_SCROLLING_ENABLED_CLASS, Boolean(scrollingEnabled))\r\n },\r\n _toggleOrientationClass(orientation) {\r\n var isVertical = orientation === ORIENTATION.vertical;\r\n this._toggleTabsVerticalClass(isVertical);\r\n this._toggleTabsHorizontalClass(!isVertical)\r\n },\r\n _getTabsIconPositionClass() {\r\n var position = this.option(\"iconPosition\");\r\n switch (position) {\r\n case ICON_POSITION.top:\r\n return TABS_ICON_POSITION_CLASS.top;\r\n case ICON_POSITION.end:\r\n return TABS_ICON_POSITION_CLASS.end;\r\n case ICON_POSITION.bottom:\r\n return TABS_ICON_POSITION_CLASS.bottom;\r\n case ICON_POSITION.start:\r\n default:\r\n return TABS_ICON_POSITION_CLASS.start\r\n }\r\n },\r\n _toggleIconPositionClass() {\r\n var newClass = this._getTabsIconPositionClass();\r\n this._toggleElementClasses(TABS_ICON_POSITION_CLASS, newClass)\r\n },\r\n _toggleStylingModeClass(value) {\r\n var _a;\r\n var newClass = null !== (_a = TABS_STYLING_MODE_CLASS[value]) && void 0 !== _a ? _a : TABS_STYLING_MODE_CLASS.primary;\r\n this._toggleElementClasses(TABS_STYLING_MODE_CLASS, newClass)\r\n },\r\n _toggleElementClasses(classMap, newClass) {\r\n for (var key in classMap) {\r\n this.$element().removeClass(classMap[key])\r\n }\r\n this.$element().addClass(newClass)\r\n },\r\n _toggleFocusedDisabledNextClass(currentIndex, isNextDisabled) {\r\n this._itemElements().eq(currentIndex).toggleClass(FOCUSED_DISABLED_NEXT_TAB_CLASS, isNextDisabled)\r\n },\r\n _toggleFocusedDisabledPrevClass(currentIndex, isPrevDisabled) {\r\n this._itemElements().eq(currentIndex).toggleClass(FOCUSED_DISABLED_PREV_TAB_CLASS, isPrevDisabled)\r\n },\r\n _toggleFocusedDisabledClasses(value) {\r\n var {\r\n selectedIndex: currentIndex\r\n } = this.option();\r\n this._itemElements().removeClass(FOCUSED_DISABLED_NEXT_TAB_CLASS).removeClass(FOCUSED_DISABLED_PREV_TAB_CLASS);\r\n var prevItemIndex = currentIndex - 1;\r\n var nextItemIndex = currentIndex + 1;\r\n var nextFocusedIndex = $(value).index();\r\n var isNextDisabled = this._itemElements().eq(nextItemIndex).hasClass(STATE_DISABLED_CLASS);\r\n var isPrevDisabled = this._itemElements().eq(prevItemIndex).hasClass(STATE_DISABLED_CLASS);\r\n var shouldNextClassBeSetted = isNextDisabled && nextFocusedIndex === nextItemIndex;\r\n var shouldPrevClassBeSetted = isPrevDisabled && nextFocusedIndex === prevItemIndex;\r\n this._toggleFocusedDisabledNextClass(currentIndex, shouldNextClassBeSetted);\r\n this._toggleFocusedDisabledPrevClass(currentIndex, shouldPrevClassBeSetted)\r\n },\r\n _updateFocusedElement() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n selectedIndex: selectedIndex\r\n } = this.option();\r\n var itemElements = this._itemElements();\r\n if (focusStateEnabled && itemElements.length) {\r\n var selectedItem = itemElements.get(selectedIndex);\r\n this.option({\r\n focusedElement: selectedItem\r\n })\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n case \"scrollingEnabled\":\r\n this._toggleScrollingEnabledClass(args.value);\r\n this._invalidate();\r\n break;\r\n case \"showNavButtons\":\r\n this._invalidate();\r\n break;\r\n case \"scrollByContent\":\r\n this._scrollable && this._scrollable.option(args.name, args.value);\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"selectionMode\":\r\n this._renderMultiple();\r\n this.callBase(args);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"focusedElement\":\r\n this._toggleFocusedDisabledClasses(args.value);\r\n this.callBase(args);\r\n this._scrollToItem(args.value);\r\n break;\r\n case \"rtlEnabled\":\r\n this.callBase(args);\r\n var indicatorPosition = this._getIndicatorPosition();\r\n this._toggleIndicatorPositionClass(indicatorPosition);\r\n break;\r\n case \"orientation\":\r\n this._toggleOrientationClass(args.value);\r\n var _indicatorPosition2 = this._getIndicatorPosition();\r\n this._toggleIndicatorPositionClass(_indicatorPosition2);\r\n if (hasWindow()) {\r\n this._updateScrollable()\r\n }\r\n break;\r\n case \"iconPosition\":\r\n this._toggleIconPositionClass();\r\n if (hasWindow()) {\r\n this._dimensionChanged()\r\n }\r\n break;\r\n case \"stylingMode\":\r\n this._toggleStylingModeClass(args.value);\r\n if (hasWindow()) {\r\n this._dimensionChanged()\r\n }\r\n break;\r\n case \"_indicatorPosition\":\r\n this._toggleIndicatorPositionClass(args.value);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n this.callBase(args);\r\n this._updateFocusedElement();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _afterItemElementInserted() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n this._renderScrolling()\r\n },\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n});\r\nTabs.ItemClass = TabsItem;\r\nregisterComponent(\"dxTabs\", Tabs);\r\nexport default Tabs;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tab_panel/m_item.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport CollectionWidgetItem from \"../../ui/collection/m_item\";\r\nexport default class TabPanelItem extends CollectionWidgetItem {\r\n _renderWatchers() {\r\n this._startWatcher(\"badge\", noop);\r\n return super._renderWatchers()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tab_panel/m_tab_panel.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n touch\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport MultiView from \"../../../ui/multi_view\";\r\nimport Tabs from \"../../../ui/tabs\";\r\nimport {\r\n current as currentTheme,\r\n isFluent,\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport {\r\n default as TabPanelItem\r\n} from \"./m_item\";\r\nvar TABPANEL_CLASS = \"dx-tabpanel\";\r\nvar TABPANEL_TABS_CLASS = \"dx-tabpanel-tabs\";\r\nvar TABPANEL_TABS_ITEM_CLASS = \"dx-tabpanel-tab\";\r\nvar TABPANEL_CONTAINER_CLASS = \"dx-tabpanel-container\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar DISABLED_FOCUSED_TAB_CLASS = \"dx-disabled-focused-tab\";\r\nvar TABS_ITEM_TEXT_SPAN_CLASS = \"dx-tab-text-span\";\r\nvar TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS = \"dx-tab-text-span-pseudo\";\r\nvar TABPANEL_TABS_POSITION_CLASS = {\r\n top: \"dx-tabpanel-tabs-position-top\",\r\n right: \"dx-tabpanel-tabs-position-right\",\r\n bottom: \"dx-tabpanel-tabs-position-bottom\",\r\n left: \"dx-tabpanel-tabs-position-left\"\r\n};\r\nvar TABS_POSITION = {\r\n top: \"top\",\r\n right: \"right\",\r\n bottom: \"bottom\",\r\n left: \"left\"\r\n};\r\nvar TABS_INDICATOR_POSITION_BY_TABS_POSITION = {\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n left: \"right\"\r\n};\r\nvar TABS_ORIENTATION = {\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\"\r\n};\r\nvar ICON_POSITION = {\r\n top: \"top\",\r\n end: \"end\",\r\n bottom: \"bottom\",\r\n start: \"start\"\r\n};\r\nvar STYLING_MODE = {\r\n primary: \"primary\",\r\n secondary: \"secondary\"\r\n};\r\nvar TabPanel = MultiView.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n itemTitleTemplate: \"title\",\r\n hoverStateEnabled: true,\r\n showNavButtons: false,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n tabsPosition: TABS_POSITION.top,\r\n iconPosition: ICON_POSITION.start,\r\n stylingMode: STYLING_MODE.primary,\r\n onTitleClick: null,\r\n onTitleHold: null,\r\n onTitleRendered: null,\r\n badgeExpr: data => data ? data.badge : void 0,\r\n _tabsIndicatorPosition: null\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => !touch,\r\n options: {\r\n swipeEnabled: false\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n animationEnabled: false\r\n }\r\n }, {\r\n device: () => isFluent(themeName),\r\n options: {\r\n stylingMode: STYLING_MODE.secondary\r\n }\r\n }, {\r\n device: () => isMaterialBased(themeName),\r\n options: {\r\n iconPosition: ICON_POSITION.top\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this.$element().addClass(TABPANEL_CLASS);\r\n this._toggleTabPanelTabsPositionClass()\r\n },\r\n _getElementAria: () => ({\r\n role: \"tabpanel\"\r\n }),\r\n _getItemAria: () => ({\r\n role: \"tabpanel\"\r\n }),\r\n _initMarkup() {\r\n this.callBase();\r\n this._createTitleActions();\r\n this._renderLayout()\r\n },\r\n _prepareTabsItemTemplate(data, $container) {\r\n var $iconElement = getImageContainer(null === data || void 0 === data ? void 0 : data.icon);\r\n if ($iconElement) {\r\n $container.append($iconElement)\r\n }\r\n var title = isPlainObject(data) ? null === data || void 0 === data ? void 0 : data.title : data;\r\n if (isDefined(title) && !isPlainObject(title)) {\r\n var $tabTextSpan = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_CLASS);\r\n $tabTextSpan.append(domAdapter.createTextNode(title));\r\n var $tabTextSpanPseudo = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS);\r\n $tabTextSpanPseudo.append(domAdapter.createTextNode(title));\r\n $tabTextSpanPseudo.appendTo($tabTextSpan);\r\n $tabTextSpan.appendTo($container)\r\n }\r\n },\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new BindableTemplate(($container, data) => {\r\n this._prepareTabsItemTemplate(data, $container);\r\n var $tabItem = $(\"<div>\").addClass(TABS_ITEM_TEXT_CLASS);\r\n $container.wrapInner($tabItem)\r\n }, [\"title\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createTitleActions() {\r\n this._createTitleClickAction();\r\n this._createTitleHoldAction();\r\n this._createTitleRenderedAction()\r\n },\r\n _createTitleClickAction() {\r\n this._titleClickAction = this._createActionByOption(\"onTitleClick\")\r\n },\r\n _createTitleHoldAction() {\r\n this._titleHoldAction = this._createActionByOption(\"onTitleHold\")\r\n },\r\n _createTitleRenderedAction() {\r\n this._titleRenderedAction = this._createActionByOption(\"onTitleRendered\")\r\n },\r\n _renderLayout() {\r\n if (this._tabs) {\r\n return\r\n }\r\n var $element = this.$element();\r\n this._$tabContainer = $(\"<div>\").addClass(TABPANEL_TABS_CLASS).appendTo($element);\r\n var $tabs = $(\"<div>\").appendTo(this._$tabContainer);\r\n this._tabs = this._createComponent($tabs, Tabs, this._tabConfig());\r\n this._$container = $(\"<div>\").addClass(TABPANEL_CONTAINER_CLASS).appendTo($element);\r\n this._$container.append(this._$wrapper)\r\n },\r\n _refreshActiveDescendant() {\r\n if (!this._tabs) {\r\n return\r\n }\r\n var tabs = this._tabs;\r\n var tabItems = tabs.itemElements();\r\n var $activeTab = $(tabItems[tabs.option(\"selectedIndex\")]);\r\n var id = this.getFocusedItemId();\r\n this.setAria(\"controls\", void 0, $(tabItems));\r\n this.setAria(\"controls\", id, $activeTab)\r\n },\r\n _getTabsIndicatorPosition() {\r\n var {\r\n _tabsIndicatorPosition: _tabsIndicatorPosition,\r\n tabsPosition: tabsPosition\r\n } = this.option();\r\n return null !== _tabsIndicatorPosition && void 0 !== _tabsIndicatorPosition ? _tabsIndicatorPosition : TABS_INDICATOR_POSITION_BY_TABS_POSITION[tabsPosition]\r\n },\r\n _tabConfig() {\r\n var tabsIndicatorPosition = this._getTabsIndicatorPosition();\r\n return {\r\n selectOnFocus: true,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n selectedIndex: this.option(\"selectedIndex\"),\r\n badgeExpr: this.option(\"badgeExpr\"),\r\n onItemClick: this._titleClickAction.bind(this),\r\n onItemHold: this._titleHoldAction.bind(this),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onSelectionChanged: function(e) {\r\n this.option(\"selectedIndex\", e.component.option(\"selectedIndex\"));\r\n this._refreshActiveDescendant()\r\n }.bind(this),\r\n onItemRendered: this._titleRenderedAction.bind(this),\r\n itemTemplate: this._getTemplateByOption(\"itemTitleTemplate\"),\r\n items: this.option(\"items\"),\r\n noDataText: null,\r\n scrollingEnabled: this.option(\"scrollingEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n showNavButtons: this.option(\"showNavButtons\"),\r\n itemTemplateProperty: \"tabTemplate\",\r\n loopItemFocus: this.option(\"loop\"),\r\n selectionRequired: true,\r\n onOptionChanged: function(args) {\r\n if (\"focusedElement\" === args.name) {\r\n if (args.value) {\r\n var $value = $(args.value);\r\n var $newItem = this._itemElements().eq($value.index());\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n } else {\r\n this.option(\"focusedElement\", args.value)\r\n }\r\n }\r\n }.bind(this),\r\n onFocusIn: function(args) {\r\n this._focusInHandler(args.event)\r\n }.bind(this),\r\n onFocusOut: function(args) {\r\n if (!this._isFocusOutHandlerExecuting) {\r\n this._focusOutHandler(args.event)\r\n }\r\n }.bind(this),\r\n orientation: this._getTabsOrientation(),\r\n iconPosition: this.option(\"iconPosition\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n _itemAttributes: {\r\n class: TABPANEL_TABS_ITEM_CLASS\r\n },\r\n _indicatorPosition: tabsIndicatorPosition\r\n }\r\n },\r\n _renderFocusTarget() {\r\n this._focusTarget().attr(\"tabIndex\", -1)\r\n },\r\n _getTabsOrientation() {\r\n var {\r\n tabsPosition: tabsPosition\r\n } = this.option();\r\n if ([TABS_POSITION.right, TABS_POSITION.left].includes(tabsPosition)) {\r\n return TABS_ORIENTATION.vertical\r\n }\r\n return TABS_ORIENTATION.horizontal\r\n },\r\n _getTabPanelTabsPositionClass() {\r\n var position = this.option(\"tabsPosition\");\r\n switch (position) {\r\n case TABS_POSITION.right:\r\n return TABPANEL_TABS_POSITION_CLASS.right;\r\n case TABS_POSITION.bottom:\r\n return TABPANEL_TABS_POSITION_CLASS.bottom;\r\n case TABS_POSITION.left:\r\n return TABPANEL_TABS_POSITION_CLASS.left;\r\n case TABS_POSITION.top:\r\n default:\r\n return TABPANEL_TABS_POSITION_CLASS.top\r\n }\r\n },\r\n _toggleTabPanelTabsPositionClass() {\r\n for (var key in TABPANEL_TABS_POSITION_CLASS) {\r\n this.$element().removeClass(TABPANEL_TABS_POSITION_CLASS[key])\r\n }\r\n var newClass = this._getTabPanelTabsPositionClass();\r\n this.$element().addClass(newClass)\r\n },\r\n _updateTabsOrientation() {\r\n var orientation = this._getTabsOrientation();\r\n this._setTabsOption(\"orientation\", orientation)\r\n },\r\n _toggleWrapperFocusedClass(isFocused) {\r\n this._toggleFocusClass(isFocused, this._$wrapper)\r\n },\r\n _toggleDisabledFocusedClass(isFocused) {\r\n this._focusTarget().toggleClass(DISABLED_FOCUSED_TAB_CLASS, isFocused)\r\n },\r\n _updateFocusState(e, isFocused) {\r\n this.callBase(e, isFocused);\r\n var isTabsTarget = e.target === this._tabs._focusTarget().get(0);\r\n var isMultiViewTarget = e.target === this._focusTarget().get(0);\r\n if (isTabsTarget) {\r\n this._toggleFocusClass(isFocused, this._focusTarget())\r\n }\r\n if (isTabsTarget || isMultiViewTarget) {\r\n var isDisabled = this._isDisabled(this.option(\"focusedElement\"));\r\n this._toggleWrapperFocusedClass(isFocused && !isDisabled);\r\n this._toggleDisabledFocusedClass(isFocused && isDisabled)\r\n }\r\n if (isMultiViewTarget) {\r\n this._toggleFocusClass(isFocused, this._tabs.option(\"focusedElement\"))\r\n }\r\n },\r\n _focusOutHandler(e) {\r\n this._isFocusOutHandlerExecuting = true;\r\n this.callBase.apply(this, arguments);\r\n this._tabs._focusOutHandler(e);\r\n this._isFocusOutHandlerExecuting = false\r\n },\r\n _setTabsOption(name, value) {\r\n if (this._tabs) {\r\n this._tabs.option(name, value)\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._tabs._dimensionChanged()\r\n }\r\n },\r\n registerKeyHandler(key, handler) {\r\n this.callBase(key, handler);\r\n if (this._tabs) {\r\n this._tabs.registerKeyHandler(key, handler)\r\n }\r\n },\r\n repaint() {\r\n this.callBase();\r\n this._tabs.repaint()\r\n },\r\n _updateTabsIndicatorPosition() {\r\n var value = this._getTabsIndicatorPosition();\r\n this._setTabsOption(\"_indicatorPosition\", value)\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n fullName: fullName\r\n } = args;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._setTabsOption(name, this.option(name));\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n this._tabs.repaint()\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._tabs.repaint();\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n if (true === this.option(\"focusStateEnabled\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var selectedTabContent = this._itemElements().eq(selectedIndex);\r\n this.option(\"focusedElement\", getPublicElement(selectedTabContent))\r\n }\r\n break;\r\n case \"itemHoldTimeout\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n break;\r\n case \"scrollingEnabled\":\r\n case \"scrollByContent\":\r\n case \"showNavButtons\":\r\n this._setTabsOption(fullName, value);\r\n break;\r\n case \"focusedElement\":\r\n var id = value ? $(value).index() : value;\r\n var newItem = value ? this._tabs._itemElements().eq(id) : value;\r\n this._setTabsOption(\"focusedElement\", getPublicElement(newItem));\r\n if (value) {\r\n var isDisabled = this._isDisabled(value);\r\n this._toggleWrapperFocusedClass(!isDisabled);\r\n this._toggleDisabledFocusedClass(isDisabled)\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"itemTitleTemplate\":\r\n this._setTabsOption(\"itemTemplate\", this._getTemplateByOption(\"itemTitleTemplate\"));\r\n break;\r\n case \"onTitleClick\":\r\n this._createTitleClickAction();\r\n this._setTabsOption(\"onItemClick\", this._titleClickAction.bind(this));\r\n break;\r\n case \"onTitleHold\":\r\n this._createTitleHoldAction();\r\n this._setTabsOption(\"onItemHold\", this._titleHoldAction.bind(this));\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderedAction();\r\n this._setTabsOption(\"onItemRendered\", this._titleRenderedAction.bind(this));\r\n break;\r\n case \"loop\":\r\n this._setTabsOption(\"loopItemFocus\", value);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"tabsPosition\":\r\n this._toggleTabPanelTabsPositionClass();\r\n this._updateTabsIndicatorPosition();\r\n this._updateTabsOrientation();\r\n break;\r\n case \"iconPosition\":\r\n this._setTabsOption(\"iconPosition\", value);\r\n break;\r\n case \"stylingMode\":\r\n this._setTabsOption(\"stylingMode\", value);\r\n break;\r\n case \"_tabsIndicatorPosition\":\r\n this._setTabsOption(\"_indicatorPosition\", value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nTabPanel.ItemClass = TabPanelItem;\r\nregisterComponent(\"dxTabPanel\", TabPanel);\r\nexport default TabPanel;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.item_option_action.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nexport default class ItemOptionAction {\r\n constructor(options) {\r\n this._options = options;\r\n this._itemsRunTimeInfo = this._options.itemsRunTimeInfo\r\n }\r\n findInstance() {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByItem(this._options.item)\r\n }\r\n findItemContainer() {\r\n return this._itemsRunTimeInfo.findItemContainerByItem(this._options.item)\r\n }\r\n findPreparedItem() {\r\n return this._itemsRunTimeInfo.findPreparedItemByItem(this._options.item)\r\n }\r\n tryExecute() {\r\n Class.abstract()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport var createItemPathByIndex = (index, isTabs) => \"\".concat(isTabs ? \"tabs\" : \"items\", \"[\").concat(index, \"]\");\r\nexport var concatPaths = (path1, path2) => {\r\n if (isDefined(path1) && isDefined(path2)) {\r\n return \"\".concat(path1, \".\").concat(path2)\r\n }\r\n return path1 || path2\r\n};\r\nexport var getTextWithoutSpaces = text => text ? text.replace(/\\s/g, \"\") : void 0;\r\nexport var isEqualToDataFieldOrNameOrTitleOrCaption = (item, fieldName) => {\r\n if (item) {\r\n return item.dataField === fieldName || item.name === fieldName || getTextWithoutSpaces(item.title) === fieldName || \"group\" === item.itemType && getTextWithoutSpaces(item.caption) === fieldName\r\n }\r\n return false\r\n};\r\nexport var getFullOptionName = (path, optionName) => \"\".concat(path, \".\").concat(optionName);\r\nexport var getOptionNameFromFullName = fullName => {\r\n var parts = fullName.split(\".\");\r\n return parts[parts.length - 1].replace(/\\[\\d+]/, \"\")\r\n};\r\nexport var tryGetTabPath = fullPath => {\r\n var pathParts = fullPath.split(\".\");\r\n var resultPathParts = [...pathParts];\r\n for (var i = pathParts.length - 1; i >= 0; i--) {\r\n if (isFullPathContainsTabs(pathParts[i])) {\r\n return resultPathParts.join(\".\")\r\n }\r\n resultPathParts.splice(i, 1)\r\n }\r\n return \"\"\r\n};\r\nexport var isFullPathContainsTabs = fullPath => fullPath.indexOf(\"tabs\") > -1;\r\nexport var getItemPath = (items, item, isTabs) => {\r\n var index = items.indexOf(item);\r\n if (index > -1) {\r\n return createItemPathByIndex(index, isTabs)\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var targetItem = items[i];\r\n var tabOrGroupItems = targetItem.tabs || targetItem.items;\r\n if (tabOrGroupItems) {\r\n var itemPath = getItemPath(tabOrGroupItems, item, targetItem.tabs);\r\n if (itemPath) {\r\n return concatPaths(createItemPathByIndex(i, isTabs), itemPath)\r\n }\r\n }\r\n }\r\n};\r\nexport function convertToLayoutManagerOptions(_ref) {\r\n var {\r\n form: form,\r\n $formElement: $formElement,\r\n formOptions: formOptions,\r\n items: items,\r\n validationGroup: validationGroup,\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered\r\n } = _ref;\r\n var baseOptions = {\r\n form: form,\r\n items: items,\r\n $formElement: $formElement,\r\n validationGroup: validationGroup,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered,\r\n validationBoundary: formOptions.scrollingEnabled ? $formElement : void 0,\r\n scrollingEnabled: formOptions.scrollingEnabled,\r\n showRequiredMark: formOptions.showRequiredMark,\r\n showOptionalMark: formOptions.showOptionalMark,\r\n requiredMark: formOptions.requiredMark,\r\n optionalMark: formOptions.optionalMark,\r\n requiredMessage: formOptions.requiredMessage,\r\n screenByWidth: formOptions.screenByWidth,\r\n layoutData: formOptions.formData,\r\n labelLocation: formOptions.labelLocation,\r\n customizeItem: formOptions.customizeItem,\r\n minColWidth: formOptions.minColWidth,\r\n showColonAfterLabel: formOptions.showColonAfterLabel,\r\n onEditorEnterKey: formOptions.onEditorEnterKey,\r\n labelMode: formOptions.labelMode\r\n };\r\n var result = extend(baseOptions, {\r\n isRoot: extendedLayoutManagerOptions.isRoot,\r\n colCount: extendedLayoutManagerOptions.colCount,\r\n alignItemLabels: extendedLayoutManagerOptions.alignItemLabels,\r\n cssItemClass: extendedLayoutManagerOptions.cssItemClass,\r\n colCountByScreen: extendedLayoutManagerOptions.colCountByScreen,\r\n onLayoutChanged: extendedLayoutManagerOptions.onLayoutChanged,\r\n width: extendedLayoutManagerOptions.width\r\n });\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.item_options_actions.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data\r\n} from \"../../../core/element_data\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport ItemOptionAction from \"./m_form.item_option_action\";\r\nimport {\r\n getFullOptionName\r\n} from \"./m_form.utils\";\r\nclass WidgetOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n value: value\r\n } = this._options;\r\n var instance = this.findInstance();\r\n if (instance) {\r\n instance.option(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n optionName: optionName,\r\n item: item,\r\n value: value\r\n } = this._options;\r\n var itemIndex = this._itemsRunTimeInfo.findItemIndexByItem(item);\r\n if (itemIndex >= 0) {\r\n tabPanel.option(getFullOptionName(\"items[\".concat(itemIndex, \"]\"), optionName), value);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass SimpleItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n return false\r\n }\r\n}\r\nclass GroupItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n var preparedItem = this.findPreparedItem();\r\n if (null != preparedItem && preparedItem._prepareGroupItemTemplate && preparedItem._renderGroupContentTemplate) {\r\n preparedItem._prepareGroupItemTemplate(this._options.item.template);\r\n preparedItem._renderGroupContentTemplate();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabsOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n value: value\r\n } = this._options;\r\n tabPanel.option(\"dataSource\", value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass ValidationRulesItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n item: item\r\n } = this._options;\r\n var instance = this.findInstance();\r\n var validator = instance && data(instance.$element()[0], \"dxValidator\");\r\n if (validator && item) {\r\n var filterRequired = item => \"required\" === item.type;\r\n var oldContainsRequired = (validator.option(\"validationRules\") || []).some(filterRequired);\r\n var newContainsRequired = (item.validationRules || []).some(filterRequired);\r\n if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) {\r\n validator.option(\"validationRules\", item.validationRules);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass CssClassItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var $itemContainer = this.findItemContainer();\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = this._options;\r\n if ($itemContainer) {\r\n $itemContainer.removeClass(previousValue).addClass(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nvar tryCreateItemOptionAction = (optionName, itemActionOptions) => {\r\n var _a, _b, _c;\r\n switch (optionName) {\r\n case \"editorOptions\":\r\n case \"buttonOptions\":\r\n return new WidgetOptionItemOptionAction(itemActionOptions);\r\n case \"validationRules\":\r\n return new ValidationRulesItemOptionAction(itemActionOptions);\r\n case \"cssClass\":\r\n return new CssClassItemOptionAction(itemActionOptions);\r\n case \"badge\":\r\n case \"disabled\":\r\n case \"icon\":\r\n case \"tabTemplate\":\r\n case \"title\":\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n case \"tabs\":\r\n return new TabsOptionItemOptionAction(itemActionOptions);\r\n case \"template\":\r\n var itemType = null !== (_b = null === (_a = null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item) || void 0 === _a ? void 0 : _a.itemType) && void 0 !== _b ? _b : null === (_c = itemActionOptions.itemsRunTimeInfo.findPreparedItemByItem(null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item)) || void 0 === _c ? void 0 : _c.itemType;\r\n if (\"simple\" === itemType) {\r\n return new SimpleItemTemplateChangedAction(itemActionOptions)\r\n }\r\n if (\"group\" === itemType) {\r\n return new GroupItemTemplateChangedAction(itemActionOptions)\r\n }\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n default:\r\n return null\r\n }\r\n};\r\nexport default tryCreateItemOptionAction;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"./m_form.layout_manager\";\r\nimport \"../../../ui/validation_summary\";\r\nimport \"../../../ui/validation_group\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport config from \"../../../core/config\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport resizeObserverSingleton from \"../../../core/resize_observer\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../../events/visibility_change\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport Scrollable from \"../../../ui/scroll_view/ui.scrollable\";\r\nimport TabPanel from \"../../../ui/tab_panel\";\r\nimport {\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport ValidationEngine from \"../../../ui/validation_engine\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"../../ui/toolbar/m_constants\";\r\nimport {\r\n setLabelWidthByMaxLabelWidth\r\n} from \"./components/m_label\";\r\nimport {\r\n FIELD_ITEM_CLASS,\r\n FIELD_ITEM_CONTENT_CLASS,\r\n FIELD_ITEM_CONTENT_HAS_GROUP_CLASS,\r\n FIELD_ITEM_CONTENT_HAS_TABS_CLASS,\r\n FIELD_ITEM_TAB_CLASS,\r\n FORM_CLASS,\r\n FORM_FIELD_ITEM_COL_CLASS,\r\n FORM_GROUP_CAPTION_CLASS,\r\n FORM_GROUP_CLASS,\r\n FORM_GROUP_CONTENT_CLASS,\r\n FORM_GROUP_WITH_CAPTION_CLASS,\r\n FORM_UNDERLINED_CLASS,\r\n FORM_VALIDATION_SUMMARY,\r\n GROUP_COL_COUNT_ATTR,\r\n GROUP_COL_COUNT_CLASS,\r\n ROOT_SIMPLE_ITEM_CLASS\r\n} from \"./constants\";\r\nimport tryCreateItemOptionAction from \"./m_form.item_options_actions\";\r\nimport {\r\n default as FormItemsRunTimeInfo\r\n} from \"./m_form.items_runtime_info\";\r\nimport {\r\n convertToLabelMarkOptions\r\n} from \"./m_form.layout_manager.utils\";\r\nimport {\r\n concatPaths,\r\n convertToLayoutManagerOptions,\r\n createItemPathByIndex,\r\n getFullOptionName,\r\n getItemPath,\r\n getOptionNameFromFullName,\r\n getTextWithoutSpaces,\r\n isEqualToDataFieldOrNameOrTitleOrCaption,\r\n isFullPathContainsTabs,\r\n tryGetTabPath\r\n} from \"./m_form.utils\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ITEM_OPTIONS_FOR_VALIDATION_UPDATING = [\"items\", \"isRequired\", \"validationRules\", \"visible\"];\r\nvar Form = Widget.inherit({\r\n _init() {\r\n this.callBase();\r\n this._dirtyFields = new Set;\r\n this._cachedColCountOptions = [];\r\n this._itemsRunTimeInfo = new FormItemsRunTimeInfo;\r\n this._groupsColCount = [];\r\n this._attachSyncSubscriptions()\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n formID: \"dx-\".concat(new Guid),\r\n formData: {},\r\n colCount: 1,\r\n screenByWidth: defaultScreenFactorFunc,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n readOnly: false,\r\n onFieldDataChanged: null,\r\n customizeItem: null,\r\n onEditorEnterKey: null,\r\n minColWidth: 200,\r\n alignItemLabels: true,\r\n alignItemLabelsInAllGroups: true,\r\n alignRootItemLabels: true,\r\n showColonAfterLabel: true,\r\n showRequiredMark: true,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n optionalMark: messageLocalization.format(\"dxForm-optionalMark\"),\r\n requiredMessage: messageLocalization.getFormatter(\"dxForm-requiredMessage\"),\r\n showValidationSummary: false,\r\n items: void 0,\r\n scrollingEnabled: false,\r\n validationGroup: void 0,\r\n stylingMode: config().editorStylingMode,\r\n labelMode: \"outside\",\r\n isDirty: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => isMaterialBased(),\r\n options: {\r\n labelLocation: \"top\"\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n showColonAfterLabel: false\r\n }\r\n }])\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n formData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _getGroupColCount: $element => parseInt($element.attr(GROUP_COL_COUNT_ATTR)),\r\n _applyLabelsWidthByCol($container, index) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var labelMarkOptions = arguments.length > 3 ? arguments[3] : void 0;\r\n var fieldItemClass = options.inOneColumn ? FIELD_ITEM_CLASS : FORM_FIELD_ITEM_COL_CLASS + index;\r\n var cssExcludeTabbedSelector = options.excludeTabbed ? \":not(.\".concat(FIELD_ITEM_TAB_CLASS, \")\") : \"\";\r\n setLabelWidthByMaxLabelWidth($container, \".\".concat(fieldItemClass).concat(cssExcludeTabbedSelector), labelMarkOptions)\r\n },\r\n _applyLabelsWidth($container, excludeTabbed, inOneColumn, colCount, labelMarkOptions) {\r\n colCount = inOneColumn ? 1 : colCount || this._getGroupColCount($container);\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed,\r\n inOneColumn: inOneColumn\r\n };\r\n var i;\r\n for (i = 0; i < colCount; i++) {\r\n this._applyLabelsWidthByCol($container, i, applyLabelsOptions, labelMarkOptions)\r\n }\r\n },\r\n _getGroupElementsInColumn($container, columnIndex, colCount) {\r\n var cssColCountSelector = isDefined(colCount) ? \".\".concat(GROUP_COL_COUNT_CLASS).concat(colCount) : \"\";\r\n var groupSelector = \".\".concat(FORM_FIELD_ITEM_COL_CLASS).concat(columnIndex, \" > .\").concat(FIELD_ITEM_CONTENT_CLASS, \" > .\").concat(FORM_GROUP_CLASS).concat(cssColCountSelector);\r\n return $container.find(groupSelector)\r\n },\r\n _applyLabelsWidthWithGroups($container, colCount, excludeTabbed, labelMarkOptions) {\r\n if (true === this.option(\"alignRootItemLabels\")) {\r\n var $rootSimpleItems = $container.find(\".\".concat(ROOT_SIMPLE_ITEM_CLASS));\r\n for (var colIndex = 0; colIndex < colCount; colIndex++) {\r\n this._applyLabelsWidthByCol($rootSimpleItems, colIndex, excludeTabbed, labelMarkOptions)\r\n }\r\n }\r\n var alignItemLabelsInAllGroups = this.option(\"alignItemLabelsInAllGroups\");\r\n if (alignItemLabelsInAllGroups) {\r\n this._applyLabelsWidthWithNestedGroups($container, colCount, excludeTabbed, labelMarkOptions)\r\n } else {\r\n var $groups = this.$element().find(\".\".concat(FORM_GROUP_CLASS));\r\n var i;\r\n for (i = 0; i < $groups.length; i++) {\r\n this._applyLabelsWidth($groups.eq(i), excludeTabbed, void 0, void 0, labelMarkOptions)\r\n }\r\n }\r\n },\r\n _applyLabelsWidthWithNestedGroups($container, colCount, excludeTabbed, labelMarkOptions) {\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed\r\n };\r\n var colIndex;\r\n var groupsColIndex;\r\n var groupColIndex;\r\n var $groupsByCol;\r\n for (colIndex = 0; colIndex < colCount; colIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex);\r\n this._applyLabelsWidthByCol($groupsByCol, 0, applyLabelsOptions, labelMarkOptions);\r\n for (groupsColIndex = 0; groupsColIndex < this._groupsColCount.length; groupsColIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex, this._groupsColCount[groupsColIndex]);\r\n var groupColCount = this._getGroupColCount($groupsByCol);\r\n for (groupColIndex = 1; groupColIndex < groupColCount; groupColIndex++) {\r\n this._applyLabelsWidthByCol($groupsByCol, groupColIndex, applyLabelsOptions, labelMarkOptions)\r\n }\r\n }\r\n }\r\n },\r\n _labelLocation() {\r\n return this.option(\"labelLocation\")\r\n },\r\n _alignLabelsInColumn(_ref) {\r\n var {\r\n layoutManager: layoutManager,\r\n inOneColumn: inOneColumn,\r\n $container: $container,\r\n excludeTabbed: excludeTabbed,\r\n items: items\r\n } = _ref;\r\n if (!hasWindow() || \"top\" === this._labelLocation()) {\r\n return\r\n }\r\n var labelMarkOptions = convertToLabelMarkOptions(layoutManager._getMarkOptions());\r\n if (inOneColumn) {\r\n this._applyLabelsWidth($container, excludeTabbed, true, void 0, labelMarkOptions)\r\n } else if (this._checkGrouping(items)) {\r\n this._applyLabelsWidthWithGroups($container, layoutManager._getColCount(), excludeTabbed, labelMarkOptions)\r\n } else {\r\n this._applyLabelsWidth($container, excludeTabbed, false, layoutManager._getColCount(), labelMarkOptions)\r\n }\r\n },\r\n _prepareFormData() {\r\n if (!isDefined(this.option(\"formData\"))) {\r\n this.option(\"formData\", {})\r\n }\r\n },\r\n _setStylingModeClass() {\r\n if (\"underlined\" === this.option(\"stylingMode\")) {\r\n this.$element().addClass(FORM_UNDERLINED_CLASS)\r\n }\r\n },\r\n _initMarkup() {\r\n ValidationEngine.addGroup(this._getValidationGroup(), false);\r\n this._clearCachedInstances();\r\n this._prepareFormData();\r\n this.$element().addClass(FORM_CLASS);\r\n this._setStylingModeClass();\r\n this.callBase();\r\n this.setAria(\"role\", \"form\", this.$element());\r\n if (this.option(\"scrollingEnabled\")) {\r\n this._renderScrollable()\r\n }\r\n this._renderLayout();\r\n this._renderValidationSummary();\r\n this._lastMarkupScreenFactor = this._targetScreenFactor || this._getCurrentScreenFactor();\r\n this._attachResizeObserverSubscription()\r\n },\r\n _attachResizeObserverSubscription() {\r\n if (hasWindow()) {\r\n var formRootElement = this.$element().get(0);\r\n resizeObserverSingleton.unobserve(formRootElement);\r\n resizeObserverSingleton.observe(formRootElement, () => {\r\n this._resizeHandler()\r\n })\r\n }\r\n },\r\n _resizeHandler() {\r\n if (this._cachedLayoutManagers.length) {\r\n each(this._cachedLayoutManagers, (_, layoutManager) => {\r\n var _a;\r\n null === (_a = layoutManager.option(\"onLayoutChanged\")) || void 0 === _a ? void 0 : _a(layoutManager.isSingleColumnMode())\r\n })\r\n }\r\n },\r\n _getCurrentScreenFactor() {\r\n return hasWindow() ? getCurrentScreenFactor(this.option(\"screenByWidth\")) : \"lg\"\r\n },\r\n _clearCachedInstances() {\r\n this._itemsRunTimeInfo.clear();\r\n this._cachedLayoutManagers = []\r\n },\r\n _alignLabels(layoutManager, inOneColumn) {\r\n this._alignLabelsInColumn({\r\n $container: this.$element(),\r\n layoutManager: layoutManager,\r\n excludeTabbed: true,\r\n items: this.option(\"items\"),\r\n inOneColumn: inOneColumn\r\n });\r\n triggerResizeEvent(this.$element().find(\".\".concat(TOOLBAR_CLASS)))\r\n },\r\n _clean() {\r\n this._clearValidationSummary();\r\n this.callBase();\r\n this._groupsColCount = [];\r\n this._cachedColCountOptions = [];\r\n this._lastMarkupScreenFactor = void 0;\r\n resizeObserverSingleton.unobserve(this.$element().get(0))\r\n },\r\n _renderScrollable() {\r\n var useNativeScrolling = this.option(\"useNativeScrolling\");\r\n this._scrollable = new Scrollable(this.$element(), {\r\n useNative: !!useNativeScrolling,\r\n useSimulatedScrollbar: !useNativeScrolling,\r\n useKeyboard: false,\r\n direction: \"both\",\r\n bounceEnabled: false\r\n })\r\n },\r\n _getContent() {\r\n return this.option(\"scrollingEnabled\") ? $(this._scrollable.content()) : this.$element()\r\n },\r\n _clearValidationSummary() {\r\n var _a;\r\n null === (_a = this._$validationSummary) || void 0 === _a ? void 0 : _a.remove();\r\n this._$validationSummary = void 0;\r\n this._validationSummary = void 0\r\n },\r\n _renderValidationSummary() {\r\n this._clearValidationSummary();\r\n if (this.option(\"showValidationSummary\")) {\r\n this._$validationSummary = $(\"<div>\").addClass(FORM_VALIDATION_SUMMARY).appendTo(this._getContent());\r\n this._validationSummary = this._$validationSummary.dxValidationSummary({\r\n validationGroup: this._getValidationGroup()\r\n }).dxValidationSummary(\"instance\")\r\n }\r\n },\r\n _prepareItems(items, parentIsTabbedItem, currentPath, isTabs) {\r\n if (items) {\r\n var result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var path = concatPaths(currentPath, createItemPathByIndex(i, isTabs));\r\n var itemRunTimeInfo = {\r\n item: item,\r\n itemIndex: i,\r\n path: path\r\n };\r\n var guid = this._itemsRunTimeInfo.add(itemRunTimeInfo);\r\n if (isString(item)) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (isObject(item)) {\r\n var preparedItem = _extends({}, item);\r\n itemRunTimeInfo.preparedItem = preparedItem;\r\n preparedItem.guid = guid;\r\n this._tryPrepareGroupItem(preparedItem);\r\n this._tryPrepareTabbedItem(preparedItem, path);\r\n this._tryPrepareItemTemplate(preparedItem);\r\n if (parentIsTabbedItem) {\r\n preparedItem.cssItemClass = FIELD_ITEM_TAB_CLASS\r\n }\r\n if (preparedItem.items) {\r\n preparedItem.items = this._prepareItems(preparedItem.items, parentIsTabbedItem, path)\r\n }\r\n result.push(preparedItem)\r\n } else {\r\n result.push(item)\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n _tryPrepareGroupItem(item) {\r\n if (\"group\" === item.itemType) {\r\n item.alignItemLabels = ensureDefined(item.alignItemLabels, true);\r\n item._prepareGroupItemTemplate = itemTemplate => {\r\n if (item.template) {\r\n item.groupContentTemplate = this._getTemplate(itemTemplate)\r\n }\r\n item.template = this._itemGroupTemplate.bind(this, item)\r\n };\r\n item._prepareGroupItemTemplate(item.template)\r\n }\r\n },\r\n _tryPrepareTabbedItem(item, path) {\r\n if (\"tabbed\" === item.itemType) {\r\n item.template = this._itemTabbedTemplate.bind(this, item);\r\n item.tabs = this._prepareItems(item.tabs, true, path, true)\r\n }\r\n },\r\n _tryPrepareItemTemplate(item) {\r\n if (item.template) {\r\n item.template = this._getTemplate(item.template)\r\n }\r\n },\r\n _checkGrouping(items) {\r\n if (items) {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"group\" === item.itemType) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _renderLayout() {\r\n var that = this;\r\n var items = that.option(\"items\");\r\n var $content = that._getContent();\r\n items = that._prepareItems(items);\r\n that._rootLayoutManager = that._renderLayoutManager($content, this._createLayoutManagerOptions(items, {\r\n isRoot: true,\r\n colCount: that.option(\"colCount\"),\r\n alignItemLabels: that.option(\"alignItemLabels\"),\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n colCountByScreen: this.option(\"colCountByScreen\"),\r\n onLayoutChanged(inOneColumn) {\r\n that._alignLabels.bind(that)(that._rootLayoutManager, inOneColumn)\r\n },\r\n onContentReady(e) {\r\n that._alignLabels(e.component, e.component.isSingleColumnMode())\r\n }\r\n }))\r\n },\r\n _tryGetItemsForTemplate: item => item.items || [],\r\n _itemTabbedTemplate(item, e, $container) {\r\n var _a;\r\n var $tabPanel = $(\"<div>\").appendTo($container);\r\n var tabPanelOptions = extend({}, item.tabPanelOptions, {\r\n dataSource: item.tabs,\r\n onItemRendered: args => {\r\n var _a, _b;\r\n null === (_b = null === (_a = item.tabPanelOptions) || void 0 === _a ? void 0 : _a.onItemRendered) || void 0 === _b ? void 0 : _b.call(_a, args);\r\n triggerShownEvent(args.itemElement)\r\n },\r\n itemTemplate: (itemData, e, container) => {\r\n var $container = $(container);\r\n var alignItemLabels = ensureDefined(itemData.alignItemLabels, true);\r\n var layoutManager = this._renderLayoutManager($container, this._createLayoutManagerOptions(this._tryGetItemsForTemplate(itemData), {\r\n colCount: itemData.colCount,\r\n alignItemLabels: alignItemLabels,\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n colCountByScreen: itemData.colCountByScreen,\r\n cssItemClass: itemData.cssItemClass,\r\n onLayoutChanged: inOneColumn => {\r\n this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: inOneColumn\r\n })\r\n }\r\n }));\r\n if (this._itemsRunTimeInfo) {\r\n this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(itemData.guid, {\r\n layoutManager: layoutManager\r\n })\r\n }\r\n if (alignItemLabels) {\r\n this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: layoutManager.isSingleColumnMode()\r\n })\r\n }\r\n }\r\n });\r\n var tryUpdateTabPanelInstance = (items, instance) => {\r\n if (Array.isArray(items)) {\r\n items.forEach(item => this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n widgetInstance: instance\r\n }))\r\n }\r\n };\r\n var tabPanel = this._createComponent($tabPanel, TabPanel, tabPanelOptions);\r\n $($container).parent().addClass(FIELD_ITEM_CONTENT_HAS_TABS_CLASS);\r\n tabPanel.on(\"optionChanged\", e => {\r\n if (\"dataSource\" === e.fullName) {\r\n tryUpdateTabPanelInstance(e.value, e.component)\r\n }\r\n });\r\n tryUpdateTabPanelInstance([{\r\n guid: item.guid\r\n }, ...null !== (_a = item.tabs) && void 0 !== _a ? _a : []], tabPanel)\r\n },\r\n _itemGroupTemplate(item, options, $container) {\r\n var {\r\n id: id\r\n } = options.editorOptions.inputAttr;\r\n var $group = $(\"<div>\").toggleClass(FORM_GROUP_WITH_CAPTION_CLASS, isDefined(item.caption) && item.caption.length).addClass(FORM_GROUP_CLASS).appendTo($container);\r\n var groupAria = {\r\n role: \"group\",\r\n labelledby: id\r\n };\r\n this.setAria(groupAria, $group);\r\n $($container).parent().addClass(FIELD_ITEM_CONTENT_HAS_GROUP_CLASS);\r\n if (item.caption) {\r\n $(\"<span>\").addClass(FORM_GROUP_CAPTION_CLASS).text(item.caption).attr(\"id\", id).appendTo($group)\r\n }\r\n var $groupContent = $(\"<div>\").addClass(FORM_GROUP_CONTENT_CLASS).appendTo($group);\r\n if (item.groupContentTemplate) {\r\n item._renderGroupContentTemplate = () => {\r\n $groupContent.empty();\r\n var data = {\r\n formData: this.option(\"formData\"),\r\n component: this\r\n };\r\n item.groupContentTemplate.render({\r\n model: data,\r\n container: getPublicElement($groupContent)\r\n })\r\n };\r\n item._renderGroupContentTemplate()\r\n } else {\r\n var layoutManager = this._renderLayoutManager($groupContent, this._createLayoutManagerOptions(this._tryGetItemsForTemplate(item), {\r\n colCount: item.colCount,\r\n colCountByScreen: item.colCountByScreen,\r\n alignItemLabels: item.alignItemLabels,\r\n cssItemClass: item.cssItemClass\r\n }));\r\n this._itemsRunTimeInfo && this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n layoutManager: layoutManager\r\n });\r\n var colCount = layoutManager._getColCount();\r\n if (!this._groupsColCount.includes(colCount)) {\r\n this._groupsColCount.push(colCount)\r\n }\r\n $group.addClass(GROUP_COL_COUNT_CLASS + colCount);\r\n $group.attr(GROUP_COL_COUNT_ATTR, colCount)\r\n }\r\n },\r\n _createLayoutManagerOptions(items, extendedLayoutManagerOptions) {\r\n return convertToLayoutManagerOptions({\r\n form: this,\r\n formOptions: this.option(),\r\n $formElement: this.$element(),\r\n items: items,\r\n validationGroup: this._getValidationGroup(),\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: args => {\r\n if (!this._isDataUpdating) {\r\n this._triggerOnFieldDataChanged(args)\r\n }\r\n },\r\n onContentReady: args => {\r\n this._itemsRunTimeInfo.addItemsOrExtendFrom(args.component._itemsRunTimeInfo);\r\n extendedLayoutManagerOptions.onContentReady && extendedLayoutManagerOptions.onContentReady(args)\r\n },\r\n onDisposing: _ref2 => {\r\n var {\r\n component: component\r\n } = _ref2;\r\n var nestedItemsRunTimeInfo = component.getItemsRunTimeInfo();\r\n this._itemsRunTimeInfo.removeItemsByItems(nestedItemsRunTimeInfo)\r\n },\r\n onFieldItemRendered: () => {\r\n var _a;\r\n null === (_a = this._validationSummary) || void 0 === _a ? void 0 : _a.refreshValidationGroup()\r\n }\r\n })\r\n },\r\n _renderLayoutManager($parent, layoutManagerOptions) {\r\n var baseColCountByScreen = {\r\n lg: layoutManagerOptions.colCount,\r\n md: layoutManagerOptions.colCount,\r\n sm: layoutManagerOptions.colCount,\r\n xs: 1\r\n };\r\n this._cachedColCountOptions.push({\r\n colCountByScreen: extend(baseColCountByScreen, layoutManagerOptions.colCountByScreen)\r\n });\r\n var $element = $(\"<div>\");\r\n $element.appendTo($parent);\r\n var instance = this._createComponent($element, \"dxLayoutManager\", layoutManagerOptions);\r\n instance.on(\"autoColCountChanged\", () => {\r\n this._clearAutoColCountChangedTimeout();\r\n this.autoColCountChangedTimeoutId = setTimeout(() => !this._disposed && this._refresh(), 0)\r\n });\r\n this._cachedLayoutManagers.push(instance);\r\n return instance\r\n },\r\n _getValidationGroup() {\r\n return this.option(\"validationGroup\") || this\r\n },\r\n _createComponent($element, type, config) {\r\n config = config || {};\r\n this._extendConfig(config, {\r\n readOnly: this.option(\"readOnly\")\r\n });\r\n return this.callBase($element, type, config)\r\n },\r\n _attachSyncSubscriptions() {\r\n var that = this;\r\n that.on(\"optionChanged\", args => {\r\n var optionFullName = args.fullName;\r\n if (\"formData\" === optionFullName) {\r\n if (!isDefined(args.value)) {\r\n that._options.silent(\"formData\", args.value = {})\r\n }\r\n that._triggerOnFieldDataChangedByDataSet(args.value)\r\n }\r\n if (that._cachedLayoutManagers.length) {\r\n each(that._cachedLayoutManagers, (index, layoutManager) => {\r\n if (\"formData\" === optionFullName) {\r\n that._isDataUpdating = true;\r\n layoutManager.option(\"layoutData\", args.value);\r\n that._isDataUpdating = false\r\n }\r\n if (\"readOnly\" === args.name || \"disabled\" === args.name) {\r\n layoutManager.option(optionFullName, args.value)\r\n }\r\n })\r\n }\r\n })\r\n },\r\n _optionChanged(args) {\r\n var splitFullName = args.fullName.split(\".\");\r\n if (splitFullName.length > 1 && -1 !== splitFullName[0].search(\"items\") && this._itemsOptionChangedHandler(args)) {\r\n return\r\n }\r\n if (splitFullName.length > 1 && -1 !== splitFullName[0].search(\"formData\") && this._formDataOptionChangedHandler(args)) {\r\n return\r\n }\r\n this._defaultOptionChangedHandler(args)\r\n },\r\n _defaultOptionChangedHandler(args) {\r\n switch (args.name) {\r\n case \"formData\":\r\n if (!this.option(\"items\")) {\r\n this._invalidate()\r\n } else if (isEmptyObject(args.value)) {\r\n this._clear()\r\n }\r\n break;\r\n case \"onFieldDataChanged\":\r\n break;\r\n case \"items\":\r\n case \"colCount\":\r\n case \"onEditorEnterKey\":\r\n case \"labelLocation\":\r\n case \"labelMode\":\r\n case \"alignItemLabels\":\r\n case \"showColonAfterLabel\":\r\n case \"customizeItem\":\r\n case \"alignItemLabelsInAllGroups\":\r\n case \"showRequiredMark\":\r\n case \"showOptionalMark\":\r\n case \"requiredMark\":\r\n case \"optionalMark\":\r\n case \"requiredMessage\":\r\n case \"scrollingEnabled\":\r\n case \"formID\":\r\n case \"colCountByScreen\":\r\n case \"screenByWidth\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationSummary\":\r\n this._renderValidationSummary();\r\n break;\r\n case \"minColWidth\":\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"alignRootItemLabels\":\r\n case \"readOnly\":\r\n case \"isDirty\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._rootLayoutManager.option(args.name, args.value);\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode());\r\n break;\r\n case \"validationGroup\":\r\n ValidationEngine.removeGroup(args.previousValue || this);\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemsOptionChangedHandler(args) {\r\n var nameParts = args.fullName.split(\".\");\r\n var {\r\n value: value\r\n } = args;\r\n var itemPath = this._getItemPath(nameParts);\r\n var item = this.option(itemPath);\r\n var optionNameWithoutPath = args.fullName.replace(\"\".concat(itemPath, \".\"), \"\");\r\n var simpleOptionName = optionNameWithoutPath.split(\".\")[0].replace(/\\[\\d+]/, \"\");\r\n var itemAction = this._tryCreateItemOptionAction(simpleOptionName, item, item[simpleOptionName], args.previousValue, itemPath);\r\n var result = this._tryExecuteItemOptionAction(itemAction) || this._tryChangeLayoutManagerItemOption(args.fullName, value);\r\n if (!result && item) {\r\n this._changeItemOption(item, optionNameWithoutPath, value);\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n this.option(\"items\", items);\r\n result = true\r\n }\r\n return result\r\n },\r\n _formDataOptionChangedHandler(args) {\r\n var nameParts = args.fullName.split(\".\");\r\n var {\r\n value: value\r\n } = args;\r\n var dataField = nameParts.slice(1).join(\".\");\r\n var editor = this.getEditor(dataField);\r\n if (editor) {\r\n editor.option(\"value\", value)\r\n } else {\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: value\r\n })\r\n }\r\n return true\r\n },\r\n _tryCreateItemOptionAction(optionName, item, value, previousValue, itemPath) {\r\n if (\"tabs\" === optionName) {\r\n this._itemsRunTimeInfo.removeItemsByPathStartWith(\"\".concat(itemPath, \".tabs\"));\r\n value = this._prepareItems(value, true, itemPath, true)\r\n }\r\n return tryCreateItemOptionAction(optionName, {\r\n item: item,\r\n value: value,\r\n previousValue: previousValue,\r\n itemsRunTimeInfo: this._itemsRunTimeInfo\r\n })\r\n },\r\n _tryExecuteItemOptionAction: action => action && action.tryExecute(),\r\n _updateValidationGroupAndSummaryIfNeeded(fullName) {\r\n var _a;\r\n var optionName = getOptionNameFromFullName(fullName);\r\n if (ITEM_OPTIONS_FOR_VALIDATION_UPDATING.includes(optionName)) {\r\n ValidationEngine.addGroup(this._getValidationGroup(), false);\r\n if (this.option(\"showValidationSummary\")) {\r\n null === (_a = this._validationSummary) || void 0 === _a ? void 0 : _a.refreshValidationGroup()\r\n }\r\n }\r\n },\r\n _setLayoutManagerItemOption(layoutManager, optionName, value, path) {\r\n if (this._updateLockCount > 0) {\r\n !layoutManager._updateLockCount && layoutManager.beginUpdate();\r\n var key = this._itemsRunTimeInfo.findKeyByPath(path);\r\n this.postponedOperations.add(key, () => {\r\n !layoutManager._disposed && layoutManager.endUpdate();\r\n return Deferred().resolve()\r\n })\r\n }\r\n var contentReadyHandler = e => {\r\n e.component.off(\"contentReady\", contentReadyHandler);\r\n if (isFullPathContainsTabs(path)) {\r\n var tabPath = tryGetTabPath(path);\r\n var tabLayoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(tabPath);\r\n if (tabLayoutManager) {\r\n this._alignLabelsInColumn({\r\n items: tabLayoutManager.option(\"items\"),\r\n layoutManager: tabLayoutManager,\r\n $container: tabLayoutManager.$element(),\r\n inOneColumn: tabLayoutManager.isSingleColumnMode()\r\n })\r\n }\r\n } else {\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode())\r\n }\r\n };\r\n layoutManager.on(\"contentReady\", contentReadyHandler);\r\n layoutManager.option(optionName, value);\r\n this._updateValidationGroupAndSummaryIfNeeded(optionName)\r\n },\r\n _tryChangeLayoutManagerItemOption(fullName, value) {\r\n var nameParts = fullName.split(\".\");\r\n var optionName = getOptionNameFromFullName(fullName);\r\n if (\"items\" === optionName && nameParts.length > 1) {\r\n var itemPath = this._getItemPath(nameParts);\r\n var layoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(itemPath);\r\n if (layoutManager) {\r\n this._itemsRunTimeInfo.removeItemsByItems(layoutManager.getItemsRunTimeInfo());\r\n var items = this._prepareItems(value, false, itemPath);\r\n this._setLayoutManagerItemOption(layoutManager, optionName, items, itemPath);\r\n return true\r\n }\r\n } else if (nameParts.length > 2) {\r\n var endPartIndex = nameParts.length - 2;\r\n var _itemPath = this._getItemPath(nameParts.slice(0, endPartIndex));\r\n var _layoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(_itemPath);\r\n if (_layoutManager) {\r\n var fullOptionName = getFullOptionName(nameParts[endPartIndex], optionName);\r\n if (\"editorType\" === optionName) {\r\n if (_layoutManager.option(fullOptionName) !== value) {\r\n return false\r\n }\r\n }\r\n if (\"visible\" === optionName) {\r\n var formItems = this.option(getFullOptionName(_itemPath, \"items\"));\r\n if (formItems && formItems.length) {\r\n var layoutManagerItems = _layoutManager.option(\"items\");\r\n formItems.forEach((item, index) => {\r\n var layoutItem = layoutManagerItems[index];\r\n layoutItem.visibleIndex = item.visibleIndex\r\n })\r\n }\r\n }\r\n this._setLayoutManagerItemOption(_layoutManager, fullOptionName, value, _itemPath);\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _tryChangeLayoutManagerItemOptions(itemPath, options) {\r\n var result;\r\n this.beginUpdate();\r\n each(options, (optionName, optionValue) => {\r\n result = this._tryChangeLayoutManagerItemOption(getFullOptionName(itemPath, optionName), optionValue);\r\n if (!result) {\r\n return false\r\n }\r\n });\r\n this.endUpdate();\r\n return result\r\n },\r\n _getItemPath(nameParts) {\r\n var itemPath = nameParts[0];\r\n var i;\r\n for (i = 1; i < nameParts.length; i++) {\r\n if (-1 !== nameParts[i].search(/items\\[\\d+]|tabs\\[\\d+]/)) {\r\n itemPath += \".\".concat(nameParts[i])\r\n } else {\r\n break\r\n }\r\n }\r\n return itemPath\r\n },\r\n _triggerOnFieldDataChanged(args) {\r\n this._updateIsDirty(args.dataField);\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _triggerOnFieldDataChangedByDataSet(data) {\r\n if (data && isObject(data)) {\r\n Object.keys(data).forEach(key => {\r\n this._triggerOnFieldDataChanged({\r\n dataField: key,\r\n value: data[key]\r\n })\r\n })\r\n }\r\n },\r\n _updateFieldValue(dataField, value) {\r\n if (isDefined(this.option(\"formData\"))) {\r\n var editor = this.getEditor(dataField);\r\n this.option(\"formData.\".concat(dataField), value);\r\n if (editor) {\r\n var editorValue = editor.option(\"value\");\r\n if (editorValue !== value) {\r\n editor.option(\"value\", value)\r\n }\r\n }\r\n }\r\n },\r\n _generateItemsFromData(items) {\r\n var formData = this.option(\"formData\");\r\n var result = [];\r\n if (!items && isDefined(formData)) {\r\n each(formData, dataField => {\r\n result.push({\r\n dataField: dataField\r\n })\r\n })\r\n }\r\n if (items) {\r\n each(items, (index, item) => {\r\n if (isObject(item)) {\r\n result.push(item)\r\n } else {\r\n result.push({\r\n dataField: item\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _getItemByField(field, items) {\r\n var that = this;\r\n var fieldParts = isObject(field) ? field : that._getFieldParts(field);\r\n var {\r\n fieldName: fieldName\r\n } = fieldParts;\r\n var {\r\n fieldPath: fieldPath\r\n } = fieldParts;\r\n var resultItem;\r\n if (items.length) {\r\n each(items, (index, item) => {\r\n var {\r\n itemType: itemType\r\n } = item;\r\n if (fieldPath.length) {\r\n var path = fieldPath.slice();\r\n item = that._getItemByFieldPath(path, fieldName, item)\r\n } else if (\"group\" === itemType && !(item.caption || item.name) || \"tabbed\" === itemType && !item.name) {\r\n var subItemsField = that._getSubItemField(itemType);\r\n item.items = that._generateItemsFromData(item.items);\r\n item = that._getItemByField({\r\n fieldName: fieldName,\r\n fieldPath: fieldPath\r\n }, item[subItemsField])\r\n }\r\n if (isEqualToDataFieldOrNameOrTitleOrCaption(item, fieldName)) {\r\n resultItem = item;\r\n return false\r\n }\r\n })\r\n }\r\n return resultItem\r\n },\r\n _getFieldParts(field) {\r\n var fieldName = field;\r\n var separatorIndex = fieldName.indexOf(\".\");\r\n var resultPath = [];\r\n while (-1 !== separatorIndex) {\r\n resultPath.push(fieldName.substr(0, separatorIndex));\r\n fieldName = fieldName.substr(separatorIndex + 1);\r\n separatorIndex = fieldName.indexOf(\".\")\r\n }\r\n return {\r\n fieldName: fieldName,\r\n fieldPath: resultPath.reverse()\r\n }\r\n },\r\n _getItemByFieldPath(path, fieldName, item) {\r\n var {\r\n itemType: itemType\r\n } = item;\r\n var subItemsField = this._getSubItemField(itemType);\r\n var isItemWithSubItems = \"group\" === itemType || \"tabbed\" === itemType || item.title;\r\n var result;\r\n do {\r\n if (isItemWithSubItems) {\r\n var name = item.name || item.caption || item.title;\r\n var isGroupWithName = isDefined(name);\r\n var nameWithoutSpaces = getTextWithoutSpaces(name);\r\n var pathNode = void 0;\r\n item[subItemsField] = this._generateItemsFromData(item[subItemsField]);\r\n if (isGroupWithName) {\r\n pathNode = path.pop()\r\n }\r\n if (!path.length) {\r\n result = this._getItemByField(fieldName, item[subItemsField]);\r\n if (result) {\r\n break\r\n }\r\n }\r\n if (!isGroupWithName || isGroupWithName && nameWithoutSpaces === pathNode) {\r\n if (path.length) {\r\n result = this._searchItemInEverySubItem(path, fieldName, item[subItemsField])\r\n }\r\n }\r\n } else {\r\n break\r\n }\r\n } while (path.length && !isDefined(result));\r\n return result\r\n },\r\n _getSubItemField: itemType => \"tabbed\" === itemType ? \"tabs\" : \"items\",\r\n _searchItemInEverySubItem(path, fieldName, items) {\r\n var that = this;\r\n var result;\r\n each(items, (index, groupItem) => {\r\n result = that._getItemByFieldPath(path.slice(), fieldName, groupItem);\r\n if (result) {\r\n return false\r\n }\r\n });\r\n if (!result) {\r\n result = false\r\n }\r\n return result\r\n },\r\n _changeItemOption(item, option, value) {\r\n if (isObject(item)) {\r\n item[option] = value\r\n }\r\n },\r\n _dimensionChanged() {\r\n var currentScreenFactor = this._getCurrentScreenFactor();\r\n if (this._lastMarkupScreenFactor !== currentScreenFactor) {\r\n if (this._isColCountChanged(this._lastMarkupScreenFactor, currentScreenFactor)) {\r\n this._targetScreenFactor = currentScreenFactor;\r\n this._refresh();\r\n this._targetScreenFactor = void 0\r\n }\r\n this._lastMarkupScreenFactor = currentScreenFactor\r\n }\r\n },\r\n _isColCountChanged(oldScreenSize, newScreenSize) {\r\n var isChanged = false;\r\n each(this._cachedColCountOptions, (index, item) => {\r\n if (item.colCountByScreen[oldScreenSize] !== item.colCountByScreen[newScreenSize]) {\r\n isChanged = true;\r\n return false\r\n }\r\n });\r\n return isChanged\r\n },\r\n _refresh() {\r\n var editorSelector = \".\".concat(FOCUSED_STATE_CLASS, \" > :not(.dx-dropdowneditor-input-wrapper) input,\") + \" .\".concat(FOCUSED_STATE_CLASS, \" textarea\");\r\n eventsEngine.trigger(this.$element().find(editorSelector), \"change\");\r\n this.callBase()\r\n },\r\n _updateIsDirty(dataField) {\r\n var editor = this.getEditor(dataField);\r\n if (!editor) {\r\n return\r\n }\r\n if (editor.option(\"isDirty\")) {\r\n this._dirtyFields.add(dataField)\r\n } else {\r\n this._dirtyFields.delete(dataField)\r\n }\r\n this.option(\"isDirty\", !!this._dirtyFields.size)\r\n },\r\n updateRunTimeInfoForEachEditor(editorAction) {\r\n this._itemsRunTimeInfo.each((_, itemRunTimeInfo) => {\r\n var {\r\n widgetInstance: widgetInstance\r\n } = itemRunTimeInfo;\r\n if (isDefined(widgetInstance) && Editor.isEditor(widgetInstance)) {\r\n editorAction(widgetInstance)\r\n }\r\n })\r\n },\r\n _clear() {\r\n this.updateRunTimeInfoForEachEditor(editor => {\r\n editor.clear();\r\n editor.option(\"isValid\", true)\r\n });\r\n ValidationEngine.resetGroup(this._getValidationGroup())\r\n },\r\n _updateData(data, value, isComplexData) {\r\n var that = this;\r\n var _data = isComplexData ? value : data;\r\n if (isObject(_data)) {\r\n each(_data, (dataField, fieldValue) => {\r\n that._updateData(isComplexData ? \"\".concat(data, \".\").concat(dataField) : dataField, fieldValue, isObject(fieldValue))\r\n })\r\n } else if (isString(data)) {\r\n that._updateFieldValue(data, value)\r\n }\r\n },\r\n registerKeyHandler(key, handler) {\r\n this.callBase(key, handler);\r\n this._itemsRunTimeInfo.each((_, itemRunTimeInfo) => {\r\n if (isDefined(itemRunTimeInfo.widgetInstance)) {\r\n itemRunTimeInfo.widgetInstance.registerKeyHandler(key, handler)\r\n }\r\n })\r\n },\r\n _focusTarget() {\r\n return this.$element().find(\".\".concat(FIELD_ITEM_CONTENT_CLASS, \" [tabindex]\")).first()\r\n },\r\n _visibilityChanged() {\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode())\r\n },\r\n _clearAutoColCountChangedTimeout() {\r\n if (this.autoColCountChangedTimeoutId) {\r\n clearTimeout(this.autoColCountChangedTimeoutId);\r\n this.autoColCountChangedTimeoutId = void 0\r\n }\r\n },\r\n _dispose() {\r\n this._clearAutoColCountChangedTimeout();\r\n ValidationEngine.removeGroup(this._getValidationGroup());\r\n this.callBase()\r\n },\r\n clear() {\r\n this._clear()\r\n },\r\n resetValues() {\r\n this._clear()\r\n },\r\n reset(editorsData) {\r\n this.updateRunTimeInfoForEachEditor(editor => {\r\n var editorName = editor.option(\"name\");\r\n if (editorsData && editorName in editorsData) {\r\n editor.reset(editorsData[editorName])\r\n } else {\r\n editor.reset()\r\n }\r\n });\r\n this._renderValidationSummary()\r\n },\r\n updateData(data, value) {\r\n this._updateData(data, value)\r\n },\r\n getEditor(dataField) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByDataField(dataField) || this._itemsRunTimeInfo.findWidgetInstanceByName(dataField)\r\n },\r\n getButton(name) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByName(name)\r\n },\r\n updateDimensions() {\r\n var that = this;\r\n var deferred = Deferred();\r\n if (that._scrollable) {\r\n that._scrollable.update().done(() => {\r\n deferred.resolveWith(that)\r\n })\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n itemOption(id, option, value) {\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n var item = this._getItemByField(id, items);\r\n var path = getItemPath(items, item);\r\n if (!item) {\r\n return\r\n }\r\n switch (arguments.length) {\r\n case 1:\r\n return item;\r\n case 3:\r\n var itemAction = this._tryCreateItemOptionAction(option, item, value, item[option], path);\r\n this._changeItemOption(item, option, value);\r\n var fullName = getFullOptionName(path, option);\r\n if (!this._tryExecuteItemOptionAction(itemAction) && !this._tryChangeLayoutManagerItemOption(fullName, value)) {\r\n this.option(\"items\", items)\r\n }\r\n break;\r\n default:\r\n if (isObject(option)) {\r\n if (!this._tryChangeLayoutManagerItemOptions(path, option)) {\r\n var allowUpdateItems;\r\n each(option, (optionName, optionValue) => {\r\n var itemAction = this._tryCreateItemOptionAction(optionName, item, optionValue, item[optionName], path);\r\n this._changeItemOption(item, optionName, optionValue);\r\n if (!allowUpdateItems && !this._tryExecuteItemOptionAction(itemAction)) {\r\n allowUpdateItems = true\r\n }\r\n });\r\n allowUpdateItems && this.option(\"items\", items)\r\n }\r\n }\r\n }\r\n },\r\n validate() {\r\n return ValidationEngine.validateGroup(this._getValidationGroup())\r\n },\r\n getItemID(name) {\r\n return \"dx_\".concat(this.option(\"formID\"), \"_\").concat(name || new Guid)\r\n },\r\n getTargetScreenFactor() {\r\n return this._targetScreenFactor\r\n }\r\n});\r\nregisterComponent(\"dxForm\", Form);\r\nexport default Form;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing_form_based.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isElementInDom\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport Button from \"../../../../ui/button\";\r\nimport Form from \"../../../../ui/form\";\r\nimport Popup from \"../../../../ui/popup/ui.popup\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n BUTTON_CLASS,\r\n DATA_EDIT_DATA_INSERT_TYPE,\r\n EDIT_FORM_ITEM_CLASS,\r\n EDIT_MODE_FORM,\r\n EDIT_POPUP_CLASS,\r\n EDIT_POPUP_FORM_CLASS,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITING_FORM_OPTION_NAME,\r\n EDITING_POPUP_OPTION_NAME,\r\n FOCUSABLE_ELEMENT_CLASS,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n FORM_BUTTONS_CONTAINER_CLASS\r\n} from \"./const\";\r\nimport {\r\n forEachFormItems,\r\n getEditorType\r\n} from \"./m_editing_utils\";\r\nvar editingControllerExtender = Base => class extends Base {\r\n init() {\r\n this._editForm = null;\r\n this._updateEditFormDeferred = null;\r\n super.init()\r\n }\r\n isEditRow(rowIndex) {\r\n return !this.isPopupEditMode() && super.isEditRow(rowIndex)\r\n }\r\n isFormOrPopupEditMode() {\r\n return this.isPopupEditMode() || this.isFormEditMode()\r\n }\r\n isFormEditMode() {\r\n var editMode = this.option(\"editing.mode\");\r\n return editMode === EDIT_MODE_FORM\r\n }\r\n getFirstEditableColumnIndex() {\r\n var firstFormItem = this._firstFormItem;\r\n if (this.isFormEditMode() && firstFormItem) {\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = this._dataController.getRowIndexByKey(editRowKey);\r\n var $editFormElements = this._rowsView.getCellElements(editRowIndex);\r\n return this._rowsView._getEditFormEditorVisibleIndex($editFormElements, firstFormItem.column)\r\n }\r\n return super.getFirstEditableColumnIndex()\r\n }\r\n getEditFormRowIndex() {\r\n return this.isFormOrPopupEditMode() ? this._getVisibleEditRowIndex() : super.getEditFormRowIndex()\r\n }\r\n _isEditColumnVisible() {\r\n var result = super._isEditColumnVisible();\r\n var editingOptions = this.option(\"editing\");\r\n return this.isFormOrPopupEditMode() ? editingOptions.allowUpdating || result : result\r\n }\r\n _handleDataChanged(args) {\r\n var _a, _b;\r\n if (this.isPopupEditMode()) {\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n var hasEditRow = null === (_a = null === args || void 0 === args ? void 0 : args.items) || void 0 === _a ? void 0 : _a.some(item => equalByValue(item.key, editRowKey));\r\n var onlyInsertChanges = (null === (_b = args.changeTypes) || void 0 === _b ? void 0 : _b.length) && args.changeTypes.every(item => \"insert\" === item);\r\n if ((\"refresh\" === args.changeType || hasEditRow && args.isOptionChanged) && !onlyInsertChanges) {\r\n this._repaintEditPopup()\r\n }\r\n }\r\n super._handleDataChanged(args)\r\n }\r\n getPopupContent() {\r\n var _a;\r\n var popupVisible = null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.option(\"visible\");\r\n if (this.isPopupEditMode() && popupVisible) {\r\n return this._$popupContent\r\n }\r\n }\r\n _showAddedRow(rowIndex) {\r\n if (this.isPopupEditMode()) {\r\n this._showEditPopup(rowIndex)\r\n } else {\r\n super._showAddedRow(rowIndex)\r\n }\r\n }\r\n _cancelEditDataCore() {\r\n super._cancelEditDataCore();\r\n if (this.isPopupEditMode()) {\r\n this._hideEditPopup()\r\n }\r\n }\r\n _updateEditRowCore(row, skipCurrentRow, isCustomSetCellValue) {\r\n var _a;\r\n var editForm = this._editForm;\r\n if (this.isPopupEditMode()) {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n null === (_a = row.update) || void 0 === _a ? void 0 : _a.call(row, row);\r\n this._rowsView.renderDelayedTemplates()\r\n } else if (editForm) {\r\n this._updateEditFormDeferred = (new Deferred).done(() => editForm.repaint());\r\n if (!this._updateLockCount) {\r\n this._updateEditFormDeferred.resolve()\r\n }\r\n }\r\n } else {\r\n super._updateEditRowCore(row, skipCurrentRow, isCustomSetCellValue)\r\n }\r\n }\r\n _showEditPopup(rowIndex, repaintForm) {\r\n var isMobileDevice = \"desktop\" !== devices.current().deviceType;\r\n var editPopupClass = this.addWidgetPrefix(EDIT_POPUP_CLASS);\r\n var popupOptions = extend({\r\n showTitle: false,\r\n fullScreen: isMobileDevice,\r\n wrapperAttr: {\r\n class: editPopupClass\r\n },\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: this._getSaveButtonConfig()\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: this._getCancelButtonConfig()\r\n }],\r\n contentTemplate: this._getPopupEditFormTemplate(rowIndex)\r\n }, this.option(EDITING_POPUP_OPTION_NAME));\r\n if (!this._editPopup) {\r\n var $popupContainer = $(\"<div>\").appendTo(this.component.$element()).addClass(editPopupClass);\r\n this._editPopup = this._createComponent($popupContainer, Popup);\r\n this._editPopup.on(\"hiding\", this._getEditPopupHiddenHandler());\r\n this._editPopup.on(\"shown\", e => {\r\n var _a;\r\n eventsEngine.trigger(e.component.$content().find(FOCUSABLE_ELEMENT_SELECTOR).not(\".\".concat(FOCUSABLE_ELEMENT_CLASS)).first(), \"focus\");\r\n if (repaintForm) {\r\n null === (_a = this._editForm) || void 0 === _a ? void 0 : _a.repaint()\r\n }\r\n })\r\n }\r\n this._editPopup.option(popupOptions);\r\n this._editPopup.show();\r\n super._showEditPopup(rowIndex, repaintForm)\r\n }\r\n _getPopupEditFormTemplate(rowIndex) {\r\n var row = this.component.getVisibleRows()[rowIndex];\r\n var templateOptions = {\r\n row: row,\r\n values: row.values,\r\n rowType: row.rowType,\r\n key: row.key,\r\n rowIndex: rowIndex\r\n };\r\n this._rowsView._addWatchMethod(templateOptions, row);\r\n return container => {\r\n var formTemplate = this.getEditFormTemplate();\r\n var scrollable = this._createComponent($(\"<div>\").appendTo(container), Scrollable);\r\n this._$popupContent = $(scrollable.content());\r\n formTemplate(this._$popupContent, templateOptions, {\r\n isPopupForm: true\r\n });\r\n this._rowsView.renderDelayedTemplates();\r\n $(container).parent().attr(\"aria-label\", this.localize(\"dxDataGrid-ariaEditForm\"))\r\n }\r\n }\r\n _repaintEditPopup() {\r\n var _a, _b;\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n if (rowIndex >= 0) {\r\n var defaultAnimation = null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.option(\"animation\");\r\n null === (_b = this._editPopup) || void 0 === _b ? void 0 : _b.option(\"animation\", null);\r\n this._showEditPopup(rowIndex, true);\r\n if (void 0 !== defaultAnimation) {\r\n this._editPopup.option(\"animation\", defaultAnimation)\r\n }\r\n }\r\n }\r\n _hideEditPopup() {\r\n var _a;\r\n null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.option(\"visible\", false)\r\n }\r\n optionChanged(args) {\r\n if (\"editing\" === args.name && this.isFormOrPopupEditMode()) {\r\n var {\r\n fullName: fullName\r\n } = args;\r\n if (0 === fullName.indexOf(EDITING_FORM_OPTION_NAME)) {\r\n this._handleFormOptionChange(args);\r\n args.handled = true\r\n } else if (0 === fullName.indexOf(EDITING_POPUP_OPTION_NAME)) {\r\n this._handlePopupOptionChange(args);\r\n args.handled = true\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n _handleFormOptionChange(args) {\r\n var _a;\r\n if (this.isFormEditMode()) {\r\n var editRowIndex = this._getVisibleEditRowIndex();\r\n if (editRowIndex >= 0) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [editRowIndex]\r\n })\r\n }\r\n } else if ((null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.option(\"visible\")) && 0 === args.fullName.indexOf(EDITING_FORM_OPTION_NAME)) {\r\n this._repaintEditPopup()\r\n }\r\n }\r\n _handlePopupOptionChange(args) {\r\n var editPopup = this._editPopup;\r\n if (editPopup) {\r\n var popupOptionName = args.fullName.slice(EDITING_POPUP_OPTION_NAME.length + 1);\r\n if (popupOptionName) {\r\n editPopup.option(popupOptionName, args.value)\r\n } else {\r\n editPopup.option(args.value)\r\n }\r\n }\r\n }\r\n renderFormEditorTemplate(detailCellOptions, item, formTemplateOptions, container, isReadOnly) {\r\n var that = this;\r\n var $container = $(container);\r\n var {\r\n column: column\r\n } = item;\r\n var editorType = getEditorType(item);\r\n var row = null === detailCellOptions || void 0 === detailCellOptions ? void 0 : detailCellOptions.row;\r\n var rowData = null === row || void 0 === row ? void 0 : row.data;\r\n var form = formTemplateOptions.component;\r\n var value = column.calculateCellValue(rowData);\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, rowData, null === row || void 0 === row ? void 0 : row.rowType);\r\n var {\r\n label: label,\r\n labelMark: labelMark,\r\n labelMode: labelMode\r\n } = formTemplateOptions.editorOptions || {};\r\n var cellOptions = extend({}, detailCellOptions, {\r\n data: rowData,\r\n cellElement: null,\r\n isOnForm: true,\r\n item: item,\r\n id: form.getItemID(item.name || item.dataField),\r\n column: extend({}, column, {\r\n editorType: editorType,\r\n editorOptions: extend({\r\n label: label,\r\n labelMark: labelMark,\r\n labelMode: labelMode\r\n }, column.editorOptions, item.editorOptions)\r\n }),\r\n columnIndex: column.index,\r\n setValue: !isReadOnly && column.allowEditing && function(value, text) {\r\n that.updateFieldValue(cellOptions, value, text)\r\n }\r\n });\r\n cellOptions.value = value;\r\n cellOptions.displayValue = displayValue;\r\n cellOptions.text = !column.command ? gridCoreUtils.formatValue(displayValue, column) : \"\";\r\n var template = this._getFormEditItemTemplate.bind(this)(cellOptions, column);\r\n this._rowsView.renderTemplate($container, template, cellOptions, !!isElementInDom($container)).done(() => {\r\n this._rowsView._updateCell($container, cellOptions)\r\n });\r\n return cellOptions\r\n }\r\n getFormEditorTemplate(cellOptions, item) {\r\n var column = this.component.columnOption(item.name || item.dataField);\r\n return (options, container) => {\r\n var $container = $(container);\r\n var {\r\n row: row\r\n } = cellOptions;\r\n if (null === row || void 0 === row ? void 0 : row.watch) {\r\n var dispose = row.watch(() => column.selector(row.data), () => {\r\n var $editorElement = $container.find(\".dx-widget\").first();\r\n var validator = $editorElement.data(\"dxValidator\");\r\n var validatorOptions = null === validator || void 0 === validator ? void 0 : validator.option();\r\n $container.contents().remove();\r\n cellOptions = this.renderFormEditorTemplate.bind(this)(cellOptions, item, options, $container);\r\n $editorElement = $container.find(\".dx-widget\").first();\r\n validator = $editorElement.data(\"dxValidator\");\r\n if (validatorOptions && !validator) {\r\n $editorElement.dxValidator({\r\n validationRules: validatorOptions.validationRules,\r\n validationGroup: validatorOptions.validationGroup,\r\n dataGetter: validatorOptions.dataGetter\r\n })\r\n }\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n }\r\n cellOptions = this.renderFormEditorTemplate.bind(this)(cellOptions, item, options, $container)\r\n }\r\n }\r\n getEditFormOptions(detailOptions) {\r\n var _b;\r\n var editFormOptions = null === (_b = this._getValidationGroupsInForm) || void 0 === _b ? void 0 : _b.call(this, detailOptions);\r\n var userCustomizeItem = this.option(\"editing.form.customizeItem\");\r\n var editFormItemClass = this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS);\r\n var items = this.option(\"editing.form.items\");\r\n var isCustomEditorType = {};\r\n if (!items) {\r\n var columns = this._columnsController.getColumns();\r\n items = [];\r\n each(columns, (_, column) => {\r\n if (!column.isBand && !column.type) {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField\r\n })\r\n }\r\n })\r\n } else {\r\n forEachFormItems(items, item => {\r\n var itemId = (null === item || void 0 === item ? void 0 : item.name) || (null === item || void 0 === item ? void 0 : item.dataField);\r\n if (itemId) {\r\n isCustomEditorType[itemId] = !!item.editorType\r\n }\r\n })\r\n }\r\n return extend({}, editFormOptions, {\r\n items: items,\r\n formID: \"dx-\".concat(new Guid),\r\n customizeItem: item => {\r\n var column;\r\n var itemId = item.name || item.dataField;\r\n if (item.column || itemId) {\r\n column = item.column || this._columnsController.columnOption(item.name ? \"name:\".concat(item.name) : \"dataField:\".concat(item.dataField))\r\n }\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n if (\"boolean\" === column.dataType && void 0 === item.label.visible) {\r\n var labelMode = this.option(\"editing.form.labelMode\");\r\n if (\"floating\" === labelMode || \"static\" === labelMode) {\r\n item.label.visible = true\r\n }\r\n }\r\n item.template = item.template || this.getFormEditorTemplate(detailOptions, item);\r\n item.column = column;\r\n item.isCustomEditorType = isCustomEditorType[itemId];\r\n if (column.formItem) {\r\n extend(item, column.formItem)\r\n }\r\n if (void 0 === item.isRequired && column.validationRules) {\r\n item.isRequired = column.validationRules.some(rule => \"required\" === rule.type);\r\n item.validationRules = []\r\n }\r\n var itemVisible = isDefined(item.visible) ? item.visible : true;\r\n if (!this._firstFormItem && itemVisible) {\r\n this._firstFormItem = item\r\n }\r\n }\r\n null === userCustomizeItem || void 0 === userCustomizeItem ? void 0 : userCustomizeItem.call(this, item);\r\n item.cssClass = isString(item.cssClass) ? \"\".concat(item.cssClass, \" \").concat(editFormItemClass) : editFormItemClass\r\n }\r\n })\r\n }\r\n getEditFormTemplate() {\r\n return ($container, detailOptions, options) => {\r\n var editFormOptions = this.option(EDITING_FORM_OPTION_NAME);\r\n var baseEditFormOptions = this.getEditFormOptions(detailOptions);\r\n var $formContainer = $(\"<div>\").appendTo($container);\r\n var isPopupForm = null === options || void 0 === options ? void 0 : options.isPopupForm;\r\n this._firstFormItem = void 0;\r\n if (isPopupForm) {\r\n $formContainer.addClass(this.addWidgetPrefix(EDIT_POPUP_FORM_CLASS))\r\n }\r\n this._editForm = this._createComponent($formContainer, Form, extend({}, editFormOptions, baseEditFormOptions));\r\n if (!isPopupForm) {\r\n var $buttonsContainer = $(\"<div>\").addClass(this.addWidgetPrefix(FORM_BUTTONS_CONTAINER_CLASS)).appendTo($container);\r\n this._createComponent($(\"<div>\").appendTo($buttonsContainer), Button, this._getSaveButtonConfig());\r\n this._createComponent($(\"<div>\").appendTo($buttonsContainer), Button, this._getCancelButtonConfig())\r\n }\r\n this._editForm.on(\"contentReady\", () => {\r\n var _a;\r\n this._rowsView.renderDelayedTemplates();\r\n null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.repaint()\r\n })\r\n }\r\n }\r\n getEditForm() {\r\n return this._editForm\r\n }\r\n _endUpdateCore() {\r\n var _a;\r\n null === (_a = this._updateEditFormDeferred) || void 0 === _a ? void 0 : _a.resolve()\r\n }\r\n _beforeEndSaving(changes) {\r\n var _a;\r\n super._beforeEndSaving(changes);\r\n if (this.isPopupEditMode()) {\r\n null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.hide()\r\n }\r\n }\r\n _processDataItemCore(item, change, key, columns, generateDataValues) {\r\n var {\r\n type: type\r\n } = change;\r\n if (this.isPopupEditMode() && type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n item.visible = false\r\n }\r\n super._processDataItemCore(item, change, key, columns, generateDataValues)\r\n }\r\n _editRowFromOptionChangedCore(rowIndices, rowIndex) {\r\n var isPopupEditMode = this.isPopupEditMode();\r\n super._editRowFromOptionChangedCore(rowIndices, rowIndex, isPopupEditMode);\r\n if (isPopupEditMode) {\r\n this._showEditPopup(rowIndex)\r\n }\r\n }\r\n};\r\nvar data = Base => class extends Base {\r\n _updateEditItem(item) {\r\n if (this._editingController.isFormEditMode()) {\r\n item.rowType = \"detail\"\r\n }\r\n }\r\n _getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n if (false === isLiveUpdate && newItem.isEditing && this._editingController.isFormEditMode()) {\r\n return\r\n }\r\n return super._getChangedColumnIndices.apply(this, arguments)\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n _renderCellContent($cell, options) {\r\n if (\"data\" === options.rowType && this._editingController.isPopupEditMode() && false === options.row.visible) {\r\n return\r\n }\r\n super._renderCellContent.apply(this, arguments)\r\n }\r\n getCellElements(rowIndex) {\r\n var $cellElements = super.getCellElements(rowIndex);\r\n var editingController = this._editingController;\r\n var editForm = editingController.getEditForm();\r\n var editFormRowIndex = editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && $cellElements && editForm) {\r\n return editForm.$element().find(\".\".concat(this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS), \", .\").concat(BUTTON_CLASS))\r\n }\r\n return $cellElements\r\n }\r\n _getVisibleColumnIndex($cells, rowIndex, columnIdentifier) {\r\n var editFormRowIndex = this._editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && isString(columnIdentifier)) {\r\n var column = this._columnsController.columnOption(columnIdentifier);\r\n return this._getEditFormEditorVisibleIndex($cells, column)\r\n }\r\n return super._getVisibleColumnIndex.apply(this, arguments)\r\n }\r\n _getEditFormEditorVisibleIndex($cells, column) {\r\n var visibleIndex = -1;\r\n each($cells, (index, cellElement) => {\r\n var item = $(cellElement).find(\".dx-field-item-content\").data(\"dx-form-item\");\r\n if ((null === item || void 0 === item ? void 0 : item.column) && column && item.column.index === column.index) {\r\n visibleIndex = index;\r\n return false\r\n }\r\n });\r\n return visibleIndex\r\n }\r\n _isFormItem(parameters) {\r\n var isDetailRow = \"detail\" === parameters.rowType || \"detailAdaptive\" === parameters.rowType;\r\n var isPopupEditing = \"data\" === parameters.rowType && this._editingController.isPopupEditMode();\r\n return (isDetailRow || isPopupEditing) && parameters.item\r\n }\r\n _updateCell($cell, parameters) {\r\n if (this._isFormItem(parameters)) {\r\n this._formItemPrepared(parameters, $cell)\r\n } else {\r\n super._updateCell($cell, parameters)\r\n }\r\n }\r\n _updateContent() {\r\n var editingController = this._editingController;\r\n var oldEditForm = editingController.getEditForm();\r\n var validationGroup = null === oldEditForm || void 0 === oldEditForm ? void 0 : oldEditForm.option(\"validationGroup\");\r\n var deferred = super._updateContent.apply(this, arguments);\r\n return deferred.done(() => {\r\n var newEditForm = editingController.getEditForm();\r\n if (validationGroup && newEditForm && newEditForm !== oldEditForm) {\r\n newEditForm.option(\"validationGroup\", validationGroup)\r\n }\r\n })\r\n }\r\n};\r\nexport var editingFormBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: editingControllerExtender,\r\n data: data\r\n },\r\n views: {\r\n rowsView: rowsView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/editing_form_based.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editingFormBasedModule\r\n} from \"../../../grids/grid_core/editing/m_editing_form_based\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"editingFormBased\", editingFormBasedModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing_cell_based.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n deferRender\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isElementInDom\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../../../data/array_utils\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../../events/hold\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../../events/utils/index\";\r\nimport {\r\n ADD_ROW_BUTTON_CLASS,\r\n CELL_MODIFIED_CLASS,\r\n DATA_EDIT_DATA_REMOVE_TYPE,\r\n DATA_ROW_CLASS,\r\n DROPDOWN_EDITOR_OVERLAY_CLASS,\r\n EDIT_MODE_BATCH,\r\n EDIT_MODE_CELL,\r\n EDITING_EDITCOLUMNNAME_OPTION_NAME,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITOR_CELL_CLASS,\r\n FOCUS_OVERLAY_CLASS,\r\n ROW_CLASS,\r\n ROW_REMOVED,\r\n TARGET_COMPONENT_NAME\r\n} from \"./const\";\r\nimport {\r\n isEditable\r\n} from \"./m_editing_utils\";\r\nvar editingControllerExtender = Base => class extends Base {\r\n init() {\r\n var needCreateHandlers = !this._saveEditorHandler;\r\n super.init();\r\n if (needCreateHandlers) {\r\n var $pointerDownTarget;\r\n var isResizing;\r\n this._pointerUpEditorHandler = () => {\r\n var _a;\r\n isResizing = null === (_a = this._columnsResizerController) || void 0 === _a ? void 0 : _a.isResizing()\r\n };\r\n this._pointerDownEditorHandler = e => $pointerDownTarget = $(e.target);\r\n this._saveEditorHandler = this.createAction((function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n var $target = $(event.target);\r\n var targetComponent = event[TARGET_COMPONENT_NAME];\r\n var {\r\n component: component\r\n } = this;\r\n if (isEditable($pointerDownTarget) && !$pointerDownTarget.is($target)) {\r\n return\r\n }\r\n\r\n function checkEditorPopup($element) {\r\n if (!$element) {\r\n return false\r\n }\r\n var $dropDownEditorOverlay = $element.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS));\r\n var $componentElement = component.$element();\r\n return $dropDownEditorOverlay.length > 0 && 0 === $componentElement.closest($dropDownEditorOverlay).length\r\n }\r\n if (this.isCellOrBatchEditMode() && !this._editCellInProgress) {\r\n var isEditorPopup = checkEditorPopup($target) || checkEditorPopup(null === targetComponent || void 0 === targetComponent ? void 0 : targetComponent.$element());\r\n var isAnotherComponent = targetComponent && !targetComponent._disposed && targetComponent !== this.component;\r\n var isAddRowButton = !!$target.closest(\".\".concat(this.addWidgetPrefix(ADD_ROW_BUTTON_CLASS))).length;\r\n var isFocusOverlay = $target.hasClass(this.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n var isCellEditMode = this.isCellEditMode();\r\n if (!isResizing && !isEditorPopup && !isFocusOverlay && !(isAddRowButton && isCellEditMode && this.isEditing()) && (isElementInDom($target) || isAnotherComponent)) {\r\n this._closeEditItem.bind(this)($target)\r\n }\r\n }\r\n }));\r\n eventsEngine.on(domAdapter.getDocument(), pointerEvents.up, this._pointerUpEditorHandler);\r\n eventsEngine.on(domAdapter.getDocument(), pointerEvents.down, this._pointerDownEditorHandler);\r\n eventsEngine.on(domAdapter.getDocument(), clickEventName, this._saveEditorHandler)\r\n }\r\n }\r\n isCellEditMode() {\r\n return this.option(\"editing.mode\") === EDIT_MODE_CELL\r\n }\r\n isBatchEditMode() {\r\n return this.option(\"editing.mode\") === EDIT_MODE_BATCH\r\n }\r\n isCellOrBatchEditMode() {\r\n return this.isCellEditMode() || this.isBatchEditMode()\r\n }\r\n _needToCloseEditableCell($targetElement) {\r\n var _a;\r\n var $element = this.component.$element();\r\n var result = this.isEditing();\r\n var isCurrentComponentElement = !$element || !!$targetElement.closest($element).length;\r\n if (isCurrentComponentElement) {\r\n var isDataRow = $targetElement.closest(\".\".concat(DATA_ROW_CLASS)).length;\r\n if (isDataRow) {\r\n var $targetCell = $targetElement.closest(\".\".concat(ROW_CLASS, \"> td\"));\r\n var rowIndex = this._rowsView.getRowIndex($targetCell.parent());\r\n var cellElements = this._rowsView.getCellElements(rowIndex);\r\n if (null === cellElements || void 0 === cellElements ? void 0 : cellElements.length) {\r\n var columnIndex = cellElements.index($targetCell);\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var allowEditing = null === (_a = visibleColumns[columnIndex]) || void 0 === _a ? void 0 : _a.allowEditing;\r\n var isEditingCell = this.isEditCell(rowIndex, columnIndex);\r\n result = result && !allowEditing && !isEditingCell\r\n }\r\n }\r\n }\r\n return result || super._needToCloseEditableCell($targetElement)\r\n }\r\n _closeEditItem($targetElement) {\r\n if (this._needToCloseEditableCell($targetElement)) {\r\n this.closeEditCell()\r\n }\r\n }\r\n _focusEditorIfNeed() {\r\n var _a;\r\n if (this._needFocusEditor && this.isCellOrBatchEditMode()) {\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n var $cell = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n this._refocusEditCell = false;\r\n clearTimeout(this._inputFocusTimeoutID);\r\n if ($cell && !$cell.find(\":focus\").length) {\r\n this._focusEditingCell(() => {\r\n this._editCellInProgress = false\r\n }, $cell, true)\r\n } else {\r\n this._editCellInProgress = false\r\n }\r\n this._needFocusEditor = false\r\n } else {\r\n super._focusEditorIfNeed()\r\n }\r\n }\r\n isEditing() {\r\n if (this.isCellOrBatchEditMode()) {\r\n var isEditRowKeyDefined = isDefined(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n var isEditColumnNameDefined = isDefined(this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME));\r\n return isEditRowKeyDefined && isEditColumnNameDefined\r\n }\r\n return super.isEditing()\r\n }\r\n _handleEditColumnNameChange(args) {\r\n var oldRowIndex = this._getVisibleEditRowIndex(args.previousValue);\r\n if (this.isCellOrBatchEditMode() && -1 !== oldRowIndex && isDefined(args.value) && args.value !== args.previousValue) {\r\n var columnIndex = this._columnsController.getVisibleColumnIndex(args.value);\r\n var oldColumnIndex = this._columnsController.getVisibleColumnIndex(args.previousValue);\r\n this._editCellFromOptionChanged(columnIndex, oldColumnIndex, oldRowIndex)\r\n }\r\n }\r\n _addRow(parentKey) {\r\n if (this.isCellEditMode() && this.hasChanges()) {\r\n var deferred = new Deferred;\r\n this.saveEditData().done(() => {\r\n if (!this.hasChanges()) {\r\n this.addRow(parentKey).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n });\r\n return deferred.promise()\r\n }\r\n return super._addRow(parentKey)\r\n }\r\n editCell(rowIndex, columnIndex) {\r\n return this._editCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n }\r\n _editCell(options) {\r\n var d = new Deferred;\r\n var coreResult;\r\n this.executeOperation(d, () => {\r\n coreResult = this._editCellCore(options);\r\n when(coreResult).done(d.resolve).fail(d.reject)\r\n });\r\n return void 0 !== coreResult ? coreResult : d.promise()\r\n }\r\n _editCellCore(options) {\r\n var dataController = this._dataController;\r\n var isEditByOptionChanged = isDefined(options.oldColumnIndex) || isDefined(options.oldRowIndex);\r\n var {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n column: column,\r\n item: item\r\n } = this._getNormalizedEditCellOptions(options);\r\n var params = {\r\n data: null === item || void 0 === item ? void 0 : item.data,\r\n cancel: false,\r\n column: column\r\n };\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (column && (\"data\" === item.rowType || \"detailAdaptive\" === item.rowType) && !item.removed && this.isCellOrBatchEditMode()) {\r\n if (!isEditByOptionChanged && this.isEditCell(rowIndex, columnIndex)) {\r\n return true\r\n }\r\n var editRowIndex = rowIndex + dataController.getRowIndexOffset();\r\n return when(this._beforeEditCell(rowIndex, columnIndex, item)).done(cancel => {\r\n if (cancel) {\r\n return\r\n }\r\n if (!this._prepareEditCell(params, item, columnIndex, editRowIndex)) {\r\n this._processCanceledEditingCell()\r\n }\r\n })\r\n }\r\n return false\r\n }\r\n _beforeEditCell(rowIndex, columnIndex, item) {\r\n if (this.isCellEditMode() && !item.isNewRow && this.hasChanges()) {\r\n var isSaving = new Deferred;\r\n this.saveEditData().always(() => {\r\n isSaving.resolve(this.hasChanges())\r\n });\r\n this.addDeferred(isSaving);\r\n return isSaving\r\n }\r\n return false\r\n }\r\n publicMethods() {\r\n var publicMethods = super.publicMethods();\r\n return publicMethods.concat([\"editCell\", \"closeEditCell\"])\r\n }\r\n _getNormalizedEditCellOptions(_ref) {\r\n var {\r\n oldColumnIndex: oldColumnIndex,\r\n oldRowIndex: oldRowIndex,\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n } = _ref;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldColumn;\r\n if (isDefined(oldColumnIndex)) {\r\n oldColumn = visibleColumns[oldColumnIndex]\r\n } else {\r\n oldColumn = this._getEditColumn()\r\n }\r\n if (!isDefined(oldRowIndex)) {\r\n oldRowIndex = this._getVisibleEditRowIndex()\r\n }\r\n if (isString(columnIndex)) {\r\n columnIndex = columnsController.columnOption(columnIndex, \"index\");\r\n columnIndex = columnsController.getVisibleIndex(columnIndex)\r\n }\r\n var column = visibleColumns[columnIndex];\r\n return {\r\n oldColumn: oldColumn,\r\n columnIndex: columnIndex,\r\n oldRowIndex: oldRowIndex,\r\n rowIndex: rowIndex,\r\n column: column,\r\n item: item\r\n }\r\n }\r\n _prepareEditCell(params, item, editColumnIndex, editRowIndex) {\r\n var _a;\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return false\r\n }\r\n this._pageIndex = this._dataController.pageIndex();\r\n this._setEditRowKey(item.key);\r\n this._setEditColumnNameByIndex(editColumnIndex);\r\n if (!params.column.showEditorAlways) {\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: null !== (_a = item.oldData) && void 0 !== _a ? _a : item.data\r\n })\r\n }\r\n return true\r\n }\r\n closeEditCell(isError, withoutSaveEditData) {\r\n var result = when();\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n if (this.isCellOrBatchEditMode()) {\r\n var deferred = new Deferred;\r\n result = new Deferred;\r\n this.executeOperation(deferred, () => {\r\n this._closeEditCellCore(isError, oldEditRowIndex, withoutSaveEditData).always(result.resolve)\r\n })\r\n }\r\n return result.promise()\r\n }\r\n _closeEditCellCore(isError, oldEditRowIndex, withoutSaveEditData) {\r\n var dataController = this._dataController;\r\n var deferred = new Deferred;\r\n var promise = deferred.promise();\r\n if (this.isCellEditMode() && this.hasChanges()) {\r\n if (!withoutSaveEditData) {\r\n this.saveEditData().done(error => {\r\n if (!this.hasChanges()) {\r\n this.closeEditCell(!!error).always(deferred.resolve);\r\n return\r\n }\r\n deferred.resolve()\r\n });\r\n return promise\r\n }\r\n } else {\r\n this._resetEditRowKey();\r\n this._resetEditColumnName();\r\n if (oldEditRowIndex >= 0) {\r\n var rowIndices = [oldEditRowIndex];\r\n this._beforeCloseEditCellInBatchMode(rowIndices);\r\n if (!isError) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices\r\n })\r\n }\r\n }\r\n }\r\n deferred.resolve();\r\n return promise\r\n }\r\n _resetModifiedClassCells(changes) {\r\n if (this.isBatchEditMode()) {\r\n var columnsCount = this._columnsController.getVisibleColumns().length;\r\n changes.forEach(_ref2 => {\r\n var {\r\n key: key\r\n } = _ref2;\r\n var rowIndex = this._dataController.getRowIndexByKey(key);\r\n for (var columnIndex = 0; columnIndex < columnsCount; columnIndex++) {\r\n var cellElement = this._rowsView._getCellElement(rowIndex, columnIndex);\r\n null === cellElement || void 0 === cellElement ? void 0 : cellElement.removeClass(CELL_MODIFIED_CLASS)\r\n }\r\n })\r\n }\r\n }\r\n _prepareChange(options, value, text) {\r\n var $cellElement = $(options.cellElement);\r\n if (this.isBatchEditMode() && void 0 !== options.key) {\r\n this._applyModified($cellElement, options)\r\n }\r\n return super._prepareChange(options, value, text)\r\n }\r\n _cancelSaving(result) {\r\n var dataController = this._dataController;\r\n if (this.isCellOrBatchEditMode()) {\r\n if (this.isBatchEditMode()) {\r\n this._resetEditIndices()\r\n }\r\n dataController.updateItems()\r\n }\r\n super._cancelSaving(result)\r\n }\r\n optionChanged(args) {\r\n var {\r\n fullName: fullName\r\n } = args;\r\n if (\"editing\" === args.name && fullName === EDITING_EDITCOLUMNNAME_OPTION_NAME) {\r\n this._handleEditColumnNameChange(args);\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n _editCellFromOptionChanged(columnIndex, oldColumnIndex, oldRowIndex) {\r\n var columns = this._columnsController.getVisibleColumns();\r\n if (columnIndex > -1) {\r\n deferRender(() => {\r\n this._repaintEditCell(columns[columnIndex], columns[oldColumnIndex], oldRowIndex)\r\n })\r\n }\r\n }\r\n _handleEditRowKeyChange(args) {\r\n var _a;\r\n if (this.isCellOrBatchEditMode()) {\r\n var columnIndex = this._getVisibleEditColumnIndex();\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n if (isDefined(args.value) && args.value !== args.previousValue) {\r\n null === (_a = this._editCellFromOptionChanged) || void 0 === _a ? void 0 : _a.call(this, columnIndex, columnIndex, oldRowIndex)\r\n }\r\n } else {\r\n super._handleEditRowKeyChange(args)\r\n }\r\n }\r\n deleteRow(rowIndex) {\r\n if (this.isCellEditMode() && this.isEditing()) {\r\n var {\r\n isNewRow: isNewRow\r\n } = this._dataController.items()[rowIndex];\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n this.closeEditCell(null, isNewRow).always(() => {\r\n rowIndex = this._dataController.getRowIndexByKey(rowKey);\r\n this._checkAndDeleteRow(rowIndex)\r\n })\r\n } else {\r\n super.deleteRow(rowIndex)\r\n }\r\n }\r\n _checkAndDeleteRow(rowIndex) {\r\n if (this.isBatchEditMode()) {\r\n this._deleteRowCore(rowIndex)\r\n } else {\r\n super._checkAndDeleteRow(rowIndex)\r\n }\r\n }\r\n _refreshCore(params) {\r\n var {\r\n isPageChanged: isPageChanged\r\n } = null !== params && void 0 !== params ? params : {};\r\n var needResetIndexes = this.isBatchEditMode() || isPageChanged && \"virtual\" !== this.option(\"scrolling.mode\");\r\n if (this.isCellOrBatchEditMode()) {\r\n if (needResetIndexes) {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n } else {\r\n super._refreshCore(params)\r\n }\r\n }\r\n _allowRowAdding(params) {\r\n if (this.isBatchEditMode()) {\r\n return true\r\n }\r\n return super._allowRowAdding(params)\r\n }\r\n _afterDeleteRow(rowIndex, oldEditRowIndex) {\r\n var dataController = this._dataController;\r\n if (this.isBatchEditMode()) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n });\r\n return (new Deferred).resolve()\r\n }\r\n return super._afterDeleteRow(rowIndex, oldEditRowIndex)\r\n }\r\n _updateEditRow(row, forceUpdateRow, isCustomSetCellValue) {\r\n if (this.isCellOrBatchEditMode()) {\r\n this._updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n super._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n }\r\n }\r\n _isDefaultButtonVisible(button, options) {\r\n if (this.isCellOrBatchEditMode()) {\r\n var isBatchMode = this.isBatchEditMode();\r\n switch (button.name) {\r\n case \"save\":\r\n case \"cancel\":\r\n case \"edit\":\r\n return false;\r\n case \"delete\":\r\n return super._isDefaultButtonVisible(button, options) && (!isBatchMode || !options.row.removed);\r\n case \"undelete\":\r\n return isBatchMode && this.allowDeleting(options) && options.row.removed;\r\n default:\r\n return super._isDefaultButtonVisible(button, options)\r\n }\r\n }\r\n return super._isDefaultButtonVisible(button, options)\r\n }\r\n _isRowDeleteAllowed() {\r\n var callBaseResult = super._isRowDeleteAllowed();\r\n return callBaseResult || this.isBatchEditMode()\r\n }\r\n _beforeEndSaving(changes) {\r\n var _a;\r\n if (this.isCellEditMode()) {\r\n if (\"update\" !== (null === (_a = changes[0]) || void 0 === _a ? void 0 : _a.type)) {\r\n super._beforeEndSaving(changes)\r\n }\r\n } else {\r\n if (this.isBatchEditMode()) {\r\n this._resetModifiedClassCells(changes)\r\n }\r\n super._beforeEndSaving(changes)\r\n }\r\n }\r\n prepareEditButtons(headerPanel) {\r\n var _a;\r\n var editingOptions = null !== (_a = this.option(\"editing\")) && void 0 !== _a ? _a : {};\r\n var buttonItems = super.prepareEditButtons(headerPanel);\r\n var needEditingButtons = editingOptions.allowUpdating || editingOptions.allowAdding || editingOptions.allowDeleting;\r\n if (needEditingButtons && this.isBatchEditMode()) {\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"save\", \"saveEditData\", 21));\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"revert\", \"cancelEditData\", 22))\r\n }\r\n return buttonItems\r\n }\r\n _saveEditDataInner() {\r\n var editRow = this._dataController.getVisibleRows()[this.getEditRowIndex()];\r\n var editColumn = this._getEditColumn();\r\n var showEditorAlways = null === editColumn || void 0 === editColumn ? void 0 : editColumn.showEditorAlways;\r\n var isUpdateInCellMode = this.isCellEditMode() && !(null === editRow || void 0 === editRow ? void 0 : editRow.isNewRow);\r\n var deferred;\r\n if (isUpdateInCellMode && showEditorAlways) {\r\n deferred = new Deferred;\r\n this.addDeferred(deferred)\r\n }\r\n return super._saveEditDataInner().always(null === deferred || void 0 === deferred ? void 0 : deferred.resolve)\r\n }\r\n _applyChange(options, params, forceUpdateRow) {\r\n var isUpdateInCellMode = this.isCellEditMode() && options.row && !options.row.isNewRow;\r\n var {\r\n showEditorAlways: showEditorAlways\r\n } = options.column;\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var focusPreviousEditingCell = showEditorAlways && !forceUpdateRow && isUpdateInCellMode && this.hasEditData() && !this.isEditCell(options.rowIndex, options.columnIndex);\r\n if (focusPreviousEditingCell) {\r\n this._focusEditingCell();\r\n this._updateEditRow(options.row, true, isCustomSetCellValue);\r\n return\r\n }\r\n return super._applyChange(options, params, forceUpdateRow)\r\n }\r\n _applyChangeCore(options, forceUpdateRow) {\r\n var {\r\n showEditorAlways: showEditorAlways\r\n } = options.column;\r\n var isUpdateInCellMode = this.isCellEditMode() && options.row && !options.row.isNewRow;\r\n if (showEditorAlways && !forceUpdateRow) {\r\n if (isUpdateInCellMode) {\r\n this._setEditRowKey(options.row.key, true);\r\n this._setEditColumnNameByIndex(options.columnIndex, true);\r\n return this.saveEditData()\r\n }\r\n if (this.isBatchEditMode()) {\r\n forceUpdateRow = this._needUpdateRow(options.column);\r\n return super._applyChangeCore(options, forceUpdateRow)\r\n }\r\n }\r\n return super._applyChangeCore(options, forceUpdateRow)\r\n }\r\n _processDataItemCore(item, change, key, columns, generateDataValues) {\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n if (this.isBatchEditMode() && type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n item.data = createObjectWithChanges(item.data, data)\r\n }\r\n super._processDataItemCore(item, change, key, columns, generateDataValues)\r\n }\r\n _processRemoveCore(changes, editIndex, processIfBatch) {\r\n if (this.isBatchEditMode() && !processIfBatch) {\r\n return\r\n }\r\n return super._processRemoveCore(changes, editIndex, processIfBatch)\r\n }\r\n _processRemoveIfError(changes, editIndex) {\r\n if (this.isBatchEditMode()) {\r\n return\r\n }\r\n return super._processRemoveIfError(changes, editIndex)\r\n }\r\n _beforeFocusElementInRow(rowIndex) {\r\n super._beforeFocusElementInRow(rowIndex);\r\n var editRowIndex = rowIndex >= 0 ? rowIndex : 0;\r\n var columnIndex = this.getFirstEditableColumnIndex();\r\n columnIndex >= 0 && this.editCell(editRowIndex, columnIndex)\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n _createTable() {\r\n var $table = super._createTable.apply(this, arguments);\r\n var editingController = this._editingController;\r\n if (editingController.isCellOrBatchEditMode() && this.option(\"editing.allowUpdating\")) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \"td:not(.\".concat(EDITOR_CELL_CLASS, \")\"), this.createAction(() => {\r\n if (editingController.isEditing()) {\r\n editingController.closeEditCell()\r\n }\r\n }))\r\n }\r\n return $table\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isRowRemoved = !!row.removed;\r\n if (editingController.isBatchEditMode()) {\r\n isRowRemoved && $row.addClass(ROW_REMOVED)\r\n }\r\n }\r\n return $row\r\n }\r\n};\r\nvar headerPanel = Base => class extends Base {\r\n isVisible() {\r\n var editingOptions = this._editingController.option(\"editing\");\r\n return super.isVisible() || editingOptions && (editingOptions.allowUpdating || editingOptions.allowDeleting) && editingOptions.mode === EDIT_MODE_BATCH\r\n }\r\n};\r\nexport var editingCellBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: editingControllerExtender\r\n },\r\n views: {\r\n rowsView: rowsView,\r\n headerPanel: headerPanel\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/editing_cell_based.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editingCellBasedModule\r\n} from \"../../../grids/grid_core/editing/m_editing_cell_based\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"editingCellBased\", editingCellBasedModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/validating/m_validating.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferUpdate,\r\n equalByValue,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth,\r\n setHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n encodeHtml\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../../../data/array_utils\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Button from \"../../../../ui/button\";\r\nimport LoadIndicator from \"../../../../ui/load_indicator\";\r\nimport Overlay from \"../../../../ui/overlay/ui.overlay\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../../../ui/themes\";\r\nimport ValidationEngine from \"../../../../ui/validation_engine\";\r\nimport Validator from \"../../../../ui/validator\";\r\nimport {\r\n focused\r\n} from \"../../../../ui/widget/selectors\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n EDITORS_INPUT_SELECTOR\r\n} from \"../editing/const\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar INVALIDATE_CLASS = \"invalid\";\r\nvar REVERT_TOOLTIP_CLASS = \"revert-tooltip\";\r\nvar INVALID_MESSAGE_CLASS = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_ID = \"dxInvalidMessage\";\r\nvar WIDGET_INVALID_MESSAGE_CLASS = \"invalid-message\";\r\nvar INVALID_MESSAGE_ALWAYS_CLASS = \"dx-invalid-message-always\";\r\nvar REVERT_BUTTON_CLASS = \"dx-revert-button\";\r\nvar REVERT_BUTTON_ID = \"dxRevertButton\";\r\nvar VALIDATOR_CLASS = \"validator\";\r\nvar PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar PADDING_BETWEEN_TOOLTIPS = 2;\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_CELL = \"cell\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar FORM_BASED_MODES = [EDIT_MODE_POPUP, EDIT_MODE_FORM];\r\nvar COMMAND_TRANSPARENT = \"transparent\";\r\nvar VALIDATION_STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nvar EDIT_DATA_INSERT_TYPE = \"insert\";\r\nvar EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nvar VALIDATION_CANCELLED = \"cancel\";\r\nvar validationResultIsValid = function(result) {\r\n return isDefined(result) && result !== VALIDATION_CANCELLED\r\n};\r\nvar cellValueShouldBeValidated = function(value, rowOptions) {\r\n return void 0 !== value || void 0 === value && rowOptions && !rowOptions.isNewRow\r\n};\r\nexport class ValidatingController extends modules.Controller {\r\n constructor() {\r\n super(...arguments);\r\n this._isValidationInProgress = false;\r\n this._disableApplyValidationResults = false\r\n }\r\n init() {\r\n this._editingController = this.getController(\"editing\");\r\n this._editorFactoryController = this.getController(\"editorFactory\");\r\n this._columnsController = this.getController(\"columns\");\r\n this.createAction(\"onRowValidating\");\r\n if (!this._validationState) {\r\n this.initValidationState()\r\n }\r\n }\r\n initValidationState() {\r\n this._validationState = [];\r\n this._validationStateCache = {}\r\n }\r\n _rowIsValidated(change) {\r\n var validationData = this._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n return !!validationData && !!validationData.validated\r\n }\r\n _getValidationData(key, create) {\r\n var keyHash = getKeyHash(key);\r\n var isObjectKeyHash = isObject(keyHash);\r\n var validationData;\r\n if (isObjectKeyHash) {\r\n validationData = this._validationState.filter(data => equalByValue(data.key, key))[0]\r\n } else {\r\n validationData = this._validationStateCache[keyHash]\r\n }\r\n if (!validationData && create) {\r\n validationData = {\r\n key: key,\r\n isValid: true\r\n };\r\n this._validationState.push(validationData);\r\n if (!isObjectKeyHash) {\r\n this._validationStateCache[keyHash] = validationData\r\n }\r\n }\r\n return validationData\r\n }\r\n _getBrokenRules(validationData, validationResults) {\r\n var brokenRules;\r\n if (validationResults) {\r\n brokenRules = validationResults.brokenRules || validationResults.brokenRule && [validationResults.brokenRule]\r\n } else {\r\n brokenRules = validationData.brokenRules || []\r\n }\r\n return brokenRules\r\n }\r\n _rowValidating(validationData, validationResults) {\r\n var deferred = new Deferred;\r\n var change = this._editingController.getChangeByKey(null === validationData || void 0 === validationData ? void 0 : validationData.key);\r\n var brokenRules = this._getBrokenRules(validationData, validationResults);\r\n var isValid = validationResults ? validationResults.isValid : validationData.isValid;\r\n var parameters = {\r\n brokenRules: brokenRules,\r\n isValid: isValid,\r\n key: change.key,\r\n newData: change.data,\r\n oldData: this._editingController._getOldData(change.key),\r\n promise: null,\r\n errorText: this.getHiddenValidatorsErrorText(brokenRules)\r\n };\r\n this.executeAction(\"onRowValidating\", parameters);\r\n when(fromPromise(parameters.promise)).always(() => {\r\n validationData.isValid = parameters.isValid;\r\n validationData.errorText = parameters.errorText;\r\n deferred.resolve(parameters)\r\n });\r\n return deferred.promise()\r\n }\r\n getHiddenValidatorsErrorText(brokenRules) {\r\n var brokenRulesMessages = [];\r\n each(brokenRules, (_, brokenRule) => {\r\n var {\r\n column: column\r\n } = brokenRule;\r\n var isGroupExpandColumn = column && void 0 !== column.groupIndex && !column.showWhenGrouped;\r\n var isVisibleColumn = column && column.visible;\r\n if (!brokenRule.validator.$element().parent().length && (!isVisibleColumn || isGroupExpandColumn)) {\r\n brokenRulesMessages.push(brokenRule.message)\r\n }\r\n });\r\n return brokenRulesMessages.join(\", \")\r\n }\r\n validate(isFull) {\r\n var isValid = true;\r\n var editingController = this._editingController;\r\n var deferred = new Deferred;\r\n var completeList = [];\r\n var editMode = editingController.getEditMode();\r\n isFull = isFull || editMode === EDIT_MODE_ROW;\r\n if (this._isValidationInProgress) {\r\n return deferred.resolve(false).promise()\r\n }\r\n this._isValidationInProgress = true;\r\n if (isFull) {\r\n editingController.addDeferred(deferred);\r\n var changes = editingController.getChanges();\r\n each(changes, (index, _ref) => {\r\n var {\r\n type: type,\r\n key: key\r\n } = _ref;\r\n if (\"remove\" !== type) {\r\n var validationData = this._getValidationData(key, true);\r\n var validationResult = this.validateGroup(validationData);\r\n completeList.push(validationResult);\r\n validationResult.done(validationResult => {\r\n validationData.validated = true;\r\n isValid = isValid && validationResult.isValid\r\n })\r\n }\r\n })\r\n } else if (this._currentCellValidator) {\r\n var validationResult = this.validateGroup(this._currentCellValidator._findGroup());\r\n completeList.push(validationResult);\r\n validationResult.done(validationResult => {\r\n isValid = validationResult.isValid\r\n })\r\n }\r\n when(...completeList).done(() => {\r\n this._isValidationInProgress = false;\r\n deferred.resolve(isValid)\r\n });\r\n return deferred.promise()\r\n }\r\n validateGroup(validationData) {\r\n var result = new Deferred;\r\n var validateGroup = validationData && ValidationEngine.getGroupConfig(validationData);\r\n var validationResult;\r\n if (null === validateGroup || void 0 === validateGroup ? void 0 : validateGroup.validators.length) {\r\n this.resetRowValidationResults(validationData);\r\n validationResult = ValidationEngine.validateGroup(validationData)\r\n }\r\n when((null === validationResult || void 0 === validationResult ? void 0 : validationResult.complete) || validationResult).done(validationResult => {\r\n when(this._rowValidating(validationData, validationResult)).done(result.resolve)\r\n });\r\n return result.promise()\r\n }\r\n isRowDataModified(change) {\r\n return !isEmptyObject(change.data)\r\n }\r\n updateValidationState(change) {\r\n var editMode = this._editingController.getEditMode();\r\n var {\r\n key: key\r\n } = change;\r\n var validationData = this._getValidationData(key, true);\r\n if (!FORM_BASED_MODES.includes(editMode)) {\r\n if (change.type === EDIT_DATA_INSERT_TYPE && !this.isRowDataModified(change)) {\r\n validationData.isValid = true;\r\n return\r\n }\r\n this.setDisableApplyValidationResults(true);\r\n var groupConfig = ValidationEngine.getGroupConfig(validationData);\r\n if (groupConfig) {\r\n var validationResult = ValidationEngine.validateGroup(validationData);\r\n when(validationResult.complete || validationResult).done(validationResult => {\r\n validationData.isValid = validationResult.isValid;\r\n validationData.brokenRules = validationResult.brokenRules\r\n })\r\n } else if (!validationData.brokenRules || !validationData.brokenRules.length) {\r\n validationData.isValid = true\r\n }\r\n this.setDisableApplyValidationResults(false)\r\n } else {\r\n validationData.isValid = true\r\n }\r\n }\r\n setValidator(validator) {\r\n this._currentCellValidator = validator\r\n }\r\n renderCellPendingIndicator($container) {\r\n var $indicator = $container.find(\".\".concat(PENDING_INDICATOR_CLASS));\r\n if (!$indicator.length) {\r\n var $indicatorContainer = $container;\r\n $indicator = $(\"<div>\").appendTo($indicatorContainer).addClass(PENDING_INDICATOR_CLASS);\r\n this._createComponent($indicator, LoadIndicator);\r\n $container.addClass(VALIDATION_PENDING_CLASS)\r\n }\r\n }\r\n disposeCellPendingIndicator($container) {\r\n var $indicator = $container.find(\".\".concat(PENDING_INDICATOR_CLASS));\r\n if ($indicator.length) {\r\n var indicator = LoadIndicator.getInstance($indicator);\r\n if (indicator) {\r\n indicator.dispose();\r\n indicator.$element().remove()\r\n }\r\n $container.removeClass(VALIDATION_PENDING_CLASS)\r\n }\r\n }\r\n validationStatusChanged(result) {\r\n var {\r\n validator: validator\r\n } = result;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var {\r\n column: column\r\n } = validator.option(\"dataGetter\")();\r\n this.updateCellValidationResult({\r\n rowKey: validationGroup.key,\r\n columnIndex: column.index,\r\n validationResult: result\r\n })\r\n }\r\n validatorInitialized(arg) {\r\n arg.component.on(\"validating\", this.validationStatusChanged.bind(this));\r\n arg.component.on(\"validated\", this.validationStatusChanged.bind(this))\r\n }\r\n validatorDisposing(arg) {\r\n var validator = arg.component;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var {\r\n column: column\r\n } = validator.option(\"dataGetter\")();\r\n var result = this.getCellValidationResult({\r\n rowKey: null === validationGroup || void 0 === validationGroup ? void 0 : validationGroup.key,\r\n columnIndex: column.index\r\n });\r\n if (validationResultIsValid(result) && result.status === VALIDATION_STATUS.pending) {\r\n this.cancelCellValidationResult({\r\n change: validationGroup,\r\n columnIndex: column.index\r\n })\r\n }\r\n }\r\n applyValidationResult($container, result) {\r\n var {\r\n validator: validator\r\n } = result;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var {\r\n column: column\r\n } = validator.option(\"dataGetter\")();\r\n result.brokenRules && result.brokenRules.forEach(rule => {\r\n rule.columnIndex = column.index;\r\n rule.column = column\r\n });\r\n if ($container) {\r\n var validationResult = this.getCellValidationResult({\r\n rowKey: validationGroup.key,\r\n columnIndex: column.index\r\n });\r\n var requestIsDisabled = validationResultIsValid(validationResult) && validationResult.disabledPendingId === result.id;\r\n if (this._disableApplyValidationResults || requestIsDisabled) {\r\n return\r\n }\r\n if (result.status === VALIDATION_STATUS.invalid) {\r\n var $focus = $container.find(\":focus\");\r\n if (!focused($focus)) {\r\n eventsEngine.trigger($focus, \"focus\");\r\n eventsEngine.trigger($focus, pointerEvents.down)\r\n }\r\n }\r\n var editor = !column.editCellTemplate && this._editorFactoryController.getEditorInstance($container);\r\n if (result.status === VALIDATION_STATUS.pending) {\r\n if (editor) {\r\n editor.option(\"validationStatus\", VALIDATION_STATUS.pending)\r\n } else {\r\n this.renderCellPendingIndicator($container)\r\n }\r\n } else if (editor) {\r\n editor.option(\"validationStatus\", VALIDATION_STATUS.valid)\r\n } else {\r\n this.disposeCellPendingIndicator($container)\r\n }\r\n $container.toggleClass(this.addWidgetPrefix(INVALIDATE_CLASS), result.status === VALIDATION_STATUS.invalid)\r\n }\r\n }\r\n _syncInternalEditingData(parameters) {\r\n var _a;\r\n var editingController = this._editingController;\r\n var change = editingController.getChangeByKey(parameters.key);\r\n var oldDataFromState = editingController._getOldData(parameters.key);\r\n var oldData = null === (_a = parameters.row) || void 0 === _a ? void 0 : _a.oldData;\r\n if (change && oldData && !oldDataFromState) {\r\n editingController._addInternalData({\r\n key: parameters.key,\r\n oldData: oldData\r\n })\r\n }\r\n }\r\n createValidator(parameters, $container) {\r\n var _a, _b, _c;\r\n var editingController = this._editingController;\r\n var {\r\n column: column\r\n } = parameters;\r\n var {\r\n showEditorAlways: showEditorAlways\r\n } = column;\r\n if (isDefined(column.command) || !column.validationRules || !Array.isArray(column.validationRules) || !column.validationRules.length) {\r\n return\r\n }\r\n var editIndex = editingController.getIndexByKey(parameters.key, editingController.getChanges());\r\n var needCreateValidator = editIndex > -1;\r\n if (!needCreateValidator) {\r\n if (!showEditorAlways) {\r\n var visibleColumns = (null === (_a = this._columnsController) || void 0 === _a ? void 0 : _a.getVisibleColumns()) || [];\r\n showEditorAlways = visibleColumns.some(column => column.showEditorAlways)\r\n }\r\n var isEditRow = equalByValue(this.option(\"editing.editRowKey\"), parameters.key);\r\n var isCellOrBatchEditingAllowed = editingController.isCellOrBatchEditMode() && editingController.allowUpdating({\r\n row: parameters.row\r\n });\r\n needCreateValidator = isEditRow || isCellOrBatchEditingAllowed && showEditorAlways;\r\n if (isCellOrBatchEditingAllowed && showEditorAlways) {\r\n editingController._addInternalData({\r\n key: parameters.key,\r\n oldData: null !== (_c = null === (_b = parameters.row) || void 0 === _b ? void 0 : _b.oldData) && void 0 !== _c ? _c : parameters.data\r\n })\r\n }\r\n }\r\n if (needCreateValidator) {\r\n if ($container && !$container.length) {\r\n errors.log(\"E1050\");\r\n return\r\n }\r\n this._syncInternalEditingData(parameters);\r\n var validationData = this._getValidationData(parameters.key, true);\r\n var getValue = () => {\r\n var change = editingController.getChangeByKey(null === validationData || void 0 === validationData ? void 0 : validationData.key);\r\n var value = column.calculateCellValue((null === change || void 0 === change ? void 0 : change.data) || {});\r\n return void 0 !== value ? value : parameters.value\r\n };\r\n var useDefaultValidator = $container && $container.hasClass(\"dx-widget\");\r\n $container && $container.addClass(this.addWidgetPrefix(VALIDATOR_CLASS));\r\n var validator = new Validator($container || $(\"<div>\"), {\r\n name: column.caption,\r\n validationRules: extend(true, [], column.validationRules),\r\n validationGroup: validationData,\r\n adapter: useDefaultValidator ? null : {\r\n getValue: getValue,\r\n applyValidationResults: result => {\r\n this.applyValidationResult($container, result)\r\n }\r\n },\r\n dataGetter() {\r\n var key = null === validationData || void 0 === validationData ? void 0 : validationData.key;\r\n var change = editingController.getChangeByKey(key);\r\n var oldData = editingController._getOldData(key);\r\n return {\r\n data: createObjectWithChanges(oldData, null === change || void 0 === change ? void 0 : change.data),\r\n column: column\r\n }\r\n },\r\n onInitialized: this.validatorInitialized.bind(this),\r\n onDisposing: this.validatorDisposing.bind(this)\r\n });\r\n if (useDefaultValidator) {\r\n var adapter = validator.option(\"adapter\");\r\n if (adapter) {\r\n var originBypass = adapter.bypass;\r\n var defaultAdapterBypass = () => parameters.row.isNewRow && !this._isValidationInProgress && !editingController.isCellModified(parameters);\r\n adapter.getValue = getValue;\r\n adapter.validationRequestsCallbacks = [];\r\n adapter.bypass = () => originBypass.call(adapter) || defaultAdapterBypass()\r\n }\r\n }\r\n return validator\r\n }\r\n return\r\n }\r\n setDisableApplyValidationResults(flag) {\r\n this._disableApplyValidationResults = flag\r\n }\r\n getDisableApplyValidationResults() {\r\n return this._disableApplyValidationResults\r\n }\r\n isCurrentValidatorProcessing(_ref2) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref2;\r\n return this._currentCellValidator && equalByValue(this._currentCellValidator.option(\"validationGroup\").key, rowKey) && this._currentCellValidator.option(\"dataGetter\")().column.index === columnIndex\r\n }\r\n validateCell(validator) {\r\n var cellParams = {\r\n rowKey: validator.option(\"validationGroup\").key,\r\n columnIndex: validator.option(\"dataGetter\")().column.index,\r\n validationResult: null\r\n };\r\n var validationResult = this.getCellValidationResult(cellParams);\r\n var stateRestored = validationResultIsValid(validationResult);\r\n var adapter = validator.option(\"adapter\");\r\n if (!stateRestored) {\r\n validationResult = validator.validate()\r\n } else {\r\n var currentCellValue = adapter.getValue();\r\n if (!equalByValue(currentCellValue, validationResult.value)) {\r\n validationResult = validator.validate()\r\n }\r\n }\r\n var deferred = new Deferred;\r\n if (stateRestored && validationResult.status === VALIDATION_STATUS.pending) {\r\n this.updateCellValidationResult(cellParams);\r\n adapter.applyValidationResults(validationResult)\r\n }\r\n when(validationResult.complete || validationResult).done(validationResult => {\r\n stateRestored && adapter.applyValidationResults(validationResult);\r\n deferred.resolve(validationResult)\r\n });\r\n return deferred.promise()\r\n }\r\n updateCellValidationResult(_ref3) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex,\r\n validationResult: validationResult\r\n } = _ref3;\r\n var validationData = this._getValidationData(rowKey);\r\n if (!validationData) {\r\n return\r\n }\r\n if (!validationData.validationResults) {\r\n validationData.validationResults = {}\r\n }\r\n var result;\r\n if (validationResult) {\r\n result = extend({}, validationResult);\r\n validationData.validationResults[columnIndex] = result;\r\n if (validationResult.status === VALIDATION_STATUS.pending) {\r\n if (this._editingController.getEditMode() === EDIT_MODE_CELL) {\r\n result.deferred = new Deferred;\r\n result.complete.always(() => {\r\n result.deferred.resolve()\r\n });\r\n this._editingController.addDeferred(result.deferred)\r\n }\r\n if (this._disableApplyValidationResults) {\r\n result.disabledPendingId = validationResult.id;\r\n return\r\n }\r\n }\r\n } else {\r\n result = validationData.validationResults[columnIndex]\r\n }\r\n if (result && result.disabledPendingId) {\r\n delete result.disabledPendingId\r\n }\r\n }\r\n getCellValidationResult(_ref4) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref4;\r\n var _a;\r\n var validationData = this._getValidationData(rowKey, true);\r\n return null === (_a = null === validationData || void 0 === validationData ? void 0 : validationData.validationResults) || void 0 === _a ? void 0 : _a[columnIndex]\r\n }\r\n removeCellValidationResult(_ref5) {\r\n var {\r\n change: change,\r\n columnIndex: columnIndex\r\n } = _ref5;\r\n var validationData = this._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n if (validationData && validationData.validationResults) {\r\n this.cancelCellValidationResult({\r\n change: change,\r\n columnIndex: columnIndex\r\n });\r\n delete validationData.validationResults[columnIndex]\r\n }\r\n }\r\n cancelCellValidationResult(_ref6) {\r\n var {\r\n change: change,\r\n columnIndex: columnIndex\r\n } = _ref6;\r\n var validationData = this._getValidationData(change.key);\r\n if (change && validationData.validationResults) {\r\n var result = validationData.validationResults[columnIndex];\r\n if (result) {\r\n result.deferred && result.deferred.reject(VALIDATION_CANCELLED);\r\n validationData.validationResults[columnIndex] = VALIDATION_CANCELLED\r\n }\r\n }\r\n }\r\n resetRowValidationResults(validationData) {\r\n if (validationData) {\r\n validationData.validationResults && delete validationData.validationResults;\r\n delete validationData.validated\r\n }\r\n }\r\n isInvalidCell(_ref7) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref7;\r\n var result = this.getCellValidationResult({\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n });\r\n return validationResultIsValid(result) && result.status === VALIDATION_STATUS.invalid\r\n }\r\n getCellValidator(_ref8) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref8;\r\n var validationData = this._getValidationData(rowKey);\r\n var groupConfig = validationData && ValidationEngine.getGroupConfig(validationData);\r\n var validators = groupConfig && groupConfig.validators;\r\n return validators && validators.filter(v => {\r\n var {\r\n column: column\r\n } = v.option(\"dataGetter\")();\r\n return column ? column.index === columnIndex : false\r\n })[0]\r\n }\r\n setCellValidationStatus(cellOptions) {\r\n var validationResult = this.getCellValidationResult({\r\n rowKey: cellOptions.key,\r\n columnIndex: cellOptions.column.index\r\n });\r\n if (isDefined(validationResult)) {\r\n cellOptions.validationStatus = validationResult !== VALIDATION_CANCELLED ? validationResult.status : VALIDATION_CANCELLED\r\n } else {\r\n delete cellOptions.validationStatus\r\n }\r\n }\r\n}\r\nexport var validatingEditingExtender = Base => class extends Base {\r\n processDataItemTreeListHack(item) {\r\n super.processDataItem.apply(this, arguments)\r\n }\r\n processItemsTreeListHack(items, e) {\r\n return super.processItems.apply(this, arguments)\r\n }\r\n _addChange(changeParams) {\r\n var change = super._addChange.apply(this, arguments);\r\n if (change && changeParams.type !== EDIT_DATA_REMOVE_TYPE) {\r\n this._validatingController.updateValidationState(change)\r\n }\r\n return change\r\n }\r\n _handleChangesChange(args) {\r\n super._handleChangesChange.apply(this, arguments);\r\n args.value.forEach(change => {\r\n if (void 0 === this._validatingController._getValidationData(change.key)) {\r\n this._validatingController.updateValidationState(change)\r\n }\r\n })\r\n }\r\n _updateRowAndPageIndices() {\r\n var that = this;\r\n var startInsertIndex = that.getView(\"rowsView\").getTopVisibleItemIndex();\r\n var rowIndex = startInsertIndex;\r\n each(that.getChanges(), (_, _ref9) => {\r\n var {\r\n key: key,\r\n type: type\r\n } = _ref9;\r\n var validationData = this._validatingController._getValidationData(key);\r\n if (validationData && !validationData.isValid && validationData.pageIndex !== that._pageIndex) {\r\n validationData.pageIndex = that._pageIndex;\r\n if (type === EDIT_DATA_INSERT_TYPE) {\r\n validationData.rowIndex = startInsertIndex\r\n } else {\r\n validationData.rowIndex = rowIndex\r\n }\r\n rowIndex++\r\n }\r\n })\r\n }\r\n _getValidationGroupsInForm(detailOptions) {\r\n var validationData = this._validatingController._getValidationData(detailOptions.key, true);\r\n return {\r\n validationGroup: validationData\r\n }\r\n }\r\n _validateEditFormAfterUpdate(row, isCustomSetCellValue) {\r\n if (isCustomSetCellValue && this._editForm) {\r\n this._editForm.validate()\r\n }\r\n super._validateEditFormAfterUpdate.apply(this, arguments)\r\n }\r\n _prepareEditCell(params) {\r\n var isNotCanceled = super._prepareEditCell.apply(this, arguments);\r\n if (isNotCanceled && params.column.showEditorAlways) {\r\n this._validatingController.updateValidationState({\r\n key: params.key\r\n })\r\n }\r\n return isNotCanceled\r\n }\r\n processItems(items, changeType) {\r\n var changes = this.getChanges();\r\n var getIndexByChange = (change, items) => {\r\n var index = -1;\r\n var isInsert = change.type === EDIT_DATA_INSERT_TYPE;\r\n var {\r\n key: key\r\n } = change;\r\n each(items, (i, item) => {\r\n if (equalByValue(key, isInsert ? item.key : this._dataController.keyOf(item))) {\r\n index = i;\r\n return false\r\n }\r\n return\r\n });\r\n return index\r\n };\r\n items = super.processItems(items, changeType);\r\n var itemsCount = items.length;\r\n if (this.getEditMode() === EDIT_MODE_BATCH && \"prepend\" !== changeType && \"append\" !== changeType) {\r\n changes.forEach(change => {\r\n var {\r\n key: key\r\n } = change;\r\n var validationData = this._validatingController._getValidationData(key);\r\n if (validationData && change.type && validationData.pageIndex === this._pageIndex && (null === change || void 0 === change ? void 0 : change.pageIndex) !== this._pageIndex) {\r\n ! function(change, validationData) {\r\n var data = {\r\n key: change.key\r\n };\r\n var index = getIndexByChange(change, items);\r\n if (index >= 0) {\r\n return\r\n }\r\n validationData.rowIndex = validationData.rowIndex > itemsCount ? validationData.rowIndex % itemsCount : validationData.rowIndex;\r\n var {\r\n rowIndex: rowIndex\r\n } = validationData;\r\n data[INSERT_INDEX] = 1;\r\n items.splice(rowIndex, 0, data)\r\n }(change, validationData)\r\n }\r\n })\r\n }\r\n return items\r\n }\r\n processDataItem(item) {\r\n var isInserted = item.data[INSERT_INDEX];\r\n var key = isInserted ? item.data.key : item.key;\r\n var editMode = this.getEditMode();\r\n if (editMode === EDIT_MODE_BATCH && isInserted && key) {\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var change = changes[editIndex];\r\n if (change.type !== EDIT_DATA_INSERT_TYPE) {\r\n var oldData = this._getOldData(change.key);\r\n item.data = extend(true, {}, oldData, change.data);\r\n item.key = key\r\n }\r\n }\r\n }\r\n super.processDataItem.apply(this, arguments)\r\n }\r\n _createInvisibleColumnValidators(changes) {\r\n var that = this;\r\n var columns = this._columnsController.getColumns();\r\n var invisibleColumns = this._columnsController.getInvisibleColumns().filter(column => !column.isBand);\r\n var groupColumns = this._columnsController.getGroupColumns().filter(column => !column.showWhenGrouped && -1 === invisibleColumns.indexOf(column));\r\n var invisibleColumnValidators = [];\r\n var isCellVisible = (column, rowKey) => this._dataController.getRowIndexByKey(rowKey) >= 0 && invisibleColumns.indexOf(column) < 0;\r\n invisibleColumns.push(...groupColumns);\r\n if (!FORM_BASED_MODES.includes(this.getEditMode())) {\r\n each(columns, (_, column) => {\r\n changes.forEach(change => {\r\n var data;\r\n if (isCellVisible(column, change.key)) {\r\n return\r\n }\r\n if (change.type === EDIT_DATA_INSERT_TYPE) {\r\n data = change.data\r\n } else if (\"update\" === change.type) {\r\n var oldData = that._getOldData(change.key);\r\n if (!isDefined(oldData)) {\r\n return\r\n }\r\n data = createObjectWithChanges(oldData, change.data)\r\n }\r\n if (data) {\r\n var validator = this._validatingController.createValidator({\r\n column: column,\r\n key: change.key,\r\n value: column.calculateCellValue(data)\r\n });\r\n if (validator) {\r\n invisibleColumnValidators.push(validator)\r\n }\r\n }\r\n })\r\n })\r\n }\r\n return function() {\r\n invisibleColumnValidators.forEach(validator => {\r\n validator.dispose()\r\n })\r\n }\r\n }\r\n _beforeSaveEditData(change, editIndex) {\r\n var result = super._beforeSaveEditData.apply(this, arguments);\r\n var validationData = this._validatingController._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n if (change) {\r\n var isValid = \"remove\" === change.type || validationData.isValid;\r\n result = result || !isValid\r\n } else {\r\n var disposeValidators = this._createInvisibleColumnValidators(this.getChanges());\r\n result = new Deferred;\r\n this.executeOperation(result, () => {\r\n this._validatingController.validate(true).done(isFullValid => {\r\n disposeValidators();\r\n this._updateRowAndPageIndices();\r\n switch (this.getEditMode()) {\r\n case EDIT_MODE_CELL:\r\n if (!isFullValid) {\r\n this._focusEditingCell()\r\n }\r\n break;\r\n case EDIT_MODE_BATCH:\r\n if (!isFullValid) {\r\n this._resetEditRowKey();\r\n this._resetEditColumnName();\r\n this._dataController.updateItems()\r\n }\r\n }\r\n result.resolve(!isFullValid)\r\n })\r\n })\r\n }\r\n return result.promise ? result.promise() : result\r\n }\r\n _beforeEditCell(rowIndex, columnIndex, item) {\r\n var result = super._beforeEditCell(rowIndex, columnIndex, item);\r\n if (this.getEditMode() === EDIT_MODE_CELL) {\r\n var $cell = this._rowsView._getCellElement(rowIndex, columnIndex);\r\n var validator = $cell && $cell.data(\"dxValidator\");\r\n var rowOptions = $cell && $cell.closest(\".dx-row\").data(\"options\");\r\n var value = validator && validator.option(\"adapter\").getValue();\r\n if (validator && cellValueShouldBeValidated(value, rowOptions)) {\r\n var deferred = new Deferred;\r\n when(this._validatingController.validateCell(validator), result).done((validationResult, result) => {\r\n deferred.resolve(validationResult.status === VALIDATION_STATUS.valid && result)\r\n });\r\n return deferred.promise()\r\n }\r\n if (!validator) {\r\n return result\r\n }\r\n }\r\n return false\r\n }\r\n _afterSaveEditData(cancel) {\r\n var $firstErrorRow;\r\n var isCellEditMode = this.getEditMode() === EDIT_MODE_CELL;\r\n each(this.getChanges(), (_, change) => {\r\n var $errorRow = this._showErrorRow(change);\r\n $firstErrorRow = $firstErrorRow || $errorRow\r\n });\r\n if ($firstErrorRow) {\r\n var scrollable = this._rowsView.getScrollable();\r\n if (scrollable) {\r\n scrollable.update();\r\n scrollable.scrollToElement($firstErrorRow)\r\n }\r\n }\r\n if (cancel && isCellEditMode && this._needUpdateRow()) {\r\n var editRowIndex = this.getEditRowIndex();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [editRowIndex]\r\n });\r\n this._focusEditingCell()\r\n } else if (!cancel) {\r\n var shouldResetValidationState = true;\r\n if (isCellEditMode) {\r\n var columns = this._columnsController.getColumns();\r\n var columnsWithValidatingEditors = columns.filter(col => {\r\n var _a;\r\n return col.showEditorAlways && (null === (_a = col.validationRules) || void 0 === _a ? void 0 : _a.length) > 0\r\n }).length > 0;\r\n shouldResetValidationState = !columnsWithValidatingEditors\r\n }\r\n if (shouldResetValidationState) {\r\n this._validatingController.initValidationState()\r\n }\r\n }\r\n }\r\n _handleDataChanged(args) {\r\n var validationState = this._validatingController._validationState;\r\n if (\"standard\" === this.option(\"scrolling.mode\")) {\r\n this.resetRowAndPageIndices()\r\n }\r\n if (\"prepend\" === args.changeType) {\r\n each(validationState, (_, validationData) => {\r\n validationData.rowIndex += args.items.length\r\n })\r\n }\r\n super._handleDataChanged(args)\r\n }\r\n resetRowAndPageIndices() {\r\n var validationState = this._validatingController._validationState;\r\n each(validationState, (_, validationData) => {\r\n if (validationData.pageIndex !== this._pageIndex) {\r\n delete validationData.pageIndex;\r\n delete validationData.rowIndex\r\n }\r\n })\r\n }\r\n _beforeCancelEditData() {\r\n this._validatingController.initValidationState();\r\n super._beforeCancelEditData()\r\n }\r\n _showErrorRow(change) {\r\n var $popupContent;\r\n var items = this._dataController.items();\r\n var rowIndex = this.getIndexByKey(change.key, items);\r\n var validationData = this._validatingController._getValidationData(change.key);\r\n if (!(null === validationData || void 0 === validationData ? void 0 : validationData.isValid) && (null === validationData || void 0 === validationData ? void 0 : validationData.errorText) && rowIndex >= 0) {\r\n $popupContent = this.getPopupContent();\r\n return this._errorHandlingController && this._errorHandlingController.renderErrorRow(null === validationData || void 0 === validationData ? void 0 : validationData.errorText, rowIndex, $popupContent)\r\n }\r\n }\r\n updateFieldValue(e) {\r\n var deferred = new Deferred;\r\n this._validatingController.removeCellValidationResult({\r\n change: this.getChangeByKey(e.key),\r\n columnIndex: e.column.index\r\n });\r\n super.updateFieldValue.apply(this, arguments).done(() => {\r\n var currentValidator = this._validatingController.getCellValidator({\r\n rowKey: e.key,\r\n columnIndex: e.column.index\r\n });\r\n when(currentValidator && this._validatingController.validateCell(currentValidator)).done(validationResult => {\r\n this._editorFactoryController.refocus();\r\n deferred.resolve(validationResult)\r\n })\r\n });\r\n return deferred.promise()\r\n }\r\n highlightDataCell($cell, parameters) {\r\n super.highlightDataCell.apply(this, arguments);\r\n this._validatingController.setCellValidationStatus(parameters);\r\n var isEditableCell = !!parameters.setValue;\r\n var cellModified = this.isCellModified(parameters);\r\n var isValidated = isDefined(parameters.validationStatus);\r\n var needValidation = cellModified && parameters.column.setCellValue || isEditableCell && !cellModified && !(parameters.row.isNewRow || !isValidated);\r\n if (needValidation) {\r\n var validator = $cell.data(\"dxValidator\");\r\n if (validator) {\r\n when(this._validatingController.validateCell(validator)).done(() => {\r\n this._validatingController.setCellValidationStatus(parameters)\r\n })\r\n }\r\n }\r\n }\r\n getChangeByKey(key) {\r\n var changes = this.getChanges();\r\n return changes[gridCoreUtils.getIndexByKey(key, changes)]\r\n }\r\n isCellModified(parameters) {\r\n var cellModified = super.isCellModified(parameters);\r\n var change = this.getChangeByKey(parameters.key);\r\n var isCellInvalid = !!parameters.row && this._validatingController.isInvalidCell({\r\n rowKey: parameters.key,\r\n columnIndex: parameters.column.index\r\n });\r\n return cellModified || this._validatingController._rowIsValidated(change) && isCellInvalid\r\n }\r\n};\r\nvar getWidthOfVisibleCells = function(that, element) {\r\n var rowIndex = $(element).closest(\"tr\").index();\r\n var $cellElements = $(that._rowsView.getRowElement(rowIndex)).first().children().filter(\":not(.dx-hidden-cell)\");\r\n return that._rowsView._getWidths($cellElements).reduce((w1, w2) => w1 + w2, 0)\r\n};\r\nvar getBoundaryNonFixedColumnsInfo = function(fixedColumns) {\r\n var firstNonFixedColumnIndex;\r\n var lastNonFixedColumnIndex;\r\n fixedColumns.some((column, index) => {\r\n if (column.command === COMMAND_TRANSPARENT) {\r\n firstNonFixedColumnIndex = 0 === index ? -1 : index;\r\n lastNonFixedColumnIndex = index === fixedColumns.length - 1 ? -1 : index + column.colspan - 1;\r\n return true\r\n }\r\n return\r\n });\r\n return {\r\n startColumnIndex: firstNonFixedColumnIndex,\r\n endColumnIndex: lastNonFixedColumnIndex\r\n }\r\n};\r\nexport var validatingEditorFactoryExtender = Base => class extends Base {\r\n _showRevertButton($container) {\r\n var _a;\r\n var $tooltipElement = null === (_a = this._revertTooltip) || void 0 === _a ? void 0 : _a.$element();\r\n if (!$container || !$container.length) {\r\n null === $tooltipElement || void 0 === $tooltipElement ? void 0 : $tooltipElement.remove();\r\n this._revertTooltip = void 0;\r\n return\r\n }\r\n if ($container.find($tooltipElement).length) {\r\n return\r\n }\r\n var $overlayContainer = $container.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS))).parent();\r\n var revertTooltipClass = this.addWidgetPrefix(REVERT_TOOLTIP_CLASS);\r\n null === $tooltipElement || void 0 === $tooltipElement ? void 0 : $tooltipElement.remove();\r\n $tooltipElement = $(\"<div>\").addClass(revertTooltipClass).appendTo($container);\r\n var tooltipOptions = {\r\n animation: null,\r\n visible: true,\r\n width: \"auto\",\r\n height: \"auto\",\r\n shading: false,\r\n container: $overlayContainer,\r\n propagateOutsideClick: true,\r\n hideOnOutsideClick: false,\r\n wrapperAttr: {\r\n class: revertTooltipClass\r\n },\r\n contentTemplate: () => {\r\n var $buttonElement = $(\"<div>\").addClass(REVERT_BUTTON_CLASS);\r\n var buttonOptions = {\r\n icon: \"revert\",\r\n hint: this.option(\"editing.texts.validationCancelChanges\"),\r\n elementAttr: {\r\n id: REVERT_BUTTON_ID,\r\n \"aria-label\": messageLocalization.format(\"dxDataGrid-ariaRevertButton\")\r\n },\r\n onClick: () => {\r\n this._editingController.cancelEditData()\r\n }\r\n };\r\n return new Button($buttonElement, buttonOptions).$element()\r\n },\r\n position: {\r\n my: \"left top\",\r\n at: \"right top\",\r\n offset: \"1 0\",\r\n collision: \"flip\",\r\n boundaryOffset: \"0 0\",\r\n boundary: this._rowsView.element(),\r\n of: $container\r\n },\r\n onPositioned: this._positionedHandler.bind(this)\r\n };\r\n this._revertTooltip = new Overlay($tooltipElement, tooltipOptions)\r\n }\r\n _hideFixedGroupCell($cell, overlayOptions) {\r\n var $nextFixedRowElement;\r\n var $groupCellElement;\r\n var isFixedColumns = this._rowsView.isFixedColumns();\r\n var isFormOrPopupEditMode = this._editingController.isFormOrPopupEditMode();\r\n if (isFixedColumns && !isFormOrPopupEditMode) {\r\n var nextRowOptions = $cell.closest(\".dx-row\").next().data(\"options\");\r\n if (nextRowOptions && \"group\" === nextRowOptions.rowType) {\r\n $nextFixedRowElement = $(this._rowsView.getRowElement(nextRowOptions.rowIndex)).last();\r\n $groupCellElement = $nextFixedRowElement.find(\".\".concat(GROUP_CELL_CLASS));\r\n if ($groupCellElement.length && \"hidden\" !== $groupCellElement.get(0).style.visibility) {\r\n $groupCellElement.css(\"visibility\", \"hidden\");\r\n overlayOptions.onDisposing = function() {\r\n $groupCellElement.css(\"visibility\", \"\")\r\n }\r\n }\r\n }\r\n }\r\n }\r\n _positionedHandler(e, isOverlayVisible) {\r\n if (!e.component.__skipPositionProcessing) {\r\n var isRevertButton = $(e.element).hasClass(this.addWidgetPrefix(REVERT_TOOLTIP_CLASS));\r\n var needRepaint = !isRevertButton && this._rowsView.updateFreeSpaceRowHeight();\r\n var normalizedPosition = this._normalizeValidationMessagePositionAndMaxWidth(e, isRevertButton, isOverlayVisible);\r\n e.component.__skipPositionProcessing = !!(needRepaint || normalizedPosition);\r\n if (normalizedPosition) {\r\n e.component.option(normalizedPosition)\r\n } else if (needRepaint) {\r\n e.component.repaint()\r\n }\r\n }\r\n }\r\n _showValidationMessage($cell, messages, alignment) {\r\n var _a;\r\n var editorPopup = $cell.find(\".dx-dropdowneditor-overlay\").data(\"dxPopup\");\r\n var isOverlayVisible = editorPopup && editorPopup.option(\"visible\");\r\n var myPosition = isOverlayVisible ? \"top right\" : \"top \".concat(alignment);\r\n var atPosition = isOverlayVisible ? \"top left\" : \"bottom \".concat(alignment);\r\n var hasFixedColumns = (null === (_a = this._columnsController.getFixedColumns()) || void 0 === _a ? void 0 : _a.length) > 0;\r\n var $overlayContainer = hasFixedColumns ? this.getView(\"rowsView\").element() : $cell.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS)));\r\n var errorMessageText = \"\";\r\n messages && messages.forEach(message => {\r\n errorMessageText += (errorMessageText.length ? \"<br/>\" : \"\") + encodeHtml(message)\r\n });\r\n var invalidMessageClass = this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS);\r\n this._rowsView.element().find(\".\".concat(invalidMessageClass)).remove();\r\n var $overlayElement = $(\"<div>\").addClass(INVALID_MESSAGE_CLASS).addClass(INVALID_MESSAGE_ALWAYS_CLASS).addClass(invalidMessageClass).html(errorMessageText).appendTo($cell);\r\n var overlayOptions = {\r\n container: $overlayContainer,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n visible: true,\r\n animation: false,\r\n propagateOutsideClick: true,\r\n hideOnOutsideClick: false,\r\n wrapperAttr: {\r\n id: INVALID_MESSAGE_ID,\r\n class: \"\".concat(INVALID_MESSAGE_CLASS, \" \").concat(INVALID_MESSAGE_ALWAYS_CLASS, \" \").concat(invalidMessageClass)\r\n },\r\n position: {\r\n collision: \"flip\",\r\n boundary: this._rowsView.element(),\r\n boundaryOffset: \"0 0\",\r\n offset: {\r\n x: 0,\r\n y: !isOverlayVisible && browser.mozilla ? -1 : 0\r\n },\r\n my: myPosition,\r\n at: atPosition,\r\n of: $cell\r\n },\r\n onPositioned: e => {\r\n this._positionedHandler(e, isOverlayVisible);\r\n this._shiftValidationMessageIfNeed(e.component.$content(), $cell)\r\n }\r\n };\r\n this._hideFixedGroupCell($cell, overlayOptions);\r\n new Overlay($overlayElement, overlayOptions)\r\n }\r\n _hideValidationMessage() {\r\n var _a;\r\n var validationMessages = null === (_a = this._rowsView.element()) || void 0 === _a ? void 0 : _a.find(this._getValidationMessagesSelector());\r\n null === validationMessages || void 0 === validationMessages ? void 0 : validationMessages.remove()\r\n }\r\n _normalizeValidationMessagePositionAndMaxWidth(options, isRevertButton, isOverlayVisible) {\r\n var fixedColumns = this._columnsController.getFixedColumns();\r\n if (!fixedColumns || !fixedColumns.length) {\r\n return\r\n }\r\n var position;\r\n var visibleTableWidth = !isRevertButton && getWidthOfVisibleCells(this, options.element);\r\n var $overlayContentElement = options.component.$content();\r\n var validationMessageWidth = getOuterWidth($overlayContentElement, true);\r\n var needMaxWidth = !isRevertButton && validationMessageWidth > visibleTableWidth;\r\n var columnIndex = this._rowsView.getCellIndex($(options.element).closest(\"td\"));\r\n var boundaryNonFixedColumnsInfo = getBoundaryNonFixedColumnsInfo(fixedColumns);\r\n if (!isRevertButton && (columnIndex === boundaryNonFixedColumnsInfo.startColumnIndex || needMaxWidth)) {\r\n position = {\r\n collision: \"none flip\",\r\n my: \"top left\",\r\n at: isOverlayVisible ? \"top right\" : \"bottom left\"\r\n }\r\n } else if (columnIndex === boundaryNonFixedColumnsInfo.endColumnIndex) {\r\n position = {\r\n collision: \"none flip\",\r\n my: \"top right\",\r\n at: isRevertButton || isOverlayVisible ? \"top left\" : \"bottom right\"\r\n };\r\n if (isRevertButton) {\r\n position.offset = \"-1 0\"\r\n }\r\n }\r\n return position && {\r\n position: position,\r\n maxWidth: needMaxWidth ? visibleTableWidth - 2 : void 0\r\n }\r\n }\r\n _shiftValidationMessageIfNeed($content, $cell) {\r\n var $revertContent = this._revertTooltip && this._revertTooltip.$content();\r\n if (!$revertContent) {\r\n return\r\n }\r\n var contentOffset = $content.offset();\r\n var revertContentOffset = $revertContent.offset();\r\n if (contentOffset.top === revertContentOffset.top && contentOffset.left + getWidth($content) > revertContentOffset.left) {\r\n var left = getWidth($revertContent) + PADDING_BETWEEN_TOOLTIPS;\r\n $content.css(\"left\", revertContentOffset.left < $cell.offset().left ? -left : left)\r\n }\r\n }\r\n _getRevertTooltipsSelector() {\r\n var revertTooltipClass = this.addWidgetPrefix(REVERT_TOOLTIP_CLASS);\r\n return \".dx-editor-cell .\".concat(revertTooltipClass)\r\n }\r\n _getValidationMessagesSelector() {\r\n var invalidMessageClass = this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS);\r\n return \".dx-editor-cell .\".concat(invalidMessageClass, \", .dx-cell-modified .\").concat(invalidMessageClass)\r\n }\r\n loseFocus(skipValidator) {\r\n if (!skipValidator) {\r\n this._validatingController.setValidator(null)\r\n }\r\n super.loseFocus()\r\n }\r\n updateCellState($element, validationResult, isHideBorder) {\r\n var _a;\r\n var $focus = null === $element || void 0 === $element ? void 0 : $element.closest(this._getFocusCellSelector());\r\n var $cell = (null === $focus || void 0 === $focus ? void 0 : $focus.is(\"td\")) ? $focus : null;\r\n var rowOptions = null === $focus || void 0 === $focus ? void 0 : $focus.closest(\".dx-row\").data(\"options\");\r\n var change = rowOptions ? this._editingController.getChangeByKey(rowOptions.key) : null;\r\n var column = $cell && this._columnsController.getVisibleColumns()[$cell.index()];\r\n var isCellModified = void 0 !== (null === (_a = null === change || void 0 === change ? void 0 : change.data) || void 0 === _a ? void 0 : _a[null === column || void 0 === column ? void 0 : column.name]) && !this._editingController.isSaving();\r\n var validationDescriptionValues = [];\r\n if (this._editingController.getEditMode() === EDIT_MODE_CELL) {\r\n if ((null === validationResult || void 0 === validationResult ? void 0 : validationResult.status) === VALIDATION_STATUS.invalid || isCellModified) {\r\n this._showRevertButton($focus);\r\n validationDescriptionValues.push(REVERT_BUTTON_ID)\r\n } else {\r\n this._revertTooltip && this._revertTooltip.$element().remove()\r\n }\r\n }\r\n var showValidationMessage = validationResult && validationResult.status === VALIDATION_STATUS.invalid;\r\n if (showValidationMessage && $cell && column && validationResult && validationResult.brokenRules) {\r\n var errorMessages = [];\r\n validationResult.brokenRules.forEach(rule => {\r\n if (rule.message) {\r\n errorMessages.push(rule.message)\r\n }\r\n });\r\n if (errorMessages.length) {\r\n this._showValidationMessage($focus, errorMessages, column.alignment || \"left\");\r\n validationDescriptionValues.push(INVALID_MESSAGE_ID)\r\n }\r\n }\r\n this._updateAriaValidationAttributes($focus, validationDescriptionValues);\r\n !isHideBorder && this._rowsView.element() && this._rowsView.updateFreeSpaceRowHeight()\r\n }\r\n _updateAriaValidationAttributes($focus, inputDescriptionValues) {\r\n if (0 === inputDescriptionValues.length) {\r\n return\r\n }\r\n var editMode = this._editingController.getEditMode();\r\n var shouldSetValidationAriaAttributes = [EDIT_MODE_CELL, EDIT_MODE_BATCH, EDIT_MODE_ROW].includes(editMode);\r\n if (shouldSetValidationAriaAttributes) {\r\n var $focusElement = this._getCurrentFocusElement($focus);\r\n $focusElement.attr(\"aria-labelledby\", inputDescriptionValues.join(\" \"));\r\n $focusElement.attr(\"aria-invalid\", true)\r\n }\r\n }\r\n _getCurrentFocusElement($focus) {\r\n if (this._editingController.isEditing()) {\r\n return $focus.find(EDITORS_INPUT_SELECTOR).first()\r\n }\r\n return $focus\r\n }\r\n focus($element, isHideBorder) {\r\n if (!arguments.length) {\r\n return super.focus()\r\n }\r\n this._hideValidationMessage();\r\n if ((null === $element || void 0 === $element ? void 0 : $element.hasClass(\"dx-row\")) || (null === $element || void 0 === $element ? void 0 : $element.hasClass(\"dx-master-detail-cell\"))) {\r\n return super.focus($element, isHideBorder)\r\n }\r\n var $focus = null === $element || void 0 === $element ? void 0 : $element.closest(this._getFocusCellSelector());\r\n var validator = $focus && ($focus.data(\"dxValidator\") || $element.find(\".\".concat(this.addWidgetPrefix(VALIDATOR_CLASS))).eq(0).data(\"dxValidator\"));\r\n var rowOptions = $focus && $focus.closest(\".dx-row\").data(\"options\");\r\n var change = rowOptions ? this._editingController.getChangeByKey(rowOptions.key) : null;\r\n var validationResult;\r\n if (validator) {\r\n this._validatingController.setValidator(validator);\r\n var value = validator.option(\"adapter\").getValue();\r\n if (cellValueShouldBeValidated(value, rowOptions) || this._validatingController._rowIsValidated(change)) {\r\n this._editingController.waitForDeferredOperations().done(() => {\r\n var isDetached = !this._rowsView.isElementInside($element);\r\n if (isDetached) {\r\n return\r\n }\r\n when(this._validatingController.validateCell(validator)).done(result => {\r\n validationResult = result;\r\n var {\r\n column: column\r\n } = validationResult.validator.option(\"dataGetter\")();\r\n if (change && column && !this._validatingController.isCurrentValidatorProcessing({\r\n rowKey: change.key,\r\n columnIndex: column.index\r\n })) {\r\n return\r\n }\r\n if (!isFluent(current()) && validationResult.status === VALIDATION_STATUS.invalid) {\r\n isHideBorder = true\r\n }\r\n this.updateCellState($element, validationResult, isHideBorder);\r\n super.focus.call(this, $element, isHideBorder)\r\n })\r\n });\r\n return super.focus($element, isHideBorder)\r\n }\r\n }\r\n this.updateCellState($element, validationResult, isHideBorder);\r\n return super.focus($element, isHideBorder)\r\n }\r\n getEditorInstance($container) {\r\n var $editor = $container.find(\".dx-texteditor\").eq(0);\r\n return gridCoreUtils.getWidgetInstance($editor)\r\n }\r\n};\r\nexport var validatingDataControllerExtender = Base => class extends Base {\r\n _getValidationStatus(validationResult) {\r\n var validationStatus = validationResultIsValid(validationResult) ? validationResult.status : validationResult;\r\n return validationStatus || VALIDATION_STATUS.valid\r\n }\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var _a, _b;\r\n var cell = null === (_a = oldRow.cells) || void 0 === _a ? void 0 : _a[columnIndex];\r\n var oldValidationStatus = this._getValidationStatus({\r\n status: null === cell || void 0 === cell ? void 0 : cell.validationStatus\r\n });\r\n var validationResult = this._validatingController.getCellValidationResult({\r\n rowKey: oldRow.key,\r\n columnIndex: columnIndex\r\n });\r\n var validationData = this._validatingController._getValidationData(oldRow.key);\r\n var newValidationStatus = this._getValidationStatus(validationResult);\r\n var rowIsModified = JSON.stringify(newRow.modifiedValues) !== JSON.stringify(oldRow.modifiedValues);\r\n var validationStatusChanged = oldValidationStatus !== newValidationStatus && rowIsModified;\r\n var cellIsMarkedAsInvalid = $(null === cell || void 0 === cell ? void 0 : cell.cellElement).hasClass(this.addWidgetPrefix(INVALIDATE_CLASS));\r\n var hasValidationRules = null === (_b = null === cell || void 0 === cell ? void 0 : cell.column.validationRules) || void 0 === _b ? void 0 : _b.length;\r\n var rowEditStateChanged = oldRow.isEditing !== newRow.isEditing && hasValidationRules;\r\n var cellValidationStateChanged = validationStatusChanged || validationData.isValid && cellIsMarkedAsInvalid;\r\n if (rowEditStateChanged || cellValidationStateChanged) {\r\n return true\r\n }\r\n return super._isCellChanged.apply(this, arguments)\r\n }\r\n};\r\nexport var validatingRowsViewExtender = Base => class extends Base {\r\n updateFreeSpaceRowHeight($table) {\r\n var $rowElements;\r\n var $freeSpaceRowElement;\r\n var $freeSpaceRowElements;\r\n var $element = this.element();\r\n var $tooltipContent = $element && $element.find(\".\".concat(this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS), \" .dx-overlay-content\"));\r\n super.updateFreeSpaceRowHeight($table);\r\n if ($tooltipContent && $tooltipContent.length) {\r\n $rowElements = this._getRowElements();\r\n $freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n $freeSpaceRowElement = $freeSpaceRowElements.first();\r\n if ($freeSpaceRowElement && 1 === $rowElements.length && (!$freeSpaceRowElement.is(\":visible\") || getOuterHeight($tooltipContent) > getOuterHeight($freeSpaceRowElement))) {\r\n $freeSpaceRowElements.show();\r\n setHeight($freeSpaceRowElements, getOuterHeight($tooltipContent));\r\n return true\r\n }\r\n }\r\n return\r\n }\r\n _formItemPrepared(cellOptions, $container) {\r\n super._formItemPrepared.apply(this, arguments);\r\n deferUpdate(() => {\r\n var $editor = $container.find(\".dx-widget\").first();\r\n var isEditorDisposed = $editor.length && !$editor.children().length;\r\n if (!isEditorDisposed) {\r\n this._validatingController.createValidator(cellOptions, $editor)\r\n }\r\n })\r\n }\r\n _cellPrepared($cell, parameters) {\r\n if (!this._editingController.isFormOrPopupEditMode()) {\r\n this._validatingController.createValidator(parameters, $cell)\r\n }\r\n super._cellPrepared.apply(this, arguments)\r\n }\r\n _restoreErrorRow(contentTable) {\r\n this._editingController && this._editingController.hasChanges() && this._getRowElements(contentTable).each((_, item) => {\r\n var rowOptions = $(item).data(\"options\");\r\n if (rowOptions) {\r\n var change = this._editingController.getChangeByKey(rowOptions.key);\r\n change && this._editingController._showErrorRow(change)\r\n }\r\n })\r\n }\r\n};\r\nexport var validatingModule = {\r\n defaultOptions: () => ({\r\n editing: {\r\n texts: {\r\n validationCancelChanges: messageLocalization.format(\"dxDataGrid-validationCancelChanges\")\r\n }\r\n }\r\n }),\r\n controllers: {\r\n validating: ValidatingController\r\n },\r\n extenders: {\r\n controllers: {\r\n editing: validatingEditingExtender,\r\n editorFactory: validatingEditorFactoryExtender,\r\n data: validatingDataControllerExtender\r\n },\r\n views: {\r\n rowsView: validatingRowsViewExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/validating.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n validatingModule\r\n} from \"../../../grids/grid_core/validating/m_validating\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"validating\", validatingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_data_loader/m_virtual_data_loader.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar needTwoPagesLoading = that => that.option(\"scrolling.loadTwoPagesOnStart\") || that._controller.isVirtual() || that._controller.getViewportItemIndex() > 0;\r\nvar getBeginPageIndex = that => that._cache.length ? that._cache[0].pageIndex : -1;\r\nvar getEndPageIndex = that => that._cache.length ? that._cache[that._cache.length - 1].pageIndex : -1;\r\nvar fireChanged = (that, changed, args) => {\r\n that._isChangedFiring = true;\r\n changed(args);\r\n that._isChangedFiring = false\r\n};\r\nvar processDelayChanged = (that, changed, args) => {\r\n if (that._isDelayChanged) {\r\n that._isDelayChanged = false;\r\n fireChanged(that, changed, args);\r\n return true\r\n }\r\n};\r\nvar getViewportPageCount = that => {\r\n var pageSize = that._dataOptions.pageSize();\r\n var preventPreload = that.option(\"scrolling.preventPreload\");\r\n if (preventPreload) {\r\n return 0\r\n }\r\n var realViewportSize = that._controller.viewportSize();\r\n if (that._controller.isVirtualMode() && that.option(\"scrolling.removeInvisiblePages\")) {\r\n realViewportSize = 0;\r\n var viewportSize = that._controller.viewportSize() * that._controller.viewportItemSize();\r\n var offset = that._controller.getContentOffset();\r\n var position = that._controller.getViewportPosition();\r\n var virtualItemsCount = that._controller.virtualItemsCount();\r\n var totalItemsCount = that._dataOptions.totalItemsCount();\r\n for (var itemIndex = virtualItemsCount.begin; itemIndex < totalItemsCount; itemIndex++) {\r\n if (offset >= position + viewportSize) {\r\n break\r\n }\r\n var itemSize = that._controller.getItemSizes()[itemIndex] || that._controller.viewportItemSize();\r\n offset += itemSize;\r\n if (offset >= position) {\r\n realViewportSize++\r\n }\r\n }\r\n }\r\n return pageSize && realViewportSize > 0 ? Math.ceil(realViewportSize / pageSize) : 1\r\n};\r\nvar getPreloadPageCount = (that, previous) => {\r\n var preloadEnabled = that.option(\"scrolling.preloadEnabled\");\r\n var pageCount = getViewportPageCount(that);\r\n var isAppendMode = that._controller.isAppendMode();\r\n if (pageCount) {\r\n if (previous) {\r\n pageCount = preloadEnabled ? 1 : 0\r\n } else {\r\n if (preloadEnabled) {\r\n pageCount++\r\n }\r\n if (isAppendMode || !needTwoPagesLoading(that)) {\r\n pageCount--\r\n }\r\n }\r\n }\r\n return pageCount\r\n};\r\nvar getPageIndexForLoad = that => {\r\n var result = -1;\r\n var beginPageIndex = getBeginPageIndex(that);\r\n var dataOptions = that._dataOptions;\r\n if (beginPageIndex < 0) {\r\n result = that._pageIndex\r\n } else if (!that._cache[that._pageIndex - beginPageIndex]) {\r\n result = that._pageIndex\r\n } else if (beginPageIndex >= 0 && that._controller.viewportSize() >= 0) {\r\n if (beginPageIndex > 0) {\r\n var needToLoadPageBeforeLast = getEndPageIndex(that) + 1 === dataOptions.pageCount() && that._cache.length < getPreloadPageCount(that) + 1;\r\n var needToLoadPrevPage = needToLoadPageBeforeLast || that._pageIndex === beginPageIndex && getPreloadPageCount(that, true);\r\n if (needToLoadPrevPage) {\r\n result = beginPageIndex - 1\r\n }\r\n }\r\n if (result < 0) {\r\n var needToLoadNextPage = beginPageIndex + that._cache.length <= that._pageIndex + getPreloadPageCount(that);\r\n if (needToLoadNextPage) {\r\n result = beginPageIndex + that._cache.length\r\n }\r\n }\r\n }\r\n if (that._loadingPageIndexes[result]) {\r\n result = -1\r\n }\r\n return result\r\n};\r\nvar loadCore = (that, pageIndex) => {\r\n var dataOptions = that._dataOptions;\r\n if (pageIndex === that.pageIndex() || !dataOptions.isLoading() && pageIndex < dataOptions.pageCount() || !dataOptions.hasKnownLastPage() && pageIndex === dataOptions.pageCount()) {\r\n dataOptions.pageIndex(pageIndex);\r\n that._loadingPageIndexes[pageIndex] = true;\r\n return when(dataOptions.load()).always(() => {\r\n that._loadingPageIndexes[pageIndex] = false\r\n })\r\n }\r\n};\r\nvar processChanged = (that, changed, changeType, isDelayChanged, removeCacheItem) => {\r\n var dataOptions = that._dataOptions;\r\n var items = dataOptions.items().slice();\r\n var change = isObject(changeType) ? changeType : void 0;\r\n var isPrepend = \"prepend\" === changeType;\r\n var viewportItems = dataOptions.viewportItems();\r\n if (changeType && isString(changeType) && !that._isDelayChanged) {\r\n change = {\r\n changeType: changeType,\r\n items: items\r\n };\r\n if (removeCacheItem) {\r\n change.removeCount = removeCacheItem.itemsCount;\r\n if (change.removeCount && dataOptions.correctCount) {\r\n change.removeCount = dataOptions.correctCount(viewportItems, change.removeCount, isPrepend)\r\n }\r\n }\r\n }\r\n var removeItemCount = removeCacheItem ? removeCacheItem.itemsLength : 0;\r\n if (removeItemCount && dataOptions.correctCount) {\r\n removeItemCount = dataOptions.correctCount(viewportItems, removeItemCount, isPrepend)\r\n }\r\n if (\"append\" === changeType) {\r\n viewportItems.push.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(0, removeItemCount)\r\n }\r\n } else if (isPrepend) {\r\n viewportItems.unshift.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(-removeItemCount)\r\n }\r\n } else {\r\n that._dataOptions.viewportItems(items)\r\n }\r\n dataOptions.updateLoading();\r\n that._lastPageIndex = that.pageIndex();\r\n that._isDelayChanged = isDelayChanged;\r\n if (!isDelayChanged) {\r\n fireChanged(that, changed, change)\r\n }\r\n};\r\nexport class VirtualDataLoader {\r\n constructor(controller, dataOptions) {\r\n this._dataOptions = dataOptions;\r\n this._controller = controller;\r\n this._pageIndex = this._lastPageIndex = dataOptions.pageIndex();\r\n this._cache = [];\r\n this._loadingPageIndexes = {}\r\n }\r\n option() {\r\n return this._controller.option.apply(this._controller, arguments)\r\n }\r\n viewportItemIndexChanged(itemIndex) {\r\n var pageSize = this._dataOptions.pageSize();\r\n var pageCount = this._dataOptions.pageCount();\r\n var virtualMode = this._controller.isVirtualMode();\r\n var appendMode = this._controller.isAppendMode();\r\n var totalItemsCount = this._dataOptions.totalItemsCount();\r\n var newPageIndex;\r\n if (pageSize && (virtualMode || appendMode) && totalItemsCount >= 0) {\r\n var viewportSize = this._controller.viewportSize();\r\n if (viewportSize && itemIndex + viewportSize >= totalItemsCount && !this._controller.isVirtual()) {\r\n if (this._dataOptions.hasKnownLastPage()) {\r\n newPageIndex = pageCount - 1;\r\n var lastPageSize = totalItemsCount % pageSize;\r\n if (newPageIndex > 0 && lastPageSize > 0 && lastPageSize < viewportSize) {\r\n newPageIndex--\r\n }\r\n } else {\r\n newPageIndex = pageCount\r\n }\r\n } else {\r\n newPageIndex = Math.floor(itemIndex / pageSize);\r\n var maxPageIndex = pageCount - 1;\r\n newPageIndex = Math.max(newPageIndex, 0);\r\n newPageIndex = Math.min(newPageIndex, maxPageIndex)\r\n }\r\n this.pageIndex(newPageIndex);\r\n return this.load()\r\n }\r\n }\r\n pageIndex(pageIndex) {\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if (false !== this.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n if (void 0 !== pageIndex) {\r\n this._pageIndex = pageIndex\r\n }\r\n return this._pageIndex\r\n }\r\n return this._dataOptions.pageIndex(pageIndex)\r\n }\r\n beginPageIndex(defaultPageIndex) {\r\n var index = getBeginPageIndex(this);\r\n if (index < 0) {\r\n index = void 0 !== defaultPageIndex ? defaultPageIndex : this.pageIndex()\r\n }\r\n return index\r\n }\r\n endPageIndex() {\r\n var endPageIndex = getEndPageIndex(this);\r\n return endPageIndex > 0 ? endPageIndex : this._lastPageIndex\r\n }\r\n pageSize() {\r\n return this._dataOptions.pageSize()\r\n }\r\n load() {\r\n var dataOptions = this._dataOptions;\r\n var result;\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if (false !== this.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n var pageIndexForLoad = getPageIndexForLoad(this);\r\n if (pageIndexForLoad >= 0) {\r\n var loadResult = loadCore(this, pageIndexForLoad);\r\n if (loadResult) {\r\n result = new Deferred;\r\n loadResult.done(() => {\r\n var delayDeferred = this._delayDeferred;\r\n if (delayDeferred) {\r\n delayDeferred.done(result.resolve).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n dataOptions.updateLoading()\r\n }\r\n }\r\n } else {\r\n result = dataOptions.load()\r\n }\r\n if (!result && this._lastPageIndex !== this.pageIndex()) {\r\n this._dataOptions.onChanged({\r\n changeType: \"pageIndex\"\r\n })\r\n }\r\n return result || (new Deferred).resolve()\r\n }\r\n loadIfNeed() {\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if ((isVirtualMode || isAppendMode) && !this._dataOptions.isLoading() && (!this._isChangedFiring || this._controller.isVirtual())) {\r\n var position = this._controller.getViewportPosition();\r\n if (position > 0) {\r\n this._controller._setViewportPositionCore(position)\r\n } else {\r\n this.load()\r\n }\r\n }\r\n }\r\n handleDataChanged(callBase, e) {\r\n var dataOptions = this._dataOptions;\r\n var lastCacheLength = this._cache.length;\r\n var changeType;\r\n var removeInvisiblePages;\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if (e && e.changes) {\r\n fireChanged(this, callBase, e)\r\n } else if (false !== this.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n var beginPageIndex = getBeginPageIndex(this);\r\n if (beginPageIndex >= 0) {\r\n if (isVirtualMode && beginPageIndex + this._cache.length !== dataOptions.pageIndex() && beginPageIndex - 1 !== dataOptions.pageIndex()) {\r\n lastCacheLength = 0;\r\n this._cache = []\r\n }\r\n if (isAppendMode) {\r\n if (0 === dataOptions.pageIndex()) {\r\n this._cache = []\r\n } else if (dataOptions.pageIndex() < getEndPageIndex(this)) {\r\n fireChanged(this, callBase, {\r\n changeType: \"append\",\r\n items: []\r\n });\r\n return\r\n }\r\n }\r\n }\r\n var cacheItem = {\r\n pageIndex: dataOptions.pageIndex(),\r\n itemsLength: dataOptions.items(true).length,\r\n itemsCount: this.itemsCount(true)\r\n };\r\n if (this.option(\"scrolling.removeInvisiblePages\") && isVirtualMode) {\r\n removeInvisiblePages = this._cache.length > Math.max(getPreloadPageCount(this) + (this.option(\"scrolling.preloadEnabled\") ? 1 : 0), 2)\r\n } else {\r\n processDelayChanged(this, callBase, {\r\n isDelayed: true\r\n })\r\n }\r\n var removeCacheItem;\r\n if (beginPageIndex === dataOptions.pageIndex() + 1) {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = this._cache.pop()\r\n }\r\n changeType = \"prepend\";\r\n this._cache.unshift(cacheItem)\r\n } else {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = this._cache.shift()\r\n }\r\n changeType = \"append\";\r\n this._cache.push(cacheItem)\r\n }\r\n var isDelayChanged = isVirtualMode && 0 === lastCacheLength && needTwoPagesLoading(this);\r\n processChanged(this, callBase, this._cache.length > 1 ? changeType : void 0, isDelayChanged, removeCacheItem);\r\n this._delayDeferred = this.load().done(() => {\r\n if (processDelayChanged(this, callBase)) {\r\n this.load()\r\n }\r\n })\r\n } else {\r\n processChanged(this, callBase, e)\r\n }\r\n }\r\n getDelayDeferred() {\r\n return this._delayDeferred\r\n }\r\n itemsCount(isBase) {\r\n var count = 0;\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n if (!isBase && isVirtualMode) {\r\n this._cache.forEach(cacheItem => {\r\n count += cacheItem.itemsCount\r\n })\r\n } else {\r\n count = this._dataOptions.itemsCount()\r\n }\r\n return count\r\n }\r\n virtualItemsCount() {\r\n var pageIndex = getBeginPageIndex(this);\r\n if (pageIndex < 0) {\r\n pageIndex = this._dataOptions.pageIndex()\r\n }\r\n var beginItemsCount = pageIndex * this._dataOptions.pageSize();\r\n var itemsCount = this._cache.length * this._dataOptions.pageSize();\r\n var endItemsCount = Math.max(0, this._dataOptions.totalItemsCount() - itemsCount - beginItemsCount);\r\n return {\r\n begin: beginItemsCount,\r\n end: endItemsCount\r\n }\r\n }\r\n reset() {\r\n this._loadingPageIndexes = {};\r\n this._cache = []\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling_core.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport positionUtils from \"../../../../animation/position\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n VirtualDataLoader\r\n} from \"../virtual_data_loader/m_virtual_data_loader\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar isVirtualMode = that => that.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL || that._isVirtual;\r\nvar isAppendMode = that => that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE && !that._isVirtual;\r\n\r\nfunction subscribeToExternalScrollers($element, scrollChangedHandler, $targetElement) {\r\n var $scrollElement;\r\n var scrollableArray = [];\r\n var scrollToArray = [];\r\n var disposeArray = [];\r\n $targetElement = $targetElement || $element;\r\n\r\n function getElementOffset(scrollable) {\r\n var $scrollableElement = scrollable.element ? scrollable.$element() : scrollable;\r\n var scrollableOffset = positionUtils.offset($scrollableElement);\r\n if (!scrollableOffset) {\r\n return $element.offset().top\r\n }\r\n return scrollable.scrollTop() - (scrollableOffset.top - $element.offset().top)\r\n }\r\n var widgetScrollStrategy = {\r\n on(scrollable, eventName, handler) {\r\n scrollable.on(\"scroll\", handler)\r\n },\r\n off(scrollable, eventName, handler) {\r\n scrollable.off(\"scroll\", handler)\r\n }\r\n };\r\n\r\n function subscribeToScrollEvents($scrollElement) {\r\n var isDocument = \"#document\" === $scrollElement.get(0).nodeName;\r\n var isElement = $scrollElement.get(0).nodeType === getWindow().Node.ELEMENT_NODE;\r\n var scrollable = $scrollElement.data(\"dxScrollable\");\r\n var eventsStrategy = widgetScrollStrategy;\r\n if (!scrollable) {\r\n scrollable = isDocument && $(getWindow()) || isElement && \"auto\" === $scrollElement.css(\"overflowY\") && $scrollElement;\r\n eventsStrategy = eventsEngine;\r\n if (!scrollable) {\r\n return\r\n }\r\n }\r\n var handler = function(scrollable) {\r\n return function() {\r\n var scrollTop = scrollable.scrollTop() - getElementOffset(scrollable);\r\n scrollTop = scrollTop > 0 ? scrollTop : 0;\r\n scrollChangedHandler(scrollTop)\r\n }\r\n }(scrollable);\r\n eventsStrategy.on(scrollable, \"scroll\", handler);\r\n scrollToArray.push(pos => {\r\n var topOffset = getElementOffset(scrollable);\r\n var scrollMethod = scrollable.scrollTo ? \"scrollTo\" : \"scrollTop\";\r\n if (pos - topOffset >= 0) {\r\n scrollable[scrollMethod](pos + topOffset)\r\n }\r\n });\r\n scrollableArray.push(scrollable);\r\n disposeArray.push(() => {\r\n eventsStrategy.off(scrollable, \"scroll\", handler)\r\n })\r\n }\r\n var getScrollElementParent = $element => {\r\n var _a;\r\n return $(null !== (_a = $element.get(0).parentNode) && void 0 !== _a ? _a : $element.get(0).host)\r\n };\r\n for ($scrollElement = $targetElement.parent(); $scrollElement.length; $scrollElement = getScrollElementParent($scrollElement)) {\r\n subscribeToScrollEvents($scrollElement)\r\n }\r\n return {\r\n scrollTo(pos) {\r\n each(scrollToArray, (_, scrollTo) => {\r\n scrollTo(pos)\r\n })\r\n },\r\n dispose() {\r\n each(disposeArray, (_, dispose) => {\r\n dispose()\r\n })\r\n }\r\n }\r\n}\r\nclass VirtualScrollController {\r\n constructor(component, dataOptions, isVirtual) {\r\n this._dataOptions = dataOptions;\r\n this.component = component;\r\n this._viewportSize = false === component.option(LEGACY_SCROLLING_MODE) ? 15 : 0;\r\n this._viewportItemSize = 20;\r\n this._viewportItemIndex = 0;\r\n this._position = 0;\r\n this._isScrollingBack = false;\r\n this._contentSize = 0;\r\n this._itemSizes = {};\r\n this._sizeRatio = 1;\r\n this._isVirtual = isVirtual;\r\n this.positionChanged = Callbacks();\r\n this._dataLoader = new VirtualDataLoader(this, this._dataOptions)\r\n }\r\n getItemSizes() {\r\n return this._itemSizes\r\n }\r\n option(name, value) {\r\n return this.component.option.apply(this.component, arguments)\r\n }\r\n isVirtual() {\r\n return this._isVirtual\r\n }\r\n virtualItemsCount() {\r\n if (isVirtualMode(this)) {\r\n var dataOptions = this._dataOptions;\r\n var totalItemsCount = dataOptions.totalItemsCount();\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && -1 !== totalItemsCount) {\r\n var viewportParams = this.getViewportParams();\r\n var loadedOffset = dataOptions.loadedOffset();\r\n var loadedItemCount = dataOptions.loadedItemCount();\r\n var skip = Math.max(viewportParams.skip, loadedOffset);\r\n var take = Math.min(viewportParams.take, loadedItemCount);\r\n var endItemsCount = Math.max(totalItemsCount - (skip + take), 0);\r\n return {\r\n begin: skip,\r\n end: endItemsCount\r\n }\r\n }\r\n return this._dataLoader.virtualItemsCount.apply(this._dataLoader, arguments)\r\n }\r\n return\r\n }\r\n getScrollingTimeout() {\r\n var _a;\r\n var renderAsync = this.option(\"scrolling.renderAsync\");\r\n var scrollingTimeout = 0;\r\n if (!isDefined(renderAsync)) {\r\n scrollingTimeout = Math.min(this.option(\"scrolling.timeout\") || 0, this._dataOptions.changingDuration());\r\n if (scrollingTimeout < this.option(\"scrolling.renderingThreshold\")) {\r\n scrollingTimeout = this.option(\"scrolling.minTimeout\") || 0\r\n }\r\n } else if (renderAsync) {\r\n scrollingTimeout = null !== (_a = this.option(\"scrolling.timeout\")) && void 0 !== _a ? _a : 0\r\n }\r\n return scrollingTimeout\r\n }\r\n setViewportPosition(position) {\r\n var result = new Deferred;\r\n var scrollingTimeout = this.getScrollingTimeout();\r\n clearTimeout(this._scrollTimeoutID);\r\n if (scrollingTimeout > 0) {\r\n this._scrollTimeoutID = setTimeout(() => {\r\n this._setViewportPositionCore(position);\r\n result.resolve()\r\n }, scrollingTimeout)\r\n } else {\r\n this._setViewportPositionCore(position);\r\n result.resolve()\r\n }\r\n return result.promise()\r\n }\r\n getViewportPosition() {\r\n return this._position\r\n }\r\n getItemIndexByPosition(position, viewportItemIndex, height) {\r\n position = null !== position && void 0 !== position ? position : this._position;\r\n var defaultItemSize = this.getItemSize();\r\n var offset = 0;\r\n var itemOffset = 0;\r\n var itemOffsetsWithSize = Object.keys(this._itemSizes).concat(-1);\r\n for (var i = 0; i < itemOffsetsWithSize.length && offset < position; i++) {\r\n var itemOffsetWithSize = parseInt(itemOffsetsWithSize[i]);\r\n var itemOffsetDiff = (position - offset) / defaultItemSize;\r\n if (itemOffsetWithSize < 0 || itemOffset + itemOffsetDiff < itemOffsetWithSize) {\r\n itemOffset += itemOffsetDiff;\r\n if (this._sizeRatio < 1 && isDefined(viewportItemIndex)) {\r\n itemOffset = viewportItemIndex + height / this._viewportItemSize\r\n }\r\n break\r\n } else {\r\n itemOffsetDiff = itemOffsetWithSize - itemOffset;\r\n offset += itemOffsetDiff * defaultItemSize;\r\n itemOffset += itemOffsetDiff\r\n }\r\n var itemSize = this._itemSizes[itemOffsetWithSize];\r\n offset += itemSize;\r\n itemOffset += offset < position ? 1 : (position - offset + itemSize) / itemSize\r\n }\r\n return Math.round(50 * itemOffset) / 50\r\n }\r\n isScrollingBack() {\r\n return this._isScrollingBack\r\n }\r\n _setViewportPositionCore(position) {\r\n var prevPosition = this._position || 0;\r\n this._position = position;\r\n if (prevPosition !== this._position) {\r\n this._isScrollingBack = this._position < prevPosition\r\n }\r\n var itemIndex = this.getItemIndexByPosition();\r\n var result = this.setViewportItemIndex(itemIndex);\r\n this.positionChanged.fire();\r\n return result\r\n }\r\n setContentItemSizes(sizes) {\r\n var virtualItemsCount = this.virtualItemsCount();\r\n this._contentSize = sizes.reduce((a, b) => a + b, 0);\r\n if (virtualItemsCount) {\r\n sizes.forEach((size, index) => {\r\n this._itemSizes[virtualItemsCount.begin + index] = size\r\n });\r\n var virtualContentSize = (virtualItemsCount.begin + virtualItemsCount.end + this.itemsCount()) * this._viewportItemSize;\r\n var contentHeightLimit = gridCoreUtils.getContentHeightLimit(browser);\r\n if (virtualContentSize > contentHeightLimit) {\r\n this._sizeRatio = contentHeightLimit / virtualContentSize\r\n } else {\r\n this._sizeRatio = 1\r\n }\r\n }\r\n }\r\n getItemSize() {\r\n return this._viewportItemSize * this._sizeRatio\r\n }\r\n getItemOffset(itemIndex, isEnd) {\r\n var virtualItemsCount = this.virtualItemsCount();\r\n var itemCount = itemIndex;\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n var offset = 0;\r\n var totalItemsCount = this._dataOptions.totalItemsCount();\r\n Object.keys(this._itemSizes).forEach(currentItemIndex => {\r\n if (!itemCount) {\r\n return\r\n }\r\n if (isEnd ? currentItemIndex >= totalItemsCount - itemIndex : currentItemIndex < itemIndex) {\r\n offset += this._itemSizes[currentItemIndex];\r\n itemCount--\r\n }\r\n });\r\n return Math.floor(offset + itemCount * this._viewportItemSize * this._sizeRatio)\r\n }\r\n getContentOffset(type) {\r\n var isEnd = \"end\" === type;\r\n var virtualItemsCount = this.virtualItemsCount();\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n return this.getItemOffset(isEnd ? virtualItemsCount.end : virtualItemsCount.begin, isEnd)\r\n }\r\n getVirtualContentSize() {\r\n var virtualItemsCount = this.virtualItemsCount();\r\n return virtualItemsCount ? this.getContentOffset(\"begin\") + this.getContentOffset(\"end\") + this._contentSize : 0\r\n }\r\n getViewportItemIndex() {\r\n return this._viewportItemIndex\r\n }\r\n setViewportItemIndex(itemIndex) {\r\n this._viewportItemIndex = itemIndex;\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return\r\n }\r\n return this._dataLoader.viewportItemIndexChanged.apply(this._dataLoader, arguments)\r\n }\r\n viewportItemSize(size) {\r\n if (void 0 !== size) {\r\n this._viewportItemSize = size\r\n }\r\n return this._viewportItemSize\r\n }\r\n viewportSize(size) {\r\n if (void 0 !== size) {\r\n this._viewportSize = size\r\n }\r\n return this._viewportSize\r\n }\r\n viewportHeight(height, scrollTop) {\r\n var position = null !== scrollTop && void 0 !== scrollTop ? scrollTop : this._position;\r\n var begin = this.getItemIndexByPosition(position);\r\n var end = this.getItemIndexByPosition(position + height, begin, height);\r\n this.viewportSize(Math.ceil(end - begin));\r\n if (!isDefined(scrollTop) && this._viewportItemIndex !== begin) {\r\n this._setViewportPositionCore(position)\r\n }\r\n }\r\n reset(isRefresh) {\r\n this._dataLoader.reset();\r\n if (!isRefresh) {\r\n this._itemSizes = {}\r\n }\r\n }\r\n subscribeToWindowScrollEvents($element) {\r\n this._windowScroll = this._windowScroll || subscribeToExternalScrollers($element, scrollTop => {\r\n if (this.viewportItemSize()) {\r\n this.setViewportPosition(scrollTop)\r\n }\r\n })\r\n }\r\n dispose() {\r\n clearTimeout(this._scrollTimeoutID);\r\n this._windowScroll && this._windowScroll.dispose();\r\n this._windowScroll = null\r\n }\r\n scrollTo(pos) {\r\n this._windowScroll && this._windowScroll.scrollTo(pos)\r\n }\r\n isVirtualMode() {\r\n return isVirtualMode(this)\r\n }\r\n isAppendMode() {\r\n return isAppendMode(this)\r\n }\r\n getViewportParams() {\r\n var _a;\r\n var virtualMode = this.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL;\r\n var totalItemsCount = this._dataOptions.totalItemsCount();\r\n var hasKnownLastPage = this._dataOptions.hasKnownLastPage();\r\n var topIndex = hasKnownLastPage && this._viewportItemIndex > totalItemsCount ? totalItemsCount : this._viewportItemIndex;\r\n var bottomIndex = this._viewportSize + topIndex;\r\n var maxGap = this.option(\"scrolling.prerenderedRowChunkSize\") || 1;\r\n var isScrollingBack = this.isScrollingBack();\r\n var minGap = null !== (_a = this.option(\"scrolling.prerenderedRowCount\")) && void 0 !== _a ? _a : 1;\r\n var topMinGap = isScrollingBack ? minGap : 0;\r\n var bottomMinGap = isScrollingBack ? 0 : minGap;\r\n var skip = Math.floor(Math.max(0, topIndex - topMinGap) / maxGap) * maxGap;\r\n var take = Math.ceil((bottomIndex + bottomMinGap - skip) / maxGap) * maxGap;\r\n if (virtualMode) {\r\n var remainedItems = Math.max(0, totalItemsCount - skip);\r\n take = Math.min(take, remainedItems)\r\n }\r\n return {\r\n skip: skip,\r\n take: take\r\n }\r\n }\r\n itemsCount() {\r\n var result = 0;\r\n if (this.option(LEGACY_SCROLLING_MODE)) {\r\n result = this._dataLoader.itemsCount.apply(this._dataLoader, arguments)\r\n } else {\r\n result = this._dataOptions.itemsCount()\r\n }\r\n return result\r\n }\r\n pageIndex() {\r\n return this._dataLoader.pageIndex(...arguments)\r\n }\r\n beginPageIndex() {\r\n return this._dataLoader.beginPageIndex(...arguments)\r\n }\r\n endPageIndex() {\r\n return this._dataLoader.endPageIndex(...arguments)\r\n }\r\n pageSize() {\r\n return this._dataLoader.pageSize(...arguments)\r\n }\r\n load() {\r\n return this._dataLoader.load(...arguments)\r\n }\r\n loadIfNeed() {\r\n return this._dataLoader.loadIfNeed(...arguments)\r\n }\r\n handleDataChanged() {\r\n return this._dataLoader.handleDataChanged(...arguments)\r\n }\r\n getDelayDeferred() {\r\n return this._dataLoader.getDelayDeferred()\r\n }\r\n}\r\nexport default {\r\n VirtualScrollController: VirtualScrollController\r\n};\r\nexport {\r\n subscribeToExternalScrollers,\r\n VirtualScrollController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isElementInDom\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getOuterHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport LoadIndicator from \"../../../../ui/load_indicator\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n subscribeToExternalScrollers,\r\n VirtualScrollController\r\n} from \"./m_virtual_scrolling_core\";\r\nvar BOTTOM_LOAD_PANEL_CLASS = \"bottom-load-panel\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar FREESPACE_CLASS = \"dx-freespace-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar VIRTUAL_ROW_CLASS = \"dx-virtual-row\";\r\nvar ROW_INSERTED = \"dx-row-inserted\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LOAD_TIMEOUT = 300;\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar VISIBLE_PAGE_INDEX = \"paging.pageIndex\";\r\nvar PAGING_METHOD_NAMES = [\"beginPageIndex\", \"endPageIndex\", \"pageIndex\"];\r\nvar isVirtualMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL\r\n};\r\nvar isAppendMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE\r\n};\r\nvar isVirtualPaging = function(that) {\r\n return isVirtualMode(that) || isAppendMode(that)\r\n};\r\nvar correctCount = function(items, count, fromEnd, isItemCountableFunc) {\r\n for (var i = 0; i < count + 1; i++) {\r\n var item = items[fromEnd ? items.length - 1 - i : i];\r\n if (item && !isItemCountableFunc(item, i === count, fromEnd)) {\r\n count++\r\n }\r\n }\r\n return count\r\n};\r\nvar isItemCountableByDataSource = function(item, dataSource) {\r\n return \"data\" === item.rowType && !item.isNewRow || \"group\" === item.rowType && dataSource.isGroupItemCountable(item.data)\r\n};\r\nvar updateItemIndices = function(items) {\r\n items.forEach((item, index) => {\r\n item.rowIndex = index\r\n });\r\n return items\r\n};\r\nvar updateLoading = function(that) {\r\n var beginPageIndex = that._virtualScrollController.beginPageIndex(-1);\r\n if (isVirtualMode(that)) {\r\n if (beginPageIndex < 0 || that.viewportSize() >= 0 && that.getViewportItemIndex() >= 0 && (beginPageIndex * that.pageSize() > that.getViewportItemIndex() || beginPageIndex * that.pageSize() + that.itemsCount() < that.getViewportItemIndex() + that.viewportSize()) && that._dataSource.isLoading()) {\r\n if (!that._isLoading) {\r\n that._isLoading = true;\r\n that.loadingChanged.fire(true)\r\n }\r\n } else if (that._isLoading) {\r\n that._isLoading = false;\r\n that.loadingChanged.fire(false)\r\n }\r\n }\r\n};\r\nvar proxyDataSourceAdapterMethod = function(that, methodName, args) {\r\n if (false === that.option(LEGACY_SCROLLING_MODE) && PAGING_METHOD_NAMES.includes(methodName)) {\r\n var dataSource = that._dataSource;\r\n return dataSource.pageIndex.apply(dataSource, args)\r\n }\r\n var virtualScrollController = that._virtualScrollController;\r\n return virtualScrollController[methodName].apply(virtualScrollController, args)\r\n};\r\nvar removeEmptyRows = function($emptyRows, className) {\r\n var tBodies = $emptyRows.toArray().map(row => $(row).parent(\".\".concat(className)).get(0)).filter(row => row);\r\n if (tBodies.length) {\r\n $emptyRows = $(tBodies)\r\n }\r\n var rowCount = className === FREESPACE_CLASS ? $emptyRows.length - 1 : $emptyRows.length;\r\n for (var i = 0; i < rowCount; i++) {\r\n $emptyRows.eq(i).remove()\r\n }\r\n};\r\nexport var dataSourceAdapterExtender = Base => class extends Base {\r\n init() {\r\n super.init.apply(this, arguments);\r\n this._items = [];\r\n this._totalCount = -1;\r\n this._isLoaded = true;\r\n this._loadPageCount = 1;\r\n this._virtualScrollController = new VirtualScrollController(this.component, this._getVirtualScrollDataOptions())\r\n }\r\n dispose() {\r\n this._virtualScrollController.dispose();\r\n super.dispose.apply(this, arguments)\r\n }\r\n _getVirtualScrollDataOptions() {\r\n var that = this;\r\n return {\r\n pageSize: () => that.pageSize(),\r\n totalItemsCount: () => that.totalItemsCount(),\r\n hasKnownLastPage: () => that.hasKnownLastPage(),\r\n pageIndex: index => that._dataSource.pageIndex(index),\r\n isLoading: () => that._dataSource.isLoading() && !that.isCustomLoading(),\r\n pageCount: () => that.pageCount(),\r\n load: () => that._dataSource.load(),\r\n updateLoading() {\r\n updateLoading(that)\r\n },\r\n itemsCount: () => that.itemsCount(true),\r\n items: () => that._dataSource.items(),\r\n viewportItems(items) {\r\n if (items) {\r\n that._items = items\r\n }\r\n return that._items\r\n },\r\n onChanged(e) {\r\n that.changed.fire(e)\r\n },\r\n changingDuration() {\r\n if (that.isLoading()) {\r\n return LOAD_TIMEOUT\r\n }\r\n return that._renderTime || 0\r\n }\r\n }\r\n }\r\n _handleLoadingChanged(isLoading) {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n super._handleLoadingChanged.apply(this, arguments);\r\n return\r\n }\r\n if (!isVirtualMode(this) || this._isLoadingAll) {\r\n this._isLoading = isLoading;\r\n super._handleLoadingChanged.apply(this, arguments)\r\n }\r\n if (isLoading) {\r\n this._startLoadTime = new Date\r\n } else {\r\n this._startLoadTime = void 0\r\n }\r\n }\r\n _handleLoadError() {\r\n if (false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n this._isLoading = false;\r\n this.loadingChanged.fire(false)\r\n }\r\n super._handleLoadError.apply(this, arguments)\r\n }\r\n _handleDataChanged(e) {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._items = this._dataSource.items().slice();\r\n this._totalCount = this._dataSourceTotalCount(true);\r\n super._handleDataChanged.apply(this, arguments);\r\n return\r\n }\r\n var callBase = super._handleDataChanged.bind(this);\r\n this._virtualScrollController.handleDataChanged(callBase, e)\r\n }\r\n _customizeRemoteOperations(options, operationTypes) {\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n var renderAsync = this.option(\"scrolling.renderAsync\");\r\n if (!isDefined(renderAsync)) {\r\n renderAsync = this._renderTime >= this.option(\"scrolling.renderingThreshold\")\r\n }\r\n if ((isVirtualMode(this) || isAppendMode(this) && newMode) && !operationTypes.reload && (operationTypes.skip || newMode) && !renderAsync) {\r\n options.delay = void 0\r\n }\r\n super._customizeRemoteOperations.apply(this, arguments)\r\n }\r\n items() {\r\n return this._items\r\n }\r\n _dataSourceTotalCount(isBase) {\r\n return false === this.option(LEGACY_SCROLLING_MODE) && isVirtualMode(this) && !isBase ? this._totalCount : super._dataSourceTotalCount()\r\n }\r\n itemsCount(isBase) {\r\n if (isBase || false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return super.itemsCount()\r\n }\r\n return this._virtualScrollController.itemsCount()\r\n }\r\n load(loadOptions) {\r\n if (false === this.option(LEGACY_SCROLLING_MODE) || loadOptions) {\r\n return super.load(loadOptions)\r\n }\r\n return this._virtualScrollController.load()\r\n }\r\n isLoading() {\r\n return false === this.option(LEGACY_SCROLLING_MODE) ? this._dataSource.isLoading() : this._isLoading\r\n }\r\n isLoaded() {\r\n return this._dataSource.isLoaded() && this._isLoaded\r\n }\r\n resetPagesCache(isLiveUpdate) {\r\n if (!isLiveUpdate) {\r\n this._virtualScrollController.reset(true)\r\n }\r\n super.resetPagesCache.apply(this, arguments)\r\n }\r\n _changeRowExpandCore() {\r\n var result = super._changeRowExpandCore.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n this.resetPagesCache();\r\n updateLoading(this);\r\n return result\r\n }\r\n reload() {\r\n this._dataSource.pageIndex(this.pageIndex());\r\n var virtualScrollController = this._virtualScrollController;\r\n if (false !== this.option(LEGACY_SCROLLING_MODE) && virtualScrollController) {\r\n var d = new Deferred;\r\n super.reload.apply(this, arguments).done(r => {\r\n var delayDeferred = virtualScrollController.getDelayDeferred();\r\n if (delayDeferred) {\r\n delayDeferred.done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve(r)\r\n }\r\n }).fail(d.reject);\r\n return d\r\n }\r\n return super.reload.apply(this, arguments)\r\n }\r\n refresh(options, operationTypes) {\r\n if (false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this._virtualScrollController.reset();\r\n dataSource.items().length = 0;\r\n this._isLoaded = false;\r\n updateLoading(this);\r\n this._isLoaded = true;\r\n if (isAppendMode(this)) {\r\n this.pageIndex(0);\r\n dataSource.pageIndex(0);\r\n storeLoadOptions.pageIndex = 0;\r\n options.pageIndex = 0;\r\n storeLoadOptions.skip = 0\r\n } else {\r\n dataSource.pageIndex(this.pageIndex());\r\n if (dataSource.paginate()) {\r\n options.pageIndex = this.pageIndex();\r\n storeLoadOptions.skip = this.pageIndex() * this.pageSize()\r\n }\r\n }\r\n } else if (isAppendMode(this) && storeLoadOptions.skip && this._totalCountCorrection < 0) {\r\n storeLoadOptions.skip += this._totalCountCorrection\r\n }\r\n }\r\n return super.refresh.apply(this, arguments)\r\n }\r\n loadPageCount(count) {\r\n if (!isDefined(count)) {\r\n return this._loadPageCount\r\n }\r\n this._loadPageCount = count\r\n }\r\n _handleDataLoading(options) {\r\n var loadPageCount = this.loadPageCount();\r\n var pageSize = this.pageSize();\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var takeIsDefined = isDefined(storeLoadOptions.take);\r\n options.loadPageCount = loadPageCount;\r\n if (!options.isCustomLoading && newMode && takeIsDefined && loadPageCount > 1 && pageSize > 0) {\r\n storeLoadOptions.take = loadPageCount * pageSize\r\n }\r\n super._handleDataLoading.apply(this, arguments)\r\n }\r\n _loadPageSize() {\r\n return super._loadPageSize.apply(this, arguments) * this.loadPageCount()\r\n }\r\n beginPageIndex() {\r\n return proxyDataSourceAdapterMethod(this, \"beginPageIndex\", [...arguments])\r\n }\r\n endPageIndex() {\r\n return proxyDataSourceAdapterMethod(this, \"endPageIndex\", [...arguments])\r\n }\r\n pageIndex(pageIndex) {\r\n return proxyDataSourceAdapterMethod(this, \"pageIndex\", [...arguments])\r\n }\r\n virtualItemsCount() {\r\n return proxyDataSourceAdapterMethod(this, \"virtualItemsCount\", [...arguments])\r\n }\r\n getContentOffset() {\r\n return proxyDataSourceAdapterMethod(this, \"getContentOffset\", [...arguments])\r\n }\r\n getVirtualContentSize() {\r\n return proxyDataSourceAdapterMethod(this, \"getVirtualContentSize\", [...arguments])\r\n }\r\n setContentItemSizes() {\r\n return proxyDataSourceAdapterMethod(this, \"setContentItemSizes\", [...arguments])\r\n }\r\n setViewportPosition() {\r\n return proxyDataSourceAdapterMethod(this, \"setViewportPosition\", [...arguments])\r\n }\r\n getViewportItemIndex() {\r\n return proxyDataSourceAdapterMethod(this, \"getViewportItemIndex\", [...arguments])\r\n }\r\n setViewportItemIndex(viewportItemIndex) {\r\n return proxyDataSourceAdapterMethod(this, \"setViewportItemIndex\", [...arguments])\r\n }\r\n getItemIndexByPosition() {\r\n return proxyDataSourceAdapterMethod(this, \"getItemIndexByPosition\", [...arguments])\r\n }\r\n viewportSize() {\r\n return proxyDataSourceAdapterMethod(this, \"viewportSize\", [...arguments])\r\n }\r\n viewportItemSize() {\r\n return proxyDataSourceAdapterMethod(this, \"viewportItemSize\", [...arguments])\r\n }\r\n getItemSize() {\r\n return proxyDataSourceAdapterMethod(this, \"getItemSize\", [...arguments])\r\n }\r\n getItemSizes() {\r\n return proxyDataSourceAdapterMethod(this, \"getItemSizes\", [...arguments])\r\n }\r\n loadIfNeed() {\r\n return proxyDataSourceAdapterMethod(this, \"loadIfNeed\", [...arguments])\r\n }\r\n};\r\nexport var data = Base => class extends Base {\r\n dispose() {\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.dispose();\r\n super.dispose.apply(this, arguments)\r\n }\r\n _refreshDataSource() {\r\n var baseResult = super._refreshDataSource.apply(this, arguments) || (new Deferred).resolve().promise();\r\n baseResult.done(this.initVirtualRows.bind(this));\r\n return baseResult\r\n }\r\n _loadDataSource() {\r\n var _a;\r\n if (this._rowsScrollController && isVirtualPaging(this)) {\r\n var {\r\n loadPageCount: loadPageCount\r\n } = isDefined(this._loadViewportParams) ? this.getLoadPageParams() : {\r\n loadPageCount: 0\r\n };\r\n loadPageCount >= 1 && (null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.loadPageCount(loadPageCount))\r\n }\r\n return super._loadDataSource.apply(this, arguments)\r\n }\r\n getRowPageSize() {\r\n var rowPageSize = this.option(\"scrolling.rowPageSize\");\r\n var pageSize = this.pageSize();\r\n return pageSize && pageSize < rowPageSize ? pageSize : rowPageSize\r\n }\r\n reload() {\r\n var rowsScrollController = this._rowsScrollController || this._dataSource;\r\n var itemIndex = rowsScrollController && rowsScrollController.getItemIndexByPosition();\r\n var result = super.reload.apply(this, arguments);\r\n return result && result.done(() => {\r\n var _a, _b;\r\n if (isVirtualMode(this) || gridCoreUtils.isVirtualRowRendering(this)) {\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var rowIndex = Math.floor(itemIndex) - rowIndexOffset;\r\n var {\r\n component: component\r\n } = this;\r\n var scrollable = component.getScrollable && component.getScrollable();\r\n var isSortingOperation = this.dataSource().operationTypes().sorting;\r\n if (scrollable && !isSortingOperation && rowIndex >= 0) {\r\n var rowElement = component.getRowElement(rowIndex);\r\n var $rowElement = rowElement && rowElement[0] && $(rowElement[0]);\r\n var top = $rowElement && (null === (_a = $rowElement.position()) || void 0 === _a ? void 0 : _a.top);\r\n var isChromeLatest = browser.chrome && Number(null !== (_b = browser.version) && void 0 !== _b ? _b : 0) >= 91;\r\n var allowedTopOffset = browser.mozilla || isChromeLatest ? 1 : 0;\r\n if (top && top > allowedTopOffset) {\r\n top = Math.round(top + getOuterHeight($rowElement) * (itemIndex % 1));\r\n scrollable.scrollTo({\r\n y: top\r\n })\r\n }\r\n }\r\n }\r\n })\r\n }\r\n initVirtualRows() {\r\n var virtualRowsRendering = gridCoreUtils.isVirtualRowRendering(this);\r\n this._allItems = null;\r\n this._loadViewportParams = null;\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && !virtualRowsRendering || !virtualRowsRendering || false !== this.option(LEGACY_SCROLLING_MODE) && !this.option(\"scrolling.rowPageSize\")) {\r\n this._visibleItems = null;\r\n this._rowsScrollController = null;\r\n return\r\n }\r\n var pageIndex = !isVirtualMode(this) && this.pageIndex() >= this.pageCount() ? this.pageCount() - 1 : this.pageIndex();\r\n this._rowPageIndex = Math.ceil(pageIndex * this.pageSize() / this.getRowPageSize());\r\n this._visibleItems = false === this.option(LEGACY_SCROLLING_MODE) ? null : [];\r\n this._viewportChanging = false;\r\n this._needUpdateViewportAfterLoading = false;\r\n if (!this._rowsScrollController) {\r\n this._rowsScrollController = new VirtualScrollController(this.component, this._getRowsScrollDataOptions(), true);\r\n this._rowsScrollController.positionChanged.add(() => {\r\n var _a;\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._viewportChanging = true;\r\n this.loadViewport();\r\n this._viewportChanging = false;\r\n return\r\n }\r\n null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.setViewportItemIndex(this._rowsScrollController.getViewportItemIndex())\r\n })\r\n }\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._updateLoadViewportParams()\r\n }\r\n if (this.isLoaded() && false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n this._rowsScrollController.load()\r\n }\r\n }\r\n isViewportChanging() {\r\n return this._viewportChanging\r\n }\r\n _getRowsScrollDataOptions() {\r\n var that = this;\r\n var isItemCountable = function(item) {\r\n return isItemCountableByDataSource(item, that._dataSource)\r\n };\r\n return {\r\n pageSize: () => that.getRowPageSize(),\r\n loadedOffset() {\r\n var _a;\r\n return isVirtualMode(that) && (null === (_a = that._dataSource) || void 0 === _a ? void 0 : _a.lastLoadOptions().skip) || 0\r\n },\r\n loadedItemCount: () => that._itemCount,\r\n totalItemsCount() {\r\n if (isVirtualPaging(that)) {\r\n return that.totalItemsCount()\r\n }\r\n return false === that.option(LEGACY_SCROLLING_MODE) ? that._itemCount : that._items.filter(isItemCountable).length\r\n },\r\n hasKnownLastPage: () => false === that.option(LEGACY_SCROLLING_MODE) ? that.hasKnownLastPage() : true,\r\n pageIndex(index) {\r\n if (void 0 !== index) {\r\n that._rowPageIndex = index\r\n }\r\n return that._rowPageIndex\r\n },\r\n isLoading: () => that.isLoading(),\r\n pageCount() {\r\n var pageCount = Math.ceil(this.totalItemsCount() / this.pageSize());\r\n return pageCount || 1\r\n },\r\n load() {\r\n if (that._rowsScrollController.pageIndex() >= this.pageCount()) {\r\n that._rowPageIndex = this.pageCount() - 1;\r\n that._rowsScrollController.pageIndex(that._rowPageIndex)\r\n }\r\n if (!this.items().length && this.totalItemsCount()) {\r\n return\r\n }\r\n that._rowsScrollController.handleDataChanged(change => {\r\n change = change || {};\r\n change.changeType = change.changeType || \"refresh\";\r\n change.items = change.items || that._visibleItems;\r\n that._visibleItems.forEach((item, index) => {\r\n item.rowIndex = index\r\n });\r\n that._fireChanged(change)\r\n })\r\n },\r\n updateLoading() {},\r\n itemsCount() {\r\n return this.items(true).length\r\n },\r\n correctCount: (items, count, fromEnd) => correctCount(items, count, fromEnd, (item, isNextAfterLast, fromEnd) => {\r\n if (item.isNewRow) {\r\n return isNextAfterLast && !fromEnd\r\n }\r\n if (isNextAfterLast && fromEnd) {\r\n return !item.isNewRow\r\n }\r\n return isItemCountable(item)\r\n }),\r\n items(countableOnly) {\r\n var result = that._items;\r\n if (that.option(LEGACY_SCROLLING_MODE)) {\r\n var dataSource = that.dataSource();\r\n var virtualItemsCount = null === dataSource || void 0 === dataSource ? void 0 : dataSource.virtualItemsCount();\r\n var begin = virtualItemsCount ? virtualItemsCount.begin : 0;\r\n var rowPageSize = that.getRowPageSize();\r\n var skip = that._rowPageIndex * rowPageSize - begin;\r\n var take = rowPageSize;\r\n if (skip < 0) {\r\n return []\r\n }\r\n if (skip) {\r\n skip = this.correctCount(result, skip);\r\n result = result.slice(skip)\r\n }\r\n if (take) {\r\n take = this.correctCount(result, take);\r\n result = result.slice(0, take)\r\n }\r\n }\r\n return countableOnly ? result.filter(isItemCountable) : result\r\n },\r\n viewportItems(items) {\r\n if (items && false !== that.option(LEGACY_SCROLLING_MODE)) {\r\n that._visibleItems = items\r\n }\r\n return that._visibleItems\r\n },\r\n onChanged() {},\r\n changingDuration() {\r\n var dataSource = that.dataSource();\r\n if ((null === dataSource || void 0 === dataSource ? void 0 : dataSource.isLoading()) && false !== that.option(LEGACY_SCROLLING_MODE)) {\r\n return LOAD_TIMEOUT\r\n }\r\n return (null === dataSource || void 0 === dataSource ? void 0 : dataSource._renderTime) || 0\r\n }\r\n }\r\n }\r\n _updateItemsCore(change) {\r\n var delta = this.getRowIndexDelta();\r\n super._updateItemsCore.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && gridCoreUtils.isVirtualRowRendering(this)) {\r\n if (\"update\" === change.changeType && 0 === change.rowIndices.length && change.cancelEmptyChanges) {\r\n change.cancel = true\r\n }\r\n return\r\n }\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n var visibleItems = this._visibleItems;\r\n var isRefresh = \"refresh\" === change.changeType || change.isLiveUpdate;\r\n if (\"append\" === change.changeType && change.items && !change.items.length) {\r\n return\r\n }\r\n if (isRefresh || \"append\" === change.changeType || \"prepend\" === change.changeType) {\r\n change.cancel = true;\r\n isRefresh && rowsScrollController.reset(true);\r\n rowsScrollController.load()\r\n } else {\r\n if (\"update\" === change.changeType) {\r\n change.rowIndices.forEach((rowIndex, index) => {\r\n var changeType = change.changeTypes[index];\r\n var newItem = change.items[index];\r\n if (\"update\" === changeType) {\r\n visibleItems[rowIndex] = newItem\r\n } else if (\"insert\" === changeType) {\r\n visibleItems.splice(rowIndex, 0, newItem)\r\n } else if (\"remove\" === changeType) {\r\n visibleItems.splice(rowIndex, 1)\r\n }\r\n })\r\n } else {\r\n visibleItems.forEach((item, index) => {\r\n visibleItems[index] = this._items[index + delta] || visibleItems[index]\r\n });\r\n change.items = visibleItems\r\n }\r\n updateItemIndices(visibleItems)\r\n }\r\n }\r\n }\r\n _updateLoadViewportParams() {\r\n var viewportParams = this._rowsScrollController.getViewportParams();\r\n var pageSize = this.pageSize();\r\n if (viewportParams && !isVirtualPaging(this) && pageSize > 0) {\r\n var pageOffset = this.pageIndex() * pageSize;\r\n viewportParams.skip += pageOffset\r\n }\r\n this._loadViewportParams = viewportParams\r\n }\r\n _processItems() {\r\n var _a;\r\n var resultItems = super._processItems.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n var dataSource = this._dataSource;\r\n var currentIndex = null !== (_a = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().skip) && void 0 !== _a ? _a : 0;\r\n var prevCountable;\r\n var prevRowType;\r\n var isPrevRowNew;\r\n var wasCountableItem = false;\r\n var newRows = [];\r\n resultItems.forEach(item => {\r\n var {\r\n rowType: rowType\r\n } = item;\r\n var itemCountable = isItemCountableByDataSource(item, dataSource);\r\n var isNextGroupItem = \"group\" === rowType && (prevCountable || itemCountable || \"group\" !== prevRowType && currentIndex > 0);\r\n var isNextDataItem = \"data\" === rowType && itemCountable && (prevCountable || \"group\" !== prevRowType);\r\n if (!item.isNewRow && isDefined(prevCountable)) {\r\n var isPrevNewRowFirst = isPrevRowNew && !wasCountableItem;\r\n if ((isNextGroupItem || isNextDataItem) && !isPrevNewRowFirst) {\r\n currentIndex++\r\n }\r\n }\r\n if (isNextGroupItem || isNextDataItem) {\r\n wasCountableItem = true\r\n }\r\n if (item.isNewRow) {\r\n newRows.push(item)\r\n } else {\r\n newRows.forEach(it => {\r\n it.loadIndex = currentIndex\r\n });\r\n newRows = []\r\n }\r\n item.loadIndex = currentIndex;\r\n prevCountable = itemCountable;\r\n prevRowType = rowType;\r\n isPrevRowNew = item.isNewRow\r\n });\r\n newRows.forEach(it => {\r\n it.loadIndex = currentIndex\r\n })\r\n }\r\n return resultItems\r\n }\r\n _afterProcessItems(items) {\r\n this._itemCount = items.filter(item => isItemCountableByDataSource(item, this._dataSource)).length;\r\n if (isDefined(this._loadViewportParams)) {\r\n this._updateLoadViewportParams();\r\n var result = items;\r\n this._allItems = items;\r\n if (items.length) {\r\n var {\r\n skipForCurrentPage: skipForCurrentPage\r\n } = this.getLoadPageParams(true);\r\n var skip = items[0].loadIndex + skipForCurrentPage;\r\n var {\r\n take: take\r\n } = this._loadViewportParams;\r\n result = items.filter(it => {\r\n var isNewRowInEmptyData = it.isNewRow && it.loadIndex === skip && 0 === take;\r\n var isLoadIndexGreaterStart = it.loadIndex >= skip;\r\n var isLoadIndexLessEnd = it.loadIndex < skip + take || isNewRowInEmptyData;\r\n return isLoadIndexGreaterStart && isLoadIndexLessEnd\r\n })\r\n }\r\n return result\r\n }\r\n return super._afterProcessItems.apply(this, arguments)\r\n }\r\n _applyChange(change) {\r\n var that = this;\r\n var {\r\n items: items\r\n } = change;\r\n var {\r\n changeType: changeType\r\n } = change;\r\n var {\r\n removeCount: removeCount\r\n } = change;\r\n if (removeCount) {\r\n var fromEnd = \"prepend\" === changeType;\r\n removeCount = correctCount(that._items, removeCount, fromEnd, (item, isNextAfterLast) => \"data\" === item.rowType && !item.isNewRow || \"group\" === item.rowType && (that._dataSource.isGroupItemCountable(item.data) || isNextAfterLast));\r\n change.removeCount = removeCount\r\n }\r\n switch (changeType) {\r\n case \"prepend\":\r\n that._items.unshift.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(-removeCount)\r\n }\r\n break;\r\n case \"append\":\r\n that._items.push.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(0, removeCount)\r\n }\r\n break;\r\n default:\r\n super._applyChange(change)\r\n }\r\n }\r\n items(allItems) {\r\n return allItems ? this._allItems || this._items : this._visibleItems || this._items\r\n }\r\n getRowIndexDelta() {\r\n var delta = 0;\r\n if (this.option(LEGACY_SCROLLING_MODE)) {\r\n var visibleItems = this._visibleItems;\r\n if (visibleItems && visibleItems[0]) {\r\n delta = this._items.indexOf(visibleItems[0])\r\n }\r\n }\r\n return delta < 0 ? 0 : delta\r\n }\r\n getRowIndexOffset(byLoadedRows, needGroupOffset) {\r\n var _a, _b;\r\n var offset = 0;\r\n var dataSource = this.dataSource();\r\n var rowsScrollController = this._rowsScrollController;\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n var virtualPaging = isVirtualPaging(this);\r\n if (rowsScrollController && !byLoadedRows) {\r\n if (newMode && isDefined(this._loadViewportParams)) {\r\n var {\r\n skipForCurrentPage: skipForCurrentPage,\r\n pageIndex: pageIndex\r\n } = this.getLoadPageParams(true);\r\n var items = this.items(true);\r\n offset = virtualPaging ? pageIndex * this.pageSize() : 0;\r\n if (items.length) {\r\n var firstLoadIndex = items[0].loadIndex;\r\n offset += items.filter(item => item.loadIndex < firstLoadIndex + skipForCurrentPage).length\r\n }\r\n } else {\r\n offset = rowsScrollController.beginPageIndex() * rowsScrollController.pageSize()\r\n }\r\n } else if (virtualPaging && newMode && dataSource) {\r\n var lastLoadOptions = dataSource.lastLoadOptions();\r\n if (needGroupOffset && (null === (_a = lastLoadOptions.skips) || void 0 === _a ? void 0 : _a.length)) {\r\n offset = lastLoadOptions.skips.reduce((res, skip) => res + skip, 0)\r\n } else {\r\n offset = null !== (_b = lastLoadOptions.skip) && void 0 !== _b ? _b : 0\r\n }\r\n } else if (isVirtualMode(this) && dataSource) {\r\n offset = dataSource.beginPageIndex() * dataSource.pageSize()\r\n }\r\n return offset\r\n }\r\n getDataIndex() {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return this.getRowIndexOffset(true, true)\r\n }\r\n return super.getDataIndex.apply(this, arguments)\r\n }\r\n viewportSize() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.viewportSize.apply(rowsScrollController, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.viewportSize.apply(dataSource, arguments)\r\n }\r\n viewportHeight(height, scrollTop) {\r\n var _a;\r\n null === (_a = this._rowsScrollController) || void 0 === _a ? void 0 : _a.viewportHeight(height, scrollTop)\r\n }\r\n viewportItemSize() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.viewportItemSize.apply(rowsScrollController, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.viewportItemSize.apply(dataSource, arguments)\r\n }\r\n setViewportPosition() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n this._isPaging = false;\r\n if (rowsScrollController) {\r\n rowsScrollController.setViewportPosition.apply(rowsScrollController, arguments)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.setViewportPosition.apply(dataSource, arguments)\r\n }\r\n }\r\n setContentItemSizes(sizes) {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.setContentItemSizes(sizes);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.setContentItemSizes(sizes)\r\n }\r\n getPreloadedRowCount() {\r\n var preloadCount = this.option(\"scrolling.preloadedRowCount\");\r\n var preloadEnabled = this.option(\"scrolling.preloadEnabled\");\r\n if (isDefined(preloadCount)) {\r\n return preloadCount\r\n }\r\n var viewportSize = this.viewportSize();\r\n return preloadEnabled ? 2 * viewportSize : viewportSize\r\n }\r\n getLoadPageParams(byLoadedPage) {\r\n var _a, _b;\r\n var pageSize = this.pageSize();\r\n var viewportParams = this._loadViewportParams;\r\n var lastLoadOptions = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.lastLoadOptions();\r\n var loadedPageIndex = (null === lastLoadOptions || void 0 === lastLoadOptions ? void 0 : lastLoadOptions.pageIndex) || 0;\r\n var loadedTake = (null === lastLoadOptions || void 0 === lastLoadOptions ? void 0 : lastLoadOptions.take) || 0;\r\n var isScrollingBack = this._rowsScrollController.isScrollingBack();\r\n var topPreloadCount = isScrollingBack ? this.getPreloadedRowCount() : 0;\r\n var bottomPreloadCount = isScrollingBack ? 0 : this.getPreloadedRowCount();\r\n var totalCountCorrection = (null === (_b = this._dataSource) || void 0 === _b ? void 0 : _b.totalCountCorrection()) || 0;\r\n var skipWithPreload = Math.max(0, viewportParams.skip - topPreloadCount);\r\n var pageIndex = byLoadedPage ? loadedPageIndex : Math.floor(pageSize ? skipWithPreload / pageSize : 0);\r\n var pageOffset = pageIndex * pageSize;\r\n var skipForCurrentPage = viewportParams.skip - pageOffset;\r\n var loadingTake = viewportParams.take + skipForCurrentPage + bottomPreloadCount - totalCountCorrection;\r\n var take = byLoadedPage ? loadedTake : loadingTake;\r\n var loadPageCount = Math.ceil(pageSize ? take / pageSize : 0);\r\n return {\r\n pageIndex: pageIndex,\r\n loadPageCount: Math.max(1, loadPageCount),\r\n skipForCurrentPage: Math.max(0, skipForCurrentPage)\r\n }\r\n }\r\n _updateVisiblePageIndex(currentPageIndex) {\r\n if (!this._rowsScrollController) {\r\n return\r\n }\r\n if (isDefined(currentPageIndex)) {\r\n this._silentOption(VISIBLE_PAGE_INDEX, currentPageIndex);\r\n this.pageChanged.fire();\r\n return\r\n }\r\n var viewPortItemIndex = this._rowsScrollController.getViewportItemIndex();\r\n var newPageIndex = Math.floor(viewPortItemIndex / this.pageSize());\r\n if (this.pageIndex() !== newPageIndex) {\r\n this._silentOption(VISIBLE_PAGE_INDEX, newPageIndex);\r\n this.updateItems({\r\n changeType: \"pageIndex\"\r\n })\r\n }\r\n }\r\n _getChangedLoadParams() {\r\n var loadedPageParams = this.getLoadPageParams(true);\r\n var {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n } = this.getLoadPageParams();\r\n var pageIndexIsValid = this._pageIndexIsValid(pageIndex);\r\n var result = null;\r\n if (!this._isLoading && pageIndexIsValid && (pageIndex !== loadedPageParams.pageIndex || loadPageCount !== loadedPageParams.loadPageCount)) {\r\n result = {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n }\r\n }\r\n return result\r\n }\r\n _pageIndexIsValid(pageIndex) {\r\n var result = true;\r\n if (isAppendMode(this) && this.hasKnownLastPage() || isVirtualMode(this)) {\r\n result = pageIndex * this.pageSize() < this.totalItemsCount()\r\n }\r\n return result\r\n }\r\n _loadItems(checkLoading, viewportIsFilled) {\r\n var _a, _b;\r\n var virtualPaging = isVirtualPaging(this);\r\n var dataSourceAdapter = this._dataSource;\r\n var changedParams = this._getChangedLoadParams();\r\n var currentLoadPageCount = null !== (_a = null === dataSourceAdapter || void 0 === dataSourceAdapter ? void 0 : dataSourceAdapter.loadPageCount()) && void 0 !== _a ? _a : 0;\r\n var lastRequiredItemCount = this.pageSize() * currentLoadPageCount;\r\n var currentPageIndex = null !== (_b = null === dataSourceAdapter || void 0 === dataSourceAdapter ? void 0 : dataSourceAdapter.pageIndex()) && void 0 !== _b ? _b : 0;\r\n var pageIndexNotChanged = (null === changedParams || void 0 === changedParams ? void 0 : changedParams.pageIndex) === currentPageIndex;\r\n var allLoadedInAppendMode = isAppendMode(this) && this.totalItemsCount() < lastRequiredItemCount;\r\n var isRepaintMode = \"repaint\" === this.option(\"editing.refreshMode\");\r\n var pageIndexIncreased = (null === changedParams || void 0 === changedParams ? void 0 : changedParams.pageIndex) > currentPageIndex;\r\n var result = false;\r\n if (!dataSourceAdapter || virtualPaging && checkLoading && (isRepaintMode && viewportIsFilled || pageIndexIncreased || pageIndexNotChanged && allLoadedInAppendMode)) {\r\n return result\r\n }\r\n if (virtualPaging && this._isLoading) {\r\n this._needUpdateViewportAfterLoading = true\r\n }\r\n if (virtualPaging && changedParams) {\r\n result = true;\r\n dataSourceAdapter.pageIndex(changedParams.pageIndex);\r\n dataSourceAdapter.loadPageCount(changedParams.loadPageCount);\r\n this._repaintChangesOnly = true;\r\n this._needUpdateDimensions = true;\r\n var viewportChanging = this._viewportChanging;\r\n this.load().always(() => {\r\n this._repaintChangesOnly = void 0;\r\n this._needUpdateDimensions = void 0\r\n }).done(() => {\r\n var isLastPage = this.pageCount() > 0 && this.pageIndex() === this.pageCount() - 1;\r\n (viewportChanging || isLastPage) && this._updateVisiblePageIndex();\r\n if (this._needUpdateViewportAfterLoading) {\r\n this._needUpdateViewportAfterLoading = false;\r\n this.loadViewport({\r\n checkLoadedParamsOnly: true\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n loadViewport(params) {\r\n var _a, _b, _c;\r\n var {\r\n checkLoadedParamsOnly: checkLoadedParamsOnly,\r\n checkLoading: checkLoading,\r\n viewportIsNotFilled: viewportIsNotFilled\r\n } = null !== params && void 0 !== params ? params : {};\r\n var virtualPaging = isVirtualPaging(this);\r\n if (virtualPaging || gridCoreUtils.isVirtualRowRendering(this)) {\r\n this._updateLoadViewportParams();\r\n var loadingItemsStarted = this._loadItems(checkLoading, !viewportIsNotFilled);\r\n var isCustomLoading = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.isCustomLoading();\r\n var isLoading = checkLoading && !isCustomLoading && this._isLoading;\r\n var needToUpdateItems = !(loadingItemsStarted || isLoading || checkLoadedParamsOnly);\r\n if (needToUpdateItems) {\r\n var noPendingChangesInEditing = !(null === (_c = null === (_b = this._editingController) || void 0 === _b ? void 0 : _b.getChanges()) || void 0 === _c ? void 0 : _c.length);\r\n this.updateItems({\r\n repaintChangesOnly: true,\r\n needUpdateDimensions: true,\r\n useProcessedItemsCache: noPendingChangesInEditing,\r\n cancelEmptyChanges: true\r\n })\r\n }\r\n }\r\n }\r\n updateViewport() {\r\n var _a, _b;\r\n var viewportSize = this.viewportSize();\r\n var itemCount = this.items().length;\r\n var viewportIsNotFilled = viewportSize > itemCount;\r\n var currentTake = null !== (_b = null === (_a = this._loadViewportParams) || void 0 === _a ? void 0 : _a.take) && void 0 !== _b ? _b : 0;\r\n var rowsScrollController = this._rowsScrollController;\r\n var newTake = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.getViewportParams().take;\r\n (viewportIsNotFilled || currentTake < newTake) && !this._isPaging && itemCount && this.loadViewport({\r\n checkLoading: true,\r\n viewportIsNotFilled: viewportIsNotFilled\r\n })\r\n }\r\n loadIfNeed() {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return\r\n }\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.loadIfNeed();\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.loadIfNeed()\r\n }\r\n getItemSize() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSize.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSize.apply(dataSource, arguments)\r\n }\r\n getItemSizes() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSizes.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSizes.apply(dataSource, arguments)\r\n }\r\n getContentOffset() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getContentOffset.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getContentOffset.apply(dataSource, arguments)\r\n }\r\n refresh(options) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && options && options.load && isAppendMode(this)) {\r\n dataSource.resetCurrentTotalCount()\r\n }\r\n return super.refresh.apply(this, arguments)\r\n }\r\n topItemIndex() {\r\n var _a;\r\n return null === (_a = this._loadViewportParams) || void 0 === _a ? void 0 : _a.skip\r\n }\r\n bottomItemIndex() {\r\n var viewportParams = this._loadViewportParams;\r\n return viewportParams && viewportParams.skip + viewportParams.take\r\n }\r\n virtualItemsCount() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.virtualItemsCount.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.virtualItemsCount.apply(dataSource, arguments)\r\n }\r\n pageIndex(pageIndex) {\r\n var _a;\r\n var virtualPaging = isVirtualPaging(this);\r\n var rowsScrollController = this._rowsScrollController;\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && virtualPaging && rowsScrollController) {\r\n if (void 0 === pageIndex) {\r\n return null !== (_a = this.option(VISIBLE_PAGE_INDEX)) && void 0 !== _a ? _a : 0\r\n }\r\n }\r\n return super.pageIndex.apply(this, arguments)\r\n }\r\n _fireChanged(e) {\r\n super._fireChanged.apply(this, arguments);\r\n var {\r\n operationTypes: operationTypes\r\n } = e;\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isVirtualPaging(this) && operationTypes) {\r\n var {\r\n fullReload: fullReload,\r\n pageIndex: pageIndex\r\n } = operationTypes;\r\n if (e.isDataChanged && !fullReload && pageIndex) {\r\n this._updateVisiblePageIndex(this._dataSource.pageIndex())\r\n }\r\n }\r\n }\r\n _getPagingOptionValue(optionName) {\r\n var result = super._getPagingOptionValue.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isVirtualPaging(this)) {\r\n result = this[optionName]()\r\n }\r\n return result\r\n }\r\n isEmpty() {\r\n return false === this.option(LEGACY_SCROLLING_MODE) ? !this.items(true).length : super.isEmpty.apply(this, arguments)\r\n }\r\n isLastPageLoaded() {\r\n var result = false;\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isVirtualPaging(this)) {\r\n var {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n } = this.getLoadPageParams(true);\r\n var pageCount = this.pageCount();\r\n result = pageIndex + loadPageCount >= pageCount\r\n } else {\r\n result = super.isLastPageLoaded.apply(this, arguments)\r\n }\r\n return result\r\n }\r\n reset() {\r\n this._itemCount = 0;\r\n this._allItems = null;\r\n super.reset.apply(this, arguments)\r\n }\r\n _applyFilter() {\r\n var _a;\r\n null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.loadPageCount(1);\r\n return super._applyFilter.apply(this, arguments)\r\n }\r\n getVirtualContentSize() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.getVirtualContentSize.apply(this._dataSource, arguments)\r\n }\r\n setViewportItemIndex() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.setViewportItemIndex.apply(this._dataSource, arguments)\r\n }\r\n};\r\nexport var resizing = Base => class extends Base {\r\n dispose() {\r\n super.dispose.apply(this, arguments);\r\n clearTimeout(this._resizeTimeout)\r\n }\r\n _updateMasterDataGridCore(masterDataGrid) {\r\n return when(super._updateMasterDataGridCore.apply(this, arguments)).done(masterDataGridUpdated => {\r\n var isNewVirtualMode = isVirtualMode(masterDataGrid) && false === masterDataGrid.option(LEGACY_SCROLLING_MODE);\r\n if (!masterDataGridUpdated && isNewVirtualMode) {\r\n var scrollable = masterDataGrid.getScrollable();\r\n if (scrollable) {\r\n masterDataGrid.updateDimensions()\r\n }\r\n }\r\n })\r\n }\r\n hasResizeTimeout() {\r\n return !!this._resizeTimeout\r\n }\r\n resize() {\r\n var result;\r\n if (isVirtualMode(this) || gridCoreUtils.isVirtualRowRendering(this)) {\r\n clearTimeout(this._resizeTimeout);\r\n this._resizeTimeout = null;\r\n var diff = new Date - this._lastTime;\r\n var updateTimeout = this.option(\"scrolling.updateTimeout\");\r\n if (this._lastTime && diff < updateTimeout) {\r\n result = new Deferred;\r\n this._resizeTimeout = setTimeout(() => {\r\n this._resizeTimeout = null;\r\n super.resize.apply(this).done(result.resolve).fail(result.reject);\r\n this._lastTime = new Date\r\n }, updateTimeout);\r\n this._lastTime = new Date\r\n } else {\r\n result = super.resize.apply(this);\r\n if (this._dataController.isLoaded()) {\r\n this._lastTime = new Date\r\n }\r\n }\r\n } else {\r\n result = super.resize.apply(this)\r\n }\r\n return result\r\n }\r\n};\r\nexport var rowsView = Base => class extends Base {\r\n init() {\r\n var _a;\r\n super.init();\r\n this._dataController.pageChanged.add(pageIndex => {\r\n var scrollTop = this._scrollTop;\r\n this.scrollToPage(null !== pageIndex && void 0 !== pageIndex ? pageIndex : this._dataController.pageIndex());\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && this._scrollTop === scrollTop) {\r\n this._dataController.updateViewport()\r\n }\r\n });\r\n this._dataController.dataSourceChanged.add(() => {\r\n !this._scrollTop && this._scrollToCurrentPageOnResize()\r\n });\r\n null === (_a = this._dataController.stateLoaded) || void 0 === _a ? void 0 : _a.add(() => {\r\n this._scrollToCurrentPageOnResize()\r\n });\r\n this._scrollToCurrentPageOnResize()\r\n }\r\n dispose() {\r\n clearTimeout(this._scrollTimeoutID);\r\n super.dispose()\r\n }\r\n _scrollToCurrentPageOnResize() {\r\n if (this._dataController.pageIndex() > 0) {\r\n var resizeHandler = () => {\r\n this.resizeCompleted.remove(resizeHandler);\r\n this.scrollToPage(this._dataController.pageIndex())\r\n };\r\n this.resizeCompleted.add(resizeHandler)\r\n }\r\n }\r\n scrollToPage(pageIndex) {\r\n var pageSize = this._dataController ? this._dataController.pageSize() : 0;\r\n var scrollPosition;\r\n if (isVirtualMode(this) || isAppendMode(this)) {\r\n var itemSize = this._dataController.getItemSize();\r\n var itemSizes = this._dataController.getItemSizes();\r\n var itemIndex = pageIndex * pageSize;\r\n scrollPosition = itemIndex * itemSize;\r\n for (var index in itemSizes) {\r\n if (parseInt(index) < itemIndex) {\r\n scrollPosition += itemSizes[index] - itemSize\r\n }\r\n }\r\n } else {\r\n scrollPosition = 0\r\n }\r\n this.scrollTo({\r\n y: scrollPosition,\r\n x: this._scrollLeft\r\n })\r\n }\r\n renderDelayedTemplates() {\r\n this.waitAsyncTemplates().done(() => {\r\n this._updateContentPosition(true)\r\n });\r\n super.renderDelayedTemplates.apply(this, arguments)\r\n }\r\n _renderCore(e) {\r\n var startRenderTime = new Date;\r\n var deferred = super._renderCore.apply(this, arguments);\r\n var dataSource = this._dataController._dataSource;\r\n if (dataSource && e) {\r\n var itemCount = e.items ? e.items.length : 20;\r\n var viewportSize = this._dataController.viewportSize() || 20;\r\n if (gridCoreUtils.isVirtualRowRendering(this) && itemCount > 0 && false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n dataSource._renderTime = (new Date - startRenderTime) * viewportSize / itemCount\r\n } else {\r\n dataSource._renderTime = new Date - startRenderTime\r\n }\r\n }\r\n return deferred\r\n }\r\n _getRowElements(tableElement) {\r\n var $rows = super._getRowElements(tableElement);\r\n return $rows && $rows.not(\".\".concat(VIRTUAL_ROW_CLASS))\r\n }\r\n _removeRowsElements(contentTable, removeCount, changeType) {\r\n var rowElements = this._getRowElements(contentTable).toArray();\r\n if (\"append\" === changeType) {\r\n rowElements = rowElements.slice(0, removeCount)\r\n } else {\r\n rowElements = rowElements.slice(-removeCount)\r\n }\r\n rowElements.map(rowElement => {\r\n var $rowElement = $(rowElement);\r\n this._errorHandlingController && this._errorHandlingController.removeErrorRow($rowElement.next());\r\n $rowElement.remove()\r\n })\r\n }\r\n _updateContent(tableElement, change) {\r\n var $freeSpaceRowElements;\r\n var contentElement = this._findContentElement();\r\n var changeType = change && change.changeType;\r\n var d = Deferred();\r\n var contentTable = contentElement.children().first();\r\n if (\"append\" === changeType || \"prepend\" === changeType) {\r\n this.waitAsyncTemplates().done(() => {\r\n var $tBodies = this._getBodies(tableElement);\r\n if (1 === $tBodies.length) {\r\n this._getBodies(contentTable)[\"append\" === changeType ? \"append\" : \"prepend\"]($tBodies.children())\r\n } else {\r\n $tBodies[\"append\" === changeType ? \"appendTo\" : \"prependTo\"](contentTable)\r\n }\r\n tableElement.remove();\r\n $freeSpaceRowElements = this._getFreeSpaceRowElements(contentTable);\r\n removeEmptyRows($freeSpaceRowElements, FREESPACE_CLASS);\r\n if (change.removeCount) {\r\n this._removeRowsElements(contentTable, change.removeCount, changeType)\r\n }\r\n this._restoreErrorRow(contentTable);\r\n d.resolve()\r\n }).fail(d.reject)\r\n } else {\r\n super._updateContent.apply(this, arguments).done(() => {\r\n if (\"update\" === changeType) {\r\n this._restoreErrorRow(contentTable)\r\n }\r\n d.resolve()\r\n }).fail(d.reject)\r\n }\r\n return d.promise().done(() => {\r\n this._updateBottomLoading()\r\n })\r\n }\r\n _addVirtualRow($table, isFixed, location, position) {\r\n if (!position) {\r\n return\r\n }\r\n var $virtualRow = this._createEmptyRow(VIRTUAL_ROW_CLASS, isFixed, position);\r\n $virtualRow = this._wrapRowIfNeed($table, $virtualRow);\r\n this._appendEmptyRow($table, $virtualRow, location)\r\n }\r\n _updateContentItemSizes() {\r\n var rowHeights = this._getRowHeights();\r\n var correctedRowHeights = this._correctRowHeights(rowHeights);\r\n this._dataController.setContentItemSizes(correctedRowHeights)\r\n }\r\n _updateViewportSize(viewportHeight, scrollTop) {\r\n if (!isDefined(viewportHeight)) {\r\n viewportHeight = this._hasHeight ? getOuterHeight(this.element()) : getOuterHeight(getWindow())\r\n }\r\n this._dataController.viewportHeight(viewportHeight, scrollTop)\r\n }\r\n _getRowHeights() {\r\n var _a, _b;\r\n var isPopupEditMode = null === (_b = null === (_a = this._editingController) || void 0 === _a ? void 0 : _a.isPopupEditMode) || void 0 === _b ? void 0 : _b.call(_a);\r\n var rowElements = this._getRowElements(this._tableElement).toArray();\r\n if (isPopupEditMode) {\r\n rowElements = rowElements.filter(row => !$(row).hasClass(ROW_INSERTED))\r\n }\r\n return rowElements.map(row => getBoundingRect(row).height)\r\n }\r\n _correctRowHeights(rowHeights) {\r\n var dataController = this._dataController;\r\n var dataSource = dataController._dataSource;\r\n var correctedRowHeights = [];\r\n var visibleRows = dataController.getVisibleRows();\r\n var itemSize = 0;\r\n var firstCountableItem = true;\r\n var lastLoadIndex = -1;\r\n for (var i = 0; i < rowHeights.length; i++) {\r\n var currentItem = visibleRows[i];\r\n if (!isDefined(currentItem)) {\r\n continue\r\n }\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n if (lastLoadIndex >= 0 && lastLoadIndex !== currentItem.loadIndex) {\r\n correctedRowHeights.push(itemSize);\r\n itemSize = 0\r\n }\r\n lastLoadIndex = currentItem.loadIndex\r\n } else if (isItemCountableByDataSource(currentItem, dataSource)) {\r\n if (firstCountableItem) {\r\n firstCountableItem = false\r\n } else {\r\n correctedRowHeights.push(itemSize);\r\n itemSize = 0\r\n }\r\n }\r\n itemSize += rowHeights[i]\r\n }\r\n itemSize > 0 && correctedRowHeights.push(itemSize);\r\n return correctedRowHeights\r\n }\r\n _updateContentPosition(isRender) {\r\n var rowHeight = this._rowHeight || 20;\r\n this._dataController.viewportItemSize(rowHeight);\r\n if (isVirtualMode(this) || gridCoreUtils.isVirtualRowRendering(this)) {\r\n if (!isRender) {\r\n this._updateContentItemSizes()\r\n }\r\n var top = this._dataController.getContentOffset(\"begin\");\r\n var bottom = this._dataController.getContentOffset(\"end\");\r\n var $tables = this.getTableElements();\r\n var $virtualRows = $tables.children(\"tbody\").children(\".\".concat(VIRTUAL_ROW_CLASS));\r\n removeEmptyRows($virtualRows, VIRTUAL_ROW_CLASS);\r\n $tables.each((index, element) => {\r\n var isFixed = index > 0;\r\n var prevFixed = this._isFixedTableRendering;\r\n this._isFixedTableRendering = isFixed;\r\n this._addVirtualRow($(element), isFixed, \"top\", top);\r\n this._addVirtualRow($(element), isFixed, \"bottom\", bottom);\r\n this._isFixedTableRendering = prevFixed\r\n })\r\n }\r\n }\r\n _isTableLinesDisplaysCorrect(table) {\r\n var hasColumnLines = table.find(\".\".concat(COLUMN_LINES_CLASS)).length > 0;\r\n return hasColumnLines === this.option(\"showColumnLines\")\r\n }\r\n _isColumnElementsEqual($columns, $virtualColumns) {\r\n var result = $columns.length === $virtualColumns.length;\r\n if (result) {\r\n each($columns, (index, element) => {\r\n if (element.style.width !== $virtualColumns[index].style.width) {\r\n result = false;\r\n return result\r\n }\r\n return\r\n })\r\n }\r\n return result\r\n }\r\n _getCellClasses(column) {\r\n var classes = [];\r\n var {\r\n cssClass: cssClass\r\n } = column;\r\n var isExpandColumn = \"expand\" === column.command;\r\n cssClass && classes.push(cssClass);\r\n isExpandColumn && classes.push(this.addWidgetPrefix(GROUP_SPACE_CLASS));\r\n return classes\r\n }\r\n _findBottomLoadPanel($contentElement) {\r\n var $element = $contentElement || this.element();\r\n var $bottomLoadPanel = $element && $element.find(\".\".concat(this.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS)));\r\n if ($bottomLoadPanel && $bottomLoadPanel.length) {\r\n return $bottomLoadPanel\r\n }\r\n }\r\n _updateBottomLoading() {\r\n var virtualMode = isVirtualMode(this);\r\n var appendMode = isAppendMode(this);\r\n var showBottomLoading = !this._dataController.hasKnownLastPage() && this._dataController.isLoaded() && (virtualMode || appendMode);\r\n var $contentElement = this._findContentElement();\r\n var bottomLoadPanelElement = this._findBottomLoadPanel($contentElement);\r\n if (showBottomLoading) {\r\n if (!bottomLoadPanelElement) {\r\n $(\"<div>\").addClass(this.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS)).append(this._createComponent($(\"<div>\"), LoadIndicator).$element()).appendTo($contentElement)\r\n }\r\n } else if (bottomLoadPanelElement) {\r\n bottomLoadPanelElement.remove()\r\n }\r\n }\r\n _handleScroll(e) {\r\n var legacyScrollingMode = true === this.option(LEGACY_SCROLLING_MODE);\r\n var zeroTopPosition = 0 === e.scrollOffset.top;\r\n var isScrollTopChanged = this._scrollTop !== e.scrollOffset.top;\r\n var hasScrolled = isScrollTopChanged || e.forceUpdateScrollPosition;\r\n var isValidScrollTarget = this._hasHeight || !legacyScrollingMode && zeroTopPosition;\r\n if (hasScrolled && isValidScrollTarget && this._rowHeight) {\r\n this._scrollTop = e.scrollOffset.top;\r\n var isVirtualRowRendering = isVirtualMode(this) || \"standard\" !== this.option(\"scrolling.rowRenderingMode\");\r\n if (isVirtualRowRendering && false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._updateContentItemSizes();\r\n this._updateViewportSize(null, this._scrollTop)\r\n }\r\n this._dataController.setViewportPosition(e.scrollOffset.top)\r\n }\r\n super._handleScroll.apply(this, arguments)\r\n }\r\n _needUpdateRowHeight(itemsCount) {\r\n return super._needUpdateRowHeight.apply(this, arguments) || itemsCount > 0 && isAppendMode(this) && !gridCoreUtils.isVirtualRowRendering(this)\r\n }\r\n _updateRowHeight() {\r\n super._updateRowHeight.apply(this, arguments);\r\n if (this._rowHeight) {\r\n this._updateContentPosition();\r\n var viewportHeight = this._hasHeight ? getOuterHeight(this.element()) : getOuterHeight(getWindow());\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._updateViewportSize(viewportHeight);\r\n this._dataController.updateViewport()\r\n } else {\r\n this._dataController.viewportSize(Math.ceil(viewportHeight / this._rowHeight))\r\n }\r\n }\r\n }\r\n updateFreeSpaceRowHeight() {\r\n var result = super.updateFreeSpaceRowHeight.apply(this, arguments);\r\n if (result) {\r\n this._updateContentPosition()\r\n }\r\n return result\r\n }\r\n setLoading(isLoading, messageText) {\r\n var dataController = this._dataController;\r\n var hasBottomLoadPanel = dataController.pageIndex() > 0 && dataController.isLoaded() && !!this._findBottomLoadPanel();\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isLoading && dataController.isViewportChanging()) {\r\n return\r\n }\r\n if (hasBottomLoadPanel) {\r\n isLoading = false\r\n }\r\n super.setLoading.call(this, isLoading, messageText)\r\n }\r\n throwHeightWarningIfNeed() {\r\n if (void 0 === this._hasHeight) {\r\n return\r\n }\r\n var needToThrow = !this._hasHeight && isVirtualPaging(this);\r\n if (needToThrow && !this._heightWarningIsThrown) {\r\n this._heightWarningIsThrown = true;\r\n errors.log(\"W1025\")\r\n }\r\n }\r\n _resizeCore() {\r\n var that = this;\r\n var $element = that.element();\r\n super._resizeCore();\r\n this.throwHeightWarningIfNeed();\r\n if (that.component.$element() && !that._windowScroll && isElementInDom($element)) {\r\n that._windowScroll = subscribeToExternalScrollers($element, scrollPos => {\r\n if (!that._hasHeight && that._rowHeight) {\r\n that._dataController.setViewportPosition(scrollPos)\r\n }\r\n }, that.component.$element());\r\n that.on(\"disposing\", () => {\r\n that._windowScroll.dispose()\r\n })\r\n }\r\n if (false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n that.loadIfNeed()\r\n }\r\n }\r\n loadIfNeed() {\r\n var _a, _b;\r\n null === (_b = null === (_a = this._dataController) || void 0 === _a ? void 0 : _a.loadIfNeed) || void 0 === _b ? void 0 : _b.call(_a)\r\n }\r\n _restoreErrorRow(contentTable) {\r\n var _a;\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n null === (_a = this._errorHandlingController) || void 0 === _a ? void 0 : _a.removeErrorRow()\r\n }\r\n super._restoreErrorRow.apply(this, arguments)\r\n }\r\n};\r\nexport var virtualScrollingModule = {\r\n defaultOptions: () => ({\r\n scrolling: {\r\n timeout: 300,\r\n updateTimeout: 300,\r\n minTimeout: 0,\r\n renderingThreshold: 100,\r\n removeInvisiblePages: true,\r\n rowPageSize: 5,\r\n prerenderedRowChunkSize: 1,\r\n mode: \"standard\",\r\n preloadEnabled: false,\r\n rowRenderingMode: \"standard\",\r\n loadTwoPagesOnStart: false,\r\n legacyMode: false,\r\n prerenderedRowCount: 1\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n data: data,\r\n resizing: resizing\r\n },\r\n views: {\r\n rowsView: rowsView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/virtual_scrolling.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n dataSourceAdapterExtender,\r\n virtualScrollingModule\r\n} from \"../../../grids/grid_core/virtual_scrolling/m_virtual_scrolling\";\r\nimport gridCore from \"../m_core\";\r\nimport dataSourceAdapterProvider from \"../m_data_source_adapter\";\r\ngridCore.registerModule(\"virtualScrolling\", virtualScrollingModule);\r\ndataSourceAdapterProvider.extend(dataSourceAdapterExtender);\r\n","/**\r\n * DevExtreme (esm/__internal/ui/overlay/m_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n getInnerHeight,\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isNumeric\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nvar WINDOW_HEIGHT_PERCENT = .9;\r\nexport var getElementMaxHeightByWindow = ($element, startLocation) => {\r\n var $window = $(getWindow());\r\n var {\r\n top: elementOffset\r\n } = $element.offset();\r\n var actualOffset;\r\n if (isNumeric(startLocation)) {\r\n if (startLocation < elementOffset) {\r\n return elementOffset - startLocation\r\n }\r\n actualOffset = getInnerHeight($window) - startLocation + $window.scrollTop()\r\n } else {\r\n var offsetTop = elementOffset - $window.scrollTop();\r\n var offsetBottom = getInnerHeight($window) - offsetTop - getOuterHeight($element);\r\n actualOffset = Math.max(offsetTop, offsetBottom)\r\n }\r\n return actualOffset * WINDOW_HEIGHT_PERCENT\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/menu/m_submenu.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../../../ui/context_menu\";\r\nimport animationPosition from \"../../../animation/position\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getWidth,\r\n setHeight,\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport ContextMenu from \"../../ui/context_menu/m_context_menu\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nclass Submenu extends ContextMenu {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n tabIndex: null,\r\n onHoverStart: noop\r\n })\r\n }\r\n _initDataAdapter() {\r\n this._dataAdapter = this.option(\"_dataAdapter\");\r\n if (!this._dataAdapter) {\r\n super._initDataAdapter()\r\n }\r\n }\r\n _renderContentImpl() {\r\n this._renderContextMenuOverlay();\r\n super._renderContentImpl();\r\n var node = this._dataAdapter.getNodeByKey(this.option(\"_parentKey\"));\r\n node && this._renderItems(this._getChildNodes(node));\r\n this._renderDelimiter()\r\n }\r\n _renderDelimiter() {\r\n this.$contentDelimiter = $(\"<div>\").appendTo(this._itemContainer()).addClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)\r\n }\r\n _getOverlayOptions() {\r\n return extend(true, super._getOverlayOptions(), {\r\n onPositioned: this._overlayPositionedActionHandler.bind(this),\r\n position: {\r\n precise: true\r\n }\r\n })\r\n }\r\n _overlayPositionedActionHandler(arg) {\r\n this._showDelimiter(arg)\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n this._toggleFocusClass(false, e.currentTarget)\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _hoverStartHandler(e) {\r\n var hoverStartAction = this.option(\"onHoverStart\");\r\n hoverStartAction(e);\r\n super._hoverStartHandler(e);\r\n this._toggleFocusClass(true, e.currentTarget)\r\n }\r\n _drawSubmenu($rootItem) {\r\n this._actions.onShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._drawSubmenu($rootItem);\r\n this._actions.onShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _hideSubmenu($rootItem) {\r\n this._actions.onHiding({\r\n cancel: true,\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._hideSubmenu($rootItem);\r\n this._actions.onHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _showDelimiter(arg) {\r\n if (!this.$contentDelimiter) {\r\n return\r\n }\r\n var $submenu = this._itemContainer().children(\".\".concat(DX_SUBMENU_CLASS)).eq(0);\r\n var $rootItem = this.option(\"position\").of.find(\".dx-context-menu-container-border\");\r\n var position = {\r\n of: $submenu,\r\n precise: true\r\n };\r\n var containerOffset = arg.position;\r\n var vLocation = containerOffset.v.location;\r\n var hLocation = containerOffset.h.location;\r\n var rootOffset = $rootItem.offset();\r\n var offsetLeft = Math.round(rootOffset.left);\r\n var offsetTop = Math.round(rootOffset.top);\r\n var rootWidth = getWidth($rootItem);\r\n var rootHeight = getHeight($rootItem);\r\n var submenuWidth = getWidth($submenu);\r\n var submenuHeight = getHeight($submenu);\r\n this.$contentDelimiter.css(\"display\", \"block\");\r\n setWidth(this.$contentDelimiter, this._isMenuHorizontal() ? rootWidth < submenuWidth ? rootWidth : submenuWidth : 3);\r\n setHeight(this.$contentDelimiter, this._isMenuHorizontal() ? 3 : rootHeight < submenuHeight ? rootHeight : submenuHeight);\r\n if (this._isMenuHorizontal()) {\r\n if (vLocation > offsetTop) {\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"0 -2.5\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"0 -2.5\";\r\n position.at = position.my = \"right top\"\r\n }\r\n } else {\r\n setHeight(this.$contentDelimiter, 5);\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"0 5\";\r\n position.at = position.my = \"left bottom\"\r\n } else {\r\n position.offset = \"0 5\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n } else if (hLocation > offsetLeft) {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"-2.5 0\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-2.5 0\";\r\n position.at = position.my = \"left bottom\"\r\n }\r\n } else if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"2.5 0\";\r\n position.at = position.my = \"right top\"\r\n } else {\r\n position.offset = \"2.5 0\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n animationPosition.setup(this.$contentDelimiter, position)\r\n }\r\n _getContextMenuPosition() {\r\n return this.option(\"position\")\r\n }\r\n isOverlayVisible() {\r\n return this._overlay.option(\"visible\")\r\n }\r\n getOverlayContent() {\r\n return this._overlay.$content()\r\n }\r\n}\r\nexport default Submenu;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/menu/m_menu.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n end as hoverEventEnd\r\n} from \"../../../events/hover\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport Button from \"../../../ui/button\";\r\nimport Overlay from \"../../../ui/overlay/ui.overlay\";\r\nimport TreeView from \"../../../ui/tree_view\";\r\nimport MenuBase from \"../../ui/context_menu/m_menu_base\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../../ui/overlay/m_utils\";\r\nimport Submenu from \"./m_submenu\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_VERTICAL_CLASS = \"\".concat(DX_MENU_CLASS, \"-vertical\");\r\nvar DX_MENU_HORIZONTAL_CLASS = \"\".concat(DX_MENU_CLASS, \"-horizontal\");\r\nvar DX_MENU_ITEM_CLASS = \"\".concat(DX_MENU_CLASS, \"-item\");\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = \"\".concat(DX_MENU_CLASS, \"-items-container\");\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = \"\".concat(DX_MENU_ITEM_CLASS, \"-expanded\");\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS = \"\".concat(DX_CONTEXT_MENU_CLASS, \"-container-border\");\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar DX_STATE_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DX_ADAPTIVE_MODE_CLASS = \"\".concat(DX_MENU_CLASS, \"-adaptive-mode\");\r\nvar DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS = \"\".concat(DX_MENU_CLASS, \"-hamburger-button\");\r\nvar DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS = \"\".concat(DX_ADAPTIVE_MODE_CLASS, \"-overlay-wrapper\");\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar SHOW_SUBMENU_OPERATION = \"showSubmenu\";\r\nvar NEXTITEM_OPERATION = \"nextItem\";\r\nvar PREVITEM_OPERATION = \"prevItem\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar ACTIONS = [\"onSubmenuShowing\", \"onSubmenuShown\", \"onSubmenuHiding\", \"onSubmenuHidden\", \"onItemContextMenu\", \"onItemClick\", \"onSelectionChanged\", \"onItemRendered\"];\r\nclass Menu extends MenuBase {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n submenuDirection: \"auto\",\r\n showFirstSubmenuMode: {\r\n name: \"onClick\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n hideSubmenuOnMouseLeave: false,\r\n onSubmenuShowing: null,\r\n onSubmenuShown: null,\r\n onSubmenuHiding: null,\r\n onSubmenuHidden: null,\r\n adaptivityEnabled: false\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _itemElements() {\r\n var rootMenuElements = super._itemElements();\r\n var submenuElements = this._submenuItemElements();\r\n return rootMenuElements.add(submenuElements)\r\n }\r\n _submenuItemElements() {\r\n var elements = [];\r\n var itemSelector = \".\".concat(DX_MENU_ITEM_CLASS);\r\n var currentSubmenu = this._submenus.length && this._submenus[0];\r\n if (currentSubmenu && currentSubmenu.itemsContainer()) {\r\n elements = currentSubmenu.itemsContainer().find(itemSelector)\r\n }\r\n return elements\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getAvailableItems();\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n var $activeItem = this._getActiveItem(true);\r\n var argument;\r\n var operation;\r\n var navigationAction;\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(PREVITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_DOWN:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(NEXTITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_RIGHT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(NEXTITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_LEFT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(PREVITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n if ($newTarget && 0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n }\r\n _getItemsNavigationOperation(operation) {\r\n var navOperation = operation;\r\n if (this.option(\"rtlEnabled\")) {\r\n navOperation = operation === PREVITEM_OPERATION ? NEXTITEM_OPERATION : PREVITEM_OPERATION\r\n }\r\n return navOperation\r\n }\r\n _getKeyboardNavigationAction(operation, argument) {\r\n var action = noop;\r\n switch (operation) {\r\n case SHOW_SUBMENU_OPERATION:\r\n if (!argument.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n action = this._showSubmenu.bind(this, argument)\r\n }\r\n break;\r\n case NEXTITEM_OPERATION:\r\n action = this._nextItem.bind(this, argument);\r\n break;\r\n case PREVITEM_OPERATION:\r\n action = this._prevItem.bind(this, argument)\r\n }\r\n return action\r\n }\r\n _clean() {\r\n super._clean();\r\n this.option(\"templatesRenderAsynchronously\") && clearTimeout(this._resizeEventTimer)\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n if (!this._menuItemsWidth) {\r\n this._updateItemsWidthCache()\r\n }\r\n this._dimensionChanged()\r\n }\r\n }\r\n _isAdaptivityEnabled() {\r\n return this.option(\"adaptivityEnabled\") && \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _updateItemsWidthCache() {\r\n var $menuItems = this.$element().find(\"ul\").first().children(\"li\").children(\".\".concat(DX_MENU_ITEM_CLASS));\r\n this._menuItemsWidth = this._getSummaryItemsSize(\"width\", $menuItems, true)\r\n }\r\n _dimensionChanged() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n var containerWidth = getOuterWidth(this.$element());\r\n this._toggleAdaptiveMode(this._menuItemsWidth > containerWidth)\r\n }\r\n _init() {\r\n super._init();\r\n this._submenus = []\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action)\r\n })\r\n }\r\n _initMarkup() {\r\n this._visibleSubmenu = null;\r\n this.$element().addClass(DX_MENU_CLASS);\r\n super._initMarkup();\r\n this._addCustomCssClass(this.$element());\r\n this.setAria(\"role\", \"menubar\")\r\n }\r\n _render() {\r\n super._render();\r\n this._initAdaptivity()\r\n }\r\n _renderHamburgerButton() {\r\n this._hamburger = new Button($(\"<div>\").addClass(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS), {\r\n icon: \"menu\",\r\n activeStateEnabled: false,\r\n onClick: this._toggleTreeView.bind(this)\r\n });\r\n return this._hamburger.$element()\r\n }\r\n _toggleTreeView(state) {\r\n if (isPlainObject(state)) {\r\n state = !this._overlay.option(\"visible\")\r\n }\r\n this._overlay.option(\"visible\", state);\r\n if (state) {\r\n this._treeView.focus()\r\n }\r\n this._toggleHamburgerActiveState(state)\r\n }\r\n _toggleHamburgerActiveState(state) {\r\n this._hamburger && this._hamburger.$element().toggleClass(DX_STATE_ACTIVE_CLASS, state)\r\n }\r\n _toggleAdaptiveMode(state) {\r\n var $menuItemsContainer = this.$element().find(\".\".concat(DX_MENU_HORIZONTAL_CLASS));\r\n var $adaptiveElements = this.$element().find(\".\".concat(DX_ADAPTIVE_MODE_CLASS));\r\n if (state) {\r\n this._hideVisibleSubmenu()\r\n } else {\r\n this._treeView && this._treeView.collapseAll();\r\n this._overlay && this._toggleTreeView(state)\r\n }\r\n $menuItemsContainer.toggle(!state);\r\n $adaptiveElements.toggle(state)\r\n }\r\n _removeAdaptivity() {\r\n if (!this._$adaptiveContainer) {\r\n return\r\n }\r\n this._toggleAdaptiveMode(false);\r\n this._$adaptiveContainer.remove();\r\n this._$adaptiveContainer = null;\r\n this._treeView = null;\r\n this._hamburger = null;\r\n this._overlay = null\r\n }\r\n _treeviewItemClickHandler(e) {\r\n this._actions.onItemClick(e);\r\n if (!e.node.children.length) {\r\n this._toggleTreeView(false)\r\n }\r\n }\r\n _getAdaptiveOverlayOptions() {\r\n var rtl = this.option(\"rtlEnabled\");\r\n var position = rtl ? \"right\" : \"left\";\r\n return {\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => getElementMaxHeightByWindow(this.$element()),\r\n deferRendering: false,\r\n shading: false,\r\n animation: false,\r\n hideOnParentScroll: true,\r\n onHidden: () => {\r\n this._toggleHamburgerActiveState(false)\r\n },\r\n height: \"auto\",\r\n hideOnOutsideClick: e => !$(e.target).closest(\".\".concat(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS)).length,\r\n position: {\r\n collision: \"flipfit\",\r\n at: \"bottom \".concat(position),\r\n my: \"top \".concat(position),\r\n of: this._hamburger.$element()\r\n }\r\n }\r\n }\r\n _getTreeViewOptions() {\r\n var menuOptions = {};\r\n each([\"rtlEnabled\", \"width\", \"accessKey\", \"activeStateEnabled\", \"animation\", \"dataSource\", \"disabled\", \"displayExpr\", \"displayExpr\", \"focusStateEnabled\", \"hint\", \"hoverStateEnabled\", \"itemsExpr\", \"items\", \"itemTemplate\", \"selectedExpr\", \"selectionMode\", \"tabIndex\", \"visible\"], (_, option) => {\r\n menuOptions[option] = this.option(option)\r\n });\r\n each([\"onItemContextMenu\", \"onSelectionChanged\", \"onItemRendered\"], (_, actionName) => {\r\n menuOptions[actionName] = e => {\r\n this._actions[actionName](e)\r\n }\r\n });\r\n return extend(menuOptions, {\r\n dataSource: this.getDataSource(),\r\n animationEnabled: !!this.option(\"animation\"),\r\n onItemClick: this._treeviewItemClickHandler.bind(this),\r\n onItemExpanded: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuShown(e)\r\n },\r\n onItemCollapsed: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuHidden(e)\r\n },\r\n selectNodesRecursive: false,\r\n selectByClick: this.option(\"selectByClick\"),\r\n expandEvent: \"click\",\r\n _supportItemUrl: true\r\n })\r\n }\r\n _initAdaptivity() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n this._$adaptiveContainer = $(\"<div>\").addClass(DX_ADAPTIVE_MODE_CLASS);\r\n var $hamburger = this._renderHamburgerButton();\r\n this._treeView = this._createComponent($(\"<div>\"), TreeView, this._getTreeViewOptions());\r\n this._overlay = this._createComponent($(\"<div>\"), Overlay, this._getAdaptiveOverlayOptions());\r\n this._overlay.$content().append(this._treeView.$element()).addClass(DX_ADAPTIVE_MODE_CLASS).addClass(this.option(\"cssClass\"));\r\n this._overlay.$wrapper().addClass(DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS);\r\n this._$adaptiveContainer.append($hamburger);\r\n this._$adaptiveContainer.append(this._overlay.$element());\r\n this.$element().append(this._$adaptiveContainer);\r\n this._updateItemsWidthCache();\r\n this._dimensionChanged()\r\n }\r\n _getDelay(delayType) {\r\n var {\r\n delay: delay\r\n } = this.option(\"showFirstSubmenuMode\");\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[delayType]\r\n }\r\n return isObject(delay) ? delay[delayType] : delay\r\n }\r\n _keyboardHandler(e) {\r\n return super._keyboardHandler(e, !!this._visibleSubmenu)\r\n }\r\n _renderContainer() {\r\n var $wrapper = $(\"<div>\");\r\n $wrapper.appendTo(this.$element()).addClass(this._isMenuHorizontal() ? DX_MENU_HORIZONTAL_CLASS : DX_MENU_VERTICAL_CLASS);\r\n return super._renderContainer($wrapper)\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n var submenu = this._createSubmenu(node, $itemFrame);\r\n this._submenus.push(submenu);\r\n this._renderBorderElement($itemFrame);\r\n return submenu\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat(this._visibleSubmenu)\r\n }\r\n _createSubmenu(node, $rootItem) {\r\n var $submenuContainer = $(\"<div>\").addClass(DX_CONTEXT_MENU_CLASS).appendTo($rootItem);\r\n var items = this._getChildNodes(node);\r\n var subMenu = this._createComponent($submenuContainer, Submenu, extend(this._getSubmenuOptions(), {\r\n _dataAdapter: this._dataAdapter,\r\n _parentKey: node.internalFields.key,\r\n items: items,\r\n onHoverStart: this._clearTimeouts.bind(this),\r\n position: this.getSubmenuPosition($rootItem)\r\n }));\r\n this._attachSubmenuHandlers($rootItem, subMenu);\r\n return subMenu\r\n }\r\n _getSubmenuOptions() {\r\n var $submenuTarget = $(\"<div>\");\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n return {\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n target: $submenuTarget,\r\n orientation: this.option(\"orientation\"),\r\n selectionMode: this.option(\"selectionMode\"),\r\n cssClass: this.option(\"cssClass\"),\r\n selectByClick: this.option(\"selectByClick\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n showSubmenuMode: this.option(\"showSubmenuMode\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n disabledExpr: this.option(\"disabledExpr\"),\r\n selectedExpr: this.option(\"selectedExpr\"),\r\n itemsExpr: this.option(\"itemsExpr\"),\r\n onFocusedItemChanged: e => {\r\n if (!e.component.option(\"visible\")) {\r\n return\r\n }\r\n this.option(\"focusedElement\", e.component.option(\"focusedElement\"))\r\n },\r\n onSelectionChanged: this._nestedItemOnSelectionChangedHandler.bind(this),\r\n onItemClick: this._nestedItemOnItemClickHandler.bind(this),\r\n onItemRendered: this._nestedItemOnItemRenderedHandler.bind(this),\r\n onLeftFirstItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, PREVITEM_OPERATION),\r\n onLeftLastItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION),\r\n onCloseRootSubmenu: this._moveMainMenuFocus.bind(this, isMenuHorizontal ? PREVITEM_OPERATION : null),\r\n onExpandLastSubmenu: isMenuHorizontal ? this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION) : null\r\n }\r\n }\r\n _getShowFirstSubmenuMode() {\r\n if (!this._isDesktopDevice()) {\r\n return \"onClick\"\r\n }\r\n var optionValue = this.option(\"showFirstSubmenuMode\");\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n }\r\n _moveMainMenuFocus(direction) {\r\n var $items = this._getAvailableItems();\r\n var itemCount = $items.length;\r\n var $currentItem = $items.filter(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).eq(0);\r\n var itemIndex = $items.index($currentItem);\r\n this._hideSubmenu(this._visibleSubmenu);\r\n itemIndex += direction === PREVITEM_OPERATION ? -1 : 1;\r\n if (itemIndex >= itemCount) {\r\n itemIndex = 0\r\n } else if (itemIndex < 0) {\r\n itemIndex = itemCount - 1\r\n }\r\n var $newItem = $items.eq(itemIndex);\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n }\r\n _nestedItemOnSelectionChangedHandler(args) {\r\n var selectedItem = args.addedItems.length && args.addedItems[0];\r\n var submenu = Submenu.getInstance(args.element);\r\n var {\r\n onSelectionChanged: onSelectionChanged\r\n } = this._actions;\r\n onSelectionChanged(args);\r\n selectedItem && this._clearSelectionInSubmenus(selectedItem[0], submenu);\r\n this._clearRootSelection();\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem)\r\n }\r\n _clearSelectionInSubmenus(item, targetSubmenu) {\r\n var cleanAllSubmenus = !arguments.length;\r\n each(this._submenus, (index, submenu) => {\r\n var $submenu = submenu._itemContainer();\r\n var isOtherItem = !$submenu.is(targetSubmenu && targetSubmenu._itemContainer());\r\n var $selectedItem = $submenu.find(\".\".concat(this._selectedItemClass()));\r\n if (isOtherItem && $selectedItem.length || cleanAllSubmenus) {\r\n $selectedItem.removeClass(this._selectedItemClass());\r\n var selectedItemData = this._getItemData($selectedItem);\r\n if (selectedItemData) {\r\n selectedItemData.selected = false\r\n }\r\n submenu._clearSelectedItems()\r\n }\r\n })\r\n }\r\n _clearRootSelection() {\r\n var $prevSelectedItem = this.$element().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).first().children().children().filter(\".\".concat(this._selectedItemClass()));\r\n if ($prevSelectedItem.length) {\r\n var prevSelectedItemData = this._getItemData($prevSelectedItem);\r\n prevSelectedItemData.selected = false;\r\n $prevSelectedItem.removeClass(this._selectedItemClass())\r\n }\r\n }\r\n _nestedItemOnItemClickHandler(e) {\r\n this._actions.onItemClick(e)\r\n }\r\n _nestedItemOnItemRenderedHandler(e) {\r\n this._actions.onItemRendered(e)\r\n }\r\n _attachSubmenuHandlers($menuAnchorItem, submenu) {\r\n var $submenuOverlayContent = submenu.getOverlayContent();\r\n var submenus = $submenuOverlayContent.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuMouseLeaveName = addNamespace(hoverEventEnd, \"\".concat(this.NAME, \"_submenu\"));\r\n submenu.option({\r\n onShowing: this._submenuOnShowingHandler.bind(this, $menuAnchorItem, submenu),\r\n onShown: this._submenuOnShownHandler.bind(this, $menuAnchorItem, submenu),\r\n onHiding: this._submenuOnHidingHandler.bind(this, $menuAnchorItem, submenu),\r\n onHidden: this._submenuOnHiddenHandler.bind(this, $menuAnchorItem, submenu)\r\n });\r\n each(submenus, (index, submenu) => {\r\n eventsEngine.off(submenu, submenuMouseLeaveName);\r\n eventsEngine.on(submenu, submenuMouseLeaveName, null, this._submenuMouseLeaveHandler.bind(this, $menuAnchorItem))\r\n })\r\n }\r\n _submenuOnShowingHandler($rootItem, submenu) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n this._actions.onSubmenuShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n });\r\n $border.show();\r\n $rootItem.addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _submenuOnShownHandler($rootItem, submenu) {\r\n this._actions.onSubmenuShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuOnHidingHandler($rootItem, submenu, eventArgs) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n var args = eventArgs;\r\n args.rootItem = getPublicElement($rootItem);\r\n args.submenu = submenu;\r\n this._actions.onSubmenuHiding(args);\r\n eventArgs = args;\r\n if (!eventArgs.cancel) {\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n $border.hide();\r\n $rootItem.removeClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n }\r\n _submenuOnHiddenHandler($rootItem, submenu) {\r\n this._actions.onSubmenuHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuMouseLeaveHandler($rootItem, eventArgs) {\r\n var target = $(eventArgs.relatedTarget).parents(\".\".concat(DX_CONTEXT_MENU_CLASS))[0];\r\n var contextMenu = this._getSubmenuByRootElement($rootItem).getOverlayContent()[0];\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && target !== contextMenu) {\r\n this._clearTimeouts();\r\n setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideSubmenuAfterTimeout() {\r\n if (!this._visibleSubmenu) {\r\n return\r\n }\r\n var isRootItemHovered = $(this._visibleSubmenu.$element().context).hasClass(DX_STATE_HOVER_CLASS);\r\n var isSubmenuItemHovered = this._visibleSubmenu.getOverlayContent().find(\".\".concat(DX_STATE_HOVER_CLASS)).length;\r\n var hoveredElementFromSubMenu = this._visibleSubmenu.getOverlayContent().get(0).querySelector(\":hover\");\r\n if (!hoveredElementFromSubMenu && !isSubmenuItemHovered && !isRootItemHovered) {\r\n this._visibleSubmenu.hide()\r\n }\r\n }\r\n _getSubmenuByRootElement($rootItem) {\r\n if (!$rootItem) {\r\n return false\r\n }\r\n var $submenu = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CLASS));\r\n return $submenu.length && Submenu.getInstance($submenu)\r\n }\r\n getSubmenuPosition($rootItem) {\r\n var isHorizontalMenu = this._isMenuHorizontal();\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var submenuPosition = {\r\n collision: \"flip\",\r\n of: $rootItem,\r\n precise: true\r\n };\r\n switch (submenuDirection) {\r\n case \"leftortop\":\r\n submenuPosition.at = \"left top\";\r\n submenuPosition.my = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n break;\r\n case \"rightorbottom\":\r\n submenuPosition.at = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n submenuPosition.my = \"left top\";\r\n break;\r\n default:\r\n if (isHorizontalMenu) {\r\n submenuPosition.at = rtlEnabled ? \"right bottom\" : \"left bottom\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n } else {\r\n submenuPosition.at = rtlEnabled ? \"left top\" : \"right top\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n }\r\n }\r\n return submenuPosition\r\n }\r\n _renderBorderElement($item) {\r\n $(\"<div>\").appendTo($item).addClass(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS).hide()\r\n }\r\n _itemPointerDownHandler(e) {\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n if ($closestItem.hasClass(\"dx-menu-item-has-submenu\")) {\r\n this.option(\"focusedElement\", null);\r\n return\r\n }\r\n super._itemPointerDownHandler(e)\r\n }\r\n _hoverStartHandler(e) {\r\n var mouseMoveEventName = addNamespace(pointerEvents.move, this.NAME);\r\n var $item = this._getItemElementByEventArgs(e);\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n var isSelectionActive = isDefined(e.buttons) && 1 === e.buttons || !isDefined(e.buttons) && 1 === e.which;\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n eventsEngine.off($item, mouseMoveEventName);\r\n if (!this._hasChildren(node)) {\r\n this._showSubmenuTimer = setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"));\r\n return\r\n }\r\n if (\"onHover\" === this._getShowFirstSubmenuMode() && !isSelectionActive) {\r\n var submenu = this._getSubmenuByElement($item);\r\n this._clearTimeouts();\r\n if (!submenu.isOverlayVisible()) {\r\n eventsEngine.on($item, mouseMoveEventName, this._itemMouseMoveHandler.bind(this));\r\n this._showSubmenuTimer = this._getDelay(\"hide\")\r\n }\r\n }\r\n }\r\n _hoverEndHandler(eventArg) {\r\n var $item = this._getItemElementByEventArgs(eventArg);\r\n var relatedTarget = $(eventArg.relatedTarget);\r\n super._hoverEndHandler(eventArg);\r\n this._clearTimeouts();\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n if (relatedTarget.hasClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)) {\r\n return\r\n }\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && !relatedTarget.hasClass(DX_MENU_ITEMS_CONTAINER_CLASS)) {\r\n this._hideSubmenuTimer = setTimeout(() => {\r\n this._hideSubmenuAfterTimeout()\r\n }, this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideVisibleSubmenu() {\r\n if (!this._visibleSubmenu) {\r\n return false\r\n }\r\n this._hideSubmenu(this._visibleSubmenu);\r\n return true\r\n }\r\n _showSubmenu($itemElement) {\r\n var submenu = this._getSubmenuByElement($itemElement);\r\n if (this._visibleSubmenu !== submenu) {\r\n this._hideVisibleSubmenu()\r\n }\r\n if (submenu) {\r\n this._clearTimeouts();\r\n this.focus();\r\n submenu.show();\r\n this.option(\"focusedElement\", submenu.option(\"focusedElement\"))\r\n }\r\n this._visibleSubmenu = submenu;\r\n this._hoveredRootItem = $itemElement\r\n }\r\n _hideSubmenu(submenu) {\r\n if (submenu) {\r\n submenu.hide()\r\n }\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n this._hoveredRootItem = null\r\n }\r\n _itemMouseMoveHandler(e) {\r\n if (e.pointers && e.pointers.length) {\r\n return\r\n }\r\n var $item = $(e.currentTarget);\r\n if (!isDefined(this._showSubmenuTimer)) {\r\n return\r\n }\r\n this._clearTimeouts();\r\n this._showSubmenuTimer = setTimeout(() => {\r\n var submenu = this._getSubmenuByElement($item);\r\n if (submenu && !submenu.isOverlayVisible()) {\r\n this._showSubmenu($item)\r\n }\r\n }, this._getDelay(\"show\"))\r\n }\r\n _clearTimeouts() {\r\n clearTimeout(this._hideSubmenuTimer);\r\n clearTimeout(this._showSubmenuTimer)\r\n }\r\n _getSubmenuByElement($itemElement, itemData) {\r\n var submenu = this._getSubmenuByRootElement($itemElement);\r\n if (submenu) {\r\n return submenu\r\n }\r\n itemData = null !== itemData && void 0 !== itemData ? itemData : this._getItemData($itemElement);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n return this._hasChildren(node) && this._renderSubmenuItems(node, $itemElement)\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n var args = actionArgs.args.length && actionArgs.args[0];\r\n if (!args || this._disabledGetter(args.itemData)) {\r\n return\r\n }\r\n var $itemElement = $(args.itemElement);\r\n var currentSubmenu = this._getSubmenuByElement($itemElement, args.itemData);\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (this._visibleSubmenu) {\r\n if (this._visibleSubmenu === currentSubmenu) {\r\n if (\"onClick\" === this.option(\"showFirstSubmenuMode\")) {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n return\r\n }\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n if (!currentSubmenu) {\r\n return\r\n }\r\n if (!currentSubmenu.isOverlayVisible()) {\r\n this._showSubmenu($itemElement)\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"orientation\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"showFirstSubmenuMode\":\r\n case \"hideSubmenuOnMouseLeave\":\r\n break;\r\n case \"showSubmenuMode\":\r\n this._changeSubmenusOption(args.name, args.value);\r\n break;\r\n case \"adaptivityEnabled\":\r\n args.value ? this._initAdaptivity() : this._removeAdaptivity();\r\n break;\r\n case \"width\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value);\r\n this._overlay.option(args.name, args.value)\r\n }\r\n super._optionChanged(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"animation\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(\"animationEnabled\", !!args.value)\r\n }\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n if (this._isAdaptivityEnabled() && (args.name === args.fullName || \"items\" === args.name)) {\r\n this._treeView.option(args.fullName, args.value)\r\n }\r\n super._optionChanged(args)\r\n }\r\n }\r\n _changeSubmenusOption(name, value) {\r\n each(this._submenus, (index, submenu) => {\r\n submenu.option(name, value)\r\n })\r\n }\r\n selectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n unselectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n}\r\nregisterComponent(\"dxMenu\", Menu);\r\nexport default Menu;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_row.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Editor from \"../../../../ui/editor/editor\";\r\nimport Menu from \"../../../../ui/menu\";\r\nimport Overlay from \"../../../../ui/overlay/ui.overlay\";\r\nimport {\r\n selectView\r\n} from \"../../../../ui/shared/accessibility\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar OPERATION_ICONS = {\r\n \"=\": \"filter-operation-equals\",\r\n \"<>\": \"filter-operation-not-equals\",\r\n \"<\": \"filter-operation-less\",\r\n \"<=\": \"filter-operation-less-equal\",\r\n \">\": \"filter-operation-greater\",\r\n \">=\": \"filter-operation-greater-equal\",\r\n default: \"filter-operation-default\",\r\n notcontains: \"filter-operation-not-contains\",\r\n contains: \"filter-operation-contains\",\r\n startswith: \"filter-operation-starts-with\",\r\n endswith: \"filter-operation-ends-with\",\r\n between: \"filter-operation-between\"\r\n};\r\nvar OPERATION_DESCRIPTORS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n between: \"between\"\r\n};\r\nvar FILTERING_TIMEOUT = 700;\r\nvar CORRECT_FILTER_RANGE_OVERLAY_WIDTH = 1;\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar FILTER_RANGE_OVERLAY_CLASS = \"filter-range-overlay\";\r\nvar FILTER_RANGE_START_CLASS = \"filter-range-start\";\r\nvar FILTER_RANGE_END_CLASS = \"filter-range-end\";\r\nvar MENU_CLASS = \"dx-menu\";\r\nvar EDITOR_WITH_MENU_CLASS = \"dx-editor-with-menu\";\r\nvar EDITOR_CONTAINER_CLASS = \"dx-editor-container\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar FILTER_MENU = \"dx-filter-menu\";\r\nvar APPLY_BUTTON_CLASS = \"dx-apply-button\";\r\nvar HIGHLIGHT_OUTLINE_CLASS = \"dx-highlight-outline\";\r\nvar FOCUSED_CLASS = \"dx-focused\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FILTER_RANGE_CONTENT_CLASS = \"dx-filter-range-content\";\r\nvar FILTER_MODIFIED_CLASS = \"dx-filter-modified\";\r\nvar EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nvar BETWEEN_OPERATION_DATA_TYPES = [\"date\", \"datetime\", \"number\"];\r\nvar ARIA_SEARCH_BOX = messageLocalization.format(\"dxDataGrid-ariaSearchBox\");\r\n\r\nfunction isOnClickApplyFilterMode(that) {\r\n return \"onClick\" === that.option(\"filterRow.applyFilter\")\r\n}\r\nvar getEditorInstance = function($editorContainer) {\r\n var $editor = $editorContainer && $editorContainer.children();\r\n var componentNames = $editor && $editor.data(\"dxComponents\");\r\n var editor = componentNames && componentNames.length && $editor.data(componentNames[0]);\r\n if (editor instanceof Editor) {\r\n return editor\r\n }\r\n return null\r\n};\r\nvar getRangeTextByFilterValue = function(that, column) {\r\n var result = \"\";\r\n var rangeEnd = \"\";\r\n var filterValue = getColumnFilterValue(that, column);\r\n var formatOptions = gridCoreUtils.getFormatOptionsByColumn(column, \"filterRow\");\r\n if (Array.isArray(filterValue)) {\r\n result = gridCoreUtils.formatValue(filterValue[0], formatOptions);\r\n rangeEnd = gridCoreUtils.formatValue(filterValue[1], formatOptions);\r\n if (\"\" !== rangeEnd) {\r\n result += \" - \".concat(rangeEnd)\r\n }\r\n } else if (isDefined(filterValue)) {\r\n result = gridCoreUtils.formatValue(filterValue, formatOptions)\r\n }\r\n return result\r\n};\r\n\r\nfunction getColumnFilterValue(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedFilterValue ? column.bufferedFilterValue : column.filterValue\r\n }\r\n}\r\nvar getColumnSelectedFilterOperation = function(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedSelectedFilterOperation ? column.bufferedSelectedFilterOperation : column.selectedFilterOperation\r\n }\r\n};\r\nvar isValidFilterValue = function(filterValue, column) {\r\n if (column && BETWEEN_OPERATION_DATA_TYPES.includes(column.dataType) && Array.isArray(filterValue)) {\r\n return false\r\n }\r\n return void 0 !== filterValue\r\n};\r\nvar getFilterValue = function(that, columnIndex, $editorContainer) {\r\n var column = that._columnsController.columnOption(columnIndex);\r\n var filterValue = getColumnFilterValue(that, column);\r\n var isFilterRange = $editorContainer.closest(\".\".concat(that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS))).length;\r\n var isRangeStart = $editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS));\r\n if (filterValue && Array.isArray(filterValue) && \"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if (isRangeStart) {\r\n return filterValue[0]\r\n }\r\n return filterValue[1]\r\n }\r\n return !isFilterRange && isValidFilterValue(filterValue, column) ? filterValue : null\r\n};\r\nvar normalizeFilterValue = function(that, filterValue, column, $editorContainer) {\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n var columnFilterValue = getColumnFilterValue(that, column);\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n return [filterValue, Array.isArray(columnFilterValue) ? columnFilterValue[1] : void 0]\r\n }\r\n return [Array.isArray(columnFilterValue) ? columnFilterValue[0] : columnFilterValue, filterValue]\r\n }\r\n return filterValue\r\n};\r\nvar updateFilterValue = function(that, options) {\r\n var value = \"\" === options.value ? null : options.value;\r\n var $editorContainer = options.container;\r\n var column = that._columnsController.columnOption(options.column.index);\r\n var filterValue = getFilterValue(that, column.index, $editorContainer);\r\n if (!isDefined(filterValue) && !isDefined(value)) {\r\n return\r\n }\r\n that._applyFilterViewController.setHighLight($editorContainer, filterValue !== value);\r\n var columnOptionName = isOnClickApplyFilterMode(that) ? \"bufferedFilterValue\" : \"filterValue\";\r\n var normalizedValue = normalizeFilterValue(that, value, column, $editorContainer);\r\n var isBetween = \"between\" === getColumnSelectedFilterOperation(that, column);\r\n var notFireEvent = options.notFireEvent || isBetween && Array.isArray(normalizedValue) && normalizedValue.includes(void 0);\r\n that._columnsController.columnOption(column.index, columnOptionName, normalizedValue, notFireEvent)\r\n};\r\nvar columnHeadersView = Base => class extends Base {\r\n init() {\r\n super.init();\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterRow\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"syncLookupFilterValues\":\r\n if (args.value) {\r\n this.updateLookupDataSource()\r\n } else {\r\n this.render()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _updateEditorValue(column, $editorContainer) {\r\n var editor = getEditorInstance($editorContainer);\r\n editor && editor.option(\"value\", getFilterValue(this, column.index, $editorContainer))\r\n }\r\n _columnOptionChanged(e) {\r\n var _a;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var $cell;\r\n var $editorContainer;\r\n var $editorRangeElements;\r\n var $menu;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"filterValues\", \"filterType\"]) && void 0 !== e.columnIndex) {\r\n var visibleIndex = this._columnsController.getVisibleIndex(e.columnIndex);\r\n var column = this._columnsController.columnOption(e.columnIndex);\r\n $cell = null !== (_a = this._getCellElement(this.element().find(\".\".concat(this.addWidgetPrefix(FILTER_ROW_CLASS))).index(), visibleIndex)) && void 0 !== _a ? _a : $();\r\n $editorContainer = $cell.find(\".\".concat(EDITOR_CONTAINER_CLASS)).first();\r\n if (optionNames.filterValue || optionNames.bufferedFilterValue) {\r\n this._updateEditorValue(column, $editorContainer);\r\n var overlayInstance = $cell.find(\".\".concat(this.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS))).data(\"dxOverlay\");\r\n if (overlayInstance) {\r\n $editorRangeElements = overlayInstance.$content().find(\".\".concat(EDITOR_CONTAINER_CLASS));\r\n this._updateEditorValue(column, $editorRangeElements.first());\r\n this._updateEditorValue(column, $editorRangeElements.last())\r\n }\r\n if (!overlayInstance || !overlayInstance.option(\"visible\")) {\r\n this._updateFilterRangeContent($cell, getRangeTextByFilterValue(this, column))\r\n }\r\n }\r\n if (optionNames.selectedFilterOperation || optionNames.bufferedSelectedFilterOperation) {\r\n if (visibleIndex >= 0 && column) {\r\n $menu = $cell.find(\".\".concat(MENU_CLASS));\r\n if ($menu.length) {\r\n this._updateFilterOperationChooser($menu, column, $editorContainer);\r\n if (\"between\" === getColumnSelectedFilterOperation(this, column)) {\r\n this._renderFilterRangeContent($cell, column)\r\n } else if ($editorContainer.find(\".\".concat(FILTER_RANGE_CONTENT_CLASS)).length) {\r\n this._renderEditor($editorContainer, this._getEditorOptions($editorContainer, column));\r\n this._hideFilterRange()\r\n }\r\n }\r\n }\r\n }\r\n return\r\n }\r\n super._columnOptionChanged(e)\r\n }\r\n _renderCore() {\r\n this._filterRangeOverlayInstance = null;\r\n return super._renderCore.apply(this, arguments)\r\n }\r\n _resizeCore() {\r\n var _a;\r\n super._resizeCore.apply(this, arguments);\r\n null === (_a = this._filterRangeOverlayInstance) || void 0 === _a ? void 0 : _a.repaint()\r\n }\r\n isFilterRowVisible() {\r\n return this._isElementVisible(this.option(\"filterRow\"))\r\n }\r\n isVisible() {\r\n return super.isVisible() || this.isFilterRowVisible()\r\n }\r\n _initFilterRangeOverlay($cell, column) {\r\n var that = this;\r\n var sharedData = {};\r\n var $editorContainer = $cell.find(\".dx-editor-container\");\r\n var filterRangeOverlayClass = that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS);\r\n var $overlay = $(\"<div>\").addClass(filterRangeOverlayClass).appendTo($cell);\r\n return that._createComponent($overlay, Overlay, {\r\n height: \"auto\",\r\n shading: false,\r\n showTitle: false,\r\n focusStateEnabled: false,\r\n hideOnOutsideClick: true,\r\n wrapperAttr: {\r\n class: filterRangeOverlayClass\r\n },\r\n animation: false,\r\n position: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: $editorContainer.length && $editorContainer || $cell,\r\n offset: \"0 -1\"\r\n },\r\n contentTemplate(contentElement) {\r\n var editorOptions;\r\n var $editor = $(\"<div>\").addClass(\"\".concat(EDITOR_CONTAINER_CLASS, \" \").concat(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))).appendTo(contentElement);\r\n column = that._columnsController.columnOption(column.index);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n eventsEngine.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", e => {\r\n var $prevElement = $cell.find(\"[tabindex]\").not(e.target).first();\r\n if (\"tab\" === normalizeKeyName(e) && e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n if (!$prevElement.length) {\r\n $prevElement = $cell.prev().find(\"[tabindex]\").last()\r\n }\r\n eventsEngine.trigger($prevElement, \"focus\")\r\n }\r\n });\r\n $editor = $(\"<div>\").addClass(\"\".concat(EDITOR_CONTAINER_CLASS, \" \").concat(that.addWidgetPrefix(FILTER_RANGE_END_CLASS))).appendTo(contentElement);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n eventsEngine.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", e => {\r\n if (\"tab\" === normalizeKeyName(e) && !e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n eventsEngine.trigger($cell.next().find(\"[tabindex]\").first(), \"focus\")\r\n }\r\n });\r\n return $(contentElement).addClass(that.getWidgetContainerClass())\r\n },\r\n onShown(e) {\r\n var $editor = e.component.$content().find(\".\".concat(EDITOR_CONTAINER_CLASS)).first();\r\n eventsEngine.trigger($editor.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n },\r\n onHidden() {\r\n column = that._columnsController.columnOption(column.index);\r\n $cell.find(\".\".concat(MENU_CLASS)).parent().addClass(EDITOR_WITH_MENU_CLASS);\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column));\r\n that.component.updateDimensions()\r\n }\r\n }\r\n })\r\n }\r\n _updateFilterRangeOverlay(options) {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.option(options)\r\n }\r\n _showFilterRange($cell, column) {\r\n var $overlay = $cell.children(\".\".concat(this.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)));\r\n var overlayInstance = $overlay.length && $overlay.data(\"dxOverlay\");\r\n if (!overlayInstance && column) {\r\n overlayInstance = this._initFilterRangeOverlay($cell, column)\r\n }\r\n if (!overlayInstance.option(\"visible\")) {\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.hide();\r\n this._filterRangeOverlayInstance = overlayInstance;\r\n this._updateFilterRangeOverlay({\r\n width: getOuterWidth($cell, true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.show()\r\n }\r\n }\r\n _hideFilterRange() {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.hide()\r\n }\r\n getFilterRangeOverlayInstance() {\r\n return this._filterRangeOverlayInstance\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow(row);\r\n if (\"filter\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n eventsEngine.on($row, \"keydown\", event => selectView(\"filterRow\", this, event))\r\n }\r\n }\r\n return $row\r\n }\r\n _getRows() {\r\n var result = super._getRows();\r\n if (this.isFilterRowVisible()) {\r\n result.push({\r\n rowType: \"filter\"\r\n })\r\n }\r\n return result\r\n }\r\n _renderFilterCell(cell, options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $cell = $(cell);\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaFilterCell\"), $cell);\r\n $cell.addClass(EDITOR_CELL_CLASS);\r\n var $container = $(\"<div>\").appendTo($cell);\r\n var $editorContainer = $(\"<div>\").addClass(EDITOR_CONTAINER_CLASS).appendTo($container);\r\n if (\"between\" === getColumnSelectedFilterOperation(this, column)) {\r\n this._renderFilterRangeContent($cell, column)\r\n } else {\r\n var editorOptions = this._getEditorOptions($editorContainer, column);\r\n this._renderEditor($editorContainer, editorOptions)\r\n }\r\n var {\r\n alignment: alignment\r\n } = column;\r\n if (alignment && \"center\" !== alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", column.alignment)\r\n }\r\n if (column.filterOperations && column.filterOperations.length) {\r\n this._renderFilterOperationChooser($container, column, $editorContainer)\r\n }\r\n }\r\n _renderCellContent($cell, options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\r\n if (\"filter\" === options.rowType) {\r\n if (column.command) {\r\n $cell.html(\" \")\r\n } else if (column.allowFiltering) {\r\n that.renderTemplate($cell, that._renderFilterCell.bind(that), options).done(() => {\r\n that._updateCell($cell, options)\r\n });\r\n return\r\n }\r\n }\r\n super._renderCellContent.apply(this, arguments)\r\n }\r\n _getEditorOptions($editorContainer, column) {\r\n var that = this;\r\n var accessibilityOptions = {\r\n editorOptions: {\r\n inputAttr: that._getFilterInputAccessibilityAttributes(column)\r\n }\r\n };\r\n var result = extend(accessibilityOptions, column, {\r\n value: getFilterValue(that, column.index, $editorContainer),\r\n parentType: \"filterRow\",\r\n showAllText: that.option(\"filterRow.showAllText\"),\r\n updateValueTimeout: \"onClick\" === that.option(\"filterRow.applyFilter\") ? 0 : FILTERING_TIMEOUT,\r\n width: null,\r\n setValue(value, notFireEvent) {\r\n updateFilterValue(that, {\r\n column: column,\r\n value: value,\r\n container: $editorContainer,\r\n notFireEvent: notFireEvent\r\n })\r\n }\r\n });\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n result.placeholder = that.option(\"filterRow.betweenStartText\")\r\n } else {\r\n result.placeholder = that.option(\"filterRow.betweenEndText\")\r\n }\r\n }\r\n return result\r\n }\r\n _getFilterInputAccessibilityAttributes(column) {\r\n var columnAriaLabel = messageLocalization.format(\"dxDataGrid-ariaFilterCell\");\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n return {\r\n \"aria-label\": columnAriaLabel,\r\n \"aria-describedby\": column.headerId\r\n }\r\n }\r\n return {\r\n \"aria-label\": columnAriaLabel\r\n }\r\n }\r\n _renderEditor($editorContainer, options) {\r\n $editorContainer.empty();\r\n var $element = $(\"<div>\").appendTo($editorContainer);\r\n var dataSource = this._dataController.dataSource();\r\n if (options.lookup && this.option(\"syncLookupFilterValues\")) {\r\n this._applyFilterViewController.setCurrentColumnForFiltering(options);\r\n var filter = this._dataController.getCombinedFilter();\r\n this._applyFilterViewController.setCurrentColumnForFiltering(null);\r\n var lookupDataSource = gridCoreUtils.getWrappedLookupDataSource(options, dataSource, filter);\r\n var lookupOptions = _extends(_extends({}, options), {\r\n lookup: _extends(_extends({}, options.lookup), {\r\n dataSource: lookupDataSource\r\n })\r\n });\r\n return this._editorFactoryController.createEditor($element, lookupOptions)\r\n }\r\n return this._editorFactoryController.createEditor($element, options)\r\n }\r\n _renderFilterRangeContent($cell, column) {\r\n var that = this;\r\n var $editorContainer = $cell.find(\".\".concat(EDITOR_CONTAINER_CLASS)).first();\r\n $editorContainer.empty();\r\n var $filterRangeContent = $(\"<div>\").addClass(FILTER_RANGE_CONTENT_CLASS).attr(\"tabindex\", this.option(\"tabIndex\"));\r\n eventsEngine.on($filterRangeContent, \"focusin\", () => {\r\n that._showFilterRange($cell, column)\r\n });\r\n $filterRangeContent.appendTo($editorContainer);\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column))\r\n }\r\n _updateFilterRangeContent($cell, value) {\r\n var $filterRangeContent = $cell.find(\".\".concat(FILTER_RANGE_CONTENT_CLASS));\r\n if ($filterRangeContent.length) {\r\n if (\"\" === value) {\r\n $filterRangeContent.html(\" \")\r\n } else {\r\n $filterRangeContent.text(value)\r\n }\r\n }\r\n }\r\n _updateFilterOperationChooser($menu, column, $editorContainer) {\r\n var that = this;\r\n var isCellWasFocused;\r\n var restoreFocus = function() {\r\n var menu = Menu.getInstance($menu);\r\n menu && menu.option(\"focusedElement\", null);\r\n isCellWasFocused && that._focusEditor($editorContainer)\r\n };\r\n var editorFactoryController = this._editorFactoryController;\r\n that._createComponent($menu, Menu, {\r\n integrationOptions: {},\r\n activeStateEnabled: false,\r\n selectionMode: \"single\",\r\n cssClass: \"\".concat(that.getWidgetContainerClass(), \" \").concat(CELL_FOCUS_DISABLED_CLASS, \" \").concat(FILTER_MENU),\r\n showFirstSubmenuMode: \"onHover\",\r\n hideSubmenuOnMouseLeave: true,\r\n items: [{\r\n disabled: !(column.filterOperations && column.filterOperations.length),\r\n icon: OPERATION_ICONS[getColumnSelectedFilterOperation(that, column) || \"default\"],\r\n selectable: false,\r\n items: that._getFilterOperationMenuItems(column)\r\n }],\r\n onItemRendered: _ref => {\r\n var {\r\n itemElement: itemElement\r\n } = _ref;\r\n this.setAria(\"label\", ARIA_SEARCH_BOX, $(itemElement))\r\n },\r\n onItemClick(properties) {\r\n var selectedFilterOperation = properties.itemData.name;\r\n var columnSelectedFilterOperation = getColumnSelectedFilterOperation(that, column);\r\n var notFocusEditor = false;\r\n var isOnClickMode = isOnClickApplyFilterMode(that);\r\n var options = {};\r\n if (properties.itemData.items || selectedFilterOperation && selectedFilterOperation === columnSelectedFilterOperation) {\r\n return\r\n }\r\n if (selectedFilterOperation) {\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = selectedFilterOperation;\r\n if (\"between\" === selectedFilterOperation || \"between\" === columnSelectedFilterOperation) {\r\n notFocusEditor = \"between\" === selectedFilterOperation;\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null\r\n }\r\n } else {\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null;\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = column.defaultSelectedFilterOperation || null\r\n }\r\n that._columnsController.columnOption(column.index, options);\r\n that._applyFilterViewController.setHighLight($editorContainer, true);\r\n if (!selectedFilterOperation) {\r\n var editor = getEditorInstance($editorContainer);\r\n if (editor && \"dxDateBox\" === editor.NAME && !editor.option(\"isValid\")) {\r\n editor.clear();\r\n editor.option(\"isValid\", true)\r\n }\r\n }\r\n if (!notFocusEditor) {\r\n that._focusEditor($editorContainer)\r\n } else {\r\n that._showFilterRange($editorContainer.closest(\".\".concat(EDITOR_CELL_CLASS)), column)\r\n }\r\n },\r\n onSubmenuShowing() {\r\n isCellWasFocused = that._isEditorFocused($editorContainer);\r\n editorFactoryController.loseFocus()\r\n },\r\n onSubmenuHiding() {\r\n eventsEngine.trigger($menu, \"blur\");\r\n restoreFocus()\r\n },\r\n onContentReady(e) {\r\n eventsEngine.on($menu, \"blur\", () => {\r\n var menu = e.component;\r\n menu._hideSubmenuAfterTimeout();\r\n restoreFocus()\r\n })\r\n },\r\n rtlEnabled: that.option(\"rtlEnabled\")\r\n })\r\n }\r\n _isEditorFocused($container) {\r\n return $container.hasClass(FOCUSED_CLASS) || $container.parents(\".\".concat(FOCUSED_CLASS)).length\r\n }\r\n _focusEditor($container) {\r\n this._editorFactoryController.focus($container);\r\n eventsEngine.trigger($container.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n }\r\n _renderFilterOperationChooser($container, column, $editorContainer) {\r\n var $menu;\r\n if (this.option(\"filterRow.showOperationChooser\")) {\r\n $container.addClass(EDITOR_WITH_MENU_CLASS);\r\n $menu = $(\"<div>\").prependTo($container);\r\n this._updateFilterOperationChooser($menu, column, $editorContainer)\r\n }\r\n }\r\n _getFilterOperationMenuItems(column) {\r\n var that = this;\r\n var result = [{}];\r\n var filterRowOptions = that.option(\"filterRow\");\r\n var operationDescriptions = filterRowOptions && filterRowOptions.operationDescriptions || {};\r\n if (column.filterOperations && column.filterOperations.length) {\r\n var availableFilterOperations = column.filterOperations.filter(value => isDefined(OPERATION_DESCRIPTORS[value]));\r\n result = map(availableFilterOperations, value => {\r\n var descriptionName = OPERATION_DESCRIPTORS[value];\r\n return {\r\n name: value,\r\n selected: (getColumnSelectedFilterOperation(that, column) || column.defaultFilterOperation) === value,\r\n text: operationDescriptions[descriptionName],\r\n icon: OPERATION_ICONS[value]\r\n }\r\n });\r\n result.push({\r\n name: null,\r\n text: filterRowOptions && filterRowOptions.resetOperationText,\r\n icon: OPERATION_ICONS.default\r\n })\r\n }\r\n return result\r\n }\r\n _handleDataChanged(e) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var dataSource = null === (_b = null === (_a = this._dataController) || void 0 === _a ? void 0 : _a.dataSource) || void 0 === _b ? void 0 : _b.call(_a);\r\n var lastLoadOptions = null === (_c = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions) || void 0 === _c ? void 0 : _c.call(dataSource);\r\n super._handleDataChanged.apply(this, arguments);\r\n if ((null === (_d = e.operationTypes) || void 0 === _d ? void 0 : _d.filtering) || (null === (_e = e.operationTypes) || void 0 === _e ? void 0 : _e.fullReload)) {\r\n this.updateLookupDataSource((null === (_f = e.operationTypes) || void 0 === _f ? void 0 : _f.filtering) || (null === lastLoadOptions || void 0 === lastLoadOptions ? void 0 : lastLoadOptions.filter))\r\n }\r\n }\r\n updateLookupDataSource(filterChanged) {\r\n if (!this.option(\"syncLookupFilterValues\")) {\r\n return\r\n }\r\n if (!this.element()) {\r\n return\r\n }\r\n var columns = this._columnsController.getVisibleColumns();\r\n var dataSource = this._dataController.dataSource();\r\n var applyFilterViewController = this._applyFilterViewController;\r\n var rowIndex = this.element().find(\".\".concat(this.addWidgetPrefix(FILTER_ROW_CLASS))).index();\r\n if (-1 === rowIndex) {\r\n return\r\n }\r\n columns.forEach((column, index) => {\r\n if (!column.lookup || column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return\r\n }\r\n var $cell = this._getCellElement(rowIndex, index);\r\n var editor = getEditorInstance(null === $cell || void 0 === $cell ? void 0 : $cell.find(\".dx-editor-container\"));\r\n if (editor) {\r\n applyFilterViewController.setCurrentColumnForFiltering(column);\r\n var filter = this._dataController.getCombinedFilter() || null;\r\n applyFilterViewController.setCurrentColumnForFiltering(null);\r\n var editorDataSource = editor.option(\"dataSource\");\r\n var shouldUpdateFilter = !filterChanged || !equalByValue(editorDataSource.__dataGridSourceFilter || null, filter);\r\n if (shouldUpdateFilter) {\r\n var lookupDataSource = gridCoreUtils.getWrappedLookupDataSource(column, dataSource, filter);\r\n editor.option(\"dataSource\", lookupDataSource)\r\n }\r\n }\r\n })\r\n }\r\n};\r\nvar data = Base => class extends Base {\r\n skipCalculateColumnFilters() {\r\n return false\r\n }\r\n _calculateAdditionalFilter() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return super._calculateAdditionalFilter()\r\n }\r\n var filters = [super._calculateAdditionalFilter()];\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var applyFilterController = this._applyFilterController;\r\n each(columns, (function() {\r\n var _a;\r\n var shouldSkip = (null === (_a = applyFilterController.getCurrentColumnForFiltering()) || void 0 === _a ? void 0 : _a.index) === this.index;\r\n if (this.allowFiltering && this.calculateFilterExpression && isDefined(this.filterValue) && !shouldSkip) {\r\n var filter = this.createFilterExpression(this.filterValue, this.selectedFilterOperation || this.defaultFilterOperation, \"filterRow\");\r\n filters.push(filter)\r\n }\r\n }));\r\n return gridCoreUtils.combineFilters(filters)\r\n }\r\n};\r\nexport class ApplyFilterViewController extends modules.ViewController {\r\n init() {\r\n this._columnsController = this.getController(\"columns\")\r\n }\r\n _getHeaderPanel() {\r\n if (!this._headerPanel) {\r\n this._headerPanel = this.getView(\"headerPanel\")\r\n }\r\n return this._headerPanel\r\n }\r\n setHighLight($element, value) {\r\n if (isOnClickApplyFilterMode(this)) {\r\n $element && $element.toggleClass(HIGHLIGHT_OUTLINE_CLASS, value) && $element.closest(\".\".concat(EDITOR_CELL_CLASS)).toggleClass(FILTER_MODIFIED_CLASS, value);\r\n this._getHeaderPanel().enableApplyButton(value)\r\n }\r\n }\r\n applyFilter() {\r\n var columns = this._columnsController.getColumns();\r\n this._columnsController.beginUpdate();\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (void 0 !== column.bufferedFilterValue) {\r\n this._columnsController.columnOption(i, \"filterValue\", column.bufferedFilterValue);\r\n column.bufferedFilterValue = void 0\r\n }\r\n if (void 0 !== column.bufferedSelectedFilterOperation) {\r\n this._columnsController.columnOption(i, \"selectedFilterOperation\", column.bufferedSelectedFilterOperation);\r\n column.bufferedSelectedFilterOperation = void 0\r\n }\r\n }\r\n this._columnsController.endUpdate();\r\n this.removeHighLights()\r\n }\r\n removeHighLights() {\r\n if (isOnClickApplyFilterMode(this)) {\r\n var columnHeadersViewElement = this.getView(\"columnHeadersView\").element();\r\n columnHeadersViewElement.find(\".\".concat(this.addWidgetPrefix(FILTER_ROW_CLASS), \" .\").concat(HIGHLIGHT_OUTLINE_CLASS)).removeClass(HIGHLIGHT_OUTLINE_CLASS);\r\n columnHeadersViewElement.find(\".\".concat(this.addWidgetPrefix(FILTER_ROW_CLASS), \" .\").concat(FILTER_MODIFIED_CLASS)).removeClass(FILTER_MODIFIED_CLASS);\r\n this._getHeaderPanel().enableApplyButton(false)\r\n }\r\n }\r\n setCurrentColumnForFiltering(column) {\r\n this._currentColumn = column\r\n }\r\n getCurrentColumnForFiltering() {\r\n return this._currentColumn\r\n }\r\n}\r\nvar columnsResizer = Base => class extends Base {\r\n _startResizing() {\r\n super._startResizing.apply(this, arguments);\r\n if (this.isResizing()) {\r\n var overlayInstance = this._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n var cellIndex = overlayInstance.$element().closest(\"td\").index();\r\n if (cellIndex === this._targetPoint.columnIndex || cellIndex === this._targetPoint.columnIndex + 1) {\r\n overlayInstance.$content().hide()\r\n }\r\n }\r\n }\r\n }\r\n _endResizing() {\r\n var $cell;\r\n if (this.isResizing()) {\r\n var overlayInstance = this._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n $cell = overlayInstance.$element().closest(\"td\");\r\n this._columnHeadersView._updateFilterRangeOverlay({\r\n width: getOuterWidth($cell, true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n overlayInstance.$content().show()\r\n }\r\n }\r\n super._endResizing.apply(this, arguments)\r\n }\r\n};\r\nvar editing = Base => class extends Base {\r\n updateFieldValue(options) {\r\n if (options.column.lookup) {\r\n this._needUpdateLookupDataSource = true\r\n }\r\n return super.updateFieldValue.apply(this, arguments)\r\n }\r\n _afterSaveEditData(cancel) {\r\n var _a;\r\n if (this._needUpdateLookupDataSource && !cancel) {\r\n null === (_a = this.getView(\"columnHeadersView\")) || void 0 === _a ? void 0 : _a.updateLookupDataSource()\r\n }\r\n this._needUpdateLookupDataSource = false;\r\n return super._afterSaveEditData.apply(this, arguments)\r\n }\r\n _afterCancelEditData() {\r\n this._needUpdateLookupDataSource = false;\r\n return super._afterCancelEditData.apply(this, arguments)\r\n }\r\n};\r\nvar headerPanel = Base => class extends Base {\r\n init() {\r\n super.init();\r\n this._dataController = this.getController(\"data\");\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n }\r\n optionChanged(args) {\r\n if (\"filterRow\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n _getToolbarItems() {\r\n var items = super._getToolbarItems();\r\n var filterItem = this._prepareFilterItem();\r\n return filterItem.concat(items)\r\n }\r\n _prepareFilterItem() {\r\n var that = this;\r\n var filterItem = [];\r\n if (that._isShowApplyFilterButton()) {\r\n var hintText = that.option(\"filterRow.applyFilterText\");\r\n var columns = that._columnsController.getColumns();\r\n var disabled = !columns.filter(column => void 0 !== column.bufferedFilterValue).length;\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"apply-filter\",\r\n disabled: disabled,\r\n onClick: function() {\r\n that._applyFilterViewController.applyFilter()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(APPLY_BUTTON_CLASS))\r\n }\r\n },\r\n showText: \"inMenu\",\r\n name: \"applyFilterButton\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 10\r\n };\r\n filterItem.push(toolbarItem)\r\n }\r\n return filterItem\r\n }\r\n _isShowApplyFilterButton() {\r\n var filterRowOptions = this.option(\"filterRow\");\r\n return !!(null === filterRowOptions || void 0 === filterRowOptions ? void 0 : filterRowOptions.visible) && \"onClick\" === filterRowOptions.applyFilter\r\n }\r\n enableApplyButton(value) {\r\n this.setToolbarItemDisabled(\"applyFilterButton\", !value)\r\n }\r\n isVisible() {\r\n return super.isVisible() || this._isShowApplyFilterButton()\r\n }\r\n};\r\nexport var filterRowModule = {\r\n defaultOptions: () => ({\r\n syncLookupFilterValues: true,\r\n filterRow: {\r\n visible: false,\r\n showOperationChooser: true,\r\n showAllText: messageLocalization.format(\"dxDataGrid-filterRowShowAllText\"),\r\n resetOperationText: messageLocalization.format(\"dxDataGrid-filterRowResetOperationText\"),\r\n applyFilter: \"auto\",\r\n applyFilterText: messageLocalization.format(\"dxDataGrid-applyFilterText\"),\r\n operationDescriptions: {\r\n equal: messageLocalization.format(\"dxDataGrid-filterRowOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxDataGrid-filterRowOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxDataGrid-filterRowOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxDataGrid-filterRowOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxDataGrid-filterRowOperationContains\"),\r\n notContains: messageLocalization.format(\"dxDataGrid-filterRowOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxDataGrid-filterRowOperationEndsWith\"),\r\n between: messageLocalization.format(\"dxDataGrid-filterRowOperationBetween\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n },\r\n betweenStartText: messageLocalization.format(\"dxDataGrid-filterRowOperationBetweenStartText\"),\r\n betweenEndText: messageLocalization.format(\"dxDataGrid-filterRowOperationBetweenEndText\")\r\n }\r\n }),\r\n controllers: {\r\n applyFilter: ApplyFilterViewController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: data,\r\n columnsResizer: columnsResizer,\r\n editing: editing\r\n },\r\n views: {\r\n columnHeadersView: columnHeadersView,\r\n headerPanel: headerPanel\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/filter_row.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterRowModule\r\n} from \"../../../grids/grid_core/filter/m_filter_row\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterRow\", filterRowModule);\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/modules/m_search.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TextBox from \"../../../../ui/text_box\";\r\nimport searchBoxMixin from \"../../../../ui/widget/ui.search_box_mixin\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/header_filter/m_header_filter_core.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../../../ui/list/modules/m_search\";\r\nimport \"../../../ui/list/modules/m_selection\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport List from \"../../../../ui/list_light\";\r\nimport Popup from \"../../../../ui/popup/ui.popup\";\r\nimport TreeView from \"../../../../ui/tree_view\";\r\nimport Modules from \"../../../grids/grid_core/m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar HEADER_FILTER_CLASS = \"dx-header-filter\";\r\nvar HEADER_FILTER_MENU_CLASS = \"dx-header-filter-menu\";\r\nvar DEFAULT_SEARCH_EXPRESSION = \"text\";\r\n\r\nfunction resetChildrenItemSelection(items) {\r\n items = items || [];\r\n for (var i = 0; i < items.length; i++) {\r\n items[i].selected = false;\r\n resetChildrenItemSelection(items[i].items)\r\n }\r\n}\r\n\r\nfunction getSelectAllCheckBox(listComponent) {\r\n var selector = \"dxTreeView\" === listComponent.NAME ? \".dx-treeview-select-all-item\" : \".dx-list-select-all-checkbox\";\r\n return listComponent.$element().find(selector).dxCheckBox(\"instance\")\r\n}\r\n\r\nfunction updateListSelectAllState(e, filterValues) {\r\n if (e.component.option(\"searchValue\")) {\r\n return\r\n }\r\n var selectAllCheckBox = getSelectAllCheckBox(e.component);\r\n if (selectAllCheckBox && filterValues && filterValues.length) {\r\n selectAllCheckBox.option(\"value\", void 0)\r\n }\r\n}\r\nexport function updateHeaderFilterItemSelectionState(item, filterValuesMatch, isExcludeFilter) {\r\n if (filterValuesMatch ^ isExcludeFilter) {\r\n item.selected = true;\r\n if (isExcludeFilter && item.items) {\r\n for (var j = 0; j < item.items.length; j++) {\r\n if (!item.items[j].selected) {\r\n item.selected = void 0;\r\n break\r\n }\r\n }\r\n }\r\n } else if (isExcludeFilter || item.selected) {\r\n item.selected = false;\r\n resetChildrenItemSelection(item.items)\r\n }\r\n}\r\nexport class HeaderFilterView extends Modules.View {\r\n getPopupContainer() {\r\n return this._popupContainer\r\n }\r\n getListComponent() {\r\n return this._listComponent\r\n }\r\n applyHeaderFilter(options) {\r\n var list = this.getListComponent();\r\n var searchValue = list.option(\"searchValue\");\r\n var selectAllCheckBox = getSelectAllCheckBox(list);\r\n var isAllSelected = !searchValue && !options.isFilterBuilder && (null === selectAllCheckBox || void 0 === selectAllCheckBox ? void 0 : selectAllCheckBox.option(\"value\"));\r\n var filterValues = [];\r\n if (!isAllSelected) {\r\n if (\"tree\" === options.type) {\r\n if (options.filterType) {\r\n options.filterType = \"include\"\r\n }! function fillSelectedItemKeys(filterValues, items, isExclude) {\r\n each(items, (_, item) => {\r\n if (void 0 !== item.selected && !!item.selected ^ isExclude) {\r\n var node = list._getNode(item);\r\n var hasChildren = list._hasChildren(node);\r\n var hasChildrenWithSelection = hasChildren && item.items && item.items.some(item => item.selected);\r\n if (!searchValue || !hasChildrenWithSelection) {\r\n filterValues.push(item.value);\r\n return\r\n }\r\n }\r\n if (item.items && item.items.length) {\r\n fillSelectedItemKeys(filterValues, item.items, isExclude)\r\n }\r\n })\r\n }(filterValues, list.option(\"items\"), false);\r\n options.filterValues = filterValues\r\n }\r\n } else {\r\n if (\"tree\" === options.type) {\r\n options.filterType = \"exclude\"\r\n }\r\n if (Array.isArray(options.filterValues)) {\r\n options.filterValues = []\r\n }\r\n }\r\n if (options.filterValues && !options.filterValues.length) {\r\n options.filterValues = null\r\n }\r\n options.apply();\r\n this.hideHeaderFilterMenu()\r\n }\r\n showHeaderFilterMenu($columnElement, options) {\r\n if (options) {\r\n this._initializePopupContainer(options);\r\n var popupContainer = this.getPopupContainer();\r\n this.hideHeaderFilterMenu();\r\n this.updatePopup($columnElement, options);\r\n popupContainer.show()\r\n }\r\n }\r\n hideHeaderFilterMenu() {\r\n var headerFilterMenu = this.getPopupContainer();\r\n headerFilterMenu && headerFilterMenu.hide()\r\n }\r\n updatePopup($element, options) {\r\n var showColumnLines = this.option(\"showColumnLines\");\r\n var alignment = \"right\" === options.alignment ^ !showColumnLines ? \"left\" : \"right\";\r\n this._popupContainer.setAria({\r\n role: \"dialog\",\r\n label: messageLocalization.format(\"dxDataGrid-headerFilterLabel\")\r\n });\r\n if (this._popupContainer) {\r\n this._cleanPopupContent();\r\n this._popupContainer.option(\"position\", {\r\n my: \"\".concat(alignment, \" top\"),\r\n at: \"\".concat(alignment, \" bottom\"),\r\n of: $element,\r\n collision: \"fit fit\"\r\n })\r\n }\r\n }\r\n _getSearchExpr(options, headerFilterOptions) {\r\n var {\r\n lookup: lookup\r\n } = options;\r\n var {\r\n useDefaultSearchExpr: useDefaultSearchExpr\r\n } = options;\r\n var headerFilterDataSource = headerFilterOptions.dataSource;\r\n var filterSearchExpr = headerFilterOptions.search.searchExpr;\r\n if (filterSearchExpr) {\r\n return filterSearchExpr\r\n }\r\n if (useDefaultSearchExpr || isDefined(headerFilterDataSource) && !isFunction(headerFilterDataSource)) {\r\n return DEFAULT_SEARCH_EXPRESSION\r\n }\r\n if (lookup) {\r\n return lookup.displayExpr || \"this\"\r\n }\r\n if (options.dataSource) {\r\n var {\r\n group: group\r\n } = options.dataSource;\r\n if (Array.isArray(group) && group.length > 0) {\r\n return group[0].selector\r\n }\r\n if (isFunction(group) && !options.remoteFiltering) {\r\n return group\r\n }\r\n }\r\n return options.dataField || options.selector\r\n }\r\n _cleanPopupContent() {\r\n this._popupContainer && this._popupContainer.$content().empty()\r\n }\r\n _initializePopupContainer(options) {\r\n var that = this;\r\n var $element = that.element();\r\n var headerFilterOptions = this._normalizeHeaderFilterOptions(options);\r\n var {\r\n height: height,\r\n width: width\r\n } = headerFilterOptions;\r\n var dxPopupOptions = {\r\n width: width,\r\n height: height,\r\n visible: false,\r\n shading: false,\r\n showTitle: false,\r\n showCloseButton: false,\r\n hideOnParentScroll: false,\r\n dragEnabled: false,\r\n hideOnOutsideClick: true,\r\n wrapperAttr: {\r\n class: HEADER_FILTER_MENU_CLASS\r\n },\r\n focusStateEnabled: false,\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.ok,\r\n onClick() {\r\n that.applyHeaderFilter(options)\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.cancel,\r\n onClick() {\r\n that.hideHeaderFilterMenu()\r\n }\r\n }\r\n }],\r\n resizeEnabled: true,\r\n onShowing(e) {\r\n e.component.$content().parent().addClass(\"dx-dropdowneditor-overlay\");\r\n that._initializeListContainer(options, headerFilterOptions);\r\n options.onShowing && options.onShowing(e)\r\n },\r\n onShown() {\r\n that.getListComponent().focus()\r\n },\r\n onHidden: options.onHidden,\r\n onInitialized(e) {\r\n var {\r\n component: component\r\n } = e;\r\n component.option(\"animation\", component._getDefaultOptions().animation)\r\n }\r\n };\r\n if (!isDefined(that._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions)\r\n } else {\r\n that._popupContainer.option(dxPopupOptions)\r\n }\r\n }\r\n _initializeListContainer(options, headerFilterOptions) {\r\n var that = this;\r\n var $content = that._popupContainer.$content();\r\n var needShowSelectAllCheckbox = !options.isFilterBuilder && headerFilterOptions.allowSelectAll;\r\n var widgetOptions = {\r\n searchEnabled: headerFilterOptions.search.enabled,\r\n searchTimeout: headerFilterOptions.search.timeout,\r\n searchEditorOptions: headerFilterOptions.search.editorOptions,\r\n searchMode: headerFilterOptions.search.mode || \"\",\r\n dataSource: options.dataSource,\r\n onContentReady() {\r\n that.renderCompleted.fire()\r\n },\r\n itemTemplate(data, _, element) {\r\n var $element = $(element);\r\n if (options.encodeHtml) {\r\n return $element.text(data.text)\r\n }\r\n return $element.html(data.text)\r\n }\r\n };\r\n\r\n function onOptionChanged(e) {\r\n if (\"searchValue\" === e.fullName && needShowSelectAllCheckbox && false !== that.option(\"headerFilter.hideSelectAllOnSearch\")) {\r\n if (\"tree\" === options.type) {\r\n e.component.option(\"showCheckBoxesMode\", e.value ? \"normal\" : \"selectAll\")\r\n } else {\r\n e.component.option(\"selectionMode\", e.value ? \"multiple\" : \"all\")\r\n }\r\n }\r\n }\r\n if (\"tree\" === options.type) {\r\n that._listComponent = that._createComponent($(\"<div>\").appendTo($content), TreeView, extend(widgetOptions, {\r\n showCheckBoxesMode: needShowSelectAllCheckbox ? \"selectAll\" : \"normal\",\r\n onOptionChanged: onOptionChanged,\r\n keyExpr: \"id\"\r\n }))\r\n } else {\r\n that._listComponent = that._createComponent($(\"<div>\").appendTo($content), List, extend(widgetOptions, {\r\n searchExpr: that._getSearchExpr(options, headerFilterOptions),\r\n pageLoadMode: \"scrollBottom\",\r\n showSelectionControls: true,\r\n selectionMode: needShowSelectAllCheckbox ? \"all\" : \"multiple\",\r\n onOptionChanged: onOptionChanged,\r\n onSelectionChanged(e) {\r\n var items = e.component.option(\"items\");\r\n var selectedItems = e.component.option(\"selectedItems\");\r\n if (!e.component._selectedItemsUpdating && !e.component.option(\"searchValue\") && !options.isFilterBuilder) {\r\n var filterValues = options.filterValues || [];\r\n var isExclude = \"exclude\" === options.filterType;\r\n if (0 === selectedItems.length && items.length && (filterValues.length <= 1 || isExclude && filterValues.length === items.length - 1)) {\r\n options.filterType = \"include\";\r\n options.filterValues = []\r\n } else if (selectedItems.length === items.length) {\r\n options.filterType = \"exclude\";\r\n options.filterValues = []\r\n }\r\n }\r\n each(items, (index, item) => {\r\n var selected = gridCoreUtils.getIndexByKey(item, selectedItems, null) >= 0;\r\n var oldSelected = !!item.selected;\r\n if (oldSelected !== selected) {\r\n item.selected = selected;\r\n options.filterValues = options.filterValues || [];\r\n var filterValueIndex = gridCoreUtils.getIndexByKey(item.value, options.filterValues, null);\r\n if (filterValueIndex >= 0) {\r\n options.filterValues.splice(filterValueIndex, 1)\r\n }\r\n var isExcludeFilterType = \"exclude\" === options.filterType;\r\n if (selected ^ isExcludeFilterType) {\r\n options.filterValues.push(item.value)\r\n }\r\n }\r\n });\r\n updateListSelectAllState(e, options.filterValues)\r\n },\r\n onContentReady(e) {\r\n var {\r\n component: component\r\n } = e;\r\n var items = component.option(\"items\");\r\n var selectedItems = [];\r\n each(items, (function() {\r\n if (this.selected) {\r\n selectedItems.push(this)\r\n }\r\n }));\r\n component._selectedItemsUpdating = true;\r\n component.option(\"selectedItems\", selectedItems);\r\n component._selectedItemsUpdating = false;\r\n updateListSelectAllState(e, options.filterValues)\r\n }\r\n }))\r\n }\r\n }\r\n _normalizeHeaderFilterOptions(options) {\r\n var generalHeaderFilter = this.option(\"headerFilter\") || {};\r\n var specificHeaderFilter = options.headerFilter || {};\r\n var generalDeprecated = {\r\n search: {\r\n enabled: generalHeaderFilter.allowSearch,\r\n timeout: generalHeaderFilter.searchTimeout\r\n }\r\n };\r\n var specificDeprecated = {\r\n search: {\r\n enabled: specificHeaderFilter.allowSearch,\r\n mode: specificHeaderFilter.searchMode,\r\n timeout: specificHeaderFilter.searchTimeout\r\n }\r\n };\r\n return extend(true, {}, generalHeaderFilter, generalDeprecated, specificHeaderFilter, specificDeprecated)\r\n }\r\n _renderCore() {\r\n this.element().addClass(HEADER_FILTER_MENU_CLASS)\r\n }\r\n}\r\nexport var allowHeaderFiltering = function(column) {\r\n return isDefined(column.allowHeaderFiltering) ? column.allowHeaderFiltering : column.allowFiltering\r\n};\r\nexport var headerFilterMixin = Base => class extends Base {\r\n optionChanged(args) {\r\n if (\"headerFilter\" === args.name) {\r\n var requireReady = \"columnHeadersView\" === this.name;\r\n this._invalidate(requireReady, requireReady);\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n _applyColumnState(options) {\r\n var $headerFilterIndicator;\r\n var {\r\n rootElement: rootElement\r\n } = options;\r\n var {\r\n column: column\r\n } = options;\r\n if (\"headerFilter\" === options.name) {\r\n rootElement.find(\".\".concat(HEADER_FILTER_CLASS)).remove();\r\n if (allowHeaderFiltering(column)) {\r\n $headerFilterIndicator = super._applyColumnState(options).toggleClass(\"dx-header-filter-empty\", this._isHeaderFilterEmpty(column));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n $headerFilterIndicator.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n var indicatorLabel = messageLocalization.format(\"dxDataGrid-headerFilterIndicatorLabel\", column.caption);\r\n $headerFilterIndicator.attr(\"aria-label\", indicatorLabel);\r\n $headerFilterIndicator.attr(\"aria-haspopup\", \"dialog\");\r\n $headerFilterIndicator.attr(\"role\", \"button\")\r\n }\r\n return $headerFilterIndicator\r\n }\r\n return super._applyColumnState(options)\r\n }\r\n _isHeaderFilterEmpty(column) {\r\n return !column.filterValues || !column.filterValues.length\r\n }\r\n _getIndicatorClassName(name) {\r\n if (\"headerFilter\" === name) {\r\n return HEADER_FILTER_CLASS\r\n }\r\n return super._getIndicatorClassName(name)\r\n }\r\n _renderIndicator(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"headerFilter\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if ($container.children().length && (!rtlEnabled && \"right\" === options.columnAlignment || rtlEnabled && \"left\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n super._renderIndicator(options)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/header_filter/m_header_filter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../../data/data_source/utils\";\r\nimport dataQuery from \"../../../../data/query\";\r\nimport storeHelper from \"../../../../data/store_helper\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n restoreFocus,\r\n saveFocusedElementInfo\r\n} from \"../../../../ui/shared/accessibility\";\r\nimport filterUtils from \"../../../../ui/shared/filtering\";\r\nimport Modules from \"../../../grids/grid_core/m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n allowHeaderFiltering,\r\n headerFilterMixin,\r\n HeaderFilterView,\r\n updateHeaderFilterItemSelectionState\r\n} from \"./m_header_filter_core\";\r\nvar DATE_INTERVAL_FORMATS = {\r\n month: value => dateLocalization.getMonthNames()[value - 1],\r\n quarter: value => dateLocalization.format(new Date(2e3, 3 * value - 1), \"quarter\")\r\n};\r\n\r\nfunction ungroupUTCDates(items, dateParts, dates) {\r\n dateParts = dateParts || [];\r\n dates = dates || [];\r\n items.forEach(item => {\r\n if (isDefined(item.key)) {\r\n var isMonthPart = 1 === dateParts.length;\r\n dateParts.push(isMonthPart ? item.key - 1 : item.key);\r\n if (item.items) {\r\n ungroupUTCDates(item.items, dateParts, dates)\r\n } else {\r\n var date = new Date(Date.UTC.apply(Date, dateParts));\r\n dates.push(date)\r\n }\r\n dateParts.pop()\r\n } else {\r\n dates.push(null)\r\n }\r\n });\r\n return dates\r\n}\r\n\r\nfunction convertDataFromUTCToLocal(data, column) {\r\n var dates = ungroupUTCDates(data);\r\n var query = dataQuery(dates);\r\n var group = gridCoreUtils.getHeaderFilterGroupParameters(_extends(_extends({}, column), {\r\n calculateCellValue: date => date\r\n }));\r\n return storeHelper.queryByOptions(query, {\r\n group: group\r\n }).toArray()\r\n}\r\n\r\nfunction isUTCFormat(format) {\r\n return \"Z\" === (null === format || void 0 === format ? void 0 : format.slice(-1)) || \"'Z'\" === (null === format || void 0 === format ? void 0 : format.slice(-3))\r\n}\r\nvar getFormatOptions = function(value, column, currentLevel) {\r\n var groupInterval = filterUtils.getGroupInterval(column);\r\n var result = gridCoreUtils.getFormatOptionsByColumn(column, \"headerFilter\");\r\n if (groupInterval) {\r\n result.groupInterval = groupInterval[currentLevel];\r\n if (gridCoreUtils.isDateType(column.dataType)) {\r\n result.format = DATE_INTERVAL_FORMATS[groupInterval[currentLevel]]\r\n } else if (\"number\" === column.dataType) {\r\n result.getDisplayFormat = function() {\r\n var formatOptions = {\r\n format: column.format,\r\n target: \"headerFilter\"\r\n };\r\n var firstValueText = gridCoreUtils.formatValue(value, formatOptions);\r\n var secondValue = value + groupInterval[currentLevel];\r\n var secondValueText = gridCoreUtils.formatValue(secondValue, formatOptions);\r\n return firstValueText && secondValueText ? \"\".concat(firstValueText, \" - \").concat(secondValueText) : \"\"\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport class HeaderFilterController extends Modules.ViewController {\r\n init() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._headerFilterView = this.getView(\"headerFilterView\")\r\n }\r\n _updateSelectedState(items, column) {\r\n var i = items.length;\r\n var isExclude = \"exclude\" === column.filterType;\r\n while (i--) {\r\n var item = items[i];\r\n if (\"items\" in items[i]) {\r\n this._updateSelectedState(items[i].items, column)\r\n }\r\n updateHeaderFilterItemSelectionState(item, gridCoreUtils.getIndexByKey(items[i].value, column.filterValues, null) > -1, isExclude)\r\n }\r\n }\r\n _normalizeGroupItem(item, currentLevel, options) {\r\n var value;\r\n var displayValue;\r\n var {\r\n path: path\r\n } = options;\r\n var {\r\n valueSelector: valueSelector\r\n } = options;\r\n var {\r\n displaySelector: displaySelector\r\n } = options;\r\n var {\r\n column: column\r\n } = options;\r\n if (valueSelector && displaySelector) {\r\n value = valueSelector(item);\r\n displayValue = displaySelector(item)\r\n } else {\r\n value = item.key;\r\n displayValue = value\r\n }\r\n if (!isObject(item)) {\r\n item = {}\r\n } else {\r\n item = extend({}, item)\r\n }\r\n path.push(value);\r\n if (1 === path.length) {\r\n item.value = path[0]\r\n } else {\r\n item.value = path.join(\"/\")\r\n }\r\n item.text = this.getHeaderItemText(displayValue, column, currentLevel, options.headerFilterOptions);\r\n return item\r\n }\r\n getHeaderItemText(displayValue, column, currentLevel, headerFilterOptions) {\r\n var text = gridCoreUtils.formatValue(displayValue, getFormatOptions(displayValue, column, currentLevel));\r\n if (!text) {\r\n text = headerFilterOptions.texts.emptyValue\r\n }\r\n return text\r\n }\r\n _processGroupItems(groupItems, currentLevel, path, options) {\r\n var displaySelector;\r\n var valueSelector;\r\n var {\r\n column: column\r\n } = options;\r\n var {\r\n lookup: lookup\r\n } = column;\r\n var {\r\n level: level\r\n } = options;\r\n path = path || [];\r\n currentLevel = currentLevel || 0;\r\n if (lookup) {\r\n displaySelector = compileGetter(lookup.displayExpr);\r\n valueSelector = compileGetter(lookup.valueExpr)\r\n }\r\n for (var i = 0; i < groupItems.length; i++) {\r\n groupItems[i] = this._normalizeGroupItem(groupItems[i], currentLevel, {\r\n column: options.column,\r\n headerFilterOptions: options.headerFilterOptions,\r\n displaySelector: displaySelector,\r\n valueSelector: valueSelector,\r\n path: path\r\n });\r\n if (\"items\" in groupItems[i]) {\r\n if (currentLevel === level || !isDefined(groupItems[i].value)) {\r\n delete groupItems[i].items\r\n } else {\r\n this._processGroupItems(groupItems[i].items, currentLevel + 1, path, options)\r\n }\r\n }\r\n path.pop()\r\n }\r\n }\r\n getDataSource(column) {\r\n var _a;\r\n var dataSource = this._dataController.dataSource();\r\n var remoteGrouping = null === dataSource || void 0 === dataSource ? void 0 : dataSource.remoteOperations().grouping;\r\n var group = gridCoreUtils.getHeaderFilterGroupParameters(column, remoteGrouping);\r\n var headerFilterDataSource = null === (_a = column.headerFilter) || void 0 === _a ? void 0 : _a.dataSource;\r\n var headerFilterOptions = this.option(\"headerFilter\");\r\n var isLookup = false;\r\n var options = {\r\n component: this.component\r\n };\r\n if (!dataSource) {\r\n return\r\n }\r\n if (isDefined(headerFilterDataSource) && !isFunction(headerFilterDataSource)) {\r\n options.dataSource = normalizeDataSourceOptions(headerFilterDataSource)\r\n } else if (column.lookup) {\r\n isLookup = true;\r\n if (this.option(\"syncLookupFilterValues\")) {\r\n this._currentColumn = column;\r\n var filter = this._dataController.getCombinedFilter();\r\n this._currentColumn = null;\r\n options.dataSource = gridCoreUtils.getWrappedLookupDataSource(column, dataSource, filter)\r\n } else {\r\n options.dataSource = gridCoreUtils.normalizeLookupDataSource(column.lookup)\r\n }\r\n } else {\r\n var cutoffLevel = Array.isArray(group) ? group.length - 1 : 0;\r\n this._currentColumn = column;\r\n var _filter = this._dataController.getCombinedFilter();\r\n this._currentColumn = null;\r\n options.dataSource = {\r\n filter: _filter,\r\n group: group,\r\n useDefaultSearch: true,\r\n load: options => {\r\n var d = new Deferred;\r\n options.dataField = column.dataField || column.name;\r\n dataSource.load(options).done(data => {\r\n var convertUTCDates = remoteGrouping && isUTCFormat(column.serializationFormat) && cutoffLevel > 3;\r\n if (convertUTCDates) {\r\n data = convertDataFromUTCToLocal(data, column)\r\n }\r\n that._processGroupItems(data, null, null, {\r\n level: cutoffLevel,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n });\r\n d.resolve(data)\r\n }).fail(d.reject);\r\n return d\r\n }\r\n }\r\n }\r\n if (isFunction(headerFilterDataSource)) {\r\n headerFilterDataSource.call(column, options)\r\n }\r\n var origPostProcess = options.dataSource.postProcess;\r\n var that = this;\r\n options.dataSource.postProcess = function(data) {\r\n var items = data;\r\n if (isLookup) {\r\n items = items.filter(item => null !== item[column.lookup.valueExpr]);\r\n if (0 === this.pageIndex() && !this.searchValue()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n that._processGroupItems(items, null, null, {\r\n level: 0,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n })\r\n }\r\n items = origPostProcess && origPostProcess.call(this, items) || items;\r\n that._updateSelectedState(items, column);\r\n return items\r\n };\r\n return options.dataSource\r\n }\r\n getCurrentColumn() {\r\n return this._currentColumn\r\n }\r\n showHeaderFilterMenu(columnIndex, isGroupPanel) {\r\n var columnsController = this._columnsController;\r\n var column = extend(true, {}, this._columnsController.getColumns()[columnIndex]);\r\n if (column) {\r\n var visibleIndex = columnsController.getVisibleIndex(columnIndex);\r\n var view = isGroupPanel ? this.getView(\"headerPanel\") : this.getView(\"columnHeadersView\");\r\n var $columnElement = view.getColumnElements().eq(isGroupPanel ? column.groupIndex : visibleIndex);\r\n this.showHeaderFilterMenuBase({\r\n columnElement: $columnElement,\r\n column: column,\r\n applyFilter: true,\r\n apply() {\r\n columnsController.columnOption(columnIndex, {\r\n filterValues: this.filterValues,\r\n filterType: this.filterType\r\n })\r\n }\r\n })\r\n }\r\n }\r\n showHeaderFilterMenuBase(options) {\r\n var {\r\n column: column\r\n } = options;\r\n if (column) {\r\n var groupInterval = filterUtils.getGroupInterval(column);\r\n var dataSource = this._dataController.dataSource();\r\n var remoteFiltering = dataSource && dataSource.remoteOperations().filtering;\r\n var previousOnHidden = options.onHidden;\r\n extend(options, column, {\r\n type: groupInterval && groupInterval.length > 1 ? \"tree\" : \"list\",\r\n remoteFiltering: remoteFiltering,\r\n onShowing: e => {\r\n var dxResizableInstance = e.component.$overlayContent().dxResizable(\"instance\");\r\n dxResizableInstance && dxResizableInstance.option(\"onResizeEnd\", e => {\r\n var headerFilterByColumn = this._columnsController.columnOption(options.dataField, \"headerFilter\");\r\n headerFilterByColumn = headerFilterByColumn || {};\r\n headerFilterByColumn.width = e.width;\r\n headerFilterByColumn.height = e.height;\r\n this._columnsController.columnOption(options.dataField, \"headerFilter\", headerFilterByColumn, true)\r\n })\r\n },\r\n onHidden: () => {\r\n null === previousOnHidden || void 0 === previousOnHidden ? void 0 : previousOnHidden();\r\n restoreFocus(this)\r\n }\r\n });\r\n options.dataSource = this.getDataSource(options);\r\n if (options.isFilterBuilder) {\r\n options.dataSource.filter = null;\r\n options.alignment = \"right\"\r\n }\r\n this._headerFilterView.showHeaderFilterMenu(options.columnElement, options)\r\n }\r\n }\r\n hideHeaderFilterMenu() {\r\n this._headerFilterView.hideHeaderFilterMenu()\r\n }\r\n}\r\nvar columnHeadersView = Base => class extends(headerFilterMixin(Base)) {\r\n _renderCellContent($cell, options) {\r\n var $headerFilterIndicator;\r\n var {\r\n column: column\r\n } = options;\r\n if (!column.command && allowHeaderFiltering(column) && this.option(\"headerFilter.visible\") && \"header\" === options.rowType) {\r\n $headerFilterIndicator = this._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n });\r\n $headerFilterIndicator && this._subscribeToIndicatorEvent($headerFilterIndicator, column, \"headerFilter\")\r\n }\r\n super._renderCellContent.apply(this, arguments)\r\n }\r\n _subscribeToIndicatorEvent($indicator, column, indicatorName) {\r\n if (\"headerFilter\" === indicatorName) {\r\n eventsEngine.on($indicator, clickEventName, this.createAction(e => {\r\n e.event.stopPropagation();\r\n saveFocusedElementInfo($indicator, this);\r\n this._headerFilterController.showHeaderFilterMenu(column.index, false)\r\n }))\r\n }\r\n }\r\n _updateIndicator($cell, column, indicatorName) {\r\n var $indicator = super._updateIndicator($cell, column, indicatorName);\r\n $indicator && this._subscribeToIndicatorEvent($indicator, column, indicatorName)\r\n }\r\n _updateHeaderFilterIndicators() {\r\n if (this.option(\"headerFilter.visible\")) {\r\n this._updateIndicators(\"headerFilter\")\r\n }\r\n }\r\n _needUpdateFilterIndicators() {\r\n return true\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var isFilterRowAndHeaderFilterValuesChanged = gridCoreUtils.checkChanges(optionNames, [\"filterValues\", \"filterValue\"]);\r\n var isHeaderFilterValuesAndTypeChanged = gridCoreUtils.checkChanges(optionNames, [\"filterValues\", \"filterType\"]);\r\n var shouldUpdateFilterIndicators = (isFilterRowAndHeaderFilterValuesChanged || isHeaderFilterValuesAndTypeChanged) && this._needUpdateFilterIndicators();\r\n if (shouldUpdateFilterIndicators) {\r\n this._updateHeaderFilterIndicators()\r\n }\r\n if (!isHeaderFilterValuesAndTypeChanged) {\r\n super._columnOptionChanged(e)\r\n }\r\n }\r\n};\r\nvar headerPanel = Base => class extends(headerFilterMixin(Base)) {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var $item = super._createGroupPanelItem.apply(this, arguments);\r\n var $headerFilterIndicator;\r\n if (!groupColumn.command && allowHeaderFiltering(groupColumn) && this.option(\"headerFilter.visible\")) {\r\n $headerFilterIndicator = this._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $item,\r\n column: {\r\n alignment: getDefaultAlignment(this.option(\"rtlEnabled\")),\r\n filterValues: groupColumn.filterValues,\r\n allowHeaderFiltering: true,\r\n caption: groupColumn.caption\r\n },\r\n showColumnLines: true\r\n });\r\n $headerFilterIndicator && eventsEngine.on($headerFilterIndicator, clickEventName, this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n event.stopPropagation();\r\n this._headerFilterController.showHeaderFilterMenu(groupColumn.index, true)\r\n }))\r\n }\r\n return $item\r\n }\r\n};\r\nexport function invertFilterExpression(filter) {\r\n return [\"!\", filter]\r\n}\r\nvar data = Base => class extends Base {\r\n skipCalculateColumnFilters() {\r\n return false\r\n }\r\n _calculateAdditionalFilter() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return super._calculateAdditionalFilter()\r\n }\r\n var filters = [super._calculateAdditionalFilter()];\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var headerFilterController = this._headerFilterController;\r\n var currentColumn = headerFilterController.getCurrentColumn();\r\n each(columns, (_, column) => {\r\n var filter;\r\n if (currentColumn && currentColumn.index === column.index) {\r\n return\r\n }\r\n if (allowHeaderFiltering(column) && column.calculateFilterExpression && Array.isArray(column.filterValues) && column.filterValues.length) {\r\n var filterValues = [];\r\n each(column.filterValues, (_, filterValue) => {\r\n if (Array.isArray(filterValue)) {\r\n filter = filterValue\r\n } else {\r\n if (column.deserializeValue && !gridCoreUtils.isDateType(column.dataType) && \"number\" !== column.dataType) {\r\n filterValue = column.deserializeValue(filterValue)\r\n }\r\n filter = column.createFilterExpression(filterValue, \"=\", \"headerFilter\")\r\n }\r\n if (filter) {\r\n filter.columnIndex = column.index\r\n }\r\n filterValues.push(filter)\r\n });\r\n filterValues = gridCoreUtils.combineFilters(filterValues, \"or\");\r\n filters.push(\"exclude\" === column.filterType ? [\"!\", filterValues] : filterValues)\r\n }\r\n });\r\n return gridCoreUtils.combineFilters(filters)\r\n }\r\n};\r\nexport var headerFilterModule = {\r\n defaultOptions: () => ({\r\n syncLookupFilterValues: true,\r\n headerFilter: {\r\n visible: false,\r\n width: 252,\r\n height: 325,\r\n allowSelectAll: true,\r\n search: {\r\n enabled: false,\r\n timeout: 500,\r\n mode: \"contains\",\r\n editorOptions: {}\r\n },\r\n texts: {\r\n emptyValue: messageLocalization.format(\"dxDataGrid-headerFilterEmptyValue\"),\r\n ok: messageLocalization.format(\"dxDataGrid-headerFilterOK\"),\r\n cancel: messageLocalization.format(\"dxDataGrid-headerFilterCancel\")\r\n }\r\n }\r\n }),\r\n controllers: {\r\n headerFilter: HeaderFilterController\r\n },\r\n views: {\r\n headerFilterView: HeaderFilterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: data\r\n },\r\n views: {\r\n columnHeadersView: columnHeadersView,\r\n headerPanel: headerPanel\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/header_filter.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n headerFilterModule\r\n} from \"../../../grids/grid_core/header_filter/m_header_filter\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"headerFilter\", headerFilterModule);\r\n","/**\r\n * DevExtreme (esm/__internal/filter_builder/m_between.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar FILTER_BUILDER_RANGE_CLASS = \"dx-filterbuilder-range\";\r\nvar FILTER_BUILDER_RANGE_START_CLASS = \"\".concat(FILTER_BUILDER_RANGE_CLASS, \"-start\");\r\nvar FILTER_BUILDER_RANGE_END_CLASS = \"\".concat(FILTER_BUILDER_RANGE_CLASS, \"-end\");\r\nvar FILTER_BUILDER_RANGE_SEPARATOR_CLASS = \"\".concat(FILTER_BUILDER_RANGE_CLASS, \"-separator\");\r\nvar SEPARATOR = \"\\u2013\";\r\n\r\nfunction editorTemplate(conditionInfo, container) {\r\n var $editorStart = $(\"<div>\").addClass(FILTER_BUILDER_RANGE_START_CLASS);\r\n var $editorEnd = $(\"<div>\").addClass(FILTER_BUILDER_RANGE_END_CLASS);\r\n var values = conditionInfo.value || [];\r\n var getStartValue = function(values) {\r\n return values && values.length > 0 ? values[0] : null\r\n };\r\n var getEndValue = function(values) {\r\n return values && 2 === values.length ? values[1] : null\r\n };\r\n container.append($editorStart);\r\n container.append($(\"<span>\").addClass(FILTER_BUILDER_RANGE_SEPARATOR_CLASS).text(SEPARATOR));\r\n container.append($editorEnd);\r\n container.addClass(FILTER_BUILDER_RANGE_CLASS);\r\n this._editorFactory.createEditor.call(this, $editorStart, extend({}, conditionInfo.field, conditionInfo, {\r\n value: getStartValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue(value) {\r\n values = [value, getEndValue(values)];\r\n conditionInfo.setValue(values)\r\n }\r\n }));\r\n this._editorFactory.createEditor.call(this, $editorEnd, extend({}, conditionInfo.field, conditionInfo, {\r\n value: getEndValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue(value) {\r\n values = [getStartValue(values), value];\r\n conditionInfo.setValue(values)\r\n }\r\n }))\r\n}\r\nexport function getConfig(caption, context) {\r\n return {\r\n name: \"between\",\r\n caption: caption,\r\n icon: \"range\",\r\n valueSeparator: SEPARATOR,\r\n dataTypes: [\"number\", \"date\", \"datetime\"],\r\n editorTemplate: editorTemplate.bind(context),\r\n notForLookup: true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/filter_builder/m_filter_operations_dictionary.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar OPERATION_ICONS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notequal\",\r\n \"<\": \"less\",\r\n \"<=\": \"lessorequal\",\r\n \">\": \"greater\",\r\n \">=\": \"greaterorequal\",\r\n notcontains: \"doesnotcontain\",\r\n contains: \"contains\",\r\n startswith: \"startswith\",\r\n endswith: \"endswith\",\r\n isblank: \"isblank\",\r\n isnotblank: \"isnotblank\"\r\n};\r\nvar OPERATION_NAME = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n isblank: \"isBlank\",\r\n isnotblank: \"isNotBlank\",\r\n between: \"between\"\r\n};\r\nexport default {\r\n getIconByFilterOperation: filterOperation => OPERATION_ICONS[filterOperation],\r\n getNameByFilterOperation: filterOperation => OPERATION_NAME[filterOperation]\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/filter_builder/m_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../data/errors\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport filterUtils from \"../../ui/shared/filtering\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport {\r\n getConfig\r\n} from \"./m_between\";\r\nimport filterOperationsDictionary from \"./m_filter_operations_dictionary\";\r\nvar DEFAULT_DATA_TYPE = \"string\";\r\nvar EMPTY_MENU_ICON = \"icon-none\";\r\nvar AND_GROUP_OPERATION = \"and\";\r\nvar EQUAL_OPERATION = \"=\";\r\nvar NOT_EQUAL_OPERATION = \"<>\";\r\nvar DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n boolean: [\"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n object: [\"isblank\", \"isnotblank\"]\r\n};\r\nvar DEFAULT_FORMAT = {\r\n date: \"shortDate\",\r\n datetime: \"shortDateShortTime\"\r\n};\r\nvar LOOKUP_OPERATIONS = [\"=\", \"<>\", \"isblank\", \"isnotblank\"];\r\nvar AVAILABLE_FIELD_PROPERTIES = [\"caption\", \"customizeText\", \"dataField\", \"dataType\", \"editorTemplate\", \"falseText\", \"editorOptions\", \"filterOperations\", \"format\", \"lookup\", \"trueText\", \"calculateFilterExpression\", \"name\"];\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-text\");\r\nvar FILTER_BUILDER_ITEM_TEXT_PART_CLASS = \"\".concat(FILTER_BUILDER_ITEM_TEXT_CLASS, \"-part\");\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS = \"\".concat(FILTER_BUILDER_ITEM_TEXT_CLASS, \"-separator\");\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS = \"\".concat(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS, \"-empty\");\r\n\r\nfunction getFormattedValueText(field, value) {\r\n var fieldFormat = field.format || DEFAULT_FORMAT[field.dataType];\r\n return formatHelper.format(value, fieldFormat)\r\n}\r\n\r\nfunction isNegationGroup(group) {\r\n return group && group.length > 1 && \"!\" === group[0] && !isCondition(group)\r\n}\r\nexport function getGroupCriteria(group) {\r\n return isNegationGroup(group) ? group[1] : group\r\n}\r\n\r\nfunction setGroupCriteria(group, criteria) {\r\n if (isNegationGroup(group)) {\r\n group[1] = criteria\r\n } else {\r\n group = criteria\r\n }\r\n return group\r\n}\r\n\r\nfunction convertGroupToNewStructure(group, value) {\r\n if (function(value) {\r\n return -1 !== value.indexOf(\"!\")\r\n }(value)) {\r\n if (!isNegationGroup(group)) {\r\n ! function(group) {\r\n var criteria = group.slice(0);\r\n group.length = 0;\r\n group.push(\"!\", criteria)\r\n }(group)\r\n }\r\n } else if (isNegationGroup(group)) {\r\n ! function(group) {\r\n var criteria = getGroupCriteria(group);\r\n group.length = 0;\r\n [].push.apply(group, criteria)\r\n }(group)\r\n }\r\n}\r\nexport function setGroupValue(group, value) {\r\n convertGroupToNewStructure(group, value);\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n value = function(value) {\r\n return -1 === value.indexOf(\"!\") ? value : value.substring(1)\r\n }(value);\r\n ! function(criteria, value) {\r\n for (i = 0; i < criteria.length; i++) {\r\n if (!Array.isArray(criteria[i])) {\r\n criteria[i] = value\r\n }\r\n }\r\n }(criteria, value);\r\n return group\r\n}\r\nexport function getGroupMenuItem(group, availableGroups) {\r\n var groupValue = getGroupValue(group);\r\n return availableGroups.filter(item => item.value === groupValue)[0]\r\n}\r\n\r\nfunction getCriteriaOperation(criteria) {\r\n if (isCondition(criteria)) {\r\n return AND_GROUP_OPERATION\r\n }\r\n var value = \"\";\r\n for (var i = 0; i < criteria.length; i++) {\r\n var item = criteria[i];\r\n if (!Array.isArray(item)) {\r\n if (value && value !== item) {\r\n throw new dataErrors.Error(\"E4019\")\r\n }\r\n if (\"!\" !== item) {\r\n value = item\r\n }\r\n }\r\n }\r\n return value\r\n}\r\nexport function getGroupValue(group) {\r\n var criteria = getGroupCriteria(group);\r\n var value = getCriteriaOperation(criteria);\r\n if (!value) {\r\n value = AND_GROUP_OPERATION\r\n }\r\n if (criteria !== group) {\r\n value = \"!\".concat(value)\r\n }\r\n return value\r\n}\r\n\r\nfunction getDefaultFilterOperations(field) {\r\n return field.lookup && LOOKUP_OPERATIONS || DATATYPE_OPERATIONS[field.dataType || DEFAULT_DATA_TYPE]\r\n}\r\n\r\nfunction containItems(entity) {\r\n return Array.isArray(entity) && entity.length\r\n}\r\nexport function getFilterOperations(field) {\r\n var result = containItems(field.filterOperations) ? field.filterOperations : getDefaultFilterOperations(field);\r\n return extend([], result)\r\n}\r\nexport function getCaptionByOperation(operation, filterOperationDescriptions) {\r\n var operationName = filterOperationsDictionary.getNameByFilterOperation(operation);\r\n return filterOperationDescriptions && filterOperationDescriptions[operationName] ? filterOperationDescriptions[operationName] : operationName\r\n}\r\nexport function getOperationFromAvailable(operation, availableOperations) {\r\n for (var i = 0; i < availableOperations.length; i++) {\r\n if (availableOperations[i].value === operation) {\r\n return availableOperations[i]\r\n }\r\n }\r\n throw new errors.Error(\"E1048\", operation)\r\n}\r\nexport function getCustomOperation(customOperations, name) {\r\n var filteredOperations = customOperations.filter(item => item.name === name);\r\n return filteredOperations.length ? filteredOperations[0] : null\r\n}\r\nexport function getAvailableOperations(field, filterOperationDescriptions, customOperations) {\r\n var filterOperations = getFilterOperations(field);\r\n var isLookupField = !!field.lookup;\r\n customOperations.forEach(customOperation => {\r\n if (!field.filterOperations && -1 === filterOperations.indexOf(customOperation.name)) {\r\n var dataTypes = customOperation && customOperation.dataTypes;\r\n var isOperationForbidden = isLookupField ? !!customOperation.notForLookup : false;\r\n if (!isOperationForbidden && dataTypes && dataTypes.indexOf(field.dataType || DEFAULT_DATA_TYPE) >= 0) {\r\n filterOperations.push(customOperation.name)\r\n }\r\n }\r\n });\r\n return filterOperations.map(operation => {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n return {\r\n icon: customOperation.icon || EMPTY_MENU_ICON,\r\n text: customOperation.caption || captionize(customOperation.name),\r\n value: customOperation.name,\r\n isCustom: true\r\n }\r\n }\r\n return {\r\n icon: filterOperationsDictionary.getIconByFilterOperation(operation) || EMPTY_MENU_ICON,\r\n text: getCaptionByOperation(operation, filterOperationDescriptions),\r\n value: operation\r\n }\r\n })\r\n}\r\nexport function getDefaultOperation(field) {\r\n return field.defaultFilterOperation || getFilterOperations(field)[0]\r\n}\r\nexport function createCondition(field, customOperations) {\r\n var condition = [field.dataField, \"\", \"\"];\r\n var filterOperation = getDefaultOperation(field);\r\n updateConditionByOperation(condition, filterOperation, customOperations);\r\n return condition\r\n}\r\nexport function removeItem(group, item) {\r\n var criteria = getGroupCriteria(group);\r\n var index = criteria.indexOf(item);\r\n criteria.splice(index, 1);\r\n if (1 !== criteria.length) {\r\n criteria.splice(index, 1)\r\n }\r\n return group\r\n}\r\nexport function createEmptyGroup(value) {\r\n var isNegation = isNegationGroupOperation(value);\r\n var groupOperation = isNegation ? getGroupOperationFromNegationOperation(value) : value;\r\n return isNegation ? [\"!\", [groupOperation]] : [groupOperation]\r\n}\r\nexport function isEmptyGroup(group) {\r\n var criteria = getGroupCriteria(group);\r\n if (isCondition(criteria)) {\r\n return false\r\n }\r\n var hasConditions = criteria.some(item => isCondition(item));\r\n return !hasConditions\r\n}\r\nexport function addItem(item, group) {\r\n var criteria = getGroupCriteria(group);\r\n var groupValue = getGroupValue(criteria);\r\n 1 === criteria.length ? criteria.unshift(item) : criteria.push(item, groupValue);\r\n return group\r\n}\r\nexport function getField(dataField, fields) {\r\n for (var i = 0; i < fields.length; i++) {\r\n if (fields[i].name === dataField) {\r\n return fields[i]\r\n }\r\n if (fields[i].dataField.toLowerCase() === dataField.toLowerCase()) {\r\n return fields[i]\r\n }\r\n }\r\n var extendedFields = getItems(fields, true).filter(item => item.dataField.toLowerCase() === dataField.toLowerCase());\r\n if (extendedFields.length > 0) {\r\n return extendedFields[0]\r\n }\r\n throw new errors.Error(\"E1047\", dataField)\r\n}\r\nexport function isGroup(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length < 2 || Array.isArray(criteria[0]) || Array.isArray(criteria[1])\r\n}\r\nexport function isCondition(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length > 1 && !Array.isArray(criteria[0]) && !Array.isArray(criteria[1])\r\n}\r\n\r\nfunction convertToInnerGroup(group, customOperations, defaultGroupOperation) {\r\n defaultGroupOperation = defaultGroupOperation || AND_GROUP_OPERATION;\r\n var groupOperation = getCriteriaOperation(group).toLowerCase() || defaultGroupOperation;\r\n var innerGroup = [];\r\n for (var i = 0; i < group.length; i++) {\r\n if (isGroup(group[i])) {\r\n innerGroup.push(convertToInnerStructure(group[i], customOperations, defaultGroupOperation));\r\n innerGroup = appendGroupOperationToGroup(innerGroup, groupOperation)\r\n } else if (isCondition(group[i])) {\r\n innerGroup.push(convertToInnerCondition(group[i], customOperations));\r\n innerGroup = appendGroupOperationToGroup(innerGroup, groupOperation)\r\n }\r\n }\r\n if (0 === innerGroup.length) {\r\n innerGroup = appendGroupOperationToGroup(innerGroup, groupOperation)\r\n }\r\n return innerGroup\r\n}\r\n\r\nfunction conditionHasCustomOperation(condition, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, condition[1]);\r\n return customOperation && customOperation.name === condition[1]\r\n}\r\n\r\nfunction convertToInnerCondition(condition, customOperations) {\r\n if (conditionHasCustomOperation(condition, customOperations)) {\r\n return condition\r\n }\r\n if (condition.length < 3) {\r\n condition[2] = condition[1];\r\n condition[1] = EQUAL_OPERATION\r\n }\r\n return condition\r\n}\r\n\r\nfunction isNegationGroupOperation(operation) {\r\n return -1 !== operation.indexOf(\"not\")\r\n}\r\n\r\nfunction getGroupOperationFromNegationOperation(operation) {\r\n return operation.substring(3).toLowerCase()\r\n}\r\n\r\nfunction appendGroupOperationToCriteria(criteria, groupOperation) {\r\n var isNegation = isNegationGroupOperation(groupOperation);\r\n groupOperation = isNegation ? getGroupOperationFromNegationOperation(groupOperation) : groupOperation;\r\n return isNegation ? [\"!\", criteria, groupOperation] : [criteria, groupOperation]\r\n}\r\n\r\nfunction appendGroupOperationToGroup(group, groupOperation) {\r\n var isNegation = isNegationGroupOperation(groupOperation);\r\n groupOperation = isNegation ? getGroupOperationFromNegationOperation(groupOperation) : groupOperation;\r\n group.push(groupOperation);\r\n var result = group;\r\n if (isNegation) {\r\n result = [\"!\", result]\r\n }\r\n return result\r\n}\r\nexport function convertToInnerStructure(value, customOperations, defaultGroupOperation) {\r\n defaultGroupOperation = defaultGroupOperation || AND_GROUP_OPERATION;\r\n if (!value) {\r\n return createEmptyGroup(defaultGroupOperation)\r\n }\r\n value = extend(true, [], value);\r\n if (isCondition(value)) {\r\n return appendGroupOperationToCriteria(convertToInnerCondition(value, customOperations), defaultGroupOperation)\r\n }\r\n if (isNegationGroup(value)) {\r\n return [\"!\", isCondition(value[1]) ? appendGroupOperationToCriteria(convertToInnerCondition(value[1], customOperations), defaultGroupOperation) : isNegationGroup(value[1]) ? appendGroupOperationToCriteria(convertToInnerStructure(value[1], customOperations), defaultGroupOperation) : convertToInnerGroup(value[1], customOperations, defaultGroupOperation)]\r\n }\r\n return convertToInnerGroup(value, customOperations, defaultGroupOperation)\r\n}\r\nexport function getNormalizedFields(fields) {\r\n return fields.reduce((result, field) => {\r\n if (isDefined(field.dataField)) {\r\n var normalizedField = {};\r\n for (var key in field) {\r\n if (field[key] && AVAILABLE_FIELD_PROPERTIES.includes(key)) {\r\n normalizedField[key] = field[key]\r\n }\r\n }\r\n normalizedField.defaultCalculateFilterExpression = filterUtils.defaultCalculateFilterExpression;\r\n if (!isDefined(normalizedField.dataType)) {\r\n normalizedField.dataType = DEFAULT_DATA_TYPE\r\n }\r\n if (!isDefined(normalizedField.trueText)) {\r\n normalizedField.trueText = messageLocalization.format(\"dxDataGrid-trueText\")\r\n }\r\n if (!isDefined(normalizedField.falseText)) {\r\n normalizedField.falseText = messageLocalization.format(\"dxDataGrid-falseText\")\r\n }\r\n result.push(normalizedField)\r\n }\r\n return result\r\n }, [])\r\n}\r\n\r\nfunction getConditionFilterExpression(condition, fields, customOperations, target) {\r\n var field = getField(condition[0], fields);\r\n var filterExpression = convertToInnerCondition(condition, customOperations);\r\n var customOperation = customOperations.length && getCustomOperation(customOperations, filterExpression[1]);\r\n if (customOperation && customOperation.calculateFilterExpression) {\r\n return customOperation.calculateFilterExpression.apply(customOperation, [filterExpression[2], field, fields])\r\n }\r\n if (field.createFilterExpression) {\r\n return field.createFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n }\r\n if (field.calculateFilterExpression) {\r\n return field.calculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n }\r\n return field.defaultCalculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n}\r\nexport function getFilterExpression(value, fields, customOperations, target) {\r\n if (!isDefined(value)) {\r\n return null\r\n }\r\n if (isNegationGroup(value)) {\r\n var _filterExpression = getFilterExpression(value[1], fields, customOperations, target);\r\n return [\"!\", _filterExpression]\r\n }\r\n var criteria = getGroupCriteria(value);\r\n if (isCondition(criteria)) {\r\n return getConditionFilterExpression(criteria, fields, customOperations, target) || null\r\n }\r\n var result = [];\r\n var filterExpression;\r\n var groupValue = getGroupValue(criteria);\r\n for (var i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n filterExpression = getFilterExpression(criteria[i], fields, customOperations, target);\r\n if (filterExpression) {\r\n i && result.push(groupValue);\r\n result.push(filterExpression)\r\n }\r\n } else if (isCondition(criteria[i])) {\r\n filterExpression = getConditionFilterExpression(criteria[i], fields, customOperations, target);\r\n if (filterExpression) {\r\n result.length && result.push(groupValue);\r\n result.push(filterExpression)\r\n }\r\n }\r\n }\r\n if (1 === result.length) {\r\n result = result[0]\r\n }\r\n return result.length ? result : null\r\n}\r\nexport function getNormalizedFilter(group) {\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n if (0 === criteria.length) {\r\n return null\r\n }\r\n var itemsForRemove = [];\r\n for (i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n var normalizedGroupValue = getNormalizedFilter(criteria[i]);\r\n if (normalizedGroupValue) {\r\n criteria[i] = normalizedGroupValue\r\n } else {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n } else if (isCondition(criteria[i])) {\r\n if (!isValidCondition(criteria[i])) {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n }\r\n }\r\n for (i = 0; i < itemsForRemove.length; i++) {\r\n removeItem(criteria, itemsForRemove[i])\r\n }\r\n if (1 === criteria.length) {\r\n return null\r\n }\r\n criteria.splice(criteria.length - 1, 1);\r\n if (1 === criteria.length) {\r\n group = setGroupCriteria(group, criteria[0])\r\n }\r\n if (0 === group.length) {\r\n return null\r\n }\r\n return group\r\n}\r\nexport function getCurrentLookupValueText(field, value, handler) {\r\n if (\"\" === value) {\r\n handler(\"\");\r\n return\r\n }\r\n var {\r\n lookup: lookup\r\n } = field;\r\n if (lookup.items) {\r\n handler(lookup.calculateCellValue(value) || \"\")\r\n } else {\r\n var lookupDataSource = isFunction(lookup.dataSource) ? lookup.dataSource({}) : lookup.dataSource;\r\n var dataSource = new DataSource(lookupDataSource);\r\n dataSource.loadSingle(lookup.valueExpr, value).done(result => {\r\n var valueText = \"\";\r\n if (result) {\r\n valueText = lookup.displayExpr ? compileGetter(lookup.displayExpr)(result) : result\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText({\r\n value: value,\r\n valueText: valueText\r\n })\r\n }\r\n handler(valueText)\r\n }).fail(() => {\r\n handler(\"\")\r\n })\r\n }\r\n}\r\n\r\nfunction getPrimitiveValueText(field, value, customOperation, target, options) {\r\n var valueText;\r\n if (true === value) {\r\n valueText = field.trueText || messageLocalization.format(\"dxDataGrid-trueText\")\r\n } else if (false === value) {\r\n valueText = field.falseText || messageLocalization.format(\"dxDataGrid-falseText\")\r\n } else {\r\n valueText = getFormattedValueText(field, value)\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText.call(field, {\r\n value: value,\r\n valueText: valueText,\r\n target: target\r\n })\r\n }\r\n if (customOperation && customOperation.customizeText) {\r\n valueText = customOperation.customizeText.call(customOperation, {\r\n value: value,\r\n valueText: valueText,\r\n field: field,\r\n target: target\r\n }, options)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getArrayValueText(field, value, customOperation, target) {\r\n var options = {\r\n values: value\r\n };\r\n return value.map(v => getPrimitiveValueText(field, v, customOperation, target, options))\r\n}\r\n\r\nfunction checkDefaultValue(value) {\r\n return \"\" === value || null === value\r\n}\r\nexport function getCurrentValueText(field, value, customOperation) {\r\n var target = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : \"filterBuilder\";\r\n if (checkDefaultValue(value)) {\r\n return \"\"\r\n }\r\n if (Array.isArray(value)) {\r\n var result = new Deferred;\r\n when.apply(this, getArrayValueText(field, value, customOperation, target)).done((function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n var text = args.some(item => !checkDefaultValue(item)) ? args.map(item => !checkDefaultValue(item) ? item : \"?\") : \"\";\r\n result.resolve(text)\r\n }));\r\n return result\r\n }\r\n return getPrimitiveValueText(field, value, customOperation, target)\r\n}\r\n\r\nfunction itemExists(plainItems, parentId) {\r\n return plainItems.some(item => item.dataField === parentId)\r\n}\r\n\r\nfunction pushItemAndCheckParent(originalItems, plainItems, item) {\r\n var {\r\n dataField: dataField\r\n } = item;\r\n if (hasParent(dataField)) {\r\n item.parentId = getParentIdFromItemDataField(dataField);\r\n if (!itemExists(plainItems, item.parentId) && !itemExists(originalItems, item.parentId)) {\r\n pushItemAndCheckParent(originalItems, plainItems, {\r\n id: item.parentId,\r\n dataType: \"object\",\r\n dataField: item.parentId,\r\n caption: generateCaptionByDataField(item.parentId, true),\r\n filterOperations: [\"isblank\", \"isnotblank\"],\r\n defaultCalculateFilterExpression: filterUtils.defaultCalculateFilterExpression\r\n })\r\n }\r\n }\r\n plainItems.push(item)\r\n}\r\n\r\nfunction generateCaptionByDataField(dataField, allowHierarchicalFields) {\r\n var caption = \"\";\r\n if (allowHierarchicalFields) {\r\n dataField = dataField.substring(dataField.lastIndexOf(\".\") + 1)\r\n } else if (hasParent(dataField)) {\r\n dataField.split(\".\").forEach((field, index, arr) => {\r\n caption += captionize(field);\r\n if (index !== arr.length - 1) {\r\n caption += \".\"\r\n }\r\n });\r\n return caption\r\n }\r\n return captionize(dataField)\r\n}\r\nexport function getItems(fields, allowHierarchicalFields) {\r\n var items = [];\r\n for (var i = 0; i < fields.length; i++) {\r\n var item = extend(true, {\r\n caption: generateCaptionByDataField(fields[i].dataField, allowHierarchicalFields)\r\n }, fields[i]);\r\n item.id = item.name || item.dataField;\r\n if (allowHierarchicalFields) {\r\n pushItemAndCheckParent(fields, items, item)\r\n } else {\r\n items.push(item)\r\n }\r\n }\r\n return items\r\n}\r\n\r\nfunction hasParent(dataField) {\r\n return -1 !== dataField.lastIndexOf(\".\")\r\n}\r\n\r\nfunction getParentIdFromItemDataField(dataField) {\r\n return dataField.substring(0, dataField.lastIndexOf(\".\"))\r\n}\r\nexport function getCaptionWithParents(item, plainItems) {\r\n if (hasParent(item.dataField)) {\r\n var parentId = getParentIdFromItemDataField(item.dataField);\r\n for (var i = 0; i < plainItems.length; i++) {\r\n if (plainItems[i].dataField === parentId) {\r\n return \"\".concat(getCaptionWithParents(plainItems[i], plainItems), \".\").concat(item.caption)\r\n }\r\n }\r\n }\r\n return item.caption\r\n}\r\nexport function updateConditionByOperation(condition, operation, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n if (false === customOperation.hasValue) {\r\n condition[1] = operation;\r\n condition.length = 2\r\n } else {\r\n condition[1] = operation;\r\n condition[2] = \"\"\r\n }\r\n return condition\r\n }\r\n if (\"isblank\" === operation) {\r\n condition[1] = EQUAL_OPERATION;\r\n condition[2] = null\r\n } else if (\"isnotblank\" === operation) {\r\n condition[1] = NOT_EQUAL_OPERATION;\r\n condition[2] = null\r\n } else {\r\n customOperation = getCustomOperation(customOperations, condition[1]);\r\n if (customOperation || 2 === condition.length || null === condition[2]) {\r\n condition[2] = \"\"\r\n }\r\n condition[1] = operation\r\n }\r\n return condition\r\n}\r\nexport function getOperationValue(condition) {\r\n var caption;\r\n if (null === condition[2]) {\r\n if (condition[1] === EQUAL_OPERATION) {\r\n caption = \"isblank\"\r\n } else {\r\n caption = \"isnotblank\"\r\n }\r\n } else {\r\n caption = condition[1]\r\n }\r\n return caption\r\n}\r\nexport function isValidCondition(condition) {\r\n return \"\" !== condition[2]\r\n}\r\nexport function getMergedOperations(customOperations, betweenCaption, context) {\r\n var result = extend(true, [], customOperations);\r\n var betweenIndex = -1;\r\n result.some((customOperation, index) => {\r\n if (\"between\" === customOperation.name) {\r\n betweenIndex = index;\r\n return true\r\n }\r\n return\r\n });\r\n if (-1 !== betweenIndex) {\r\n result[betweenIndex] = extend(getConfig(betweenCaption, context), result[betweenIndex])\r\n } else {\r\n result.unshift(getConfig(betweenCaption, context))\r\n }\r\n return result\r\n}\r\n\r\nfunction isMatchedCondition(filter, addedFilterDataField) {\r\n return filter[0] === addedFilterDataField\r\n}\r\nexport function removeFieldConditionsFromFilter(filter, dataField) {\r\n if (!filter || 0 === filter.length) {\r\n return null\r\n }\r\n if (isCondition(filter)) {\r\n var hasMatchedCondition = isMatchedCondition(filter, dataField);\r\n return !hasMatchedCondition ? filter : null\r\n }\r\n return syncConditionIntoGroup(filter, [dataField], false)\r\n}\r\n\r\nfunction syncConditionIntoGroup(filter, addedFilter, canPush) {\r\n var result = [];\r\n filter.forEach(item => {\r\n if (isCondition(item)) {\r\n if (isMatchedCondition(item, addedFilter[0])) {\r\n if (canPush) {\r\n result.push(addedFilter);\r\n canPush = false\r\n } else {\r\n result.splice(result.length - 1, 1)\r\n }\r\n } else {\r\n result.push(item)\r\n }\r\n } else {\r\n (result.length || isGroup(item)) && result.push(item)\r\n }\r\n });\r\n if (0 === result.length) {\r\n return null\r\n }\r\n if (canPush) {\r\n result.push(AND_GROUP_OPERATION);\r\n result.push(addedFilter)\r\n }\r\n return 1 === result.length ? result[0] : result\r\n}\r\nexport function syncFilters(filter, addedFilter) {\r\n if (null === filter || 0 === filter.length) {\r\n return addedFilter\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, addedFilter[0])) {\r\n return addedFilter\r\n }\r\n return [filter, AND_GROUP_OPERATION, addedFilter]\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return [addedFilter, \"and\", filter]\r\n }\r\n return syncConditionIntoGroup(filter, addedFilter, true)\r\n}\r\nexport function getMatchedConditions(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return []\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, dataField)) {\r\n return [filter]\r\n }\r\n return []\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return []\r\n }\r\n var result = filter.filter(item => isCondition(item) && isMatchedCondition(item, dataField));\r\n return result\r\n}\r\nexport function filterHasField(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return false\r\n }\r\n if (isCondition(filter)) {\r\n return filter[0] === dataField\r\n }\r\n return filter.some(item => (isCondition(item) || isGroup(item)) && filterHasField(item, dataField))\r\n}\r\nexport var renderValueText = function($container, value, customOperation) {\r\n if (Array.isArray(value)) {\r\n var lastItemIndex = value.length - 1;\r\n $container.empty();\r\n value.forEach((t, i) => {\r\n $(\"<span>\").addClass(FILTER_BUILDER_ITEM_TEXT_PART_CLASS).text(t).appendTo($container);\r\n if (i !== lastItemIndex) {\r\n $(\"<span>\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS).text(customOperation && customOperation.valueSeparator ? customOperation.valueSeparator : \"|\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS).appendTo($container)\r\n }\r\n })\r\n } else if (value) {\r\n $container.text(value)\r\n } else {\r\n $container.text(messageLocalization.format(\"dxFilterBuilder-enterValueText\"))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_custom_operations.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n getFilterExpression,\r\n isCondition,\r\n isGroup,\r\n renderValueText\r\n} from \"../../../filter_builder/m_utils\";\r\n\r\nfunction baseOperation(grid) {\r\n var getFullText = function(itemText, parentText) {\r\n return parentText ? \"\".concat(parentText, \"/\").concat(itemText) : itemText\r\n };\r\n var headerFilterController = grid && grid.getController(\"headerFilter\");\r\n return {\r\n dataTypes: [\"string\", \"date\", \"datetime\", \"number\", \"boolean\", \"object\"],\r\n calculateFilterExpression: function(filterValue, field, fields) {\r\n var result = [];\r\n var lastIndex = filterValue.length - 1;\r\n filterValue && filterValue.forEach((value, index) => {\r\n if (isCondition(value) || isGroup(value)) {\r\n var filterExpression = getFilterExpression(value, fields, [], \"headerFilter\");\r\n result.push(filterExpression)\r\n } else {\r\n var _filterExpression = getFilterExpression([field.dataField, \"=\", value], fields, [], \"headerFilter\");\r\n result.push(_filterExpression)\r\n }\r\n index !== lastIndex && result.push(\"or\")\r\n });\r\n if (1 === result.length) {\r\n return result[0]\r\n }\r\n return result\r\n },\r\n editorTemplate(conditionInfo, container) {\r\n var div = $(\"<div>\").addClass(\"dx-filterbuilder-item-value-text\").appendTo(container);\r\n var column = extend(true, {}, grid.columnOption(conditionInfo.field.dataField));\r\n renderValueText(div, conditionInfo.text && conditionInfo.text.split(\"|\"));\r\n column.filterType = \"include\";\r\n column.filterValues = conditionInfo.value ? conditionInfo.value.slice() : [];\r\n headerFilterController.showHeaderFilterMenuBase({\r\n columnElement: div,\r\n column: column,\r\n apply() {\r\n value = this.filterValues, void conditionInfo.setValue(value);\r\n var value;\r\n headerFilterController.hideHeaderFilterMenu();\r\n conditionInfo.closeEditor()\r\n },\r\n onHidden() {\r\n conditionInfo.closeEditor()\r\n },\r\n isFilterBuilder: true\r\n });\r\n return container\r\n },\r\n customizeText: function(fieldInfo, options) {\r\n options = options || {};\r\n var {\r\n value: value\r\n } = fieldInfo;\r\n var column = grid.columnOption(fieldInfo.field.dataField);\r\n var headerFilter = column && column.headerFilter;\r\n var lookup = column && column.lookup;\r\n var values = options.values || [value];\r\n if (headerFilter && headerFilter.dataSource || lookup && lookup.dataSource) {\r\n var result = new Deferred;\r\n var itemsDeferred = options.items || new Deferred;\r\n if (!options.items) {\r\n column = extend({}, column, {\r\n filterType: \"include\",\r\n filterValues: values\r\n });\r\n var dataSourceOptions = headerFilterController.getDataSource(column);\r\n dataSourceOptions.paginate = false;\r\n var dataSource = new DataSource(dataSourceOptions);\r\n var key = dataSource.store().key();\r\n if (key) {\r\n var {\r\n values: _values\r\n } = options;\r\n if (_values && _values.length > 1) {\r\n var filter = _values.reduce((result, value) => {\r\n if (result.length) {\r\n result.push(\"or\")\r\n }\r\n result.push([key, \"=\", value]);\r\n return result\r\n }, []);\r\n dataSource.filter(filter)\r\n } else {\r\n dataSource.filter([key, \"=\", fieldInfo.value])\r\n }\r\n } else if (fieldInfo.field.calculateDisplayValue) {\r\n errors.log(\"W1017\")\r\n }\r\n options.items = itemsDeferred;\r\n dataSource.load().done(itemsDeferred.resolve)\r\n }\r\n itemsDeferred.done(items => {\r\n var index = values.indexOf(fieldInfo.value);\r\n result.resolve(function getSelectedItemsTexts(items, parentText) {\r\n var result = [];\r\n items.forEach(item => {\r\n if (item.items) {\r\n var selectedItemsTexts = getSelectedItemsTexts(item.items, getFullText(item.text, parentText));\r\n result = result.concat(selectedItemsTexts)\r\n }\r\n item.selected && result.push(getFullText(item.text, parentText))\r\n });\r\n return result\r\n }(items, null)[index])\r\n });\r\n return result\r\n }\r\n var text = headerFilterController.getHeaderItemText(value, column, 0, grid.option(\"headerFilter\"));\r\n return text\r\n }\r\n }\r\n}\r\nexport function anyOf(grid) {\r\n return extend(baseOperation(grid), {\r\n name: \"anyof\",\r\n icon: \"selectall\",\r\n caption: messageLocalization.format(\"dxFilterBuilder-filterOperationAnyOf\")\r\n })\r\n}\r\nexport function noneOf(grid) {\r\n var baseOp = baseOperation(grid);\r\n return extend({}, baseOp, {\r\n calculateFilterExpression(filterValue, field, fields) {\r\n var baseFilter = baseOp.calculateFilterExpression(filterValue, field, fields);\r\n if (!baseFilter || 0 === baseFilter.length) {\r\n return null\r\n }\r\n return \"!\" === baseFilter[0] ? baseFilter : [\"!\", baseFilter]\r\n },\r\n name: \"noneof\",\r\n icon: \"unselectall\",\r\n caption: messageLocalization.format(\"dxFilterBuilder-filterOperationNoneOf\")\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_sync.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport filterUtils from \"../../../../ui/shared/filtering\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n addItem,\r\n filterHasField,\r\n getDefaultOperation,\r\n getFilterExpression,\r\n getMatchedConditions,\r\n getNormalizedFilter,\r\n removeFieldConditionsFromFilter,\r\n syncFilters\r\n} from \"../../../filter_builder/m_utils\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n anyOf,\r\n noneOf\r\n} from \"./m_filter_custom_operations\";\r\nvar FILTER_ROW_OPERATIONS = [\"=\", \"<>\", \"<\", \"<=\", \">\", \">=\", \"notcontains\", \"contains\", \"startswith\", \"endswith\", \"between\"];\r\nvar FILTER_TYPES_INCLUDE = \"include\";\r\nvar FILTER_TYPES_EXCLUDE = \"exclude\";\r\n\r\nfunction getColumnIdentifier(column) {\r\n return column.name || column.dataField\r\n}\r\n\r\nfunction checkForErrors(columns) {\r\n columns.forEach(column => {\r\n var identifier = getColumnIdentifier(column);\r\n if (!isDefined(identifier) && column.allowFiltering) {\r\n throw new errors.Error(\"E1049\", column.caption)\r\n }\r\n })\r\n}\r\nvar getEmptyFilterValues = function() {\r\n return {\r\n filterType: FILTER_TYPES_INCLUDE,\r\n filterValues: void 0\r\n }\r\n};\r\nvar canSyncHeaderFilterWithFilterRow = function(column) {\r\n var filterValues = column.filterValues || [];\r\n return !filterUtils.getGroupInterval(column) && !(column.headerFilter && column.headerFilter.dataSource) || 1 === filterValues.length && null === filterValues[0]\r\n};\r\nvar getHeaderFilterFromCondition = function(headerFilterCondition, column) {\r\n if (!headerFilterCondition) {\r\n return getEmptyFilterValues()\r\n }\r\n var filterType;\r\n var selectedFilterOperation = headerFilterCondition[1];\r\n var value = headerFilterCondition[2];\r\n var hasArrayValue = Array.isArray(value);\r\n if (!hasArrayValue) {\r\n if (!canSyncHeaderFilterWithFilterRow(column)) {\r\n return getEmptyFilterValues()\r\n }\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"anyof\":\r\n case \"=\":\r\n filterType = FILTER_TYPES_INCLUDE;\r\n break;\r\n case \"noneof\":\r\n case \"<>\":\r\n filterType = FILTER_TYPES_EXCLUDE;\r\n break;\r\n default:\r\n return getEmptyFilterValues()\r\n }\r\n return {\r\n filterType: filterType,\r\n filterValues: hasArrayValue ? value : [value]\r\n }\r\n};\r\nvar getConditionFromFilterRow = function(column) {\r\n var value = column.filterValue;\r\n if (isDefined(value)) {\r\n var operation = column.selectedFilterOperation || column.defaultFilterOperation || getDefaultOperation(column);\r\n var filter = [getColumnIdentifier(column), operation, column.filterValue];\r\n return filter\r\n }\r\n return null\r\n};\r\nvar getConditionFromHeaderFilter = function(column) {\r\n var selectedOperation;\r\n var value;\r\n var {\r\n filterValues: filterValues\r\n } = column;\r\n if (!filterValues) {\r\n return null\r\n }\r\n if (1 === filterValues.length && canSyncHeaderFilterWithFilterRow(column) && !Array.isArray(filterValues[0])) {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"<>\" : selectedOperation = \"=\";\r\n value = filterValues[0]\r\n } else {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"noneof\" : selectedOperation = \"anyof\";\r\n value = filterValues\r\n }\r\n return [getColumnIdentifier(column), selectedOperation, value]\r\n};\r\nvar updateHeaderFilterCondition = function(columnsController, column, headerFilterCondition) {\r\n var headerFilter = getHeaderFilterFromCondition(headerFilterCondition, column);\r\n columnsController.columnOption(getColumnIdentifier(column), headerFilter)\r\n};\r\nvar updateFilterRowCondition = function(columnsController, column, condition) {\r\n var filterRowOptions;\r\n var selectedFilterOperation = null === condition || void 0 === condition ? void 0 : condition[1];\r\n var filterValue = null === condition || void 0 === condition ? void 0 : condition[2];\r\n var filterOperations = column.filterOperations || column.defaultFilterOperations;\r\n if ((!filterOperations || filterOperations.indexOf(selectedFilterOperation) >= 0 || selectedFilterOperation === column.defaultFilterOperation) && FILTER_ROW_OPERATIONS.includes(selectedFilterOperation) && null !== filterValue) {\r\n if (selectedFilterOperation === column.defaultFilterOperation && !isDefined(column.selectedFilterOperation)) {\r\n selectedFilterOperation = column.selectedFilterOperation\r\n }\r\n filterRowOptions = {\r\n filterValue: filterValue,\r\n selectedFilterOperation: selectedFilterOperation\r\n }\r\n } else {\r\n filterRowOptions = {\r\n filterValue: void 0,\r\n selectedFilterOperation: void 0\r\n }\r\n }\r\n columnsController.columnOption(getColumnIdentifier(column), filterRowOptions)\r\n};\r\nexport class FilterSyncController extends modules.Controller {\r\n init() {\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n if (this._dataController.isFilterSyncActive()) {\r\n if (this._columnsController.isAllDataTypesDefined()) {\r\n this._initSync()\r\n } else {\r\n this._dataController.dataSourceChanged.add(() => this._initSync())\r\n }\r\n }\r\n }\r\n publicMethods() {\r\n return [\"getCustomFilterOperations\"]\r\n }\r\n syncFilterValue() {\r\n var that = this;\r\n var columns = this._columnsController.getFilteringColumns();\r\n this._skipSyncColumnOptions = true;\r\n columns.forEach(column => {\r\n var filterConditions = getMatchedConditions(that.option(\"filterValue\"), getColumnIdentifier(column));\r\n if (1 === filterConditions.length) {\r\n var filterCondition = filterConditions[0];\r\n updateHeaderFilterCondition(this._columnsController, column, filterCondition);\r\n updateFilterRowCondition(this._columnsController, column, filterCondition)\r\n } else {\r\n isDefined(column.filterValues) && updateHeaderFilterCondition(this._columnsController, column, null);\r\n isDefined(column.filterValue) && updateFilterRowCondition(this._columnsController, column, null)\r\n }\r\n });\r\n this._skipSyncColumnOptions = false\r\n }\r\n _initSync() {\r\n var columns = this._columnsController.getColumns();\r\n var pageIndex = this._dataController.pageIndex();\r\n checkForErrors(columns);\r\n if (!this.option(\"filterValue\")) {\r\n var filteringColumns = this._columnsController.getFilteringColumns();\r\n var filterValue = this.getFilterValueFromColumns(filteringColumns);\r\n this._silentOption(\"filterValue\", filterValue)\r\n }\r\n this.syncFilterValue();\r\n this._dataController.pageIndex(pageIndex)\r\n }\r\n _getSyncFilterRow(filterValue, column) {\r\n var filter = getConditionFromFilterRow(column);\r\n if (isDefined(filter)) {\r\n return syncFilters(filterValue, filter)\r\n }\r\n return removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(column))\r\n }\r\n _getSyncHeaderFilter(filterValue, column) {\r\n var filter = getConditionFromHeaderFilter(column);\r\n if (filter) {\r\n return syncFilters(filterValue, filter)\r\n }\r\n return removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(column))\r\n }\r\n getFilterValueFromColumns(columns) {\r\n if (!this._dataController.isFilterSyncActive()) {\r\n return null\r\n }\r\n var filterValue = [\"and\"];\r\n columns && columns.forEach(column => {\r\n var headerFilter = getConditionFromHeaderFilter(column);\r\n var filterRow = getConditionFromFilterRow(column);\r\n headerFilter && addItem(headerFilter, filterValue);\r\n filterRow && addItem(filterRow, filterValue)\r\n });\r\n return getNormalizedFilter(filterValue)\r\n }\r\n syncFilterRow(column, filterValue) {\r\n this.option(\"filterValue\", this._getSyncFilterRow(this.option(\"filterValue\"), column))\r\n }\r\n syncHeaderFilter(column) {\r\n this.option(\"filterValue\", this._getSyncHeaderFilter(this.option(\"filterValue\"), column))\r\n }\r\n getCustomFilterOperations() {\r\n var _a;\r\n var filterBuilderCustomOperations = null !== (_a = this.option(\"filterBuilder.customOperations\")) && void 0 !== _a ? _a : [];\r\n return [anyOf(this.component), noneOf(this.component)].concat(filterBuilderCustomOperations)\r\n }\r\n}\r\nvar data = Base => class extends Base {\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._applyFilter();\r\n this.isFilterSyncActive() && this._filterSyncController.syncFilterValue();\r\n args.handled = true;\r\n break;\r\n case \"filterSyncEnabled\":\r\n args.handled = true;\r\n break;\r\n case \"columns\":\r\n if (this.isFilterSyncActive()) {\r\n var column = this._columnsController.getColumnByPath(args.fullName);\r\n if (column && !this._filterSyncController._skipSyncColumnOptions) {\r\n var propertyName = this._parseColumnPropertyName(args.fullName);\r\n this._filterSyncController._skipSyncColumnOptions = true;\r\n if (\"filterType\" === propertyName) {\r\n if (FILTER_TYPES_EXCLUDE === args.value || FILTER_TYPES_EXCLUDE === args.previousValue) {\r\n this._filterSyncController.syncHeaderFilter(column)\r\n }\r\n } else if (\"filterValues\" === propertyName) {\r\n this._filterSyncController.syncHeaderFilter(column)\r\n } else if ([\"filterValue\", \"selectedFilterOperation\"].includes(propertyName)) {\r\n this._filterSyncController.syncFilterRow(column, column.filterValue)\r\n }\r\n this._filterSyncController._skipSyncColumnOptions = false\r\n }\r\n }\r\n super.optionChanged(args);\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n isFilterSyncActive() {\r\n var filterSyncEnabledValue = this.option(\"filterSyncEnabled\");\r\n return \"auto\" === filterSyncEnabledValue ? this.option(\"filterPanel.visible\") : filterSyncEnabledValue\r\n }\r\n skipCalculateColumnFilters() {\r\n return (isDefined(this.option(\"filterValue\")) || this._filterSyncController._skipSyncColumnOptions) && this.isFilterSyncActive()\r\n }\r\n _calculateAdditionalFilter() {\r\n if (false === this.option(\"filterPanel.filterEnabled\")) {\r\n return super._calculateAdditionalFilter()\r\n }\r\n var filters = [super._calculateAdditionalFilter()];\r\n var columns = this._columnsController.getFilteringColumns();\r\n var filterValue = this.option(\"filterValue\");\r\n if (this.isFilterSyncActive()) {\r\n var currentColumnForHeaderFilter = this._headerFilterController.getCurrentColumn();\r\n var currentColumnForFilterRow = this._applyFilterController.getCurrentColumnForFiltering();\r\n var currentColumn = currentColumnForHeaderFilter || currentColumnForFilterRow;\r\n var needRemoveCurrentColumnFilter = currentColumnForHeaderFilter || isDefined(null === currentColumnForFilterRow || void 0 === currentColumnForFilterRow ? void 0 : currentColumnForFilterRow.filterValue);\r\n if (needRemoveCurrentColumnFilter && filterValue) {\r\n filterValue = removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(currentColumn))\r\n }\r\n }\r\n var customOperations = this._filterSyncController.getCustomFilterOperations();\r\n var calculatedFilterValue = getFilterExpression(filterValue, columns, customOperations, \"filterBuilder\");\r\n if (calculatedFilterValue) {\r\n filters.push(calculatedFilterValue)\r\n }\r\n return gridCoreUtils.combineFilters(filters)\r\n }\r\n _parseColumnPropertyName(fullName) {\r\n var matched = fullName.match(/.*\\.(.*)/);\r\n if (matched) {\r\n return matched[1]\r\n }\r\n return null\r\n }\r\n clearFilter(filterName) {\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n if (\"filterValue\" === filterName) {\r\n this.option(\"filterValue\", null)\r\n }\r\n super.clearFilter(filterName)\r\n } else {\r\n this.option(\"filterValue\", null);\r\n super.clearFilter()\r\n }\r\n this.component.endUpdate()\r\n }\r\n _applyFilter() {\r\n if (this._filterSyncController._skipSyncColumnOptions) {\r\n return (new Deferred).resolve()\r\n }\r\n return super._applyFilter.apply(this, arguments)\r\n }\r\n};\r\nvar columnHeadersView = Base => class extends Base {\r\n optionChanged(args) {\r\n if (\"filterValue\" === args.name) {\r\n this._updateHeaderFilterIndicators()\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n _isHeaderFilterEmpty(column) {\r\n if (this._dataController.isFilterSyncActive()) {\r\n return !filterHasField(this.option(\"filterValue\"), getColumnIdentifier(column))\r\n }\r\n return super._isHeaderFilterEmpty(column)\r\n }\r\n _needUpdateFilterIndicators() {\r\n return !this._dataController.isFilterSyncActive()\r\n }\r\n};\r\nexport var filterSyncModule = {\r\n defaultOptions: () => ({\r\n filterValue: null,\r\n filterSyncEnabled: \"auto\"\r\n }),\r\n controllers: {\r\n filterSync: FilterSyncController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: data\r\n },\r\n views: {\r\n columnHeadersView: columnHeadersView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/filter_sync.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterSyncModule\r\n} from \"../../../grids/grid_core/filter/m_filter_sync\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterSync\", filterSyncModule);\r\n","/**\r\n * DevExtreme (esm/__internal/filter_builder/m_filter_builder.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Popup from \"../../ui/popup/ui.popup\";\r\nimport EditorFactoryMixin from \"../../ui/shared/ui.editor_factory_mixin\";\r\nimport TreeView from \"../../ui/tree_view\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../ui/overlay/m_utils\";\r\nimport {\r\n addItem,\r\n convertToInnerStructure,\r\n createCondition,\r\n createEmptyGroup,\r\n getAvailableOperations,\r\n getCaptionWithParents,\r\n getCurrentLookupValueText,\r\n getCurrentValueText,\r\n getCustomOperation,\r\n getDefaultOperation,\r\n getField,\r\n getFilterExpression,\r\n getGroupCriteria,\r\n getGroupMenuItem,\r\n getGroupValue,\r\n getItems,\r\n getMergedOperations,\r\n getNormalizedFields,\r\n getNormalizedFilter,\r\n getOperationFromAvailable,\r\n getOperationValue,\r\n isCondition,\r\n isGroup,\r\n removeItem,\r\n renderValueText,\r\n setGroupValue,\r\n updateConditionByOperation\r\n} from \"./m_utils\";\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_GROUP_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-group\");\r\nvar FILTER_BUILDER_GROUP_ITEM_CLASS = \"\".concat(FILTER_BUILDER_GROUP_CLASS, \"-item\");\r\nvar FILTER_BUILDER_GROUP_CONTENT_CLASS = \"\".concat(FILTER_BUILDER_GROUP_CLASS, \"-content\");\r\nvar FILTER_BUILDER_GROUP_OPERATIONS_CLASS = \"\".concat(FILTER_BUILDER_GROUP_CLASS, \"-operations\");\r\nvar FILTER_BUILDER_GROUP_OPERATION_CLASS = \"\".concat(FILTER_BUILDER_GROUP_CLASS, \"-operation\");\r\nvar FILTER_BUILDER_ACTION_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-action\");\r\nvar FILTER_BUILDER_IMAGE_CLASS = \"\".concat(FILTER_BUILDER_ACTION_CLASS, \"-icon\");\r\nvar FILTER_BUILDER_IMAGE_ADD_CLASS = \"dx-icon-plus\";\r\nvar FILTER_BUILDER_IMAGE_REMOVE_CLASS = \"dx-icon-remove\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-text\");\r\nvar FILTER_BUILDER_ITEM_FIELD_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-item-field\");\r\nvar FILTER_BUILDER_ITEM_OPERATION_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-item-operation\");\r\nvar FILTER_BUILDER_ITEM_VALUE_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-item-value\");\r\nvar FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-item-value-text\");\r\nvar FILTER_BUILDER_OVERLAY_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-overlay\");\r\nvar FILTER_BUILDER_FILTER_OPERATIONS_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-operations\");\r\nvar FILTER_BUILDER_FIELDS_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-fields\");\r\nvar FILTER_BUILDER_ADD_CONDITION_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-add-condition\");\r\nvar ACTIVE_CLASS = \"dx-state-active\";\r\nvar FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-menu-custom-operation\");\r\nvar SOURCE = \"filterBuilder\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar TAB_KEY = \"tab\";\r\nvar ENTER_KEY = \"enter\";\r\nvar ESCAPE_KEY = \"escape\";\r\nvar ACTIONS = [{\r\n name: \"onEditorPreparing\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onEditorPrepared\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onValueChanged\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n}];\r\nvar OPERATORS = {\r\n and: \"and\",\r\n or: \"or\",\r\n notAnd: \"!and\",\r\n notOr: \"!or\"\r\n};\r\nvar EditorFactory = EditorFactoryMixin(class {});\r\nclass FilterBuilder extends Widget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n onEditorPreparing: null,\r\n onEditorPrepared: null,\r\n onValueChanged: null,\r\n fields: [],\r\n groupOperations: [\"and\", \"or\", \"notAnd\", \"notOr\"],\r\n maxGroupLevel: void 0,\r\n value: null,\r\n allowHierarchicalFields: false,\r\n groupOperationDescriptions: {\r\n and: messageLocalization.format(\"dxFilterBuilder-and\"),\r\n or: messageLocalization.format(\"dxFilterBuilder-or\"),\r\n notAnd: messageLocalization.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: messageLocalization.format(\"dxFilterBuilder-notOr\")\r\n },\r\n customOperations: [],\r\n closePopupOnTargetScroll: true,\r\n filterOperationDescriptions: {\r\n between: messageLocalization.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: messageLocalization.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: messageLocalization.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n })\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"closePopupOnTargetScroll\":\r\n break;\r\n case \"onEditorPreparing\":\r\n case \"onEditorPrepared\":\r\n case \"onValueChanged\":\r\n this._initActions();\r\n break;\r\n case \"customOperations\":\r\n this._initCustomOperations();\r\n this._invalidate();\r\n break;\r\n case \"fields\":\r\n case \"maxGroupLevel\":\r\n case \"groupOperations\":\r\n case \"allowHierarchicalFields\":\r\n case \"groupOperationDescriptions\":\r\n case \"filterOperationDescriptions\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n if (args.value !== args.previousValue) {\r\n var disableInvalidateForValue = this._disableInvalidateForValue;\r\n if (!disableInvalidateForValue) {\r\n this._initModel();\r\n this._invalidate()\r\n }\r\n this._disableInvalidateForValue = false;\r\n this.executeAction(\"onValueChanged\", {\r\n value: args.value,\r\n previousValue: args.previousValue\r\n });\r\n this._disableInvalidateForValue = disableInvalidateForValue\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n getFilterExpression() {\r\n var fields = this._getNormalizedFields();\r\n var value = extend(true, [], this._model);\r\n return getFilterExpression(getNormalizedFilter(value), fields, this._customOperations, SOURCE)\r\n }\r\n _getNormalizedFields() {\r\n return getNormalizedFields(this.option(\"fields\"))\r\n }\r\n _updateFilter() {\r\n this._disableInvalidateForValue = true;\r\n var value = extend(true, [], this._model);\r\n var normalizedValue = getNormalizedFilter(value);\r\n var oldValue = getNormalizedFilter(this._getModel(this.option(\"value\")));\r\n if (JSON.stringify(oldValue) !== JSON.stringify(normalizedValue)) {\r\n this.option(\"value\", normalizedValue)\r\n }\r\n this._disableInvalidateForValue = false;\r\n this._fireContentReadyAction()\r\n }\r\n _init() {\r\n this._initCustomOperations();\r\n this._initModel();\r\n this._initEditorFactory();\r\n this._initActions();\r\n super._init()\r\n }\r\n _initEditorFactory() {\r\n this._editorFactory = new EditorFactory\r\n }\r\n _initCustomOperations() {\r\n this._customOperations = getMergedOperations(this.option(\"customOperations\"), this.option(\"filterOperationDescriptions.between\"), this)\r\n }\r\n _getDefaultGroupOperation() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this.option(\"groupOperations\")) || void 0 === _a ? void 0 : _a[0]) && void 0 !== _b ? _b : OPERATORS.and\r\n }\r\n _getModel(value) {\r\n return convertToInnerStructure(value, this._customOperations, this._getDefaultGroupOperation())\r\n }\r\n _initModel() {\r\n this._model = this._getModel(this.option(\"value\"))\r\n }\r\n _initActions() {\r\n var that = this;\r\n that._actions = {};\r\n ACTIONS.forEach(action => {\r\n var actionConfig = extend({}, action.config);\r\n that._actions[action.name] = that._createActionByOption(action.name, actionConfig)\r\n })\r\n }\r\n executeAction(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(FILTER_BUILDER_CLASS);\r\n super._initMarkup();\r\n this._createGroupElementByCriteria(this._model).appendTo(this.$element())\r\n }\r\n _createConditionElement(condition, parent) {\r\n return $(\"<div>\").addClass(FILTER_BUILDER_GROUP_CLASS).append(this._createConditionItem(condition, parent))\r\n }\r\n _createGroupElementByCriteria(criteria, parent) {\r\n var groupLevel = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var $group = this._createGroupElement(criteria, parent, groupLevel);\r\n var $groupContent = $group.find(\".\".concat(FILTER_BUILDER_GROUP_CONTENT_CLASS));\r\n var groupCriteria = getGroupCriteria(criteria);\r\n for (var i = 0; i < groupCriteria.length; i++) {\r\n var innerCriteria = groupCriteria[i];\r\n if (isGroup(innerCriteria)) {\r\n this._createGroupElementByCriteria(innerCriteria, criteria, groupLevel + 1).appendTo($groupContent)\r\n } else if (isCondition(innerCriteria)) {\r\n this._createConditionElement(innerCriteria, criteria).appendTo($groupContent)\r\n }\r\n }\r\n return $group\r\n }\r\n _createGroupElement(criteria, parent, groupLevel) {\r\n var $groupItem = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var $groupContent = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var $group = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_CLASS).append($groupItem).append($groupContent);\r\n if (null != parent) {\r\n this._createRemoveButton(() => {\r\n removeItem(parent, criteria);\r\n $group.remove();\r\n this._updateFilter()\r\n }).appendTo($groupItem)\r\n }\r\n this._createGroupOperationButton(criteria).appendTo($groupItem);\r\n this._createAddButton(() => {\r\n var newGroup = createEmptyGroup(this._getDefaultGroupOperation());\r\n addItem(newGroup, criteria);\r\n this._createGroupElement(newGroup, criteria, groupLevel + 1).appendTo($groupContent);\r\n this._updateFilter()\r\n }, () => {\r\n var field = this.option(\"fields\")[0];\r\n var newCondition = createCondition(field, this._customOperations);\r\n addItem(newCondition, criteria);\r\n this._createConditionElement(newCondition, criteria).appendTo($groupContent);\r\n this._updateFilter()\r\n }, groupLevel).appendTo($groupItem);\r\n return $group\r\n }\r\n _createButton(caption) {\r\n return $(\"<div>\").text(caption)\r\n }\r\n _createGroupOperationButton(criteria) {\r\n var groupOperations = this._getGroupOperations(criteria);\r\n var groupMenuItem = getGroupMenuItem(criteria, groupOperations);\r\n var caption = groupMenuItem.text;\r\n var $operationButton = groupOperations && groupOperations.length < 2 ? this._createButton(caption).addClass(DISABLED_STATE_CLASS) : this._createButtonWithMenu({\r\n caption: caption,\r\n menu: {\r\n items: groupOperations,\r\n displayExpr: \"text\",\r\n keyExpr: \"value\",\r\n onItemClick: e => {\r\n if (groupMenuItem !== e.itemData) {\r\n setGroupValue(criteria, e.itemData.value);\r\n $operationButton.text(e.itemData.text);\r\n groupMenuItem = e.itemData;\r\n this._updateFilter()\r\n }\r\n },\r\n onContentReady(e) {\r\n e.component.selectItem(groupMenuItem)\r\n },\r\n cssClass: FILTER_BUILDER_GROUP_OPERATIONS_CLASS\r\n }\r\n });\r\n return $operationButton.addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_GROUP_OPERATION_CLASS).attr(\"tabindex\", 0)\r\n }\r\n _createButtonWithMenu(options) {\r\n var that = this;\r\n var removeMenu = function() {\r\n that.$element().find(\".\".concat(ACTIVE_CLASS)).removeClass(ACTIVE_CLASS);\r\n that.$element().find(\".dx-overlay .dx-treeview\").remove();\r\n that.$element().find(\".dx-overlay\").remove()\r\n };\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var position = rtlEnabled ? \"right\" : \"left\";\r\n var $button = this._createButton(options.caption);\r\n extend(options.menu, {\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n onItemClick: (handler = options.menu.onItemClick, function(e) {\r\n handler(e);\r\n if (\"dxclick\" === e.event.type) {\r\n removeMenu()\r\n }\r\n }),\r\n onHiding() {\r\n $button.removeClass(ACTIVE_CLASS)\r\n },\r\n position: {\r\n my: \"\".concat(position, \" top\"),\r\n at: \"\".concat(position, \" bottom\"),\r\n offset: \"0 1\",\r\n of: $button,\r\n collision: \"flip\"\r\n },\r\n animation: null,\r\n onHidden() {\r\n removeMenu()\r\n },\r\n cssClass: \"\".concat(FILTER_BUILDER_OVERLAY_CLASS, \" \").concat(options.menu.cssClass),\r\n rtlEnabled: rtlEnabled\r\n });\r\n var handler;\r\n options.popup = {\r\n onShown(info) {\r\n var treeViewElement = $(info.component.content()).find(\".dx-treeview\");\r\n var treeView = treeViewElement.dxTreeView(\"instance\");\r\n eventsEngine.on(treeViewElement, \"keyup keydown\", e => {\r\n var keyName = normalizeKeyName(e);\r\n if (\"keydown\" === e.type && keyName === TAB_KEY || \"keyup\" === e.type && (keyName === ESCAPE_KEY || keyName === ENTER_KEY)) {\r\n info.component.hide();\r\n eventsEngine.trigger(options.menu.position.of, \"focus\")\r\n }\r\n });\r\n treeView.focus();\r\n treeView.option(\"focusedElement\", null)\r\n }\r\n };\r\n this._subscribeOnClickAndEnterKey($button, () => {\r\n removeMenu();\r\n that._createPopupWithTreeView(options, that.$element());\r\n $button.addClass(ACTIVE_CLASS)\r\n });\r\n return $button\r\n }\r\n _hasValueButton(condition) {\r\n var customOperation = getCustomOperation(this._customOperations, condition[1]);\r\n return customOperation ? false !== customOperation.hasValue : null !== condition[2]\r\n }\r\n _createOperationButtonWithMenu(condition, field) {\r\n var that = this;\r\n var availableOperations = getAvailableOperations(field, this.option(\"filterOperationDescriptions\"), this._customOperations);\r\n var currentOperation = getOperationFromAvailable(getOperationValue(condition), availableOperations);\r\n var $operationButton = this._createButtonWithMenu({\r\n caption: currentOperation.text,\r\n menu: {\r\n items: availableOperations,\r\n displayExpr: \"text\",\r\n onItemRendered(e) {\r\n e.itemData.isCustom && $(e.itemElement).addClass(FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS)\r\n },\r\n onContentReady(e) {\r\n e.component.selectItem(currentOperation)\r\n },\r\n onItemClick: e => {\r\n if (currentOperation !== e.itemData) {\r\n currentOperation = e.itemData;\r\n updateConditionByOperation(condition, currentOperation.value, that._customOperations);\r\n var $valueButton = $operationButton.siblings().filter(\".\".concat(FILTER_BUILDER_ITEM_VALUE_CLASS));\r\n if (that._hasValueButton(condition)) {\r\n if (0 !== $valueButton.length) {\r\n $valueButton.remove()\r\n }\r\n that._createValueButton(condition, field).appendTo($operationButton.parent())\r\n } else {\r\n $valueButton.remove()\r\n }\r\n $operationButton.text(currentOperation.text);\r\n this._updateFilter()\r\n }\r\n },\r\n cssClass: FILTER_BUILDER_FILTER_OPERATIONS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_OPERATION_CLASS).attr(\"tabindex\", 0);\r\n return $operationButton\r\n }\r\n _createOperationAndValueButtons(condition, field, $item) {\r\n this._createOperationButtonWithMenu(condition, field).appendTo($item);\r\n if (this._hasValueButton(condition)) {\r\n this._createValueButton(condition, field).appendTo($item)\r\n }\r\n }\r\n _createFieldButtonWithMenu(fields, condition, field) {\r\n var that = this;\r\n var allowHierarchicalFields = this.option(\"allowHierarchicalFields\");\r\n var items = getItems(fields, allowHierarchicalFields);\r\n var item = getField(field.name || field.dataField, items);\r\n var getFullCaption = function(item, items) {\r\n return allowHierarchicalFields ? getCaptionWithParents(item, items) : item.caption\r\n };\r\n var $fieldButton = this._createButtonWithMenu({\r\n caption: getFullCaption(item, items),\r\n menu: {\r\n items: items,\r\n dataStructure: \"plain\",\r\n keyExpr: \"id\",\r\n parentId: \"parentId\",\r\n displayExpr: \"caption\",\r\n onItemClick: e => {\r\n if (item !== e.itemData) {\r\n item = e.itemData;\r\n condition[0] = item.name || item.dataField;\r\n condition[2] = \"object\" === item.dataType ? null : \"\";\r\n updateConditionByOperation(condition, getDefaultOperation(item), that._customOperations);\r\n $fieldButton.siblings().filter(\".\".concat(FILTER_BUILDER_ITEM_TEXT_CLASS)).remove();\r\n that._createOperationAndValueButtons(condition, item, $fieldButton.parent());\r\n var caption = getFullCaption(item, e.component.option(\"items\"));\r\n $fieldButton.text(caption);\r\n this._updateFilter()\r\n }\r\n },\r\n onContentReady(e) {\r\n e.component.selectItem(item)\r\n },\r\n cssClass: FILTER_BUILDER_FIELDS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_FIELD_CLASS).attr(\"tabindex\", 0);\r\n return $fieldButton\r\n }\r\n _createConditionItem(condition, parent) {\r\n var $item = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var fields = this._getNormalizedFields();\r\n var field = getField(condition[0], fields);\r\n this._createRemoveButton(() => {\r\n removeItem(parent, condition);\r\n var isSingleChild = 1 === $item.parent().children().length;\r\n if (isSingleChild) {\r\n $item.parent().remove()\r\n } else {\r\n $item.remove()\r\n }\r\n this._updateFilter()\r\n }).appendTo($item);\r\n this._createFieldButtonWithMenu(fields, condition, field).appendTo($item);\r\n this._createOperationAndValueButtons(condition, field, $item);\r\n return $item\r\n }\r\n _getGroupOperations(criteria) {\r\n var groupOperations = this.option(\"groupOperations\");\r\n var groupOperationDescriptions = this.option(\"groupOperationDescriptions\");\r\n if (!groupOperations || !groupOperations.length) {\r\n groupOperations = [getGroupValue(criteria).replace(\"!\", \"not\")]\r\n }\r\n return groupOperations.map(operation => ({\r\n text: groupOperationDescriptions[operation],\r\n value: OPERATORS[operation]\r\n }))\r\n }\r\n _createRemoveButton(handler) {\r\n var $removeButton = $(\"<div>\").addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_REMOVE_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0);\r\n this._subscribeOnClickAndEnterKey($removeButton, handler);\r\n return $removeButton\r\n }\r\n _createAddButton(addGroupHandler, addConditionHandler, groupLevel) {\r\n var $button;\r\n var maxGroupLevel = this.option(\"maxGroupLevel\");\r\n if (isDefined(maxGroupLevel) && groupLevel >= maxGroupLevel) {\r\n $button = this._createButton();\r\n this._subscribeOnClickAndEnterKey($button, addConditionHandler)\r\n } else {\r\n $button = this._createButtonWithMenu({\r\n menu: {\r\n items: [{\r\n caption: messageLocalization.format(\"dxFilterBuilder-addCondition\"),\r\n click: addConditionHandler\r\n }, {\r\n caption: messageLocalization.format(\"dxFilterBuilder-addGroup\"),\r\n click: addGroupHandler\r\n }],\r\n displayExpr: \"caption\",\r\n onItemClick(e) {\r\n e.itemData.click()\r\n },\r\n cssClass: FILTER_BUILDER_ADD_CONDITION_CLASS\r\n }\r\n })\r\n }\r\n return $button.addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_ADD_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0)\r\n }\r\n _createValueText(item, field, $container) {\r\n var that = this;\r\n var $text = $(\"<div>\").html(\" \").addClass(FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS).attr(\"tabindex\", 0).appendTo($container);\r\n var value = item[2];\r\n var customOperation = getCustomOperation(that._customOperations, item[1]);\r\n if (!customOperation && field.lookup) {\r\n getCurrentLookupValueText(field, value, result => {\r\n renderValueText($text, result)\r\n })\r\n } else {\r\n when(getCurrentValueText(field, value, customOperation)).done(result => {\r\n renderValueText($text, result, customOperation)\r\n })\r\n }\r\n that._subscribeOnClickAndEnterKey($text, e => {\r\n if (\"keyup\" === e.type) {\r\n e.stopPropagation()\r\n }\r\n that._createValueEditorWithEvents(item, field, $container)\r\n });\r\n return $text\r\n }\r\n _updateConditionValue(item, value, callback) {\r\n var areValuesDifferent = item[2] !== value;\r\n if (areValuesDifferent) {\r\n item[2] = value\r\n }\r\n callback();\r\n this._updateFilter()\r\n }\r\n _addDocumentKeyUp($editor, handler) {\r\n var isComposing = false;\r\n var hasCompositionJustEnded = false;\r\n var document = domAdapter.getDocument();\r\n var documentKeyUpHandler = e => {\r\n if (isComposing || hasCompositionJustEnded) {\r\n hasCompositionJustEnded = false;\r\n return\r\n }\r\n handler(e)\r\n };\r\n eventsEngine.on(document, \"keyup\", documentKeyUpHandler);\r\n var input = $editor.find(\"input\");\r\n eventsEngine.on(input, \"compositionstart\", () => {\r\n isComposing = true\r\n });\r\n eventsEngine.on(input, \"compositionend\", () => {\r\n isComposing = false;\r\n hasCompositionJustEnded = true\r\n });\r\n eventsEngine.on(input, \"keydown\", event => {\r\n if (229 !== event.which) {\r\n hasCompositionJustEnded = false\r\n }\r\n });\r\n this._documentKeyUpHandler = documentKeyUpHandler\r\n }\r\n _addDocumentClick($editor, closeEditorFunc) {\r\n var document = domAdapter.getDocument();\r\n var documentClickHandler = e => {\r\n if (!this._isFocusOnEditorParts($editor, e.target)) {\r\n eventsEngine.trigger($editor.find(\"input\"), \"change\");\r\n closeEditorFunc()\r\n }\r\n };\r\n eventsEngine.on(document, \"dxpointerdown\", documentClickHandler);\r\n this._documentClickHandler = documentClickHandler\r\n }\r\n _isFocusOnEditorParts($editor, target) {\r\n var activeElement = target || domAdapter.getActiveElement();\r\n return $(activeElement).closest($editor.children()).length || $(activeElement).closest(\".dx-dropdowneditor-overlay\").length\r\n }\r\n _removeEvents() {\r\n var document = domAdapter.getDocument();\r\n isDefined(this._documentKeyUpHandler) && eventsEngine.off(document, \"keyup\", this._documentKeyUpHandler);\r\n isDefined(this._documentClickHandler) && eventsEngine.off(document, \"dxpointerdown\", this._documentClickHandler)\r\n }\r\n _dispose() {\r\n this._removeEvents();\r\n super._dispose()\r\n }\r\n _createValueEditorWithEvents(item, field, $container) {\r\n var value = item[2];\r\n var createValueText = () => {\r\n $container.empty();\r\n this._removeEvents();\r\n return this._createValueText(item, field, $container)\r\n };\r\n var closeEditor = () => {\r\n this._updateConditionValue(item, value, () => {\r\n createValueText()\r\n })\r\n };\r\n var options = {\r\n value: \"\" === value ? null : value,\r\n filterOperation: getOperationValue(item),\r\n setValue(data) {\r\n value = null === data ? \"\" : data\r\n },\r\n closeEditor: closeEditor,\r\n text: $container.text()\r\n };\r\n $container.empty();\r\n var $editor = this._createValueEditor($container, field, options);\r\n eventsEngine.trigger($editor.find(\"input\").not(\":hidden\").eq(0), \"focus\");\r\n this._removeEvents();\r\n this._addDocumentClick($editor, closeEditor);\r\n this._addDocumentKeyUp($editor, e => {\r\n var keyName = normalizeKeyName(e);\r\n if (keyName === TAB_KEY) {\r\n if (this._isFocusOnEditorParts($editor)) {\r\n return\r\n }\r\n this._updateConditionValue(item, value, () => {\r\n createValueText();\r\n if (e.shiftKey) {\r\n eventsEngine.trigger($container.prev(), \"focus\")\r\n }\r\n })\r\n }\r\n if (keyName === ESCAPE_KEY) {\r\n eventsEngine.trigger(createValueText(), \"focus\")\r\n }\r\n if (keyName === ENTER_KEY) {\r\n this._updateConditionValue(item, value, () => {\r\n eventsEngine.trigger(createValueText(), \"focus\")\r\n })\r\n }\r\n });\r\n this._fireContentReadyAction()\r\n }\r\n _createValueButton(item, field) {\r\n var $valueButton = $(\"<div>\").addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n this._createValueText(item, field, $valueButton);\r\n return $valueButton\r\n }\r\n _createValueEditor($container, field, options) {\r\n var $editor = $(\"<div>\").attr(\"tabindex\", 0).appendTo($container);\r\n var customOperation = getCustomOperation(this._customOperations, options.filterOperation);\r\n var editorTemplate = customOperation && customOperation.editorTemplate ? customOperation.editorTemplate : field.editorTemplate;\r\n if (editorTemplate) {\r\n var template = this._getTemplate(editorTemplate);\r\n template.render({\r\n model: extend({\r\n field: field\r\n }, options),\r\n container: $editor\r\n })\r\n } else {\r\n this._editorFactory.createEditor.call(this, $editor, extend({}, field, options, {\r\n parentType: SOURCE\r\n }))\r\n }\r\n return $editor\r\n }\r\n _createPopupWithTreeView(options, $container) {\r\n var that = this;\r\n var $popup = $(\"<div>\").addClass(options.menu.cssClass).appendTo($container);\r\n this._createComponent($popup, Popup, {\r\n onHiding: options.menu.onHiding,\r\n onHidden: options.menu.onHidden,\r\n rtlEnabled: options.menu.rtlEnabled,\r\n position: options.menu.position,\r\n animation: options.menu.animation,\r\n contentTemplate(contentElement) {\r\n var $menuContainer = $(\"<div>\").appendTo(contentElement);\r\n that._createComponent($menuContainer, TreeView, options.menu);\r\n this.repaint()\r\n },\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => getElementMaxHeightByWindow(options.menu.position.of),\r\n visible: true,\r\n focusStateEnabled: false,\r\n preventScrollEvents: false,\r\n hideOnParentScroll: this.option(\"closePopupOnTargetScroll\"),\r\n hideOnOutsideClick: true,\r\n onShown: options.popup.onShown,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n showTitle: false,\r\n _wrapperClassExternal: options.menu.cssClass\r\n })\r\n }\r\n _subscribeOnClickAndEnterKey($button, handler) {\r\n eventsEngine.on($button, \"dxclick\", handler);\r\n eventsEngine.on($button, \"keyup\", e => {\r\n if (normalizeKeyName(e) === ENTER_KEY) {\r\n handler(e)\r\n }\r\n })\r\n }\r\n}\r\nregisterComponent(\"dxFilterBuilder\", FilterBuilder);\r\nexport default FilterBuilder;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_builder.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport FilterBuilder from \"../../../../ui/filter_builder\";\r\nimport Popup from \"../../../../ui/popup/ui.popup\";\r\nimport ScrollView from \"../../../../ui/scroll_view\";\r\nimport {\r\n restoreFocus\r\n} from \"../../../../ui/shared/accessibility\";\r\nimport modules from \"../m_modules\";\r\nexport class FilterBuilderView extends modules.View {\r\n init() {\r\n super.init();\r\n this._columnsController = this.getController(\"columns\");\r\n this._filterSyncController = this.getController(\"filterSync\")\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterBuilder\":\r\n case \"filterBuilderPopup\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _renderCore() {\r\n this._updatePopupOptions()\r\n }\r\n _updatePopupOptions() {\r\n if (this.option(\"filterBuilderPopup.visible\")) {\r\n this._initPopup()\r\n } else if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.hide()\r\n }\r\n }\r\n _disposePopup() {\r\n if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.dispose();\r\n this._filterBuilderPopup = void 0\r\n }\r\n if (this._filterBuilder) {\r\n this._filterBuilder.dispose();\r\n this._filterBuilder = void 0\r\n }\r\n }\r\n _initPopup() {\r\n var that = this;\r\n that._disposePopup();\r\n that._filterBuilderPopup = that._createComponent(that.element(), Popup, extend({\r\n title: messageLocalization.format(\"dxDataGrid-filterBuilderPopupTitle\"),\r\n contentTemplate: $contentElement => that._getPopupContentTemplate($contentElement),\r\n onOptionChanged(args) {\r\n if (\"visible\" === args.name) {\r\n that.option(\"filterBuilderPopup.visible\", args.value)\r\n }\r\n },\r\n toolbarItems: that._getPopupToolbarItems()\r\n }, that.option(\"filterBuilderPopup\"), {\r\n onHidden() {\r\n restoreFocus(that);\r\n that._disposePopup()\r\n }\r\n }))\r\n }\r\n _getPopupContentTemplate(contentElement) {\r\n var $contentElement = $(contentElement);\r\n var $filterBuilderContainer = $(\"<div>\").appendTo($(contentElement));\r\n this._filterBuilder = this._createComponent($filterBuilderContainer, FilterBuilder, extend({\r\n value: this.option(\"filterValue\"),\r\n fields: this._columnsController.getFilteringColumns()\r\n }, this.option(\"filterBuilder\"), {\r\n customOperations: this._filterSyncController.getCustomFilterOperations()\r\n }));\r\n this._createComponent($contentElement, ScrollView, {\r\n direction: \"both\"\r\n })\r\n }\r\n _getPopupToolbarItems() {\r\n var that = this;\r\n return [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: messageLocalization.format(\"OK\"),\r\n onClick() {\r\n var filter = that._filterBuilder.option(\"value\");\r\n that.option(\"filterValue\", filter);\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: messageLocalization.format(\"Cancel\"),\r\n onClick() {\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }]\r\n }\r\n}\r\nexport var filterBuilderModule = {\r\n defaultOptions: () => ({\r\n filterBuilder: {\r\n groupOperationDescriptions: {\r\n and: messageLocalization.format(\"dxFilterBuilder-and\"),\r\n or: messageLocalization.format(\"dxFilterBuilder-or\"),\r\n notAnd: messageLocalization.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: messageLocalization.format(\"dxFilterBuilder-notOr\")\r\n },\r\n filterOperationDescriptions: {\r\n between: messageLocalization.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: messageLocalization.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: messageLocalization.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n },\r\n filterBuilderPopup: {}\r\n }),\r\n views: {\r\n filterBuilderView: FilterBuilderView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/filter_builder.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterBuilderModule\r\n} from \"../../../grids/grid_core/filter/m_filter_builder\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterBuilder\", filterBuilderModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_panel.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n captionize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport CheckBox from \"../../../../ui/check_box\";\r\nimport {\r\n getCaptionByOperation,\r\n getCurrentLookupValueText,\r\n getCurrentValueText,\r\n getCustomOperation,\r\n getField,\r\n getGroupValue,\r\n isCondition,\r\n isGroup\r\n} from \"../../../filter_builder/m_utils\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../m_accessibility\";\r\nimport modules from \"../m_modules\";\r\nimport gridUtils from \"../m_utils\";\r\nvar FILTER_PANEL_CLASS = \"filter-panel\";\r\nvar FILTER_PANEL_TEXT_CLASS = \"\".concat(FILTER_PANEL_CLASS, \"-text\");\r\nvar FILTER_PANEL_CHECKBOX_CLASS = \"\".concat(FILTER_PANEL_CLASS, \"-checkbox\");\r\nvar FILTER_PANEL_CLEAR_FILTER_CLASS = \"\".concat(FILTER_PANEL_CLASS, \"-clear-filter\");\r\nvar FILTER_PANEL_LEFT_CONTAINER = \"\".concat(FILTER_PANEL_CLASS, \"-left\");\r\nvar FILTER_PANEL_TARGET = \"filterPanel\";\r\nexport class FilterPanelView extends modules.View {\r\n init() {\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._filterSyncController = this.getController(\"filterSync\");\r\n this._dataController.dataSourceChanged.add(() => this.render())\r\n }\r\n isVisible() {\r\n return this.option(\"filterPanel.visible\") && this._dataController.dataSource()\r\n }\r\n _renderCore() {\r\n var $element = this.element();\r\n $element.empty();\r\n var isColumnsDefined = !!this._columnsController.getColumns().length;\r\n if (!isColumnsDefined) {\r\n return\r\n }\r\n $element.addClass(this.addWidgetPrefix(FILTER_PANEL_CLASS));\r\n var $leftContainer = $(\"<div>\").addClass(this.addWidgetPrefix(FILTER_PANEL_LEFT_CONTAINER)).appendTo($element);\r\n this._renderFilterBuilderText($element, $leftContainer)\r\n }\r\n _renderFilterBuilderText($element, $leftContainer) {\r\n var $filterElement = this._getFilterElement();\r\n var $textElement = this._getTextElement();\r\n if (this.option(\"filterValue\") || this._filterValueBuffer) {\r\n var $checkElement = this._getCheckElement();\r\n var $removeButtonElement = this._getRemoveButtonElement();\r\n $leftContainer.append($checkElement).append($filterElement).append($textElement);\r\n $element.append($removeButtonElement);\r\n return\r\n }\r\n $leftContainer.append($filterElement).append($textElement)\r\n }\r\n _getCheckElement() {\r\n var that = this;\r\n var $element = $(\"<div>\").addClass(this.addWidgetPrefix(FILTER_PANEL_CHECKBOX_CLASS));\r\n that._createComponent($element, CheckBox, {\r\n value: that.option(\"filterPanel.filterEnabled\"),\r\n onValueChanged(e) {\r\n that.option(\"filterPanel.filterEnabled\", e.value)\r\n }\r\n });\r\n $element.attr(\"title\", this.option(\"filterPanel.texts.filterEnabledHint\"));\r\n return $element\r\n }\r\n _getFilterElement() {\r\n var that = this;\r\n var $element = $(\"<div>\").addClass(\"dx-icon-filter\");\r\n eventsEngine.on($element, \"click\", () => that._showFilterBuilder());\r\n registerKeyboardAction(\"filterPanel\", that, $element, void 0, () => that._showFilterBuilder());\r\n that._addTabIndexToElement($element);\r\n return $element\r\n }\r\n _getTextElement() {\r\n var that = this;\r\n var $textElement = $(\"<div>\").addClass(that.addWidgetPrefix(FILTER_PANEL_TEXT_CLASS));\r\n var filterText;\r\n var filterValue = that.option(\"filterValue\");\r\n if (filterValue) {\r\n when(that.getFilterText(filterValue, this._filterSyncController.getCustomFilterOperations())).done(filterText => {\r\n var customizeText = that.option(\"filterPanel.customizeText\");\r\n if (customizeText) {\r\n var customText = customizeText({\r\n component: that.component,\r\n filterValue: filterValue,\r\n text: filterText\r\n });\r\n if (\"string\" === typeof customText) {\r\n filterText = customText\r\n }\r\n }\r\n $textElement.text(filterText)\r\n })\r\n } else {\r\n filterText = that.option(\"filterPanel.texts.createFilter\");\r\n $textElement.text(filterText)\r\n }\r\n eventsEngine.on($textElement, \"click\", () => that._showFilterBuilder());\r\n registerKeyboardAction(\"filterPanel\", that, $textElement, void 0, () => that._showFilterBuilder());\r\n that._addTabIndexToElement($textElement);\r\n return $textElement\r\n }\r\n _showFilterBuilder() {\r\n this.option(\"filterBuilderPopup.visible\", true)\r\n }\r\n _getRemoveButtonElement() {\r\n var that = this;\r\n var clearFilterValue = () => that.option(\"filterValue\", null);\r\n var $element = $(\"<div>\").addClass(that.addWidgetPrefix(FILTER_PANEL_CLEAR_FILTER_CLASS)).text(that.option(\"filterPanel.texts.clearFilter\"));\r\n eventsEngine.on($element, \"click\", clearFilterValue);\r\n registerKeyboardAction(\"filterPanel\", this, $element, void 0, clearFilterValue);\r\n that._addTabIndexToElement($element);\r\n return $element\r\n }\r\n _addTabIndexToElement($element) {\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n var tabindex = this.option(\"tabindex\") || 0;\r\n $element.attr(\"tabindex\", tabindex)\r\n }\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._invalidate();\r\n this.option(\"filterPanel.filterEnabled\", true);\r\n args.handled = true;\r\n break;\r\n case \"filterPanel\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _getConditionText(fieldText, operationText, valueText) {\r\n var result = \"[\".concat(fieldText, \"] \").concat(operationText);\r\n if (isDefined(valueText)) {\r\n result += valueText\r\n }\r\n return result\r\n }\r\n _getValueMaskedText(value) {\r\n return Array.isArray(value) ? \"('\".concat(value.join(\"', '\"), \"')\") : \" '\".concat(value, \"'\")\r\n }\r\n _getValueText(field, customOperation, value) {\r\n var deferred = new Deferred;\r\n var hasCustomOperation = customOperation && customOperation.customizeText;\r\n if (isDefined(value) || hasCustomOperation) {\r\n if (!hasCustomOperation && field.lookup) {\r\n getCurrentLookupValueText(field, value, data => {\r\n deferred.resolve(this._getValueMaskedText(data))\r\n })\r\n } else {\r\n var displayValue = Array.isArray(value) ? value : gridUtils.getDisplayValue(field, value, null);\r\n when(getCurrentValueText(field, displayValue, customOperation, FILTER_PANEL_TARGET)).done(data => {\r\n deferred.resolve(this._getValueMaskedText(data))\r\n })\r\n }\r\n } else {\r\n deferred.resolve(\"\")\r\n }\r\n return deferred.promise()\r\n }\r\n getConditionText(filterValue, options) {\r\n var that = this;\r\n var operation = filterValue[1];\r\n var deferred = new Deferred;\r\n var customOperation = getCustomOperation(options.customOperations, operation);\r\n var operationText;\r\n var field = getField(filterValue[0], options.columns);\r\n var fieldText = field.caption || \"\";\r\n var value = filterValue[2];\r\n if (customOperation) {\r\n operationText = customOperation.caption || captionize(customOperation.name)\r\n } else if (null === value) {\r\n operationText = getCaptionByOperation(\"=\" === operation ? \"isblank\" : \"isnotblank\", options.filterOperationDescriptions)\r\n } else {\r\n operationText = getCaptionByOperation(operation, options.filterOperationDescriptions)\r\n }\r\n this._getValueText(field, customOperation, value).done(valueText => {\r\n deferred.resolve(that._getConditionText(fieldText, operationText, valueText))\r\n });\r\n return deferred\r\n }\r\n getGroupText(filterValue, options, isInnerGroup) {\r\n var that = this;\r\n var result = new Deferred;\r\n var textParts = [];\r\n var groupValue = getGroupValue(filterValue);\r\n filterValue.forEach(item => {\r\n if (isCondition(item)) {\r\n textParts.push(that.getConditionText(item, options))\r\n } else if (isGroup(item)) {\r\n textParts.push(that.getGroupText(item, options, true))\r\n }\r\n });\r\n when.apply(this, textParts).done((function() {\r\n var text;\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n if (groupValue.startsWith(\"!\")) {\r\n var groupText = options.groupOperationDescriptions[\"not\".concat(groupValue.substring(1, 2).toUpperCase()).concat(groupValue.substring(2))].split(\" \");\r\n text = \"\".concat(groupText[0], \" \").concat(args[0])\r\n } else {\r\n text = args.join(\" \".concat(options.groupOperationDescriptions[groupValue], \" \"))\r\n }\r\n if (isInnerGroup) {\r\n text = \"(\".concat(text, \")\")\r\n }\r\n result.resolve(text)\r\n }));\r\n return result\r\n }\r\n getFilterText(filterValue, customOperations) {\r\n var options = {\r\n customOperations: customOperations,\r\n columns: this._columnsController.getFilteringColumns(),\r\n filterOperationDescriptions: this.option(\"filterBuilder.filterOperationDescriptions\"),\r\n groupOperationDescriptions: this.option(\"filterBuilder.groupOperationDescriptions\")\r\n };\r\n return isCondition(filterValue) ? this.getConditionText(filterValue, options) : this.getGroupText(filterValue, options)\r\n }\r\n}\r\nvar data = Base => class extends Base {\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterPanel\":\r\n this._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n};\r\nexport var filterPanelModule = {\r\n defaultOptions: () => ({\r\n filterPanel: {\r\n visible: false,\r\n filterEnabled: true,\r\n texts: {\r\n createFilter: messageLocalization.format(\"dxDataGrid-filterPanelCreateFilter\"),\r\n clearFilter: messageLocalization.format(\"dxDataGrid-filterPanelClearFilter\"),\r\n filterEnabledHint: messageLocalization.format(\"dxDataGrid-filterPanelFilterEnabledHint\")\r\n }\r\n }\r\n }),\r\n views: {\r\n filterPanelView: FilterPanelView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: data\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/filter_panel.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterPanelModule\r\n} from \"../../../grids/grid_core/filter/m_filter_panel\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterPanel\", filterPanelModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/search/m_search.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../../../core/utils/data\";\r\nimport dataQuery from \"../../../../data/query\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar SEARCH_PANEL_CLASS = \"search-panel\";\r\nvar SEARCH_TEXT_CLASS = \"search-text\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar FILTERING_TIMEOUT = 700;\r\n\r\nfunction allowSearch(column) {\r\n var _a;\r\n return !!(null !== (_a = column.allowSearch) && void 0 !== _a ? _a : column.allowFiltering)\r\n}\r\n\r\nfunction parseValue(column, text) {\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (!column.parseValue) {\r\n return text\r\n }\r\n if (lookup) {\r\n return column.parseValue.call(lookup, text)\r\n }\r\n return column.parseValue(text)\r\n}\r\nvar dataController = base => class extends base {\r\n optionChanged(args) {\r\n switch (args.fullName) {\r\n case \"searchPanel.text\":\r\n case \"searchPanel\":\r\n this._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n publicMethods() {\r\n return super.publicMethods().concat([\"searchByText\"])\r\n }\r\n _calculateAdditionalFilter() {\r\n var filter = super._calculateAdditionalFilter();\r\n var searchFilter = this.calculateSearchFilter(this.option(\"searchPanel.text\"));\r\n return gridCoreUtils.combineFilters([filter, searchFilter])\r\n }\r\n searchByText(text) {\r\n this.option(\"searchPanel.text\", text)\r\n }\r\n calculateSearchFilter(text) {\r\n var i;\r\n var column;\r\n var columns = this._columnsController.getColumns();\r\n var searchVisibleColumnsOnly = this.option(\"searchPanel.searchVisibleColumnsOnly\");\r\n var lookup;\r\n var filters = [];\r\n if (!text) {\r\n return null\r\n }\r\n\r\n function onQueryDone(items) {\r\n var valueGetter = compileGetter(lookup.valueExpr);\r\n for (var _i = 0; _i < items.length; _i++) {\r\n var value = valueGetter(items[_i]);\r\n filters.push(column.createFilterExpression(value, null, \"search\"))\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n if (searchVisibleColumnsOnly && !column.visible) {\r\n continue\r\n }\r\n if (allowSearch(column) && column.calculateFilterExpression) {\r\n lookup = column.lookup;\r\n var filterValue = parseValue(column, text);\r\n if (lookup && lookup.items) {\r\n dataQuery(lookup.items).filter(column.createFilterExpression.call({\r\n dataField: lookup.displayExpr,\r\n dataType: lookup.dataType,\r\n calculateFilterExpression: column.calculateFilterExpression\r\n }, filterValue, null, \"search\")).enumerate().done(onQueryDone)\r\n } else if (void 0 !== filterValue) {\r\n filters.push(column.createFilterExpression(filterValue, null, \"search\"))\r\n }\r\n }\r\n }\r\n if (0 === filters.length) {\r\n return [\"!\"]\r\n }\r\n return gridCoreUtils.combineFilters(filters, \"or\")\r\n }\r\n};\r\nvar headerPanel = Base => class extends Base {\r\n optionChanged(args) {\r\n if (\"searchPanel\" === args.name) {\r\n if (\"searchPanel.text\" === args.fullName) {\r\n var editor = this.getSearchTextEditor();\r\n if (editor) {\r\n editor.option(\"value\", args.value)\r\n }\r\n } else {\r\n this._invalidate()\r\n }\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n _getToolbarItems() {\r\n var items = super._getToolbarItems();\r\n return this._prepareSearchItem(items)\r\n }\r\n _prepareSearchItem(items) {\r\n var that = this;\r\n var dataController = this._dataController;\r\n var searchPanelOptions = this.option(\"searchPanel\");\r\n if (searchPanelOptions && searchPanelOptions.visible) {\r\n var toolbarItem = {\r\n template(data, index, container) {\r\n var $search = $(\"<div>\").addClass(that.addWidgetPrefix(SEARCH_PANEL_CLASS)).appendTo(container);\r\n that._editorFactoryController.createEditor($search, {\r\n width: searchPanelOptions.width,\r\n placeholder: searchPanelOptions.placeholder,\r\n parentType: \"searchPanel\",\r\n value: that.option(\"searchPanel.text\"),\r\n updateValueTimeout: FILTERING_TIMEOUT,\r\n setValue(value) {\r\n dataController.searchByText(value)\r\n },\r\n editorOptions: {\r\n inputAttr: {\r\n \"aria-label\": messageLocalization.format(\"\".concat(that.component.NAME, \"-ariaSearchInGrid\"))\r\n }\r\n }\r\n });\r\n that.resize()\r\n },\r\n name: \"searchPanel\",\r\n location: \"after\",\r\n locateInMenu: \"never\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n }\r\n getSearchTextEditor() {\r\n var that = this;\r\n var $element = that.element();\r\n var $searchPanel = $element.find(\".\".concat(that.addWidgetPrefix(SEARCH_PANEL_CLASS))).filter((function() {\r\n return $(this).closest(\".\".concat(that.addWidgetPrefix(HEADER_PANEL_CLASS))).is($element)\r\n }));\r\n if ($searchPanel.length) {\r\n return $searchPanel.dxTextBox(\"instance\")\r\n }\r\n return null\r\n }\r\n isVisible() {\r\n var searchPanelOptions = this.option(\"searchPanel\");\r\n return super.isVisible() || !!(null === searchPanelOptions || void 0 === searchPanelOptions ? void 0 : searchPanelOptions.visible)\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n init() {\r\n super.init.apply(this, arguments);\r\n this._searchParams = [];\r\n this._dataController = this.getController(\"data\")\r\n }\r\n dispose() {\r\n clearTimeout(this._highlightTimer);\r\n super.dispose()\r\n }\r\n _getFormattedSearchText(column, searchText) {\r\n var value = parseValue(column, searchText);\r\n var formatOptions = gridCoreUtils.getFormatOptionsByColumn(column, \"search\");\r\n return gridCoreUtils.formatValue(value, formatOptions)\r\n }\r\n _getStringNormalizer() {\r\n var _a, _b, _c, _d;\r\n var isCaseSensitive = this.option(\"searchPanel.highlightCaseSensitive\");\r\n var dataSource = null === (_b = null === (_a = this._dataController) || void 0 === _a ? void 0 : _a.getDataSource) || void 0 === _b ? void 0 : _b.call(_a);\r\n var langParams = null === (_d = null === (_c = null === dataSource || void 0 === dataSource ? void 0 : dataSource.loadOptions) || void 0 === _c ? void 0 : _c.call(dataSource)) || void 0 === _d ? void 0 : _d.langParams;\r\n return str => toComparable(str, isCaseSensitive, langParams)\r\n }\r\n _findHighlightingTextNodes(column, cellElement, searchText) {\r\n var $parent = cellElement.parent();\r\n var $items;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var normalizedSearchText = stringNormalizer(searchText);\r\n var resultTextNodes = [];\r\n if (!$parent.length) {\r\n $parent = $(\"<div>\").append(cellElement)\r\n } else if (column) {\r\n if (column.groupIndex >= 0 && !column.showWhenGrouped) {\r\n $items = cellElement\r\n } else {\r\n var columnIndex = this._columnsController.getVisibleIndex(column.index);\r\n $items = $parent.children(\"td\").eq(columnIndex).find(\"*\")\r\n }\r\n }\r\n $items = (null === $items || void 0 === $items ? void 0 : $items.length) ? $items : $parent.find(\"*\");\r\n $items.each((_, element) => {\r\n var _a, _b;\r\n var $contents = $(element).contents();\r\n for (var i = 0; i < $contents.length; i++) {\r\n var node = $contents.get(i);\r\n if (3 === node.nodeType) {\r\n var normalizedText = stringNormalizer(null !== (_b = null !== (_a = node.textContent) && void 0 !== _a ? _a : node.nodeValue) && void 0 !== _b ? _b : \"\");\r\n if (normalizedText.includes(normalizedSearchText)) {\r\n resultTextNodes.push(node)\r\n }\r\n }\r\n }\r\n });\r\n return resultTextNodes\r\n }\r\n _highlightSearchTextCore($textNode, searchText) {\r\n var $searchTextSpan = $(\"<span>\").addClass(this.addWidgetPrefix(SEARCH_TEXT_CLASS));\r\n var text = $textNode.text();\r\n var firstContentElement = $textNode[0];\r\n var stringNormalizer = this._getStringNormalizer();\r\n var index = stringNormalizer(text).indexOf(stringNormalizer(searchText));\r\n if (index >= 0) {\r\n if (firstContentElement.textContent) {\r\n firstContentElement.textContent = text.substr(0, index)\r\n } else {\r\n firstContentElement.nodeValue = text.substr(0, index)\r\n }\r\n $textNode.after($searchTextSpan.text(text.substr(index, searchText.length)));\r\n $textNode = $(domAdapter.createTextNode(text.substr(index + searchText.length))).insertAfter($searchTextSpan);\r\n return this._highlightSearchTextCore($textNode, searchText)\r\n }\r\n }\r\n _highlightSearchText(cellElement, isEquals, column) {\r\n var that = this;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var searchText = that.option(\"searchPanel.text\");\r\n if (isEquals && column) {\r\n searchText = searchText && that._getFormattedSearchText(column, searchText)\r\n }\r\n if (searchText && that.option(\"searchPanel.highlightSearchText\")) {\r\n var textNodes = that._findHighlightingTextNodes(column, cellElement, searchText);\r\n textNodes.forEach(textNode => {\r\n if (isEquals) {\r\n if (stringNormalizer($(textNode).text()) === stringNormalizer(null !== searchText && void 0 !== searchText ? searchText : \"\")) {\r\n $(textNode).replaceWith($(\"<span>\").addClass(that.addWidgetPrefix(SEARCH_TEXT_CLASS)).text($(textNode).text()))\r\n }\r\n } else {\r\n that._highlightSearchTextCore($(textNode), searchText)\r\n }\r\n })\r\n }\r\n }\r\n _renderCore() {\r\n var deferred = super._renderCore.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option(\"dataRowTemplate\")) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(() => {\r\n this._highlightSearchText(this.getTableElement())\r\n })\r\n } else {\r\n this._highlightSearchText(this.getTableElement())\r\n }\r\n }\r\n return deferred\r\n }\r\n _updateCell($cell, parameters) {\r\n var {\r\n column: column\r\n } = parameters;\r\n var dataType = column.lookup && column.lookup.dataType || column.dataType;\r\n var isEquals = \"string\" !== dataType;\r\n if (allowSearch(column) && !parameters.isOnForm) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n if (!this._searchParams.length) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(() => {\r\n this._searchParams.forEach(params => {\r\n this._highlightSearchText.apply(this, params)\r\n });\r\n this._searchParams = []\r\n })\r\n }\r\n this._searchParams.push([$cell, isEquals, column])\r\n } else {\r\n this._highlightSearchText($cell, isEquals, column)\r\n }\r\n }\r\n super._updateCell($cell, parameters)\r\n }\r\n};\r\nexport var searchModule = {\r\n defaultOptions: () => ({\r\n searchPanel: {\r\n visible: false,\r\n width: 160,\r\n placeholder: messageLocalization.format(\"dxDataGrid-searchPanelPlaceholder\"),\r\n highlightSearchText: true,\r\n highlightCaseSensitive: false,\r\n text: \"\",\r\n searchVisibleColumnsOnly: false\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n data: dataController\r\n },\r\n views: {\r\n headerPanel: headerPanel,\r\n rowsView: rowsView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/search.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n searchModule\r\n} from \"../../../grids/grid_core/search/m_search\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"search\", searchModule);\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/grid_pager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Component from \"./common/component\";\r\nexport class GridPagerWrapper extends Component {\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"pageIndex\":\r\n var pageIndexChanged = this.option(\"pageIndexChanged\");\r\n if (pageIndexChanged) {\r\n pageIndexChanged(args.value)\r\n }\r\n break;\r\n case \"pageSize\":\r\n var pageSizeChanged = this.option(\"pageSizeChanged\");\r\n if (pageSizeChanged) {\r\n pageSizeChanged(args.value)\r\n }\r\n }\r\n super._optionChanged(args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/utils/get_element_width.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(name, element) {\r\n var _getElementComputedSt;\r\n var computedStyle = null !== (_getElementComputedSt = getElementComputedStyle(element)) && void 0 !== _getElementComputedSt ? _getElementComputedSt : {};\r\n return toNumber(computedStyle[name])\r\n}\r\nexport function getElementContentWidth(element) {\r\n var padding = getElementStyle(\"paddingLeft\", element) + getElementStyle(\"paddingRight\", element);\r\n var width = getElementStyle(\"width\", element);\r\n return width - padding\r\n}\r\nexport function getElementWidth(element) {\r\n var margin = getElementStyle(\"marginLeft\", element) + getElementStyle(\"marginRight\", element);\r\n var width = getElementStyle(\"width\", element);\r\n return margin + width\r\n}\r\nexport function getElementMinWidth(element) {\r\n return getElementStyle(\"minWidth\", element)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/resizable_container.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"contentTemplate\", \"pagerProps\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport {\r\n getElementWidth,\r\n getElementStyle,\r\n getElementContentWidth\r\n} from \"./utils/get_element_width\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n contentAttributes: contentAttributes,\r\n infoTextRef: infoTextRef,\r\n infoTextVisible: infoTextVisible,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSizesRef: pageSizesRef,\r\n pagesRef: pagesRef,\r\n parentRef: parentRef,\r\n props: {\r\n contentTemplate: Content\r\n }\r\n } = _ref;\r\n return Content(_extends({\r\n rootElementRef: parentRef,\r\n pageSizesRef: pageSizesRef,\r\n infoTextRef: infoTextRef,\r\n pagesRef: pagesRef,\r\n infoTextVisible: infoTextVisible,\r\n isLargeDisplayMode: isLargeDisplayMode\r\n }, contentAttributes))\r\n};\r\nexport function calculateLargeDisplayMode(_ref2) {\r\n var {\r\n pageSizes: pageSizesWidth,\r\n pages: pagesWidth,\r\n parent: parentWidth\r\n } = _ref2;\r\n return parentWidth - (pageSizesWidth + pagesWidth) > 0\r\n}\r\nexport function calculateInfoTextVisible(_ref3) {\r\n var {\r\n info: infoWidth,\r\n pageSizes: pageSizesWidth,\r\n pages: pagesWidth,\r\n parent: parentWidth\r\n } = _ref3;\r\n var minimalWidth = pageSizesWidth + pagesWidth + infoWidth;\r\n return parentWidth - minimalWidth > 0\r\n}\r\n\r\nfunction getElementsWidth(_ref4) {\r\n var {\r\n info: info,\r\n pageSizes: pageSizes,\r\n pages: pages,\r\n parent: parent\r\n } = _ref4;\r\n var parentWidth = getElementContentWidth(parent);\r\n var pageSizesWidth = getElementWidth(pageSizes);\r\n var infoWidth = getElementWidth(info);\r\n var pagesHtmlWidth = getElementWidth(pages);\r\n return {\r\n parent: parentWidth,\r\n pageSizes: pageSizesWidth,\r\n info: infoWidth + getElementStyle(\"marginLeft\", info) + getElementStyle(\"marginRight\", info),\r\n pages: pagesHtmlWidth\r\n }\r\n}\r\nexport var ResizableContainerProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class ResizableContainer extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.parentRef = infernoCreateRef();\r\n this.pageSizesRef = infernoCreateRef();\r\n this.infoTextRef = infernoCreateRef();\r\n this.pagesRef = infernoCreateRef();\r\n this.actualIsLargeDisplayMode = true;\r\n this.actualInfoTextVisible = true;\r\n this.state = {\r\n infoTextVisible: true,\r\n isLargeDisplayMode: true\r\n };\r\n this.subscribeToResize = this.subscribeToResize.bind(this);\r\n this.effectUpdateChildProps = this.effectUpdateChildProps.bind(this);\r\n this.updateAdaptivityProps = this.updateAdaptivityProps.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.subscribeToResize, [this.state.infoTextVisible, this.state.isLargeDisplayMode]), new InfernoEffect(this.effectUpdateChildProps, [this.props, this.state.infoTextVisible, this.state.isLargeDisplayMode, this.props.pagerProps, this.props.contentTemplate])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.state.infoTextVisible, this.state.isLargeDisplayMode]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props, this.state.infoTextVisible, this.state.isLargeDisplayMode, this.props.pagerProps, this.props.contentTemplate])\r\n }\r\n subscribeToResize() {\r\n var callback = () => {\r\n this.parentWidth > 0 && this.updateAdaptivityProps()\r\n };\r\n resizeCallbacks.add(callback);\r\n return () => {\r\n resizeCallbacks.remove(callback)\r\n }\r\n }\r\n effectUpdateChildProps() {\r\n if (this.parentWidth > 0) {\r\n this.updateAdaptivityProps()\r\n }\r\n }\r\n get contentAttributes() {\r\n var {\r\n className: className,\r\n displayMode: displayMode,\r\n gridCompatibility: gridCompatibility,\r\n hasKnownLastPage: hasKnownLastPage,\r\n infoText: infoText,\r\n label: label,\r\n lightModeEnabled: lightModeEnabled,\r\n maxPagesCount: maxPagesCount,\r\n onKeyDown: onKeyDown,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes,\r\n pagesCountText: pagesCountText,\r\n pagesNavigatorVisible: pagesNavigatorVisible,\r\n rtlEnabled: rtlEnabled,\r\n showInfo: showInfo,\r\n showNavigationButtons: showNavigationButtons,\r\n showPageSizes: showPageSizes,\r\n totalCount: totalCount,\r\n visible: visible\r\n } = this.props.pagerProps;\r\n return _extends({}, this.restAttributes, {\r\n pageSize: pageSize,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSizeChange: pageSizeChange,\r\n gridCompatibility: gridCompatibility,\r\n className: className,\r\n showInfo: showInfo,\r\n infoText: infoText,\r\n lightModeEnabled: lightModeEnabled,\r\n displayMode: displayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pagesCountText: pagesCountText,\r\n visible: visible,\r\n hasKnownLastPage: hasKnownLastPage,\r\n pagesNavigatorVisible: pagesNavigatorVisible,\r\n showPageSizes: showPageSizes,\r\n pageSizes: pageSizes,\r\n rtlEnabled: rtlEnabled,\r\n showNavigationButtons: showNavigationButtons,\r\n totalCount: totalCount,\r\n onKeyDown: onKeyDown,\r\n label: label\r\n })\r\n }\r\n get parentWidth() {\r\n return this.parentRef.current ? getElementWidth(this.parentRef.current) : 0\r\n }\r\n updateAdaptivityProps() {\r\n var currentElementsWidth = getElementsWidth({\r\n parent: this.parentRef.current,\r\n pageSizes: this.pageSizesRef.current,\r\n info: this.infoTextRef.current,\r\n pages: this.pagesRef.current\r\n });\r\n if (this.actualInfoTextVisible !== this.state.infoTextVisible || this.actualIsLargeDisplayMode !== this.state.isLargeDisplayMode) {\r\n return\r\n }\r\n var isEmpty = !isDefined(this.elementsWidth);\r\n if (isEmpty) {\r\n this.elementsWidth = {}\r\n }\r\n if (isEmpty || this.state.isLargeDisplayMode) {\r\n this.elementsWidth.pageSizes = currentElementsWidth.pageSizes;\r\n this.elementsWidth.pages = currentElementsWidth.pages\r\n }\r\n if (isEmpty || this.state.infoTextVisible) {\r\n this.elementsWidth.info = currentElementsWidth.info\r\n }\r\n this.actualIsLargeDisplayMode = calculateLargeDisplayMode(_extends({\r\n parent: currentElementsWidth.parent\r\n }, {\r\n pageSizes: this.elementsWidth.pageSizes,\r\n pages: this.elementsWidth.pages\r\n }));\r\n this.actualInfoTextVisible = calculateInfoTextVisible(_extends({}, currentElementsWidth, {\r\n info: this.elementsWidth.info\r\n }));\r\n this.setState(__state_argument => ({\r\n infoTextVisible: this.actualInfoTextVisible\r\n }));\r\n this.setState(__state_argument => ({\r\n isLargeDisplayMode: this.actualIsLargeDisplayMode\r\n }))\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n contentTemplate: getTemplate(props.contentTemplate)\r\n }),\r\n infoTextVisible: this.state.infoTextVisible,\r\n isLargeDisplayMode: this.state.isLargeDisplayMode,\r\n parentRef: this.parentRef,\r\n pageSizesRef: this.pageSizesRef,\r\n infoTextRef: this.infoTextRef,\r\n pagesRef: this.pagesRef,\r\n contentAttributes: this.contentAttributes,\r\n parentWidth: this.parentWidth,\r\n updateAdaptivityProps: this.updateAdaptivityProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nResizableContainer.defaultProps = ResizableContainerProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/base_pager_props.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport messageLocalization from \"../../../../localization/message\";\r\nexport var BasePagerProps = {\r\n gridCompatibility: true,\r\n showInfo: false,\r\n displayMode: \"adaptive\",\r\n maxPagesCount: 10,\r\n pageCount: 10,\r\n visible: true,\r\n hasKnownLastPage: true,\r\n pagesNavigatorVisible: \"auto\",\r\n showPageSizes: true,\r\n pageSizes: Object.freeze([5, 10]),\r\n showNavigationButtons: false,\r\n totalCount: 0,\r\n get label() {\r\n return messageLocalization.format(\"dxPager-ariaLabel\")\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/pager_props.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n BasePagerProps\r\n} from \"./base_pager_props\";\r\nexport var PagerProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BasePagerProps), Object.getOwnPropertyDescriptors({\r\n defaultPageSize: 5,\r\n pageSizeChange: () => {},\r\n defaultPageIndex: 1,\r\n pageIndexChange: () => {}\r\n})));\r\nexport var InternalPagerProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BasePagerProps), Object.getOwnPropertyDescriptors({\r\n pageSize: 5,\r\n pageIndex: 1\r\n})));\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/info.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"infoText\", \"pageCount\", \"pageIndex\", \"rootElementRef\", \"totalCount\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n format\r\n} from \"../../../core/utils/string\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n InternalPagerProps\r\n} from \"./common/pager_props\";\r\nexport var PAGER_INFO_CLASS = \"dx-info\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n rootElementRef: rootElementRef\r\n },\r\n text: text\r\n } = _ref;\r\n return createVNode(1, \"div\", PAGER_INFO_CLASS, text, 0, null, null, rootElementRef)\r\n};\r\nexport var InfoTextProps = {};\r\nvar InfoTextPropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n },\r\n get totalCount() {\r\n return InternalPagerProps.totalCount\r\n }\r\n};\r\nexport class InfoText extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get infoText() {\r\n var _this$props$infoText;\r\n return (null !== (_this$props$infoText = this.props.infoText) && void 0 !== _this$props$infoText ? _this$props$infoText : \"\") || messageLocalization.getFormatter(\"dxPager-infoText\")()\r\n }\r\n get text() {\r\n var {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n totalCount: totalCount\r\n } = this.props;\r\n return format(this.infoText, (pageIndex + 1).toString(), pageCount.toString(), totalCount.toString())\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n infoText: this.infoText,\r\n text: this.text,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInfoText.defaultProps = InfoTextPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/keyboard_action_context.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var KeyboardActionContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/light_button.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"children\", \"className\", \"label\", \"onClick\", \"selected\", \"tabIndex\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n subscribeToClickEvent\r\n} from \"../../../utils/subscribe_to_event\";\r\nimport {\r\n KeyboardActionContext\r\n} from \"./keyboard_action_context\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n children: children,\r\n className: className,\r\n label: label,\r\n selected: selected,\r\n tabIndex: tabIndex\r\n },\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return createVNode(1, \"div\", className, children, 0, {\r\n tabIndex: tabIndex,\r\n role: \"button\",\r\n \"aria-label\": label,\r\n \"aria-current\": selected ? \"page\" : void 0\r\n }, null, widgetRef)\r\n};\r\nexport var LightButtonProps = {\r\n className: \"\",\r\n label: \"\",\r\n tabIndex: 0,\r\n selected: false\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class LightButton extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.subscribeToClick = this.subscribeToClick.bind(this)\r\n }\r\n get keyboardContext() {\r\n if (this.context[KeyboardActionContext.id]) {\r\n return this.context[KeyboardActionContext.id]\r\n }\r\n return KeyboardActionContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.keyboardEffect, [this.keyboardContext, this.props.onClick]), new InfernoEffect(this.subscribeToClick, [this.props.onClick])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.keyboardContext, this.props.onClick]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props.onClick])\r\n }\r\n keyboardEffect() {\r\n return this.keyboardContext.registerKeyboardAction(this.widgetRef.current, this.props.onClick)\r\n }\r\n subscribeToClick() {\r\n return subscribeToClickEvent(this.widgetRef.current, this.props.onClick)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n keyboardContext: this.keyboardContext,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nLightButton.defaultProps = LightButtonProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/consts.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var PAGER_CLASS = \"dx-pager\";\r\nexport var LIGHT_MODE_CLASS = \"dx-light-mode\";\r\nexport var PAGER_PAGES_CLASS = \"dx-pages\";\r\nexport var PAGER_PAGE_INDEXES_CLASS = \"dx-page-indexes\";\r\nexport var PAGER_PAGE_CLASS = \"dx-page\";\r\nexport var PAGER_SELECTION_CLASS = \"dx-selection\";\r\nexport var PAGER_PAGE_SIZE_CLASS = \"dx-page-size\";\r\nexport var PAGER_PAGE_SIZES_CLASS = \"dx-page-sizes\";\r\nexport var PAGER_SELECTED_PAGE_SIZE_CLASS = \"\".concat(PAGER_PAGE_SIZE_CLASS, \" \").concat(PAGER_SELECTION_CLASS);\r\nexport var FIRST_CHILD_CLASS = \"dx-first-child\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/page.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"className\", \"index\", \"onClick\", \"selected\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n PAGER_PAGE_CLASS,\r\n PAGER_SELECTION_CLASS\r\n} from \"../common/consts\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n className: className,\r\n label: label,\r\n props: {\r\n onClick: onClick,\r\n selected: selected\r\n },\r\n value: value\r\n } = _ref;\r\n return createComponentVNode(2, LightButton, {\r\n className: className,\r\n label: label,\r\n onClick: onClick,\r\n selected: selected,\r\n children: value\r\n })\r\n};\r\nexport var PageProps = {\r\n index: 0,\r\n selected: false,\r\n className: PAGER_PAGE_CLASS\r\n};\r\nexport class Page extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get label() {\r\n return format(messageLocalization.getFormatter(\"dxPager-page\"), this.value)\r\n }\r\n get value() {\r\n return this.props.index + 1\r\n }\r\n get className() {\r\n var {\r\n selected: selected\r\n } = this.props;\r\n return combineClasses({\r\n [\"\".concat(this.props.className)]: !!this.props.className,\r\n [PAGER_SELECTION_CLASS]: !!selected\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n label: this.label,\r\n value: this.value,\r\n className: this.className,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPage.defaultProps = PageProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/large.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"pageIndexes\"],\r\n _excluded2 = [\"maxPagesCount\", \"pageCount\", \"pageIndex\", \"pageIndexChange\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Page\r\n} from \"./page\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../../common/config_context\";\r\nvar PAGER_PAGE_SEPARATOR_CLASS = \"dx-separator\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pages: pages\r\n } = _ref;\r\n var PagesMarkup = pages.map(_ref2 => {\r\n var {\r\n key: key,\r\n pageProps: pageProps\r\n } = _ref2;\r\n return pageProps ? createComponentVNode(2, Page, {\r\n index: pageProps.index,\r\n selected: pageProps.selected,\r\n onClick: pageProps.onClick\r\n }, key) : createVNode(1, \"div\", PAGER_PAGE_SEPARATOR_CLASS, \". . .\", 16, null, key)\r\n });\r\n return createFragment(PagesMarkup, 0)\r\n};\r\nvar PAGES_LIMITER = 4;\r\n\r\nfunction getDelimiterType(startIndex, slidingWindowSize, pageCount) {\r\n if (1 === startIndex) {\r\n return \"high\"\r\n }\r\n if (startIndex + slidingWindowSize === pageCount - 1) {\r\n return \"low\"\r\n }\r\n return \"both\"\r\n}\r\n\r\nfunction createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter) {\r\n var pageIndexes = [];\r\n var indexesForReuse = [];\r\n switch (delimiter) {\r\n case \"none\":\r\n pageIndexes = [...slidingWindowIndexes];\r\n break;\r\n case \"both\":\r\n pageIndexes = [0, \"low\", ...slidingWindowIndexes, \"high\", pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(1, -1);\r\n break;\r\n case \"high\":\r\n pageIndexes = [0, ...slidingWindowIndexes, \"high\", pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(0, -1);\r\n break;\r\n case \"low\":\r\n pageIndexes = [0, \"low\", ...slidingWindowIndexes, pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(1)\r\n }\r\n return {\r\n slidingWindowIndexes: slidingWindowIndexes,\r\n indexesForReuse: indexesForReuse,\r\n pageIndexes: pageIndexes\r\n }\r\n}\r\n\r\nfunction createPageIndexes(startIndex, slidingWindowSize, pageCount, delimiter) {\r\n var slidingWindowIndexes = [];\r\n for (var i = 0; i < slidingWindowSize; i += 1) {\r\n slidingWindowIndexes.push(i + startIndex)\r\n }\r\n return createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter)\r\n}\r\nvar PagesLargePropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get maxPagesCount() {\r\n return InternalPagerProps.maxPagesCount\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n }\r\n};\r\nexport class PagesLarge extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.canReuseSlidingWindow = this.canReuseSlidingWindow.bind(this);\r\n this.generatePageIndexes = this.generatePageIndexes.bind(this);\r\n this.isSlidingWindowMode = this.isSlidingWindowMode.bind(this);\r\n this.onPageClick = this.onPageClick.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n get slidingWindowState() {\r\n var slidingWindowState = this.slidingWindowStateHolder;\r\n if (!slidingWindowState) {\r\n return {\r\n indexesForReuse: [],\r\n slidingWindowIndexes: []\r\n }\r\n }\r\n return slidingWindowState\r\n }\r\n canReuseSlidingWindow(currentPageCount, pageIndex) {\r\n var {\r\n indexesForReuse: indexesForReuse\r\n } = this.slidingWindowState;\r\n var lastPageIsFartherThanWindow = indexesForReuse.slice(-1)[0] < currentPageCount - 1;\r\n var pageIndexExistInIndexes = indexesForReuse.includes(pageIndex);\r\n return lastPageIsFartherThanWindow && pageIndexExistInIndexes\r\n }\r\n generatePageIndexes() {\r\n var {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex\r\n } = this.props;\r\n var startIndex = 0;\r\n var {\r\n slidingWindowIndexes: slidingWindowIndexes\r\n } = this.slidingWindowState;\r\n if (pageIndex === slidingWindowIndexes[0]) {\r\n startIndex = pageIndex - 1\r\n } else if (pageIndex === slidingWindowIndexes[slidingWindowIndexes.length - 1]) {\r\n startIndex = pageIndex + 2 - PAGES_LIMITER\r\n } else if (pageIndex < PAGES_LIMITER) {\r\n startIndex = 1\r\n } else if (pageIndex >= pageCount - PAGES_LIMITER) {\r\n startIndex = pageCount - PAGES_LIMITER - 1\r\n } else {\r\n startIndex = pageIndex - 1\r\n }\r\n var slidingWindowSize = PAGES_LIMITER;\r\n var delimiter = getDelimiterType(startIndex, slidingWindowSize, pageCount);\r\n var _createPageIndexes = createPageIndexes(startIndex, slidingWindowSize, pageCount, delimiter),\r\n {\r\n pageIndexes: pageIndexes\r\n } = _createPageIndexes,\r\n slidingWindowState = _objectWithoutPropertiesLoose(_createPageIndexes, _excluded);\r\n this.slidingWindowStateHolder = slidingWindowState;\r\n return pageIndexes\r\n }\r\n isSlidingWindowMode() {\r\n var {\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount\r\n } = this.props;\r\n return pageCount <= PAGES_LIMITER || pageCount <= maxPagesCount\r\n }\r\n onPageClick(pageIndex) {\r\n this.props.pageIndexChange(pageIndex)\r\n }\r\n get pageIndexes() {\r\n var {\r\n pageCount: pageCount\r\n } = this.props;\r\n if (this.isSlidingWindowMode()) {\r\n return createPageIndexes(0, pageCount, pageCount, \"none\").pageIndexes\r\n }\r\n if (this.canReuseSlidingWindow(pageCount, this.props.pageIndex)) {\r\n var {\r\n slidingWindowIndexes: slidingWindowIndexes\r\n } = this.slidingWindowState;\r\n var delimiter = getDelimiterType(slidingWindowIndexes[0], PAGES_LIMITER, pageCount);\r\n return createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter).pageIndexes\r\n }\r\n return this.generatePageIndexes()\r\n }\r\n get pages() {\r\n var _this$config;\r\n var {\r\n pageIndex: pageIndex\r\n } = this.props;\r\n var createPage = index => {\r\n var pagerProps = \"low\" === index || \"high\" === index ? null : {\r\n index: index,\r\n onClick: () => this.onPageClick(index),\r\n selected: pageIndex === index\r\n };\r\n return {\r\n key: index.toString(),\r\n pageProps: pagerProps\r\n }\r\n };\r\n var rtlPageIndexes = null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled ? [...this.pageIndexes].reverse() : this.pageIndexes;\r\n return rtlPageIndexes.map(index => createPage(index))\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded2);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n pageIndexes: this.pageIndexes,\r\n pages: this.pages,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagesLarge.defaultProps = PagesLargePropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor_state_props.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nexport var EditorStateProps = {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n get focusStateEnabled() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor_label_props.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"../../../../ui/themes\";\r\nexport var EditorLabelProps = {\r\n label: \"\",\r\n get labelMode() {\r\n return isMaterial(current()) ? \"floating\" : \"static\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/number_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"className\", \"defaultValue\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"inputAttr\", \"invalidValueMessage\", \"isDirty\", \"isValid\", \"label\", \"labelMode\", \"max\", \"min\", \"mode\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"showSpinButtons\", \"step\", \"tabIndex\", \"useLargeSpinButtons\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacyNumberBox from \"../../../ui/number_box\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../common/dom_component_wrapper\";\r\nimport {\r\n EditorProps\r\n} from \"./common/editor\";\r\nimport {\r\n EditorStateProps\r\n} from \"./common/editor_state_props\";\r\nimport {\r\n EditorLabelProps\r\n} from \"./common/editor_label_props\";\r\nvar DEFAULT_VALUE = 0;\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacyNumberBox,\r\n componentProps: componentProps,\r\n templateNames: []\r\n }, restAttributes)))\r\n};\r\nexport var NumberBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n defaultValue: DEFAULT_VALUE,\r\n isReactComponentWrapper: true\r\n})));\r\nexport var NumberBoxPropsType = {\r\n get defaultValue() {\r\n return NumberBoxProps.defaultValue\r\n },\r\n get readOnly() {\r\n return NumberBoxProps.readOnly\r\n },\r\n get name() {\r\n return NumberBoxProps.name\r\n },\r\n get validationError() {\r\n return NumberBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return NumberBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return NumberBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return NumberBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return NumberBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return NumberBoxProps.isValid\r\n },\r\n get isDirty() {\r\n return NumberBoxProps.isDirty\r\n },\r\n get inputAttr() {\r\n return NumberBoxProps.inputAttr\r\n },\r\n get className() {\r\n return NumberBoxProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorStateProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return NumberBoxProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorStateProps.focusStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return EditorStateProps.hoverStateEnabled\r\n },\r\n get tabIndex() {\r\n return NumberBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return NumberBoxProps.visible\r\n },\r\n get label() {\r\n return EditorLabelProps.label\r\n },\r\n get labelMode() {\r\n return EditorLabelProps.labelMode\r\n },\r\n isReactComponentWrapper: true\r\n};\r\nexport class NumberBox extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n }\r\n }\r\n get componentProps() {\r\n return _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nNumberBox.defaultProps = NumberBoxPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/utils/calculate_values_fitted_width.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var oneDigitWidth = 10;\r\nexport function calculateValuesFittedWidth(minWidth, values) {\r\n return minWidth + oneDigitWidth * Math.max(...values).toString().length\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/small.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"inputAttr\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pagesCountText\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Page\r\n} from \"./page\";\r\nimport {\r\n PAGER_INFO_CLASS\r\n} from \"../info\";\r\nimport {\r\n NumberBox\r\n} from \"../../editors/number_box\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n calculateValuesFittedWidth\r\n} from \"../utils/calculate_values_fitted_width\";\r\nimport {\r\n getElementMinWidth\r\n} from \"../utils/get_element_width\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nvar PAGER_INFO_TEXT_CLASS = \"\".concat(PAGER_INFO_CLASS, \" dx-info-text\");\r\nvar PAGER_PAGE_INDEX_CLASS = \"dx-page-index\";\r\nvar LIGHT_PAGES_CLASS = \"dx-light-pages\";\r\nvar PAGER_PAGES_COUNT_CLASS = \"dx-pages-count\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pageIndexRef: pageIndexRef,\r\n pagesCountText: pagesCountText,\r\n props: {\r\n inputAttr: inputAttr,\r\n pageCount: pageCount\r\n },\r\n selectLastPageIndex: selectLastPageIndex,\r\n value: value,\r\n valueChange: valueChange,\r\n width: width\r\n } = _ref;\r\n return createVNode(1, \"div\", LIGHT_PAGES_CLASS, [createComponentVNode(2, NumberBox, {\r\n className: PAGER_PAGE_INDEX_CLASS,\r\n min: 1,\r\n max: Math.max(pageCount, value),\r\n width: width,\r\n value: value,\r\n valueChange: valueChange,\r\n inputAttr: inputAttr\r\n }), createVNode(1, \"span\", PAGER_INFO_TEXT_CLASS, pagesCountText, 0), createComponentVNode(2, Page, {\r\n className: PAGER_PAGES_COUNT_CLASS,\r\n selected: false,\r\n index: pageCount - 1,\r\n onClick: selectLastPageIndex\r\n })], 4, null, null, pageIndexRef)\r\n};\r\nexport var PagerSmallProps = {\r\n inputAttr: Object.freeze({\r\n \"aria-label\": messageLocalization.format(\"dxPager-ariaPageNumber\")\r\n })\r\n};\r\nvar PagerSmallPropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n },\r\n get inputAttr() {\r\n return PagerSmallProps.inputAttr\r\n }\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PagesSmall extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.pageIndexRef = infernoCreateRef();\r\n this.state = {\r\n minWidth: 10\r\n };\r\n this.updateWidth = this.updateWidth.bind(this);\r\n this.selectLastPageIndex = this.selectLastPageIndex.bind(this);\r\n this.valueChange = this.valueChange.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateWidth, [this.state.minWidth])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.state.minWidth])\r\n }\r\n updateWidth() {\r\n var _this$pageIndexRef$cu;\r\n var el = null === (_this$pageIndexRef$cu = this.pageIndexRef.current) || void 0 === _this$pageIndexRef$cu ? void 0 : _this$pageIndexRef$cu.querySelector(\".\".concat(PAGER_PAGE_INDEX_CLASS));\r\n this.setState(__state_argument => ({\r\n minWidth: el && getElementMinWidth(el) || __state_argument.minWidth\r\n }))\r\n }\r\n get value() {\r\n return this.props.pageIndex + 1\r\n }\r\n get width() {\r\n var {\r\n pageCount: pageCount\r\n } = this.props;\r\n return calculateValuesFittedWidth(this.state.minWidth, [pageCount])\r\n }\r\n get pagesCountText() {\r\n var _this$props$pagesCoun;\r\n return (null !== (_this$props$pagesCoun = this.props.pagesCountText) && void 0 !== _this$props$pagesCoun ? _this$props$pagesCoun : \"\") || messageLocalization.getFormatter(\"dxPager-pagesCountText\")()\r\n }\r\n selectLastPageIndex() {\r\n this.props.pageIndexChange(this.props.pageCount - 1)\r\n }\r\n valueChange(value) {\r\n this.props.pageIndexChange(value - 1)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n pageIndexRef: this.pageIndexRef,\r\n value: this.value,\r\n width: this.width,\r\n pagesCountText: this.pagesCountText,\r\n selectLastPageIndex: this.selectLastPageIndex,\r\n valueChange: this.valueChange,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagesSmall.defaultProps = PagerSmallPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/page_index_selector.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"hasKnownLastPage\", \"isLargeDisplayMode\", \"maxPagesCount\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pagesCountText\", \"showNavigationButtons\", \"totalCount\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n PagesLarge\r\n} from \"./large\";\r\nimport {\r\n PagesSmall\r\n} from \"./small\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../../common/config_context\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nvar PAGER_NAVIGATE_BUTTON = \"dx-navigate-button\";\r\nvar PAGER_PREV_BUTTON_CLASS = \"dx-prev-button\";\r\nvar PAGER_NEXT_BUTTON_CLASS = \"dx-next-button\";\r\nexport var PAGER_BUTTON_DISABLE_CLASS = \"dx-button-disable\";\r\nvar getNextButtonLabel = () => messageLocalization.getFormatter(\"dxPager-nextPage\")();\r\nvar getPrevButtonLabel = () => messageLocalization.getFormatter(\"dxPager-prevPage\")();\r\nvar classNames = {\r\n nextEnabledClass: \"\".concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_NEXT_BUTTON_CLASS),\r\n prevEnabledClass: \"\".concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_PREV_BUTTON_CLASS),\r\n nextDisabledClass: \"\".concat(PAGER_BUTTON_DISABLE_CLASS, \" \").concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_NEXT_BUTTON_CLASS),\r\n prevDisabledClass: \"\".concat(PAGER_BUTTON_DISABLE_CLASS, \" \").concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_PREV_BUTTON_CLASS)\r\n};\r\nvar reverseDirections = {\r\n next: \"prev\",\r\n prev: \"next\"\r\n};\r\nexport var viewFunction = _ref => {\r\n var {\r\n nextButtonProps: nextButtonProps,\r\n pageIndexChange: pageIndexChange,\r\n prevButtonProps: prevButtonProps,\r\n props: {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pagesCountText: pagesCountText\r\n },\r\n renderNextButton: renderNextButton,\r\n renderPrevButton: renderPrevButton\r\n } = _ref;\r\n return createFragment([renderPrevButton && createComponentVNode(2, LightButton, {\r\n label: getPrevButtonLabel(),\r\n className: prevButtonProps.className,\r\n tabIndex: prevButtonProps.tabIndex,\r\n onClick: prevButtonProps.navigate\r\n }), isLargeDisplayMode && createComponentVNode(2, PagesLarge, {\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange\r\n }), !isLargeDisplayMode && createComponentVNode(2, PagesSmall, {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pagesCountText: pagesCountText\r\n }), renderNextButton && createComponentVNode(2, LightButton, {\r\n label: getNextButtonLabel(),\r\n className: nextButtonProps.className,\r\n tabIndex: nextButtonProps.tabIndex,\r\n onClick: nextButtonProps.navigate\r\n })], 0)\r\n};\r\n\r\nfunction getIncrement(direction) {\r\n return \"next\" === direction ? 1 : -1\r\n}\r\nexport var PageIndexSelectorProps = {\r\n isLargeDisplayMode: true\r\n};\r\nvar PageIndexSelectorPropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get maxPagesCount() {\r\n return InternalPagerProps.maxPagesCount\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n },\r\n get hasKnownLastPage() {\r\n return InternalPagerProps.hasKnownLastPage\r\n },\r\n get showNavigationButtons() {\r\n return InternalPagerProps.showNavigationButtons\r\n },\r\n get totalCount() {\r\n return InternalPagerProps.totalCount\r\n },\r\n get isLargeDisplayMode() {\r\n return PageIndexSelectorProps.isLargeDisplayMode\r\n }\r\n};\r\nexport class PageIndexSelector extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.pageIndexChange = this.pageIndexChange.bind(this);\r\n this.getButtonProps = this.getButtonProps.bind(this);\r\n this.canNavigateToPage = this.canNavigateToPage.bind(this);\r\n this.getNextPageIndex = this.getNextPageIndex.bind(this);\r\n this.canNavigateTo = this.canNavigateTo.bind(this);\r\n this.navigateToPage = this.navigateToPage.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n pageIndexChange(pageIndex) {\r\n if (this.canNavigateToPage(pageIndex)) {\r\n this.props.pageIndexChange(pageIndex)\r\n }\r\n }\r\n getButtonProps(direction) {\r\n var _this$config;\r\n var rtlAwareDirection = null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled ? reverseDirections[direction] : direction;\r\n var canNavigate = this.canNavigateTo(rtlAwareDirection);\r\n var className = classNames[\"\".concat(direction).concat(canNavigate ? \"Enabled\" : \"Disabled\", \"Class\")];\r\n return {\r\n className: className,\r\n tabIndex: canNavigate ? 0 : -1,\r\n navigate: () => this.navigateToPage(rtlAwareDirection)\r\n }\r\n }\r\n canNavigateToPage(pageIndex) {\r\n if (!this.props.hasKnownLastPage) {\r\n return pageIndex >= 0\r\n }\r\n return pageIndex >= 0 && pageIndex <= this.props.pageCount - 1\r\n }\r\n getNextPageIndex(direction) {\r\n return this.props.pageIndex + getIncrement(direction)\r\n }\r\n canNavigateTo(direction) {\r\n return this.canNavigateToPage(this.getNextPageIndex(direction))\r\n }\r\n navigateToPage(direction) {\r\n this.pageIndexChange(this.getNextPageIndex(direction))\r\n }\r\n get renderPrevButton() {\r\n var {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n showNavigationButtons: showNavigationButtons\r\n } = this.props;\r\n return !isLargeDisplayMode || showNavigationButtons\r\n }\r\n get renderNextButton() {\r\n return this.renderPrevButton || !this.props.hasKnownLastPage\r\n }\r\n get prevButtonProps() {\r\n if (void 0 !== this.__getterCache.prevButtonProps) {\r\n return this.__getterCache.prevButtonProps\r\n }\r\n return this.__getterCache.prevButtonProps = (() => this.getButtonProps(\"prev\"))()\r\n }\r\n get nextButtonProps() {\r\n if (void 0 !== this.__getterCache.nextButtonProps) {\r\n return this.__getterCache.nextButtonProps\r\n }\r\n return this.__getterCache.nextButtonProps = (() => this.getButtonProps(\"next\"))()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.context[ConfigContext.id] !== context[ConfigContext.id] || this.props.hasKnownLastPage !== nextProps.hasKnownLastPage || this.props.pageCount !== nextProps.pageCount || this.props.pageIndex !== nextProps.pageIndex || this.props.pageIndexChange !== nextProps.pageIndexChange) {\r\n this.__getterCache.prevButtonProps = void 0\r\n }\r\n if (this.context[ConfigContext.id] !== context[ConfigContext.id] || this.props.hasKnownLastPage !== nextProps.hasKnownLastPage || this.props.pageCount !== nextProps.pageCount || this.props.pageIndex !== nextProps.pageIndex || this.props.pageIndexChange !== nextProps.pageIndexChange) {\r\n this.__getterCache.nextButtonProps = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n pageIndexChange: this.pageIndexChange,\r\n renderPrevButton: this.renderPrevButton,\r\n renderNextButton: this.renderNextButton,\r\n prevButtonProps: this.prevButtonProps,\r\n nextButtonProps: this.nextButtonProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageIndexSelector.defaultProps = PageIndexSelectorPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/drop_down_editors/select_box.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"className\", \"dataSource\", \"defaultValue\", \"disabled\", \"displayExpr\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"inputAttr\", \"isDirty\", \"isValid\", \"label\", \"labelMode\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"placeholder\", \"readOnly\", \"rtlEnabled\", \"searchEnabled\", \"tabIndex\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"valueExpr\", \"visible\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacySelectBox from \"../../../../ui/select_box\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../../common/dom_component_wrapper\";\r\nimport {\r\n EditorProps\r\n} from \"../common/editor\";\r\nimport {\r\n EditorStateProps\r\n} from \"../common/editor_state_props\";\r\nimport {\r\n EditorLabelProps\r\n} from \"../common/editor_label_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacySelectBox,\r\n componentProps: componentProps,\r\n templateNames: [\"dropDownButtonTemplate\", \"groupTemplate\", \"itemTemplate\"]\r\n }, restAttributes)))\r\n};\r\nexport var SelectBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n placeholder: \"\",\r\n hoverStateEnabled: true,\r\n searchEnabled: false,\r\n defaultValue: null,\r\n isReactComponentWrapper: true\r\n})));\r\nexport var SelectBoxPropsType = {\r\n get placeholder() {\r\n return SelectBoxProps.placeholder\r\n },\r\n get hoverStateEnabled() {\r\n return EditorStateProps.hoverStateEnabled\r\n },\r\n get searchEnabled() {\r\n return SelectBoxProps.searchEnabled\r\n },\r\n get defaultValue() {\r\n return SelectBoxProps.defaultValue\r\n },\r\n get readOnly() {\r\n return SelectBoxProps.readOnly\r\n },\r\n get name() {\r\n return SelectBoxProps.name\r\n },\r\n get validationError() {\r\n return SelectBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return SelectBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return SelectBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return SelectBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return SelectBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return SelectBoxProps.isValid\r\n },\r\n get isDirty() {\r\n return SelectBoxProps.isDirty\r\n },\r\n get inputAttr() {\r\n return SelectBoxProps.inputAttr\r\n },\r\n get className() {\r\n return SelectBoxProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorStateProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return SelectBoxProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorStateProps.focusStateEnabled\r\n },\r\n get tabIndex() {\r\n return SelectBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return SelectBoxProps.visible\r\n },\r\n get label() {\r\n return EditorLabelProps.label\r\n },\r\n get labelMode() {\r\n return EditorLabelProps.labelMode\r\n },\r\n isReactComponentWrapper: true\r\n};\r\nexport class SelectBox extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n }\r\n }\r\n get componentProps() {\r\n return _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nSelectBox.defaultProps = SelectBoxPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/small.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"inputAttr\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"parentRef\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n SelectBox\r\n} from \"../../editors/drop_down_editors/select_box\";\r\nimport {\r\n calculateValuesFittedWidth\r\n} from \"../utils/calculate_values_fitted_width\";\r\nimport {\r\n getElementMinWidth\r\n} from \"../utils/get_element_width\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n inputAttr: inputAttr,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes\r\n },\r\n width: width\r\n } = _ref;\r\n return createComponentVNode(2, SelectBox, {\r\n displayExpr: \"text\",\r\n valueExpr: \"value\",\r\n dataSource: pageSizes,\r\n value: pageSize,\r\n valueChange: pageSizeChange,\r\n width: width,\r\n inputAttr: inputAttr\r\n })\r\n};\r\nexport var PageSizeSmallProps = {\r\n inputAttr: Object.freeze({\r\n \"aria-label\": messageLocalization.format(\"dxPager-ariaPageSize\")\r\n })\r\n};\r\nvar PageSizeSmallPropsType = {\r\n get pageSize() {\r\n return InternalPagerProps.pageSize\r\n },\r\n get inputAttr() {\r\n return PageSizeSmallProps.inputAttr\r\n }\r\n};\r\nexport class PageSizeSmall extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n minWidth: 10\r\n };\r\n this.updateWidth = this.updateWidth.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateWidth, [this.props, this.state.minWidth, this.props.pageSize, this.props.pageSizeChange, this.props.pageSizes, this.props.inputAttr])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props, this.state.minWidth, this.props.pageSize, this.props.pageSizeChange, this.props.pageSizes, this.props.inputAttr])\r\n }\r\n updateWidth() {\r\n this.setState(__state_argument => ({\r\n minWidth: getElementMinWidth(this.props.parentRef.current) || __state_argument.minWidth\r\n }))\r\n }\r\n get width() {\r\n return calculateValuesFittedWidth(this.state.minWidth, this.props.pageSizes.map(p => p.value))\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n width: this.width,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeSmall.defaultProps = PageSizeSmallPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/large.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"pageSize\", \"pageSizeChange\", \"pageSizes\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n PAGER_SELECTED_PAGE_SIZE_CLASS,\r\n PAGER_PAGE_SIZE_CLASS,\r\n FIRST_CHILD_CLASS\r\n} from \"../common/consts\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pageSizesText: pageSizesText\r\n } = _ref;\r\n return createFragment(pageSizesText.map(_ref2 => {\r\n var {\r\n className: className,\r\n click: click,\r\n label: label,\r\n text: text\r\n } = _ref2;\r\n return createComponentVNode(2, LightButton, {\r\n className: className,\r\n label: label,\r\n onClick: click,\r\n children: text\r\n }, text)\r\n }), 0)\r\n};\r\nexport var PageSizeLargeProps = {};\r\nvar PageSizeLargePropsType = {\r\n get pageSize() {\r\n return InternalPagerProps.pageSize\r\n }\r\n};\r\nexport class PageSizeLarge extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.onPageSizeChange = this.onPageSizeChange.bind(this)\r\n }\r\n get pageSizesText() {\r\n if (void 0 !== this.__getterCache.pageSizesText) {\r\n return this.__getterCache.pageSizesText\r\n }\r\n return this.__getterCache.pageSizesText = (() => {\r\n var {\r\n pageSize: pageSize,\r\n pageSizes: pageSizes\r\n } = this.props;\r\n return pageSizes.map((_ref3, index) => {\r\n var {\r\n text: text,\r\n value: processedPageSize\r\n } = _ref3;\r\n var selected = processedPageSize === pageSize;\r\n var className = combineClasses({\r\n [selected ? PAGER_SELECTED_PAGE_SIZE_CLASS : PAGER_PAGE_SIZE_CLASS]: true,\r\n [FIRST_CHILD_CLASS]: 0 === index\r\n });\r\n return {\r\n className: className,\r\n click: this.onPageSizeChange(processedPageSize),\r\n label: format(messageLocalization.getFormatter(\"dxPager-pageSize\"), processedPageSize || messageLocalization.getFormatter(\"dxPager-pageSizesAllText\")),\r\n text: text\r\n }\r\n })\r\n })()\r\n }\r\n onPageSizeChange(processedPageSize) {\r\n return () => {\r\n this.props.pageSizeChange(processedPageSize);\r\n return this.props.pageSize\r\n }\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.pageSize !== nextProps.pageSize || this.props.pageSizes !== nextProps.pageSizes || this.props.pageSizeChange !== nextProps.pageSizeChange) {\r\n this.__getterCache.pageSizesText = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n pageSizesText: this.pageSizesText,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeLarge.defaultProps = PageSizeLargePropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/selector.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isLargeDisplayMode\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"rootElementRef\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n PageSizeSmall\r\n} from \"./small\";\r\nimport {\r\n PageSizeLarge\r\n} from \"./large\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n PAGER_PAGE_SIZES_CLASS\r\n} from \"../common/consts\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n htmlRef: htmlRef,\r\n normalizedPageSizes: normalizedPageSizes,\r\n props: {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n }\r\n } = _ref;\r\n return createVNode(1, \"div\", PAGER_PAGE_SIZES_CLASS, [isLargeDisplayMode && createComponentVNode(2, PageSizeLarge, {\r\n pageSizes: normalizedPageSizes,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n }), !isLargeDisplayMode && createComponentVNode(2, PageSizeSmall, {\r\n parentRef: htmlRef,\r\n pageSizes: normalizedPageSizes,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n })], 0, null, null, htmlRef)\r\n};\r\n\r\nfunction getAllText() {\r\n return messageLocalization.getFormatter(\"dxPager-pageSizesAllText\")()\r\n}\r\nvar PageSizeSelectorProps = {\r\n isLargeDisplayMode: true\r\n};\r\nvar PageSizeSelectorPropsType = {\r\n get pageSize() {\r\n return InternalPagerProps.pageSize\r\n },\r\n get pageSizes() {\r\n return InternalPagerProps.pageSizes\r\n },\r\n get isLargeDisplayMode() {\r\n return PageSizeSelectorProps.isLargeDisplayMode\r\n }\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PageSizeSelector extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.htmlRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.setRootElementRef = this.setRootElementRef.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, [])]\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.htmlRef.current\r\n }\r\n }\r\n get normalizedPageSizes() {\r\n if (void 0 !== this.__getterCache.normalizedPageSizes) {\r\n return this.__getterCache.normalizedPageSizes\r\n }\r\n return this.__getterCache.normalizedPageSizes = (() => {\r\n var {\r\n pageSizes: pageSizes\r\n } = this.props;\r\n return pageSizes.map(p => \"all\" === p || 0 === p ? {\r\n text: getAllText(),\r\n value: 0\r\n } : {\r\n text: String(p),\r\n value: p\r\n })\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.pageSizes !== nextProps.pageSizes) {\r\n this.__getterCache.normalizedPageSizes = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n htmlRef: this.htmlRef,\r\n normalizedPageSizes: this.normalizedPageSizes,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeSelector.defaultProps = PageSizeSelectorPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/content.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"displayMode\", \"gridCompatibility\", \"hasKnownLastPage\", \"infoText\", \"infoTextRef\", \"infoTextVisible\", \"isLargeDisplayMode\", \"label\", \"lightModeEnabled\", \"maxPagesCount\", \"onKeyDown\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"pageSizesRef\", \"pagesCountText\", \"pagesNavigatorVisible\", \"pagesRef\", \"rootElementRef\", \"rtlEnabled\", \"showInfo\", \"showNavigationButtons\", \"showPageSizes\", \"totalCount\", \"visible\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n InfoText\r\n} from \"./info\";\r\nimport {\r\n PageIndexSelector\r\n} from \"./pages/page_index_selector\";\r\nimport {\r\n PageSizeSelector\r\n} from \"./page_size/selector\";\r\nimport {\r\n PAGER_PAGES_CLASS,\r\n PAGER_PAGE_INDEXES_CLASS,\r\n LIGHT_MODE_CLASS,\r\n PAGER_CLASS\r\n} from \"./common/consts\";\r\nimport {\r\n InternalPagerProps\r\n} from \"./common/pager_props\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n Widget\r\n} from \"../common/widget\";\r\nimport {\r\n registerKeyboardAction as _registerKeyboardAction\r\n} from \"../../../ui/shared/accessibility\";\r\nimport {\r\n KeyboardActionContext\r\n} from \"./common/keyboard_action_context\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n aria: aria,\r\n classes: classes,\r\n infoVisible: infoVisible,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageIndexSelectorVisible: pageIndexSelectorVisible,\r\n pagesContainerVisibility: pagesContainerVisibility,\r\n pagesContainerVisible: pagesContainerVisible,\r\n props: {\r\n hasKnownLastPage: hasKnownLastPage,\r\n infoText: infoText,\r\n infoTextRef: infoTextRef,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes,\r\n pageSizesRef: pageSizesRef,\r\n pagesCountText: pagesCountText,\r\n pagesRef: pagesRef,\r\n rtlEnabled: rtlEnabled,\r\n showNavigationButtons: showNavigationButtons,\r\n showPageSizes: showPageSizes,\r\n totalCount: totalCount,\r\n visible: visible\r\n },\r\n restAttributes: restAttributes,\r\n widgetRootElementRef: widgetRootElementRef\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n rootElementRef: widgetRootElementRef,\r\n rtlEnabled: rtlEnabled,\r\n classes: classes,\r\n visible: visible,\r\n aria: aria\r\n }, restAttributes, {\r\n children: [showPageSizes && createComponentVNode(2, PageSizeSelector, {\r\n rootElementRef: pageSizesRef,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes\r\n }), pagesContainerVisible && createVNode(1, \"div\", PAGER_PAGES_CLASS, [infoVisible && createComponentVNode(2, InfoText, {\r\n rootElementRef: infoTextRef,\r\n infoText: infoText,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n totalCount: totalCount\r\n }), pageIndexSelectorVisible && createVNode(1, \"div\", PAGER_PAGE_INDEXES_CLASS, createComponentVNode(2, PageIndexSelector, {\r\n hasKnownLastPage: hasKnownLastPage,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pagesCountText: pagesCountText,\r\n showNavigationButtons: showNavigationButtons,\r\n totalCount: totalCount\r\n }), 2, null, null, pagesRef)], 0, {\r\n style: normalizeStyles({\r\n visibility: pagesContainerVisibility\r\n })\r\n })]\r\n })))\r\n};\r\nexport var PagerContentProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(InternalPagerProps), Object.getOwnPropertyDescriptors({\r\n infoTextVisible: true,\r\n isLargeDisplayMode: true\r\n})));\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PagerContent extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRootElementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.createFakeInstance = this.createFakeInstance.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, [])]\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n [KeyboardActionContext.id]: this.keyboardAction || KeyboardActionContext.defaultValue\r\n })\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetRootElementRef.current\r\n }\r\n }\r\n createFakeInstance() {\r\n return {\r\n option: () => false,\r\n element: () => this.widgetRootElementRef.current,\r\n _createActionByOption: () => e => {\r\n var _this$props$onKeyDown, _this$props;\r\n null === (_this$props$onKeyDown = (_this$props = this.props).onKeyDown) || void 0 === _this$props$onKeyDown ? void 0 : _this$props$onKeyDown.call(_this$props, e)\r\n }\r\n }\r\n }\r\n get keyboardAction() {\r\n if (void 0 !== this.__getterCache.keyboardAction) {\r\n return this.__getterCache.keyboardAction\r\n }\r\n return this.__getterCache.keyboardAction = (() => ({\r\n registerKeyboardAction: (element, action) => {\r\n var fakePagerInstance = this.createFakeInstance();\r\n return _registerKeyboardAction(\"pager\", fakePagerInstance, element, void 0, action)\r\n }\r\n }))()\r\n }\r\n get infoVisible() {\r\n var {\r\n infoTextVisible: infoTextVisible,\r\n showInfo: showInfo\r\n } = this.props;\r\n return showInfo && infoTextVisible\r\n }\r\n get pageIndexSelectorVisible() {\r\n return 0 !== this.props.pageSize\r\n }\r\n get normalizedDisplayMode() {\r\n var {\r\n displayMode: displayMode,\r\n lightModeEnabled: lightModeEnabled\r\n } = this.props;\r\n if (\"adaptive\" === displayMode && void 0 !== lightModeEnabled) {\r\n return lightModeEnabled ? \"compact\" : \"full\"\r\n }\r\n return displayMode\r\n }\r\n get pagesContainerVisible() {\r\n return !!this.props.pagesNavigatorVisible && this.props.pageCount > 0\r\n }\r\n get pagesContainerVisibility() {\r\n if (\"auto\" === this.props.pagesNavigatorVisible && 1 === this.props.pageCount && this.props.hasKnownLastPage) {\r\n return \"hidden\"\r\n }\r\n return\r\n }\r\n get isLargeDisplayMode() {\r\n var displayMode = this.normalizedDisplayMode;\r\n var result = false;\r\n if (\"adaptive\" === displayMode) {\r\n result = this.props.isLargeDisplayMode\r\n } else {\r\n result = \"full\" === displayMode\r\n }\r\n return result\r\n }\r\n get classes() {\r\n var classesMap = {\r\n [\"\".concat(this.props.className)]: !!this.props.className,\r\n [PAGER_CLASS]: true,\r\n [LIGHT_MODE_CLASS]: !this.isLargeDisplayMode\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get aria() {\r\n return {\r\n role: \"navigation\",\r\n label: this.props.label\r\n }\r\n }\r\n get restAttributes() {\r\n var _this$props2 = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props2, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.onKeyDown !== nextProps.onKeyDown) {\r\n this.__getterCache.keyboardAction = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRootElementRef: this.widgetRootElementRef,\r\n keyboardAction: this.keyboardAction,\r\n infoVisible: this.infoVisible,\r\n pageIndexSelectorVisible: this.pageIndexSelectorVisible,\r\n pagesContainerVisible: this.pagesContainerVisible,\r\n pagesContainerVisibility: this.pagesContainerVisibility,\r\n isLargeDisplayMode: this.isLargeDisplayMode,\r\n classes: this.classes,\r\n aria: this.aria,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagerContent.defaultProps = PagerContentProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"defaultPageIndex\", \"defaultPageSize\", \"displayMode\", \"gridCompatibility\", \"hasKnownLastPage\", \"infoText\", \"label\", \"lightModeEnabled\", \"maxPagesCount\", \"onKeyDown\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"pagesCountText\", \"pagesNavigatorVisible\", \"rtlEnabled\", \"showInfo\", \"showNavigationButtons\", \"showPageSizes\", \"totalCount\", \"visible\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ResizableContainer\r\n} from \"./resizable_container\";\r\nimport {\r\n PagerProps\r\n} from \"./common/pager_props\";\r\nimport {\r\n PagerContent\r\n} from \"./content\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pagerProps: pagerProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, ResizableContainer, _extends({\r\n contentTemplate: PagerContent,\r\n pagerProps: pagerProps\r\n }, restAttributes)))\r\n};\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nexport class Pager extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.__getterCache = {};\r\n this.state = {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.props.defaultPageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.props.defaultPageIndex\r\n };\r\n this.pageIndexChange = this.pageIndexChange.bind(this);\r\n this.pageSizeChange = this.pageSizeChange.bind(this)\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n pageIndexChange(newPageIndex) {\r\n if (this.props.gridCompatibility) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = newPageIndex + 1;\r\n return {\r\n pageIndex: __newValue\r\n }\r\n });\r\n this.props.pageIndexChange(__newValue)\r\n } else {\r\n var _newValue;\r\n this.setState(__state_argument => {\r\n _newValue = newPageIndex;\r\n return {\r\n pageIndex: _newValue\r\n }\r\n });\r\n this.props.pageIndexChange(_newValue)\r\n }\r\n }\r\n get pageIndex() {\r\n if (this.props.gridCompatibility) {\r\n return (void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex) - 1\r\n }\r\n return void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }\r\n pageSizeChange(newPageSize) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = newPageSize;\r\n return {\r\n pageSize: __newValue\r\n }\r\n });\r\n this.props.pageSizeChange(__newValue)\r\n }\r\n get className() {\r\n if (this.props.gridCompatibility) {\r\n return combineClasses({\r\n \"dx-datagrid-pager\": true,\r\n [\"\".concat(this.props.className)]: !!this.props.className\r\n })\r\n }\r\n return this.props.className\r\n }\r\n get pagerProps() {\r\n if (void 0 !== this.__getterCache.pagerProps) {\r\n return this.__getterCache.pagerProps\r\n }\r\n return this.__getterCache.pagerProps = (() => _extends({}, _extends({}, this.props, {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.state.pageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }), {\r\n className: this.className,\r\n pageIndex: this.pageIndex,\r\n pageIndexChange: pageIndex => this.pageIndexChange(pageIndex),\r\n pageSizeChange: pageSize => this.pageSizeChange(pageSize)\r\n }))()\r\n }\r\n get restAttributes() {\r\n var _this$props$pageSize$ = _extends({}, this.props, {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.state.pageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageSize$, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props !== nextProps || this.props.gridCompatibility !== nextProps.gridCompatibility || this.props.className !== nextProps.className || this.state.pageIndex !== nextState.pageIndex || this.props.pageIndex !== nextProps.pageIndex || this.props.pageIndexChange !== nextProps.pageIndexChange || this.props.pageSizeChange !== nextProps.pageSizeChange) {\r\n this.__getterCache.pagerProps = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.state.pageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }),\r\n pageIndexChange: this.pageIndexChange,\r\n pageIndex: this.pageIndex,\r\n pageSizeChange: this.pageSizeChange,\r\n className: this.className,\r\n pagerProps: this.pagerProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPager.defaultProps = PagerProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pager.j.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n GridPagerWrapper\r\n} from \"../../component_wrapper/grid_pager\";\r\nimport {\r\n Pager as PagerComponent\r\n} from \"./pager\";\r\nexport default class Pager extends GridPagerWrapper {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [\r\n [\"pageSize\", \"defaultPageSize\", \"pageSizeChange\"],\r\n [\"pageIndex\", \"defaultPageIndex\", \"pageIndexChange\"]\r\n ],\r\n allowNull: [],\r\n elements: [],\r\n templates: [],\r\n props: [\"defaultPageSize\", \"pageSizeChange\", \"defaultPageIndex\", \"pageIndexChange\", \"gridCompatibility\", \"className\", \"showInfo\", \"infoText\", \"lightModeEnabled\", \"displayMode\", \"maxPagesCount\", \"pageCount\", \"pagesCountText\", \"visible\", \"hasKnownLastPage\", \"pagesNavigatorVisible\", \"showPageSizes\", \"pageSizes\", \"rtlEnabled\", \"showNavigationButtons\", \"totalCount\", \"label\", \"onKeyDown\", \"pageSize\", \"pageIndex\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return PagerComponent\r\n }\r\n}\r\nregisterComponent(\"dxPager\", Pager);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/pager/m_pager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Pager from \"../../../../ui/pager\";\r\nimport modules from \"../m_modules\";\r\nvar PAGER_CLASS = \"pager\";\r\nvar MAX_PAGES_COUNT = 10;\r\nvar getPageIndex = function(dataController) {\r\n return 1 + (parseInt(dataController.pageIndex()) || 0)\r\n};\r\nexport class PagerView extends modules.View {\r\n init() {\r\n var dataController = this.getController(\"data\");\r\n dataController.changed.add(e => {\r\n if (e && e.repaintChangesOnly) {\r\n var pager = this._pager;\r\n if (pager) {\r\n pager.option({\r\n pageIndex: getPageIndex(dataController),\r\n pageSize: dataController.pageSize(),\r\n pageCount: dataController.pageCount(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage()\r\n })\r\n } else {\r\n this.render()\r\n }\r\n } else if (!e || \"update\" !== e.changeType && \"updateSelection\" !== e.changeType && \"updateFocusedRow\" !== e.changeType) {\r\n this._pager = null;\r\n this.render()\r\n }\r\n })\r\n }\r\n dispose() {\r\n this._pager = null\r\n }\r\n optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n var isPager = \"pager\" === name;\r\n var isPaging = \"paging\" === name;\r\n var isDataSource = \"dataSource\" === name;\r\n var isScrolling = \"scrolling\" === name;\r\n var dataController = this.getController(\"data\");\r\n if (isPager || isPaging || isScrolling || isDataSource) {\r\n args.handled = true;\r\n if (dataController.skipProcessingPagingChange(args.fullName)) {\r\n return\r\n }\r\n if (isPager || isPaging) {\r\n this._pageSizes = null\r\n }\r\n if (!isDataSource) {\r\n this._pager = null;\r\n this._invalidate();\r\n if (hasWindow() && isPager && this.component) {\r\n this.component.resize()\r\n }\r\n }\r\n }\r\n }\r\n _renderCore() {\r\n var _a;\r\n var $element = this.element().addClass(this.addWidgetPrefix(PAGER_CLASS));\r\n var pagerOptions = null !== (_a = this.option(\"pager\")) && void 0 !== _a ? _a : {};\r\n var dataController = this.getController(\"data\");\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var options = {\r\n maxPagesCount: MAX_PAGES_COUNT,\r\n pageIndex: getPageIndex(dataController),\r\n pageCount: dataController.pageCount(),\r\n pageSize: dataController.pageSize(),\r\n showPageSizes: pagerOptions.showPageSizeSelector,\r\n showInfo: pagerOptions.showInfo,\r\n displayMode: pagerOptions.displayMode,\r\n pagesNavigatorVisible: pagerOptions.visible,\r\n showNavigationButtons: pagerOptions.showNavigationButtons,\r\n label: pagerOptions.label,\r\n pageSizes: this.getPageSizes(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage(),\r\n pageIndexChanged(pageIndex) {\r\n if (dataController.pageIndex() !== pageIndex - 1) {\r\n dataController.pageIndex(pageIndex - 1)\r\n }\r\n },\r\n pageSizeChanged(pageSize) {\r\n dataController.pageSize(pageSize)\r\n },\r\n onKeyDown: e => keyboardController && keyboardController.executeAction(\"onKeyDown\", e),\r\n useLegacyKeyboardNavigation: this.option(\"useLegacyKeyboardNavigation\"),\r\n useKeyboard: this.option(\"keyboardNavigation.enabled\")\r\n };\r\n if (isDefined(pagerOptions.infoText)) {\r\n options.infoText = pagerOptions.infoText\r\n }\r\n if (this._pager) {\r\n this._pager.repaint();\r\n return\r\n }\r\n if (hasWindow()) {\r\n this._pager = this._createComponent($element, Pager, options)\r\n } else {\r\n $element.addClass(\"dx-pager\").html('<div class=\"dx-pages\"><div class=\"dx-page\"></div></div>')\r\n }\r\n }\r\n getPager() {\r\n return this._pager\r\n }\r\n getPageSizes() {\r\n var dataController = this.getController(\"data\");\r\n var pagerOptions = this.option(\"pager\");\r\n var allowedPageSizes = pagerOptions && pagerOptions.allowedPageSizes;\r\n var pageSize = dataController.pageSize();\r\n if (!isDefined(this._pageSizes) || !this._pageSizes.includes(pageSize)) {\r\n this._pageSizes = [];\r\n if (pagerOptions) {\r\n if (Array.isArray(allowedPageSizes)) {\r\n this._pageSizes = allowedPageSizes\r\n } else if (allowedPageSizes && pageSize > 1) {\r\n this._pageSizes = [Math.floor(pageSize / 2), pageSize, 2 * pageSize]\r\n }\r\n }\r\n }\r\n return this._pageSizes\r\n }\r\n isVisible() {\r\n var dataController = this.getController(\"data\");\r\n var pagerOptions = this.option(\"pager\");\r\n var pagerVisible = pagerOptions && pagerOptions.visible;\r\n var scrolling = this.option(\"scrolling\");\r\n if (\"auto\" === pagerVisible) {\r\n if (scrolling && (\"virtual\" === scrolling.mode || \"infinite\" === scrolling.mode)) {\r\n pagerVisible = false\r\n } else {\r\n pagerVisible = dataController.pageCount() > 1 || dataController.isLoaded() && !dataController.hasKnownLastPage()\r\n }\r\n }\r\n return !!pagerVisible\r\n }\r\n getHeight() {\r\n return this.getElementHeight()\r\n }\r\n}\r\nexport var pagerModule = {\r\n defaultOptions: () => ({\r\n pager: {\r\n visible: \"auto\",\r\n showPageSizeSelector: false,\r\n allowedPageSizes: \"auto\",\r\n label: messageLocalization.format(\"dxPager-ariaLabel\")\r\n }\r\n }),\r\n views: {\r\n pagerView: PagerView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/pager.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n pagerModule\r\n} from \"../../../grids/grid_core/pager/m_pager\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"pager\", pagerModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../../animation/fx\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getWidth,\r\n setHeight,\r\n setWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n end as dragEventEnd,\r\n move as dragEventMove,\r\n start as dragEventStart\r\n} from \"../../../../events/drag\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n eventData as getEventData,\r\n isTouchEvent\r\n} from \"../../../../events/utils/index\";\r\nimport swatchContainer from \"../../../../ui/widget/swatch_container\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar COLUMNS_SEPARATOR_CLASS = \"columns-separator\";\r\nvar COLUMNS_SEPARATOR_TRANSPARENT = \"columns-separator-transparent\";\r\nvar DRAGGING_HEADER_CLASS = \"drag-header\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_DRAG_ACTION_CLASS = \"drag-action\";\r\nvar TRACKER_CLASS = \"tracker\";\r\nvar HEADERS_DROP_HIGHLIGHT_CLASS = \"drop-highlight\";\r\nvar BLOCK_SEPARATOR_CLASS = \"dx-block-separator\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar DRAGGING_COMMAND_CELL_CLASS = \"dx-drag-command-cell\";\r\nvar MODULE_NAMESPACE = \"dxDataGridResizingReordering\";\r\nvar COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH = 10;\r\nvar DRAGGING_DELTA = 5;\r\nvar COLUMN_OPACITY = .5;\r\nvar allowResizing = function(that) {\r\n return that.option(\"allowColumnResizing\") || that.getController(\"columns\").isColumnOptionUsed(\"allowResizing\")\r\n};\r\nvar allowReordering = function(that) {\r\n return that.option(\"allowColumnReordering\") || that.getController(\"columns\").isColumnOptionUsed(\"allowReordering\")\r\n};\r\nexport class TrackerView extends modules.View {\r\n init() {\r\n super.init();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._subscribeToCallback()\r\n }\r\n dispose() {\r\n this._unsubscribeFromCallback();\r\n super.dispose()\r\n }\r\n optionChanged(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n this._unsubscribeFromCallback();\r\n if (args.value) {\r\n this._subscribeToCallback();\r\n this._invalidate()\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n _renderCore() {\r\n var deferred = super._renderCore();\r\n this.element().addClass(this.addWidgetPrefix(TRACKER_CLASS));\r\n this.hide();\r\n return deferred\r\n }\r\n _unsubscribeFromCallback() {\r\n if (this._positionChanged) {\r\n this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n }\r\n }\r\n _subscribeToCallback() {\r\n var that = this;\r\n that._positionChanged = function(position) {\r\n var $element = that.element();\r\n if ($element && $element.hasClass(that.addWidgetPrefix(TRACKER_CLASS))) {\r\n $element.css({\r\n top: position.top\r\n });\r\n setHeight($element, position.height)\r\n }\r\n };\r\n this._tablePositionController.positionChanged.add(that._positionChanged)\r\n }\r\n isVisible() {\r\n return allowResizing(this)\r\n }\r\n show() {\r\n this.element().show()\r\n }\r\n hide() {\r\n this.element() && this.element().hide()\r\n }\r\n setHeight(value) {\r\n setHeight(this.element(), value)\r\n }\r\n}\r\nexport class SeparatorView extends modules.View {\r\n _renderSeparator() {}\r\n _renderCore(options) {\r\n var deferred = super._renderCore(options);\r\n this._isShown = true;\r\n this._renderSeparator();\r\n this.hide();\r\n return deferred\r\n }\r\n show() {\r\n this._isShown = true\r\n }\r\n hide() {\r\n this._isShown = false\r\n }\r\n height(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if (isDefined(value)) {\r\n setHeight($element, value)\r\n } else {\r\n return getHeight($element)\r\n }\r\n }\r\n }\r\n width(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if (isDefined(value)) {\r\n setWidth($element, value)\r\n } else {\r\n return getWidth($element)\r\n }\r\n }\r\n }\r\n}\r\nexport class ColumnsSeparatorView extends SeparatorView {\r\n init() {\r\n super.init();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._init()\r\n }\r\n dispose() {\r\n this._unsubscribeFromCallback();\r\n super.dispose()\r\n }\r\n optionChanged(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._invalidate();\r\n this.hide(true)\r\n } else {\r\n this._unsubscribeFromCallback();\r\n this._isTransparent = allowResizing(this);\r\n this.hide(true)\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n _renderSeparator() {\r\n super._renderSeparator();\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_CLASS))\r\n }\r\n _subscribeToCallback() {\r\n var that = this;\r\n var $element;\r\n that._positionChanged = function(position) {\r\n $element = that.element();\r\n if ($element) {\r\n $element.css({\r\n top: position.top\r\n });\r\n setHeight($element, position.height)\r\n }\r\n };\r\n that._tablePositionController.positionChanged.add(that._positionChanged)\r\n }\r\n _unsubscribeFromCallback() {\r\n this._positionChanged && this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n }\r\n _init() {\r\n this._isTransparent = allowResizing(this);\r\n if (this.isVisible()) {\r\n this._subscribeToCallback()\r\n }\r\n }\r\n isVisible() {\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || allowResizing(this))\r\n }\r\n show() {\r\n var $element = this.element();\r\n if ($element && !this._isShown) {\r\n if (this._isTransparent) {\r\n $element.removeClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT))\r\n } else {\r\n $element.show()\r\n }\r\n }\r\n super.show()\r\n }\r\n hide(force) {\r\n var $element = this.element();\r\n var columnsSeparatorTransparent = this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT);\r\n if ($element && (this._isShown || force)) {\r\n if (this._isTransparent) {\r\n $element.addClass(columnsSeparatorTransparent);\r\n $element.css(\"left\", \"\");\r\n $element.show()\r\n } else {\r\n if ($element.hasClass(columnsSeparatorTransparent)) {\r\n $element.removeClass(columnsSeparatorTransparent)\r\n }\r\n $element.hide()\r\n }\r\n }\r\n super.hide()\r\n }\r\n moveByX(outerX) {\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"left\", null === outerX ? 0 : outerX - this._parentElement().offset().left)\r\n }\r\n }\r\n changeCursor(cursorName) {\r\n cursorName = isDefined(cursorName) ? cursorName : \"\";\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"cursor\", cursorName)\r\n }\r\n }\r\n}\r\nexport class BlockSeparatorView extends SeparatorView {\r\n init() {\r\n super.init();\r\n var dataController = this.getController(\"data\");\r\n dataController.loadingChanged.add(isLoading => {\r\n if (!isLoading) {\r\n this.hide()\r\n }\r\n })\r\n }\r\n _renderSeparator() {\r\n super._renderSeparator();\r\n this.element().addClass(BLOCK_SEPARATOR_CLASS).html(\" \")\r\n }\r\n hide() {\r\n var $parent = this._parentElement();\r\n var $element = this.element();\r\n if ($element && this._isShown) {\r\n $element.css(\"display\", \"none\")\r\n }\r\n if ($parent && !$parent.children(\".\".concat(BLOCK_SEPARATOR_CLASS)).length) {\r\n $parent.prepend(this.element())\r\n }\r\n super.hide()\r\n }\r\n isVisible() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return groupPanelOptions && groupPanelOptions.visible || columnChooserOptions && columnChooserOptions.enabled\r\n }\r\n show(targetLocation) {\r\n var $element = this.element();\r\n if ($element && !this._isShown) {\r\n switch (targetLocation) {\r\n case \"group\":\r\n this.element().css(\"display\", \"block\");\r\n break;\r\n case \"columnChooser\":\r\n ! function(toOptions) {\r\n fx.stop($element, true);\r\n fx.animate($element, {\r\n type: \"slide\",\r\n from: {\r\n width: 0,\r\n display: toOptions.display\r\n },\r\n to: toOptions,\r\n duration: 300,\r\n easing: \"swing\"\r\n })\r\n }({\r\n width: \"100%\",\r\n display: \"block\"\r\n });\r\n break;\r\n default:\r\n $element.css(\"display\", \"\")\r\n }\r\n }\r\n super.show()\r\n }\r\n}\r\nexport class DraggingHeaderView extends modules.View {\r\n init() {\r\n super.init();\r\n var dataController = this.getController(\"data\");\r\n this._controller = this.getController(\"draggingHeader\");\r\n this._columnsResizerViewController = this.getController(\"columnsResizer\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._isDragging = false;\r\n dataController.loadingChanged.add(isLoading => {\r\n var element = this.element();\r\n if (!isLoading && element) {\r\n element.hide()\r\n }\r\n })\r\n }\r\n isDragging() {\r\n return this._isDragging\r\n }\r\n _getDraggingPanelByPos(pos) {\r\n var result;\r\n each(this._dragOptions.draggingPanels, (index, draggingPanel) => {\r\n if (draggingPanel) {\r\n var boundingRect = draggingPanel.getBoundingRect();\r\n if (boundingRect && (void 0 === boundingRect.bottom || pos.y < boundingRect.bottom) && (void 0 === boundingRect.top || pos.y > boundingRect.top) && (void 0 === boundingRect.left || pos.x > boundingRect.left) && (void 0 === boundingRect.right || pos.x < boundingRect.right)) {\r\n result = draggingPanel;\r\n return false\r\n }\r\n }\r\n return\r\n });\r\n return result\r\n }\r\n _renderCore() {\r\n this.element().addClass(\"\".concat(this.addWidgetPrefix(DRAGGING_HEADER_CLASS), \" \").concat(this.addWidgetPrefix(CELL_CONTENT_CLASS), \" \").concat(WIDGET_CLASS)).hide()\r\n }\r\n _resetTargetColumnOptions() {\r\n var params = this._dropOptions;\r\n params.targetColumnIndex = -1;\r\n delete params.targetColumnElement;\r\n delete params.isLast;\r\n delete params.posX;\r\n delete params.posY\r\n }\r\n _getVisibleIndexObject(rowIndex, visibleIndex) {\r\n if (isDefined(rowIndex)) {\r\n return {\r\n columnIndex: visibleIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n return visibleIndex\r\n }\r\n dispose() {\r\n var element = this.element();\r\n this._dragOptions = null;\r\n element && element.parent().find(\".\".concat(this.addWidgetPrefix(DRAGGING_HEADER_CLASS))).remove()\r\n }\r\n isVisible() {\r\n var commonColumnSettings = this._columnsController.getCommonSettings();\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || commonColumnSettings.allowGrouping || commonColumnSettings.allowHiding)\r\n }\r\n dragHeader(options) {\r\n var {\r\n columnElement: columnElement\r\n } = options;\r\n var isCommandColumn = !!options.sourceColumn.type;\r\n this._isDragging = true;\r\n this._dragOptions = options;\r\n this._dropOptions = {\r\n sourceIndex: options.index,\r\n sourceColumnIndex: this._getVisibleIndexObject(options.rowIndex, options.columnIndex),\r\n sourceColumnElement: options.columnElement,\r\n sourceLocation: options.sourceLocation\r\n };\r\n var document = domAdapter.getDocument();\r\n this._onSelectStart = document.onselectstart;\r\n document.onselectstart = function() {\r\n return false\r\n };\r\n this._controller.drag(this._dropOptions);\r\n this.element().css({\r\n textAlign: columnElement && columnElement.css(\"textAlign\"),\r\n height: columnElement && (isCommandColumn && columnElement.get(0).clientHeight || getHeight(columnElement)),\r\n width: columnElement && (isCommandColumn && columnElement.get(0).clientWidth || getWidth(columnElement)),\r\n whiteSpace: columnElement && columnElement.css(\"whiteSpace\")\r\n }).addClass(this.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS)).toggleClass(DRAGGING_COMMAND_CELL_CLASS, isCommandColumn).text(isCommandColumn ? \"\" : options.sourceColumn.caption);\r\n this.element().appendTo(swatchContainer.getSwatchContainer(columnElement))\r\n }\r\n moveHeader(args) {\r\n var e = args.event;\r\n var {\r\n that: that\r\n } = e.data;\r\n var eventData = getEventData(e);\r\n var isResizing = that._columnsResizerViewController ? that._columnsResizerViewController.isResizing() : false;\r\n var dragOptions = that._dragOptions;\r\n if (that._isDragging && !isResizing) {\r\n var $element = that.element();\r\n var moveDeltaX = Math.abs(eventData.x - dragOptions.columnElement.offset().left - dragOptions.deltaX);\r\n var moveDeltaY = Math.abs(eventData.y - dragOptions.columnElement.offset().top - dragOptions.deltaY);\r\n if ($element.is(\":visible\") || moveDeltaX > DRAGGING_DELTA || moveDeltaY > DRAGGING_DELTA) {\r\n $element.show();\r\n var newLeft = eventData.x - dragOptions.deltaX;\r\n var newTop = eventData.y - dragOptions.deltaY;\r\n $element.css({\r\n left: newLeft,\r\n top: newTop\r\n });\r\n that.dockHeader(eventData)\r\n }\r\n e.preventDefault()\r\n }\r\n }\r\n dockHeader(eventData) {\r\n var targetDraggingPanel = this._getDraggingPanelByPos(eventData);\r\n var controller = this._controller;\r\n var params = this._dropOptions;\r\n var dragOptions = this._dragOptions;\r\n if (targetDraggingPanel) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isVerticalOrientation = \"columnChooser\" === targetDraggingPanel.getName();\r\n var axisName = isVerticalOrientation ? \"y\" : \"x\";\r\n var targetLocation = targetDraggingPanel.getName();\r\n var rowIndex = \"headers\" === targetLocation ? dragOptions.rowIndex : void 0;\r\n var {\r\n sourceColumn: sourceColumn\r\n } = dragOptions;\r\n var columnElements = targetDraggingPanel.getColumnElements(rowIndex, null === sourceColumn || void 0 === sourceColumn ? void 0 : sourceColumn.ownerBand) || [];\r\n var pointsByTarget = dragOptions.pointsByTarget = dragOptions.pointsByTarget || {};\r\n var pointsByColumns = \"columnChooser\" === targetLocation ? [] : pointsByTarget[targetLocation] || controller._generatePointsByColumns(extend({}, dragOptions, {\r\n targetDraggingPanel: targetDraggingPanel,\r\n columns: targetDraggingPanel.getColumns(rowIndex),\r\n columnElements: columnElements,\r\n isVerticalOrientation: isVerticalOrientation,\r\n startColumnIndex: \"headers\" === targetLocation && $(columnElements[0]).index()\r\n }));\r\n pointsByTarget[targetLocation] = pointsByColumns;\r\n params.targetLocation = targetLocation;\r\n if (pointsByColumns.length > 0) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n var centerPosition = pointsByColumns[i + 1] && (pointsByColumns[i][axisName] + pointsByColumns[i + 1][axisName]) / 2;\r\n if (void 0 === centerPosition || (rtlEnabled && \"x\" === axisName ? eventData[axisName] > centerPosition : eventData[axisName] < centerPosition)) {\r\n params.targetColumnIndex = this._getVisibleIndexObject(rowIndex, pointsByColumns[i].columnIndex);\r\n if (columnElements[i]) {\r\n params.targetColumnElement = columnElements.eq(i);\r\n params.isLast = false\r\n } else {\r\n params.targetColumnElement = columnElements.last();\r\n params.isLast = true\r\n }\r\n params.posX = pointsByColumns[i].x;\r\n params.posY = pointsByColumns[i].y;\r\n controller.dock(params);\r\n break\r\n }\r\n }\r\n } else {\r\n this._resetTargetColumnOptions();\r\n controller.dock(params)\r\n }\r\n }\r\n }\r\n dropHeader(args) {\r\n var e = args.event;\r\n var {\r\n that: that\r\n } = e.data;\r\n var controller = that._controller;\r\n that.element().hide();\r\n if (controller && that._isDragging) {\r\n controller.drop(that._dropOptions)\r\n }\r\n that.element().appendTo(that._parentElement());\r\n that._dragOptions = null;\r\n that._dropOptions = null;\r\n that._isDragging = false;\r\n domAdapter.getDocument().onselectstart = that._onSelectStart || null\r\n }\r\n}\r\nvar isNextColumnResizingMode = function(that) {\r\n return \"widget\" !== that.option(\"columnResizingMode\")\r\n};\r\nexport class ColumnsResizerViewController extends modules.ViewController {\r\n init() {\r\n this._subscribesToCallbacks = [];\r\n if (allowResizing(this)) {\r\n this._init()\r\n }\r\n }\r\n dispose() {\r\n this._unsubscribes();\r\n super.dispose()\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._subscribeToEvents()\r\n } else {\r\n this._unsubscribes()\r\n }\r\n }\r\n }\r\n _isHeadersRowArea(posY) {\r\n if (this._columnHeadersView) {\r\n var element = this._columnHeadersView.element();\r\n if (element) {\r\n var offsetTop = element.offset().top;\r\n var headersRowHeight = this._columnHeadersView.getHeadersRowHeight();\r\n return posY >= offsetTop && posY <= offsetTop + headersRowHeight\r\n }\r\n }\r\n return false\r\n }\r\n _isRtlParentStyle() {\r\n var _a;\r\n return this.option(\"rtlEnabled\") && \"rtl\" === (null === (_a = this._$parentContainer) || void 0 === _a ? void 0 : _a.parent().css(\"direction\"))\r\n }\r\n _pointCreated(point, cellsLength, columns) {\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var firstPointColumnIndex = !isNextColumnMode && rtlEnabled && !isRtlParentStyle ? 0 : 1;\r\n if (point.index >= firstPointColumnIndex && point.index < cellsLength + (!isNextColumnMode && (!rtlEnabled || isRtlParentStyle) ? 1 : 0)) {\r\n point.columnIndex -= firstPointColumnIndex;\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumn = columns[point.columnIndex + 1] || {};\r\n return !(isNextColumnMode ? currentColumn.allowResizing && nextColumn.allowResizing : currentColumn.allowResizing)\r\n }\r\n return true\r\n }\r\n _getTargetPoint(pointsByColumns, currentX, deltaX) {\r\n if (pointsByColumns) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n if (pointsByColumns[i].x === pointsByColumns[0].x && pointsByColumns[i + 1] && pointsByColumns[i].x === pointsByColumns[i + 1].x) {\r\n continue\r\n }\r\n if (pointsByColumns[i].x - deltaX <= currentX && currentX <= pointsByColumns[i].x + deltaX) {\r\n return pointsByColumns[i]\r\n }\r\n }\r\n }\r\n return null\r\n }\r\n _moveSeparator(args) {\r\n var _a;\r\n var e = args.event;\r\n var that = e.data;\r\n var columnsSeparatorWidth = that._columnsSeparatorView.width();\r\n var isNextColumnMode = isNextColumnResizingMode(that);\r\n var deltaX = columnsSeparatorWidth / 2;\r\n var parentOffset = that._$parentContainer.offset();\r\n var parentOffsetLeft = parentOffset.left;\r\n var eventData = getEventData(e);\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var isDragging = null === (_a = that._draggingHeaderView) || void 0 === _a ? void 0 : _a.isDragging();\r\n if (that._isResizing && that._resizingInfo) {\r\n if ((parentOffsetLeft <= eventData.x || !isNextColumnMode && isRtlParentStyle) && (!isNextColumnMode || eventData.x <= parentOffsetLeft + getWidth(that._$parentContainer))) {\r\n if (that._updateColumnsWidthIfNeeded(eventData.x)) {\r\n var $cell = that._columnHeadersView.getColumnElements().eq(that._resizingInfo.currentColumnIndex);\r\n var cell = $cell[0];\r\n if (cell) {\r\n var outerWidth = cell.getBoundingClientRect().width;\r\n that._columnsSeparatorView.moveByX($cell.offset().left + ((isNextColumnMode || isRtlParentStyle) && rtlEnabled ? 0 : outerWidth));\r\n that._tablePositionController.update(that._targetPoint.y);\r\n e.preventDefault()\r\n }\r\n }\r\n }\r\n } else if (!isDragging) {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n if (that._previousParentOffset) {\r\n if (that._previousParentOffset.left !== parentOffset.left || that._previousParentOffset.top !== parentOffset.top) {\r\n that.pointsByColumns(null)\r\n }\r\n }\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, columnsSeparatorWidth);\r\n that._previousParentOffset = parentOffset;\r\n that._isReadyResizing = false;\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.changeCursor(\"col-resize\");\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - deltaX);\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._isReadyResizing = true;\r\n e.preventDefault()\r\n } else {\r\n that._columnsSeparatorView.changeCursor();\r\n that._columnsSeparatorView.moveByX(null)\r\n }\r\n } else {\r\n that.pointsByColumns(null);\r\n that._isReadyResizing = false;\r\n that._columnsSeparatorView.changeCursor();\r\n that._columnsSeparatorView.moveByX(null)\r\n }\r\n }\r\n }\r\n _endResizing(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n if (that._isResizing) {\r\n that.pointsByColumns(null);\r\n that._resizingInfo = null;\r\n that._columnsSeparatorView.hide();\r\n that._columnsSeparatorView.changeCursor();\r\n that._trackerView.hide();\r\n that._isReadyResizing = false;\r\n that._isResizing = false\r\n }\r\n }\r\n _getNextColumnIndex(currentColumnIndex) {\r\n return currentColumnIndex + 1\r\n }\r\n _setupResizingInfo(posX) {\r\n var currentColumnIndex = this._targetPoint.columnIndex;\r\n var nextColumnIndex = this._getNextColumnIndex(currentColumnIndex);\r\n var currentHeader = this._columnHeadersView.getHeaderElement(currentColumnIndex);\r\n var nextHeader = this._columnHeadersView.getHeaderElement(nextColumnIndex);\r\n this._resizingInfo = {\r\n startPosX: posX,\r\n currentColumnIndex: currentColumnIndex,\r\n currentColumnWidth: currentHeader && currentHeader.length > 0 ? getBoundingRect(currentHeader[0]).width : 0,\r\n nextColumnIndex: nextColumnIndex,\r\n nextColumnWidth: nextHeader && nextHeader.length > 0 ? getBoundingRect(nextHeader[0]).width : 0\r\n }\r\n }\r\n _startResizing(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n var eventData = getEventData(e);\r\n if (isTouchEvent(e)) {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH);\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - that._columnsSeparatorView.width() / 2);\r\n that._isReadyResizing = true\r\n }\r\n } else {\r\n that._isReadyResizing = false\r\n }\r\n }\r\n if (that._isReadyResizing) {\r\n that._setupResizingInfo(eventData.x);\r\n that._isResizing = true;\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._columnsSeparatorView.show();\r\n that._trackerView.show();\r\n var scrollable = that.component.getScrollable();\r\n if (scrollable && that._isRtlParentStyle()) {\r\n that._scrollRight = getWidth(scrollable.$content()) - getWidth(scrollable.container()) - scrollable.scrollLeft()\r\n }\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n if (this.isResizing()) {\r\n this._editorFactoryController.loseFocus()\r\n }\r\n }\r\n _generatePointsByColumns() {\r\n var that = this;\r\n var columns = that._columnsController ? that._columnsController.getVisibleColumns() : [];\r\n var cells = that._columnHeadersView.getColumnElements();\r\n var pointsByColumns = [];\r\n if (cells && cells.length > 0) {\r\n pointsByColumns = gridCoreUtils.getPointsByColumns(cells, point => that._pointCreated(point, cells.length, columns))\r\n }\r\n that._pointsByColumns = pointsByColumns\r\n }\r\n _unsubscribeFromEvents() {\r\n this._moveSeparatorHandler && eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.move, MODULE_NAMESPACE), this._moveSeparatorHandler);\r\n this._startResizingHandler && eventsEngine.off(this._$parentContainer, addNamespace(pointerEvents.down, MODULE_NAMESPACE), this._startResizingHandler);\r\n if (this._endResizingHandler) {\r\n eventsEngine.off(this._columnsSeparatorView.element(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this._endResizingHandler);\r\n eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this._endResizingHandler)\r\n }\r\n }\r\n _subscribeToEvents() {\r\n this._moveSeparatorHandler = this.createAction(this._moveSeparator);\r\n this._startResizingHandler = this.createAction(this._startResizing);\r\n this._endResizingHandler = this.createAction(this._endResizing);\r\n eventsEngine.on(domAdapter.getDocument(), addNamespace(pointerEvents.move, MODULE_NAMESPACE), this, this._moveSeparatorHandler);\r\n eventsEngine.on(this._$parentContainer, addNamespace(pointerEvents.down, MODULE_NAMESPACE), this, this._startResizingHandler);\r\n eventsEngine.on(this._columnsSeparatorView.element(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this, this._endResizingHandler);\r\n eventsEngine.on(domAdapter.getDocument(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this, this._endResizingHandler)\r\n }\r\n _updateColumnsWidthIfNeeded(posX) {\r\n var deltaX;\r\n var needUpdate;\r\n var contentWidth = this._rowsView.contentWidth();\r\n var resizingInfo = this._resizingInfo;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnsSeparatorWidth = this._columnsSeparatorView.width();\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var adaptColumnWidthByRatio = isNextColumnMode && this.option(\"adaptColumnWidthByRatio\") && !this.option(\"columnAutoWidth\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var column = visibleColumns[resizingInfo.currentColumnIndex];\r\n var nextColumn = visibleColumns[resizingInfo.nextColumnIndex];\r\n\r\n function isPercentWidth(width) {\r\n return isString(width) && width.endsWith(\"%\")\r\n }\r\n\r\n function setColumnWidth(column, columnWidth, contentWidth, adaptColumnWidthByRatio) {\r\n if (column) {\r\n var oldColumnWidth = column.width;\r\n if (oldColumnWidth) {\r\n adaptColumnWidthByRatio = isPercentWidth(oldColumnWidth)\r\n }\r\n if (adaptColumnWidthByRatio) {\r\n columnsController.columnOption(column.index, \"visibleWidth\", columnWidth);\r\n columnsController.columnOption(column.index, \"width\", \"\".concat((columnWidth / contentWidth * 100).toFixed(3), \"%\"))\r\n } else {\r\n columnsController.columnOption(column.index, \"visibleWidth\", null);\r\n columnsController.columnOption(column.index, \"width\", columnWidth)\r\n }\r\n }\r\n }\r\n deltaX = posX - resizingInfo.startPosX;\r\n if ((isNextColumnMode || isRtlParentStyle) && rtlEnabled) {\r\n deltaX = -deltaX\r\n }\r\n var {\r\n cellWidth: cellWidth,\r\n nextCellWidth: nextCellWidth\r\n } = function(delta) {\r\n var nextMinWidth;\r\n var nextCellWidth;\r\n var needCorrectionNextCellWidth;\r\n var cellWidth = resizingInfo.currentColumnWidth + delta;\r\n var minWidth = column && column.minWidth || columnsSeparatorWidth;\r\n var result = {};\r\n if (cellWidth >= minWidth) {\r\n result.cellWidth = cellWidth\r\n } else {\r\n result.cellWidth = minWidth;\r\n needCorrectionNextCellWidth = true\r\n }\r\n if (isNextColumnMode) {\r\n nextCellWidth = resizingInfo.nextColumnWidth - delta;\r\n nextMinWidth = nextColumn && nextColumn.minWidth || columnsSeparatorWidth;\r\n if (nextCellWidth >= nextMinWidth) {\r\n if (needCorrectionNextCellWidth) {\r\n result.nextCellWidth = resizingInfo.nextColumnWidth - (delta + minWidth - cellWidth)\r\n } else {\r\n result.nextCellWidth = nextCellWidth\r\n }\r\n } else {\r\n result.nextCellWidth = nextMinWidth;\r\n result.cellWidth = resizingInfo.currentColumnWidth + (delta - nextMinWidth + nextCellWidth)\r\n }\r\n }\r\n return result\r\n }(deltaX);\r\n needUpdate = column.width !== cellWidth;\r\n if (needUpdate) {\r\n columnsController.beginUpdate();\r\n cellWidth = Math.floor(cellWidth);\r\n contentWidth = function(contentWidth, visibleColumns) {\r\n var allColumnsHaveWidth = visibleColumns.every(column => column.width);\r\n if (allColumnsHaveWidth) {\r\n var totalPercent = visibleColumns.reduce((sum, column) => {\r\n if (isPercentWidth(column.width)) {\r\n sum += parseFloat(column.width)\r\n }\r\n return sum\r\n }, 0);\r\n if (totalPercent > 100) {\r\n contentWidth = contentWidth / totalPercent * 100\r\n }\r\n }\r\n return contentWidth\r\n }(contentWidth, visibleColumns);\r\n setColumnWidth(column, cellWidth, contentWidth, adaptColumnWidthByRatio);\r\n if (isNextColumnMode) {\r\n nextCellWidth = Math.floor(nextCellWidth);\r\n setColumnWidth(nextColumn, nextCellWidth, contentWidth, adaptColumnWidthByRatio)\r\n } else {\r\n var columnWidths = this._columnHeadersView.getColumnWidths();\r\n columnWidths[resizingInfo.currentColumnIndex] = cellWidth;\r\n var hasScroll = columnWidths.reduce((totalWidth, width) => totalWidth + width, 0) > this._rowsView.contentWidth();\r\n if (!hasScroll) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns);\r\n if (lastColumnIndex >= 0) {\r\n columnsController.columnOption(visibleColumns[lastColumnIndex].index, \"visibleWidth\", \"auto\")\r\n }\r\n }\r\n for (var i = 0; i < columnWidths.length; i++) {\r\n if (visibleColumns[i] && visibleColumns[i] !== column && void 0 === visibleColumns[i].width) {\r\n columnsController.columnOption(visibleColumns[i].index, \"width\", columnWidths[i])\r\n }\r\n }\r\n }\r\n columnsController.endUpdate();\r\n if (!isNextColumnMode) {\r\n this.component.updateDimensions();\r\n var scrollable = this.component.getScrollable();\r\n if (scrollable && isRtlParentStyle) {\r\n var left = getWidth(scrollable.$content()) - getWidth(scrollable.container()) - this._scrollRight;\r\n scrollable.scrollTo({\r\n left: left\r\n })\r\n }\r\n }\r\n }\r\n return needUpdate\r\n }\r\n _subscribeToCallback(callback, handler) {\r\n callback.add(handler);\r\n this._subscribesToCallbacks.push({\r\n callback: callback,\r\n handler: handler\r\n })\r\n }\r\n _unsubscribeFromCallbacks() {\r\n for (var i = 0; i < this._subscribesToCallbacks.length; i++) {\r\n var subscribe = this._subscribesToCallbacks[i];\r\n subscribe.callback.remove(subscribe.handler)\r\n }\r\n this._subscribesToCallbacks = []\r\n }\r\n _unsubscribes() {\r\n this._unsubscribeFromEvents();\r\n this._unsubscribeFromCallbacks()\r\n }\r\n _init() {\r\n var generatePointsByColumnsHandler = () => {\r\n if (!this._isResizing) {\r\n this.pointsByColumns(null)\r\n }\r\n };\r\n var generatePointsByColumnsScrollHandler = offset => {\r\n if (this._scrollLeft !== offset.left) {\r\n this._scrollLeft = offset.left;\r\n this.pointsByColumns(null)\r\n }\r\n };\r\n this._columnsSeparatorView = this.getView(\"columnsSeparatorView\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._trackerView = this.getView(\"trackerView\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._editorFactoryController = this.getController(\"editorFactory\");\r\n this._draggingHeaderView = this.component.getView(\"draggingHeaderView\");\r\n this._$parentContainer = this.component.$element();\r\n this._subscribeToCallback(this._columnHeadersView.renderCompleted, generatePointsByColumnsHandler);\r\n this._subscribeToCallback(this._columnHeadersView.resizeCompleted, generatePointsByColumnsHandler);\r\n this._subscribeToCallback(this._columnsSeparatorView.renderCompleted, () => {\r\n this._unsubscribeFromEvents();\r\n this._subscribeToEvents()\r\n });\r\n this._subscribeToCallback(this._rowsView.renderCompleted, () => {\r\n this._rowsView.scrollChanged.remove(generatePointsByColumnsScrollHandler);\r\n this._rowsView.scrollChanged.add(generatePointsByColumnsScrollHandler)\r\n });\r\n var previousScrollbarVisibility = 0 !== this._rowsView.getScrollbarWidth();\r\n var previousTableHeight = 0;\r\n this._subscribeToCallback(this._tablePositionController.positionChanged, e => {\r\n if (this._isResizing && !this._rowsView.isResizing) {\r\n var scrollbarVisibility = 0 !== this._rowsView.getScrollbarWidth();\r\n if (previousScrollbarVisibility !== scrollbarVisibility || previousTableHeight && previousTableHeight !== e.height) {\r\n previousScrollbarVisibility = scrollbarVisibility;\r\n previousTableHeight = e.height;\r\n this.component.updateDimensions()\r\n } else {\r\n this._rowsView.updateFreeSpaceRowHeight()\r\n }\r\n }\r\n previousTableHeight = e.height\r\n })\r\n }\r\n isResizing() {\r\n return this._isResizing\r\n }\r\n pointsByColumns(value) {\r\n if (void 0 !== value) {\r\n this._pointsByColumns = value\r\n } else {\r\n if (!this._pointsByColumns) {\r\n this._generatePointsByColumns()\r\n }\r\n return this._pointsByColumns\r\n }\r\n }\r\n}\r\nexport class TablePositionViewController extends modules.ViewController {\r\n constructor(component) {\r\n super(component);\r\n this.positionChanged = Callbacks()\r\n }\r\n init() {\r\n super.init();\r\n this._columnsResizerController = this.getController(\"columnsResizer\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._pagerView = this.getView(\"pagerView\");\r\n this._rowsView.resizeCompleted.add(() => {\r\n if (this.option(\"allowColumnResizing\")) {\r\n var targetPoint = this._columnsResizerController._targetPoint;\r\n this.update(targetPoint ? targetPoint.y : null)\r\n }\r\n })\r\n }\r\n update(top) {\r\n var params = {};\r\n var $element = this._columnHeadersView.element();\r\n var offset = $element && $element.offset();\r\n var offsetTop = offset && offset.top || 0;\r\n var diffOffsetTop = isDefined(top) ? Math.abs(top - offsetTop) : 0;\r\n var columnsHeadersHeight = this._columnHeadersView ? this._columnHeadersView.getHeight() : 0;\r\n var scrollBarWidth = this._rowsView.getScrollbarWidth(true);\r\n var rowsHeight = this._rowsView ? this._rowsView.height() - scrollBarWidth : 0;\r\n var draggingHeaderView = this.component.getView(\"draggingHeaderView\");\r\n params.height = columnsHeadersHeight;\r\n var isDraggingOrResizing = this._columnsResizerController.isResizing() || draggingHeaderView.isDragging();\r\n if (isDraggingOrResizing) {\r\n params.height += rowsHeight - diffOffsetTop\r\n }\r\n if (null !== top && $element && $element.length) {\r\n params.top = $element[0].offsetTop + diffOffsetTop\r\n }\r\n this.positionChanged.fire(params)\r\n }\r\n}\r\nexport class DraggingHeaderViewController extends modules.ViewController {\r\n init() {\r\n super.init();\r\n this._columnsController = this.getController(\"columns\");\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._columnsSeparatorView = this.getView(\"columnsSeparatorView\");\r\n this._draggingHeaderView = this.getView(\"draggingHeaderView\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._blockSeparatorView = this.getView(\"blockSeparatorView\");\r\n this._headerPanelView = this.getView(\"headerPanel\");\r\n this._columnChooserView = this.getView(\"columnChooserView\");\r\n var subscribeToEvents = () => {\r\n if (this._draggingHeaderView) {\r\n var draggingPanels = [this._columnChooserView, this._columnHeadersView, this._headerPanelView];\r\n this._unsubscribeFromEvents(this._draggingHeaderView, draggingPanels);\r\n this._subscribeToEvents(this._draggingHeaderView, draggingPanels)\r\n }\r\n };\r\n this._columnHeadersView.renderCompleted.add(subscribeToEvents);\r\n this._headerPanelView && this._headerPanelView.renderCompleted.add(subscribeToEvents);\r\n this._columnChooserView && this._columnChooserView.renderCompleted.add(subscribeToEvents)\r\n }\r\n dispose() {\r\n if (this._draggingHeaderView) {\r\n this._unsubscribeFromEvents(this._draggingHeaderView, [this._columnChooserView, this._columnHeadersView, this._headerPanelView])\r\n }\r\n }\r\n _generatePointsByColumns(options) {\r\n var that = this;\r\n this.isCustomGroupColumnPosition = this.checkIsCustomGroupColumnPosition(options);\r\n var points = gridCoreUtils.getPointsByColumns(options.columnElements, point => that._pointCreated(point, options.columns, options.targetDraggingPanel.getName(), options.sourceColumn), options.isVerticalOrientation, options.startColumnIndex);\r\n return points\r\n }\r\n checkIsCustomGroupColumnPosition(options) {\r\n var wasOnlyCommandColumns = true;\r\n for (var i = 0; i < options.columns.length; i += 1) {\r\n var col = options.columns[i];\r\n if (\"expand\" === col.command && !wasOnlyCommandColumns) {\r\n return true\r\n }\r\n if (!col.command) {\r\n wasOnlyCommandColumns = false\r\n }\r\n }\r\n return false\r\n }\r\n _pointCreated(point, columns, location, sourceColumn) {\r\n var _a;\r\n var targetColumn = columns[point.columnIndex];\r\n var prevColumn = columns[point.columnIndex - 1];\r\n var isColumnAfterExpandColumn = \"expand\" === (null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.command);\r\n var isFirstExpandColumn = \"expand\" === (null === targetColumn || void 0 === targetColumn ? void 0 : targetColumn.command) && \"expand\" !== (null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.command);\r\n var sourceColumnReorderingDisabled = sourceColumn && !sourceColumn.allowReordering;\r\n var otherColumnsReorderingDisabled = !(null === targetColumn || void 0 === targetColumn ? void 0 : targetColumn.allowReordering) && !(null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.allowReordering);\r\n switch (location) {\r\n case \"columnChooser\":\r\n return true;\r\n case \"headers\":\r\n if (sourceColumnReorderingDisabled) {\r\n return true\r\n }\r\n if (!isFirstExpandColumn) {\r\n return isColumnAfterExpandColumn || otherColumnsReorderingDisabled\r\n }\r\n if (this.isCustomGroupColumnPosition) {\r\n return false\r\n }\r\n while (\"expand\" === (null === (_a = columns[point.columnIndex]) || void 0 === _a ? void 0 : _a.command)) {\r\n point.columnIndex += 1\r\n }\r\n return false;\r\n default:\r\n return 0 === columns.length\r\n }\r\n }\r\n _subscribeToEvents(draggingHeader, draggingPanels) {\r\n var that = this;\r\n each(draggingPanels, (_, draggingPanel) => {\r\n if (draggingPanel) {\r\n var columns;\r\n var rowCount = draggingPanel.getRowCount ? draggingPanel.getRowCount() : 1;\r\n var nameDraggingPanel = draggingPanel.getName();\r\n var subscribeToEvents = function(index, columnElement) {\r\n if (!columnElement) {\r\n return\r\n }\r\n var $columnElement = $(columnElement);\r\n var column = columns[index];\r\n if (column && draggingPanel.allowDragging(column)) {\r\n $columnElement.addClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS));\r\n eventsEngine.on($columnElement, addNamespace(dragEventStart, MODULE_NAMESPACE), that.createAction(args => {\r\n var e = args.event;\r\n var eventData = getEventData(e);\r\n draggingHeader.dragHeader({\r\n deltaX: eventData.x - $(e.currentTarget).offset().left,\r\n deltaY: eventData.y - $(e.currentTarget).offset().top,\r\n sourceColumn: column,\r\n index: column.index,\r\n columnIndex: index,\r\n columnElement: $columnElement,\r\n sourceLocation: nameDraggingPanel,\r\n draggingPanels: draggingPanels,\r\n rowIndex: that._columnsController.getRowIndex(column.index, true)\r\n })\r\n }));\r\n eventsEngine.on($columnElement, addNamespace(dragEventMove, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.moveHeader));\r\n eventsEngine.on($columnElement, addNamespace(dragEventEnd, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.dropHeader))\r\n }\r\n };\r\n for (var i = 0; i < rowCount; i++) {\r\n var columnElements = draggingPanel.getColumnElements(i) || [];\r\n if (columnElements.length) {\r\n columns = draggingPanel.getColumns(i) || [];\r\n each(columnElements, subscribeToEvents)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n _unsubscribeFromEvents(draggingHeader, draggingPanels) {\r\n var that = this;\r\n each(draggingPanels, (_, draggingPanel) => {\r\n if (draggingPanel) {\r\n var columnElements = draggingPanel.getColumnElements() || [];\r\n each(columnElements, (index, columnElement) => {\r\n var $columnElement = $(columnElement);\r\n eventsEngine.off($columnElement, addNamespace(dragEventStart, MODULE_NAMESPACE));\r\n eventsEngine.off($columnElement, addNamespace(dragEventMove, MODULE_NAMESPACE));\r\n eventsEngine.off($columnElement, addNamespace(dragEventEnd, MODULE_NAMESPACE));\r\n $columnElement.removeClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS))\r\n })\r\n }\r\n })\r\n }\r\n _getSeparator(targetLocation) {\r\n return \"headers\" === targetLocation ? this._columnsSeparatorView : this._blockSeparatorView\r\n }\r\n hideSeparators(type) {\r\n var blockSeparator = this._blockSeparatorView;\r\n var columnsSeparator = this._columnsSeparatorView;\r\n this._animationColumnIndex = void 0;\r\n blockSeparator && blockSeparator.hide();\r\n \"block\" !== type && columnsSeparator && columnsSeparator.hide()\r\n }\r\n allowDrop(parameters) {\r\n return this._columnsController.allowMoveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n }\r\n drag(parameters) {\r\n var {\r\n sourceIndex: sourceIndex\r\n } = parameters;\r\n var {\r\n sourceLocation: sourceLocation\r\n } = parameters;\r\n var {\r\n sourceColumnElement: sourceColumnElement\r\n } = parameters;\r\n var headersView = this._columnHeadersView;\r\n var rowsView = this._rowsView;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: COLUMN_OPACITY\r\n });\r\n if (\"headers\" === sourceLocation) {\r\n headersView && headersView.setRowsOpacity(sourceIndex, COLUMN_OPACITY);\r\n rowsView && rowsView.setRowsOpacity(sourceIndex, COLUMN_OPACITY)\r\n }\r\n }\r\n }\r\n dock(parameters) {\r\n var that = this;\r\n var targetColumnIndex = isObject(parameters.targetColumnIndex) ? parameters.targetColumnIndex.columnIndex : parameters.targetColumnIndex;\r\n var {\r\n sourceLocation: sourceLocation\r\n } = parameters;\r\n var {\r\n targetLocation: targetLocation\r\n } = parameters;\r\n var separator = that._getSeparator(targetLocation);\r\n var hasTargetVisibleIndex = targetColumnIndex >= 0;\r\n that._columnHeadersView.element().find(\".\".concat(HEADER_ROW_CLASS)).toggleClass(that.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS), \"headers\" !== sourceLocation && \"headers\" === targetLocation && !hasTargetVisibleIndex);\r\n if (separator) {\r\n if (that.allowDrop(parameters) && hasTargetVisibleIndex) {\r\n if (\"group\" === targetLocation || \"columnChooser\" === targetLocation) {\r\n ! function() {\r\n if (that._animationColumnIndex !== targetColumnIndex) {\r\n that.hideSeparators();\r\n separator.element()[parameters.isLast ? \"insertAfter\" : \"insertBefore\"](parameters.targetColumnElement);\r\n that._animationColumnIndex = targetColumnIndex;\r\n separator.show(targetLocation)\r\n }\r\n }()\r\n } else {\r\n that.hideSeparators(\"block\");\r\n that._tablePositionController.update(parameters.posY);\r\n separator.moveByX(parameters.posX - separator.width());\r\n separator.show()\r\n }\r\n } else {\r\n that.hideSeparators()\r\n }\r\n }\r\n }\r\n drop(parameters) {\r\n var {\r\n sourceColumnElement: sourceColumnElement\r\n } = parameters;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: \"\"\r\n });\r\n this._columnHeadersView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._rowsView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._columnHeadersView.element().find(\".\".concat(HEADER_ROW_CLASS)).removeClass(this.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS))\r\n }\r\n if (this.allowDrop(parameters)) {\r\n var separator = this._getSeparator(parameters.targetLocation);\r\n if (separator) {\r\n separator.hide()\r\n }\r\n this._columnsController.moveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n }\r\n }\r\n}\r\nvar rowsView = Base => class extends Base {\r\n _needUpdateRowHeight(itemCount) {\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var isResizing = this._columnsResizerController.isResizing();\r\n return super._needUpdateRowHeight.apply(this, arguments) || itemCount > 0 && wordWrapEnabled && isResizing\r\n }\r\n};\r\nvar editorFactory = Base => class extends Base {\r\n renderFocusOverlay() {\r\n if (this._columnsResizerController.isResizing()) {\r\n return\r\n }\r\n return super.renderFocusOverlay.apply(this, arguments)\r\n }\r\n};\r\nexport var columnsResizingReorderingModule = {\r\n views: {\r\n columnsSeparatorView: ColumnsSeparatorView,\r\n blockSeparatorView: BlockSeparatorView,\r\n draggingHeaderView: DraggingHeaderView,\r\n trackerView: TrackerView\r\n },\r\n controllers: {\r\n draggingHeader: DraggingHeaderViewController,\r\n tablePosition: TablePositionViewController,\r\n columnsResizer: ColumnsResizerViewController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: rowsView\r\n },\r\n controllers: {\r\n editorFactory: editorFactory\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/columns_resizing_reordering.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnsResizingReorderingModule\r\n} from \"../../../grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering\";\r\nimport gridCore from \"../m_core\";\r\nexport var DraggingHeaderView = columnsResizingReorderingModule.views.draggingHeaderView;\r\nexport var DraggingHeaderViewController = columnsResizingReorderingModule.controllers.draggingHeader;\r\nexport var ColumnsSeparatorView = columnsResizingReorderingModule.views.columnsSeparatorView;\r\nexport var TablePositionViewController = columnsResizingReorderingModule.controllers.tablePosition;\r\nexport var ColumnsResizerViewController = columnsResizingReorderingModule.controllers.columnsResizer;\r\nexport var TrackerView = columnsResizingReorderingModule.views.trackerView;\r\ngridCore.registerModule(\"columnsResizingReordering\", columnsResizingReorderingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/utils/memoize.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nvar compareByReference = (args, lastArgs) => args.length === lastArgs.length && !Object.keys(args).some(key => args[key] !== lastArgs[key]);\r\nvar compareByValue = (args, lastArgs) => equalByValue(args, lastArgs, {\r\n maxDepth: 4\r\n});\r\nvar createCacheFunc = (firstArgs, firstResult, originFunc, compareFunc) => {\r\n var lastArgs = firstArgs;\r\n var lastResult = firstResult;\r\n return function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n var argsEquals = compareFunc(args, lastArgs);\r\n if (argsEquals) {\r\n return lastResult\r\n }\r\n lastArgs = args;\r\n lastResult = originFunc(...lastArgs);\r\n return lastResult\r\n }\r\n};\r\nvar MEMOIZE_DEFAULT_OPTIONS = {\r\n compareType: \"reference\"\r\n};\r\nexport var memoize = function(func) {\r\n var {\r\n compareType: compareType\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : MEMOIZE_DEFAULT_OPTIONS;\r\n var cachedFunc = null;\r\n return function() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n if (!cachedFunc) {\r\n var firstResult = func(...args);\r\n cachedFunc = createCacheFunc(args, firstResult, func, \"reference\" === compareType ? compareByReference : compareByValue);\r\n return firstResult\r\n }\r\n return cachedFunc(...args)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/const.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var ATTRIBUTES = {\r\n ariaColIndex: \"aria-colindex\",\r\n dragCell: \"dx-drag-cell\"\r\n};\r\nexport var ROWS_VIEW_CLASS = \"rowsview\";\r\nexport var EDIT_FORM_CLASS = \"edit-form\";\r\nexport var GROUP_FOOTER_CLASS = \"group-footer\";\r\nexport var ROW_CLASS = \"dx-row\";\r\nexport var DATA_ROW_CLASS = \"dx-data-row\";\r\nexport var GROUP_ROW_CLASS = \"dx-group-row\";\r\nexport var HEADER_ROW_CLASS = \"dx-header-row\";\r\nexport var EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nexport var MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nexport var FREESPACE_ROW_CLASS = \"dx-freespace-row\";\r\nexport var VIRTUAL_ROW_CLASS = \"dx-virtual-row\";\r\nexport var MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nexport var EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nexport var DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nexport var COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nexport var ADAPTIVE_COLUMN_NAME_CLASS = \"dx-command-adaptive\";\r\nexport var COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nexport var COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nexport var COMMAND_CELL_SELECTOR = \"[class^=dx-command]\";\r\nexport var CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nexport var DATEBOX_WIDGET_NAME = \"dxDateBox\";\r\nexport var FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nexport var WIDGET_CLASS = \"dx-widget\";\r\nexport var REVERT_BUTTON_CLASS = \"dx-revert-button\";\r\nexport var FOCUSED_CLASS = \"dx-focused\";\r\nexport var FAST_EDITING_DELETE_KEY = \"delete\";\r\nexport var INTERACTIVE_ELEMENTS_SELECTOR = '\\n input:not([type=\"hidden\"]):not([disabled]),\\n textarea:not([disabled]),\\n a:not([disabled]),\\n select:not([disabled]),\\n button:not([disabled]),\\n [tabindex]:not([disabled]),\\n .dx-checkbox:not([disabled],.dx-state-readonly)\\n';\r\nexport var NON_FOCUSABLE_ELEMENTS_SELECTOR = \"\".concat(INTERACTIVE_ELEMENTS_SELECTOR, \", .dx-dropdowneditor-icon\");\r\nexport var EDIT_MODE_FORM = \"form\";\r\nexport var FOCUS_TYPE_ROW = \"row\";\r\nexport var FOCUS_TYPE_CELL = \"cell\";\r\nexport var COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\nexport var ROWS_VIEW = \"rowsView\";\r\nexport var FUNCTIONAL_KEYS = [\"shift\", \"control\", \"alt\"];\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/dom.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ATTRIBUTES\r\n} from \"./const\";\r\nvar isDragCell = $cell => void 0 !== $cell.attr(ATTRIBUTES.dragCell);\r\nvar getFocusableCellSelector = columnIndex => [\"[\".concat(ATTRIBUTES.ariaColIndex, '=\"').concat(columnIndex + 1, '\"]'), \":not([\".concat(ATTRIBUTES.dragCell, \"])\"), \":not([aria-hidden=true])\"].join(\"\");\r\nvar getCellToFocus = ($cellElements, columnIndex) => $cellElements.filter(getFocusableCellSelector(columnIndex)).first();\r\nexport var GridCoreKeyboardNavigationDom = {\r\n isDragCell: isDragCell,\r\n getCellToFocus: getCellToFocus\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n EDITOR_CELL_CLASS\r\n} from \"../editing/const\";\r\nimport {\r\n COMMAND_SELECT_CLASS,\r\n DATA_ROW_CLASS,\r\n FREESPACE_ROW_CLASS,\r\n GROUP_ROW_CLASS,\r\n HEADER_ROW_CLASS,\r\n MASTER_DETAIL_ROW_CLASS,\r\n VIRTUAL_ROW_CLASS\r\n} from \"./const\";\r\nvar DATAGRID_GROUP_FOOTER_CLASS = \"dx-datagrid-group-footer\";\r\nexport function isGroupRow($row) {\r\n return $row && $row.hasClass(GROUP_ROW_CLASS)\r\n}\r\nexport function isGroupFooterRow($row) {\r\n return $row && $row.hasClass(DATAGRID_GROUP_FOOTER_CLASS)\r\n}\r\nexport function isDetailRow($row) {\r\n return $row && $row.hasClass(MASTER_DETAIL_ROW_CLASS)\r\n}\r\nexport function isDataRow($row) {\r\n return $row && $row.hasClass(DATA_ROW_CLASS)\r\n}\r\nexport function isNotFocusedRow($row) {\r\n return !$row || $row.hasClass(FREESPACE_ROW_CLASS) || $row.hasClass(VIRTUAL_ROW_CLASS)\r\n}\r\nexport function isEditorCell(that, $cell) {\r\n return !that._isRowEditMode() && $cell && !$cell.hasClass(COMMAND_SELECT_CLASS) && $cell.hasClass(EDITOR_CELL_CLASS)\r\n}\r\nexport function isElementDefined($element) {\r\n return isDefined($element) && $element.length > 0\r\n}\r\nexport function isMobile() {\r\n return \"desktop\" !== devices.current().deviceType\r\n}\r\nexport function isCellInHeaderRow($cell) {\r\n return !!$cell.parent(\".\".concat(HEADER_ROW_CLASS)).length\r\n}\r\nexport function isFixedColumnIndexOffsetRequired(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return !(\"right\" === column.fixedPosition || isDefined(column.command) && !isDefined(column.fixedPosition))\r\n }\r\n return !(!isDefined(column.fixedPosition) || \"left\" === column.fixedPosition)\r\n}\r\nexport function shouldPreventScroll(that) {\r\n var keyboardController = that.getController(\"keyboardNavigation\");\r\n return keyboardController._isVirtualScrolling() ? that.option(\"focusedRowIndex\") === keyboardController.getRowIndex() : false\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/scrollable_a11y.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isEmptyObject\r\n} from \"../../../../core/utils/type\";\r\nexport var keyboardNavigationScrollableA11yExtender = Base => class extends Base {\r\n rowsViewFocusHandler(event) {\r\n var $target = $(event.target);\r\n this.translateFocusIfNeed(event, $target);\r\n super.rowsViewFocusHandler(event)\r\n }\r\n rowsViewFocusOutHandler() {\r\n super.rowsViewFocusOutHandler();\r\n this.makeScrollableFocusableIfNeed()\r\n }\r\n translateFocusIfNeed(event, $target) {\r\n var needTranslateFocus = this.isScrollableNeedFocusable();\r\n var isFirstCellFixed = this._isFixedColumn(0);\r\n if (!needTranslateFocus || !isFirstCellFixed) {\r\n return\r\n }\r\n var $firstCell = this._rowsView.getCell({\r\n rowIndex: 0,\r\n columnIndex: 0\r\n });\r\n var firstCellHasTabIndex = !!$firstCell.attr(\"tabindex\");\r\n var notFixedCellIsTarget = $target.is(this._$firstNotFixedCell);\r\n if (firstCellHasTabIndex && notFixedCellIsTarget) {\r\n event.preventDefault();\r\n this._focus($firstCell)\r\n }\r\n }\r\n renderCompleted(e) {\r\n this._$firstNotFixedCell = this.getFirstNotFixedCell();\r\n this.makeScrollableFocusableIfNeed();\r\n super.renderCompleted(e)\r\n }\r\n _focus($cell, disableFocus, skipFocusEvent) {\r\n super._focus($cell, disableFocus, skipFocusEvent);\r\n this.makeScrollableFocusableIfNeed()\r\n }\r\n _tabKeyHandler(eventArgs, isEditing) {\r\n var _a;\r\n var isCellPositionDefined = isDefined(this._focusedCellPosition) && !isEmptyObject(this._focusedCellPosition);\r\n var isOriginalHandlerRequired = !isCellPositionDefined || !eventArgs.shift && this._isLastValidCell(this._focusedCellPosition) || eventArgs.shift && this._isFirstValidCell(this._focusedCellPosition);\r\n var isNeedFocusable = this.isScrollableNeedFocusable();\r\n if (isOriginalHandlerRequired && isNeedFocusable) {\r\n null === (_a = this._$firstNotFixedCell) || void 0 === _a ? void 0 : _a.removeAttr(\"tabIndex\")\r\n }\r\n super._tabKeyHandler(eventArgs, isEditing)\r\n }\r\n getFirstNotFixedCell() {\r\n var _a;\r\n var columns = this._columnsController.getVisibleColumns();\r\n var columnIndex = columns.findIndex(_ref => {\r\n var {\r\n fixed: fixed\r\n } = _ref;\r\n return !fixed\r\n });\r\n var isEditing = null === (_a = this._editingController) || void 0 === _a ? void 0 : _a.isEditing();\r\n return -1 === columnIndex || isEditing ? void 0 : this._rowsView._getCellElement(0, columnIndex)\r\n }\r\n isScrollableNeedFocusable() {\r\n var _a, _b;\r\n var hasScrollable = !!this._rowsView.getScrollable();\r\n var hasFixedTable = !!(null === (_a = this._rowsView._fixedTableElement) || void 0 === _a ? void 0 : _a.length);\r\n var isCellsRendered = !!(null === (_b = this._rowsView.getCellElements(0)) || void 0 === _b ? void 0 : _b.length);\r\n return hasScrollable && hasFixedTable && isCellsRendered\r\n }\r\n makeScrollableFocusableIfNeed() {\r\n var needFocusable = this.isScrollableNeedFocusable();\r\n if (!needFocusable || !this._$firstNotFixedCell) {\r\n return\r\n }\r\n this._applyTabIndexToElement(this._$firstNotFixedCell)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isEmptyObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n keyboard\r\n} from \"../../../../events/short\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport * as accessibility from \"../../../../ui/shared/accessibility\";\r\nimport {\r\n focused\r\n} from \"../../../../ui/widget/selectors\";\r\nimport {\r\n memoize\r\n} from \"../../../utils/memoize\";\r\nimport {\r\n EDIT_FORM_CLASS,\r\n EDIT_MODE_BATCH,\r\n EDIT_MODE_CELL,\r\n EDIT_MODE_FORM,\r\n EDIT_MODE_ROW,\r\n EDITOR_CELL_CLASS,\r\n FILTER_ROW_CLASS,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n ROW_CLASS\r\n} from \"../editing/const\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ADAPTIVE_COLUMN_NAME_CLASS,\r\n CELL_FOCUS_DISABLED_CLASS,\r\n COLUMN_HEADERS_VIEW,\r\n COMMAND_CELL_SELECTOR,\r\n COMMAND_EDIT_CLASS,\r\n COMMAND_EXPAND_CLASS,\r\n COMMAND_SELECT_CLASS,\r\n DATA_ROW_CLASS,\r\n DATEBOX_WIDGET_NAME,\r\n DROPDOWN_EDITOR_OVERLAY_CLASS,\r\n EDIT_FORM_ITEM_CLASS,\r\n FAST_EDITING_DELETE_KEY,\r\n FOCUS_STATE_CLASS,\r\n FOCUS_TYPE_CELL,\r\n FOCUS_TYPE_ROW,\r\n FOCUSED_CLASS,\r\n FREESPACE_ROW_CLASS,\r\n FUNCTIONAL_KEYS,\r\n INTERACTIVE_ELEMENTS_SELECTOR,\r\n MASTER_DETAIL_CELL_CLASS,\r\n NON_FOCUSABLE_ELEMENTS_SELECTOR,\r\n REVERT_BUTTON_CLASS,\r\n ROWS_VIEW,\r\n ROWS_VIEW_CLASS,\r\n WIDGET_CLASS\r\n} from \"./const\";\r\nimport {\r\n GridCoreKeyboardNavigationDom\r\n} from \"./dom\";\r\nimport {\r\n isCellInHeaderRow,\r\n isDataRow,\r\n isDetailRow,\r\n isEditorCell,\r\n isElementDefined,\r\n isFixedColumnIndexOffsetRequired,\r\n isGroupFooterRow,\r\n isGroupRow,\r\n isMobile,\r\n isNotFocusedRow,\r\n shouldPreventScroll\r\n} from \"./m_keyboard_navigation_utils\";\r\nimport {\r\n keyboardNavigationScrollableA11yExtender\r\n} from \"./scrollable_a11y\";\r\nexport class KeyboardNavigationController extends modules.ViewController {\r\n init() {\r\n var _a, _b, _c;\r\n this._dataController = this.getController(\"data\");\r\n this._selectionController = this.getController(\"selection\");\r\n this._editingController = this.getController(\"editing\");\r\n this._headerPanel = this.getView(\"headerPanel\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._editorFactory = this.getController(\"editorFactory\");\r\n this._focusController = this.getController(\"focus\");\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this._columnResizerController = this.getController(\"columnsResizer\");\r\n this._memoFireFocusedCellChanged = memoize(this._memoFireFocusedCellChanged.bind(this), {\r\n compareType: \"value\"\r\n });\r\n this._memoFireFocusedRowChanged = memoize(this._memoFireFocusedRowChanged.bind(this), {\r\n compareType: \"value\"\r\n });\r\n this.focusedHandlerWithContext = this.focusedHandlerWithContext || this.focusedHandler.bind(this);\r\n this.renderCompletedWithContext = this.renderCompletedWithContext || this.renderCompleted.bind(this);\r\n this.rowsViewFocusHandlerContext = this.rowsViewFocusHandlerContext || this.rowsViewFocusHandler.bind(this);\r\n this.rowsViewFocusOutHandlerContext = null !== (_a = this.rowsViewFocusOutHandlerContext) && void 0 !== _a ? _a : this.rowsViewFocusOutHandler.bind(this);\r\n this._updateFocusTimeout = null;\r\n this._fastEditingStarted = false;\r\n this._focusedCellPosition = {};\r\n this._canceledCellPosition = null;\r\n if (this.isKeyboardEnabled()) {\r\n accessibility.subscribeVisibilityChange();\r\n null === (_b = this._editorFactory) || void 0 === _b ? void 0 : _b.focused.add(this.focusedHandlerWithContext);\r\n this.createAction(\"onKeyDown\")\r\n } else {\r\n accessibility.unsubscribeVisibilityChange();\r\n null === (_c = this._editorFactory) || void 0 === _c ? void 0 : _c.focused.remove(this.focusedHandlerWithContext)\r\n }\r\n this.initViewHandlers();\r\n this.initDocumentHandlers()\r\n }\r\n dispose() {\r\n super.dispose();\r\n this._resetFocusedView();\r\n keyboard.off(this._keyDownListener);\r\n eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler);\r\n clearTimeout(this._updateFocusTimeout);\r\n accessibility.unsubscribeVisibilityChange()\r\n }\r\n focusedHandler($element) {\r\n this.setupFocusedView();\r\n if (this._isNeedScroll) {\r\n if ($element.is(\":visible\") && this._focusedView && this._focusedView.getScrollable()) {\r\n this._focusedView._scrollToElement($element);\r\n this._isNeedScroll = false\r\n }\r\n }\r\n }\r\n rowsViewFocusHandler(event) {\r\n var _a;\r\n var $element = $(event.target);\r\n var isRelatedTargetInRowsView = $(event.relatedTarget).closest(this._rowsView.element()).length;\r\n var isLink = $element.is(\"a\");\r\n if (event.relatedTarget && isLink && !isRelatedTargetInRowsView && this._isEventInCurrentGrid(event)) {\r\n var $focusedCell = this._getFocusedCell();\r\n $focusedCell = !isElementDefined($focusedCell) ? this._rowsView.getCellElements(0).filter(\"[tabindex]\").eq(0) : $focusedCell;\r\n if (!$element.closest($focusedCell).length) {\r\n event.preventDefault();\r\n eventsEngine.trigger($focusedCell, \"focus\")\r\n }\r\n }\r\n var isCell = $element.is(\"td\");\r\n var needSetFocusPosition = (null !== (_a = this.option(\"focusedRowIndex\")) && void 0 !== _a ? _a : -1) < 0;\r\n if (isCell && needSetFocusPosition) {\r\n this._updateFocusedCellPosition($element)\r\n }\r\n }\r\n rowsViewFocusOutHandler() {\r\n this._toggleInertAttr(false)\r\n }\r\n subscribeToRowsViewFocusEvent() {\r\n var _a;\r\n var $rowsView = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element();\r\n eventsEngine.on($rowsView, \"focusin\", this.rowsViewFocusHandlerContext);\r\n eventsEngine.on($rowsView, \"focusout\", this.rowsViewFocusOutHandlerContext)\r\n }\r\n unsubscribeFromRowsViewFocusEvent() {\r\n var _a;\r\n var $rowsView = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element();\r\n eventsEngine.off($rowsView, \"focusin\", this.rowsViewFocusHandlerContext);\r\n eventsEngine.off($rowsView, \"focusout\", this.rowsViewFocusOutHandlerContext)\r\n }\r\n renderCompleted(e) {\r\n var $rowsView = this._rowsView.element();\r\n var isFullUpdate = !e || \"refresh\" === e.changeType;\r\n var isFocusedViewCorrect = this._focusedView && this._focusedView.name === this._rowsView.name;\r\n var needUpdateFocus = false;\r\n var isAppend = e && (\"append\" === e.changeType || \"prepend\" === e.changeType);\r\n var root = $(domAdapter.getRootNode($rowsView.get && $rowsView.get(0)));\r\n var $focusedElement = root.find(\":focus\");\r\n var isFocusedElementCorrect = !$focusedElement.length || $focusedElement.closest($rowsView).length;\r\n this.unsubscribeFromRowsViewFocusEvent();\r\n this.subscribeToRowsViewFocusEvent();\r\n this.initPointerEventHandler();\r\n this.initKeyDownHandler();\r\n this._setRowsViewAttributes();\r\n if (isFocusedViewCorrect && isFocusedElementCorrect) {\r\n needUpdateFocus = this._isNeedFocus ? !isAppend : this._isHiddenFocus && isFullUpdate && !(null === e || void 0 === e ? void 0 : e.virtualColumnsScrolling);\r\n needUpdateFocus && this._updateFocus(true)\r\n }\r\n }\r\n initViewHandlers() {\r\n var _a, _b;\r\n this.unsubscribeFromRowsViewFocusEvent();\r\n this.unsubscribeFromPointerEvent();\r\n this.unsubscribeFromKeyDownEvent();\r\n null === (_b = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.renderCompleted) || void 0 === _b ? void 0 : _b.remove(this.renderCompletedWithContext);\r\n if (this.isKeyboardEnabled()) {\r\n this._rowsView.renderCompleted.add(this.renderCompletedWithContext)\r\n }\r\n }\r\n initDocumentHandlers() {\r\n var document = domAdapter.getDocument();\r\n this._documentClickHandler = this._documentClickHandler || this.createAction(e => {\r\n var $target = $(e.event.target);\r\n var isCurrentRowsViewClick = this._isEventInCurrentGrid(e.event) && $target.closest(\".\".concat(this.addWidgetPrefix(ROWS_VIEW_CLASS))).length;\r\n var isEditorOverlay = $target.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS)).length;\r\n var isColumnResizing = !!this._columnResizerController && this._columnResizerController.isResizing();\r\n if (!isCurrentRowsViewClick && !isEditorOverlay && !isColumnResizing) {\r\n var targetInsideFocusedView = this._focusedView ? $target.parents().filter(this._focusedView.element()).length > 0 : false;\r\n !targetInsideFocusedView && this._resetFocusedCell(true);\r\n this._resetFocusedView()\r\n }\r\n });\r\n eventsEngine.off(document, addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler);\r\n if (this.isKeyboardEnabled()) {\r\n eventsEngine.on(document, addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler)\r\n }\r\n }\r\n _setRowsViewAttributes() {\r\n var $rowsView = this._getRowsViewElement();\r\n var isGridEmpty = !this._dataController.getVisibleRows().length;\r\n if (isGridEmpty) {\r\n this._applyTabIndexToElement($rowsView)\r\n }\r\n }\r\n unsubscribeFromPointerEvent() {\r\n var pointerEventName = !isMobile() ? pointerEvents.down : clickEventName;\r\n var $rowsView = this._getRowsViewElement();\r\n this._pointerEventAction && eventsEngine.off($rowsView, addNamespace(pointerEventName, \"dxDataGridKeyboardNavigation\"), this._pointerEventAction)\r\n }\r\n subscribeToPointerEvent() {\r\n var pointerEventName = !isMobile() ? pointerEvents.down : clickEventName;\r\n var $rowsView = this._getRowsViewElement();\r\n var clickSelector = \".\".concat(ROW_CLASS, \" > td, .\").concat(ROW_CLASS);\r\n eventsEngine.on($rowsView, addNamespace(pointerEventName, \"dxDataGridKeyboardNavigation\"), clickSelector, this._pointerEventAction)\r\n }\r\n initPointerEventHandler() {\r\n this._pointerEventAction = this._pointerEventAction || this.createAction(this._pointerEventHandler);\r\n this.unsubscribeFromPointerEvent();\r\n this.subscribeToPointerEvent()\r\n }\r\n unsubscribeFromKeyDownEvent() {\r\n keyboard.off(this._keyDownListener)\r\n }\r\n subscribeToKeyDownEvent() {\r\n var $rowsView = this._getRowsViewElement();\r\n this._keyDownListener = keyboard.on($rowsView, null, e => this._keyDownHandler(e))\r\n }\r\n initKeyDownHandler() {\r\n this._keyDownListener && this.unsubscribeFromKeyDownEvent();\r\n this.subscribeToKeyDownEvent()\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"keyboardNavigation\":\r\n if (\"keyboardNavigation.enabled\" === args.fullName) {\r\n this.init()\r\n }\r\n args.handled = true;\r\n break;\r\n case \"useLegacyKeyboardNavigation\":\r\n this.init();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n isRowFocusType() {\r\n return this.focusType === FOCUS_TYPE_ROW\r\n }\r\n isCellFocusType() {\r\n return this.focusType === FOCUS_TYPE_CELL\r\n }\r\n setRowFocusType() {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.focusType = FOCUS_TYPE_ROW\r\n }\r\n }\r\n setCellFocusType() {\r\n this.focusType = FOCUS_TYPE_CELL\r\n }\r\n _keyDownHandler(e) {\r\n var _a;\r\n var needStopPropagation = true;\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n var isHandled = this._processOnKeyDown(e);\r\n var isEditing = null === (_a = this._editingController) || void 0 === _a ? void 0 : _a.isEditing();\r\n var {\r\n originalEvent: originalEvent\r\n } = e;\r\n if (originalEvent.isDefaultPrevented()) {\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n return\r\n }!FUNCTIONAL_KEYS.includes(e.keyName) && this._updateFocusedCellPositionByTarget(originalEvent.target);\r\n if (!isHandled) {\r\n switch (e.keyName) {\r\n case \"leftArrow\":\r\n case \"rightArrow\":\r\n this._leftRightKeysHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"upArrow\":\r\n case \"downArrow\":\r\n if (e.ctrl) {\r\n accessibility.selectView(\"rowsView\", this, originalEvent)\r\n } else {\r\n this._upDownKeysHandler(e, isEditing)\r\n }\r\n isHandled = true;\r\n break;\r\n case \"pageUp\":\r\n case \"pageDown\":\r\n this._pageUpDownKeyHandler(e);\r\n isHandled = true;\r\n break;\r\n case \"space\":\r\n isHandled = this._spaceKeyHandler(e, isEditing);\r\n break;\r\n case \"A\":\r\n if (isCommandKeyPressed(e.originalEvent)) {\r\n this._ctrlAKeyHandler(e, isEditing);\r\n isHandled = true\r\n } else {\r\n isHandled = this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"tab\":\r\n this._tabKeyHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"enter\":\r\n this._enterKeyHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"escape\":\r\n isHandled = this._escapeKeyHandler(e, isEditing);\r\n break;\r\n case \"F\":\r\n if (isCommandKeyPressed(e.originalEvent)) {\r\n this._ctrlFKeyHandler(e);\r\n isHandled = true\r\n } else {\r\n isHandled = this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"F2\":\r\n this._f2KeyHandler();\r\n isHandled = true;\r\n break;\r\n case \"del\":\r\n case \"backspace\":\r\n if (this._isFastEditingAllowed() && !this._isFastEditingStarted()) {\r\n isHandled = this._beginFastEditing(originalEvent, true)\r\n }\r\n }\r\n if (!isHandled && !this._beginFastEditing(originalEvent)) {\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n needStopPropagation = false\r\n }\r\n if (needStopPropagation) {\r\n originalEvent.stopPropagation()\r\n }\r\n }\r\n }\r\n _processOnKeyDown(eventArgs) {\r\n var {\r\n originalEvent: originalEvent\r\n } = eventArgs;\r\n var args = {\r\n handled: false,\r\n event: originalEvent\r\n };\r\n this.executeAction(\"onKeyDown\", args);\r\n eventArgs.ctrl = originalEvent.ctrlKey;\r\n eventArgs.alt = originalEvent.altKey;\r\n eventArgs.shift = originalEvent.shiftKey;\r\n return !!args.handled\r\n }\r\n _closeEditCell() {\r\n var d = Deferred();\r\n setTimeout(() => {\r\n this._editingController.closeEditCell().always(d.resolve)\r\n });\r\n return d\r\n }\r\n _leftRightKeysHandler(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $event = eventArgs.originalEvent;\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n var directionCode = this._getDirectionCodeByKey(eventArgs.keyName);\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isEditing || isEditingNavigationMode) && isDataRow($row);\r\n if (allowNavigate) {\r\n this.setCellFocusType();\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(directionCode)\r\n }\r\n var $cell = this._getNextCell(directionCode);\r\n if (isElementDefined($cell)) {\r\n this._arrowKeysHandlerFocusCell($event, $cell, directionCode)\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n }\r\n _upDownKeysHandler(eventArgs, isEditing) {\r\n var _a, _b;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(visibleRowIndex);\r\n var $event = eventArgs.originalEvent;\r\n var isUpArrow = \"upArrow\" === eventArgs.keyName;\r\n var dataSource = this._dataController.dataSource();\r\n var isRowEditingInCurrentRow = null === (_b = null === (_a = this._editingController) || void 0 === _a ? void 0 : _a.isEditRowByIndex) || void 0 === _b ? void 0 : _b.call(_a, visibleRowIndex);\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isRowEditingInCurrentRow || !isEditing || isEditingNavigationMode) && $row && !isDetailRow($row);\r\n if (allowNavigate) {\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (!this._navigateNextCell($event, eventArgs.keyName)) {\r\n if (this._isVirtualRowRender() && isUpArrow && dataSource && !dataSource.isLoading()) {\r\n var rowHeight = getOuterHeight($row);\r\n var rowIndex = this._focusedCellPosition.rowIndex - 1;\r\n this._scrollBy(0, -rowHeight, rowIndex, $event)\r\n }\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n }\r\n _pageUpDownKeyHandler(eventArgs) {\r\n var pageIndex = this._dataController.pageIndex();\r\n var pageCount = this._dataController.pageCount();\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var isPageUp = \"pageUp\" === eventArgs.keyName;\r\n var pageStep = isPageUp ? -1 : 1;\r\n var scrollable = this._rowsView.getScrollable();\r\n if (pagingEnabled && !this._isVirtualScrolling()) {\r\n if ((isPageUp ? pageIndex > 0 : pageIndex < pageCount - 1) && !this._isVirtualScrolling()) {\r\n this._dataController.pageIndex(pageIndex + pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n } else if (scrollable && getHeight(scrollable.container()) < getHeight(scrollable.$content())) {\r\n this._scrollBy(0, getHeight(scrollable.container()) * pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n _spaceKeyHandler(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $target = $(eventArgs.originalEvent && eventArgs.originalEvent.target);\r\n if (this.option(\"selection\") && \"none\" !== this.option(\"selection\").mode && !isEditing) {\r\n var isFocusedRowElement = \"row\" === this._getElementType($target) && this.isRowFocusType() && isDataRow($target);\r\n var isFocusedSelectionCell = $target.hasClass(COMMAND_SELECT_CLASS);\r\n if (isFocusedSelectionCell && \"onClick\" === this.option(\"selection.showCheckBoxesMode\")) {\r\n this._selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (isFocusedRowElement || $target.parent().hasClass(DATA_ROW_CLASS) || $target.hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._selectionController.changeItemSelection(rowIndex, {\r\n shift: eventArgs.shift,\r\n control: eventArgs.ctrl\r\n });\r\n eventArgs.originalEvent.preventDefault();\r\n return true\r\n }\r\n return false\r\n }\r\n return this._beginFastEditing(eventArgs.originalEvent)\r\n }\r\n _ctrlAKeyHandler(eventArgs, isEditing) {\r\n if (!isEditing && !eventArgs.alt && \"multiple\" === this.option(\"selection.mode\") && this.option(\"selection.allowSelectAll\")) {\r\n this._selectionController.selectAll();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n _toggleInertAttr(value) {}\r\n _tabKeyHandler(eventArgs, isEditing) {\r\n var editingOptions = this.option(\"editing\");\r\n var direction = eventArgs.shift ? \"previous\" : \"next\";\r\n var isCellPositionDefined = isDefined(this._focusedCellPosition) && !isEmptyObject(this._focusedCellPosition);\r\n var isFirstValidCell = eventArgs.shift && this._isFirstValidCell(this._focusedCellPosition);\r\n var isLastValidCell = !eventArgs.shift && this._isLastValidCell(this._focusedCellPosition);\r\n var isOriginalHandlerRequired = !isCellPositionDefined || isFirstValidCell || isLastValidCell;\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var focusedViewElement = this._focusedView && this._focusedView.element();\r\n if (this._handleTabKeyOnMasterDetailCell(eventTarget, direction)) {\r\n return\r\n }\r\n $(focusedViewElement).addClass(FOCUS_STATE_CLASS);\r\n if (editingOptions && eventTarget && !isOriginalHandlerRequired) {\r\n if ($(eventTarget).hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._resetFocusedCell()\r\n }\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(direction)\r\n }\r\n if (isEditing) {\r\n if (!this._editingCellTabHandler(eventArgs, direction)) {\r\n return\r\n }\r\n } else if (this._targetCellTabHandler(eventArgs, direction)) {\r\n isOriginalHandlerRequired = true\r\n }\r\n }\r\n if (isOriginalHandlerRequired) {\r\n var $cell = this._getFocusedCell();\r\n var isCommandCell = $cell.is(COMMAND_CELL_SELECTOR);\r\n if (isLastValidCell && !isCommandCell) {\r\n this._toggleInertAttr(true)\r\n }\r\n this._editorFactory.loseFocus();\r\n if (this._editingController.isEditing() && !this._isRowEditMode()) {\r\n this._resetFocusedCell(true);\r\n this._resetFocusedView();\r\n this._closeEditCell()\r\n }\r\n } else {\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n _getMaxHorizontalOffset() {\r\n var scrollable = this.component.getScrollable();\r\n return scrollable ? scrollable.scrollWidth() - getWidth(this._rowsView.element()) : 0\r\n }\r\n _isColumnRendered(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var renderedVisibleColumns = this._columnsController.getVisibleColumns();\r\n var column = allVisibleColumns[columnIndex];\r\n var result = false;\r\n if (column) {\r\n result = renderedVisibleColumns.indexOf(column) >= 0\r\n }\r\n return result\r\n }\r\n _isFixedColumn(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var column = allVisibleColumns[columnIndex];\r\n return !!column && !!column.fixed\r\n }\r\n _isColumnVirtual(columnIndex) {\r\n var localColumnIndex = columnIndex - this._columnsController.getColumnIndexOffset();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var column = visibleColumns[localColumnIndex];\r\n return !!column && \"virtual\" === column.command\r\n }\r\n _processVirtualHorizontalPosition(direction) {\r\n var scrollable = this.component.getScrollable();\r\n var columnIndex = this.getColumnIndex();\r\n var nextColumnIndex;\r\n var horizontalScrollPosition = 0;\r\n var needToScroll = false;\r\n switch (direction) {\r\n case \"next\":\r\n case \"nextInRow\":\r\n var columnsCount = this._getVisibleColumnCount();\r\n nextColumnIndex = columnIndex + 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? this._getMaxHorizontalOffset() : 0;\r\n if (\"next\" === direction) {\r\n needToScroll = columnsCount === nextColumnIndex || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = columnsCount > nextColumnIndex && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n break;\r\n case \"previous\":\r\n case \"previousInRow\":\r\n nextColumnIndex = columnIndex - 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? 0 : this._getMaxHorizontalOffset();\r\n if (\"previous\" === direction) {\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var leftEdgePosition = nextColumnIndex < 0 && 0 === columnIndexOffset;\r\n needToScroll = leftEdgePosition || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = nextColumnIndex >= 0 && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n }\r\n if (needToScroll) {\r\n scrollable.scrollTo({\r\n left: horizontalScrollPosition\r\n })\r\n } else if (isDefined(nextColumnIndex) && isDefined(direction) && this._isColumnVirtual(nextColumnIndex)) {\r\n horizontalScrollPosition = this._getHorizontalScrollPositionOffset(direction);\r\n 0 !== horizontalScrollPosition && scrollable.scrollBy({\r\n left: horizontalScrollPosition,\r\n top: 0\r\n })\r\n }\r\n }\r\n _getHorizontalScrollPositionOffset(direction) {\r\n var positionOffset = 0;\r\n var $currentCell = this._getCell(this._focusedCellPosition);\r\n var currentCellWidth = $currentCell && getOuterWidth($currentCell);\r\n if (currentCellWidth > 0) {\r\n var rtlMultiplier = this.option(\"rtlEnabled\") ? -1 : 1;\r\n positionOffset = \"nextInRow\" === direction || \"next\" === direction ? currentCellWidth * rtlMultiplier : currentCellWidth * rtlMultiplier * -1\r\n }\r\n return positionOffset\r\n }\r\n _editingCellTabHandler(eventArgs, direction) {\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var isEditingAllowed;\r\n var $event = eventArgs.originalEvent;\r\n var elementType = this._getElementType(eventTarget);\r\n if ($cell.is(COMMAND_CELL_SELECTOR)) {\r\n return !this._targetCellTabHandler(eventArgs, direction)\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell || this._handleTabKeyOnMasterDetailCell($cell, direction)) {\r\n return false\r\n }\r\n var column = this._getColumnByCellElement($cell);\r\n var $row = $cell.parent();\r\n var rowIndex = this._getRowIndex($row);\r\n var row = this._dataController.items()[rowIndex];\r\n var editingController = this._editingController;\r\n if (column && column.allowEditing) {\r\n var _isDataRow = !row || \"data\" === row.rowType;\r\n isEditingAllowed = editingController.allowUpdating({\r\n row: row\r\n }) ? _isDataRow : row && row.isNewRow\r\n }\r\n if (!isEditingAllowed) {\r\n this._closeEditCell()\r\n }\r\n if (this._focusCell($cell, !nextCellInfo.isHighlighted)) {\r\n if (!this._isRowEditMode() && isEditingAllowed) {\r\n this._editFocusedCell()\r\n } else {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return true\r\n }\r\n _targetCellTabHandler(eventArgs, direction) {\r\n var $event = eventArgs.originalEvent;\r\n var eventTarget = $event.target;\r\n var elementType = this._getElementType(eventTarget);\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var $lastInteractiveElement = \"cell\" === elementType && this._getInteractiveElement($cell, !eventArgs.shift);\r\n var isOriginalHandlerRequired = false;\r\n if (!isEditorCell(this, $cell) && (null === $lastInteractiveElement || void 0 === $lastInteractiveElement ? void 0 : $lastInteractiveElement.length) && eventTarget !== $lastInteractiveElement.get(0)) {\r\n isOriginalHandlerRequired = true\r\n } else {\r\n if (void 0 === this._focusedCellPosition.rowIndex && $(eventTarget).hasClass(ROW_CLASS)) {\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n elementType = this._getElementType(eventTarget);\r\n if (this.isRowFocusType()) {\r\n this.setCellFocusType();\r\n if (\"row\" === elementType && isDataRow($(eventTarget))) {\r\n eventTarget = this.getFirstValidCellInRow($(eventTarget));\r\n elementType = this._getElementType(eventTarget)\r\n }\r\n }\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell) {\r\n return false\r\n }\r\n $cell = this._checkNewLineTransition($event, $cell);\r\n if (!$cell) {\r\n return false\r\n }\r\n this._focusCell($cell, !nextCellInfo.isHighlighted);\r\n if (!isEditorCell(this, $cell)) {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return isOriginalHandlerRequired\r\n }\r\n _getNextCellByTabKey($event, direction, elementType) {\r\n var $cell = this._getNextCell(direction, elementType);\r\n var args = $cell && this._fireFocusedCellChanging($event, $cell, true);\r\n if (!args || args.cancel) {\r\n return {}\r\n }\r\n if (args.$newCellElement) {\r\n $cell = args.$newCellElement\r\n }\r\n return {\r\n $cell: $cell,\r\n isHighlighted: args.isHighlighted\r\n }\r\n }\r\n _checkNewLineTransition($event, $cell) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = $cell.parent();\r\n if (rowIndex !== this._getRowIndex($row)) {\r\n var cellPosition = this._getCellPosition($cell);\r\n var args = this._fireFocusedRowChanging($event, $row);\r\n if (args.cancel) {\r\n return\r\n }\r\n if (args.rowIndexChanged && cellPosition) {\r\n this.setFocusedColumnIndex(cellPosition.columnIndex);\r\n $cell = this._getFocusedCell()\r\n }\r\n }\r\n return $cell\r\n }\r\n _enterKeyHandler(eventArgs, isEditing) {\r\n var _a;\r\n var rowIndex = this.getVisibleRowIndex();\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var $row = null === (_a = this._focusedView) || void 0 === _a ? void 0 : _a.getRow(rowIndex);\r\n var $cell = this._getFocusedCell();\r\n var needExpandGroupRow = this.option(\"grouping.allowCollapsing\") && isGroupRow($row);\r\n var needExpandMasterDetailRow = this.option(\"masterDetail.enabled\") && (null === $cell || void 0 === $cell ? void 0 : $cell.hasClass(COMMAND_EXPAND_CLASS));\r\n var needExpandAdaptiveRow = null === $cell || void 0 === $cell ? void 0 : $cell.hasClass(ADAPTIVE_COLUMN_NAME_CLASS);\r\n if (needExpandGroupRow || needExpandMasterDetailRow) {\r\n var item = this._dataController.items()[rowIndex];\r\n var isNotContinuation = (null === item || void 0 === item ? void 0 : item.data) && !item.data.isContinuation;\r\n if (isDefined(key) && isNotContinuation) {\r\n this._dataController.changeRowExpand(key)\r\n }\r\n } else if (needExpandAdaptiveRow) {\r\n this._adaptiveColumnsController.toggleExpandAdaptiveDetailRow(key);\r\n this._updateFocusedCellPosition($cell)\r\n } else if (!(null === $cell || void 0 === $cell ? void 0 : $cell.hasClass(COMMAND_EDIT_CLASS))) {\r\n this._processEnterKeyForDataCell(eventArgs, isEditing)\r\n }\r\n }\r\n _processEnterKeyForDataCell(eventArgs, isEditing) {\r\n var direction = this._getEnterKeyDirection(eventArgs);\r\n var allowEditingOnEnterKey = this._allowEditingOnEnterKey();\r\n if (isEditing || !allowEditingOnEnterKey && direction) {\r\n this._handleEnterKeyEditingCell(eventArgs.originalEvent).done(() => {\r\n if (\"next\" === direction || \"previous\" === direction) {\r\n this._targetCellTabHandler(eventArgs, direction)\r\n } else if (\"upArrow\" === direction || \"downArrow\" === direction) {\r\n this._navigateNextCell(eventArgs.originalEvent, direction)\r\n }\r\n })\r\n } else if (allowEditingOnEnterKey) {\r\n this._startEditing(eventArgs)\r\n }\r\n }\r\n _getEnterKeyDirection(eventArgs) {\r\n var enterKeyDirection = this.option(\"keyboardNavigation.enterKeyDirection\");\r\n var isShift = eventArgs.shift;\r\n if (\"column\" === enterKeyDirection) {\r\n return isShift ? \"upArrow\" : \"downArrow\"\r\n }\r\n if (\"row\" === enterKeyDirection) {\r\n return isShift ? \"previous\" : \"next\"\r\n }\r\n return\r\n }\r\n _handleEnterKeyEditingCell(event) {\r\n var d = Deferred();\r\n var {\r\n target: target\r\n } = event;\r\n var $cell = this._getCellElementFromTarget(target);\r\n var isRowEditMode = this._isRowEditMode();\r\n this._updateFocusedCellPosition($cell);\r\n if (isRowEditMode) {\r\n this._focusEditFormCell($cell);\r\n setTimeout(this._editingController.saveEditData.bind(this._editingController));\r\n d.resolve()\r\n } else {\r\n eventsEngine.trigger($(target), \"change\");\r\n this._closeEditCell().always(d.resolve);\r\n event.preventDefault()\r\n }\r\n return d\r\n }\r\n _escapeKeyHandler(eventArgs, isEditing) {\r\n var $cell = this._getCellElementFromTarget(eventArgs.originalEvent.target);\r\n if (isEditing) {\r\n this._updateFocusedCellPosition($cell);\r\n if (!this._isRowEditMode()) {\r\n if (\"cell\" === this._editingController.getEditMode()) {\r\n this._editingController.cancelEditData()\r\n } else {\r\n this._closeEditCell()\r\n }\r\n } else {\r\n this._focusEditFormCell($cell);\r\n this._editingController.cancelEditData();\r\n if (0 === this._dataController.items().length) {\r\n this._resetFocusedCell();\r\n this._editorFactory.loseFocus()\r\n }\r\n }\r\n eventArgs.originalEvent.preventDefault();\r\n return true\r\n }\r\n return false\r\n }\r\n _ctrlFKeyHandler(eventArgs) {\r\n if (this.option(\"searchPanel.visible\")) {\r\n var searchTextEditor = this._headerPanel.getSearchTextEditor();\r\n if (searchTextEditor) {\r\n searchTextEditor.focus();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n }\r\n _f2KeyHandler() {\r\n var isEditing = this._editingController.isEditing();\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n if (!isEditing && isDataRow($row)) {\r\n this._startEditing()\r\n }\r\n }\r\n _navigateNextCell($event, keyCode) {\r\n var $cell = this._getNextCell(keyCode);\r\n var directionCode = this._getDirectionCodeByKey(keyCode);\r\n var isCellValid = $cell && this._isCellValid($cell);\r\n var result = isCellValid ? this._arrowKeysHandlerFocusCell($event, $cell, directionCode) : false;\r\n return result\r\n }\r\n _arrowKeysHandlerFocusCell($event, $nextCell, direction) {\r\n var isVerticalDirection = \"prevRow\" === direction || \"nextRow\" === direction;\r\n var args = this._fireFocusChangingEvents($event, $nextCell, isVerticalDirection, true);\r\n $nextCell = args.$newCellElement;\r\n if (!args.cancel && this._isCellValid($nextCell)) {\r\n this._focus($nextCell, !args.isHighlighted);\r\n return true\r\n }\r\n return false\r\n }\r\n _beginFastEditing(originalEvent, isDeleting) {\r\n if (!this._isFastEditingAllowed() || originalEvent.altKey || originalEvent.ctrlKey || this._editingController.isEditing()) {\r\n return false\r\n }\r\n if (isDeleting) {\r\n this._startEditing(originalEvent, FAST_EDITING_DELETE_KEY)\r\n } else {\r\n var {\r\n key: key\r\n } = originalEvent;\r\n var keyCode = originalEvent.keyCode || originalEvent.which;\r\n var fastEditingKey = key || keyCode && String.fromCharCode(keyCode);\r\n if (fastEditingKey && (1 === fastEditingKey.length || fastEditingKey === FAST_EDITING_DELETE_KEY)) {\r\n this._startEditing(originalEvent, fastEditingKey)\r\n }\r\n }\r\n return true\r\n }\r\n _pointerEventHandler(e) {\r\n var _a;\r\n var event = e.event || e;\r\n var $target = $(event.currentTarget);\r\n var focusedViewElement = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element();\r\n var $parent = $target.parent();\r\n var isInteractiveElement = $(event.target).is(INTERACTIVE_ELEMENTS_SELECTOR);\r\n var isRevertButton = !!$(event.target).closest(\".\".concat(REVERT_BUTTON_CLASS)).length;\r\n var isExpandCommandCell = $target.hasClass(COMMAND_EXPAND_CLASS);\r\n if (!this._isEventInCurrentGrid(event)) {\r\n return\r\n }\r\n if (!isRevertButton && (this._isCellValid($target, !isInteractiveElement) || isExpandCommandCell)) {\r\n $target = this._isInsideEditForm($target) ? $(event.target) : $target;\r\n this._focusView();\r\n $(focusedViewElement).removeClass(FOCUS_STATE_CLASS);\r\n if ($parent.hasClass(FREESPACE_ROW_CLASS)) {\r\n this._updateFocusedCellPosition($target);\r\n this._applyTabIndexToElement(this._focusedView.element());\r\n this._focusedView.focus(true)\r\n } else if (!this._isMasterDetailCell($target)) {\r\n this._clickTargetCellHandler(event, $target)\r\n } else {\r\n this._updateFocusedCellPosition($target)\r\n }\r\n } else if ($target.is(\"td\")) {\r\n this._resetFocusedCell()\r\n }\r\n }\r\n _clickTargetCellHandler(event, $cell) {\r\n var column = this._getColumnByCellElement($cell);\r\n var isCellEditMode = this._isCellEditMode();\r\n this.setCellFocusType();\r\n var args = this._fireFocusChangingEvents(event, $cell, true);\r\n $cell = args.$newCellElement;\r\n if (!args.cancel) {\r\n if (args.resetFocusedRow) {\r\n this._focusController._resetFocusedRow();\r\n return\r\n }\r\n if (args.rowIndexChanged) {\r\n $cell = this._getFocusedCell()\r\n }\r\n if (!args.isHighlighted && !isCellEditMode) {\r\n this.setRowFocusType()\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n if (this._allowRowUpdating() && isCellEditMode && column && column.allowEditing) {\r\n this._isNeedFocus = false;\r\n this._isHiddenFocus = false\r\n } else {\r\n $cell = this._getFocusedCell();\r\n var $target = event && $(event.target).closest(\"\".concat(NON_FOCUSABLE_ELEMENTS_SELECTOR, \", td\"));\r\n var skipFocusEvent = $target && $target.not($cell).is(NON_FOCUSABLE_ELEMENTS_SELECTOR);\r\n var isEditor = !!column && !column.command && $cell.hasClass(EDITOR_CELL_CLASS);\r\n var isDisabled = !isEditor && (!args.isHighlighted || skipFocusEvent);\r\n this._focus($cell, isDisabled, skipFocusEvent)\r\n }\r\n } else {\r\n this.setRowFocusType();\r\n this.setFocusedRowIndex(args.prevRowIndex);\r\n if (this._editingController.isEditing() && isCellEditMode) {\r\n this._closeEditCell()\r\n }\r\n }\r\n }\r\n _allowRowUpdating() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var row = this._dataController.items()[rowIndex];\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }, \"click\")\r\n }\r\n focus(element) {\r\n var activeElementSelector;\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var isHighlighted = this._isCellElement($(element));\r\n if (!element) {\r\n activeElementSelector = \".dx-datagrid-rowsview .dx-row[tabindex]\";\r\n if (!focusedRowEnabled) {\r\n activeElementSelector += \", .dx-datagrid-rowsview .dx-row > td[tabindex]\"\r\n }\r\n element = this.component.$element().find(activeElementSelector).first()\r\n }\r\n element && this._focusElement($(element), isHighlighted)\r\n }\r\n getFocusedView() {\r\n return this._focusedView\r\n }\r\n setupFocusedView() {\r\n if (this.isKeyboardEnabled() && !isDefined(this._focusedView)) {\r\n this._focusView()\r\n }\r\n }\r\n _focusElement($element, isHighlighted) {\r\n var rowsViewElement = $(this._getRowsViewElement());\r\n var $focusedView = $element.closest(rowsViewElement);\r\n var isRowFocusType = this.isRowFocusType();\r\n var args = {};\r\n if (!$focusedView.length || this._isCellElement($element) && !this._isCellValid($element)) {\r\n return\r\n }\r\n this._focusView();\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n if (this._isCellElement($element) || isGroupRow($element)) {\r\n this.setCellFocusType();\r\n args = this._fireFocusChangingEvents(null, $element, true, isHighlighted);\r\n $element = args.$newCellElement;\r\n if (isRowFocusType && !args.isHighlighted) {\r\n this.setRowFocusType()\r\n }\r\n }\r\n if (!args.cancel) {\r\n this._focus($element, !args.isHighlighted);\r\n this._focusInteractiveElement($element)\r\n }\r\n }\r\n _getFocusedViewByElement($element) {\r\n var view = this.getFocusedView();\r\n var $view = view && $(view.element());\r\n return $element && 0 !== $element.closest($view).length\r\n }\r\n _focusView() {\r\n this._focusedView = this._rowsView\r\n }\r\n _resetFocusedView() {\r\n this.setRowFocusType();\r\n this._focusedView = null\r\n }\r\n _focusInteractiveElement($cell, isLast) {\r\n if (!$cell) {\r\n return\r\n }\r\n var $focusedElement = this._getInteractiveElement($cell, isLast);\r\n gridCoreUtils.focusAndSelectElement(this, $focusedElement)\r\n }\r\n _focus($cell, disableFocus, skipFocusEvent) {\r\n var $row = $cell && !$cell.hasClass(ROW_CLASS) ? $cell.closest(\".\".concat(ROW_CLASS)) : $cell;\r\n if ($row && isNotFocusedRow($row)) {\r\n return\r\n }\r\n var focusedView = this._focusedView;\r\n var $focusViewElement = focusedView && focusedView.element();\r\n var $focusElement;\r\n this._isHiddenFocus = disableFocus;\r\n var isRowFocus = isGroupRow($row) || isGroupFooterRow($row) || this.isRowFocusType();\r\n if (isRowFocus) {\r\n $focusElement = $row;\r\n if (focusedView) {\r\n this.setFocusedRowIndex(this._getRowIndex($row))\r\n }\r\n } else if (this._isCellElement($cell)) {\r\n $focusElement = $cell;\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n if ($focusElement) {\r\n if ($focusViewElement) {\r\n $focusViewElement.find(\".dx-row[tabindex], .dx-row > td[tabindex]\").not($focusElement).removeClass(CELL_FOCUS_DISABLED_CLASS).removeClass(FOCUSED_CLASS).removeAttr(\"tabindex\")\r\n }\r\n eventsEngine.one($focusElement, \"blur\", e => {\r\n if (e.relatedTarget) {\r\n $focusElement.removeClass(CELL_FOCUS_DISABLED_CLASS).removeClass(FOCUSED_CLASS)\r\n }\r\n });\r\n if (!skipFocusEvent) {\r\n this._applyTabIndexToElement($focusElement);\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n if (disableFocus) {\r\n $focusElement.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (isRowFocus) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS)\r\n }\r\n } else {\r\n this._editorFactory.focus($focusElement)\r\n }\r\n }\r\n }\r\n _updateFocus(isRenderView) {\r\n this._updateFocusTimeout = setTimeout(() => {\r\n if (this._needFocusEditingCell()) {\r\n this._editingController._focusEditingCell();\r\n return\r\n }\r\n var $cell = this._getFocusedCell();\r\n var isEditing = this._editingController.isEditing();\r\n if (!this._isMasterDetailCell($cell) || this._isRowEditMode()) {\r\n if (this._hasSkipRow($cell.parent())) {\r\n var direction = this._focusedCellPosition && this._focusedCellPosition.rowIndex > 0 ? \"upArrow\" : \"downArrow\";\r\n $cell = this._getNextCell(direction)\r\n }\r\n if (isElementDefined($cell)) {\r\n if ($cell.is(\"td\") || $cell.hasClass(this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS))) {\r\n var isCommandCell = $cell.is(COMMAND_CELL_SELECTOR);\r\n var $focusedElementInsideCell = $cell.find(\":focus\");\r\n var isFocusedElementDefined = isElementDefined($focusedElementInsideCell);\r\n var column = this._getColumnByCellElement($cell);\r\n if ((isRenderView || !isCommandCell) && this._editorFactory.focus()) {\r\n if (isCommandCell && isFocusedElementDefined) {\r\n gridCoreUtils.focusAndSelectElement(this, $focusedElementInsideCell);\r\n return\r\n }!isFocusedElementDefined && this._focus($cell)\r\n } else if (!isFocusedElementDefined && (this._isNeedFocus || this._isHiddenFocus)) {\r\n this._focus($cell, this._isHiddenFocus)\r\n }\r\n if (isEditing && !(null === column || void 0 === column ? void 0 : column.showEditorAlways)) {\r\n this._focusInteractiveElement.bind(this)($cell)\r\n }\r\n } else {\r\n eventsEngine.trigger($cell, \"focus\")\r\n }\r\n }\r\n }\r\n })\r\n }\r\n _getColumnByCellElement($cell) {\r\n var cellIndex = this._rowsView.getCellIndex($cell);\r\n var columnIndex = cellIndex + this._columnsController.getColumnIndexOffset();\r\n return this._columnsController.getVisibleColumns(null, true)[columnIndex]\r\n }\r\n _needFocusEditingCell() {\r\n var isCellEditMode = this._editingController.getEditMode() === EDIT_MODE_CELL;\r\n var isBatchEditMode = this._editingController.getEditMode() === EDIT_MODE_BATCH;\r\n var cellEditModeHasChanges = isCellEditMode && this._editingController.hasChanges();\r\n var isNewRowBatchEditMode = isBatchEditMode && this._editingController.isNewRowInEditMode();\r\n var $cell = this._getFocusedCell();\r\n return (0 === $cell.children().length || $cell.find(FOCUSABLE_ELEMENT_SELECTOR).length > 0) && (cellEditModeHasChanges || isNewRowBatchEditMode)\r\n }\r\n _getFocusedCell() {\r\n return $(this._getCell(this._focusedCellPosition))\r\n }\r\n _updateFocusedCellPositionByTarget(target) {\r\n var _a;\r\n var elementType = this._getElementType(target);\r\n if (\"row\" === elementType && isDefined(null === (_a = this._focusedCellPosition) || void 0 === _a ? void 0 : _a.columnIndex)) {\r\n var $row = $(target);\r\n this._focusedView && isGroupRow($row) && this.setFocusedRowIndex(this._getRowIndex($row))\r\n } else {\r\n this._updateFocusedCellPosition(this._getCellElementFromTarget(target))\r\n }\r\n }\r\n _updateFocusedCellPosition($cell, direction) {\r\n var position = this._getCellPosition($cell, direction);\r\n if (position) {\r\n if (!$cell.length || position.rowIndex >= 0 && position.columnIndex >= 0) {\r\n this.setFocusedCellPosition(position.rowIndex, position.columnIndex)\r\n }\r\n }\r\n return position\r\n }\r\n _getFocusedColumnIndexOffset(columnIndex) {\r\n var offset = 0;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n if (column && column.fixed) {\r\n offset = this._getFixedColumnIndexOffset(column)\r\n } else if (columnIndex >= 0) {\r\n offset = this._columnsController.getColumnIndexOffset()\r\n }\r\n return offset\r\n }\r\n _getFixedColumnIndexOffset(column) {\r\n var offset = isFixedColumnIndexOffsetRequired(this, column) ? this._getVisibleColumnCount() - this._columnsController.getVisibleColumns().length : 0;\r\n return offset\r\n }\r\n _getCellPosition($cell, direction) {\r\n var columnIndex;\r\n var $row = isElementDefined($cell) && $cell.closest(\"tr\");\r\n if (isElementDefined($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n columnIndex = this._rowsView.getCellIndex($cell, rowIndex);\r\n columnIndex += this._getFocusedColumnIndexOffset(columnIndex);\r\n if (direction) {\r\n columnIndex = \"previous\" === direction ? columnIndex - 1 : columnIndex + 1;\r\n columnIndex = this._applyColumnIndexBoundaries(columnIndex)\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n return\r\n }\r\n _focusCell($cell, isDisabled) {\r\n if (this._isCellValid($cell)) {\r\n this._focus($cell, isDisabled);\r\n return true\r\n }\r\n return\r\n }\r\n _focusEditFormCell($cell) {\r\n if ($cell.hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n this._editorFactory.focus($cell, true)\r\n }\r\n }\r\n _resetFocusedCell(preventScroll) {\r\n var _a;\r\n var $cell = this._getFocusedCell();\r\n isElementDefined($cell) && $cell.removeAttr(\"tabindex\");\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n this._focusedCellPosition = {};\r\n clearTimeout(this._updateFocusTimeout);\r\n null === (_a = this._focusedView) || void 0 === _a ? void 0 : _a.renderFocusState({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n restoreFocusableElement(rowIndex, $event) {\r\n var args;\r\n var $rowElement;\r\n var isUpArrow = isDefined(rowIndex);\r\n var $rowsViewElement = this._rowsView.element();\r\n var {\r\n columnIndex: columnIndex\r\n } = this._focusedCellPosition;\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n rowIndex = isUpArrow ? rowIndex : this._rowsView.getTopVisibleItemIndex() + rowIndexOffset;\r\n if (!isUpArrow) {\r\n this._editorFactory.loseFocus();\r\n this._applyTabIndexToElement($rowsViewElement);\r\n eventsEngine.trigger($rowsViewElement, \"focus\")\r\n } else {\r\n $rowElement = this._rowsView.getRow(rowIndex - rowIndexOffset);\r\n args = this._fireFocusedRowChanging($event, $rowElement);\r\n if (!args.cancel && args.rowIndexChanged) {\r\n rowIndex = args.newRowIndex\r\n }\r\n }\r\n if (!isUpArrow || !args.cancel) {\r\n this.setFocusedCellPosition(rowIndex, columnIndex)\r\n }\r\n isUpArrow && this._updateFocus()\r\n }\r\n _getNewPositionByCode(cellPosition, elementType, code) {\r\n var {\r\n columnIndex: columnIndex\r\n } = cellPosition;\r\n var {\r\n rowIndex: rowIndex\r\n } = cellPosition;\r\n var visibleColumnsCount;\r\n if (void 0 === cellPosition.rowIndex && \"next\" === code) {\r\n return {\r\n columnIndex: 0,\r\n rowIndex: 0\r\n }\r\n }\r\n switch (code) {\r\n case \"nextInRow\":\r\n case \"next\":\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < visibleColumnsCount - 1 && \"row\" !== elementType && this._hasValidCellAfterPosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex++\r\n } else if (!this._isLastRow(rowIndex) && \"next\" === code) {\r\n columnIndex = 0;\r\n rowIndex++\r\n }\r\n break;\r\n case \"previousInRow\":\r\n case \"previous\":\r\n if (columnIndex > 0 && \"row\" !== elementType && this._hasValidCellBeforePosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex--\r\n } else if (rowIndex > 0 && \"previous\" === code) {\r\n rowIndex--;\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n break;\r\n case \"upArrow\":\r\n rowIndex = rowIndex > 0 ? rowIndex - 1 : rowIndex;\r\n break;\r\n case \"downArrow\":\r\n rowIndex = !this._isLastRow(rowIndex) ? rowIndex + 1 : rowIndex\r\n }\r\n return {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n setFocusedCellPosition(rowIndex, columnIndex) {\r\n this.setFocusedRowIndex(rowIndex);\r\n this.setFocusedColumnIndex(columnIndex)\r\n }\r\n setFocusedRowIndex(rowIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.rowIndex = rowIndex\r\n }\r\n setFocusedColumnIndex(columnIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.columnIndex = columnIndex\r\n }\r\n getRowIndex() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.rowIndex : -1\r\n }\r\n getColumnIndex() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.columnIndex : -1\r\n }\r\n getVisibleRowIndex() {\r\n var _a;\r\n var rowIndex = null === (_a = this._focusedCellPosition) || void 0 === _a ? void 0 : _a.rowIndex;\r\n return !isDefined(rowIndex) || rowIndex < 0 ? -1 : rowIndex - this._dataController.getRowIndexOffset()\r\n }\r\n getVisibleColumnIndex() {\r\n var _a;\r\n var columnIndex = null === (_a = this._focusedCellPosition) || void 0 === _a ? void 0 : _a.columnIndex;\r\n return !isDefined(columnIndex) ? -1 : columnIndex - this._columnsController.getColumnIndexOffset()\r\n }\r\n _applyColumnIndexBoundaries(columnIndex) {\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n } else if (columnIndex >= visibleColumnsCount) {\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n return columnIndex\r\n }\r\n _isCellByPositionValid(cellPosition) {\r\n var $cell = $(this._getCell(cellPosition));\r\n return this._isCellValid($cell)\r\n }\r\n _isLastRow(rowIndex) {\r\n var dataController = this._dataController;\r\n if (this._isVirtualRowRender()) {\r\n return rowIndex >= dataController.getMaxRowIndex()\r\n }\r\n var lastVisibleIndex = Math.max(...dataController.items().map((item, index) => false !== item.visible ? index : -1));\r\n return rowIndex === lastVisibleIndex\r\n }\r\n _isFirstValidCell(cellPosition) {\r\n var isFirstValidCell = false;\r\n if (0 === cellPosition.rowIndex && cellPosition.columnIndex >= 0) {\r\n isFirstValidCell = isFirstValidCell || !this._hasValidCellBeforePosition(cellPosition)\r\n }\r\n return isFirstValidCell\r\n }\r\n _hasValidCellBeforePosition(cellPosition) {\r\n var {\r\n columnIndex: columnIndex\r\n } = cellPosition;\r\n var hasValidCells = false;\r\n while (columnIndex > 0 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: --columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n }\r\n _hasValidCellAfterPosition(cellPosition) {\r\n var {\r\n columnIndex: columnIndex\r\n } = cellPosition;\r\n var hasValidCells = false;\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n while (columnIndex < visibleColumnCount - 1 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: ++columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n }\r\n _isLastValidCell(cellPosition) {\r\n var nextColumnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex + 1 : 0;\r\n var {\r\n rowIndex: rowIndex\r\n } = cellPosition;\r\n var checkingPosition = {\r\n columnIndex: nextColumnIndex,\r\n rowIndex: rowIndex\r\n };\r\n var visibleRows = this._dataController.getVisibleRows();\r\n var row = visibleRows && visibleRows[rowIndex];\r\n var isLastRow = this._isLastRow(rowIndex);\r\n if (!isLastRow) {\r\n return false\r\n }\r\n var isFullRowFocus = \"group\" === (null === row || void 0 === row ? void 0 : row.rowType) || \"groupFooter\" === (null === row || void 0 === row ? void 0 : row.rowType);\r\n if (isFullRowFocus && cellPosition.columnIndex > 0) {\r\n return true\r\n }\r\n if (cellPosition.columnIndex === this._getVisibleColumnCount() - 1) {\r\n return true\r\n }\r\n if (this._isCellByPositionValid(checkingPosition)) {\r\n return false\r\n }\r\n return this._isLastValidCell(checkingPosition)\r\n }\r\n _isCellValid($cell, isClick) {\r\n if (isElementDefined($cell)) {\r\n var $row = $cell.parent();\r\n var columnIndex = this._rowsView.getCellIndex($cell) + this._columnsController.getColumnIndexOffset();\r\n var column = this._getColumnByCellElement($cell);\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n var editingController = this._editingController;\r\n var isMasterDetailRow = isDetailRow($row);\r\n var isShowWhenGrouped = column && column.showWhenGrouped;\r\n var isDataCell = column && !$cell.hasClass(COMMAND_EXPAND_CLASS) && isDataRow($row);\r\n var isDragCell = GridCoreKeyboardNavigationDom.isDragCell($cell);\r\n if (isDragCell) {\r\n return false\r\n }\r\n if (this._isMasterDetailCell($cell)) {\r\n return true\r\n }\r\n if (visibleColumnCount > columnIndex && (!isMasterDetailRow && column && (!isDefined(column.groupIndex) || isShowWhenGrouped && isDataCell) || parseInt($cell.attr(\"colspan\"), 10) > 1)) {\r\n var rowItems = this._dataController.items();\r\n var visibleRowIndex = this._rowsView.getRowIndex($row);\r\n var row = rowItems[visibleRowIndex];\r\n var isCellEditing = editingController && this._isCellEditMode() && editingController.isEditing();\r\n var isRowEditingInCurrentRow = editingController && editingController.isEditRow(visibleRowIndex);\r\n var isEditing = isRowEditingInCurrentRow || isCellEditing;\r\n if (column.command) {\r\n if (this._isLegacyNavigation()) {\r\n return !isEditing && \"expand\" === column.command\r\n }\r\n if (isCellEditing) {\r\n return false\r\n }\r\n if (isRowEditingInCurrentRow) {\r\n return \"select\" !== column.command\r\n }\r\n return !isEditing\r\n }\r\n if (isCellEditing && row && \"data\" !== row.rowType) {\r\n return false\r\n }\r\n return !isEditing || column.allowEditing || isClick\r\n }\r\n }\r\n }\r\n getFirstValidCellInRow($row, columnIndex) {\r\n var $cells = $row.find(\"> td\");\r\n var $cell;\r\n var $result;\r\n columnIndex = columnIndex || 0;\r\n for (var i = columnIndex; i < $cells.length; ++i) {\r\n $cell = $cells.eq(i);\r\n if (this._isCellValid($cell)) {\r\n $result = $cell;\r\n break\r\n }\r\n }\r\n return $result\r\n }\r\n _getNextCell(keyCode, elementType, cellPosition) {\r\n var focusedCellPosition = cellPosition || this._focusedCellPosition;\r\n var isRowFocusType = this.isRowFocusType();\r\n var includeCommandCells = isRowFocusType || [\"next\", \"previous\"].includes(keyCode);\r\n var $cell;\r\n var $row;\r\n if (this._focusedView && focusedCellPosition) {\r\n var newFocusedCellPosition = this._getNewPositionByCode(focusedCellPosition, elementType, keyCode);\r\n $cell = $(this._getCell(newFocusedCellPosition));\r\n var isLastCellOnDirection = \"previous\" === keyCode ? this._isFirstValidCell(newFocusedCellPosition) : this._isLastValidCell(newFocusedCellPosition);\r\n if (isElementDefined($cell) && !this._isCellValid($cell) && this._isCellInRow(newFocusedCellPosition, includeCommandCells) && !isLastCellOnDirection) {\r\n if (isRowFocusType) {\r\n $cell = this.getFirstValidCellInRow($cell.parent(), newFocusedCellPosition.columnIndex)\r\n } else {\r\n $cell = this._getNextCell(keyCode, \"cell\", newFocusedCellPosition)\r\n }\r\n }\r\n $row = isElementDefined($cell) && $cell.parent();\r\n if (this._hasSkipRow($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n if (!this._isLastRow(rowIndex)) {\r\n $cell = this._getNextCell(keyCode, \"row\", {\r\n columnIndex: focusedCellPosition.columnIndex,\r\n rowIndex: rowIndex\r\n })\r\n } else {\r\n return null\r\n }\r\n }\r\n return isElementDefined($cell) ? $cell : null\r\n }\r\n return null\r\n }\r\n _startEditing(eventArgs, fastEditingKey) {\r\n var focusedCellPosition = this._focusedCellPosition;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var visibleColumnIndex = this.getVisibleColumnIndex();\r\n var row = this._dataController.items()[visibleRowIndex];\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (this._isAllowEditing(row, column)) {\r\n if (this._isRowEditMode()) {\r\n this._editingController.editRow(visibleRowIndex)\r\n } else if (focusedCellPosition) {\r\n this._startEditCell(eventArgs, fastEditingKey)\r\n }\r\n }\r\n }\r\n _isAllowEditing(row, column) {\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }) && column && column.allowEditing\r\n }\r\n _editFocusedCell() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var colIndex = this.getVisibleColumnIndex();\r\n return this._editingController.editCell(rowIndex, colIndex)\r\n }\r\n _startEditCell(eventArgs, fastEditingKey) {\r\n this._fastEditingStarted = isDefined(fastEditingKey);\r\n var editResult = this._editFocusedCell();\r\n var isEditResultDeferred = isDeferred(editResult);\r\n var isFastEditingStarted = this._isFastEditingStarted();\r\n if (!isFastEditingStarted || !isEditResultDeferred && !editResult) {\r\n return\r\n }\r\n var editorValue = isEditResultDeferred && fastEditingKey === FAST_EDITING_DELETE_KEY ? \"\" : fastEditingKey;\r\n var editResultDeferred = isEditResultDeferred ? editResult : Deferred().resolve();\r\n var waitTemplatesDeferred = this._rowsView.waitAsyncTemplates(true);\r\n when(editResultDeferred, waitTemplatesDeferred).done(() => {\r\n this._editingCellHandler(eventArgs, editorValue)\r\n })\r\n }\r\n _editingCellHandler(eventArgs, editorValue) {\r\n var _a, _b;\r\n var $input = this._getFocusedCell().find(INTERACTIVE_ELEMENTS_SELECTOR).eq(0);\r\n var $inputElement = $input.get(0);\r\n if (!$inputElement) {\r\n return\r\n }\r\n var keyDownEvent = createEvent(eventArgs, {\r\n type: \"keydown\",\r\n target: $inputElement\r\n });\r\n var keyPressEvent = createEvent(eventArgs, {\r\n type: \"keypress\",\r\n target: $inputElement\r\n });\r\n var inputEvent = createEvent(eventArgs, {\r\n type: \"input\",\r\n target: $inputElement\r\n });\r\n if (inputEvent.originalEvent) {\r\n inputEvent.originalEvent = createEvent(inputEvent.originalEvent, {\r\n data: editorValue\r\n })\r\n }\r\n null === (_b = (_a = $inputElement).select) || void 0 === _b ? void 0 : _b.call(_a);\r\n eventsEngine.trigger($input, keyDownEvent);\r\n if (!keyDownEvent.isDefaultPrevented()) {\r\n eventsEngine.trigger($input, keyPressEvent);\r\n if (!keyPressEvent.isDefaultPrevented()) {\r\n var timeout = browser.mozilla ? 25 : 0;\r\n setTimeout(() => {\r\n var inputValue = this._getKeyPressInputValue($input, editorValue);\r\n $input.val(inputValue);\r\n var $widgetContainer = $input.closest(\".\".concat(WIDGET_CLASS));\r\n eventsEngine.off($widgetContainer, \"focusout\");\r\n eventsEngine.one($widgetContainer, \"focusout\", () => {\r\n eventsEngine.trigger($input, \"change\")\r\n });\r\n eventsEngine.trigger($input, inputEvent)\r\n }, timeout)\r\n }\r\n }\r\n }\r\n _getKeyPressInputValue($input, editorValue) {\r\n var inputCurrentValue = $input.val();\r\n return \"-\" === editorValue && \"-0\" === inputCurrentValue ? \"-0\" : editorValue\r\n }\r\n _fireFocusChangingEvents($event, $cell, fireRowEvent, isHighlighted) {\r\n var _a;\r\n var args = {};\r\n var cellPosition = null !== (_a = this._getCellPosition($cell)) && void 0 !== _a ? _a : {};\r\n if (this.isCellFocusType()) {\r\n args = this._fireFocusedCellChanging($event, $cell, isHighlighted);\r\n if (!args.cancel) {\r\n cellPosition.columnIndex = args.newColumnIndex;\r\n cellPosition.rowIndex = args.newRowIndex;\r\n isHighlighted = args.isHighlighted;\r\n $cell = $(this._getCell(cellPosition))\r\n }\r\n }\r\n if (!args.cancel && fireRowEvent && $cell) {\r\n args = this._fireFocusedRowChanging($event, $cell.parent());\r\n if (!args.cancel) {\r\n cellPosition.rowIndex = args.newRowIndex;\r\n args.isHighlighted = isHighlighted\r\n }\r\n }\r\n args.$newCellElement = $(this._getCell(cellPosition));\r\n if (!args.$newCellElement.length) {\r\n args.$newCellElement = $cell\r\n }\r\n return args\r\n }\r\n _fireFocusedCellChanging($event, $cellElement, isHighlighted) {\r\n var prevColumnIndex = this.option(\"focusedColumnIndex\");\r\n var prevRowIndex = this.option(\"focusedRowIndex\");\r\n var cellPosition = this._getCellPosition($cellElement);\r\n var columnIndex = cellPosition ? cellPosition.columnIndex : -1;\r\n var rowIndex = cellPosition ? cellPosition.rowIndex : -1;\r\n var visibleRows = this._dataController.getVisibleRows();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var args = {\r\n cellElement: $cellElement,\r\n prevColumnIndex: prevColumnIndex,\r\n prevRowIndex: prevRowIndex,\r\n newColumnIndex: columnIndex,\r\n newRowIndex: rowIndex,\r\n rows: visibleRows,\r\n columns: visibleColumns,\r\n event: $event,\r\n isHighlighted: isHighlighted || false,\r\n cancel: false\r\n };\r\n this._canceledCellPosition = null;\r\n this.executeAction(\"onFocusedCellChanging\", args);\r\n if (args.newColumnIndex !== columnIndex || args.newRowIndex !== rowIndex) {\r\n args.$newCellElement = $(this._getCell({\r\n columnIndex: args.newColumnIndex,\r\n rowIndex: args.newRowIndex\r\n }))\r\n }\r\n if (args.cancel) {\r\n this._canceledCellPosition = {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n return args\r\n }\r\n _fireFocusedCellChanged($cell) {\r\n var columnIndex = this._rowsView.getCellIndex($cell);\r\n var rowOptions = null === $cell || void 0 === $cell ? void 0 : $cell.parent().data(\"options\");\r\n var focusedRowKey = null === rowOptions || void 0 === rowOptions ? void 0 : rowOptions.key;\r\n this._memoFireFocusedCellChanged(focusedRowKey, columnIndex)\r\n }\r\n _memoFireFocusedCellChanged(rowKey, columnIndex) {\r\n var $cell = this._getFocusedCell();\r\n var rowIndex = this._getRowIndex(null === $cell || void 0 === $cell ? void 0 : $cell.parent());\r\n var localRowIndex = Math.min(rowIndex - this._dataController.getRowIndexOffset(), this._dataController.items().length - 1);\r\n var isEditingCell = this._editingController.isEditCell(localRowIndex, columnIndex);\r\n if (isEditingCell) {\r\n return\r\n }\r\n var row = this._dataController.items()[localRowIndex];\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n this.executeAction(\"onFocusedCellChanged\", {\r\n cellElement: $cell ? getPublicElement($cell) : void 0,\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n row: row,\r\n column: column\r\n })\r\n }\r\n _fireFocusedRowChanging(eventArgs, $newFocusedRow) {\r\n var newRowIndex = this._getRowIndex($newFocusedRow);\r\n var prevFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var loadingOperationTypes = this._dataController.loadingOperationTypes();\r\n var args = {\r\n rowElement: $newFocusedRow,\r\n prevRowIndex: prevFocusedRowIndex,\r\n newRowIndex: newRowIndex,\r\n event: eventArgs,\r\n rows: this._dataController.getVisibleRows(),\r\n cancel: false\r\n };\r\n var loadingOperations = loadingOperationTypes.sorting || loadingOperationTypes.grouping || loadingOperationTypes.filtering || loadingOperationTypes.paging;\r\n if (!this._dataController || this._dataController.isLoading() && loadingOperations) {\r\n args.cancel = true;\r\n return args\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.executeAction(\"onFocusedRowChanging\", args);\r\n if (!args.cancel && args.newRowIndex !== newRowIndex) {\r\n args.resetFocusedRow = args.newRowIndex < 0;\r\n if (!args.resetFocusedRow) {\r\n this.setFocusedRowIndex(args.newRowIndex)\r\n }\r\n args.rowIndexChanged = true\r\n }\r\n }\r\n return args\r\n }\r\n _fireFocusedRowChanged() {\r\n var _a;\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var focusedRowIndex = null === (_a = this._focusController) || void 0 === _a ? void 0 : _a.getFocusedRowIndexByKey(focusedRowKey);\r\n if (!focusedRowEnabled || isDefined(focusedRowKey) && focusedRowIndex < 0) {\r\n return\r\n }\r\n this._memoFireFocusedRowChanged(focusedRowKey, focusedRowIndex)\r\n }\r\n _memoFireFocusedRowChanged(focusedRowKey, focusedRowIndex) {\r\n var localRowIndex = focusedRowIndex - this._dataController.getRowIndexOffset();\r\n this.executeAction(\"onFocusedRowChanged\", {\r\n rowElement: focusedRowIndex < 0 ? void 0 : this._rowsView.getRowElement(localRowIndex),\r\n rowIndex: focusedRowIndex,\r\n row: focusedRowIndex < 0 ? void 0 : this._dataController.getVisibleRows()[localRowIndex]\r\n })\r\n }\r\n _isEventInCurrentGrid(event) {\r\n return gridCoreUtils.isElementInCurrentGrid(this, $(event.target))\r\n }\r\n _isRowEditMode() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_ROW || editMode === EDIT_MODE_FORM\r\n }\r\n _isCellEditMode() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_CELL || editMode === EDIT_MODE_BATCH\r\n }\r\n _isFastEditingAllowed() {\r\n return this._isCellEditMode() && this.option(\"keyboardNavigation.editOnKeyPress\")\r\n }\r\n _getInteractiveElement($cell, isLast) {\r\n var $focusedElement = $cell.find(INTERACTIVE_ELEMENTS_SELECTOR).filter(\":visible\");\r\n return isLast ? $focusedElement.last() : $focusedElement.first()\r\n }\r\n _applyTabIndexToElement($element) {\r\n var _a;\r\n var tabIndex = null !== (_a = this.option(\"tabIndex\")) && void 0 !== _a ? _a : 0;\r\n $element.attr(\"tabindex\", tabIndex)\r\n }\r\n _getCell(cellPosition) {\r\n if (this._focusedView && cellPosition) {\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n var column = this._columnsController.getVisibleColumns(null, true)[cellPosition.columnIndex];\r\n var columnIndexOffset = column && column.fixed ? this._getFixedColumnIndexOffset(column) : this._columnsController.getColumnIndexOffset();\r\n var rowIndex = cellPosition.rowIndex >= 0 ? cellPosition.rowIndex - rowIndexOffset : -1;\r\n var columnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex - columnIndexOffset : -1;\r\n return this._focusedView.getCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n }\r\n }\r\n _getRowIndex($row) {\r\n var rowIndex = this._rowsView.getRowIndex($row);\r\n if (rowIndex >= 0) {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n return rowIndex\r\n }\r\n _hasSkipRow($row) {\r\n var row = $row && $row.get(0);\r\n return row && (\"none\" === row.style.display || isDetailRow($row) && !$row.hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS)))\r\n }\r\n _allowEditingOnEnterKey() {\r\n return \"startEdit\" === this.option(\"keyboardNavigation.enterKeyAction\")\r\n }\r\n _isLegacyNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n }\r\n _getDirectionCodeByKey(key) {\r\n var directionCode;\r\n switch (key) {\r\n case \"upArrow\":\r\n directionCode = \"prevRow\";\r\n break;\r\n case \"downArrow\":\r\n directionCode = \"nextRow\";\r\n break;\r\n case \"leftArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"nextInRow\" : \"previousInRow\";\r\n break;\r\n case \"rightArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"previousInRow\" : \"nextInRow\"\r\n }\r\n return directionCode\r\n }\r\n _isVirtualScrolling() {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n }\r\n _isVirtualRowRender() {\r\n return this._isVirtualScrolling() || gridCoreUtils.isVirtualRowRendering(this)\r\n }\r\n _isVirtualColumnRender() {\r\n return \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n }\r\n _scrollBy(left, top, rowIndex, $event) {\r\n var that = this;\r\n var scrollable = this._rowsView.getScrollable();\r\n if (that._focusedCellPosition) {\r\n scrollable.on(\"scroll\", (function scrollHandler() {\r\n scrollable.off(\"scroll\", scrollHandler);\r\n setTimeout(that.restoreFocusableElement.bind(that, rowIndex, $event))\r\n }))\r\n }\r\n return scrollable.scrollBy({\r\n left: left,\r\n top: top\r\n })\r\n }\r\n _isInsideEditForm(element) {\r\n var $editForm = $(element).closest(\".\".concat(this.addWidgetPrefix(EDIT_FORM_CLASS)));\r\n return $editForm.length && this.elementIsInsideGrid($editForm)\r\n }\r\n _isMasterDetailCell(element) {\r\n var $masterDetailCell = $(element).closest(\".\".concat(MASTER_DETAIL_CELL_CLASS));\r\n return $masterDetailCell.length && this.elementIsInsideGrid($masterDetailCell)\r\n }\r\n _processNextCellInMasterDetail($nextCell, _$cell) {\r\n if (!this._isInsideEditForm($nextCell) && $nextCell) {\r\n this._applyTabIndexToElement($nextCell)\r\n }\r\n }\r\n _handleTabKeyOnMasterDetailCell(target, direction) {\r\n if (this._isMasterDetailCell(target)) {\r\n this._updateFocusedCellPosition($(target), direction);\r\n var $nextCell = this._getNextCell(direction, \"row\");\r\n this._processNextCellInMasterDetail($nextCell, $(target));\r\n return true\r\n }\r\n return false\r\n }\r\n _getElementType(target) {\r\n return $(target).is(\"tr\") ? \"row\" : \"cell\"\r\n }\r\n _isFastEditingStarted() {\r\n return this._isFastEditingAllowed() && this._fastEditingStarted\r\n }\r\n _getVisibleColumnCount() {\r\n return this._columnsController.getVisibleColumns(null, true).length\r\n }\r\n _isCellInRow(cellPosition, includeCommandCells) {\r\n var {\r\n columnIndex: columnIndex\r\n } = cellPosition;\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n return includeCommandCells ? columnIndex >= 0 && columnIndex <= visibleColumnsCount - 1 : columnIndex > 0 && columnIndex < visibleColumnsCount - 1\r\n }\r\n _isCellElement($element) {\r\n return $element.length && \"TD\" === $element[0].tagName\r\n }\r\n _getCellElementFromTarget(target) {\r\n var elementType = this._getElementType(target);\r\n var $targetElement = $(target);\r\n var $cell;\r\n if (\"cell\" === elementType) {\r\n $cell = $targetElement.closest(\".\".concat(ROW_CLASS, \" > td\"))\r\n } else {\r\n $cell = $targetElement.children().not(\".\".concat(COMMAND_EXPAND_CLASS)).first()\r\n }\r\n return $cell\r\n }\r\n _getRowsViewElement() {\r\n var _a;\r\n return null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element()\r\n }\r\n isKeyboardEnabled() {\r\n return this.option(\"keyboardNavigation.enabled\")\r\n }\r\n _processCanceledEditCellPosition(rowIndex, columnIndex) {\r\n if (this._canceledCellPosition) {\r\n var isCanceled = this._canceledCellPosition.rowIndex === rowIndex && this._canceledCellPosition.columnIndex === columnIndex;\r\n this._canceledCellPosition = null;\r\n return isCanceled\r\n }\r\n return\r\n }\r\n updateFocusedRowIndex() {\r\n var dataController = this._dataController;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var visibleItems = dataController.items();\r\n var lastVisibleIndex = visibleItems.length ? visibleItems.length - 1 : -1;\r\n var rowIndexOffset = dataController.getRowIndexOffset();\r\n if (lastVisibleIndex >= 0 && visibleRowIndex > lastVisibleIndex) {\r\n this.setFocusedRowIndex(lastVisibleIndex + rowIndexOffset)\r\n }\r\n }\r\n}\r\nvar rowsView = Base => class extends Base {\r\n _rowClick(e) {\r\n var editRowIndex = this._editingController.getEditRowIndex();\r\n var isKeyboardEnabled = this._keyboardNavigationController.isKeyboardEnabled();\r\n if (editRowIndex === e.rowIndex) {\r\n this._keyboardNavigationController.setCellFocusType()\r\n }\r\n var needTriggerPointerEventHandler = (isMobile() || !isKeyboardEnabled) && this.option(\"focusedRowEnabled\");\r\n if (needTriggerPointerEventHandler) {\r\n this._triggerPointerDownEventHandler(e, !isKeyboardEnabled)\r\n }\r\n super._rowClick.apply(this, arguments)\r\n }\r\n _triggerPointerDownEventHandler(e, force) {\r\n var {\r\n originalEvent: originalEvent\r\n } = e.event;\r\n if (originalEvent) {\r\n var $cell = $(originalEvent.target);\r\n var columnIndex = this.getCellIndex($cell);\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var row = this._dataController.items()[e.rowIndex];\r\n if (this._keyboardNavigationController._isAllowEditing(row, column) || force) {\r\n var eventArgs = createEvent(originalEvent, {\r\n currentTarget: originalEvent.target\r\n });\r\n this._keyboardNavigationController._pointerEventHandler(eventArgs)\r\n }\r\n }\r\n }\r\n renderFocusState(params) {\r\n super.renderFocusState(params);\r\n var {\r\n preventScroll: preventScroll,\r\n pageSizeChanged: pageSizeChanged\r\n } = null !== params && void 0 !== params ? params : {};\r\n var $rowsViewElement = this.element();\r\n if ($rowsViewElement && !focused($rowsViewElement)) {\r\n $rowsViewElement.attr(\"tabindex\", null)\r\n }\r\n pageSizeChanged && this._keyboardNavigationController.updateFocusedRowIndex();\r\n var rowIndex = this._keyboardNavigationController.getVisibleRowIndex();\r\n if (!isDefined(rowIndex) || rowIndex < 0) {\r\n rowIndex = 0\r\n }\r\n var cellElements = this.getCellElements(rowIndex);\r\n if (this._keyboardNavigationController.isKeyboardEnabled() && (null === cellElements || void 0 === cellElements ? void 0 : cellElements.length)) {\r\n this.updateFocusElementTabIndex(cellElements, preventScroll)\r\n }\r\n }\r\n updateFocusElementTabIndex(cellElements, preventScroll) {\r\n var $row = cellElements.eq(0).parent();\r\n if (isGroupRow($row)) {\r\n this._keyboardNavigationController._applyTabIndexToElement($row)\r\n } else {\r\n var columnIndex = this._keyboardNavigationController.getColumnIndex();\r\n if (!isDefined(columnIndex) || columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n this._updateFocusedCellTabIndex(cellElements, columnIndex)\r\n }\r\n }\r\n _updateFocusedCellTabIndex(cellElements, columnIndex) {\r\n var keyboardController = this._keyboardNavigationController;\r\n var cellElementsLength = cellElements ? cellElements.length : -1;\r\n var updateCellTabIndex = function($cell) {\r\n var isMasterDetailCell = keyboardController._isMasterDetailCell($cell);\r\n var isValidCell = keyboardController._isCellValid($cell);\r\n if (!isMasterDetailCell && isValidCell && keyboardController._isCellElement($cell)) {\r\n keyboardController._applyTabIndexToElement($cell);\r\n keyboardController.setCellFocusType();\r\n return true\r\n }\r\n return\r\n };\r\n var $cell = GridCoreKeyboardNavigationDom.getCellToFocus(cellElements, columnIndex);\r\n if ($cell.length) {\r\n updateCellTabIndex($cell)\r\n } else {\r\n if (cellElementsLength <= columnIndex) {\r\n columnIndex = cellElementsLength - 1\r\n }\r\n for (var i = columnIndex; i < cellElementsLength; ++i) {\r\n if (updateCellTabIndex($(cellElements[i]))) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n renderDelayedTemplates(change) {\r\n super.renderDelayedTemplates.apply(this, arguments);\r\n this.waitAsyncTemplates().done(() => {\r\n this._renderFocusByChange(change)\r\n })\r\n }\r\n _renderFocusByChange(change) {\r\n var _a;\r\n var {\r\n operationTypes: operationTypes,\r\n repaintChangesOnly: repaintChangesOnly\r\n } = null !== change && void 0 !== change ? change : {};\r\n var {\r\n fullReload: fullReload,\r\n pageSize: pageSize\r\n } = null !== operationTypes && void 0 !== operationTypes ? operationTypes : {};\r\n var hasInsertsOrRemoves = !!(null === (_a = null === change || void 0 === change ? void 0 : change.changeTypes) || void 0 === _a ? void 0 : _a.find(changeType => \"insert\" === changeType || \"remove\" === changeType));\r\n if (!change || !repaintChangesOnly || fullReload || pageSize || hasInsertsOrRemoves) {\r\n var preventScroll = shouldPreventScroll(this);\r\n this.renderFocusState({\r\n preventScroll: preventScroll,\r\n pageSizeChanged: pageSize\r\n })\r\n }\r\n }\r\n _renderCore(change) {\r\n var deferred = super._renderCore.apply(this, arguments);\r\n this._renderFocusByChange(change);\r\n return deferred\r\n }\r\n _editCellPrepared($cell) {\r\n var _a;\r\n var editorInstance = this._getEditorInstance($cell);\r\n var isEditingNavigationMode = null === (_a = this._keyboardNavigationController) || void 0 === _a ? void 0 : _a._isFastEditingStarted();\r\n if (editorInstance && isEditingNavigationMode) {\r\n this._handleEditingNavigationMode(editorInstance)\r\n }\r\n super._editCellPrepared.apply(this, arguments)\r\n }\r\n _handleEditingNavigationMode(editorInstance) {\r\n [\"downArrow\", \"upArrow\"].forEach(keyName => {\r\n var originalKeyHandler = editorInstance._supportedKeys()[keyName];\r\n editorInstance.registerKeyHandler(keyName, e => {\r\n var isDropDownOpened = \"true\" === editorInstance._input().attr(\"aria-expanded\");\r\n if (isDropDownOpened) {\r\n return originalKeyHandler && originalKeyHandler.call(editorInstance, e)\r\n }\r\n })\r\n });\r\n editorInstance.registerKeyHandler(\"leftArrow\", noop);\r\n editorInstance.registerKeyHandler(\"rightArrow\", noop);\r\n var isDateBoxWithMask = editorInstance.NAME === DATEBOX_WIDGET_NAME && editorInstance.option(\"useMaskBehavior\");\r\n if (isDateBoxWithMask) {\r\n editorInstance.registerKeyHandler(\"enter\", noop)\r\n }\r\n }\r\n _getEditorInstance($cell) {\r\n var $editor = $cell.find(\".dx-texteditor\").eq(0);\r\n return gridCoreUtils.getWidgetInstance($editor)\r\n }\r\n};\r\nvar editing = Base => class extends Base {\r\n editCell(rowIndex, columnIndex) {\r\n if (this._keyboardNavigationController._processCanceledEditCellPosition(rowIndex, columnIndex)) {\r\n return false\r\n }\r\n var isCellEditing = super.editCell(rowIndex, columnIndex);\r\n if (isCellEditing) {\r\n this._keyboardNavigationController.setupFocusedView()\r\n }\r\n return isCellEditing\r\n }\r\n editRow(rowIndex) {\r\n var visibleColumnIndex = this._keyboardNavigationController.getVisibleColumnIndex();\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (column && column.type || this.option(\"editing.mode\") === EDIT_MODE_FORM) {\r\n this._keyboardNavigationController._resetFocusedCell()\r\n }\r\n super.editRow(rowIndex);\r\n return\r\n }\r\n addRow(parentKey) {\r\n this._keyboardNavigationController.setupFocusedView();\r\n this._keyboardNavigationController.setCellFocusType();\r\n return super.addRow.apply(this, arguments)\r\n }\r\n getFocusedCellInRow(rowIndex) {\r\n var $cell = super.getFocusedCellInRow(rowIndex);\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n var focusedRowIndex = this._keyboardNavigationController._focusedCellPosition.rowIndex - rowIndexOffset;\r\n if (this._keyboardNavigationController.isKeyboardEnabled() && focusedRowIndex === rowIndex) {\r\n var $focusedCell = this._keyboardNavigationController._getFocusedCell();\r\n if (isElementDefined($focusedCell) && !$focusedCell.hasClass(COMMAND_EDIT_CLASS)) {\r\n $cell = $focusedCell\r\n }\r\n }\r\n return $cell\r\n }\r\n _processCanceledEditingCell() {\r\n this.closeEditCell().done(() => {\r\n this._keyboardNavigationController._updateFocus()\r\n })\r\n }\r\n closeEditCell() {\r\n var keyboardNavigation = this._keyboardNavigationController;\r\n keyboardNavigation._fastEditingStarted = false;\r\n var result = super.closeEditCell.apply(this, arguments);\r\n var $focusedElement = this._getFocusedElement();\r\n var isFilterCell = !!$focusedElement.closest(\".\".concat(this.addWidgetPrefix(FILTER_ROW_CLASS))).length;\r\n if (!isFilterCell) {\r\n keyboardNavigation._updateFocus()\r\n }\r\n return result\r\n }\r\n _getFocusedElement() {\r\n var _a, _b;\r\n var $element = $(null === (_b = (_a = this.component).element) || void 0 === _b ? void 0 : _b.call(_a));\r\n var $focusedElement = $element.find(\":focus\");\r\n return $focusedElement\r\n }\r\n _delayedInputFocus() {\r\n this._keyboardNavigationController._isNeedScroll = true;\r\n super._delayedInputFocus.apply(this, arguments)\r\n }\r\n _isEditingStart() {\r\n var cancel = super._isEditingStart.apply(this, arguments);\r\n if (cancel && !this._keyboardNavigationController._isNeedFocus) {\r\n var $cell = this._keyboardNavigationController._getFocusedCell();\r\n this._keyboardNavigationController._focus($cell, true)\r\n }\r\n return cancel\r\n }\r\n};\r\nvar data = Base => class extends Base {\r\n _correctRowIndices(getRowIndexCorrection) {\r\n var focusedCellPosition = this._keyboardNavigationController._focusedCellPosition;\r\n super._correctRowIndices.apply(this, arguments);\r\n if (focusedCellPosition && focusedCellPosition.rowIndex >= 0) {\r\n var focusedRowIndexCorrection = getRowIndexCorrection(focusedCellPosition.rowIndex);\r\n if (focusedRowIndexCorrection) {\r\n focusedCellPosition.rowIndex += focusedRowIndexCorrection;\r\n this._editorFactoryController.refocus()\r\n }\r\n }\r\n }\r\n getMaxRowIndex() {\r\n var result = this.items().length - 1;\r\n var virtualItemsCount = this.virtualItemsCount();\r\n if (virtualItemsCount) {\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n result += rowIndexOffset + virtualItemsCount.end\r\n }\r\n return result\r\n }\r\n};\r\nvar adaptiveColumns = Base => class extends Base {\r\n _showHiddenCellsInView(_ref) {\r\n var {\r\n viewName: viewName,\r\n $cells: $cells,\r\n isCommandColumn: isCommandColumn\r\n } = _ref;\r\n super._showHiddenCellsInView.apply(this, arguments);\r\n viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && $cells.each((_, cellElement) => {\r\n var $cell = $(cellElement);\r\n isCellInHeaderRow($cell) && $cell.attr(\"tabindex\", 0)\r\n })\r\n }\r\n _hideVisibleCellInView(_ref2) {\r\n var {\r\n viewName: viewName,\r\n $cell: $cell,\r\n isCommandColumn: isCommandColumn\r\n } = _ref2;\r\n super._hideVisibleCellInView.apply(this, arguments);\r\n if (viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && isCellInHeaderRow($cell)) {\r\n $cell.removeAttr(\"tabindex\")\r\n }\r\n }\r\n _hideVisibleColumnInView(_ref3) {\r\n var {\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n } = _ref3;\r\n super._hideVisibleColumnInView({\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n });\r\n if (view.name === ROWS_VIEW) {\r\n this._rowsView.renderFocusState(null)\r\n }\r\n }\r\n};\r\nexport var keyboardNavigationModule = {\r\n defaultOptions: () => ({\r\n useLegacyKeyboardNavigation: false,\r\n keyboardNavigation: {\r\n enabled: true,\r\n enterKeyAction: \"startEdit\",\r\n enterKeyDirection: \"none\",\r\n editOnKeyPress: false\r\n }\r\n }),\r\n controllers: {\r\n keyboardNavigation: KeyboardNavigationController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: rowsView\r\n },\r\n controllers: {\r\n editing: editing,\r\n data: data,\r\n adaptiveColumns: adaptiveColumns,\r\n keyboardNavigation: keyboardNavigationScrollableA11yExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/keyboard_navigation.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n keyboardNavigationModule\r\n} from \"../../../grids/grid_core/keyboard_navigation/m_keyboard_navigation\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"keyboardNavigation\", keyboardNavigationModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_aggregate_calculator.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n errors\r\n} from \"../../../data/errors\";\r\nimport {\r\n aggregators\r\n} from \"../../../data/utils\";\r\n\r\nfunction depthFirstSearch(i, depth, root, callback) {\r\n var j = 0;\r\n if (i < depth) {\r\n for (; j < root.items.length; j++) {\r\n depthFirstSearch(i + 1, depth, root.items[j], callback)\r\n }\r\n }\r\n if (i === depth) {\r\n callback(root)\r\n }\r\n}\r\n\r\nfunction map(array, callback) {\r\n var i;\r\n if (\"map\" in array) {\r\n return array.map(callback)\r\n }\r\n var result = new Array(array.length);\r\n for (i in array) {\r\n result[i] = callback(array[i], i)\r\n }\r\n return result\r\n}\r\n\r\nfunction isEmpty(x) {\r\n return x !== x || \"\" === x || null === x || void 0 === x\r\n}\r\n\r\nfunction isCount(aggregator) {\r\n return aggregator === aggregators.count\r\n}\r\n\r\nfunction normalizeAggregate(aggregate) {\r\n var selector = compileGetter(aggregate.selector);\r\n var skipEmptyValues = \"skipEmptyValues\" in aggregate ? aggregate.skipEmptyValues : true;\r\n var {\r\n aggregator: aggregator\r\n } = aggregate;\r\n if (\"string\" === typeof aggregator) {\r\n aggregator = aggregators[aggregator];\r\n if (!aggregator) {\r\n throw errors.Error(\"E4001\", aggregate.aggregator)\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n}\r\nexport default class AggregateCalculator {\r\n constructor(options) {\r\n this._data = options.data;\r\n this._groupLevel = options.groupLevel || 0;\r\n this._totalAggregates = map(options.totalAggregates || [], normalizeAggregate);\r\n this._groupAggregates = map(options.groupAggregates || [], normalizeAggregate);\r\n this._totals = []\r\n }\r\n calculate() {\r\n if (this._totalAggregates.length) {\r\n this._calculateTotals(0, {\r\n items: this._data\r\n })\r\n }\r\n if (this._groupAggregates.length && this._groupLevel > 0) {\r\n this._calculateGroups({\r\n items: this._data\r\n })\r\n }\r\n }\r\n totalAggregates() {\r\n return this._totals\r\n }\r\n _aggregate(aggregates, data, container) {\r\n var length = data.items ? data.items.length : 0;\r\n for (var i = 0; i < aggregates.length; i++) {\r\n if (isCount(aggregates[i].aggregator)) {\r\n container[i] = (container[i] || 0) + length;\r\n continue\r\n }\r\n for (var j = 0; j < length; j++) {\r\n this._accumulate(i, aggregates[i], container, data.items[j])\r\n }\r\n }\r\n }\r\n _calculateTotals(level, data) {\r\n if (0 === level) {\r\n this._totals = this._seed(this._totalAggregates)\r\n }\r\n if (level === this._groupLevel) {\r\n this._aggregate(this._totalAggregates, data, this._totals)\r\n } else {\r\n for (var i = 0; i < data.items.length; i++) {\r\n this._calculateTotals(level + 1, data.items[i])\r\n }\r\n }\r\n if (0 === level) {\r\n this._totals = this._finalize(this._totalAggregates, this._totals)\r\n }\r\n }\r\n _calculateGroups(root) {\r\n var maxLevel = this._groupLevel;\r\n var currentLevel = maxLevel + 1;\r\n var seedFn = this._seed.bind(this, this._groupAggregates);\r\n var stepFn = this._aggregate.bind(this, this._groupAggregates);\r\n var finalizeFn = this._finalize.bind(this, this._groupAggregates);\r\n\r\n function aggregator(node) {\r\n node.aggregates = seedFn(currentLevel - 1);\r\n if (currentLevel === maxLevel) {\r\n stepFn(node, node.aggregates)\r\n } else {\r\n depthFirstSearch(currentLevel, maxLevel, node, innerNode => {\r\n stepFn(innerNode, node.aggregates)\r\n })\r\n }\r\n node.aggregates = finalizeFn(node.aggregates)\r\n }\r\n while (--currentLevel > 0) {\r\n depthFirstSearch(0, currentLevel, root, aggregator)\r\n }\r\n }\r\n _seed(aggregates, groupIndex) {\r\n return map(aggregates, aggregate => {\r\n var {\r\n aggregator: aggregator\r\n } = aggregate;\r\n var seed = \"seed\" in aggregator ? isFunction(aggregator.seed) ? aggregator.seed(groupIndex) : aggregator.seed : NaN;\r\n return seed\r\n })\r\n }\r\n _accumulate(aggregateIndex, aggregate, results, item) {\r\n var value = aggregate.selector(item);\r\n var {\r\n aggregator: aggregator\r\n } = aggregate;\r\n var {\r\n skipEmptyValues: skipEmptyValues\r\n } = aggregate;\r\n if (skipEmptyValues && isEmpty(value)) {\r\n return\r\n }\r\n if (results[aggregateIndex] !== results[aggregateIndex]) {\r\n results[aggregateIndex] = value\r\n } else {\r\n results[aggregateIndex] = aggregator.step(results[aggregateIndex], value)\r\n }\r\n }\r\n _finalize(aggregates, results) {\r\n return map(aggregates, (aggregate, index) => {\r\n var fin = aggregate.aggregator.finalize;\r\n return fin ? fin(results[index]) : results[index]\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/summary/m_summary.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isPlainObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport dataQuery from \"../../../../data/query\";\r\nimport storeHelper from \"../../../../data/store_helper\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../../../data/utils\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n ColumnsView\r\n} from \"../../../grids/grid_core/views/m_columns_view\";\r\nimport AggregateCalculator from \"../m_aggregate_calculator\";\r\nimport gridCore from \"../m_core\";\r\nimport dataSourceAdapterProvider from \"../m_data_source_adapter\";\r\nvar DATAGRID_TOTAL_FOOTER_CLASS = \"dx-datagrid-total-footer\";\r\nvar DATAGRID_SUMMARY_ITEM_CLASS = \"dx-datagrid-summary-item\";\r\nvar DATAGRID_TEXT_CONTENT_CLASS = \"dx-datagrid-text-content\";\r\nvar DATAGRID_GROUP_FOOTER_CLASS = \"dx-datagrid-group-footer\";\r\nvar DATAGRID_GROUP_TEXT_CONTENT_CLASS = \"dx-datagrid-group-text-content\";\r\nvar DATAGRID_NOWRAP_CLASS = \"dx-datagrid-nowrap\";\r\nvar DATAGRID_FOOTER_ROW_CLASS = \"dx-footer-row\";\r\nvar DATAGRID_CELL_DISABLED = \"dx-cell-focus-disabled\";\r\nvar DATAGRID_GROUP_FOOTER_ROW_TYPE = \"groupFooter\";\r\nvar DATAGRID_TOTAL_FOOTER_ROW_TYPE = \"totalFooter\";\r\nexport var renderSummaryCell = function(cell, options) {\r\n var $cell = $(cell);\r\n var {\r\n column: column\r\n } = options;\r\n var {\r\n summaryItems: summaryItems\r\n } = options;\r\n var $summaryItems = [];\r\n if (!column.command && summaryItems) {\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n var text = gridCore.getSummaryText(summaryItem, options.summaryTexts);\r\n $summaryItems.push($(\"<div>\").css(\"textAlign\", summaryItem.alignment || column.alignment).addClass(DATAGRID_SUMMARY_ITEM_CLASS).addClass(DATAGRID_TEXT_CONTENT_CLASS).addClass(summaryItem.cssClass).toggleClass(DATAGRID_GROUP_TEXT_CONTENT_CLASS, \"group\" === options.rowType).text(text).attr(\"aria-label\", \"\".concat(column.caption, \" \").concat(text)))\r\n }\r\n $cell.append($summaryItems)\r\n }\r\n};\r\nvar getSummaryCellOptions = function(that, options) {\r\n var summaryTexts = that.option(\"summary.texts\") || {};\r\n return {\r\n totalItem: options.row,\r\n summaryItems: options.row.summaryCells[options.columnIndex],\r\n summaryTexts: summaryTexts\r\n }\r\n};\r\nvar getGroupAggregates = function(data) {\r\n return data.summary || data.aggregates || []\r\n};\r\nvar recalculateWhileEditing = function(that) {\r\n return that.option(\"summary.recalculateWhileEditing\")\r\n};\r\nvar forEachGroup = function forEachGroup(groups, groupCount, callback, path) {\r\n path = path || [];\r\n for (var i = 0; i < groups.length; i++) {\r\n path.push(groups[i].key);\r\n if (1 === groupCount) {\r\n callback(path, groups[i].items)\r\n } else {\r\n forEachGroup(groups[i].items, groupCount - 1, callback, path)\r\n }\r\n path.pop()\r\n }\r\n};\r\nvar applyAddedData = function applyAddedData(data, insertedData, groupLevel) {\r\n if (groupLevel) {\r\n return applyAddedData(data, insertedData.map(item => ({\r\n items: [item]\r\n }), groupLevel - 1))\r\n }\r\n return data.concat(insertedData)\r\n};\r\nvar applyRemovedData = function applyRemovedData(data, removedData, groupLevel) {\r\n if (groupLevel) {\r\n return data.map(data => {\r\n var updatedData = {};\r\n var updatedItems = applyRemovedData(data.items || [], removedData, groupLevel - 1);\r\n Object.defineProperty(updatedData, \"aggregates\", {\r\n get: () => data.aggregates,\r\n set: value => {\r\n data.aggregates = value\r\n }\r\n });\r\n return extend(updatedData, data, {\r\n items: updatedItems\r\n })\r\n })\r\n }\r\n return data.filter(data => removedData.indexOf(data) < 0)\r\n};\r\nvar sortGroupsBySummaryCore = function sortGroupsBySummaryCore(items, groups, sortByGroups) {\r\n if (!items || !groups.length) {\r\n return items\r\n }\r\n var group = groups[0];\r\n var sorts = sortByGroups[0];\r\n var query;\r\n if (group && sorts && sorts.length) {\r\n query = dataQuery(items);\r\n each(sorts, (function(index) {\r\n if (0 === index) {\r\n query = query.sortBy(this.selector, this.desc)\r\n } else {\r\n query = query.thenBy(this.selector, this.desc)\r\n }\r\n }));\r\n query.enumerate().done(sortedItems => {\r\n items = sortedItems\r\n })\r\n }\r\n groups = groups.slice(1);\r\n sortByGroups = sortByGroups.slice(1);\r\n if (groups.length && sortByGroups.length) {\r\n each(items, (function() {\r\n this.items = sortGroupsBySummaryCore(this.items, groups, sortByGroups)\r\n }))\r\n }\r\n return items\r\n};\r\nvar sortGroupsBySummary = function(data, group, summary) {\r\n var sortByGroups = summary && summary.sortByGroups && summary.sortByGroups();\r\n if (sortByGroups && sortByGroups.length) {\r\n return sortGroupsBySummaryCore(data, group, sortByGroups)\r\n }\r\n return data\r\n};\r\nvar calculateAggregates = function(that, summary, data, groupLevel) {\r\n var calculator;\r\n if (recalculateWhileEditing(that)) {\r\n var editingController = that._editingController;\r\n if (editingController) {\r\n var insertedData = editingController.getInsertedData();\r\n if (insertedData.length) {\r\n data = applyAddedData(data, insertedData, groupLevel)\r\n }\r\n var removedData = editingController.getRemovedData();\r\n if (removedData.length) {\r\n data = applyRemovedData(data, removedData, groupLevel)\r\n }\r\n }\r\n }\r\n if (summary) {\r\n calculator = new AggregateCalculator({\r\n totalAggregates: summary.totalAggregates,\r\n groupAggregates: summary.groupAggregates,\r\n data: data,\r\n groupLevel: groupLevel\r\n });\r\n calculator.calculate()\r\n }\r\n return calculator ? calculator.totalAggregates() : []\r\n};\r\nexport class FooterView extends ColumnsView {\r\n _getRows() {\r\n return this._dataController.footerItems()\r\n }\r\n _getCellOptions(options) {\r\n return extend(super._getCellOptions(options), getSummaryCellOptions(this, options))\r\n }\r\n _renderCellContent($cell, options) {\r\n renderSummaryCell($cell, options);\r\n super._renderCellContent.apply(this, arguments)\r\n }\r\n _renderCore(change) {\r\n var needUpdateScrollLeft = false;\r\n var totalItem = this._dataController.footerItems()[0];\r\n if (!change || !change.columnIndices) {\r\n this.element().empty().addClass(DATAGRID_TOTAL_FOOTER_CLASS).toggleClass(DATAGRID_NOWRAP_CLASS, !this.option(\"wordWrapEnabled\"));\r\n needUpdateScrollLeft = true\r\n }\r\n if (totalItem && totalItem.summaryCells && totalItem.summaryCells.length) {\r\n this._updateContent(this._renderTable({\r\n change: change\r\n }), change);\r\n needUpdateScrollLeft && this._updateScrollLeftPosition()\r\n }\r\n }\r\n _updateContent($newTable, change) {\r\n if (change && \"update\" === change.changeType && change.columnIndices) {\r\n return this.waitAsyncTemplates().done(() => {\r\n var $row = this.getTableElement().find(\".dx-row\");\r\n var $newRow = $newTable.find(\".dx-row\");\r\n this._updateCells($row, $newRow, change.columnIndices[0])\r\n })\r\n }\r\n return super._updateContent.apply(this, arguments)\r\n }\r\n _rowClick(e) {\r\n var item = this._dataController.footerItems()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({}, e, item))\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n super._columnOptionChanged(e)\r\n }\r\n }\r\n _handleDataChanged(e) {\r\n var {\r\n changeType: changeType\r\n } = e;\r\n if (\"update\" === e.changeType && e.repaintChangesOnly) {\r\n if (!e.totalColumnIndices) {\r\n this.render()\r\n } else if (e.totalColumnIndices.length) {\r\n this.render(null, {\r\n changeType: \"update\",\r\n columnIndices: [e.totalColumnIndices]\r\n })\r\n }\r\n } else if (\"refresh\" === changeType || \"append\" === changeType || \"prepend\" === changeType) {\r\n this.render()\r\n }\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row.rowType === DATAGRID_TOTAL_FOOTER_ROW_TYPE) {\r\n $row.addClass(DATAGRID_FOOTER_ROW_CLASS);\r\n $row.addClass(DATAGRID_CELL_DISABLED);\r\n $row.attr(\"tabindex\", 0)\r\n }\r\n return $row\r\n }\r\n getHeight() {\r\n return this.getElementHeight()\r\n }\r\n isVisible() {\r\n return !!this._dataController.footerItems().length\r\n }\r\n}\r\nvar dataSourceAdapterExtender = Base => class extends Base {\r\n init() {\r\n super.init.apply(this, arguments);\r\n this._editingController = this.getController(\"editing\");\r\n this._totalAggregates = [];\r\n this._summaryGetter = noop\r\n }\r\n summaryGetter(summaryGetter) {\r\n if (!arguments.length) {\r\n return this._summaryGetter\r\n }\r\n if (isFunction(summaryGetter)) {\r\n this._summaryGetter = summaryGetter\r\n }\r\n }\r\n summary(summary) {\r\n if (!arguments.length) {\r\n return this._summaryGetter()\r\n }\r\n this._summaryGetter = function() {\r\n return summary\r\n }\r\n }\r\n totalAggregates() {\r\n return this._totalAggregates\r\n }\r\n isLastLevelGroupItemsPagingLocal() {\r\n var summary = this.summary();\r\n var sortByGroupsInfo = null === summary || void 0 === summary ? void 0 : summary.sortByGroups();\r\n return null === sortByGroupsInfo || void 0 === sortByGroupsInfo ? void 0 : sortByGroupsInfo.length\r\n }\r\n sortLastLevelGroupItems(items, groups, paths) {\r\n var groupedItems = storeHelper.multiLevelGroup(dataQuery(items), groups).toArray();\r\n var result = [];\r\n paths.forEach(path => {\r\n forEachGroup(groupedItems, groups.length, (itemsPath, items) => {\r\n if (path.toString() === itemsPath.toString()) {\r\n result = result.concat(items)\r\n }\r\n })\r\n });\r\n return result\r\n }\r\n _customizeRemoteOperations(options) {\r\n var summary = this.summary();\r\n if (summary) {\r\n if (options.remoteOperations.summary) {\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (options.storeLoadOptions.group) {\r\n if (options.remoteOperations.grouping) {\r\n options.storeLoadOptions.groupSummary = summary.groupAggregates\r\n } else if (summary.groupAggregates.length) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n options.storeLoadOptions.totalSummary = summary.totalAggregates\r\n }\r\n } else if (summary.totalAggregates.length || summary.groupAggregates.length && options.storeLoadOptions.group) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n super._customizeRemoteOperations.apply(this, arguments);\r\n var cachedExtra = options.cachedData.extra;\r\n if ((null === cachedExtra || void 0 === cachedExtra ? void 0 : cachedExtra.summary) && !options.isCustomLoading) {\r\n options.storeLoadOptions.totalSummary = void 0\r\n }\r\n }\r\n _handleDataLoadedCore(options) {\r\n var _a, _b;\r\n var groups = normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group || []);\r\n var remoteOperations = options.remoteOperations || {};\r\n var summary = this.summaryGetter()(remoteOperations);\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (remoteOperations.summary) {\r\n if (!remoteOperations.paging && groups.length && summary) {\r\n if (!remoteOperations.grouping) {\r\n calculateAggregates(this, {\r\n groupAggregates: summary.groupAggregates\r\n }, options.data, groups.length)\r\n }\r\n options.data = sortGroupsBySummary(options.data, groups, summary)\r\n }\r\n } else if (!remoteOperations.paging && summary) {\r\n var operationTypes = options.operationTypes || {};\r\n var hasOperations = Object.keys(operationTypes).some(type => operationTypes[type]);\r\n if (!hasOperations || !(null === (_b = null === (_a = options.cachedData) || void 0 === _a ? void 0 : _a.extra) || void 0 === _b ? void 0 : _b.summary) || groups.length && summary.groupAggregates.length) {\r\n var totalAggregates = calculateAggregates(this, summary, options.data, groups.length);\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.summary = totalAggregates;\r\n if (options.cachedData) {\r\n options.cachedData.extra = options.extra\r\n }\r\n }\r\n options.data = sortGroupsBySummary(options.data, groups, summary)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n this._totalAggregates = options.extra && options.extra.summary || this._totalAggregates\r\n }\r\n super._handleDataLoadedCore(options)\r\n }\r\n};\r\ndataSourceAdapterProvider.extend(dataSourceAdapterExtender);\r\nvar data = Base => class extends Base {\r\n _isDataColumn(column) {\r\n return column && (!isDefined(column.groupIndex) || column.showWhenGrouped)\r\n }\r\n _isGroupFooterVisible() {\r\n var groupItems = this.option(\"summary.groupItems\") || [];\r\n for (var i = 0; i < groupItems.length; i++) {\r\n var groupItem = groupItems[i];\r\n var column = this._columnsController.columnOption(groupItem.showInColumn || groupItem.column);\r\n if (groupItem.showInGroupFooter && this._isDataColumn(column)) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n _processGroupItems(items, groupCount, options) {\r\n var data = options && options.data;\r\n var result = super._processGroupItems.apply(this, arguments);\r\n if (options) {\r\n if (void 0 === options.isGroupFooterVisible) {\r\n options.isGroupFooterVisible = this._isGroupFooterVisible()\r\n }\r\n if (data && data.items && options.isGroupFooterVisible && (options.collectContinuationItems || !data.isContinuationOnNextPage)) {\r\n result.push({\r\n rowType: DATAGRID_GROUP_FOOTER_ROW_TYPE,\r\n key: options.path.slice(),\r\n data: data,\r\n groupIndex: options.path.length - 1,\r\n values: []\r\n })\r\n }\r\n }\r\n return result\r\n }\r\n _processGroupItem(groupItem, options) {\r\n var that = this;\r\n if (!options.summaryGroupItems) {\r\n options.summaryGroupItems = that.option(\"summary.groupItems\") || []\r\n }\r\n if (\"group\" === groupItem.rowType) {\r\n var groupColumnIndex = -1;\r\n var afterGroupColumnIndex = -1;\r\n each(options.visibleColumns, (function(visibleIndex) {\r\n var prevColumn = options.visibleColumns[visibleIndex - 1];\r\n if (groupItem.groupIndex === this.groupIndex) {\r\n groupColumnIndex = this.index\r\n }\r\n if (visibleIndex > 0 && \"expand\" === prevColumn.command && \"expand\" !== this.command) {\r\n afterGroupColumnIndex = this.index\r\n }\r\n }));\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, (summaryItem, column) => {\r\n if (summaryItem.showInGroupFooter) {\r\n return -1\r\n }\r\n if (summaryItem.alignByColumn && column && !isDefined(column.groupIndex) && column.index !== afterGroupColumnIndex) {\r\n return column.index\r\n }\r\n return groupColumnIndex\r\n }, true)\r\n }\r\n if (groupItem.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE) {\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, (summaryItem, column) => summaryItem.showInGroupFooter && that._isDataColumn(column) ? column.index : -1)\r\n }\r\n return groupItem\r\n }\r\n _calculateSummaryCells(summaryItems, aggregates, visibleColumns, calculateTargetColumnIndex, isGroupRow) {\r\n var that = this;\r\n var summaryCells = [];\r\n var summaryCellsByColumns = {};\r\n each(summaryItems, (summaryIndex, summaryItem) => {\r\n var column = that._columnsController.columnOption(summaryItem.column);\r\n var showInColumn = summaryItem.showInColumn && that._columnsController.columnOption(summaryItem.showInColumn) || column;\r\n var columnIndex = calculateTargetColumnIndex(summaryItem, showInColumn);\r\n if (columnIndex >= 0) {\r\n if (!summaryCellsByColumns[columnIndex]) {\r\n summaryCellsByColumns[columnIndex] = []\r\n }\r\n var aggregate = aggregates[summaryIndex];\r\n if (aggregate === aggregate) {\r\n var valueFormat;\r\n if (isDefined(summaryItem.valueFormat)) {\r\n valueFormat = summaryItem.valueFormat\r\n } else if (\"count\" !== summaryItem.summaryType) {\r\n valueFormat = gridCore.getFormatByDataType(column && column.dataType)\r\n }\r\n summaryCellsByColumns[columnIndex].push(extend({}, summaryItem, {\r\n value: isString(aggregate) && column && column.deserializeValue ? column.deserializeValue(aggregate) : aggregate,\r\n valueFormat: valueFormat,\r\n columnCaption: column && column.index !== columnIndex ? column.caption : void 0\r\n }))\r\n }\r\n }\r\n });\r\n if (!isEmptyObject(summaryCellsByColumns)) {\r\n visibleColumns.forEach((column, visibleIndex) => {\r\n var prevColumn = visibleColumns[visibleIndex - 1];\r\n var columnIndex = isGroupRow && (\"expand\" === (null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.command) || \"expand\" === column.command) ? null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.index : column.index;\r\n summaryCells.push(summaryCellsByColumns[columnIndex] || [])\r\n })\r\n }\r\n return summaryCells\r\n }\r\n _getSummaryCells(summaryTotalItems, totalAggregates) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n return that._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(), (summaryItem, column) => that._isDataColumn(column) ? column.index : -1)\r\n }\r\n _updateItemsCore(change) {\r\n var summaryCells;\r\n var dataSource = this._dataSource;\r\n var footerItems = this._footerItems;\r\n var oldSummaryCells = footerItems && footerItems[0] && footerItems[0].summaryCells;\r\n var summaryTotalItems = this.option(\"summary.totalItems\");\r\n this._footerItems = [];\r\n if (dataSource && summaryTotalItems && summaryTotalItems.length) {\r\n var totalAggregates = dataSource.totalAggregates();\r\n summaryCells = this._getSummaryCells(summaryTotalItems, totalAggregates);\r\n if (change && change.repaintChangesOnly && oldSummaryCells) {\r\n change.totalColumnIndices = summaryCells.map((summaryCell, index) => {\r\n if (JSON.stringify(summaryCell) !== JSON.stringify(oldSummaryCells[index])) {\r\n return index\r\n }\r\n return -1\r\n }).filter(index => index >= 0)\r\n }\r\n if (summaryCells.length) {\r\n this._footerItems.push({\r\n rowType: DATAGRID_TOTAL_FOOTER_ROW_TYPE,\r\n summaryCells: summaryCells\r\n })\r\n }\r\n }\r\n super._updateItemsCore(change)\r\n }\r\n _prepareUnsavedDataSelector(selector) {\r\n if (recalculateWhileEditing(this)) {\r\n var editingController = this._editingController;\r\n if (editingController) {\r\n return function(data) {\r\n data = editingController.getUpdatedData(data);\r\n return selector(data)\r\n }\r\n }\r\n }\r\n return selector\r\n }\r\n _prepareAggregateSelector(selector, aggregator) {\r\n selector = this._prepareUnsavedDataSelector(selector);\r\n if (\"avg\" === aggregator || \"sum\" === aggregator) {\r\n return function(data) {\r\n var value = selector(data);\r\n return isDefined(value) ? Number(value) : value\r\n }\r\n }\r\n return selector\r\n }\r\n _getAggregates(summaryItems, remoteOperations) {\r\n var that = this;\r\n var calculateCustomSummary = that.option(\"summary.calculateCustomSummary\");\r\n var commonSkipEmptyValues = that.option(\"summary.skipEmptyValues\");\r\n return map(summaryItems || [], summaryItem => {\r\n var column = this._columnsController.columnOption(summaryItem.column);\r\n var calculateCellValue = column && column.calculateCellValue ? column.calculateCellValue.bind(column) : compileGetter(column ? column.dataField : summaryItem.column);\r\n var aggregator = summaryItem.summaryType || \"count\";\r\n var skipEmptyValues = isDefined(summaryItem.skipEmptyValues) ? summaryItem.skipEmptyValues : commonSkipEmptyValues;\r\n if (remoteOperations) {\r\n return {\r\n selector: summaryItem.column,\r\n summaryType: aggregator\r\n }\r\n }\r\n var selector = that._prepareAggregateSelector(calculateCellValue, aggregator);\r\n if (\"custom\" === aggregator) {\r\n if (!calculateCustomSummary) {\r\n errors.log(\"E1026\");\r\n calculateCustomSummary = function() {}\r\n }\r\n var options = {\r\n component: that.component,\r\n name: summaryItem.name\r\n };\r\n calculateCustomSummary(options);\r\n options.summaryProcess = \"calculate\";\r\n aggregator = {\r\n seed(groupIndex) {\r\n options.summaryProcess = \"start\";\r\n options.totalValue = void 0;\r\n options.groupIndex = groupIndex;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n step(totalValue, value) {\r\n options.summaryProcess = \"calculate\";\r\n options.totalValue = totalValue;\r\n options.value = value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n finalize(totalValue) {\r\n options.summaryProcess = \"finalize\";\r\n options.totalValue = totalValue;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n }\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n })\r\n }\r\n _addSortInfo(sortByGroups, groupColumn, selector, sortOrder) {\r\n if (groupColumn) {\r\n var {\r\n groupIndex: groupIndex\r\n } = groupColumn;\r\n sortOrder = sortOrder || groupColumn.sortOrder;\r\n if (isDefined(groupIndex)) {\r\n sortByGroups[groupIndex] = sortByGroups[groupIndex] || [];\r\n sortByGroups[groupIndex].push({\r\n selector: selector,\r\n desc: \"desc\" === sortOrder\r\n })\r\n }\r\n }\r\n }\r\n _findSummaryItem(summaryItems, name) {\r\n var summaryItemIndex = -1;\r\n if (isDefined(name)) {\r\n each(summaryItems || [], (function(index) {\r\n if (this.name === name || index === name || this.summaryType === name || this.column === name || function(summaryItem) {\r\n var {\r\n summaryType: summaryType\r\n } = summaryItem;\r\n var {\r\n column: column\r\n } = summaryItem;\r\n return summaryType && column && \"\".concat(summaryType, \"_\").concat(column)\r\n }(this) === name) {\r\n summaryItemIndex = index;\r\n return false\r\n }\r\n }))\r\n }\r\n return summaryItemIndex\r\n }\r\n _getSummarySortByGroups(sortByGroupSummaryInfo, groupSummaryItems) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var groupColumns = columnsController.getGroupColumns();\r\n var sortByGroups = [];\r\n if (!groupSummaryItems || !groupSummaryItems.length) {\r\n return\r\n }\r\n each(sortByGroupSummaryInfo || [], (function() {\r\n var {\r\n sortOrder: sortOrder\r\n } = this;\r\n var {\r\n groupColumn: groupColumn\r\n } = this;\r\n var summaryItemIndex = that._findSummaryItem(groupSummaryItems, this.summaryItem);\r\n if (summaryItemIndex < 0) {\r\n return\r\n }\r\n var selector = function(data) {\r\n return getGroupAggregates(data)[summaryItemIndex]\r\n };\r\n if (isDefined(groupColumn)) {\r\n groupColumn = columnsController.columnOption(groupColumn);\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n } else {\r\n each(groupColumns, (groupIndex, groupColumn) => {\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n })\r\n }\r\n }));\r\n return sortByGroups\r\n }\r\n _createDataSourceAdapterCore(dataSource, remoteOperations) {\r\n var that = this;\r\n var dataSourceAdapter = super._createDataSourceAdapterCore(dataSource, remoteOperations);\r\n dataSourceAdapter.summaryGetter(currentRemoteOperations => that._getSummaryOptions(currentRemoteOperations || remoteOperations));\r\n return dataSourceAdapter\r\n }\r\n _getSummaryOptions(remoteOperations) {\r\n var that = this;\r\n var groupSummaryItems = that.option(\"summary.groupItems\");\r\n var totalSummaryItems = that.option(\"summary.totalItems\");\r\n var sortByGroupSummaryInfo = that.option(\"sortByGroupSummaryInfo\");\r\n var groupAggregates = that._getAggregates(groupSummaryItems, remoteOperations && remoteOperations.grouping && remoteOperations.summary);\r\n var totalAggregates = that._getAggregates(totalSummaryItems, remoteOperations && remoteOperations.summary);\r\n if (groupAggregates.length || totalAggregates.length) {\r\n return {\r\n groupAggregates: groupAggregates,\r\n totalAggregates: totalAggregates,\r\n sortByGroups: function() {\r\n return that._getSummarySortByGroups(sortByGroupSummaryInfo, groupSummaryItems)\r\n }\r\n }\r\n }\r\n return\r\n }\r\n publicMethods() {\r\n var methods = super.publicMethods();\r\n methods.push(\"getTotalSummaryValue\");\r\n return methods\r\n }\r\n getTotalSummaryValue(summaryItemName) {\r\n var summaryItemIndex = this._findSummaryItem(this.option(\"summary.totalItems\"), summaryItemName);\r\n var aggregates = this._dataSource.totalAggregates();\r\n if (aggregates.length && summaryItemIndex > -1) {\r\n return aggregates[summaryItemIndex]\r\n }\r\n }\r\n optionChanged(args) {\r\n if (\"summary\" === args.name || \"sortByGroupSummaryInfo\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n super.optionChanged(args)\r\n }\r\n init() {\r\n this._footerItems = [];\r\n super.init()\r\n }\r\n footerItems() {\r\n return this._footerItems\r\n }\r\n};\r\nvar editing = Base => class extends Base {\r\n _refreshSummary() {\r\n if (recalculateWhileEditing(this) && !this.isSaving()) {\r\n this._dataController.refresh({\r\n load: true,\r\n changesOnly: true\r\n })\r\n }\r\n }\r\n _addChange(params) {\r\n var result = super._addChange.apply(this, arguments);\r\n if (params.type) {\r\n this._refreshSummary()\r\n }\r\n return result\r\n }\r\n _removeChange() {\r\n var result = super._removeChange.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n }\r\n cancelEditData() {\r\n var result = super.cancelEditData.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n row && $row.addClass(row.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE ? DATAGRID_GROUP_FOOTER_CLASS : \"\");\r\n return $row\r\n }\r\n _renderCells($row, options) {\r\n super._renderCells.apply(this, arguments);\r\n if (\"group\" === options.row.rowType && options.row.summaryCells && options.row.summaryCells.length) {\r\n this._renderGroupSummaryCells($row, options)\r\n }\r\n }\r\n _hasAlignByColumnSummaryItems(columnIndex, options) {\r\n return !isDefined(options.columns[columnIndex].groupIndex) && options.row.summaryCells[columnIndex].length\r\n }\r\n _getAlignByColumnCellCount(groupCellColSpan, options) {\r\n var alignByColumnCellCount = 0;\r\n for (var i = 1; i < groupCellColSpan; i++) {\r\n var columnIndex = options.row.summaryCells.length - i;\r\n alignByColumnCellCount = this._hasAlignByColumnSummaryItems(columnIndex, options) ? i : alignByColumnCellCount\r\n }\r\n return alignByColumnCellCount\r\n }\r\n _renderGroupSummaryCells($row, options) {\r\n var $groupCell = $row.children().last();\r\n var groupCellColSpan = Number($groupCell.attr(\"colSpan\")) || 1;\r\n var alignByColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n this._renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n }\r\n _renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n if (alignByColumnCellCount > 0) {\r\n $groupCell.attr(\"colSpan\", groupCellColSpan - alignByColumnCellCount);\r\n for (var i = 0; i < alignByColumnCellCount; i++) {\r\n var columnIndex = options.columns.length - alignByColumnCellCount + i;\r\n this._renderCell($groupCell.parent(), extend({\r\n column: options.columns[columnIndex],\r\n columnIndex: this._getSummaryCellIndex(columnIndex, options.columns)\r\n }, options))\r\n }\r\n }\r\n }\r\n _getSummaryCellIndex(columnIndex, columns) {\r\n return columnIndex\r\n }\r\n _getCellTemplate(options) {\r\n if (!options.column.command && !isDefined(options.column.groupIndex) && options.summaryItems && options.summaryItems.length) {\r\n return renderSummaryCell\r\n }\r\n return super._getCellTemplate(options)\r\n }\r\n _getCellOptions(options) {\r\n var parameters = super._getCellOptions(options);\r\n if (options.row.summaryCells) {\r\n return extend(parameters, getSummaryCellOptions(this, options))\r\n }\r\n return parameters\r\n }\r\n};\r\ngridCore.registerModule(\"summary\", {\r\n defaultOptions: () => ({\r\n summary: {\r\n groupItems: void 0,\r\n totalItems: void 0,\r\n calculateCustomSummary: void 0,\r\n skipEmptyValues: true,\r\n recalculateWhileEditing: false,\r\n texts: {\r\n sum: messageLocalization.format(\"dxDataGrid-summarySum\"),\r\n sumOtherColumn: messageLocalization.format(\"dxDataGrid-summarySumOtherColumn\"),\r\n min: messageLocalization.format(\"dxDataGrid-summaryMin\"),\r\n minOtherColumn: messageLocalization.format(\"dxDataGrid-summaryMinOtherColumn\"),\r\n max: messageLocalization.format(\"dxDataGrid-summaryMax\"),\r\n maxOtherColumn: messageLocalization.format(\"dxDataGrid-summaryMaxOtherColumn\"),\r\n avg: messageLocalization.format(\"dxDataGrid-summaryAvg\"),\r\n avgOtherColumn: messageLocalization.format(\"dxDataGrid-summaryAvgOtherColumn\"),\r\n count: messageLocalization.format(\"dxDataGrid-summaryCount\")\r\n }\r\n },\r\n sortByGroupSummaryInfo: void 0\r\n }),\r\n views: {\r\n footerView: FooterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: data,\r\n editing: editing\r\n },\r\n views: {\r\n rowsView: rowsView\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_fixing/m_column_fixing.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../../../animation/translator\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n setWidth\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../../../events/core/wheel\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n normalizeWidth\r\n} from \"../views/m_columns_view\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar FIRST_CELL_CLASS = \"dx-first-cell\";\r\nvar LAST_CELL_CLASS = \"dx-last-cell\";\r\nvar HOVER_STATE_CLASS = \"dx-state-hover\";\r\nvar FIXED_COL_CLASS = \"dx-col-fixed\";\r\nvar FIXED_COLUMNS_CLASS = \"dx-fixed-columns\";\r\nvar POINTER_EVENTS_NONE_CLASS = \"dx-pointer-events-none\";\r\nvar COMMAND_TRANSPARENT = \"transparent\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar getTransparentColumnIndex = function(fixedColumns) {\r\n var transparentColumnIndex = -1;\r\n each(fixedColumns, (index, column) => {\r\n if (column.command === COMMAND_TRANSPARENT) {\r\n transparentColumnIndex = index;\r\n return false\r\n }\r\n return\r\n });\r\n return transparentColumnIndex\r\n};\r\nvar normalizeColumnWidths = function(fixedColumns, widths, fixedWidths) {\r\n var fixedColumnIndex = 0;\r\n if (fixedColumns && widths && fixedWidths) {\r\n for (var i = 0; i < fixedColumns.length; i++) {\r\n if (fixedColumns[i].command === COMMAND_TRANSPARENT) {\r\n fixedColumnIndex += fixedColumns[i].colspan\r\n } else {\r\n if (widths[fixedColumnIndex] < fixedWidths[i]) {\r\n widths[fixedColumnIndex] = fixedWidths[i]\r\n }\r\n fixedColumnIndex++\r\n }\r\n }\r\n }\r\n return widths\r\n};\r\nvar baseFixedColumns = Base => class extends Base {\r\n init() {\r\n super.init();\r\n this._isFixedTableRendering = false;\r\n this._isFixedColumns = false\r\n }\r\n _createCol(column) {\r\n return super._createCol(column).toggleClass(FIXED_COL_CLASS, !!(this._isFixedTableRendering && (column.fixed || column.command && column.command !== COMMAND_TRANSPARENT)))\r\n }\r\n isIndicesArray(arr) {\r\n return Array.isArray(arr) && arr.length > 0\r\n }\r\n _correctColumnIndicesForFixedColumns(fixedColumns, change) {\r\n var _a;\r\n var columnIndicesArray = null === change || void 0 === change ? void 0 : change.columnIndices;\r\n if (!this.isIndicesArray(columnIndicesArray)) {\r\n return\r\n }\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var transparentColspan = fixedColumns[transparentColumnIndex].colspan;\r\n var transparentOffset = transparentColumnIndex + transparentColspan;\r\n var rowTypes = null === (_a = null === change || void 0 === change ? void 0 : change.items) || void 0 === _a ? void 0 : _a.map(_ref => {\r\n var {\r\n rowType: rowType\r\n } = _ref;\r\n return rowType\r\n });\r\n change.columnIndices = columnIndicesArray.map((columnIndices, idx) => {\r\n if (!this.isIndicesArray(columnIndices)) {\r\n return columnIndices\r\n }\r\n var isGroupRow = rowTypes && \"group\" === rowTypes[idx];\r\n if (isGroupRow) {\r\n return [...columnIndices]\r\n }\r\n return columnIndices.reduce((result, colIdx) => {\r\n switch (true) {\r\n case colIdx < transparentColumnIndex:\r\n result.push(colIdx);\r\n break;\r\n case colIdx >= transparentOffset:\r\n result.push(colIdx - transparentColspan + 1)\r\n }\r\n return result\r\n }, [])\r\n })\r\n }\r\n _partialUpdateFixedTable(fixedColumns, rows) {\r\n var fixedTableElement = this._fixedTableElement;\r\n var $rows = this._getRowElementsCore(fixedTableElement);\r\n var $colgroup = fixedTableElement.children(\"colgroup\");\r\n $colgroup.replaceWith(this._createColGroup(fixedColumns));\r\n for (var i = 0; i < rows.length; i++) {\r\n this._partialUpdateFixedRow($($rows[i]), fixedColumns, rows[i])\r\n }\r\n }\r\n _partialUpdateFixedRow($row, fixedColumns, row) {\r\n var _a;\r\n var cellElements = $row.get(0).childNodes;\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var transparentColumn = fixedColumns[transparentColumnIndex];\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var groupCellOptions;\r\n var colIndex = columnIndexOffset + 1;\r\n var {\r\n colspan: colspan\r\n } = transparentColumn;\r\n if ($row.hasClass(DETAIL_ROW_CLASS)) {\r\n cellElements[0].setAttribute(\"colspan\", null === (_a = this._columnsController.getVisibleColumns()) || void 0 === _a ? void 0 : _a.length);\r\n return\r\n }\r\n if ($row.hasClass(GROUP_ROW_CLASS)) {\r\n groupCellOptions = this._getGroupCellOptions({\r\n row: row,\r\n columns: this._columnsController.getVisibleColumns()\r\n });\r\n var hasSummary = row.summaryCells.length > 0;\r\n if (hasSummary) {\r\n var alignByColumnCellCount = this._getAlignByColumnCellCount(groupCellOptions.colspan, {\r\n columns: this._columnsController.getVisibleColumns(),\r\n row: row,\r\n isFixed: true\r\n });\r\n colspan = groupCellOptions.colspan - alignByColumnCellCount\r\n } else {\r\n colspan = groupCellOptions.colspan - Math.max(0, cellElements.length - (groupCellOptions.columnIndex + 2))\r\n }\r\n }\r\n for (var j = 0; j < cellElements.length; j++) {\r\n var needUpdateColspan = groupCellOptions ? j === groupCellOptions.columnIndex + 1 : j === transparentColumnIndex;\r\n cellElements[j].setAttribute(\"aria-colindex\", colIndex);\r\n if (needUpdateColspan) {\r\n cellElements[j].setAttribute(\"colspan\", colspan);\r\n colIndex += colspan\r\n } else {\r\n colIndex++\r\n }\r\n }\r\n }\r\n _renderTable(options) {\r\n var _a, _b;\r\n var $fixedTable;\r\n var fixedColumns = this.getFixedColumns();\r\n this._isFixedColumns = !!fixedColumns.length;\r\n var $table = super._renderTable(options);\r\n if (this._isFixedColumns) {\r\n var change = null === options || void 0 === options ? void 0 : options.change;\r\n var $fixedDataRows = this._getRowElements(this._fixedTableElement);\r\n var needPartialUpdate = (null === change || void 0 === change ? void 0 : change.virtualColumnsScrolling) && $fixedDataRows.length === (null === (_a = null === change || void 0 === change ? void 0 : change.items) || void 0 === _a ? void 0 : _a.length);\r\n this._isFixedTableRendering = true;\r\n if (needPartialUpdate && true !== this.option(\"scrolling.legacyMode\")) {\r\n this._partialUpdateFixedTable(fixedColumns, null === (_b = null === options || void 0 === options ? void 0 : options.change) || void 0 === _b ? void 0 : _b.items);\r\n this._isFixedTableRendering = false\r\n } else {\r\n var columnIndices = null === change || void 0 === change ? void 0 : change.columnIndices;\r\n this._correctColumnIndicesForFixedColumns(fixedColumns, change);\r\n $fixedTable = this._createTable(fixedColumns);\r\n this._renderRows($fixedTable, extend({}, options, {\r\n columns: fixedColumns\r\n }));\r\n this._updateContent($fixedTable, change, true);\r\n if (columnIndices) {\r\n change.columnIndices = columnIndices\r\n }\r\n this._isFixedTableRendering = false\r\n }\r\n } else {\r\n this._fixedTableElement && this._fixedTableElement.parent().remove();\r\n this._fixedTableElement = null\r\n }\r\n return $table\r\n }\r\n _renderRow($table, options) {\r\n var fixedCorrection;\r\n var {\r\n cells: cells\r\n } = options.row;\r\n super._renderRow.apply(this, arguments);\r\n if (this._isFixedTableRendering && cells && cells.length) {\r\n fixedCorrection = 0;\r\n var fixedCells = options.row.cells || [];\r\n cells = cells.slice();\r\n options.row.cells = cells;\r\n for (var i = 0; i < fixedCells.length; i++) {\r\n if (fixedCells[i].column && fixedCells[i].column.command === COMMAND_TRANSPARENT) {\r\n fixedCorrection = (fixedCells[i].column.colspan || 1) - 1;\r\n continue\r\n }\r\n cells[i + fixedCorrection] = fixedCells[i]\r\n }\r\n }\r\n }\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var columnCommand = column && column.command;\r\n var {\r\n rowType: rowType\r\n } = options;\r\n var $cell = super._createCell.apply(this, arguments);\r\n var fixedColumns;\r\n var prevFixedColumn;\r\n var transparentColumnIndex;\r\n if (this._isFixedTableRendering || \"filter\" === rowType) {\r\n fixedColumns = this.getFixedColumns();\r\n transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n prevFixedColumn = fixedColumns[transparentColumnIndex - 1]\r\n }\r\n if (this._isFixedTableRendering) {\r\n if (columnCommand === COMMAND_TRANSPARENT) {\r\n $cell.addClass(POINTER_EVENTS_NONE_CLASS).toggleClass(FIRST_CELL_CLASS, 0 === transparentColumnIndex || prevFixedColumn && \"expand\" === prevFixedColumn.command).toggleClass(LAST_CELL_CLASS, fixedColumns.length && transparentColumnIndex === fixedColumns.length - 1);\r\n if (\"freeSpace\" !== rowType) {\r\n gridCoreUtils.setEmptyText($cell)\r\n }\r\n }\r\n } else if (\"filter\" === rowType) {\r\n $cell.toggleClass(FIRST_CELL_CLASS, options.columnIndex === transparentColumnIndex)\r\n }\r\n var isRowAltStyle = this.option(\"rowAlternationEnabled\") && options.isAltRow;\r\n var isSelectAllCell = \"multiple\" === this.option(\"selection.mode\") && 0 === options.columnIndex && \"header\" === options.rowType;\r\n if (browser.mozilla && options.column.fixed && \"group\" !== options.rowType && !isRowAltStyle && !isSelectAllCell) {\r\n $cell.addClass(FIXED_COL_CLASS)\r\n }\r\n return $cell\r\n }\r\n _getContent(isFixedTableRendering) {\r\n var _a;\r\n return isFixedTableRendering ? null === (_a = this._fixedTableElement) || void 0 === _a ? void 0 : _a.parent() : super._getContent.apply(this, arguments)\r\n }\r\n _wrapTableInScrollContainer($table, isFixedTableRendering) {\r\n var $scrollContainer = super._wrapTableInScrollContainer.apply(this, arguments);\r\n if (this._isFixedTableRendering || isFixedTableRendering) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_FIXED_CLASS))\r\n }\r\n return $scrollContainer\r\n }\r\n _renderCellContent($cell, options) {\r\n var _a, _b;\r\n var isEmptyCell;\r\n var {\r\n column: column\r\n } = options;\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var isGroupCell = \"group\" === options.rowType && isDefined(column.groupIndex);\r\n if (isFixedTableRendering && isGroupCell && !column.command && !column.groupCellTemplate) {\r\n $cell.css(\"pointerEvents\", \"none\")\r\n }\r\n if (!isFixedTableRendering && this._isFixedColumns) {\r\n isEmptyCell = column.fixed || column.command && false !== column.fixed;\r\n if (isGroupCell) {\r\n isEmptyCell = false;\r\n if (options.row.summaryCells && options.row.summaryCells.length) {\r\n var columns = this._columnsController.getVisibleColumns();\r\n var alignByFixedColumnCellCount = null !== (_b = null === (_a = this._getAlignByColumnCellCount) || void 0 === _a ? void 0 : _a.call(this, column.colspan, {\r\n columns: columns,\r\n row: options.row,\r\n isFixed: true\r\n })) && void 0 !== _b ? _b : 0;\r\n if (alignByFixedColumnCellCount > 0) {\r\n var transparentColumnIndex = getTransparentColumnIndex(this._columnsController.getFixedColumns());\r\n isEmptyCell = columns.length - alignByFixedColumnCellCount < transparentColumnIndex\r\n }\r\n }\r\n }\r\n if (isEmptyCell) {\r\n if (column.command && \"buttons\" !== column.type || \"group\" === options.rowType) {\r\n $cell.html(\" \").addClass(column.cssClass);\r\n return\r\n }\r\n $cell.addClass(\"dx-hidden-cell\")\r\n }\r\n }\r\n if (column.command !== COMMAND_TRANSPARENT) {\r\n super._renderCellContent.apply(this, arguments)\r\n }\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n var cellElements = super._getCellElementsCore.apply(this, arguments);\r\n var isGroupRow = null === cellElements || void 0 === cellElements ? void 0 : cellElements.parent().hasClass(GROUP_ROW_CLASS);\r\n var headerRowIndex = \"columnHeadersView\" === this.name ? rowIndex : void 0;\r\n if (this._fixedTableElement && cellElements) {\r\n var fixedColumns = this.getFixedColumns(headerRowIndex);\r\n var fixedCellElements = this._getRowElements(this._fixedTableElement).eq(rowIndex).children(\"td\");\r\n each(fixedCellElements, (columnIndex, cell) => {\r\n if (isGroupRow) {\r\n if (cellElements[columnIndex] && \"hidden\" !== cell.style.visibility) {\r\n cellElements[columnIndex] = cell\r\n }\r\n } else {\r\n var fixedColumn = fixedColumns[columnIndex];\r\n if (fixedColumn) {\r\n if (fixedColumn.command === COMMAND_TRANSPARENT) {\r\n if (fixedCellElements.eq(columnIndex).hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n cellElements[columnIndex] = cell || cellElements[columnIndex]\r\n }\r\n } else {\r\n var fixedColumnIndex = this._columnsController.getVisibleIndexByColumn(fixedColumn, headerRowIndex);\r\n cellElements[fixedColumnIndex] = cell || cellElements[fixedColumnIndex]\r\n }\r\n }\r\n }\r\n })\r\n }\r\n return cellElements\r\n }\r\n getColumnWidths(fixedTableElement) {\r\n var result = super.getColumnWidths();\r\n var fixedColumns = this.getFixedColumns();\r\n var fixedWidths = this._fixedTableElement && result.length ? super.getColumnWidths(this._fixedTableElement) : void 0;\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n }\r\n getTableElement(isFixedTableRendering) {\r\n isFixedTableRendering = this._isFixedTableRendering || isFixedTableRendering;\r\n var tableElement = isFixedTableRendering ? this._fixedTableElement : super.getTableElement();\r\n return tableElement\r\n }\r\n setTableElement(tableElement, isFixedTableRendering) {\r\n if (this._isFixedTableRendering || isFixedTableRendering) {\r\n this._fixedTableElement = tableElement.addClass(POINTER_EVENTS_NONE_CLASS)\r\n } else {\r\n super.setTableElement(tableElement)\r\n }\r\n }\r\n getColumns(rowIndex) {\r\n var $tableElement = this.getTableElement();\r\n if (this._isFixedTableRendering) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return super.getColumns(rowIndex, $tableElement)\r\n }\r\n getRowIndex($row) {\r\n var $fixedTable = this._fixedTableElement;\r\n if ($fixedTable && $fixedTable.find($row).length) {\r\n return this._getRowElements($fixedTable).index($row)\r\n }\r\n return super.getRowIndex($row)\r\n }\r\n getTableElements() {\r\n var result = super.getTableElements.apply(this, arguments);\r\n if (this._fixedTableElement) {\r\n result = $([result.get(0), this._fixedTableElement.get(0)])\r\n }\r\n return result\r\n }\r\n getFixedColumns(rowIndex) {\r\n return this._columnsController.getFixedColumns(rowIndex)\r\n }\r\n getFixedColumnsOffset() {\r\n var offset = {\r\n left: 0,\r\n right: 0\r\n };\r\n var $transparentColumn;\r\n if (this._fixedTableElement) {\r\n $transparentColumn = this.getTransparentColumnElement();\r\n var positionTransparentColumn = $transparentColumn.position();\r\n offset = {\r\n left: positionTransparentColumn.left,\r\n right: getOuterWidth(this.element(), true) - (getOuterWidth($transparentColumn, true) + positionTransparentColumn.left)\r\n }\r\n }\r\n return offset\r\n }\r\n getTransparentColumnElement() {\r\n return this._fixedTableElement && this._fixedTableElement.find(\".\".concat(POINTER_EVENTS_NONE_CLASS)).first()\r\n }\r\n getFixedTableElement() {\r\n return this._fixedTableElement\r\n }\r\n isFixedColumns() {\r\n return this._isFixedColumns\r\n }\r\n _resizeCore() {\r\n super._resizeCore();\r\n this.synchronizeRows()\r\n }\r\n setColumnWidths(options) {\r\n var _a;\r\n var {\r\n widths: widths\r\n } = options;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var isColumnWidthsSynced = (null === widths || void 0 === widths ? void 0 : widths.length) && visibleColumns.some(column => isDefined(column.visibleWidth));\r\n var isColumnWidthChanged = null === (_a = options.optionNames) || void 0 === _a ? void 0 : _a.width;\r\n super.setColumnWidths(options);\r\n if (this._fixedTableElement) {\r\n var hasAutoWidth = null === widths || void 0 === widths ? void 0 : widths.some(width => \"auto\" === width || !isDefined(width));\r\n var needVisibleColumns = hasAutoWidth && (!isColumnWidthsSynced || !this.isScrollbarVisible(true));\r\n var columns = needVisibleColumns ? visibleColumns : this.getFixedColumns();\r\n this.setFixedTableColumnWidths(columns, widths)\r\n }\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var needSynchronizeRows = isColumnWidthsSynced || isColumnWidthChanged && wordWrapEnabled;\r\n if (needSynchronizeRows) {\r\n this.synchronizeRows()\r\n }\r\n }\r\n setFixedTableColumnWidths(columns, widths) {\r\n if (!this._fixedTableElement || !widths) {\r\n return\r\n }\r\n var $cols = this._fixedTableElement.children(\"colgroup\").children(\"col\");\r\n $cols.toArray().forEach(col => col.removeAttribute(\"style\"));\r\n var columnIndex = 0;\r\n columns.forEach(column => {\r\n if (column.colspan) {\r\n columnIndex += column.colspan;\r\n return\r\n }\r\n var colWidth = normalizeWidth(widths[columnIndex]);\r\n if (isDefined(colWidth)) {\r\n setWidth($cols.eq(columnIndex), colWidth)\r\n }\r\n columnIndex += 1\r\n })\r\n }\r\n _getClientHeight(element) {\r\n var boundingClientRectElement = element.getBoundingClientRect && getBoundingRect(element);\r\n return boundingClientRectElement && boundingClientRectElement.height ? boundingClientRectElement.height : element.clientHeight\r\n }\r\n synchronizeRows() {\r\n var rowHeights = [];\r\n var fixedRowHeights = [];\r\n var rowIndex;\r\n var $rowElements;\r\n var $fixedRowElements;\r\n var $contentElement;\r\n this.waitAsyncTemplates(true).done(() => {\r\n if (this._isFixedColumns && this._tableElement && this._fixedTableElement) {\r\n var heightTable = this._getClientHeight(this._tableElement.get(0));\r\n var heightFixedTable = this._getClientHeight(this._fixedTableElement.get(0));\r\n $rowElements = this._getRowElements(this._tableElement);\r\n $fixedRowElements = this._getRowElements(this._fixedTableElement);\r\n $contentElement = this._findContentElement();\r\n if (heightTable !== heightFixedTable) {\r\n $contentElement && $contentElement.css(\"height\", heightTable);\r\n $rowElements.css(\"height\", \"\");\r\n $fixedRowElements.css(\"height\", \"\");\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n rowHeights.push(this._getClientHeight($rowElements.get(rowIndex)));\r\n fixedRowHeights.push(this._getClientHeight($fixedRowElements.get(rowIndex)))\r\n }\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n var rowHeight = rowHeights[rowIndex];\r\n var fixedRowHeight = fixedRowHeights[rowIndex];\r\n if (rowHeight > fixedRowHeight) {\r\n $fixedRowElements.eq(rowIndex).css(\"height\", rowHeight)\r\n } else if (rowHeight < fixedRowHeight) {\r\n $rowElements.eq(rowIndex).css(\"height\", fixedRowHeight)\r\n }\r\n }\r\n $contentElement && $contentElement.css(\"height\", \"\")\r\n }\r\n }\r\n })\r\n }\r\n setScrollerSpacing(width, hWidth) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n super.setScrollerSpacing(width);\r\n this.element().children(\".\".concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS))).css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n};\r\nvar columnHeadersView = Base => class extends(baseFixedColumns(Base)) {\r\n _getRowVisibleColumns(rowIndex) {\r\n if (this._isFixedTableRendering) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return super._getRowVisibleColumns(rowIndex)\r\n }\r\n getContextMenuItems(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var columnFixingOptions = this.option(\"columnFixing\");\r\n var items = super.getContextMenuItems(options);\r\n if (options.row && \"header\" === options.row.rowType) {\r\n if (true === columnFixingOptions.enabled && column && column.allowFixing) {\r\n var onItemClick = params => {\r\n switch (params.itemData.value) {\r\n case \"none\":\r\n this._columnsController.columnOption(column.index, \"fixed\", false);\r\n break;\r\n case \"left\":\r\n this._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"left\"\r\n });\r\n break;\r\n case \"right\":\r\n this._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"right\"\r\n })\r\n }\r\n };\r\n items = items || [];\r\n items.push({\r\n text: columnFixingOptions.texts.fix,\r\n beginGroup: true,\r\n items: [{\r\n text: columnFixingOptions.texts.leftPosition,\r\n value: \"left\",\r\n disabled: column.fixed && (!column.fixedPosition || \"left\" === column.fixedPosition),\r\n onItemClick: onItemClick\r\n }, {\r\n text: columnFixingOptions.texts.rightPosition,\r\n value: \"right\",\r\n disabled: column.fixed && \"right\" === column.fixedPosition,\r\n onItemClick: onItemClick\r\n }]\r\n }, {\r\n text: columnFixingOptions.texts.unfix,\r\n value: \"none\",\r\n disabled: !column.fixed,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n }\r\n getFixedColumnElements(rowIndex) {\r\n if (isDefined(rowIndex)) {\r\n return this._fixedTableElement && this._getRowElements(this._fixedTableElement).eq(rowIndex).children()\r\n }\r\n var columnElements = this.getColumnElements();\r\n var $transparentColumnElement = this.getTransparentColumnElement();\r\n if (columnElements && $transparentColumnElement && $transparentColumnElement.length) {\r\n var transparentColumnIndex = getTransparentColumnIndex(this.getFixedColumns());\r\n columnElements.splice(transparentColumnIndex, $transparentColumnElement.get(0).colSpan, $transparentColumnElement.get(0))\r\n }\r\n return columnElements\r\n }\r\n getColumnWidths() {\r\n var fixedWidths;\r\n var result = super.getColumnWidths();\r\n var $fixedColumnElements = this.getFixedColumnElements();\r\n var fixedColumns = this.getFixedColumns();\r\n if (this._fixedTableElement) {\r\n if ($fixedColumnElements && $fixedColumnElements.length) {\r\n fixedWidths = this._getWidths($fixedColumnElements)\r\n } else {\r\n fixedWidths = super.getColumnWidths(this._fixedTableElement)\r\n }\r\n }\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n }\r\n};\r\nvar rowsView = Base => class extends(baseFixedColumns(Base)) {\r\n dispose() {\r\n super.dispose.apply(this, arguments);\r\n clearTimeout(this._fixedScrollTimeout)\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n if (\"hoverStateEnabled\" === args.name && this._isFixedColumns) {\r\n args.value ? this._attachHoverEvents() : this._detachHoverEvents()\r\n }\r\n }\r\n _detachHoverEvents() {\r\n var element = this.element();\r\n if (this._fixedTableElement && this._tableElement) {\r\n eventsEngine.off(element, \"mouseover mouseout\", \".dx-data-row\")\r\n }\r\n }\r\n _attachHoverEvents() {\r\n if (this._fixedTableElement && this._tableElement) {\r\n eventsEngine.on(this.element(), \"mouseover mouseout\", \".dx-data-row\", this.createAction(args => {\r\n var {\r\n event: event\r\n } = args;\r\n var rowIndex = this.getRowIndex($(event.target).closest(\".dx-row\"));\r\n var isHover = \"mouseover\" === event.type;\r\n if (rowIndex >= 0) {\r\n this._tableElement && this._getRowElements(this._tableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover);\r\n this._fixedTableElement && this._getRowElements(this._fixedTableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover)\r\n }\r\n }))\r\n }\r\n }\r\n _getScrollDelay() {\r\n var _a;\r\n var hasResizeTimeout = null === (_a = this._resizingController) || void 0 === _a ? void 0 : _a.hasResizeTimeout();\r\n if (hasResizeTimeout) {\r\n return this.option(\"scrolling.updateTimeout\")\r\n }\r\n return browser.mozilla ? 60 : 0\r\n }\r\n _findContentElement(isFixedTableRendering) {\r\n var $content;\r\n var scrollTop;\r\n var contentClass = this.addWidgetPrefix(CONTENT_CLASS);\r\n var element = this.element();\r\n isFixedTableRendering = this._isFixedTableRendering || isFixedTableRendering;\r\n if (element && isFixedTableRendering) {\r\n $content = element.children(\".\".concat(contentClass));\r\n var scrollable = this.getScrollable();\r\n if (!$content.length && scrollable) {\r\n $content = $(\"<div>\").addClass(contentClass);\r\n eventsEngine.on($content, \"scroll\", e => {\r\n var {\r\n target: target\r\n } = e;\r\n var scrollDelay = this._getScrollDelay();\r\n clearTimeout(this._fixedScrollTimeout);\r\n this._fixedScrollTimeout = setTimeout(() => {\r\n scrollTop = $(target).scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }, scrollDelay)\r\n });\r\n eventsEngine.on($content, wheelEventName, e => {\r\n var $nearestScrollable = $(e.target).closest(\".dx-scrollable\");\r\n var shouldScroll = false;\r\n if (scrollable && scrollable.$element().is($nearestScrollable)) {\r\n shouldScroll = true\r\n } else {\r\n var nearestScrollableInstance = $nearestScrollable.length && Scrollable.getInstance($nearestScrollable.get(0));\r\n var nearestScrollableHasVerticalScrollbar = nearestScrollableInstance && nearestScrollableInstance.scrollHeight() - nearestScrollableInstance.clientHeight() > 0;\r\n shouldScroll = nearestScrollableInstance && !nearestScrollableHasVerticalScrollbar\r\n }\r\n if (shouldScroll) {\r\n scrollTop = scrollable.scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop - e.delta\r\n });\r\n var scrollableTop = scrollable.scrollTop() + scrollable.clientHeight();\r\n var scrollableHeight = scrollable.scrollHeight() + this.getScrollbarWidth();\r\n var isPreventDefault = scrollable.scrollTop() > 0 && scrollableTop < scrollableHeight;\r\n if (isPreventDefault) {\r\n return false\r\n }\r\n }\r\n return\r\n });\r\n $content.appendTo(element)\r\n }\r\n return $content\r\n }\r\n return super._findContentElement()\r\n }\r\n _updateScrollable() {\r\n super._updateScrollable();\r\n var scrollable = this.getScrollable();\r\n if (null === scrollable || void 0 === scrollable ? void 0 : scrollable._disposed) {\r\n return\r\n }\r\n var scrollTop = scrollable && scrollable.scrollOffset().top;\r\n this._updateFixedTablePosition(scrollTop)\r\n }\r\n _renderContent(contentElement, tableElement, isFixedTableRendering) {\r\n if (this._isFixedTableRendering || isFixedTableRendering) {\r\n return contentElement.empty().addClass(\"\".concat(this.addWidgetPrefix(CONTENT_CLASS), \" \").concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS))).append(tableElement)\r\n }\r\n return super._renderContent(contentElement, tableElement)\r\n }\r\n _getGroupCellOptions(options) {\r\n if (this._isFixedTableRendering) {\r\n return super._getGroupCellOptions(extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n }\r\n return super._getGroupCellOptions(options)\r\n }\r\n _renderGroupedCells($row, options) {\r\n return super._renderGroupedCells($row, extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n }\r\n _renderGroupSummaryCells($row, options) {\r\n if (this._isFixedTableRendering) {\r\n super._renderGroupSummaryCells($row, extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n } else {\r\n super._renderGroupSummaryCells($row, options)\r\n }\r\n }\r\n _hasAlignByColumnSummaryItems(columnIndex, options) {\r\n var result = super._hasAlignByColumnSummaryItems.apply(this, arguments);\r\n var column = options.columns[columnIndex];\r\n if (options.isFixed) {\r\n return column.fixed && (result || \"right\" === column.fixedPosition)\r\n }\r\n return result && (!this._isFixedColumns || !column.fixed)\r\n }\r\n _renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n var alignByFixedColumnCellCount;\r\n if (this._isFixedTableRendering) {\r\n options.isFixed = true;\r\n alignByFixedColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n options.isFixed = false;\r\n var startColumnIndex = options.columns.length - alignByFixedColumnCellCount;\r\n options = extend({}, options, {\r\n columns: this.getFixedColumns()\r\n });\r\n var transparentColumnIndex = getTransparentColumnIndex(options.columns);\r\n if (startColumnIndex < transparentColumnIndex) {\r\n alignByFixedColumnCellCount -= options.columns[transparentColumnIndex].colspan - 1 || 0;\r\n groupCellColSpan -= options.columns[transparentColumnIndex].colspan - 1 || 0\r\n } else if (alignByColumnCellCount > 0) {\r\n $groupCell.css(\"visibility\", \"hidden\")\r\n }\r\n alignByColumnCellCount = alignByFixedColumnCellCount\r\n }\r\n super._renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n }\r\n _getSummaryCellIndex(columnIndex, columns) {\r\n if (this._isFixedTableRendering) {\r\n var transparentColumnIndex = getTransparentColumnIndex(columns);\r\n if (columnIndex > transparentColumnIndex) {\r\n columnIndex += columns[transparentColumnIndex].colspan - 1\r\n }\r\n return columnIndex\r\n }\r\n return super._getSummaryCellIndex.apply(this, arguments)\r\n }\r\n _renderCore(change) {\r\n this._detachHoverEvents();\r\n var deferred = super._renderCore(change);\r\n var isFixedColumns = this._isFixedColumns;\r\n this.element().toggleClass(FIXED_COLUMNS_CLASS, isFixedColumns);\r\n if (this.option(\"hoverStateEnabled\") && isFixedColumns) {\r\n this._attachHoverEvents()\r\n }\r\n return deferred\r\n }\r\n setAriaOwns(headerTableId, footerTableId, isFixed) {\r\n var _a, _b;\r\n if (isFixed) {\r\n var contentFixedClass = this.addWidgetPrefix(CONTENT_FIXED_CLASS);\r\n var $contentFixedElement = null === (_a = this.element()) || void 0 === _a ? void 0 : _a.children(\".\".concat(contentFixedClass));\r\n var $fixedTableElement = this.getFixedTableElement();\r\n if ($contentFixedElement.length && (null === $fixedTableElement || void 0 === $fixedTableElement ? void 0 : $fixedTableElement.length)) {\r\n this.setAria(\"owns\", \"\".concat(null !== headerTableId && void 0 !== headerTableId ? headerTableId : \"\", \" \").concat(null !== (_b = $fixedTableElement.attr(\"id\")) && void 0 !== _b ? _b : \"\", \" \").concat(null !== footerTableId && void 0 !== footerTableId ? footerTableId : \"\").trim(), $contentFixedElement)\r\n }\r\n } else {\r\n super.setAriaOwns.apply(this, arguments)\r\n }\r\n }\r\n setRowsOpacity(columnIndex, value) {\r\n super.setRowsOpacity(columnIndex, value);\r\n var $rows = this._getRowElements(this._fixedTableElement);\r\n this._setRowsOpacityCore($rows, this.getFixedColumns(), columnIndex, value)\r\n }\r\n getCellIndex($cell) {\r\n var $fixedTable = this._fixedTableElement;\r\n var cellIndex = 0;\r\n if ($fixedTable && $cell.is(\"td\") && $cell.closest($fixedTable).length) {\r\n var columns = this.getFixedColumns();\r\n each(columns, (index, column) => {\r\n if (index === $cell[0].cellIndex) {\r\n return false\r\n }\r\n if (column.colspan) {\r\n cellIndex += column.colspan;\r\n return\r\n }\r\n cellIndex++;\r\n return\r\n });\r\n return cellIndex\r\n }\r\n return super.getCellIndex.apply(this, arguments)\r\n }\r\n _updateFixedTablePosition(scrollTop, needFocus) {\r\n if (this._fixedTableElement && this._tableElement) {\r\n var $focusedElement;\r\n this._fixedTableElement.parent().scrollTop(scrollTop);\r\n if (needFocus && this._editorFactoryController) {\r\n $focusedElement = this._editorFactoryController.focus();\r\n $focusedElement && this._editorFactoryController.focus($focusedElement)\r\n }\r\n }\r\n }\r\n setScrollerSpacing(vWidth, hWidth) {\r\n var styles = {\r\n marginBottom: 0\r\n };\r\n var $fixedContent = this.element().children(\".\".concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS)));\r\n if ($fixedContent.length && this._fixedTableElement) {\r\n $fixedContent.css(styles);\r\n this._fixedTableElement.css(styles);\r\n styles[this.option(\"rtlEnabled\") ? \"marginLeft\" : \"marginRight\"] = vWidth;\r\n styles.marginBottom = hWidth;\r\n var useNativeScrolling = this._scrollable && this._scrollable.option(\"useNative\");\r\n (useNativeScrolling ? $fixedContent : this._fixedTableElement).css(styles)\r\n }\r\n }\r\n _getElasticScrollTop(e) {\r\n var elasticScrollTop = 0;\r\n if (e.scrollOffset.top < 0) {\r\n elasticScrollTop = -e.scrollOffset.top\r\n } else if (e.reachedBottom) {\r\n var $scrollableContent = $(e.component.content());\r\n var $scrollableContainer = $(e.component.container());\r\n var maxScrollTop = Math.max($scrollableContent.get(0).clientHeight - $scrollableContainer.get(0).clientHeight, 0);\r\n elasticScrollTop = Math.min(maxScrollTop - e.scrollOffset.top, 0)\r\n }\r\n return Math.floor(elasticScrollTop)\r\n }\r\n _applyElasticScrolling(e) {\r\n if (this._fixedTableElement) {\r\n var elasticScrollTop = this._getElasticScrollTop(e);\r\n if (0 !== Math.ceil(elasticScrollTop)) {\r\n move(this._fixedTableElement, {\r\n top: elasticScrollTop\r\n })\r\n } else {\r\n this._fixedTableElement.css(\"transform\", \"\")\r\n }\r\n }\r\n }\r\n _handleScroll(e) {\r\n this._updateFixedTablePosition(e.scrollOffset.top, true);\r\n this._applyElasticScrolling(e);\r\n super._handleScroll(e)\r\n }\r\n _updateContentPosition(isRender) {\r\n super._updateContentPosition.apply(this, arguments);\r\n if (!isRender) {\r\n this._updateFixedTablePosition(this._scrollTop)\r\n }\r\n }\r\n _afterRowPrepared(e) {\r\n if (this._isFixedTableRendering) {\r\n return\r\n }\r\n super._afterRowPrepared(e)\r\n }\r\n _scrollToElement($element) {\r\n super._scrollToElement($element, this.getFixedColumnsOffset())\r\n }\r\n};\r\nvar footerView = Base => class extends(baseFixedColumns(Base)) {};\r\nvar normalizeColumnIndicesByPoints = function(columns, fixedColumns, pointsByColumns) {\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var correctIndex = columns.length - fixedColumns.length;\r\n each(pointsByColumns, (_, point) => {\r\n if (point.index > transparentColumnIndex) {\r\n point.columnIndex += correctIndex;\r\n point.index += correctIndex\r\n }\r\n });\r\n return pointsByColumns\r\n};\r\nvar draggingHeader = Base => class extends Base {\r\n _generatePointsByColumns(options) {\r\n var visibleColumns = options.columns;\r\n var {\r\n targetDraggingPanel: targetDraggingPanel\r\n } = options;\r\n if (targetDraggingPanel && \"headers\" === targetDraggingPanel.getName() && targetDraggingPanel.isFixedColumns()) {\r\n if (options.sourceColumn.fixed) {\r\n if (!options.rowIndex) {\r\n options.columnElements = targetDraggingPanel.getFixedColumnElements(0)\r\n }\r\n options.columns = targetDraggingPanel.getFixedColumns(options.rowIndex);\r\n var pointsByColumns = super._generatePointsByColumns(options);\r\n normalizeColumnIndicesByPoints(visibleColumns, options.columns, pointsByColumns);\r\n return pointsByColumns\r\n }\r\n }\r\n return super._generatePointsByColumns(options)\r\n }\r\n _pointCreated(point, columns, location, sourceColumn) {\r\n var result = super._pointCreated.apply(this, arguments);\r\n var targetColumn = columns[point.columnIndex];\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if (!result && \"headers\" === location && $transparentColumn && $transparentColumn.length) {\r\n var boundingRect = getBoundingRect($transparentColumn.get(0));\r\n if (sourceColumn && sourceColumn.fixed) {\r\n return \"right\" === sourceColumn.fixedPosition ? point.x < boundingRect.right : point.x > boundingRect.left\r\n }\r\n if (targetColumn && targetColumn.fixed && \"right\" !== targetColumn.fixedPosition) {\r\n return true\r\n }\r\n return point.x < boundingRect.left || point.x > boundingRect.right\r\n }\r\n return result\r\n }\r\n};\r\nvar columnsResizer = Base => class extends Base {\r\n _generatePointsByColumns() {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var columns = columnsController && that._columnsController.getVisibleColumns();\r\n var fixedColumns = columnsController && that._columnsController.getFixedColumns();\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var correctIndex = columns.length - fixedColumns.length;\r\n var cells = that._columnHeadersView.getFixedColumnElements();\r\n super._generatePointsByColumns();\r\n if (cells && cells.length > 0) {\r\n that._pointsByFixedColumns = gridCoreUtils.getPointsByColumns(cells, point => {\r\n if (point.index > transparentColumnIndex) {\r\n point.columnIndex += correctIndex;\r\n point.index += correctIndex\r\n }\r\n return that._pointCreated(point, columns.length, columns)\r\n })\r\n }\r\n }\r\n _getTargetPoint(pointsByColumns, currentX, deltaX) {\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if ($transparentColumn && $transparentColumn.length) {\r\n var boundingRect = getBoundingRect($transparentColumn.get(0));\r\n if (currentX <= boundingRect.left || currentX >= boundingRect.right) {\r\n return super._getTargetPoint(this._pointsByFixedColumns, currentX, deltaX)\r\n }\r\n }\r\n return super._getTargetPoint(pointsByColumns, currentX, deltaX)\r\n }\r\n};\r\nvar resizing = Base => class extends Base {\r\n _setAriaOwns() {\r\n var _a, _b, _c;\r\n super._setAriaOwns.apply(this, arguments);\r\n var headerFixedTable = null === (_a = this._columnHeadersView) || void 0 === _a ? void 0 : _a.getFixedTableElement();\r\n var footerFixedTable = null === (_b = this._footerView) || void 0 === _b ? void 0 : _b.getFixedTableElement();\r\n null === (_c = this._rowsView) || void 0 === _c ? void 0 : _c.setAriaOwns(null === headerFixedTable || void 0 === headerFixedTable ? void 0 : headerFixedTable.attr(\"id\"), null === footerFixedTable || void 0 === footerFixedTable ? void 0 : footerFixedTable.attr(\"id\"), true)\r\n }\r\n};\r\nvar keyboardNavigation = Base => class extends Base {\r\n _toggleInertAttr(value) {\r\n var _a;\r\n var $fixedContent = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.getFixedContentElement();\r\n if (value) {\r\n null === $fixedContent || void 0 === $fixedContent ? void 0 : $fixedContent.attr(\"inert\", true)\r\n } else {\r\n null === $fixedContent || void 0 === $fixedContent ? void 0 : $fixedContent.removeAttr(\"inert\")\r\n }\r\n }\r\n};\r\nexport var columnFixingModule = {\r\n defaultOptions: () => ({\r\n columnFixing: {\r\n enabled: false,\r\n texts: {\r\n fix: messageLocalization.format(\"dxDataGrid-columnFixingFix\"),\r\n unfix: messageLocalization.format(\"dxDataGrid-columnFixingUnfix\"),\r\n leftPosition: messageLocalization.format(\"dxDataGrid-columnFixingLeftPosition\"),\r\n rightPosition: messageLocalization.format(\"dxDataGrid-columnFixingRightPosition\")\r\n }\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: columnHeadersView,\r\n rowsView: rowsView,\r\n footerView: footerView\r\n },\r\n controllers: {\r\n draggingHeader: draggingHeader,\r\n columnsResizer: columnsResizer,\r\n resizing: resizing,\r\n keyboardNavigation: keyboardNavigation\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/column_fixing.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnFixingModule\r\n} from \"../../../grids/grid_core/column_fixing/m_column_fixing\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"columnFixing\", columnFixingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/adaptivity/m_adaptivity.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../../core/guid\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isElementInDom\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Form from \"../../../../ui/form\";\r\nimport {\r\n isMaterial\r\n} from \"../../../../ui/themes\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\nvar ROWS_VIEW = \"rowsView\";\r\nvar FOOTER_VIEW = \"footerView\";\r\nvar COLUMN_VIEWS = [COLUMN_HEADERS_VIEW, ROWS_VIEW, FOOTER_VIEW];\r\nvar ADAPTIVE_NAMESPACE = \"dxDataGridAdaptivity\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar ADAPTIVE_ROW_TYPE = \"detailAdaptive\";\r\nvar FORM_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar FORM_ITEM_MODIFIED = \"dx-item-modified\";\r\nvar HIDDEN_COLUMN_CLASS = \"hidden-column\";\r\nvar ADAPTIVE_COLUMN_BUTTON_CLASS = \"adaptive-more\";\r\nvar ADAPTIVE_COLUMN_NAME_CLASS = \"dx-command-adaptive\";\r\nvar COMMAND_ADAPTIVE_HIDDEN_CLASS = \"dx-command-adaptive-hidden\";\r\nvar ADAPTIVE_DETAIL_ROW_CLASS = \"dx-adaptive-detail-row\";\r\nvar ADAPTIVE_ITEM_TEXT_CLASS = \"dx-adaptive-item-text\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar LAST_DATA_CELL_CLASS = \"dx-last-data-cell\";\r\nvar ADAPTIVE_COLUMN_NAME = \"adaptive\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar REVERT_TOOLTIP_CLASS = \"revert-tooltip\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar EXPAND_ARIA_NAME = \"dxDataGrid-ariaAdaptiveExpand\";\r\nvar COLLAPSE_ARIA_NAME = \"dxDataGrid-ariaAdaptiveCollapse\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\n\r\nfunction getColumnId(that, column) {\r\n return that._columnsController.getColumnId(column)\r\n}\r\n\r\nfunction getDataCellElements($row) {\r\n return $row.find(\"td:not(.dx-datagrid-hidden-column):not([class*='dx-command-'])\")\r\n}\r\n\r\nfunction adaptiveCellTemplate(container, options) {\r\n var $adaptiveColumnButton;\r\n var $container = $(container);\r\n var adaptiveColumnsController = options.component.getController(\"adaptiveColumns\");\r\n if (\"data\" === options.rowType) {\r\n $adaptiveColumnButton = $(\"<span>\").addClass(adaptiveColumnsController.addWidgetPrefix(ADAPTIVE_COLUMN_BUTTON_CLASS));\r\n eventsEngine.on($adaptiveColumnButton, addNamespace(clickEventName, ADAPTIVE_NAMESPACE), adaptiveColumnsController.createAction(() => {\r\n adaptiveColumnsController.toggleExpandAdaptiveDetailRow(options.key)\r\n }));\r\n $adaptiveColumnButton.appendTo($container)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n}\r\n\r\nfunction focusCellHandler(e) {\r\n var _a;\r\n var $nextCell = null === (_a = e.data) || void 0 === _a ? void 0 : _a.$nextCell;\r\n eventsEngine.off($nextCell, \"focus\", focusCellHandler);\r\n eventsEngine.trigger($nextCell, \"dxclick\")\r\n}\r\nexport class AdaptiveColumnsController extends modules.ViewController {\r\n init() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._editingController = this.getController(\"editing\");\r\n this._keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._columnsController.addCommandColumn({\r\n type: ADAPTIVE_COLUMN_NAME,\r\n command: ADAPTIVE_COLUMN_NAME,\r\n visible: true,\r\n adaptiveHidden: true,\r\n cssClass: ADAPTIVE_COLUMN_NAME_CLASS,\r\n alignment: \"center\",\r\n width: \"auto\",\r\n cellTemplate: adaptiveCellTemplate,\r\n fixedPosition: \"right\"\r\n });\r\n this._columnsController.columnsChanged.add(() => {\r\n var isAdaptiveVisible = !!this.updateHidingQueue(this._columnsController.getColumns()).length;\r\n this._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !isAdaptiveVisible, true)\r\n });\r\n this._hidingColumnsQueue = [];\r\n this._hiddenColumns = [];\r\n this.createAction(\"onAdaptiveDetailRowPreparing\");\r\n super.init()\r\n }\r\n optionChanged(args) {\r\n if (\"columnHidingEnabled\" === args.name) {\r\n this._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !args.value)\r\n }\r\n super.optionChanged(args)\r\n }\r\n publicMethods() {\r\n return [\"isAdaptiveDetailRowExpanded\", \"expandAdaptiveDetailRow\", \"collapseAdaptiveDetailRow\"]\r\n }\r\n _isRowEditMode() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_ROW\r\n }\r\n _isItemModified(item, cellOptions) {\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n var rowIndex = this._dataController.getRowIndexByKey(cellOptions.key);\r\n var row = this._dataController.items()[rowIndex + 1];\r\n return row && row.modifiedValues && isDefined(row.modifiedValues[columnIndex])\r\n }\r\n _renderFormViewTemplate(item, cellOptions, $container) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = item;\r\n var focusAction = that.createAction(() => {\r\n if (that._editingController.isEditing()) {\r\n eventsEngine.trigger($container, clickEventName)\r\n }\r\n });\r\n var rowData = cellOptions.row.data;\r\n var value = column.calculateCellValue(rowData);\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, rowData, cellOptions.rowType);\r\n var text = gridCoreUtils.formatValue(displayValue, column);\r\n var isCellOrBatchEditMode = this._editingController.isCellOrBatchEditMode();\r\n var rowsView = that._rowsView;\r\n if (column.allowEditing && this._keyboardNavigationController.isKeyboardEnabled()) {\r\n $container.attr(\"tabIndex\", that.option(\"tabIndex\"));\r\n if (isCellOrBatchEditMode) {\r\n eventsEngine.off($container, \"focus\", focusAction);\r\n eventsEngine.on($container, \"focus\", focusAction)\r\n }\r\n }\r\n if (column.cellTemplate) {\r\n var templateOptions = extend({}, cellOptions, {\r\n value: value,\r\n displayValue: displayValue,\r\n text: text,\r\n column: column\r\n });\r\n rowsView.renderTemplate($container, column.cellTemplate, templateOptions, isElementInDom($container)).done(() => {\r\n rowsView._cellPrepared($container, cellOptions)\r\n })\r\n } else {\r\n var container = $container.get(0);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n $container.addClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n if (!isDefined(text) || \"\" === text) {\r\n $container.html(\" \")\r\n }\r\n if (!that._isRowEditMode()) {\r\n if (that._isItemModified(item, cellOptions)) {\r\n $container.addClass(FORM_ITEM_MODIFIED)\r\n }\r\n }\r\n rowsView._cellPrepared($container, cellOptions)\r\n }\r\n }\r\n _getTemplate(item, cellOptions, updateForm) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = item;\r\n var editingController = this._editingController;\r\n return function(options, container) {\r\n var $container = $(container);\r\n var columnIndex = that._columnsController.getVisibleIndex(column.index);\r\n var templateOptions = extend({}, cellOptions);\r\n var renderFormTemplate = function() {\r\n var isItemEdited = that._isItemEdited(item);\r\n templateOptions.value = cellOptions.row.values[columnIndex];\r\n if (isItemEdited || column.showEditorAlways) {\r\n editingController.renderFormEditorTemplate(templateOptions, item, options, $container, !isItemEdited)\r\n } else {\r\n templateOptions.column = column;\r\n templateOptions.columnIndex = columnIndex;\r\n that._renderFormViewTemplate(item, templateOptions, $container)\r\n }\r\n };\r\n renderFormTemplate();\r\n if (templateOptions.watch) {\r\n var dispose = templateOptions.watch(() => ({\r\n isItemEdited: that._isItemEdited(item),\r\n value: cellOptions.row.values[columnIndex]\r\n }), () => {\r\n $container.contents().remove();\r\n $container.removeClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n renderFormTemplate()\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n }\r\n }\r\n }\r\n _isVisibleColumnsValid(visibleColumns) {\r\n if (visibleColumns < 2) {\r\n return false\r\n }\r\n if (visibleColumns.length - function() {\r\n var result = 0;\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var visibleColumn = visibleColumns[j];\r\n if (visibleColumn.command) {\r\n result++\r\n }\r\n }\r\n return result\r\n }() <= 1) {\r\n return false\r\n }\r\n return true\r\n }\r\n _calculatePercentWidths(widths, visibleColumns) {\r\n var that = this;\r\n var percentWidths = 0;\r\n visibleColumns.forEach((item, index) => {\r\n if (widths[index] !== HIDDEN_COLUMNS_WIDTH) {\r\n percentWidths += that._getItemPercentWidth(item)\r\n }\r\n });\r\n return percentWidths\r\n }\r\n _isPercentWidth(width) {\r\n return isString(width) && width.endsWith(\"%\")\r\n }\r\n _isColumnHidden(column) {\r\n return this._hiddenColumns.filter(hiddenColumn => hiddenColumn.index === column.index).length > 0\r\n }\r\n _getAverageColumnsWidth(containerWidth, columns, columnsCanFit) {\r\n var that = this;\r\n var fixedColumnsWidth = 0;\r\n var columnsWithoutFixedWidthCount = 0;\r\n columns.forEach(column => {\r\n if (!that._isColumnHidden(column)) {\r\n var {\r\n width: width\r\n } = column;\r\n if (isDefined(width) && !isNaN(parseFloat(width))) {\r\n fixedColumnsWidth += that._isPercentWidth(width) ? that._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columns.length,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: column.bestFitWidth,\r\n columnWidth: width,\r\n containerWidth: containerWidth\r\n }) : parseFloat(width)\r\n } else {\r\n columnsWithoutFixedWidthCount++\r\n }\r\n }\r\n });\r\n return (containerWidth - fixedColumnsWidth) / columnsWithoutFixedWidthCount\r\n }\r\n _calculateColumnWidth(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n var columnsCount = contentColumns.length;\r\n var colWidth;\r\n if (widthOption && \"auto\" !== widthOption) {\r\n if (this._isPercentWidth(widthOption)) {\r\n colWidth = this._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columnsCount,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: bestFitWidth,\r\n columnWidth: widthOption,\r\n containerWidth: containerWidth\r\n })\r\n } else {\r\n return parseFloat(widthOption)\r\n }\r\n } else {\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n colWidth = columnAutoWidth || !!column.command ? bestFitWidth : this._getAverageColumnsWidth(containerWidth, contentColumns, columnsCanFit)\r\n }\r\n return colWidth\r\n }\r\n _calculatePercentWidth(options) {\r\n var columnFitted = options.visibleIndex < options.columnsCount - 1 && options.columnsCanFit;\r\n var partialWidth = options.containerWidth * parseFloat(options.columnWidth) / 100;\r\n var resultWidth = options.columnsCanFit && partialWidth < options.bestFitWidth ? options.bestFitWidth : partialWidth;\r\n return columnFitted ? options.containerWidth * parseFloat(options.columnWidth) / 100 : resultWidth\r\n }\r\n _getNotTruncatedColumnWidth(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (widthOption && \"auto\" !== widthOption && !this._isPercentWidth(widthOption)) {\r\n return parseFloat(widthOption)\r\n }\r\n var colWidth = this._calculateColumnWidth(column, containerWidth, contentColumns, columnsCanFit);\r\n return colWidth < bestFitWidth ? null : colWidth\r\n }\r\n _getItemPercentWidth(item) {\r\n var result = 0;\r\n if (item.width && this._isPercentWidth(item.width)) {\r\n result = parseFloat(item.width)\r\n }\r\n return result\r\n }\r\n _getCommandColumnsWidth() {\r\n var that = this;\r\n var columns = that._columnsController.getVisibleColumns();\r\n var colWidth = 0;\r\n each(columns, (index, column) => {\r\n if (column.index < 0 || column.command) {\r\n colWidth += that._columnsController.columnOption(getColumnId(that, column), \"bestFitWidth\") || 0\r\n }\r\n });\r\n return colWidth\r\n }\r\n _isItemEdited(item) {\r\n if (this.isFormOrPopupEditMode()) {\r\n return false\r\n }\r\n if (this._isRowEditMode()) {\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n if (equalByValue(editRowKey, this._dataController.adaptiveExpandedKey())) {\r\n return true\r\n }\r\n } else {\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n return this._editingController.isEditCell(rowIndex, columnIndex)\r\n }\r\n return\r\n }\r\n _getFormItemsByHiddenColumns(hiddenColumns) {\r\n var items = [];\r\n each(hiddenColumns, (_, column) => {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField,\r\n visibleIndex: column.visibleIndex\r\n })\r\n });\r\n return items\r\n }\r\n _getAdaptiveColumnVisibleIndex(visibleColumns) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n var column = visibleColumns[i];\r\n if (column.command === ADAPTIVE_COLUMN_NAME) {\r\n return i\r\n }\r\n }\r\n return\r\n }\r\n _hideAdaptiveColumn(resultWidths, visibleColumns) {\r\n var visibleIndex = this._getAdaptiveColumnVisibleIndex(visibleColumns);\r\n if (isDefined(visibleIndex)) {\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hideVisibleColumn({\r\n isCommandColumn: true,\r\n visibleIndex: visibleIndex\r\n })\r\n }\r\n }\r\n _showHiddenCellsInView(_ref) {\r\n var {\r\n $cells: $cells,\r\n isCommandColumn: isCommandColumn\r\n } = _ref;\r\n var cssClassNameToRemove = this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n if (isCommandColumn) {\r\n cssClassNameToRemove = COMMAND_ADAPTIVE_HIDDEN_CLASS;\r\n $cells.attr({\r\n tabIndex: 0,\r\n \"aria-hidden\": null\r\n }).removeClass(cssClassNameToRemove)\r\n } else {\r\n $cells.removeClass(cssClassNameToRemove)\r\n }\r\n }\r\n _showHiddenColumns() {\r\n for (var i = 0; i < COLUMN_VIEWS.length; i++) {\r\n var view = this.getView(COLUMN_VIEWS[i]);\r\n if (view && view.isVisible() && view.element()) {\r\n var viewName = view.name;\r\n var $hiddenCommandCells = view.element().find(\".\".concat(COMMAND_ADAPTIVE_HIDDEN_CLASS));\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCommandCells,\r\n isCommandColumn: true\r\n });\r\n var $hiddenCells = view.element().find(\".\".concat(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS)));\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCells\r\n })\r\n }\r\n }\r\n }\r\n _isCellValid($cell) {\r\n return $cell && $cell.length && !$cell.hasClass(MASTER_DETAIL_CELL_CLASS) && !$cell.hasClass(GROUP_CELL_CLASS)\r\n }\r\n _hideVisibleColumn(_ref2) {\r\n var {\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n } = _ref2;\r\n var that = this;\r\n COLUMN_VIEWS.forEach(viewName => {\r\n var view = that.getView(viewName);\r\n view && that._hideVisibleColumnInView({\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n })\r\n })\r\n }\r\n _hideVisibleColumnInView(_ref3) {\r\n var {\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n } = _ref3;\r\n var viewName = view.name;\r\n var $cellElement;\r\n var column = this._columnsController.getVisibleColumns()[visibleIndex];\r\n var editFormRowIndex = this._editingController && this._editingController.getEditFormRowIndex();\r\n if (view && view.isVisible() && column) {\r\n var rowsCount = view.getRowsCount();\r\n var $rowElements = view._getRowElements();\r\n for (var rowIndex = 0; rowIndex < rowsCount; rowIndex++) {\r\n var cancelClassAdding = rowIndex === editFormRowIndex && viewName === ROWS_VIEW && \"popup\" !== this.option(\"editing.mode\");\r\n if (!cancelClassAdding) {\r\n var currentVisibleIndex = viewName === COLUMN_HEADERS_VIEW ? this._columnsController.getVisibleIndex(column.index, rowIndex) : visibleIndex;\r\n if (currentVisibleIndex >= 0) {\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n $cellElement = this._findCellElementInRow($rowElement, currentVisibleIndex);\r\n this._isCellValid($cellElement) && this._hideVisibleCellInView({\r\n viewName: viewName,\r\n isCommandColumn: isCommandColumn,\r\n $cell: $cellElement\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n _findCellElementInRow($rowElement, visibleColumnIndex) {\r\n var $rowCells = $rowElement.children();\r\n var visibleIndex = visibleColumnIndex;\r\n var cellIsInsideGroup = false;\r\n if ($rowElement.hasClass(GROUP_ROW_CLASS)) {\r\n var $groupCell = $rowElement.find(\".\".concat(GROUP_CELL_CLASS));\r\n var colSpan = $groupCell.attr(\"colspan\");\r\n if ($groupCell.length && isDefined(colSpan)) {\r\n var groupCellLength = parseInt(colSpan);\r\n var endGroupIndex = $groupCell.index() + groupCellLength - 1;\r\n if (visibleColumnIndex > endGroupIndex) {\r\n visibleIndex = visibleColumnIndex - groupCellLength + 1\r\n } else {\r\n cellIsInsideGroup = true\r\n }\r\n }\r\n }\r\n var $cellElement = !cellIsInsideGroup ? $rowCells.eq(visibleIndex) : void 0;\r\n return $cellElement\r\n }\r\n _hideVisibleCellInView(_ref4) {\r\n var {\r\n $cell: $cell,\r\n isCommandColumn: isCommandColumn\r\n } = _ref4;\r\n var cssClassNameToAdd = isCommandColumn ? COMMAND_ADAPTIVE_HIDDEN_CLASS : this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n $cell.attr({\r\n tabIndex: -1,\r\n \"aria-hidden\": true\r\n }).addClass(cssClassNameToAdd)\r\n }\r\n _getEditMode() {\r\n return this._editingController.getEditMode()\r\n }\r\n isFormOrPopupEditMode() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_FORM || editMode === EDIT_MODE_POPUP\r\n }\r\n hideRedundantColumns(resultWidths, visibleColumns, hiddenQueue) {\r\n this._hiddenColumns = [];\r\n if (this._isVisibleColumnsValid(visibleColumns) && hiddenQueue.length) {\r\n var totalWidth = 0;\r\n var $rootElement = this.component.$element();\r\n var rootElementWidth = getWidth($rootElement) - this._getCommandColumnsWidth();\r\n var getVisibleContentColumns = function() {\r\n return visibleColumns.filter(item => !item.command && 0 === this._hiddenColumns.filter(i => i.index === item.index).length)\r\n }.bind(this);\r\n var visibleContentColumns = getVisibleContentColumns();\r\n var contentColumnsCount = visibleContentColumns.length;\r\n var i;\r\n var hasHiddenColumns;\r\n var needHideColumn;\r\n do {\r\n needHideColumn = false;\r\n totalWidth = 0;\r\n var percentWidths = this._calculatePercentWidths(resultWidths, visibleColumns);\r\n var columnsCanFit = percentWidths < 100 && 0 !== percentWidths;\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n var visibleColumn = visibleColumns[i];\r\n var columnWidth = this._getNotTruncatedColumnWidth(visibleColumn, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n var columnId = getColumnId(this, visibleColumn);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var minWidth = this._columnsController.columnOption(columnId, \"minWidth\");\r\n var columnBestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (resultWidths[i] === HIDDEN_COLUMNS_WIDTH) {\r\n hasHiddenColumns = true;\r\n continue\r\n }\r\n if (!columnWidth && !visibleColumn.command && !visibleColumn.fixed) {\r\n needHideColumn = true;\r\n break\r\n }\r\n if (!widthOption || \"auto\" === widthOption) {\r\n columnWidth = Math.max(columnBestFitWidth || 0, minWidth || 0)\r\n }\r\n if (visibleColumn.command !== ADAPTIVE_COLUMN_NAME || hasHiddenColumns) {\r\n totalWidth += columnWidth\r\n }\r\n }\r\n needHideColumn = needHideColumn || totalWidth > getWidth($rootElement);\r\n if (needHideColumn) {\r\n var column = hiddenQueue.pop();\r\n var visibleIndex = this._columnsController.getVisibleIndex(column.index);\r\n rootElementWidth += this._calculateColumnWidth(column, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n this._hideVisibleColumn({\r\n visibleIndex: visibleIndex\r\n });\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hiddenColumns.push(column);\r\n visibleContentColumns = getVisibleContentColumns()\r\n }\r\n } while (needHideColumn && visibleContentColumns.length > 1 && hiddenQueue.length);\r\n if (contentColumnsCount === visibleContentColumns.length) {\r\n this._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n } else {\r\n this._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n }\r\n getAdaptiveDetailItems() {\r\n return this._$itemContents\r\n }\r\n getItemContentByColumnIndex(visibleColumnIndex) {\r\n var $itemContent;\r\n for (var i = 0; i < this._$itemContents.length; i++) {\r\n $itemContent = this._$itemContents.eq(i);\r\n var item = $itemContent.data(\"dx-form-item\");\r\n if (item && item.column && this._columnsController.getVisibleIndex(item.column.index) === visibleColumnIndex) {\r\n return $itemContent\r\n }\r\n }\r\n }\r\n toggleExpandAdaptiveDetailRow(key, alwaysExpanded) {\r\n if (!(this.isFormOrPopupEditMode() && this._editingController.isEditing())) {\r\n this._dataController.toggleExpandAdaptiveDetailRow(key, alwaysExpanded)\r\n }\r\n }\r\n createFormByHiddenColumns(container, options) {\r\n var that = this;\r\n var $container = $(container);\r\n var userFormOptions = {\r\n items: that._getFormItemsByHiddenColumns(that._hiddenColumns),\r\n formID: \"dx-\".concat(new Guid)\r\n };\r\n var defaultFormOptions = isMaterial() ? {\r\n colCount: 2\r\n } : {};\r\n this.executeAction(\"onAdaptiveDetailRowPreparing\", {\r\n formOptions: userFormOptions\r\n });\r\n that._$itemContents = null;\r\n that._form = that._createComponent($(\"<div>\").appendTo($container), Form, extend(defaultFormOptions, userFormOptions, {\r\n customizeItem(item) {\r\n var column = item.column || that._columnsController.columnOption(item.name || item.dataField);\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n item.column = column;\r\n item.template = that._getTemplate(item, options, that.updateForm.bind(that))\r\n }\r\n userFormOptions.customizeItem && userFormOptions.customizeItem.call(this, item)\r\n },\r\n onContentReady(e) {\r\n userFormOptions.onContentReady && userFormOptions.onContentReady.call(this, e);\r\n that._$itemContents = $container.find(\".\".concat(FORM_ITEM_CONTENT_CLASS))\r\n }\r\n }))\r\n }\r\n hasAdaptiveDetailRowExpanded() {\r\n return isDefined(this._dataController.adaptiveExpandedKey())\r\n }\r\n updateForm(hiddenColumns) {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n if (this._form && isDefined(this._form._contentReadyAction)) {\r\n if (hiddenColumns && hiddenColumns.length) {\r\n this._form.option(\"items\", this._getFormItemsByHiddenColumns(hiddenColumns))\r\n } else {\r\n this._form.repaint()\r\n }\r\n }\r\n }\r\n }\r\n updateHidingQueue(columns) {\r\n var hideableColumns = columns.filter(column => column.visible && !column.type && !column.fixed && !(isDefined(column.groupIndex) && column.groupIndex >= 0));\r\n var columnsHasHidingPriority;\r\n var i;\r\n this._hidingColumnsQueue = [];\r\n if (this.option(\"allowColumnResizing\") && \"widget\" === this.option(\"columnResizingMode\")) {\r\n return this._hidingColumnsQueue\r\n }\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n if (isDefined(hideableColumns[i].hidingPriority) && hideableColumns[i].hidingPriority >= 0) {\r\n columnsHasHidingPriority = true;\r\n this._hidingColumnsQueue[hideableColumns[i].hidingPriority] = hideableColumns[i]\r\n }\r\n }\r\n if (columnsHasHidingPriority) {\r\n this._hidingColumnsQueue.reverse()\r\n } else if (this.option(\"columnHidingEnabled\")) {\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n var visibleIndex = this._columnsController.getVisibleIndex(hideableColumns[i].index);\r\n this._hidingColumnsQueue[visibleIndex] = hideableColumns[i]\r\n }\r\n }\r\n this._hidingColumnsQueue = this._hidingColumnsQueue.filter(Object);\r\n return this._hidingColumnsQueue\r\n }\r\n getHiddenColumns() {\r\n return this._hiddenColumns\r\n }\r\n hasHiddenColumns() {\r\n return this._hiddenColumns.length > 0\r\n }\r\n getHidingColumnsQueue() {\r\n return this._hidingColumnsQueue\r\n }\r\n isAdaptiveDetailRowExpanded(key) {\r\n var dataController = this._dataController;\r\n return dataController.adaptiveExpandedKey() && equalByValue(dataController.adaptiveExpandedKey(), key)\r\n }\r\n expandAdaptiveDetailRow(key) {\r\n if (!this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow(key)\r\n }\r\n }\r\n collapseAdaptiveDetailRow() {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow()\r\n }\r\n }\r\n updateCommandAdaptiveAriaLabel(key, label) {\r\n var rowIndex = this._dataController.getRowIndexByKey(key);\r\n if (-1 === rowIndex) {\r\n return\r\n }\r\n var $row = $(this.component.getRowElement(rowIndex));\r\n this.setCommandAdaptiveAriaLabel($row, label)\r\n }\r\n setCommandAdaptiveAriaLabel($row, labelName) {\r\n var $adaptiveCommand = $row.find(\".dx-command-adaptive\");\r\n $adaptiveCommand.attr(\"aria-label\", messageLocalization.format(labelName))\r\n }\r\n}\r\nvar keyboardNavigation = Base => class extends Base {\r\n _isCellValid($cell, isClick) {\r\n return super._isCellValid($cell, isClick) && !$cell.hasClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS)) && !$cell.hasClass(COMMAND_ADAPTIVE_HIDDEN_CLASS)\r\n }\r\n _processNextCellInMasterDetail($nextCell, $cell) {\r\n super._processNextCellInMasterDetail($nextCell, $cell);\r\n var isCellOrBatchMode = this._editingController.isCellOrBatchEditMode();\r\n var isEditing = this._editingController.isEditing();\r\n if (isEditing && $nextCell && isCellOrBatchMode && !this._isInsideEditForm($nextCell)) {\r\n eventsEngine.off($nextCell, \"focus\", focusCellHandler);\r\n eventsEngine.on($nextCell, \"focus\", {\r\n $nextCell: $nextCell\r\n }, focusCellHandler);\r\n eventsEngine.trigger($cell, \"focus\")\r\n }\r\n }\r\n _isCellElement($cell) {\r\n return super._isCellElement($cell) || $cell.hasClass(ADAPTIVE_ITEM_TEXT_CLASS)\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n _getCellTemplate(options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\r\n if (options.rowType === ADAPTIVE_ROW_TYPE && \"detail\" === column.command) {\r\n return function(container, options) {\r\n that._adaptiveColumnsController.createFormByHiddenColumns($(container), options)\r\n }\r\n }\r\n return super._getCellTemplate(options)\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row && row.rowType === ADAPTIVE_ROW_TYPE && row.key === this._dataController.adaptiveExpandedKey()) {\r\n $row.addClass(ADAPTIVE_DETAIL_ROW_CLASS)\r\n }\r\n return $row\r\n }\r\n _renderCells($row, options) {\r\n super._renderCells($row, options);\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n var hidingColumnsQueueLength = adaptiveColumnsController.getHidingColumnsQueue().length;\r\n var hiddenColumnsLength = adaptiveColumnsController.getHiddenColumns().length;\r\n if (hidingColumnsQueueLength && !hiddenColumnsLength) {\r\n getDataCellElements($row).last().addClass(LAST_DATA_CELL_CLASS)\r\n }\r\n if (\"data\" === options.row.rowType) {\r\n adaptiveColumnsController.setCommandAdaptiveAriaLabel($row, EXPAND_ARIA_NAME)\r\n }\r\n }\r\n _getColumnIndexByElementCore($element) {\r\n var $itemContent = $element.closest(\".\".concat(FORM_ITEM_CONTENT_CLASS));\r\n if ($itemContent.length && $itemContent.closest(this.component.$element()).length) {\r\n var formItem = $itemContent.length ? $itemContent.first().data(\"dx-form-item\") : null;\r\n return formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index)\r\n }\r\n return super._getColumnIndexByElementCore($element)\r\n }\r\n _cellPrepared($cell, options) {\r\n super._cellPrepared.apply(this, arguments);\r\n if (options.row.rowType !== ADAPTIVE_ROW_TYPE && options.column.visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n $cell.addClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS))\r\n }\r\n }\r\n getCell(cellPosition, rows) {\r\n var item = this._dataController.items()[null === cellPosition || void 0 === cellPosition ? void 0 : cellPosition.rowIndex];\r\n if ((null === item || void 0 === item ? void 0 : item.rowType) === ADAPTIVE_ROW_TYPE) {\r\n var $adaptiveDetailItems = this._adaptiveColumnsController.getAdaptiveDetailItems();\r\n return super.getCell(cellPosition, rows, $adaptiveDetailItems)\r\n }\r\n return super.getCell.apply(this, arguments)\r\n }\r\n _getCellElement(rowIndex, columnIdentifier) {\r\n var item = this._dataController.items()[rowIndex];\r\n if (item && item.rowType === ADAPTIVE_ROW_TYPE) {\r\n return this._adaptiveColumnsController.getItemContentByColumnIndex(columnIdentifier)\r\n }\r\n return super._getCellElement.apply(this, arguments)\r\n }\r\n getContextMenuItems(options) {\r\n var _a;\r\n if (options.row && \"detailAdaptive\" === options.row.rowType) {\r\n var view = this._columnHeadersView;\r\n var formItem = $(options.targetElement).closest(\".dx-field-item-label\").next().data(\"dx-form-item\");\r\n options.column = formItem ? formItem.column : options.column;\r\n return view.getContextMenuItems && view.getContextMenuItems(options)\r\n }\r\n return null === (_a = super.getContextMenuItems) || void 0 === _a ? void 0 : _a.call(this, options)\r\n }\r\n isClickableElement($target) {\r\n var _a, _b;\r\n var isClickable = null !== (_b = null === (_a = super.isClickableElement) || void 0 === _a ? void 0 : _a.call(this, $target)) && void 0 !== _b ? _b : false;\r\n return isClickable || !!$target.closest(\".\".concat(ADAPTIVE_COLUMN_NAME_CLASS)).length\r\n }\r\n};\r\nvar exportExtender = Base => class extends Base {\r\n _updateColumnWidth(column, width) {\r\n super._updateColumnWidth(column, column.visibleWidth === HIDDEN_COLUMNS_WIDTH ? column.bestFitWidth : width)\r\n }\r\n};\r\nvar columnsResizer = Base => class extends Base {\r\n _pointCreated(point, cellsLength, columns) {\r\n var result = super._pointCreated(point, cellsLength, columns);\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumnIndex = this._getNextColumnIndex(point.columnIndex);\r\n var nextColumn = columns[nextColumnIndex] || {};\r\n var hasHiddenColumnsOnly = nextColumnIndex !== point.columnIndex + 1 && nextColumn.command;\r\n var hasAdaptiveHiddenWidth = currentColumn.visibleWidth === HIDDEN_COLUMNS_WIDTH || hasHiddenColumnsOnly;\r\n return result || hasAdaptiveHiddenWidth\r\n }\r\n _getNextColumnIndex(currentColumnIndex) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var index = super._getNextColumnIndex(currentColumnIndex);\r\n while (visibleColumns[index] && visibleColumns[index].visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n index++\r\n }\r\n return index\r\n }\r\n};\r\nvar draggingHeader = Base => class extends Base {\r\n _pointCreated(point, columns, location, sourceColumn) {\r\n var result = super._pointCreated(point, columns, location, sourceColumn);\r\n var column = columns[point.columnIndex - 1] || {};\r\n var hasAdaptiveHiddenWidth = column.visibleWidth === HIDDEN_COLUMNS_WIDTH;\r\n return result || hasAdaptiveHiddenWidth\r\n }\r\n};\r\nvar editing = Base => class extends Base {\r\n _isRowEditMode() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n }\r\n _getFormEditItemTemplate(cellOptions, column) {\r\n if (this.getEditMode() !== EDIT_MODE_ROW && \"detailAdaptive\" === cellOptions.rowType) {\r\n cellOptions.columnIndex = this._columnsController.getVisibleIndex(column.index);\r\n return this.getColumnTemplate(cellOptions)\r\n }\r\n return super._getFormEditItemTemplate(cellOptions, column)\r\n }\r\n _closeEditItem($targetElement) {\r\n var $itemContents = $targetElement.closest(\".\".concat(FORM_ITEM_CONTENT_CLASS));\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var formItem = $itemContents.length ? $itemContents.first().data(\"dx-form-item\") : null;\r\n var columnIndex = formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index);\r\n if (!this.isEditCell(rowIndex, columnIndex)) {\r\n super._closeEditItem($targetElement)\r\n }\r\n }\r\n _beforeUpdateItems(rowIndices, rowIndex) {\r\n if (!this._adaptiveColumnsController.isFormOrPopupEditMode() && this._adaptiveColumnsController.hasHiddenColumns()) {\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldExpandRowIndex = gridCoreUtils.getIndexByKey(this._dataController.adaptiveExpandedKey(), items);\r\n this._isForceRowAdaptiveExpand = !this._adaptiveColumnsController.hasAdaptiveDetailRowExpanded();\r\n if (oldExpandRowIndex >= 0) {\r\n rowIndices.push(oldExpandRowIndex + 1)\r\n }\r\n rowIndices.push(rowIndex + 1);\r\n this._dataController.adaptiveExpandedKey(item.key)\r\n }\r\n }\r\n _afterInsertRow(key) {\r\n super._afterInsertRow.apply(this, arguments);\r\n if (this._adaptiveColumnsController.hasHiddenColumns()) {\r\n this._adaptiveColumnsController.toggleExpandAdaptiveDetailRow(key, this.isRowEditMode());\r\n this._isForceRowAdaptiveExpand = true\r\n }\r\n }\r\n _collapseAdaptiveDetailRow() {\r\n if (this._isRowEditMode() && this._isForceRowAdaptiveExpand) {\r\n this._adaptiveColumnsController.collapseAdaptiveDetailRow();\r\n this._isForceRowAdaptiveExpand = false\r\n }\r\n }\r\n _cancelEditAdaptiveDetailRow() {\r\n if (this._adaptiveColumnsController.hasHiddenColumns()) {\r\n this._collapseAdaptiveDetailRow()\r\n }\r\n }\r\n _afterSaveEditData() {\r\n super._afterSaveEditData.apply(this, arguments);\r\n var deferred = new Deferred;\r\n if (this._isRowEditMode() && this._adaptiveColumnsController.hasHiddenColumns()) {\r\n when(this._validatingController.validate(true)).done(isValid => {\r\n if (isValid) {\r\n this._cancelEditAdaptiveDetailRow()\r\n }\r\n deferred.resolve()\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n }\r\n _beforeCancelEditData() {\r\n super._beforeCancelEditData();\r\n this._cancelEditAdaptiveDetailRow()\r\n }\r\n _getRowIndicesForCascadeUpdating(row) {\r\n var rowIndices = super._getRowIndicesForCascadeUpdating.apply(this, arguments);\r\n if (this._adaptiveColumnsController.isAdaptiveDetailRowExpanded(row.key)) {\r\n rowIndices.push(row.rowType === ADAPTIVE_ROW_TYPE ? row.rowIndex - 1 : row.rowIndex + 1)\r\n }\r\n return rowIndices\r\n }\r\n _beforeCloseEditCellInBatchMode(rowIndices) {\r\n var expandedKey = this._dataController._adaptiveExpandedKey;\r\n if (expandedKey) {\r\n var rowIndex = gridCoreUtils.getIndexByKey(expandedKey, this._dataController.items());\r\n if (rowIndex > -1) {\r\n rowIndices.unshift(rowIndex)\r\n }\r\n }\r\n }\r\n editRow(rowIndex) {\r\n if (this._adaptiveColumnsController.isFormOrPopupEditMode()) {\r\n this._adaptiveColumnsController.collapseAdaptiveDetailRow()\r\n }\r\n return super.editRow(rowIndex)\r\n }\r\n deleteRow(rowIndex) {\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (this.getEditMode() === EDIT_MODE_BATCH && this._adaptiveColumnsController.isAdaptiveDetailRowExpanded(rowKey)) {\r\n this._adaptiveColumnsController.collapseAdaptiveDetailRow()\r\n }\r\n super.deleteRow(rowIndex)\r\n }\r\n};\r\nvar data = Base => class extends Base {\r\n _processItems(items, change) {\r\n var {\r\n changeType: changeType\r\n } = change;\r\n items = super._processItems.apply(this, arguments);\r\n if (\"loadingAll\" === changeType || !isDefined(this._adaptiveExpandedKey)) {\r\n return items\r\n }\r\n var expandRowIndex = gridCoreUtils.getIndexByKey(this._adaptiveExpandedKey, items);\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n if (expandRowIndex >= 0) {\r\n var item = items[expandRowIndex];\r\n items.splice(expandRowIndex + 1, 0, {\r\n visible: true,\r\n rowType: ADAPTIVE_ROW_TYPE,\r\n key: item.key,\r\n data: item.data,\r\n node: item.node,\r\n modifiedValues: item.modifiedValues,\r\n isNewRow: item.isNewRow,\r\n values: item.values\r\n })\r\n } else if (\"refresh\" === changeType && !(newMode && change.repaintChangesOnly)) {\r\n this._adaptiveExpandedKey = void 0\r\n }\r\n return items\r\n }\r\n _getRowIndicesForExpand(key) {\r\n var rowIndices = super._getRowIndicesForExpand.apply(this, arguments);\r\n if (this._adaptiveColumnsController.isAdaptiveDetailRowExpanded(key)) {\r\n var lastRowIndex = rowIndices[rowIndices.length - 1];\r\n rowIndices.push(lastRowIndex + 1)\r\n }\r\n return rowIndices\r\n }\r\n adaptiveExpandedKey(value) {\r\n if (isDefined(value)) {\r\n this._adaptiveExpandedKey = value\r\n } else {\r\n return this._adaptiveExpandedKey\r\n }\r\n }\r\n toggleExpandAdaptiveDetailRow(key, alwaysExpanded) {\r\n var oldExpandLoadedRowIndex = gridCoreUtils.getIndexByKey(this._adaptiveExpandedKey, this._items);\r\n var newExpandLoadedRowIndex = gridCoreUtils.getIndexByKey(key, this._items);\r\n if (oldExpandLoadedRowIndex >= 0 && oldExpandLoadedRowIndex === newExpandLoadedRowIndex && !alwaysExpanded) {\r\n key = void 0;\r\n newExpandLoadedRowIndex = -1\r\n }\r\n var oldKey = this._adaptiveExpandedKey;\r\n this._adaptiveExpandedKey = key;\r\n if (oldExpandLoadedRowIndex >= 0) {\r\n oldExpandLoadedRowIndex++\r\n }\r\n if (newExpandLoadedRowIndex >= 0) {\r\n newExpandLoadedRowIndex++\r\n }\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n this.updateItems({\r\n allowInvisibleRowIndices: true,\r\n changeType: \"update\",\r\n rowIndices: [oldExpandLoadedRowIndex - rowIndexDelta, newExpandLoadedRowIndex - rowIndexDelta]\r\n });\r\n this._adaptiveColumnsController.updateCommandAdaptiveAriaLabel(key, COLLAPSE_ARIA_NAME);\r\n this._adaptiveColumnsController.updateCommandAdaptiveAriaLabel(oldKey, EXPAND_ARIA_NAME)\r\n }\r\n};\r\nvar editorFactory = Base => class extends Base {\r\n _needHideBorder($element) {\r\n return super._needHideBorder($element) || (null === $element || void 0 === $element ? void 0 : $element.hasClass(\"dx-field-item-content\")) && (null === $element || void 0 === $element ? void 0 : $element.find(\".dx-checkbox\").length)\r\n }\r\n _getFocusCellSelector() {\r\n return \"\".concat(super._getFocusCellSelector(), \", .dx-adaptive-detail-row .dx-field-item > .dx-field-item-content\")\r\n }\r\n _getRevertTooltipsSelector() {\r\n return \"\".concat(super._getRevertTooltipsSelector(), \", .dx-field-item-content .\").concat(this.addWidgetPrefix(REVERT_TOOLTIP_CLASS))\r\n }\r\n};\r\nvar columns = Base => class extends Base {\r\n _isColumnVisible(column) {\r\n return super._isColumnVisible(column) && !column.adaptiveHidden\r\n }\r\n};\r\nvar resizing = Base => class extends Base {\r\n dispose() {\r\n super.dispose.apply(this, arguments);\r\n clearTimeout(this._updateScrollableTimeoutID)\r\n }\r\n _needBestFit() {\r\n return super._needBestFit() || !!this._adaptiveColumnsController.getHidingColumnsQueue().length\r\n }\r\n _correctColumnWidths(resultWidths, visibleColumns) {\r\n var adaptiveController = this._adaptiveColumnsController;\r\n var oldHiddenColumns = adaptiveController.getHiddenColumns();\r\n var hidingColumnsQueue = adaptiveController.updateHidingQueue(this._columnsController.getColumns());\r\n adaptiveController.hideRedundantColumns(resultWidths, visibleColumns, hidingColumnsQueue);\r\n var hiddenColumns = adaptiveController.getHiddenColumns();\r\n if (adaptiveController.hasAdaptiveDetailRowExpanded()) {\r\n if (oldHiddenColumns.length !== hiddenColumns.length) {\r\n adaptiveController.updateForm(hiddenColumns)\r\n }\r\n }!hiddenColumns.length && adaptiveController.collapseAdaptiveDetailRow();\r\n return super._correctColumnWidths.apply(this, arguments)\r\n }\r\n _toggleBestFitMode(isBestFit) {\r\n isBestFit && this._adaptiveColumnsController._showHiddenColumns();\r\n super._toggleBestFitMode(isBestFit)\r\n }\r\n _needStretch() {\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n return super._needStretch.apply(this, arguments) || adaptiveColumnsController.getHidingColumnsQueue().length || adaptiveColumnsController.hasHiddenColumns()\r\n }\r\n};\r\nexport var adaptivityModule = {\r\n defaultOptions: () => ({\r\n columnHidingEnabled: false,\r\n onAdaptiveDetailRowPreparing: null\r\n }),\r\n controllers: {\r\n adaptiveColumns: AdaptiveColumnsController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: rowsView\r\n },\r\n controllers: {\r\n export: exportExtender,\r\n columnsResizer: columnsResizer,\r\n draggingHeader: draggingHeader,\r\n editing: editing,\r\n resizing: resizing,\r\n data: data,\r\n editorFactory: editorFactory,\r\n columns: columns,\r\n keyboardNavigation: keyboardNavigation\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/adaptivity.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adaptivityModule\r\n} from \"../../../grids/grid_core/adaptivity/m_adaptivity\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"adaptivity\", adaptivityModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns_core.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nexport function foreachColumnInfo(info, callback, rowIndex, offsets, columnCount, lastProcessedIndexes) {\r\n rowIndex = rowIndex || 0;\r\n offsets = offsets || [];\r\n lastProcessedIndexes = lastProcessedIndexes || [];\r\n offsets[rowIndex] = offsets[rowIndex] || 0;\r\n var row = info[rowIndex];\r\n var startIndex = lastProcessedIndexes[rowIndex] + 1 || 0;\r\n var processedColumnCount = 0;\r\n var colIndex;\r\n if (!row) {\r\n return\r\n }\r\n for (colIndex = startIndex; colIndex < row.length; colIndex++) {\r\n var cell = row[colIndex];\r\n var visibleIndex = colIndex + offsets[rowIndex];\r\n var colspan = cell.colspan || 1;\r\n foreachColumnInfo(info, callback, rowIndex + (cell.rowspan || 1), offsets, colspan, lastProcessedIndexes);\r\n offsets[rowIndex] += colspan - 1;\r\n processedColumnCount += colspan;\r\n if (cell.rowspan) {\r\n for (var i = rowIndex + 1; i < rowIndex + cell.rowspan; i++) {\r\n offsets[i] = offsets[i] || 0;\r\n offsets[i] += cell.colspan || 1\r\n }\r\n }\r\n if (false === callback(cell, visibleIndex, rowIndex, colIndex)) {\r\n break\r\n }\r\n if (void 0 !== columnCount && processedColumnCount >= columnCount) {\r\n break\r\n }\r\n }\r\n lastProcessedIndexes[rowIndex] = colIndex\r\n}\r\nexport function createColumnsInfo(info, startIndex, endIndex) {\r\n var newInfo = [];\r\n foreachColumnInfo(info, (columnInfo, visibleIndex, rowIndex) => {\r\n var cell = columnInfo;\r\n var colspan;\r\n var cellColspan = cell.colspan || 1;\r\n var isVisible = visibleIndex + cellColspan - 1 >= startIndex && visibleIndex < endIndex;\r\n newInfo[rowIndex] = newInfo[rowIndex] || [];\r\n if (isVisible) {\r\n if (visibleIndex < startIndex) {\r\n colspan = cellColspan - (startIndex - visibleIndex);\r\n visibleIndex = startIndex\r\n } else {\r\n colspan = cellColspan\r\n }\r\n if (visibleIndex + colspan > endIndex) {\r\n colspan = endIndex - visibleIndex\r\n }\r\n if (colspan !== cellColspan) {\r\n cell = extend({}, cell, {\r\n colspan: colspan\r\n })\r\n }\r\n newInfo[rowIndex].push(cell)\r\n } else if (visibleIndex > endIndex) {\r\n return false\r\n }\r\n return\r\n });\r\n for (var i = 0; i < newInfo.length; i++) {\r\n newInfo[i] = newInfo[i] || []\r\n }\r\n return newInfo\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n getHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n createColumnsInfo\r\n} from \"./m_virtual_columns_core\";\r\nvar DEFAULT_COLUMN_WIDTH = 50;\r\nvar baseView = Base => class extends Base {\r\n _needToSetCellWidths() {\r\n var result = super._needToSetCellWidths();\r\n if (!result && this._columnsController.isVirtualMode()) {\r\n var _columns = this._columnsController.getColumns();\r\n result = _columns.some(column => \"auto\" === column.width)\r\n }\r\n return result\r\n }\r\n};\r\nvar rowsView = Base => class extends(baseView(Base)) {\r\n _resizeCore() {\r\n super._resizeCore.apply(this, arguments);\r\n this._columnsController.resize()\r\n }\r\n _handleScroll(e) {\r\n var scrollable = this.getScrollable();\r\n var {\r\n left: left\r\n } = e.scrollOffset;\r\n super._handleScroll.apply(this, arguments);\r\n if (this.option(\"rtlEnabled\") && scrollable) {\r\n left = getWidth(scrollable.$content()) - getWidth(scrollable.$element()) - left\r\n }\r\n this._columnsController.setScrollPosition(left)\r\n }\r\n _renderCore(e) {\r\n var _a, _b;\r\n if (null === e || void 0 === e ? void 0 : e.virtualColumnsScrolling) {\r\n var $contentElement = this._findContentElement();\r\n var fixedColumns = null === (_a = this._columnsController) || void 0 === _a ? void 0 : _a.getFixedColumns();\r\n var useNativeScrolling = null === (_b = this._scrollable) || void 0 === _b ? void 0 : _b.option(\"useNative\");\r\n if (null === fixedColumns || void 0 === fixedColumns ? void 0 : fixedColumns.length) {\r\n $contentElement.css({\r\n minHeight: useNativeScrolling ? getHeight($contentElement) : gridCoreUtils.getContentHeightLimit(browser)\r\n });\r\n var resizeCompletedHandler = () => {\r\n this.resizeCompleted.remove(resizeCompletedHandler);\r\n $contentElement.css({\r\n minHeight: \"\"\r\n })\r\n };\r\n this.resizeCompleted.add(resizeCompletedHandler)\r\n }\r\n }\r\n return super._renderCore.apply(this, arguments)\r\n }\r\n};\r\nvar columnHeadersView = Base => class extends(baseView(Base)) {\r\n _renderCore() {\r\n var deferred = super._renderCore.apply(this, arguments);\r\n if (this._columnsController.isVirtualMode()) {\r\n this._updateScrollLeftPosition()\r\n }\r\n return deferred\r\n }\r\n};\r\nvar getWidths = function(columns) {\r\n return columns.map(column => column.visibleWidth || parseFloat(column.width) || DEFAULT_COLUMN_WIDTH)\r\n};\r\nvar columns = Base => class extends Base {\r\n init() {\r\n var _a;\r\n super.init.apply(this, arguments);\r\n this._resizingController = this.getController(\"resizing\");\r\n this._beginPageIndex = null;\r\n this._endPageIndex = null;\r\n null !== (_a = this._position) && void 0 !== _a ? _a : this._position = 0;\r\n this._virtualVisibleColumns = {}\r\n }\r\n dispose() {\r\n clearTimeout(this._changedTimeout);\r\n super.dispose.apply(this, arguments)\r\n }\r\n resetColumnsCache() {\r\n super.resetColumnsCache();\r\n this._virtualVisibleColumns = {}\r\n }\r\n getBeginPageIndex(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.floor(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return 0\r\n }\r\n getTotalWidth() {\r\n var width = this.option(\"width\");\r\n if (\"number\" === typeof width) {\r\n return width\r\n }\r\n return this._resizingController._lastWidth || getOuterWidth(this.component.$element())\r\n }\r\n getEndPageIndex(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n position += this.getTotalWidth();\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.ceil(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return Math.ceil(widths.length / this.getColumnPageSize())\r\n }\r\n getColumnPageSize() {\r\n return this.option(\"scrolling.columnPageSize\")\r\n }\r\n _fireColumnsChanged() {\r\n var date = new Date;\r\n this.columnsChanged.fire({\r\n optionNames: {\r\n all: true,\r\n length: 1\r\n },\r\n changeTypes: {\r\n columns: true,\r\n virtualColumnsScrolling: true,\r\n length: 2\r\n }\r\n });\r\n this._renderTime = new Date - date\r\n }\r\n getScrollingTimeout() {\r\n var renderingThreshold = this.option(\"scrolling.columnRenderingThreshold\");\r\n var renderAsync = this.option(\"scrolling.renderAsync\");\r\n var scrollingTimeout = 0;\r\n if (!isDefined(renderAsync) && this._renderTime > renderingThreshold || renderAsync) {\r\n scrollingTimeout = this.option(\"scrolling.timeout\")\r\n }\r\n return scrollingTimeout\r\n }\r\n setScrollPosition(position) {\r\n var scrollingTimeout = this.getScrollingTimeout();\r\n if (scrollingTimeout > 0) {\r\n clearTimeout(this._changedTimeout);\r\n this._changedTimeout = setTimeout(() => {\r\n this._setScrollPositionCore(position)\r\n }, scrollingTimeout)\r\n } else {\r\n this._setScrollPositionCore(position)\r\n }\r\n }\r\n isVirtualMode() {\r\n return hasWindow() && \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n }\r\n resize() {\r\n this._setScrollPositionCore(this._position)\r\n }\r\n _setScrollPositionCore(position) {\r\n if (this.isVirtualMode()) {\r\n var beginPageIndex = this.getBeginPageIndex(position);\r\n var endPageIndex = this.getEndPageIndex(position);\r\n var needColumnsChanged = position < this._position ? this._beginPageIndex > beginPageIndex : this._endPageIndex < endPageIndex;\r\n this._position = position;\r\n if (needColumnsChanged) {\r\n this._beginPageIndex = beginPageIndex;\r\n this._endPageIndex = endPageIndex;\r\n this._fireColumnsChanged()\r\n }\r\n }\r\n }\r\n getFixedColumns(rowIndex, isBase) {\r\n var fixedColumns = super.getFixedColumns(rowIndex);\r\n if (this.isVirtualMode() && !isBase && fixedColumns.length) {\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n fixedColumns[transparentColumnIndex].colspan = this.getVisibleColumns().length - super.getFixedColumns().length + 1;\r\n return fixedColumns\r\n }\r\n return fixedColumns\r\n }\r\n _compileVisibleColumns(rowIndex, isBase) {\r\n var _a;\r\n if (isBase || !this.isVirtualMode() || !this._shouldReturnVisibleColumns()) {\r\n return super._compileVisibleColumns(rowIndex)\r\n }\r\n if ((null === (_a = this._columns) || void 0 === _a ? void 0 : _a.length) && !isDefined(this._beginPageIndex) && !isDefined(this._endPageIndex)) {\r\n this._beginPageIndex = this.getBeginPageIndex(this._position);\r\n this._endPageIndex = this.getEndPageIndex(this._position)\r\n }\r\n var beginPageIndex = this._beginPageIndex;\r\n var endPageIndex = this._endPageIndex;\r\n var visibleColumnsHash = \"\".concat(rowIndex, \"-\").concat(beginPageIndex, \"-\").concat(endPageIndex);\r\n if (this._virtualVisibleColumns[visibleColumnsHash]) {\r\n return this._virtualVisibleColumns[visibleColumnsHash]\r\n }\r\n var visibleColumns = super._compileVisibleColumns();\r\n var rowCount = this.getRowCount();\r\n var pageSize = this.getColumnPageSize();\r\n var startIndex = beginPageIndex * pageSize;\r\n var endIndex = endPageIndex * pageSize;\r\n var fixedColumns = this.getFixedColumns(void 0, true);\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n var beginFixedColumnCount = fixedColumns.length ? transparentColumnIndex : 0;\r\n var beginFixedColumns = visibleColumns.slice(0, beginFixedColumnCount);\r\n var beginColumns = visibleColumns.slice(beginFixedColumnCount, startIndex);\r\n var beginWidth = getWidths(beginColumns).reduce((a, b) => a + b, 0);\r\n if (!beginWidth) {\r\n startIndex = 0\r\n }\r\n var endFixedColumnCount = fixedColumns.length ? fixedColumns.length - transparentColumnIndex - 1 : 0;\r\n var endFixedColumns = visibleColumns.slice(visibleColumns.length - endFixedColumnCount);\r\n var endColumns = visibleColumns.slice(endIndex, visibleColumns.length - endFixedColumnCount);\r\n var endWidth = getWidths(endColumns).reduce((a, b) => a + b, 0);\r\n if (!endWidth) {\r\n endIndex = visibleColumns.length\r\n }\r\n if (rowCount > 1 && \"number\" === typeof rowIndex) {\r\n var columnsInfo = [];\r\n for (var i = 0; i <= rowCount; i++) {\r\n columnsInfo.push(super._compileVisibleColumns(i))\r\n }\r\n beginFixedColumns = createColumnsInfo(columnsInfo, 0, beginFixedColumns.length)[rowIndex] || [];\r\n endFixedColumns = createColumnsInfo(columnsInfo, visibleColumns.length - endFixedColumns.length, visibleColumns.length)[rowIndex] || [];\r\n visibleColumns = createColumnsInfo(columnsInfo, startIndex, endIndex)[rowIndex] || []\r\n } else {\r\n visibleColumns = visibleColumns.slice(startIndex, endIndex)\r\n }\r\n if (beginWidth) {\r\n visibleColumns.unshift({\r\n command: \"virtual\",\r\n width: beginWidth\r\n });\r\n visibleColumns = beginFixedColumns.concat(visibleColumns)\r\n }\r\n if (endWidth) {\r\n visibleColumns.push({\r\n command: \"virtual\",\r\n width: endWidth\r\n });\r\n visibleColumns = visibleColumns.concat(endFixedColumns)\r\n }\r\n this._virtualVisibleColumns[visibleColumnsHash] = visibleColumns;\r\n return visibleColumns\r\n }\r\n getColumnIndexOffset() {\r\n var offset = 0;\r\n if (this._beginPageIndex > 0) {\r\n var fixedColumns = this.getFixedColumns();\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n var leftFixedColumnCount = transparentColumnIndex >= 0 ? transparentColumnIndex : 0;\r\n offset = this._beginPageIndex * this.getColumnPageSize() - leftFixedColumnCount - 1\r\n }\r\n return offset > 0 ? offset : 0\r\n }\r\n};\r\nexport var virtualColumnsModule = {\r\n defaultOptions: () => ({\r\n scrolling: {\r\n columnRenderingMode: \"standard\",\r\n columnPageSize: 5,\r\n columnRenderingThreshold: 300\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n columns: columns\r\n },\r\n views: {\r\n columnHeadersView: columnHeadersView,\r\n rowsView: rowsView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/virtual_columns.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n virtualColumnsModule\r\n} from \"../../../grids/grid_core/virtual_columns/m_virtual_columns\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"virtualColumns\", virtualColumnsModule);\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_button_group.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport Button from \"../../ui/button\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.edit\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar BUTTON_GROUP_WRAPPER_CLASS = \"\".concat(BUTTON_GROUP_CLASS, \"-wrapper\");\r\nvar BUTTON_GROUP_ITEM_CLASS = \"\".concat(BUTTON_GROUP_CLASS, \"-item\");\r\nvar BUTTON_GROUP_FIRST_ITEM_CLASS = \"\".concat(BUTTON_GROUP_CLASS, \"-first-item\");\r\nvar BUTTON_GROUP_LAST_ITEM_CLASS = \"\".concat(BUTTON_GROUP_CLASS, \"-last-item\");\r\nvar BUTTON_GROUP_ITEM_HAS_WIDTH = \"\".concat(BUTTON_GROUP_ITEM_CLASS, \"-has-width\");\r\nvar SHAPE_STANDARD_CLASS = \"dx-shape-standard\";\r\nvar BUTTON_GROUP_STYLING_MODE_CLASS = {\r\n contained: \"dx-buttongroup-mode-contained\",\r\n outlined: \"dx-buttongroup-mode-outlined\",\r\n text: \"dx-buttongroup-mode-text\"\r\n};\r\nvar ButtonCollection = CollectionWidget.inherit({\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data, model) => {\r\n this._prepareItemStyles($container);\r\n var template = this.option(\"buttonTemplate\");\r\n this._createComponent($container, Button, extend({}, model, data, this._getBasicButtonOptions(), {\r\n _templateData: this._hasCustomTemplate(template) ? model : {},\r\n template: model.template || template\r\n }))\r\n }, [\"text\", \"type\", \"icon\", \"disabled\", \"visible\", \"hint\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _getBasicButtonOptions() {\r\n return {\r\n focusStateEnabled: false,\r\n onClick: null,\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n itemTemplateProperty: null\r\n })\r\n },\r\n _hasCustomTemplate(template) {\r\n return isFunction(template) || this.option(\"integrationOptions.templates\")[template]\r\n },\r\n _selectedItemClass: () => \"dx-item-selected dx-state-selected\",\r\n _prepareItemStyles($item) {\r\n var itemIndex = $item.data(\"dxItemIndex\");\r\n 0 === itemIndex && $item.addClass(BUTTON_GROUP_FIRST_ITEM_CLASS);\r\n var items = this.option(\"items\");\r\n items && itemIndex === items.length - 1 && $item.addClass(BUTTON_GROUP_LAST_ITEM_CLASS);\r\n $item.addClass(SHAPE_STANDARD_CLASS)\r\n },\r\n _renderItemContent(args) {\r\n args.container = $(args.container).parent();\r\n return this.callBase(args)\r\n },\r\n _setAriaSelectionAttribute($target, value) {\r\n this.setAria(\"pressed\", value, $target)\r\n },\r\n _renderItemContentByNode(args, $node) {\r\n args.container = $(args.container.children().first());\r\n return this.callBase(args, $node)\r\n },\r\n _focusTarget() {\r\n return this.$element().parent()\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._focusTarget()\r\n },\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _itemClass: () => BUTTON_GROUP_ITEM_CLASS,\r\n _itemSelectHandler(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar ButtonGroup = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n stylingMode: \"contained\",\r\n keyExpr: \"text\",\r\n items: [],\r\n buttonTemplate: \"content\",\r\n onSelectionChanged: null,\r\n onItemClick: null\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._createItemClickAction()\r\n },\r\n _createItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initMarkup() {\r\n this.setAria(\"role\", \"group\");\r\n this.$element().addClass(BUTTON_GROUP_CLASS);\r\n this._renderStylingMode();\r\n this._renderButtons();\r\n this._syncSelectionOptions();\r\n this.callBase()\r\n },\r\n _renderStylingMode() {\r\n var _a;\r\n var {\r\n stylingMode: stylingMode\r\n } = this.option();\r\n for (var key in BUTTON_GROUP_STYLING_MODE_CLASS) {\r\n this.$element().removeClass(BUTTON_GROUP_STYLING_MODE_CLASS[key])\r\n }\r\n this.$element().addClass(null !== (_a = BUTTON_GROUP_STYLING_MODE_CLASS[stylingMode]) && void 0 !== _a ? _a : BUTTON_GROUP_STYLING_MODE_CLASS.contained)\r\n },\r\n _fireSelectionChangeEvent(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _renderButtons() {\r\n var $buttons = $(\"<div>\").addClass(BUTTON_GROUP_WRAPPER_CLASS).appendTo(this.$element());\r\n var selectedItems = this.option(\"selectedItems\");\r\n var options = {\r\n selectionMode: this.option(\"selectionMode\"),\r\n items: this.option(\"items\"),\r\n keyExpr: this.option(\"keyExpr\"),\r\n buttonTemplate: this.option(\"buttonTemplate\"),\r\n scrollingEnabled: false,\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n accessKey: this.option(\"accessKey\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n noDataText: \"\",\r\n selectionRequired: false,\r\n onItemRendered: e => {\r\n var width = this.option(\"width\");\r\n isDefined(width) && $(e.itemElement).addClass(BUTTON_GROUP_ITEM_HAS_WIDTH)\r\n },\r\n onSelectionChanged: e => {\r\n this._syncSelectionOptions();\r\n this._fireSelectionChangeEvent(e.addedItems, e.removedItems)\r\n },\r\n onItemClick: e => {\r\n this._itemClickAction(e)\r\n }\r\n };\r\n if (isDefined(selectedItems) && selectedItems.length) {\r\n options.selectedItems = selectedItems\r\n }\r\n this._buttonsCollection = this._createComponent($buttons, ButtonCollection, options)\r\n },\r\n _syncSelectionOptions() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", this._buttonsCollection.option(\"selectedItems\"));\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._buttonsCollection.option(\"selectedItemKeys\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"stylingMode\":\r\n case \"selectionMode\":\r\n case \"keyExpr\":\r\n case \"buttonTemplate\":\r\n case \"items\":\r\n case \"activeStateEnabled\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n case \"tabIndex\":\r\n this._invalidate();\r\n break;\r\n case \"selectedItemKeys\":\r\n case \"selectedItems\":\r\n this._buttonsCollection.option(args.name, args.value);\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._buttonsCollection.itemElements().toggleClass(BUTTON_GROUP_ITEM_HAS_WIDTH, !!args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxButtonGroup\", ButtonGroup);\r\nexport default ButtonGroup;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_drop_down_button.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport Guid from \"../../core/guid\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport ButtonGroup from \"../../ui/button_group\";\r\nimport List from \"../../ui/list_light\";\r\nimport Popup from \"../../ui/popup/ui.popup\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"../ui/drop_down_editor/m_utils\";\r\nvar DROP_DOWN_BUTTON_CLASS = \"dx-dropdownbutton\";\r\nvar DROP_DOWN_BUTTON_CONTENT = \"dx-dropdownbutton-content\";\r\nvar DROP_DOWN_BUTTON_ACTION_CLASS = \"dx-dropdownbutton-action\";\r\nvar DROP_DOWN_BUTTON_TOGGLE_CLASS = \"dx-dropdownbutton-toggle\";\r\nvar DROP_DOWN_BUTTON_HAS_ARROW_CLASS = \"dx-dropdownbutton-has-arrow\";\r\nvar DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS = \"dx-dropdownbutton-popup-wrapper\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar DX_BUTTON_CLASS = \"dx-button\";\r\nvar DX_BUTTON_TEXT_CLASS = \"dx-button-text\";\r\nvar DX_ICON_RIGHT_CLASS = \"dx-icon-right\";\r\nvar DropDownButton = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n itemTemplate: \"item\",\r\n keyExpr: \"this\",\r\n displayExpr: void 0,\r\n selectedItem: null,\r\n selectedItemKey: null,\r\n stylingMode: \"outlined\",\r\n deferRendering: true,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n useSelectMode: false,\r\n splitButton: false,\r\n showArrowIcon: true,\r\n text: \"\",\r\n type: \"normal\",\r\n icon: void 0,\r\n onButtonClick: null,\r\n onSelectionChanged: null,\r\n onItemClick: null,\r\n opened: false,\r\n items: null,\r\n dataSource: null,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n dropDownOptions: {},\r\n dropDownContentTemplate: \"content\",\r\n wrapItemText: false,\r\n useItemTextAsTitle: true,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n buttonGroupOptions: {}\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._createItemClickAction();\r\n this._createActionClickAction();\r\n this._createSelectionChangedAction();\r\n this._initDataSource();\r\n this._compileKeyGetter();\r\n this._compileDisplayGetter();\r\n this._itemsToDataSource(this.option(\"items\"));\r\n this._options.cache(\"buttonGroupOptions\", this.option(\"buttonGroupOptions\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new FunctionTemplate(options => {\r\n var $popupContent = $(options.container);\r\n var $listContainer = $(\"<div>\").appendTo($popupContent);\r\n this._list = this._createComponent($listContainer, List, this._listOptions());\r\n this._list.registerKeyHandler(\"escape\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"tab\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"leftArrow\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"rightArrow\", this._escHandler.bind(this))\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _itemsToDataSource(value) {\r\n if (!this._dataSource) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore({\r\n key: this._getKey(),\r\n data: value\r\n }),\r\n pageSize: 0\r\n })\r\n }\r\n },\r\n _getKey() {\r\n var _a;\r\n var keyExpr = this.option(\"keyExpr\");\r\n var storeKey = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.key();\r\n return isDefined(storeKey) && (!isDefined(keyExpr) || \"this\" === keyExpr) ? storeKey : keyExpr\r\n },\r\n _compileKeyGetter() {\r\n this._keyGetter = compileGetter(this._getKey())\r\n },\r\n _compileDisplayGetter() {\r\n this._displayGetter = compileGetter(this.option(\"displayExpr\"))\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_BUTTON_CLASS);\r\n this._renderButtonGroup();\r\n this._updateArrowClass();\r\n if (isDefined(this.option(\"selectedItemKey\"))) {\r\n this._loadSelectedItem().done(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _renderFocusTarget: noop,\r\n _render() {\r\n if (!this.option(\"deferRendering\") || this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n this.callBase()\r\n },\r\n _renderContentImpl() {\r\n if (this._popup) {\r\n this._renderPopupContent()\r\n }\r\n return this.callBase()\r\n },\r\n _loadSelectedItem() {\r\n var _a;\r\n null === (_a = this._loadSingleDeferred) || void 0 === _a ? void 0 : _a.reject();\r\n var d = Deferred();\r\n if (this._list && void 0 !== this._lastSelectedItemData) {\r\n var cachedResult = this.option(\"useSelectMode\") ? this._list.option(\"selectedItem\") : this._lastSelectedItemData;\r\n return d.resolve(cachedResult)\r\n }\r\n this._lastSelectedItemData = void 0;\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._loadSingle(this._getKey(), selectedItemKey).done(d.resolve).fail(() => {\r\n d.resolve(null)\r\n });\r\n this._loadSingleDeferred = d;\r\n return d.promise()\r\n },\r\n _createActionClickAction() {\r\n this._actionClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _createSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n },\r\n _createItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _fireSelectionChangedAction(_ref) {\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = _ref;\r\n this._selectionChangedAction({\r\n item: value,\r\n previousItem: previousValue\r\n })\r\n },\r\n _fireItemClickAction(_ref2) {\r\n var {\r\n event: event,\r\n itemElement: itemElement,\r\n itemData: itemData\r\n } = _ref2;\r\n return this._itemClickAction({\r\n event: event,\r\n itemElement: itemElement,\r\n itemData: this._actionItem || itemData\r\n })\r\n },\r\n _actionButtonConfig() {\r\n var {\r\n icon: icon,\r\n text: text,\r\n type: type\r\n } = this.option();\r\n return {\r\n text: text,\r\n icon: icon,\r\n type: type,\r\n elementAttr: {\r\n class: DROP_DOWN_BUTTON_ACTION_CLASS\r\n }\r\n }\r\n },\r\n _getButtonGroupItems() {\r\n var {\r\n splitButton: splitButton,\r\n type: type\r\n } = this.option();\r\n var items = [];\r\n items.push(this._actionButtonConfig());\r\n if (splitButton) {\r\n items.push({\r\n icon: \"spindown\",\r\n type: type,\r\n elementAttr: {\r\n class: DROP_DOWN_BUTTON_TOGGLE_CLASS\r\n }\r\n })\r\n }\r\n return items\r\n },\r\n _buttonGroupItemClick(_ref3) {\r\n var {\r\n event: event,\r\n itemData: itemData\r\n } = _ref3;\r\n var isActionButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_ACTION_CLASS;\r\n var isToggleButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_TOGGLE_CLASS;\r\n if (isToggleButton) {\r\n this.toggle()\r\n } else if (isActionButton) {\r\n this._actionClickAction({\r\n event: event,\r\n selectedItem: this.option(\"selectedItem\")\r\n });\r\n if (!this.option(\"splitButton\")) {\r\n this.toggle()\r\n }\r\n }\r\n },\r\n _buttonGroupOptions() {\r\n var {\r\n splitButton: splitButton,\r\n showArrowIcon: showArrowIcon,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: stylingMode,\r\n accessKey: accessKey,\r\n tabIndex: tabIndex\r\n } = this.option();\r\n var buttonTemplate = splitButton || !showArrowIcon ? \"content\" : (_ref4, buttonContent) => {\r\n var {\r\n text: text,\r\n icon: icon\r\n } = _ref4;\r\n var $firstIcon = getImageContainer(icon);\r\n var $textContainer = text ? $(\"<span>\").text(text).addClass(DX_BUTTON_TEXT_CLASS) : void 0;\r\n var $secondIcon = getImageContainer(\"spindown\").addClass(DX_ICON_RIGHT_CLASS);\r\n $(buttonContent).append($firstIcon, $textContainer, $secondIcon)\r\n };\r\n return extend({\r\n items: this._getButtonGroupItems(),\r\n onItemClick: this._buttonGroupItemClick.bind(this),\r\n width: \"100%\",\r\n height: \"100%\",\r\n selectionMode: \"none\",\r\n onKeyboardHandled: e => this._keyboardHandler(e),\r\n buttonTemplate: buttonTemplate,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: stylingMode,\r\n accessKey: accessKey,\r\n tabIndex: tabIndex\r\n }, this._options.cache(\"buttonGroupOptions\"))\r\n },\r\n _renderPopupContent() {\r\n var $content = this._popup.$content();\r\n var template = this._getTemplateByOption(\"dropDownContentTemplate\");\r\n $content.empty();\r\n this._popupContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"id\", this._popupContentId, $content);\r\n return template.render({\r\n container: getPublicElement($content),\r\n model: this.option(\"items\") || this._dataSource\r\n })\r\n },\r\n _popupOptions() {\r\n var horizontalAlignment = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n return extend({\r\n dragEnabled: false,\r\n focusStateEnabled: false,\r\n deferRendering: this.option(\"deferRendering\"),\r\n hideOnOutsideClick: e => {\r\n var $element = this.$element();\r\n var $buttonClicked = $(e.target).closest(\".\".concat(DROP_DOWN_BUTTON_CLASS));\r\n return !$buttonClicked.is($element)\r\n },\r\n showTitle: false,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n position: {\r\n of: this.$element(),\r\n collision: \"flipfit\",\r\n my: \"\".concat(horizontalAlignment, \" top\"),\r\n at: \"\".concat(horizontalAlignment, \" bottom\")\r\n },\r\n _wrapperClassExternal: DROP_DOWN_EDITOR_OVERLAY_CLASS\r\n }, this._options.cache(\"dropDownOptions\"), {\r\n visible: this.option(\"opened\")\r\n })\r\n },\r\n _listOptions() {\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n var useSelectMode = this.option(\"useSelectMode\");\r\n return {\r\n selectionMode: useSelectMode ? \"single\" : \"none\",\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: () => this._fireContentReadyAction(),\r\n selectedItemKeys: isDefined(selectedItemKey) && useSelectMode ? [selectedItemKey] : [],\r\n grouped: this.option(\"grouped\"),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n keyExpr: this._getKey(),\r\n noDataText: this.option(\"noDataText\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n items: this.option(\"items\"),\r\n dataSource: this._dataSource,\r\n onItemClick: e => {\r\n if (!this.option(\"useSelectMode\")) {\r\n this._lastSelectedItemData = e.itemData\r\n }\r\n this.option(\"selectedItemKey\", this._keyGetter(e.itemData));\r\n var actionResult = this._fireItemClickAction(e);\r\n if (false !== actionResult) {\r\n this.toggle(false);\r\n this._buttonGroup.focus()\r\n }\r\n }\r\n }\r\n },\r\n _upDownKeyHandler() {\r\n if (this._popup && this._popup.option(\"visible\") && this._list) {\r\n this._list.focus()\r\n } else {\r\n this.open()\r\n }\r\n return true\r\n },\r\n _escHandler() {\r\n this.close();\r\n this._buttonGroup.focus();\r\n return true\r\n },\r\n _tabHandler() {\r\n this.close();\r\n return true\r\n },\r\n _renderPopup() {\r\n var $popup = $(\"<div>\");\r\n this.$element().append($popup);\r\n this._popup = this._createComponent($popup, Popup, this._popupOptions());\r\n this._popup.$content().addClass(DROP_DOWN_BUTTON_CONTENT);\r\n this._popup.$wrapper().addClass(DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS);\r\n this._popup.on(\"hiding\", this._popupHidingHandler.bind(this));\r\n this._popup.on(\"showing\", this._popupShowingHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _popupHidingHandler() {\r\n this.option(\"opened\", false);\r\n this._updateAriaAttributes(false)\r\n },\r\n _popupOptionChanged(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (optionsKeys.includes(\"width\") || optionsKeys.includes(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _setPopupOption(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _popupShowingHandler() {\r\n this.option(\"opened\", true);\r\n this._updateAriaAttributes(true)\r\n },\r\n _setElementAria(value) {\r\n var elementAria = {\r\n owns: value ? this._popupContentId : void 0\r\n };\r\n this.setAria(elementAria, this.$element())\r\n },\r\n _setButtonsAria(value) {\r\n var commonButtonAria = {\r\n expanded: value,\r\n haspopup: \"listbox\"\r\n };\r\n var firstButtonAria = {};\r\n if (!this.option(\"text\")) {\r\n firstButtonAria.label = \"dropdownbutton\"\r\n }\r\n this._getButtons().each((index, $button) => {\r\n if (0 === index) {\r\n this.setAria(_extends(_extends({}, firstButtonAria), commonButtonAria), $($button))\r\n } else {\r\n this.setAria(commonButtonAria, $($button))\r\n }\r\n })\r\n },\r\n _updateAriaAttributes(value) {\r\n this._setElementAria(value);\r\n this._setButtonsAria(value)\r\n },\r\n _getButtons() {\r\n return this._buttonGroup.$element().find(\".\".concat(DX_BUTTON_CLASS))\r\n },\r\n _renderButtonGroup() {\r\n var $buttonGroup = this._buttonGroup && this._buttonGroup.$element() || $(\"<div>\");\r\n if (!this._buttonGroup) {\r\n this.$element().append($buttonGroup)\r\n }\r\n this._buttonGroup = this._createComponent($buttonGroup, ButtonGroup, this._buttonGroupOptions());\r\n this._buttonGroup.registerKeyHandler(\"downArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"tab\", this._tabHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"upArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"escape\", this._escHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._buttonGroup, \"buttonGroupOptions\");\r\n this._updateAriaAttributes(this.option(\"opened\"))\r\n },\r\n _updateArrowClass() {\r\n var hasArrow = this.option(\"splitButton\") || this.option(\"showArrowIcon\");\r\n this.$element().toggleClass(DROP_DOWN_BUTTON_HAS_ARROW_CLASS, hasArrow)\r\n },\r\n toggle(visible) {\r\n if (!this._popup) {\r\n this._renderPopup();\r\n this._renderContent()\r\n }\r\n return this._popup.toggle(visible)\r\n },\r\n open() {\r\n return this.toggle(true)\r\n },\r\n close() {\r\n return this.toggle(false)\r\n },\r\n _setListOption(name, value) {\r\n this._list && this._list.option(name, value)\r\n },\r\n _getDisplayValue(item) {\r\n var isPrimitiveItem = !isObject(item);\r\n var displayValue = isPrimitiveItem ? item : this._displayGetter(item);\r\n return !isObject(displayValue) ? String(ensureDefined(displayValue, \"\")) : \"\"\r\n },\r\n _updateActionButton(selectedItem) {\r\n if (this.option(\"useSelectMode\")) {\r\n this.option({\r\n text: this._getDisplayValue(selectedItem),\r\n icon: isPlainObject(selectedItem) ? selectedItem.icon : void 0\r\n })\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKey\", this._keyGetter(selectedItem))\r\n },\r\n _clean() {\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove()\r\n },\r\n _selectedItemKeyChanged(value) {\r\n this._setListOption(\"selectedItemKeys\", this.option(\"useSelectMode\") && isDefined(value) ? [value] : []);\r\n var previousItem = this.option(\"selectedItem\");\r\n this._loadSelectedItem().done(selectedItem => {\r\n this._updateActionButton(selectedItem);\r\n if (this._displayGetter(previousItem) !== this._displayGetter(selectedItem)) {\r\n this._fireSelectionChangedAction({\r\n previousValue: previousItem,\r\n value: selectedItem\r\n })\r\n }\r\n })\r\n },\r\n _updateButtonGroup(name, value) {\r\n this._buttonGroup.option(name, value);\r\n this._updateAriaAttributes(this.option(\"opened\"))\r\n },\r\n _actionButtonOptionChanged(_ref5) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref5;\r\n var newConfig = {};\r\n newConfig[name] = value;\r\n this._updateButtonGroup(\"items[0]\", extend({}, this._actionButtonConfig(), newConfig));\r\n this._popup && this._popup.repaint()\r\n },\r\n _selectModeChanged(value) {\r\n if (value) {\r\n this._setListOption(\"selectionMode\", \"single\");\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItemKeys\", isDefined(selectedItemKey) ? [selectedItemKey] : []);\r\n this._selectedItemKeyChanged(this.option(\"selectedItemKey\"))\r\n } else {\r\n this._setListOption(\"selectionMode\", \"none\");\r\n this.option({\r\n selectedItemKey: void 0,\r\n selectedItem: void 0\r\n });\r\n this._actionButtonOptionChanged({\r\n text: this.option(\"text\")\r\n })\r\n }\r\n },\r\n _updateItemCollection(optionName) {\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItem\", null);\r\n this._setWidgetOption(\"_list\", [optionName]);\r\n if (isDefined(selectedItemKey)) {\r\n this._loadSelectedItem().done(selectedItem => {\r\n this._setListOption(\"selectedItemKeys\", [selectedItemKey]);\r\n this._setListOption(\"selectedItem\", selectedItem)\r\n }).fail(error => {\r\n this._setListOption(\"selectedItemKeys\", [])\r\n }).always(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _updateDataSource() {\r\n var items = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._dataSource.items();\r\n this._dataSource = void 0;\r\n this._itemsToDataSource(items);\r\n this._updateKeyExpr()\r\n },\r\n _updateKeyExpr() {\r\n this._compileKeyGetter();\r\n this._setListOption(\"keyExpr\", this._getKey())\r\n },\r\n focus() {\r\n this._buttonGroup.focus()\r\n },\r\n _optionChanged(args) {\r\n var _a;\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"useSelectMode\":\r\n this._selectModeChanged(value);\r\n break;\r\n case \"splitButton\":\r\n this._updateArrowClass();\r\n this._renderButtonGroup();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._setListOption(name, value);\r\n this._updateActionButton(this.option(\"selectedItem\"));\r\n break;\r\n case \"keyExpr\":\r\n this._updateDataSource();\r\n break;\r\n case \"buttonGroupOptions\":\r\n this._innerWidgetOptionChanged(this._buttonGroup, args);\r\n break;\r\n case \"dropDownOptions\":\r\n if (\"dropDownOptions.visible\" === args.fullName) {\r\n break\r\n }\r\n if (void 0 !== args.value.visible) {\r\n delete args.value.visible\r\n }\r\n this._popupOptionChanged(args);\r\n this._innerWidgetOptionChanged(this._popup, args);\r\n break;\r\n case \"opened\":\r\n this.toggle(value);\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setListOption(name, value);\r\n this._updateButtonGroup(name, value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._updateDataSource(this.option(\"items\"));\r\n this._updateItemCollection(name);\r\n break;\r\n case \"dataSource\":\r\n if (Array.isArray(value)) {\r\n this._updateDataSource(this.option(\"dataSource\"))\r\n } else {\r\n this._initDataSource();\r\n this._updateKeyExpr()\r\n }\r\n this._updateItemCollection(name);\r\n break;\r\n case \"icon\":\r\n case \"text\":\r\n this._actionButtonOptionChanged(args);\r\n break;\r\n case \"showArrowIcon\":\r\n this._updateArrowClass();\r\n this._renderButtonGroup();\r\n this._popup && this._popup.repaint();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_a = this._popup) || void 0 === _a ? void 0 : _a.repaint();\r\n break;\r\n case \"stylingMode\":\r\n this._updateButtonGroup(name, value);\r\n break;\r\n case \"type\":\r\n this._updateButtonGroup(\"items\", this._getButtonGroupItems());\r\n break;\r\n case \"itemTemplate\":\r\n case \"grouped\":\r\n case \"noDataText\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(name, value);\r\n break;\r\n case \"dropDownContentTemplate\":\r\n this._renderContent();\r\n break;\r\n case \"selectedItemKey\":\r\n this._selectedItemKeyChanged(value);\r\n break;\r\n case \"selectedItem\":\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._createActionClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"deferRendering\":\r\n this.toggle(this.option(\"opened\"));\r\n break;\r\n case \"tabIndex\":\r\n this._updateButtonGroup(name, value);\r\n break;\r\n case \"template\":\r\n this._renderButtonGroup();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataHelperMixin);\r\nregisterComponent(\"dxDropDownButton\", DropDownButton);\r\nexport default DropDownButton;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_export.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\n\r\nfunction prepareItems(items, emptyCell) {\r\n var defaultSetter = value => !value ? 1 : value;\r\n var resultItems = [];\r\n var cols = (items[0] || []).reduce((sum, item) => sum + defaultSetter(item.colspan), 0);\r\n var getItem = (items => {\r\n var rowIndex = 0;\r\n var cellIndex = 0;\r\n return () => {\r\n var row = items[rowIndex] || [];\r\n var item = row[cellIndex++];\r\n if (cellIndex >= row.length) {\r\n rowIndex++;\r\n cellIndex = 0\r\n }\r\n if (item) {\r\n item.colspan = defaultSetter(item.colspan);\r\n item.rowspan = defaultSetter(item.rowspan)\r\n }\r\n return item\r\n }\r\n })(items);\r\n var addItem = (rowIndex, cellIndex, item) => {\r\n var row = resultItems[rowIndex] = resultItems[rowIndex] || [];\r\n row[cellIndex] = item;\r\n if (item.colspan > 1 || item.rowspan > 1) {\r\n var clone = (item => extend({}, item, emptyCell))(item);\r\n for (var c = 1; c < item.colspan; c++) {\r\n addItem(rowIndex, cellIndex + c, clone)\r\n }\r\n for (var r = 1; r < item.rowspan; r++) {\r\n for (var _c = 0; _c < item.colspan; _c++) {\r\n addItem(rowIndex + r, cellIndex + _c, clone)\r\n }\r\n }\r\n }\r\n };\r\n var item = getItem();\r\n var rowIndex = 0;\r\n while (item) {\r\n for (var cellIndex = 0; cellIndex < cols; cellIndex++) {\r\n if (!item) {\r\n break\r\n }\r\n if (resultItems[rowIndex] && resultItems[rowIndex][cellIndex]) {\r\n continue\r\n }\r\n addItem(rowIndex, cellIndex, item);\r\n cellIndex += item.colspan - 1;\r\n item = getItem()\r\n }\r\n rowIndex++\r\n }\r\n return resultItems\r\n}\r\nexport {\r\n prepareItems\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/export/m_export.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../../../../ui/button\";\r\nimport \"../../../../ui/drop_down_button\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport List from \"../../../../ui/list_light\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n prepareItems\r\n} from \"../../../grids/grid_core/m_export\";\r\nimport dataGridCore from \"../m_core\";\r\nvar DATAGRID_EXPORT_MENU_CLASS = \"dx-datagrid-export-menu\";\r\nvar DATAGRID_EXPORT_BUTTON_CLASS = \"dx-datagrid-export-button\";\r\nvar DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME = \"exportButton\";\r\nvar DATAGRID_EXPORT_ICON = \"export\";\r\nvar DATAGRID_EXPORT_EXCEL_ICON = \"xlsxfile\";\r\nvar DATAGRID_EXPORT_SELECTED_ICON = \"exportselected\";\r\nvar DATAGRID_PDF_EXPORT_ICON = \"pdffile\";\r\nexport class DataProvider {\r\n constructor(exportController, initialColumnWidthsByColumnIndex, selectedRowsOnly) {\r\n this._exportController = exportController;\r\n this._initialColumnWidthsByColumnIndex = initialColumnWidthsByColumnIndex;\r\n this._selectedRowsOnly = selectedRowsOnly\r\n }\r\n _getGroupValue(item) {\r\n var {\r\n key: key,\r\n data: data,\r\n rowType: rowType,\r\n groupIndex: groupIndex,\r\n summaryCells: summaryCells\r\n } = item;\r\n var groupColumn = this._options.groupColumns[groupIndex];\r\n var value = dataGridCore.getDisplayValue(groupColumn, groupColumn.deserializeValue ? groupColumn.deserializeValue(key[groupIndex]) : key[groupIndex], data, rowType);\r\n var result = \"\".concat(groupColumn.caption, \": \").concat(dataGridCore.formatValue(value, groupColumn));\r\n if (summaryCells && summaryCells[0] && summaryCells[0].length) {\r\n result += \" \".concat(dataGridCore.getGroupRowSummaryText(summaryCells[0], this._options.summaryTexts))\r\n }\r\n return result\r\n }\r\n _correctCellIndex(cellIndex) {\r\n return cellIndex\r\n }\r\n _initOptions() {\r\n var exportController = this._exportController;\r\n var groupColumns = exportController._columnsController.getGroupColumns();\r\n this._options = {\r\n columns: exportController._getColumns(this._initialColumnWidthsByColumnIndex),\r\n groupColumns: groupColumns,\r\n items: this._selectedRowsOnly || exportController._selectionOnly ? exportController._getSelectedItems() : exportController._getAllItems(),\r\n isHeadersVisible: exportController.option(\"showColumnHeaders\"),\r\n summaryTexts: exportController.option(\"summary.texts\"),\r\n rtlEnabled: exportController.option(\"rtlEnabled\")\r\n }\r\n }\r\n getHeaderStyles() {\r\n return [{\r\n bold: true,\r\n alignment: \"center\"\r\n }, {\r\n bold: true,\r\n alignment: \"left\"\r\n }, {\r\n bold: true,\r\n alignment: \"right\"\r\n }]\r\n }\r\n getGroupRowStyle() {\r\n return {\r\n bold: true,\r\n alignment: getDefaultAlignment(this._options.rtlEnabled)\r\n }\r\n }\r\n getColumnStyles() {\r\n var columnStyles = [];\r\n this.getColumns().forEach(column => {\r\n columnStyles.push({\r\n alignment: column.alignment || \"left\",\r\n format: column.format,\r\n dataType: column.dataType\r\n })\r\n });\r\n return columnStyles\r\n }\r\n getStyles() {\r\n return [...this.getHeaderStyles(), ...this.getColumnStyles(), this.getGroupRowStyle()]\r\n }\r\n _getTotalCellStyleId(cellIndex) {\r\n var _a;\r\n var alignment = (null === (_a = this.getColumns()[cellIndex]) || void 0 === _a ? void 0 : _a.alignment) || \"right\";\r\n return this.getHeaderStyles().map(style => style.alignment).indexOf(alignment)\r\n }\r\n getStyleId(rowIndex, cellIndex) {\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return 0\r\n }\r\n if (this.isTotalCell(rowIndex - this.getHeaderRowCount(), cellIndex)) {\r\n return this._getTotalCellStyleId(cellIndex)\r\n }\r\n if (this.isGroupRow(rowIndex - this.getHeaderRowCount())) {\r\n return this.getHeaderStyles().length + this.getColumns().length\r\n }\r\n return cellIndex + this.getHeaderStyles().length\r\n }\r\n getColumns(getColumnsByAllRows) {\r\n var {\r\n columns: columns\r\n } = this._options;\r\n return getColumnsByAllRows ? columns : columns[columns.length - 1]\r\n }\r\n getColumnsWidths() {\r\n var columns = this.getColumns();\r\n return isDefined(columns) ? columns.map(c => c.width) : void 0\r\n }\r\n getRowsCount() {\r\n return this._options.items.length + this.getHeaderRowCount()\r\n }\r\n getHeaderRowCount() {\r\n if (this.isHeadersVisible()) {\r\n return this._options.columns.length - 1\r\n }\r\n return 0\r\n }\r\n isGroupRow(rowIndex) {\r\n return rowIndex < this._options.items.length && \"group\" === this._options.items[rowIndex].rowType\r\n }\r\n getGroupLevel(rowIndex) {\r\n var item = this._options.items[rowIndex - this.getHeaderRowCount()];\r\n var groupIndex = item && item.groupIndex;\r\n if (item && \"totalFooter\" === item.rowType) {\r\n return 0\r\n }\r\n return isDefined(groupIndex) ? groupIndex : this._options.groupColumns.length\r\n }\r\n getCellType(rowIndex, cellIndex) {\r\n var columns = this.getColumns();\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return \"string\"\r\n }\r\n rowIndex -= this.getHeaderRowCount();\r\n if (cellIndex < columns.length) {\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n var column = columns[cellIndex];\r\n if (item && \"data\" === item.rowType) {\r\n if (isFinite(item.values[this._correctCellIndex(cellIndex)]) && !isDefined(column.customizeText)) {\r\n return isDefined(column.lookup) ? column.lookup.dataType : column.dataType\r\n }\r\n }\r\n return \"string\"\r\n }\r\n }\r\n ready() {\r\n this._initOptions();\r\n var options = this._options;\r\n return when(options.items).done(items => {\r\n options.items = items\r\n }).fail(() => {\r\n options.items = []\r\n })\r\n }\r\n _convertFromGridGroupSummaryItems(gridGroupSummaryItems) {\r\n if (isDefined(gridGroupSummaryItems) && gridGroupSummaryItems.length > 0) {\r\n return gridGroupSummaryItems.map(item => ({\r\n value: item.value,\r\n name: item.name\r\n }))\r\n }\r\n }\r\n getCellData(rowIndex, cellIndex, isExcelJS) {\r\n var value;\r\n var column;\r\n var result = {\r\n cellSourceData: {},\r\n value: value\r\n };\r\n var columns = this.getColumns();\r\n var correctedCellIndex = this._correctCellIndex(cellIndex);\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n var columnsRow = this.getColumns(true)[rowIndex];\r\n column = columnsRow[cellIndex];\r\n result.cellSourceData.rowType = \"header\";\r\n result.cellSourceData.column = column && column.gridColumn;\r\n result.value = column && column.caption\r\n } else {\r\n rowIndex -= this.getHeaderRowCount();\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n if (item) {\r\n var itemValues = item.values;\r\n result.cellSourceData.rowType = item.rowType;\r\n result.cellSourceData.column = columns[cellIndex] && columns[cellIndex].gridColumn;\r\n switch (item.rowType) {\r\n case \"groupFooter\":\r\n case \"totalFooter\":\r\n if (correctedCellIndex < itemValues.length) {\r\n value = itemValues[correctedCellIndex];\r\n if (isDefined(value)) {\r\n result.cellSourceData.value = value.value;\r\n result.cellSourceData.totalSummaryItemName = value.name;\r\n result.value = dataGridCore.getSummaryText(value, this._options.summaryTexts)\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n case \"group\":\r\n result.cellSourceData.groupIndex = item.groupIndex;\r\n if (cellIndex < 1) {\r\n result.cellSourceData.column = this._options.groupColumns[item.groupIndex];\r\n result.cellSourceData.value = item.key[item.groupIndex];\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(item.summaryCells[0]);\r\n result.value = this._getGroupValue(item)\r\n } else {\r\n var summaryItems = item.values[correctedCellIndex];\r\n if (Array.isArray(summaryItems)) {\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(summaryItems);\r\n value = \"\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n value += (i > 0 ? isExcelJS ? \"\\n\" : \" \\n \" : \"\") + dataGridCore.getSummaryText(summaryItems[i], this._options.summaryTexts)\r\n }\r\n result.value = value\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n default:\r\n column = columns[cellIndex];\r\n if (column) {\r\n var _value = itemValues[correctedCellIndex];\r\n var displayValue = dataGridCore.getDisplayValue(column, _value, item.data, item.rowType);\r\n if (!isFinite(displayValue) || isDefined(column.customizeText)) {\r\n if (isExcelJS && isDefined(column.customizeText) && column.customizeText === this._exportController._columnsController.getCustomizeTextByDataType(\"boolean\")) {\r\n result.value = displayValue\r\n } else {\r\n result.value = dataGridCore.formatValue(displayValue, column)\r\n }\r\n } else {\r\n result.value = displayValue\r\n }\r\n result.cellSourceData.value = _value\r\n }\r\n result.cellSourceData.data = item.data\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n isHeadersVisible() {\r\n return this._options.isHeadersVisible\r\n }\r\n isTotalCell(rowIndex, cellIndex) {\r\n var {\r\n items: items\r\n } = this._options;\r\n var item = items[rowIndex];\r\n var correctCellIndex = this._correctCellIndex(cellIndex);\r\n var isSummaryAlignByColumn = item.summaryCells && item.summaryCells[correctCellIndex] && item.summaryCells[correctCellIndex].length > 0 && item.summaryCells[correctCellIndex][0].alignByColumn;\r\n return item && \"groupFooter\" === item.rowType || \"totalFooter\" === item.rowType || isSummaryAlignByColumn\r\n }\r\n getCellMerging(rowIndex, cellIndex) {\r\n var {\r\n columns: columns\r\n } = this._options;\r\n var column = columns[rowIndex] && columns[rowIndex][cellIndex];\r\n return column ? {\r\n colspan: (column.exportColspan || 1) - 1,\r\n rowspan: (column.rowspan || 1) - 1\r\n } : {\r\n colspan: 0,\r\n rowspan: 0\r\n }\r\n }\r\n getFrozenArea() {\r\n return {\r\n x: 0,\r\n y: this.getHeaderRowCount()\r\n }\r\n }\r\n}\r\nexport class ExportController extends dataGridCore.ViewController {\r\n init() {\r\n this.throwWarningIfNoOnExportingEvent();\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._selectionController = this.getController(\"selection\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._headersView = this.getView(\"columnHeadersView\");\r\n this.createAction(\"onExporting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _getEmptyCell() {\r\n return {\r\n caption: \"\",\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }\r\n _updateColumnWidth(column, width) {\r\n column.width = width\r\n }\r\n _getColumns(initialColumnWidthsByColumnIndex) {\r\n var result = [];\r\n var i;\r\n var columns;\r\n var columnsController = this._columnsController;\r\n var rowCount = columnsController.getRowCount();\r\n for (i = 0; i <= rowCount; i++) {\r\n var currentHeaderRow = [];\r\n columns = columnsController.getVisibleColumns(i, true);\r\n var columnWidthsByColumnIndex = void 0;\r\n if (i === rowCount) {\r\n if (this._updateLockCount) {\r\n columnWidthsByColumnIndex = initialColumnWidthsByColumnIndex\r\n } else {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n if (columnWidths && columnWidths.length) {\r\n columnWidthsByColumnIndex = {};\r\n for (var _i = 0; _i < columns.length; _i++) {\r\n columnWidthsByColumnIndex[columns[_i].index] = columnWidths[_i]\r\n }\r\n }\r\n }\r\n }\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = extend({}, columns[j], {\r\n dataType: \"datetime\" === columns[j].dataType ? \"date\" : columns[j].dataType,\r\n gridColumn: columns[j]\r\n });\r\n if (this._needColumnExporting(column)) {\r\n var currentColspan = this._calculateExportColspan(column);\r\n if (isDefined(currentColspan)) {\r\n column.exportColspan = currentColspan\r\n }\r\n if (columnWidthsByColumnIndex) {\r\n this._updateColumnWidth(column, columnWidthsByColumnIndex[column.index])\r\n }\r\n currentHeaderRow.push(column)\r\n }\r\n }\r\n result.push(currentHeaderRow)\r\n }\r\n columns = result[rowCount];\r\n result = prepareItems(result.slice(0, -1), this._getEmptyCell());\r\n result.push(columns);\r\n return result\r\n }\r\n _calculateExportColspan(column) {\r\n if (!column.isBand) {\r\n return\r\n }\r\n var childColumns = this._columnsController.getChildrenByBandColumn(column.index, true);\r\n if (!isDefined(childColumns)) {\r\n return\r\n }\r\n return childColumns.reduce((result, childColumn) => {\r\n if (this._needColumnExporting(childColumn)) {\r\n return result + (this._calculateExportColspan(childColumn) || 1)\r\n }\r\n return result\r\n }, 0)\r\n }\r\n _needColumnExporting(column) {\r\n return !column.command && (column.allowExporting || void 0 === column.allowExporting)\r\n }\r\n _getFooterSummaryItems(summaryCells, isTotal) {\r\n var result = [];\r\n var estimatedItemsCount = 1;\r\n var i = 0;\r\n do {\r\n var values = [];\r\n for (var j = 0; j < summaryCells.length; j++) {\r\n var summaryCell = summaryCells[j];\r\n var itemsLength = summaryCell.length;\r\n if (estimatedItemsCount < itemsLength) {\r\n estimatedItemsCount = itemsLength\r\n }\r\n values.push(summaryCell[i])\r\n }\r\n result.push({\r\n values: values,\r\n rowType: isTotal ? \"totalFooter\" : \"groupFooter\"\r\n })\r\n } while (i++ < estimatedItemsCount - 1);\r\n return result\r\n }\r\n _hasSummaryGroupFooters() {\r\n var groupItems = this.option(\"summary.groupItems\");\r\n if (isDefined(groupItems)) {\r\n for (var i = 0; i < groupItems.length; i++) {\r\n if (groupItems[i].showInGroupFooter) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n }\r\n _getItemsWithSummaryGroupFooters(sourceItems) {\r\n var result = [];\r\n var beforeGroupFooterItems = [];\r\n var groupFooterItems = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n if (\"groupFooter\" === item.rowType) {\r\n groupFooterItems = this._getFooterSummaryItems(item.summaryCells);\r\n result = result.concat(beforeGroupFooterItems, groupFooterItems);\r\n beforeGroupFooterItems = []\r\n } else {\r\n beforeGroupFooterItems.push(item)\r\n }\r\n }\r\n return result.length ? result : beforeGroupFooterItems\r\n }\r\n _updateGroupValuesWithSummaryByColumn(sourceItems) {\r\n var summaryValues = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n var {\r\n summaryCells: summaryCells\r\n } = item;\r\n if (\"group\" === item.rowType && summaryCells && summaryCells.length > 1) {\r\n var groupColumnCount = item.values.length;\r\n for (var j = 1; j < summaryCells.length; j++) {\r\n for (var k = 0; k < summaryCells[j].length; k++) {\r\n var summaryItem = summaryCells[j][k];\r\n if (summaryItem && summaryItem.alignByColumn) {\r\n if (!Array.isArray(summaryValues[j - groupColumnCount])) {\r\n summaryValues[j - groupColumnCount] = []\r\n }\r\n summaryValues[j - groupColumnCount].push(summaryItem)\r\n }\r\n }\r\n }\r\n if (summaryValues.length > 0) {\r\n item.values.push(...summaryValues);\r\n summaryValues = []\r\n }\r\n }\r\n }\r\n }\r\n _processUnExportedItems(items) {\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n var values;\r\n var summaryCells;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var isCommand = false;\r\n values = [];\r\n summaryCells = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = columns[j];\r\n isCommand || (isCommand = [\"detailExpand\", \"buttons\"].includes(column.type));\r\n if (this._needColumnExporting(column)) {\r\n if (item.values) {\r\n if (\"group\" === item.rowType && !values.length) {\r\n values.push(item.key[item.groupIndex])\r\n } else {\r\n values.push(item.values[j])\r\n }\r\n }\r\n if (item.summaryCells) {\r\n if (\"group\" === item.rowType && !summaryCells.length) {\r\n var index = j - groupColumns.length + item.groupIndex;\r\n summaryCells.push(item.summaryCells[isCommand ? index : index + 1])\r\n } else {\r\n summaryCells.push(item.summaryCells[j])\r\n }\r\n }\r\n }\r\n }\r\n if (values.length) {\r\n item.values = values\r\n }\r\n if (summaryCells.length) {\r\n item.summaryCells = summaryCells\r\n }\r\n }\r\n }\r\n _getAllItems(data) {\r\n var skipFilter = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var that = this;\r\n var d = new Deferred;\r\n var footerItems = this._dataController.footerItems();\r\n var totalItem = footerItems.length && footerItems[0];\r\n var summaryTotalItems = that.option(\"summary.totalItems\");\r\n var summaryCells;\r\n when(data).done(data => {\r\n this._dataController.loadAll(data, skipFilter).done((sourceItems, totalAggregates) => {\r\n that._updateGroupValuesWithSummaryByColumn(sourceItems);\r\n if (that._hasSummaryGroupFooters()) {\r\n sourceItems = that._getItemsWithSummaryGroupFooters(sourceItems)\r\n }\r\n summaryCells = totalItem && totalItem.summaryCells;\r\n if (isDefined(totalAggregates) && summaryTotalItems) {\r\n summaryCells = that._getSummaryCells(summaryTotalItems, totalAggregates)\r\n }\r\n var summaryItems = totalItem && that._getFooterSummaryItems(summaryCells, true);\r\n if (summaryItems) {\r\n sourceItems = sourceItems.concat(summaryItems)\r\n }\r\n that._processUnExportedItems(sourceItems);\r\n d.resolve(sourceItems)\r\n }).fail(d.reject)\r\n }).fail(d.reject);\r\n return d\r\n }\r\n _getSummaryCells(summaryTotalItems, totalAggregates) {\r\n return this._dataController._calculateSummaryCells(summaryTotalItems, totalAggregates, this._columnsController.getVisibleColumns(null, true), (summaryItem, column) => this._dataController._isDataColumn(column) ? column.index : -1)\r\n }\r\n _getSelectedItems() {\r\n if (this.needLoadItemsOnExportingSelectedItems()) {\r\n return this._getAllItems(this._selectionController.loadSelectedItemsWithFilter(), true)\r\n }\r\n return this._getAllItems(this._selectionController.getSelectedRowsData())\r\n }\r\n _getColumnWidths(headersView, rowsView) {\r\n return headersView && headersView.isVisible() ? headersView.getColumnWidths() : rowsView.getColumnWidths()\r\n }\r\n throwWarningIfNoOnExportingEvent() {\r\n var _a, _b;\r\n var hasOnExporting = null === (_b = (_a = this.component).hasActionSubscription) || void 0 === _b ? void 0 : _b.call(_a, \"onExporting\");\r\n if (this.option(\"export.enabled\") && !hasOnExporting) {\r\n errors.log(\"W1024\")\r\n }\r\n }\r\n callbackNames() {\r\n return [\"selectionOnlyChanged\"]\r\n }\r\n getDataProvider(selectedRowsOnly) {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n var initialColumnWidthsByColumnIndex;\r\n if (columnWidths && columnWidths.length) {\r\n initialColumnWidthsByColumnIndex = {};\r\n var columnsLastRowVisibleColumns = this._columnsController.getVisibleColumns(this._columnsController.getRowCount(), true);\r\n for (var i = 0; i < columnsLastRowVisibleColumns.length; i++) {\r\n initialColumnWidthsByColumnIndex[columnsLastRowVisibleColumns[i].index] = columnWidths[i]\r\n }\r\n }\r\n return new DataProvider(this, initialColumnWidthsByColumnIndex, selectedRowsOnly)\r\n }\r\n exportTo(selectedRowsOnly, format) {\r\n this._selectionOnly = selectedRowsOnly;\r\n var onExporting = this.getAction(\"onExporting\");\r\n var eventArgs = {\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n selectedRowsOnly: !!selectedRowsOnly,\r\n format: format,\r\n fileName: \"DataGrid\",\r\n cancel: false\r\n };\r\n isFunction(onExporting) && onExporting(eventArgs)\r\n }\r\n publicMethods() {\r\n return [\"getDataProvider\"]\r\n }\r\n selectionOnly(value) {\r\n if (isDefined(value)) {\r\n this._isSelectedRows = value;\r\n this.selectionOnlyChanged.fire()\r\n } else {\r\n return this._isSelectedRows\r\n }\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n if (\"export\" === args.name) {\r\n this.throwWarningIfNoOnExportingEvent()\r\n }\r\n }\r\n needLoadItemsOnExportingSelectedItems() {\r\n var _a;\r\n return null !== (_a = this.option(\"loadItemsOnExportingSelectedItems\")) && void 0 !== _a ? _a : this._dataController._dataSource.remoteOperations().filtering\r\n }\r\n}\r\nvar editing = Base => class extends Base {\r\n callbackNames() {\r\n var callbackList = super.callbackNames();\r\n return isDefined(callbackList) ? callbackList.push(\"editingButtonsUpdated\") : [\"editingButtonsUpdated\"]\r\n }\r\n _updateEditButtons() {\r\n super._updateEditButtons();\r\n this.editingButtonsUpdated.fire()\r\n }\r\n};\r\nvar headerPanel = Base => class extends Base {\r\n _getToolbarItems() {\r\n var items = super._getToolbarItems();\r\n var exportButton = this._getExportToolbarButton();\r\n if (exportButton) {\r\n items.push(exportButton);\r\n this._correctItemsPosition(items)\r\n }\r\n return items\r\n }\r\n _getExportToolbarButton() {\r\n var items = this._getExportToolbarItems();\r\n if (0 === items.length) {\r\n return null\r\n }\r\n var disabled = this._needDisableExportButton();\r\n var toolbarButtonOptions = {\r\n name: DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME,\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 30,\r\n options: {\r\n items: items\r\n },\r\n disabled: disabled\r\n };\r\n if (1 === items.length) {\r\n var widgetOptions = _extends(_extends({}, items[0]), {\r\n hint: items[0].text,\r\n elementAttr: {\r\n class: DATAGRID_EXPORT_BUTTON_CLASS\r\n }\r\n });\r\n toolbarButtonOptions.widget = \"dxButton\";\r\n toolbarButtonOptions.showText = \"inMenu\";\r\n toolbarButtonOptions.options = widgetOptions\r\n } else {\r\n var _widgetOptions = {\r\n icon: DATAGRID_EXPORT_ICON,\r\n displayExpr: \"text\",\r\n items: items,\r\n hint: this.option(\"export.texts.exportTo\"),\r\n elementAttr: {\r\n class: DATAGRID_EXPORT_BUTTON_CLASS\r\n },\r\n dropDownOptions: {\r\n width: \"auto\",\r\n _wrapperClassExternal: DATAGRID_EXPORT_MENU_CLASS\r\n }\r\n };\r\n toolbarButtonOptions.options = _widgetOptions;\r\n toolbarButtonOptions.widget = \"dxDropDownButton\";\r\n toolbarButtonOptions.menuItemTemplate = (_data, _index, container) => {\r\n this._createComponent($(container), List, {\r\n items: items\r\n })\r\n }\r\n }\r\n return toolbarButtonOptions\r\n }\r\n _getExportToolbarItems() {\r\n var _a;\r\n var exportOptions = this.option(\"export\");\r\n var texts = this.option(\"export.texts\");\r\n var formats = null !== (_a = this.option(\"export.formats\")) && void 0 !== _a ? _a : [];\r\n if (!exportOptions.enabled) {\r\n return []\r\n }\r\n var items = [];\r\n formats.forEach(formatType => {\r\n var formatName = formatType.toUpperCase();\r\n var exportAllIcon = DATAGRID_EXPORT_ICON;\r\n var exportSelectedIcon = DATAGRID_EXPORT_SELECTED_ICON;\r\n if (\"xlsx\" === formatType) {\r\n formatName = \"Excel\";\r\n exportAllIcon = DATAGRID_EXPORT_EXCEL_ICON\r\n }\r\n if (\"pdf\" === formatType) {\r\n exportAllIcon = DATAGRID_PDF_EXPORT_ICON\r\n }\r\n items.push({\r\n text: format(texts.exportAll, formatName),\r\n icon: exportAllIcon,\r\n onClick: () => {\r\n this._exportController.exportTo(false, formatType)\r\n }\r\n });\r\n if (exportOptions.allowExportSelectedData) {\r\n items.push({\r\n text: format(texts.exportSelectedRows, formatName),\r\n icon: exportSelectedIcon,\r\n onClick: () => {\r\n this._exportController.exportTo(true, formatType)\r\n }\r\n })\r\n }\r\n });\r\n return items\r\n }\r\n _correctItemsPosition(items) {\r\n items.sort((itemA, itemB) => itemA.sortIndex - itemB.sortIndex)\r\n }\r\n _isExportButtonVisible() {\r\n return this.option(\"export.enabled\")\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n if (\"export\" === args.name) {\r\n args.handled = true;\r\n this._invalidate()\r\n }\r\n }\r\n _needDisableExportButton() {\r\n var isDataColumnsInvisible = !this._columnsController.hasVisibleDataColumns();\r\n var hasUnsavedChanges = this._editingController.hasChanges();\r\n return isDataColumnsInvisible || hasUnsavedChanges\r\n }\r\n _columnOptionChanged(e) {\r\n super._columnOptionChanged(e);\r\n var isColumnLocationChanged = dataGridCore.checkChanges(e.optionNames, [\"groupIndex\", \"visible\", \"all\"]);\r\n if (isColumnLocationChanged) {\r\n var disabled = this._needDisableExportButton();\r\n this.setToolbarItemDisabled(\"exportButton\", disabled)\r\n }\r\n }\r\n init() {\r\n super.init();\r\n this._exportController = this.getController(\"export\");\r\n this._editingController.editingButtonsUpdated.add(() => {\r\n var disabled = this._needDisableExportButton();\r\n this.setToolbarItemDisabled(\"exportButton\", disabled)\r\n })\r\n }\r\n isVisible() {\r\n return super.isVisible() || this._isExportButtonVisible()\r\n }\r\n};\r\ndataGridCore.registerModule(\"export\", {\r\n defaultOptions: () => ({\r\n export: {\r\n enabled: false,\r\n fileName: \"DataGrid\",\r\n formats: [\"xlsx\"],\r\n allowExportSelectedData: false,\r\n texts: {\r\n exportTo: messageLocalization.format(\"dxDataGrid-exportTo\"),\r\n exportAll: messageLocalization.format(\"dxDataGrid-exportAll\"),\r\n exportSelectedRows: messageLocalization.format(\"dxDataGrid-exportSelectedRows\")\r\n }\r\n }\r\n }),\r\n controllers: {\r\n export: ExportController\r\n },\r\n extenders: {\r\n controllers: {\r\n editing: editing\r\n },\r\n views: {\r\n headerPanel: headerPanel\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/focus/m_focus_utils.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n isDate,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nvar getSortFilterValue = (sortInfo, rowData, _ref) => {\r\n var {\r\n isRemoteFiltering: isRemoteFiltering,\r\n dateSerializationFormat: dateSerializationFormat,\r\n getSelector: getSelector\r\n } = _ref;\r\n var {\r\n selector: selector\r\n } = sortInfo;\r\n var getter = isFunction(selector) ? selector : getSelector(selector);\r\n var rawValue = getter ? getter(rowData) : rowData[selector];\r\n var safeValue = isRemoteFiltering && isDate(rawValue) ? dateSerialization.serializeDate(rawValue, dateSerializationFormat) : rawValue;\r\n return {\r\n getter: getter,\r\n rawValue: rawValue,\r\n safeValue: safeValue\r\n }\r\n};\r\nexport var UiGridCoreFocusUtils = {\r\n getSortFilterValue: getSortFilterValue\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/focus/m_focus.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isBoolean,\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n isNewRowTempKey\r\n} from \"../editing/m_editing_utils\";\r\nimport core from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n UiGridCoreFocusUtils\r\n} from \"./m_focus_utils\";\r\nvar ROW_FOCUSED_CLASS = \"dx-row-focused\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row.\".concat(ROW_FOCUSED_CLASS);\r\nvar TABLE_POSTFIX_CLASS = \"table\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nexport class FocusController extends core.ViewController {\r\n getKeyboardController() {\r\n return this.getController(\"keyboardNavigation\")\r\n }\r\n getDataController() {\r\n return this.getController(\"data\")\r\n }\r\n init() {\r\n this.component._optionsByReference.focusedRowKey = true\r\n }\r\n optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"focusedRowIndex\":\r\n this._focusRowByIndex(value);\r\n this.getKeyboardController()._fireFocusedRowChanged();\r\n args.handled = true;\r\n break;\r\n case \"focusedRowKey\":\r\n if (Array.isArray(value) && JSON.stringify(value) === JSON.stringify(previousValue)) {\r\n return\r\n }\r\n this._focusRowByKey(value);\r\n this.getKeyboardController()._fireFocusedRowChanged();\r\n args.handled = true;\r\n break;\r\n case \"focusedColumnIndex\":\r\n case \"focusedRowEnabled\":\r\n case \"autoNavigateToFocusedRow\":\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n publicMethods() {\r\n return [\"navigateToRow\", \"isRowFocused\"]\r\n }\r\n isAutoNavigateToFocusedRow() {\r\n return \"infinite\" !== this.option(\"scrolling.mode\") && this.option(\"autoNavigateToFocusedRow\")\r\n }\r\n _focusRowByIndex(index, operationTypes) {\r\n if (!this.option(\"focusedRowEnabled\")) {\r\n return\r\n }\r\n index = void 0 !== index ? index : this.option(\"focusedRowIndex\");\r\n if (index < 0) {\r\n if (this.isAutoNavigateToFocusedRow()) {\r\n this._resetFocusedRow()\r\n }\r\n } else {\r\n this._focusRowByIndexCore(index, operationTypes)\r\n }\r\n }\r\n _focusRowByIndexCore(index, operationTypes) {\r\n var pageSize = this.getDataController().pageSize();\r\n var setKeyByIndex = () => {\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = index - this.getDataController().getRowIndexOffset(true);\r\n if (!operationTypes || operationTypes.paging && !operationTypes.filtering) {\r\n var lastItemIndex = this.getDataController()._getLastItemIndex();\r\n rowIndex = Math.min(rowIndex, lastItemIndex)\r\n }\r\n var focusedRowKey = this.getDataController().getKeyByRowIndex(rowIndex, true);\r\n if (isDefined(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n };\r\n if (pageSize >= 0) {\r\n if (!this._isLocalRowIndex(index)) {\r\n var pageIndex = Math.floor(index / this.getDataController().pageSize());\r\n when(this.getDataController().pageIndex(pageIndex), this.getDataController().waitReady()).done(() => {\r\n setKeyByIndex()\r\n })\r\n } else {\r\n setKeyByIndex()\r\n }\r\n }\r\n }\r\n _isLocalRowIndex(index) {\r\n var isVirtualScrolling = this.getKeyboardController()._isVirtualScrolling();\r\n if (isVirtualScrolling) {\r\n var pageIndex = Math.floor(index / this.getDataController().pageSize());\r\n var virtualItems = this.getDataController().virtualItemsCount();\r\n var virtualItemsBegin = virtualItems ? virtualItems.begin : -1;\r\n var visibleRowsCount = this.getDataController().getVisibleRows().length + this.getDataController().getRowIndexOffset();\r\n var visiblePagesCount = Math.ceil(visibleRowsCount / this.getDataController().pageSize());\r\n return virtualItemsBegin <= index && visiblePagesCount > pageIndex\r\n }\r\n return true\r\n }\r\n _setFocusedRowKeyByIndex(index) {\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = Math.min(index - this.getDataController().getRowIndexOffset(), this.getDataController().items().length - 1);\r\n var focusedRowKey = this.getDataController().getKeyByRowIndex(rowIndex);\r\n if (isDefined(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n }\r\n _focusRowByKey(key) {\r\n if (!isDefined(key)) {\r\n this._resetFocusedRow()\r\n } else {\r\n this._navigateToRow(key, true)\r\n }\r\n }\r\n _resetFocusedRow() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isFocusedRowKeyDefined = isDefined(focusedRowKey);\r\n if (!isFocusedRowKeyDefined && this.option(\"focusedRowIndex\") < 0) {\r\n return\r\n }\r\n if (isFocusedRowKeyDefined) {\r\n this.option(\"focusedRowKey\", null)\r\n }\r\n this.getKeyboardController().setFocusedRowIndex(-1);\r\n this.option(\"focusedRowIndex\", -1);\r\n this.getDataController().updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: null\r\n });\r\n this.getKeyboardController()._fireFocusedRowChanged()\r\n }\r\n _isValidFocusedRowIndex(rowIndex) {\r\n var row = this.getDataController().getVisibleRows()[rowIndex];\r\n return !row || \"data\" === row.rowType || \"group\" === row.rowType\r\n }\r\n navigateToRow(key) {\r\n if (!this.isAutoNavigateToFocusedRow()) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n return this._navigateToRow(key)\r\n }\r\n _navigateToRow(key, needFocusRow) {\r\n var that = this;\r\n var isAutoNavigate = that.isAutoNavigateToFocusedRow();\r\n var d = new Deferred;\r\n if (void 0 === key || !this.getDataController().dataSource()) {\r\n return d.reject().promise()\r\n }\r\n var rowIndexByKey = that.getFocusedRowIndexByKey(key);\r\n if (!isAutoNavigate && needFocusRow || rowIndexByKey >= 0) {\r\n that._navigateTo(key, d, needFocusRow)\r\n } else {\r\n this.getDataController().getPageIndexByKey(key).done(pageIndex => {\r\n if (pageIndex < 0) {\r\n d.resolve(-1);\r\n return\r\n }\r\n if (pageIndex === this.getDataController().pageIndex()) {\r\n this.getDataController().reload().done(() => {\r\n if (that.isRowFocused(key) && this.getDataController().getRowIndexByKey(key) >= 0) {\r\n d.resolve(that.getFocusedRowIndexByKey(key))\r\n } else {\r\n that._navigateTo(key, d, needFocusRow)\r\n }\r\n }).fail(d.reject)\r\n } else {\r\n this.getDataController().pageIndex(pageIndex).done(() => {\r\n that._navigateTo(key, d, needFocusRow)\r\n }).fail(d.reject)\r\n }\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n }\r\n _navigateTo(key, deferred, needFocusRow) {\r\n var visibleRowIndex = this.getDataController().getRowIndexByKey(key);\r\n var isVirtualRowRenderingMode = gridCoreUtils.isVirtualRowRendering(this);\r\n var isAutoNavigate = this.isAutoNavigateToFocusedRow();\r\n if (isAutoNavigate && isVirtualRowRenderingMode && visibleRowIndex < 0) {\r\n this._navigateToVirtualRow(key, deferred, needFocusRow)\r\n } else {\r\n this._navigateToVisibleRow(key, deferred, needFocusRow)\r\n }\r\n }\r\n _navigateToVisibleRow(key, deferred, needFocusRow) {\r\n if (needFocusRow) {\r\n this._triggerUpdateFocusedRow(key, deferred)\r\n } else {\r\n var focusedRowIndex = this.getFocusedRowIndexByKey(key);\r\n this.getView(\"rowsView\").scrollToRowElement(key, deferred).done(() => {\r\n deferred.resolve(focusedRowIndex)\r\n })\r\n }\r\n }\r\n _navigateToVirtualRow(key, deferred, needFocusRow) {\r\n var rowsScrollController = this.getDataController()._rowsScrollController;\r\n var rowIndex = gridCoreUtils.getIndexByKey(key, this.getDataController().items(true));\r\n var scrollable = this.getView(\"rowsView\").getScrollable();\r\n if (rowsScrollController && scrollable && rowIndex >= 0) {\r\n var focusedRowIndex = rowIndex + this.getDataController().getRowIndexOffset(true);\r\n var offset = rowsScrollController.getItemOffset(focusedRowIndex);\r\n var triggerUpdateFocusedRow = () => {\r\n if (this.getDataController().totalCount() && !this.getDataController().items().length) {\r\n return\r\n }\r\n this.component.off(\"contentReady\", triggerUpdateFocusedRow);\r\n if (needFocusRow) {\r\n this._triggerUpdateFocusedRow(key, deferred)\r\n } else {\r\n deferred.resolve(focusedRowIndex)\r\n }\r\n };\r\n this.component.on(\"contentReady\", triggerUpdateFocusedRow);\r\n this.getView(\"rowsView\").scrollTopPosition(offset)\r\n } else {\r\n deferred.resolve(-1)\r\n }\r\n }\r\n _triggerUpdateFocusedRow(key, deferred) {\r\n var focusedRowIndex = this.getFocusedRowIndexByKey(key);\r\n if (this._isValidFocusedRowIndex(focusedRowIndex)) {\r\n var d;\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.getDataController().updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: key\r\n })\r\n } else {\r\n d = this.getView(\"rowsView\").scrollToRowElement(key)\r\n }\r\n when(d).done(() => {\r\n this.getKeyboardController().setFocusedRowIndex(focusedRowIndex);\r\n deferred && deferred.resolve(focusedRowIndex)\r\n })\r\n } else {\r\n deferred && deferred.resolve(-1)\r\n }\r\n }\r\n getFocusedRowIndexByKey(key) {\r\n var loadedRowIndex = this.getDataController().getRowIndexByKey(key, true);\r\n return loadedRowIndex >= 0 ? loadedRowIndex + this.getDataController().getRowIndexOffset(true) : -1\r\n }\r\n _focusRowByKeyOrIndex() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var currentFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n if (isDefined(focusedRowKey)) {\r\n var visibleRowIndex = this.getDataController().getRowIndexByKey(focusedRowKey);\r\n if (visibleRowIndex >= 0) {\r\n if (this.getKeyboardController()._isVirtualScrolling()) {\r\n currentFocusedRowIndex = visibleRowIndex + this.getDataController().getRowIndexOffset()\r\n }\r\n this.getKeyboardController().setFocusedRowIndex(currentFocusedRowIndex);\r\n this._triggerUpdateFocusedRow(focusedRowKey)\r\n } else {\r\n this._navigateToRow(focusedRowKey, true).done(focusedRowIndex => {\r\n if (currentFocusedRowIndex >= 0 && focusedRowIndex < 0) {\r\n this._focusRowByIndex()\r\n } else if (currentFocusedRowIndex < 0 && focusedRowIndex >= 0) {\r\n this.getKeyboardController().setFocusedRowIndex(focusedRowIndex)\r\n }\r\n })\r\n }\r\n } else if (currentFocusedRowIndex >= 0) {\r\n this._focusRowByIndex(currentFocusedRowIndex)\r\n }\r\n }\r\n isRowFocused(key) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n if (isDefined(focusedRowKey)) {\r\n return equalByValue(key, this.option(\"focusedRowKey\"))\r\n }\r\n return\r\n }\r\n updateFocusedRow(e) {\r\n var _a;\r\n var that = this;\r\n var focusedRowIndex = null !== (_a = e.focusedRowIndex) && void 0 !== _a ? _a : that.getDataController().getRowIndexByKey(e.focusedRowKey);\r\n var rowsView = that.getView(\"rowsView\");\r\n var $tableElement;\r\n var $mainRow;\r\n each(rowsView.getTableElements(), (index, element) => {\r\n var isMainTable = 0 === index;\r\n $tableElement = $(element);\r\n that._clearPreviousFocusedRow($tableElement, focusedRowIndex);\r\n var $row = that._prepareFocusedRow({\r\n changedItem: that.getDataController().getVisibleRows()[focusedRowIndex],\r\n $tableElement: $tableElement,\r\n focusedRowIndex: focusedRowIndex\r\n });\r\n if (isMainTable) {\r\n $mainRow = $row\r\n }\r\n });\r\n if (!e.preventScroll && $mainRow) {\r\n rowsView.scrollToElementVertically($mainRow)\r\n }\r\n }\r\n _clearPreviousFocusedRow($tableElement, focusedRowIndex) {\r\n var $prevRowFocusedElement = $tableElement.find(FOCUSED_ROW_SELECTOR).filter((_, focusedRow) => {\r\n var $focusedRowTable = $(focusedRow).closest(\".\".concat(this.addWidgetPrefix(TABLE_POSTFIX_CLASS)));\r\n return $tableElement.is($focusedRowTable)\r\n });\r\n $prevRowFocusedElement.removeClass(ROW_FOCUSED_CLASS).removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabindex\");\r\n $prevRowFocusedElement.children(\"td\").removeAttr(\"tabindex\");\r\n if (0 !== focusedRowIndex) {\r\n var $firstRow = $(this.getView(\"rowsView\").getRowElement(0));\r\n $firstRow.removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabIndex\")\r\n }\r\n }\r\n _prepareFocusedRow(options) {\r\n var $row;\r\n var {\r\n changedItem: changedItem\r\n } = options;\r\n if (changedItem && (\"data\" === changedItem.rowType || \"group\" === changedItem.rowType)) {\r\n var {\r\n focusedRowIndex: focusedRowIndex\r\n } = options;\r\n var {\r\n $tableElement: $tableElement\r\n } = options;\r\n var tabIndex = this.option(\"tabindex\") || 0;\r\n var _rowsView = this.getView(\"rowsView\");\r\n $row = $(_rowsView._getRowElements($tableElement).eq(focusedRowIndex));\r\n $row.addClass(ROW_FOCUSED_CLASS).attr(\"tabindex\", tabIndex)\r\n }\r\n return $row\r\n }\r\n}\r\nvar keyboardNavigation = Base => class extends Base {\r\n init() {\r\n var rowIndex = this.option(\"focusedRowIndex\");\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n this.createAction(\"onFocusedRowChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedRowChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n super.init();\r\n this.setRowFocusType();\r\n this._focusedCellPosition = {};\r\n if (isDefined(rowIndex) && rowIndex >= 0) {\r\n this._focusedCellPosition.rowIndex = rowIndex\r\n }\r\n if (isDefined(columnIndex) && columnIndex >= 0) {\r\n this._focusedCellPosition.columnIndex = columnIndex\r\n }\r\n }\r\n setFocusedRowIndex(rowIndex) {\r\n super.setFocusedRowIndex(rowIndex);\r\n this.option(\"focusedRowIndex\", rowIndex)\r\n }\r\n setFocusedColumnIndex(columnIndex) {\r\n super.setFocusedColumnIndex(columnIndex);\r\n this.option(\"focusedColumnIndex\", columnIndex)\r\n }\r\n _escapeKeyHandler(eventArgs, isEditing) {\r\n if (isEditing || !this.option(\"focusedRowEnabled\")) {\r\n return super._escapeKeyHandler(eventArgs, isEditing)\r\n }\r\n if (this.isCellFocusType()) {\r\n this.setRowFocusType();\r\n this._focus(this._getCellElementFromTarget(eventArgs.originalEvent.target), true);\r\n return true\r\n }\r\n return false\r\n }\r\n _updateFocusedCellPosition($cell, direction) {\r\n var position = super._updateFocusedCellPosition($cell, direction);\r\n if (position && position.columnIndex >= 0) {\r\n this._fireFocusedCellChanged($cell)\r\n }\r\n return position\r\n }\r\n};\r\nvar editorFactory = Base => class extends Base {\r\n renderFocusOverlay($element, isHideBorder) {\r\n var _a;\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var $cell;\r\n if (!focusedRowEnabled || !(null === (_a = this._keyboardNavigationController) || void 0 === _a ? void 0 : _a.isRowFocusType()) || this._editingController.isEditing()) {\r\n super.renderFocusOverlay($element, isHideBorder)\r\n } else if (focusedRowEnabled) {\r\n var isRowElement = \"row\" === this._keyboardNavigationController._getElementType($element);\r\n if (isRowElement && !$element.hasClass(ROW_FOCUSED_CLASS)) {\r\n $cell = this._keyboardNavigationController.getFirstValidCellInRow($element);\r\n this._keyboardNavigationController.focus($cell)\r\n }\r\n }\r\n }\r\n};\r\nvar columns = Base => class extends Base {\r\n getSortDataSourceParameters(_, sortByKey) {\r\n var result = super.getSortDataSourceParameters.apply(this, arguments);\r\n var dataSource = this._dataController._dataSource;\r\n var store = this._dataController.store();\r\n var key = store && store.key();\r\n var remoteOperations = dataSource && dataSource.remoteOperations() || {};\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !remoteOperations[operationName]);\r\n if (key && (this.option(\"focusedRowEnabled\") && false !== this._focusController.isAutoNavigateToFocusedRow() || sortByKey)) {\r\n key = Array.isArray(key) ? key : [key];\r\n var notSortedKeys = key.filter(key => !this.columnOption(key, \"sortOrder\"));\r\n if (notSortedKeys.length) {\r\n result = result || [];\r\n if (isLocalOperations) {\r\n result.push({\r\n selector: dataSource.getDataIndexGetter(),\r\n desc: false\r\n })\r\n } else {\r\n notSortedKeys.forEach(notSortedKey => result.push({\r\n selector: notSortedKey,\r\n desc: false\r\n }))\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n};\r\nvar data = Base => class extends Base {\r\n constructor() {\r\n super(...arguments);\r\n this._needToUpdateFocusedRowByIndex = false\r\n }\r\n _applyChange(change) {\r\n if (change && \"updateFocusedRow\" === change.changeType) {\r\n return\r\n }\r\n return super._applyChange.apply(this, arguments)\r\n }\r\n _fireChanged(e) {\r\n super._fireChanged(e);\r\n if (this.option(\"focusedRowEnabled\") && this._dataSource) {\r\n var isPartialUpdate = \"update\" === e.changeType && e.repaintChangesOnly;\r\n var isPartialUpdateWithDeleting = isPartialUpdate && e.changeTypes && e.changeTypes.indexOf(\"remove\") >= 0;\r\n if (this._needToUpdateFocusedRowByIndex) {\r\n this._needToUpdateFocusedRowByIndex = false;\r\n this._focusController._focusRowByIndex()\r\n } else if (\"refresh\" === e.changeType && e.items.length || isPartialUpdateWithDeleting) {\r\n this._updatePageIndexes();\r\n this._updateFocusedRow(e)\r\n } else if (\"append\" === e.changeType || \"prepend\" === e.changeType) {\r\n this._updatePageIndexes()\r\n } else if (\"update\" === e.changeType && e.repaintChangesOnly) {\r\n this._updateFocusedRow(e)\r\n }\r\n }\r\n }\r\n _handleDataPushed(changes) {\r\n super._handleDataPushed(changes);\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n this._needToUpdateFocusedRowByIndex = null === changes || void 0 === changes ? void 0 : changes.some(change => \"remove\" === change.type && equalByValue(change.key, focusedRowKey))\r\n }\r\n _updatePageIndexes() {\r\n var prevRenderingPageIndex = this._lastRenderingPageIndex || 0;\r\n var renderingPageIndex = this._rowsScrollController ? this._rowsScrollController.pageIndex() : 0;\r\n this._lastRenderingPageIndex = renderingPageIndex;\r\n this._isPagingByRendering = renderingPageIndex !== prevRenderingPageIndex\r\n }\r\n isPagingByRendering() {\r\n return this._isPagingByRendering\r\n }\r\n _updateFocusedRow(e) {\r\n var operationTypes = e.operationTypes || {};\r\n var {\r\n reload: reload,\r\n fullReload: fullReload,\r\n pageIndex: pageIndex,\r\n paging: paging\r\n } = operationTypes;\r\n var isVirtualScrolling = this._keyboardNavigationController._isVirtualScrolling();\r\n var pagingWithoutVirtualScrolling = paging && !isVirtualScrolling;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isAutoNavigate = this._focusController.isAutoNavigateToFocusedRow();\r\n var isReload = reload && false === pageIndex;\r\n if (isReload && !fullReload && isDefined(focusedRowKey)) {\r\n this._focusController._navigateToRow(focusedRowKey, true).done(focusedRowIndex => {\r\n if (focusedRowIndex < 0) {\r\n this._focusController._focusRowByIndex(void 0, operationTypes)\r\n }\r\n })\r\n } else if (pagingWithoutVirtualScrolling && isAutoNavigate) {\r\n var rowIndexByKey = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n var isValidRowIndexByKey = rowIndexByKey >= 0;\r\n var isValidFocusedRowIndex = focusedRowIndex >= 0;\r\n var isSameRowIndex = focusedRowIndex === rowIndexByKey;\r\n if (isValidFocusedRowIndex && (isSameRowIndex || !isValidRowIndexByKey)) {\r\n this._focusController._focusRowByIndex(focusedRowIndex, operationTypes)\r\n }\r\n } else if (pagingWithoutVirtualScrolling && !isAutoNavigate && this.getRowIndexByKey(focusedRowKey) < 0) {\r\n this.option(\"focusedRowIndex\", -1)\r\n } else if (operationTypes.fullReload) {\r\n this._focusController._focusRowByKeyOrIndex()\r\n }\r\n }\r\n getPageIndexByKey(key) {\r\n var that = this;\r\n var d = new Deferred;\r\n that.getGlobalRowIndexByKey(key).done(globalIndex => {\r\n d.resolve(globalIndex >= 0 ? Math.floor(globalIndex / that.pageSize()) : -1)\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n getGlobalRowIndexByKey(key) {\r\n if (this._dataSource.group()) {\r\n return this._calculateGlobalRowIndexByGroupedData(key)\r\n }\r\n return this._calculateGlobalRowIndexByFlatData(key)\r\n }\r\n _calculateGlobalRowIndexByFlatData(key, groupFilter, useGroup) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (Array.isArray(key) || isNewRowTempKey(key)) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n var filter = that._generateFilterByKey(key);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n skip: 0,\r\n take: 1\r\n }).done(data => {\r\n if (data.length > 0) {\r\n filter = that._generateOperationFilterByKey(key, data[0], useGroup);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter, groupFilter),\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }).done((_, extra) => {\r\n deferred.resolve(extra.totalCount)\r\n })\r\n } else {\r\n deferred.resolve(-1)\r\n }\r\n });\r\n return deferred.promise()\r\n }\r\n _concatWithCombinedFilter(filter, groupFilter) {\r\n var combinedFilter = this.getCombinedFilter();\r\n return gridCoreUtils.combineFilters([filter, combinedFilter, groupFilter])\r\n }\r\n _generateBooleanFilter(selector, value, sortInfo) {\r\n var {\r\n desc: desc\r\n } = sortInfo;\r\n switch (true) {\r\n case false === value && desc:\r\n return [selector, \"=\", true];\r\n case false === value && !desc:\r\n return [selector, \"=\", null];\r\n case true === value && !desc:\r\n case !isBoolean(value) && desc:\r\n return [selector, \"<>\", value];\r\n default:\r\n return\r\n }\r\n }\r\n _generateOperationFilterByKey(key, rowData, useGroup) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var isRemoteFiltering = that._dataSource.remoteOperations().filtering;\r\n var isRemoteSorting = that._dataSource.remoteOperations().sorting;\r\n var filter = that._generateFilterByKey(key, \"<\");\r\n var sort = that._columnsController.getSortDataSourceParameters(!isRemoteFiltering, true);\r\n if (useGroup) {\r\n var group = that._columnsController.getGroupDataSourceParameters(!isRemoteFiltering);\r\n if (group) {\r\n sort = sort ? group.concat(sort) : group\r\n }\r\n }\r\n if (sort) {\r\n sort.slice().reverse().forEach(sortInfo => {\r\n var {\r\n selector: selector,\r\n desc: desc,\r\n compare: compare\r\n } = sortInfo;\r\n var {\r\n getter: getter,\r\n rawValue: rawValue,\r\n safeValue: safeValue\r\n } = UiGridCoreFocusUtils.getSortFilterValue(sortInfo, rowData, {\r\n isRemoteFiltering: isRemoteFiltering,\r\n dateSerializationFormat: dateSerializationFormat,\r\n getSelector: selector => that._columnsController.columnOption(selector, \"selector\")\r\n });\r\n filter = [\r\n [selector, \"=\", safeValue], \"and\", filter\r\n ];\r\n if (null === rawValue || isBoolean(rawValue)) {\r\n var booleanFilter = that._generateBooleanFilter(selector, safeValue, desc);\r\n if (booleanFilter) {\r\n filter = [booleanFilter, \"or\", filter]\r\n }\r\n } else {\r\n var filterOperation = desc ? \">\" : \"<\";\r\n var sortFilter;\r\n if (compare && !isRemoteSorting) {\r\n sortFilter = data => {\r\n if (\"<\" === filterOperation) {\r\n return compare(rawValue, getter(data)) >= 1\r\n }\r\n return compare(rawValue, getter(data)) <= -1\r\n }\r\n } else {\r\n sortFilter = [selector, filterOperation, safeValue];\r\n if (!desc) {\r\n sortFilter = [sortFilter, \"or\", [selector, \"=\", null]]\r\n }\r\n }\r\n filter = [sortFilter, \"or\", filter]\r\n }\r\n })\r\n }\r\n return filter\r\n }\r\n _generateFilterByKey(key, operation) {\r\n var dataSourceKey = this._dataSource.key();\r\n var filter = [];\r\n if (!operation) {\r\n operation = \"=\"\r\n }\r\n if (Array.isArray(dataSourceKey)) {\r\n for (var i = 0; i < dataSourceKey.length; ++i) {\r\n var keyPart = key[dataSourceKey[i]];\r\n if (keyPart) {\r\n if (filter.length > 0) {\r\n filter.push(\"and\")\r\n }\r\n filter.push([dataSourceKey[i], operation, keyPart])\r\n }\r\n }\r\n } else {\r\n filter = [dataSourceKey, operation, key]\r\n }\r\n return filter\r\n }\r\n _getLastItemIndex() {\r\n return this.items(true).length - 1\r\n }\r\n};\r\nvar editing = Base => class extends Base {\r\n _deleteRowCore(rowIndex) {\r\n var deferred = super._deleteRowCore.apply(this, arguments);\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n deferred.done(() => {\r\n var rowIndex = this._dataController.getRowIndexByKey(rowKey);\r\n var visibleRows = this._dataController.getVisibleRows();\r\n if (-1 === rowIndex && !visibleRows.length) {\r\n this._focusController._resetFocusedRow()\r\n }\r\n })\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (this.option(\"focusedRowEnabled\") && row) {\r\n if (this._focusController.isRowFocused(row.key)) {\r\n $row.addClass(ROW_FOCUSED_CLASS)\r\n }\r\n }\r\n return $row\r\n }\r\n _checkRowKeys(options) {\r\n super._checkRowKeys.apply(this, arguments);\r\n if (this.option(\"focusedRowEnabled\") && this.option(\"dataSource\")) {\r\n var store = this._dataController.store();\r\n if (store && !store.key()) {\r\n this._dataController.fireError(\"E1042\", \"Row focusing\")\r\n }\r\n }\r\n }\r\n _update(change) {\r\n if (\"updateFocusedRow\" === change.changeType) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this._focusController.updateFocusedRow(change)\r\n }\r\n } else {\r\n super._update(change)\r\n }\r\n }\r\n updateFocusElementTabIndex($cellElements, preventScroll) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this._setFocusedRowElementTabIndex(preventScroll)\r\n } else {\r\n super.updateFocusElementTabIndex($cellElements)\r\n }\r\n }\r\n _setFocusedRowElementTabIndex(preventScroll) {\r\n var _a;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var tabIndex = null !== (_a = this.option(\"tabIndex\")) && void 0 !== _a ? _a : 0;\r\n var columnsController = this._columnsController;\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n var $row = this._findRowElementForTabIndex();\r\n var dataSource = this._dataController.dataSource();\r\n var operationTypes = null === dataSource || void 0 === dataSource ? void 0 : dataSource.operationTypes();\r\n var isPaging = !operationTypes || operationTypes.paging;\r\n if (!isDefined(this._scrollToFocusOnResize)) {\r\n this._scrollToFocusOnResize = () => {\r\n this.scrollToElementVertically(this._findRowElementForTabIndex());\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize)\r\n }\r\n }\r\n $row.attr(\"tabIndex\", tabIndex);\r\n var rowIndexFromOption = this.option(\"focusedRowIndex\") - this._dataController.getRowIndexOffset(true);\r\n if (!isPaging && rowIndex < 0 && rowIndexFromOption >= 0) {\r\n this._focusController.updateFocusedRow({\r\n focusedRowIndex: rowIndexFromOption,\r\n preventScroll: preventScroll\r\n })\r\n }\r\n if (rowIndex >= 0 && !preventScroll) {\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n rowIndex += this._dataController.getRowIndexOffset();\r\n columnIndex += columnsController.getColumnIndexOffset();\r\n this._keyboardNavigationController.setFocusedCellPosition(rowIndex, columnIndex);\r\n if (this._focusController.isAutoNavigateToFocusedRow()) {\r\n if (!isPaging && !this._dataController.isPagingByRendering()) {\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize);\r\n this.resizeCompleted.add(this._scrollToFocusOnResize)\r\n }\r\n }\r\n }\r\n }\r\n _findRowElementForTabIndex() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n return $(this.getRowElement(rowIndex >= 0 ? rowIndex : 0))\r\n }\r\n scrollToRowElement(key) {\r\n var rowIndex = this._dataController.getRowIndexByKey(key);\r\n var $row = $(this.getRow(rowIndex));\r\n return this.scrollToElementVertically($row)\r\n }\r\n scrollToElementVertically($row) {\r\n var scrollable = this.getScrollable();\r\n if (scrollable && $row.length) {\r\n var position = scrollable.getScrollElementPosition($row, \"vertical\");\r\n return this.scrollTopPosition(position)\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n scrollTopPosition(scrollTop) {\r\n var d = new Deferred;\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n var currentScrollTop = scrollable.scrollTop();\r\n var scrollHandler = () => {\r\n scrollable.off(\"scroll\", scrollHandler);\r\n d.resolve()\r\n };\r\n if (scrollTop !== currentScrollTop) {\r\n scrollable.on(\"scroll\", scrollHandler);\r\n this._dataController.resetFilterApplying();\r\n scrollable.scrollTo({\r\n top: scrollTop\r\n });\r\n return d.promise()\r\n }\r\n }\r\n return d.resolve()\r\n }\r\n};\r\nexport var focusModule = {\r\n defaultOptions: () => ({\r\n focusedRowEnabled: false,\r\n autoNavigateToFocusedRow: true,\r\n focusedRowKey: null,\r\n focusedRowIndex: -1,\r\n focusedColumnIndex: -1\r\n }),\r\n controllers: {\r\n focus: FocusController\r\n },\r\n extenders: {\r\n controllers: {\r\n keyboardNavigation: keyboardNavigation,\r\n editorFactory: editorFactory,\r\n columns: columns,\r\n data: data,\r\n editing: editing\r\n },\r\n views: {\r\n rowsView: rowsView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/focus/m_focus.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n focusModule\r\n} from \"../../../grids/grid_core/focus/m_focus\";\r\nimport gridCore from \"../m_core\";\r\nimport {\r\n createGroupFilter\r\n} from \"../m_utils\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nvar data = Base => class extends(focusModule.extenders.controllers.data(Base)) {\r\n changeRowExpand(path, isRowClick) {\r\n if (this.option(\"focusedRowEnabled\") && Array.isArray(path) && this.isRowExpanded(path)) {\r\n if ((!isRowClick || !this._keyboardNavigationController.isKeyboardEnabled()) && this._isFocusedRowInsideGroup(path)) {\r\n this.option(\"focusedRowKey\", path)\r\n }\r\n }\r\n return super.changeRowExpand(path, isRowClick)\r\n }\r\n _isFocusedRowInsideGroup(path) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRow = rowIndex >= 0 && this.getVisibleRows()[rowIndex];\r\n var groups = this._columnsController.getGroupDataSourceParameters(true);\r\n if (focusedRow) {\r\n for (var i = 0; i < path.length; ++i) {\r\n var getter = compileGetter(groups[i] && groups[i].selector);\r\n if (getter(focusedRow.data) !== path[i]) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _getGroupPath(groupItem, groupCount) {\r\n var groupPath = [];\r\n var items = [groupItem];\r\n while (items && items[0] && groupCount) {\r\n var item = items[0];\r\n if (void 0 !== item.key) {\r\n groupPath.push(item.key)\r\n }\r\n items = item.items;\r\n groupCount--\r\n }\r\n return groupPath\r\n }\r\n _expandGroupByPath(that, groupPath, level) {\r\n var d = new Deferred;\r\n level++;\r\n that.expandRow(groupPath.slice(0, level)).done(() => {\r\n if (level === groupPath.length) {\r\n d.resolve()\r\n } else {\r\n that._expandGroupByPath(that, groupPath, level).done(d.resolve).fail(d.reject)\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n _calculateGlobalRowIndexByGroupedData(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key);\r\n var deferred = new Deferred;\r\n var isGroupKey = Array.isArray(key);\r\n var group = dataSource.group();\r\n if (isGroupKey) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n if (!dataSource._grouping._updatePagingOptions) {\r\n that._calculateGlobalRowIndexByFlatData(key, null, true).done(deferred.resolve).fail(deferred.reject);\r\n return deferred\r\n }\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n group: group\r\n }).done(data => {\r\n if (!data || 0 === data.length || !isDefined(data[0].key) || -1 === data[0].key) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n var groupPath = that._getGroupPath(data[0], group.length);\r\n that._expandGroupByPath(that, groupPath, 0).done(() => {\r\n that._calculateExpandedRowGlobalIndex(deferred, key, groupPath, group)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n _calculateExpandedRowGlobalIndex(deferred, key, groupPath, group) {\r\n var groupFilter = createGroupFilter(groupPath, {\r\n group: group\r\n });\r\n var dataSource = this._dataSource;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrolling = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var pageSize = dataSource.pageSize();\r\n var groupOffset;\r\n dataSource._grouping._updatePagingOptions({\r\n skip: 0,\r\n take: MAX_SAFE_INTEGER\r\n }, (groupInfo, totalOffset) => {\r\n if (equalByValue(groupInfo.path, groupPath)) {\r\n groupOffset = totalOffset\r\n }\r\n });\r\n this._calculateGlobalRowIndexByFlatData(key, groupFilter).done(dataOffset => {\r\n var count;\r\n var groupContinuationCount;\r\n if (dataOffset < 0) {\r\n deferred.resolve(-1);\r\n return\r\n }\r\n var currentPageOffset = groupOffset % pageSize || pageSize;\r\n count = currentPageOffset + dataOffset - groupPath.length;\r\n if (isVirtualScrolling) {\r\n groupContinuationCount = 0\r\n } else {\r\n groupContinuationCount = Math.floor(count / (pageSize - groupPath.length)) * groupPath.length\r\n }\r\n count = groupOffset + dataOffset + groupContinuationCount;\r\n deferred.resolve(count)\r\n }).fail(deferred.reject)\r\n }\r\n};\r\ngridCore.registerModule(\"focus\", _extends(_extends({}, focusModule), {\r\n extenders: _extends(_extends({}, focusModule.extenders), {\r\n controllers: _extends(_extends({}, focusModule.extenders.controllers), {\r\n data: data\r\n })\r\n })\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/m_draggable.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport positionUtils from \"../animation/position\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../core/templates/empty_template\";\r\nimport {\r\n noop,\r\n splitPair\r\n} from \"../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport {\r\n quadToObject\r\n} from \"../core/utils/string\";\r\nimport {\r\n isFunction,\r\n isNumeric,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n value as viewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n end as dragEventEnd,\r\n enter as dragEventEnter,\r\n leave as dragEventLeave,\r\n move as dragEventMove,\r\n start as dragEventStart\r\n} from \"../events/drag\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n addNamespace,\r\n needSkipEvent\r\n} from \"../events/utils/index\";\r\nimport Animator from \"./ui/scroll_view/m_animator\";\r\nvar window = getWindow();\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar DRAGGABLE = \"dxDraggable\";\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventStart, DRAGGABLE);\r\nvar DRAG_EVENT_NAME = addNamespace(dragEventMove, DRAGGABLE);\r\nvar DRAGEND_EVENT_NAME = addNamespace(dragEventEnd, DRAGGABLE);\r\nvar DRAG_ENTER_EVENT_NAME = addNamespace(dragEventEnter, DRAGGABLE);\r\nvar DRAGEND_LEAVE_EVENT_NAME = addNamespace(dragEventLeave, DRAGGABLE);\r\nvar POINTERDOWN_EVENT_NAME = addNamespace(pointerEvents.down, DRAGGABLE);\r\nvar KEYDOWN_EVENT_NAME = addNamespace(KEYDOWN_EVENT, DRAGGABLE);\r\nvar CLONE_CLASS = \"clone\";\r\nvar targetDraggable;\r\nvar sourceDraggable;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar getMousePosition = event => ({\r\n x: event.pageX - $(window).scrollLeft(),\r\n y: event.pageY - $(window).scrollTop()\r\n});\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nclass ScrollHelper {\r\n constructor(orientation, component) {\r\n this._$scrollableAtPointer = null;\r\n this._preventScroll = true;\r\n this._component = component;\r\n if (\"vertical\" === orientation) {\r\n this._scrollValue = \"scrollTop\";\r\n this._overFlowAttr = \"overflowY\";\r\n this._sizeAttr = \"height\";\r\n this._scrollSizeProp = \"scrollHeight\";\r\n this._clientSizeProp = \"clientHeight\";\r\n this._limitProps = {\r\n start: \"top\",\r\n end: \"bottom\"\r\n }\r\n } else {\r\n this._scrollValue = \"scrollLeft\";\r\n this._overFlowAttr = \"overflowX\";\r\n this._sizeAttr = \"width\";\r\n this._scrollSizeProp = \"scrollWidth\";\r\n this._clientSizeProp = \"clientWidth\";\r\n this._limitProps = {\r\n start: \"left\",\r\n end: \"right\"\r\n }\r\n }\r\n }\r\n updateScrollable(elements, mousePosition) {\r\n var isScrollableFound = false;\r\n elements.some(element => {\r\n var $element = $(element);\r\n var isTargetOverOverlayWrapper = $element.hasClass(OVERLAY_WRAPPER_CLASS);\r\n var isTargetOverOverlayContent = $element.hasClass(OVERLAY_CONTENT_CLASS);\r\n if (isTargetOverOverlayWrapper || isTargetOverOverlayContent) {\r\n return true\r\n }\r\n isScrollableFound = this._trySetScrollable(element, mousePosition);\r\n return isScrollableFound\r\n });\r\n if (!isScrollableFound) {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0\r\n }\r\n }\r\n isScrolling() {\r\n return !!this._scrollSpeed\r\n }\r\n isScrollable($element) {\r\n return (\"auto\" === $element.css(this._overFlowAttr) || $element.hasClass(\"dx-scrollable-container\")) && $element.prop(this._scrollSizeProp) > Math.ceil(\"width\" === this._sizeAttr ? getWidth($element) : getHeight($element))\r\n }\r\n _trySetScrollable(element, mousePosition) {\r\n var $element = $(element);\r\n var distanceToBorders;\r\n var sensitivity = this._component.option(\"scrollSensitivity\");\r\n var isScrollable = this.isScrollable($element);\r\n if (isScrollable) {\r\n distanceToBorders = this._calculateDistanceToBorders($element, mousePosition);\r\n if (sensitivity > distanceToBorders[this._limitProps.start]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = -this._calculateScrollSpeed(distanceToBorders[this._limitProps.start]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else if (sensitivity > distanceToBorders[this._limitProps.end]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = this._calculateScrollSpeed(distanceToBorders[this._limitProps.end]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else {\r\n isScrollable = false;\r\n this._preventScroll = false\r\n }\r\n }\r\n return isScrollable\r\n }\r\n _calculateDistanceToBorders($area, mousePosition) {\r\n var area = $area.get(0);\r\n var areaBoundingRect;\r\n if (area) {\r\n areaBoundingRect = getBoundingRect(area);\r\n return {\r\n left: mousePosition.x - areaBoundingRect.left,\r\n top: mousePosition.y - areaBoundingRect.top,\r\n right: areaBoundingRect.right - mousePosition.x,\r\n bottom: areaBoundingRect.bottom - mousePosition.y\r\n }\r\n }\r\n return {}\r\n }\r\n _calculateScrollSpeed(distance) {\r\n var component = this._component;\r\n var sensitivity = component.option(\"scrollSensitivity\");\r\n var maxSpeed = component.option(\"scrollSpeed\");\r\n return Math.ceil(((sensitivity - distance) / sensitivity) ** 2 * maxSpeed)\r\n }\r\n scrollByStep() {\r\n if (this._$scrollableAtPointer && this._scrollSpeed) {\r\n if (this._$scrollableAtPointer.hasClass(\"dx-scrollable-container\")) {\r\n var $scrollable = this._$scrollableAtPointer.closest(\".dx-scrollable\");\r\n var scrollableInstance = $scrollable.data(\"dxScrollable\") || $scrollable.data(\"dxScrollView\");\r\n if (scrollableInstance) {\r\n var nextScrollPosition = scrollableInstance.scrollOffset()[this._limitProps.start] + this._scrollSpeed;\r\n scrollableInstance.scrollTo({\r\n [this._limitProps.start]: nextScrollPosition\r\n })\r\n }\r\n } else {\r\n var _nextScrollPosition = this._$scrollableAtPointer[this._scrollValue]() + this._scrollSpeed;\r\n this._$scrollableAtPointer[this._scrollValue](_nextScrollPosition)\r\n }\r\n var dragMoveArgs = this._component._dragMoveArgs;\r\n if (dragMoveArgs) {\r\n this._component._dragMoveHandler(dragMoveArgs)\r\n }\r\n }\r\n }\r\n reset() {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0;\r\n this._preventScroll = true\r\n }\r\n isOutsideScrollable($scrollable, event) {\r\n if (!$scrollable) {\r\n return false\r\n }\r\n var scrollableSize = getBoundingRect($scrollable.get(0));\r\n var start = scrollableSize[this._limitProps.start];\r\n var size = scrollableSize[this._sizeAttr];\r\n var mousePosition = getMousePosition(event);\r\n var location = \"width\" === this._sizeAttr ? mousePosition.x : mousePosition.y;\r\n return location < start || location > start + size\r\n }\r\n}\r\nvar ScrollAnimator = Animator.inherit({\r\n ctor(strategy) {\r\n this.callBase();\r\n this._strategy = strategy\r\n },\r\n _step() {\r\n var horizontalScrollHelper = this._strategy._horizontalScrollHelper;\r\n var verticalScrollHelper = this._strategy._verticalScrollHelper;\r\n horizontalScrollHelper && horizontalScrollHelper.scrollByStep();\r\n verticalScrollHelper && verticalScrollHelper.scrollByStep()\r\n }\r\n});\r\nvar Draggable = DOMComponent.inherit({\r\n reset: noop,\r\n dragMove: noop,\r\n dragEnter: noop,\r\n dragLeave: noop,\r\n dragEnd(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable._fireRemoveEvent(sourceEvent);\r\n return Deferred().resolve()\r\n },\r\n _fireRemoveEvent: noop,\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n onDragStart: null,\r\n onDragMove: null,\r\n onDragEnd: null,\r\n onDragEnter: null,\r\n onDragLeave: null,\r\n onDragCancel: null,\r\n onCancelByEsc: false,\r\n onDrop: null,\r\n immediate: true,\r\n dragDirection: \"both\",\r\n boundary: void 0,\r\n boundOffset: 0,\r\n allowMoveByClick: false,\r\n itemData: null,\r\n container: void 0,\r\n dragTemplate: void 0,\r\n contentTemplate: \"content\",\r\n handle: \"\",\r\n filter: \"\",\r\n clone: false,\r\n autoScroll: true,\r\n scrollSpeed: 30,\r\n scrollSensitivity: 60,\r\n group: void 0,\r\n data: void 0\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase.apply(this, arguments);\r\n extend(this._optionsByReference, {\r\n component: true,\r\n group: true,\r\n itemData: true,\r\n data: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._attachEventHandlers();\r\n this._scrollAnimator = new ScrollAnimator(this);\r\n this._horizontalScrollHelper = new ScrollHelper(\"horizontal\", this);\r\n this._verticalScrollHelper = new ScrollHelper(\"vertical\", this);\r\n this._initScrollTop = 0;\r\n this._initScrollLeft = 0\r\n },\r\n _normalizeCursorOffset(offset) {\r\n if (isObject(offset)) {\r\n offset = {\r\n h: offset.x,\r\n v: offset.y\r\n }\r\n }\r\n offset = splitPair(offset).map(value => parseFloat(value));\r\n return {\r\n left: offset[0],\r\n top: 1 === offset.length ? offset[0] : offset[1]\r\n }\r\n },\r\n _getNormalizedCursorOffset(offset, options) {\r\n if (isFunction(offset)) {\r\n offset = offset.call(this, options)\r\n }\r\n return this._normalizeCursorOffset(offset)\r\n },\r\n _calculateElementOffset(options) {\r\n var elementOffset;\r\n var dragElementOffset;\r\n var {\r\n event: event\r\n } = options;\r\n var $element = $(options.itemElement);\r\n var $dragElement = $(options.dragElement);\r\n var isCloned = this._dragElementIsCloned();\r\n var cursorOffset = this.option(\"cursorOffset\");\r\n var normalizedCursorOffset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var currentLocate = this._initialLocate = locate($dragElement);\r\n if (isCloned || options.initialOffset || cursorOffset) {\r\n elementOffset = options.initialOffset || $element.offset();\r\n if (cursorOffset) {\r\n normalizedCursorOffset = this._getNormalizedCursorOffset(cursorOffset, options);\r\n if (isFinite(normalizedCursorOffset.left)) {\r\n elementOffset.left = event.pageX\r\n }\r\n if (isFinite(normalizedCursorOffset.top)) {\r\n elementOffset.top = event.pageY\r\n }\r\n }\r\n dragElementOffset = $dragElement.offset();\r\n elementOffset.top -= dragElementOffset.top + (normalizedCursorOffset.top || 0) - currentLocate.top;\r\n elementOffset.left -= dragElementOffset.left + (normalizedCursorOffset.left || 0) - currentLocate.left\r\n }\r\n return elementOffset\r\n },\r\n _initPosition(options) {\r\n var $dragElement = $(options.dragElement);\r\n var elementOffset = this._calculateElementOffset(options);\r\n if (elementOffset) {\r\n this._move(elementOffset, $dragElement)\r\n }\r\n this._startPosition = locate($dragElement)\r\n },\r\n _startAnimator() {\r\n if (!this._scrollAnimator.inProgress()) {\r\n this._scrollAnimator.start()\r\n }\r\n },\r\n _stopAnimator() {\r\n this._scrollAnimator.stop()\r\n },\r\n _addWidgetPrefix(className) {\r\n var componentName = this.NAME;\r\n return dasherize(componentName) + (className ? \"-\".concat(className) : \"\")\r\n },\r\n _getItemsSelector() {\r\n return this.option(\"filter\") || \"\"\r\n },\r\n _$content() {\r\n var $element = this.$element();\r\n var $wrapper = $element.children(\".dx-template-wrapper\");\r\n return $wrapper.length ? $wrapper : $element\r\n },\r\n _attachEventHandlers() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var $element = this._$content();\r\n var itemsSelector = this._getItemsSelector();\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n var data = {\r\n direction: this.option(\"dragDirection\"),\r\n immediate: this.option(\"immediate\"),\r\n checkDropTarget: ($target, event) => {\r\n var targetGroup = this.option(\"group\");\r\n var sourceGroup = this._getSourceDraggable().option(\"group\");\r\n var $scrollable = this._getScrollable($target);\r\n if (this._verticalScrollHelper.isOutsideScrollable($scrollable, event) || this._horizontalScrollHelper.isOutsideScrollable($scrollable, event)) {\r\n return false\r\n }\r\n return sourceGroup && sourceGroup === targetGroup\r\n }\r\n };\r\n if (allowMoveByClick) {\r\n $element = this._getArea();\r\n eventsEngine.on($element, POINTERDOWN_EVENT_NAME, data, this._pointerDownHandler.bind(this))\r\n }\r\n if (\">\" === itemsSelector[0]) {\r\n itemsSelector = itemsSelector.slice(1)\r\n }\r\n eventsEngine.on($element, DRAGSTART_EVENT_NAME, itemsSelector, data, this._dragStartHandler.bind(this));\r\n eventsEngine.on($element, DRAG_EVENT_NAME, data, this._dragMoveHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_EVENT_NAME, data, this._dragEndHandler.bind(this));\r\n eventsEngine.on($element, DRAG_ENTER_EVENT_NAME, data, this._dragEnterHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_LEAVE_EVENT_NAME, data, this._dragLeaveHandler.bind(this));\r\n if (this.option(\"onCancelByEsc\")) {\r\n eventsEngine.on($element, KEYDOWN_EVENT_NAME, this._keydownHandler.bind(this))\r\n }\r\n },\r\n _dragElementIsCloned() {\r\n return this._$dragElement && this._$dragElement.hasClass(this._addWidgetPrefix(CLONE_CLASS))\r\n },\r\n _getDragTemplateArgs($element, $container) {\r\n return {\r\n container: getPublicElement($container),\r\n model: {\r\n itemData: this.option(\"itemData\"),\r\n itemElement: getPublicElement($element)\r\n }\r\n }\r\n },\r\n _createDragElement($element) {\r\n var result = $element;\r\n var clone = this.option(\"clone\");\r\n var $container = this._getContainer();\r\n var template = this.option(\"dragTemplate\");\r\n if (template) {\r\n template = this._getTemplate(template);\r\n result = $(\"<div>\").appendTo($container);\r\n template.render(this._getDragTemplateArgs($element, result))\r\n } else if (clone) {\r\n result = $(\"<div>\").appendTo($container);\r\n $element.clone().css({\r\n width: $element.css(\"width\"),\r\n height: $element.css(\"height\")\r\n }).appendTo(result)\r\n }\r\n return result.toggleClass(this._addWidgetPrefix(CLONE_CLASS), result.get(0) !== $element.get(0)).toggleClass(\"dx-rtl\", this.option(\"rtlEnabled\"))\r\n },\r\n _resetDragElement() {\r\n if (this._dragElementIsCloned()) {\r\n this._$dragElement.remove()\r\n } else {\r\n this._toggleDraggingClass(false)\r\n }\r\n this._$dragElement = null\r\n },\r\n _resetSourceElement() {\r\n this._toggleDragSourceClass(false);\r\n this._$sourceElement = null\r\n },\r\n _detachEventHandlers() {\r\n eventsEngine.off(this._$content(), \".\".concat(DRAGGABLE));\r\n eventsEngine.off(this._getArea(), \".\".concat(DRAGGABLE))\r\n },\r\n _move(position, $element) {\r\n move($element || this._$dragElement, position)\r\n },\r\n _getDraggableElement(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if ($sourceElement) {\r\n return $sourceElement\r\n }\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n if (allowMoveByClick) {\r\n return this.$element()\r\n }\r\n var $target = $(e && e.target);\r\n var itemsSelector = this._getItemsSelector();\r\n if (\">\" === itemsSelector[0]) {\r\n var $items = this._$content().find(itemsSelector);\r\n if (!$items.is($target)) {\r\n $target = $target.closest($items)\r\n }\r\n }\r\n return $target\r\n },\r\n _getSourceElement() {\r\n var draggable = this._getSourceDraggable();\r\n return draggable._$sourceElement\r\n },\r\n _pointerDownHandler(e) {\r\n if (needSkipEvent(e)) {\r\n return\r\n }\r\n var position = {};\r\n var $element = this.$element();\r\n var dragDirection = this.option(\"dragDirection\");\r\n if (\"horizontal\" === dragDirection || \"both\" === dragDirection) {\r\n position.left = e.pageX - $element.offset().left + locate($element).left - getWidth($element) / 2\r\n }\r\n if (\"vertical\" === dragDirection || \"both\" === dragDirection) {\r\n position.top = e.pageY - $element.offset().top + locate($element).top - getHeight($element) / 2\r\n }\r\n this._move(position, $element);\r\n this._getAction(\"onDragMove\")(this._getEventArgs(e))\r\n },\r\n _isValidElement(event, $element) {\r\n var handle = this.option(\"handle\");\r\n var $target = $(event.originalEvent && event.originalEvent.target);\r\n if (handle && !$target.closest(handle).length) {\r\n return false\r\n }\r\n if (!$element.length) {\r\n return false\r\n }\r\n return !$element.is(\".dx-state-disabled, .dx-state-disabled *\")\r\n },\r\n _dragStartHandler(e) {\r\n var $element = this._getDraggableElement(e);\r\n this.dragInProgress = true;\r\n if (!this._isValidElement(e, $element)) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._$sourceElement) {\r\n return\r\n }\r\n var dragStartArgs = this._getDragStartArgs(e, $element);\r\n this._getAction(\"onDragStart\")(dragStartArgs);\r\n if (dragStartArgs.cancel) {\r\n e.cancel = true;\r\n return\r\n }\r\n this.option(\"itemData\", dragStartArgs.itemData);\r\n this._setSourceDraggable();\r\n this._$sourceElement = $element;\r\n var initialOffset = $element.offset();\r\n if (!this._hasClonedDraggable() && this.option(\"autoScroll\")) {\r\n this._initScrollTop = this._getScrollableScrollTop();\r\n this._initScrollLeft = this._getScrollableScrollLeft();\r\n initialOffset = this._getDraggableElementOffset(initialOffset.left, initialOffset.top)\r\n }\r\n var $dragElement = this._$dragElement = this._createDragElement($element);\r\n this._toggleDraggingClass(true);\r\n this._toggleDragSourceClass(true);\r\n this._setGestureCoverCursor($dragElement.children());\r\n var isFixedPosition = \"fixed\" === $dragElement.css(\"position\");\r\n this._initPosition(extend({}, dragStartArgs, {\r\n dragElement: $dragElement.get(0),\r\n initialOffset: isFixedPosition && initialOffset\r\n }));\r\n this._getAction(\"onDraggableElementShown\")(_extends(_extends({}, dragStartArgs), {\r\n dragElement: $dragElement\r\n }));\r\n var $area = this._getArea();\r\n var areaOffset = this._getAreaOffset($area);\r\n var boundOffset = this._getBoundOffset();\r\n var areaWidth = getOuterWidth($area);\r\n var areaHeight = getOuterHeight($area);\r\n var elementWidth = getWidth($dragElement);\r\n var elementHeight = getHeight($dragElement);\r\n var startOffset_left = $dragElement.offset().left - areaOffset.left,\r\n startOffset_top = $dragElement.offset().top - areaOffset.top;\r\n if ($area.length) {\r\n e.maxLeftOffset = startOffset_left - boundOffset.left;\r\n e.maxRightOffset = areaWidth - startOffset_left - elementWidth - boundOffset.right;\r\n e.maxTopOffset = startOffset_top - boundOffset.top;\r\n e.maxBottomOffset = areaHeight - startOffset_top - elementHeight - boundOffset.bottom\r\n }\r\n if (this.option(\"autoScroll\")) {\r\n this._startAnimator()\r\n }\r\n },\r\n _getAreaOffset($area) {\r\n var offset = $area && positionUtils.offset($area);\r\n return offset || {\r\n left: 0,\r\n top: 0\r\n }\r\n },\r\n _toggleDraggingClass(value) {\r\n this._$dragElement && this._$dragElement.toggleClass(this._addWidgetPrefix(\"dragging\"), value)\r\n },\r\n _toggleDragSourceClass(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source\"), value)\r\n },\r\n _setGestureCoverCursor($element) {\r\n $(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", $element.css(\"cursor\"))\r\n },\r\n _getBoundOffset() {\r\n var boundOffset = this.option(\"boundOffset\");\r\n if (isFunction(boundOffset)) {\r\n boundOffset = boundOffset.call(this)\r\n }\r\n return quadToObject(boundOffset)\r\n },\r\n _getArea() {\r\n var area = this.option(\"boundary\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n return $(area)\r\n },\r\n _getContainer() {\r\n var container = this.option(\"container\");\r\n if (void 0 === container) {\r\n container = viewPort()\r\n }\r\n return $(container)\r\n },\r\n _getDraggableElementOffset(initialOffsetX, initialOffsetY) {\r\n var _a, _b, _c, _d;\r\n var initScrollTop = this._initScrollTop;\r\n var initScrollLeft = this._initScrollLeft;\r\n var scrollTop = this._getScrollableScrollTop();\r\n var scrollLeft = this._getScrollableScrollLeft();\r\n var elementPosition = $(this.element()).css(\"position\");\r\n var isFixedPosition = \"fixed\" === elementPosition;\r\n var result = {\r\n left: (null !== (_b = null === (_a = this._startPosition) || void 0 === _a ? void 0 : _a.left) && void 0 !== _b ? _b : 0) + initialOffsetX,\r\n top: (null !== (_d = null === (_c = this._startPosition) || void 0 === _c ? void 0 : _c.top) && void 0 !== _d ? _d : 0) + initialOffsetY\r\n };\r\n if (isFixedPosition || this._hasClonedDraggable()) {\r\n return result\r\n }\r\n return {\r\n left: isNumeric(scrollLeft) ? result.left + scrollLeft - initScrollLeft : result.left,\r\n top: isNumeric(scrollTop) ? result.top + scrollTop - initScrollTop : result.top\r\n }\r\n },\r\n _hasClonedDraggable() {\r\n return this.option(\"clone\") || this.option(\"dragTemplate\")\r\n },\r\n _dragMoveHandler(e) {\r\n this._dragMoveArgs = e;\r\n if (!this._$dragElement) {\r\n e.cancel = true;\r\n return\r\n }\r\n var offset = this._getDraggableElementOffset(e.offset.x, e.offset.y);\r\n this._move(offset);\r\n this._updateScrollable(e);\r\n var eventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragMove\")(eventArgs);\r\n if (true === eventArgs.cancel) {\r\n return\r\n }\r\n var targetDraggable = this._getTargetDraggable();\r\n targetDraggable.dragMove(e, scrollBy)\r\n },\r\n _updateScrollable(e) {\r\n if (this.option(\"autoScroll\")) {\r\n var mousePosition = getMousePosition(e);\r\n var allObjects = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.$element().get(0));\r\n this._verticalScrollHelper.updateScrollable(allObjects, mousePosition);\r\n this._horizontalScrollHelper.updateScrollable(allObjects, mousePosition)\r\n }\r\n },\r\n _getScrollable($element) {\r\n var $scrollable;\r\n $element.parents().toArray().some(parent => {\r\n var $parent = $(parent);\r\n if (this._horizontalScrollHelper.isScrollable($parent) || this._verticalScrollHelper.isScrollable($parent)) {\r\n $scrollable = $parent;\r\n return true\r\n }\r\n return false\r\n });\r\n return $scrollable\r\n },\r\n _getScrollableScrollTop() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this._getScrollable($(this.element()))) || void 0 === _a ? void 0 : _a.scrollTop()) && void 0 !== _b ? _b : 0\r\n },\r\n _getScrollableScrollLeft() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this._getScrollable($(this.element()))) || void 0 === _a ? void 0 : _a.scrollLeft()) && void 0 !== _b ? _b : 0\r\n },\r\n _defaultActionArgs() {\r\n var args = this.callBase.apply(this, arguments);\r\n var component = this.option(\"component\");\r\n if (component) {\r\n args.component = component;\r\n args.element = component.element()\r\n }\r\n return args\r\n },\r\n _getEventArgs(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return {\r\n event: e,\r\n itemData: sourceDraggable.option(\"itemData\"),\r\n itemElement: getPublicElement(sourceDraggable._$sourceElement),\r\n fromComponent: sourceDraggable.option(\"component\") || sourceDraggable,\r\n toComponent: targetDraggable.option(\"component\") || targetDraggable,\r\n fromData: sourceDraggable.option(\"data\"),\r\n toData: targetDraggable.option(\"data\")\r\n }\r\n },\r\n _getDragStartArgs(e, $itemElement) {\r\n var args = this._getEventArgs(e);\r\n return {\r\n event: args.event,\r\n itemData: args.itemData,\r\n itemElement: $itemElement,\r\n fromData: args.fromData\r\n }\r\n },\r\n _revertItemToInitialPosition() {\r\n !this._dragElementIsCloned() && this._move(this._initialLocate, this._$sourceElement)\r\n },\r\n _dragEndHandler(e) {\r\n var d = Deferred();\r\n var dragEndEventArgs = this._getEventArgs(e);\r\n var dropEventArgs = this._getEventArgs(e);\r\n var targetDraggable = this._getTargetDraggable();\r\n var needRevertPosition = true;\r\n this.dragInProgress = false;\r\n try {\r\n this._getAction(\"onDragEnd\")(dragEndEventArgs)\r\n } finally {\r\n when(fromPromise(dragEndEventArgs.cancel)).done(cancel => {\r\n if (!cancel) {\r\n if (targetDraggable !== this) {\r\n targetDraggable._getAction(\"onDrop\")(dropEventArgs)\r\n }\r\n if (!dropEventArgs.cancel) {\r\n needRevertPosition = false;\r\n when(fromPromise(targetDraggable.dragEnd(dragEndEventArgs))).always(d.resolve);\r\n return\r\n }\r\n }\r\n d.resolve()\r\n }).fail(d.resolve);\r\n d.done(() => {\r\n if (needRevertPosition) {\r\n this._revertItemToInitialPosition()\r\n }\r\n this._resetDragOptions(targetDraggable)\r\n })\r\n }\r\n },\r\n _isTargetOverAnotherDraggable(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (this === sourceDraggable) {\r\n return false\r\n }\r\n var $dragElement = sourceDraggable._$dragElement;\r\n var $sourceDraggableElement = sourceDraggable.$element();\r\n var $targetDraggableElement = this.$element();\r\n var mousePosition = getMousePosition(e);\r\n var elements = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.element());\r\n var firstWidgetElement = elements.filter(element => {\r\n var $element = $(element);\r\n if ($element.hasClass(this._addWidgetPrefix())) {\r\n return !$element.closest($dragElement).length\r\n }\r\n return false\r\n })[0];\r\n var $sourceElement = this._getSourceElement();\r\n var isTargetOverItself = firstWidgetElement === $sourceDraggableElement.get(0);\r\n var isTargetOverNestedDraggable = $(firstWidgetElement).closest($sourceElement).length;\r\n return !firstWidgetElement || firstWidgetElement === $targetDraggableElement.get(0) && !isTargetOverItself && !isTargetOverNestedDraggable\r\n },\r\n _dragEnterHandler(e) {\r\n this._fireDragEnterEvent(e);\r\n if (this._isTargetOverAnotherDraggable(e)) {\r\n this._setTargetDraggable()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragEnter(e)\r\n },\r\n _dragLeaveHandler(e) {\r\n this._fireDragLeaveEvent(e);\r\n this._resetTargetDraggable();\r\n if (this !== this._getSourceDraggable()) {\r\n this.reset()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragLeave(e)\r\n },\r\n _keydownHandler(e) {\r\n if (this.dragInProgress && \"Escape\" === e.key) {\r\n this._keydownEscapeHandler(e)\r\n }\r\n },\r\n _keydownEscapeHandler(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if (!$sourceElement) {\r\n return\r\n }\r\n var dragCancelEventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragCancel\")(dragCancelEventArgs);\r\n if (dragCancelEventArgs.cancel) {\r\n return\r\n }\r\n this.dragInProgress = false;\r\n null === sourceDraggable || void 0 === sourceDraggable ? void 0 : sourceDraggable._toggleDraggingClass(false);\r\n this._detachEventHandlers();\r\n this._revertItemToInitialPosition();\r\n var targetDraggable = this._getTargetDraggable();\r\n this._resetDragOptions(targetDraggable);\r\n this._attachEventHandlers()\r\n },\r\n _getAction(name) {\r\n return this[\"_\".concat(name, \"Action\")] || this._createActionByOption(name)\r\n },\r\n _getAnonymousTemplateName: () => ANONYMOUS_TEMPLATE_NAME,\r\n _initTemplates() {\r\n if (!this.option(\"contentTemplate\")) {\r\n return\r\n }\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render() {\r\n this.callBase();\r\n this.$element().addClass(this._addWidgetPrefix());\r\n var transclude = this._templateManager.anonymousTemplateName === this.option(\"contentTemplate\");\r\n var template = this._getTemplateByOption(\"contentTemplate\");\r\n if (template) {\r\n $(template.render({\r\n container: this.element(),\r\n transclude: transclude\r\n }))\r\n }\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"onDragStart\":\r\n case \"onDragMove\":\r\n case \"onDragEnd\":\r\n case \"onDrop\":\r\n case \"onDragEnter\":\r\n case \"onDragLeave\":\r\n case \"onDragCancel\":\r\n case \"onDraggableElementShown\":\r\n this[\"_\".concat(name, \"Action\")] = this._createActionByOption(name);\r\n break;\r\n case \"dragTemplate\":\r\n case \"contentTemplate\":\r\n case \"container\":\r\n case \"clone\":\r\n break;\r\n case \"allowMoveByClick\":\r\n case \"dragDirection\":\r\n case \"disabled\":\r\n case \"boundary\":\r\n case \"filter\":\r\n case \"immediate\":\r\n this._resetDragElement();\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"onCancelByEsc\":\r\n this._keydownHandler();\r\n break;\r\n case \"autoScroll\":\r\n this._verticalScrollHelper.reset();\r\n this._horizontalScrollHelper.reset();\r\n break;\r\n case \"scrollSensitivity\":\r\n case \"scrollSpeed\":\r\n case \"boundOffset\":\r\n case \"handle\":\r\n case \"group\":\r\n case \"data\":\r\n case \"itemData\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getTargetDraggable() {\r\n return targetDraggable || this\r\n },\r\n _getSourceDraggable() {\r\n return sourceDraggable || this\r\n },\r\n _setTargetDraggable() {\r\n var currentGroup = this.option(\"group\");\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (currentGroup && currentGroup === sourceDraggable.option(\"group\")) {\r\n targetDraggable = this\r\n }\r\n },\r\n _setSourceDraggable() {\r\n sourceDraggable = this\r\n },\r\n _resetSourceDraggable() {\r\n sourceDraggable = null\r\n },\r\n _resetTargetDraggable() {\r\n targetDraggable = null\r\n },\r\n _resetDragOptions(targetDraggable) {\r\n this.reset();\r\n targetDraggable.reset();\r\n this._stopAnimator();\r\n this._horizontalScrollHelper.reset();\r\n this._verticalScrollHelper.reset();\r\n this._resetDragElement();\r\n this._resetSourceElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable()\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._detachEventHandlers();\r\n this._resetDragElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable();\r\n this._$sourceElement = null;\r\n this._stopAnimator()\r\n },\r\n _fireDragEnterEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragEnter\")(args)\r\n },\r\n _fireDragLeaveEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragLeave\")(args)\r\n }\r\n});\r\nregisterComponent(DRAGGABLE, Draggable);\r\nexport default Draggable;\r\n","/**\r\n * DevExtreme (esm/__internal/m_sortable.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport Draggable from \"./m_draggable\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nvar window = getWindow();\r\nvar SORTABLE = \"dxSortable\";\r\nvar PLACEHOLDER_CLASS = \"placeholder\";\r\nvar CLONE_CLASS = \"clone\";\r\nvar isElementVisible = itemElement => $(itemElement).is(\":visible\");\r\nvar animate = (element, config) => {\r\n var _a, _b;\r\n if (!element) {\r\n return\r\n }\r\n var left = (null === (_a = config.to) || void 0 === _a ? void 0 : _a.left) || 0;\r\n var top = (null === (_b = config.to) || void 0 === _b ? void 0 : _b.top) || 0;\r\n element.style.transform = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\r\n element.style.transition = fx.off ? \"\" : \"transform \".concat(config.duration, \"ms \").concat(config.easing)\r\n};\r\nvar stopAnimation = element => {\r\n if (!element) {\r\n return\r\n }\r\n element.style.transform = \"\";\r\n element.style.transition = \"\"\r\n};\r\n\r\nfunction getScrollableBoundary($scrollable) {\r\n var offset = $scrollable.offset();\r\n var {\r\n style: style\r\n } = $scrollable[0];\r\n var paddingLeft = parseFloat(style.paddingLeft) || 0;\r\n var paddingRight = parseFloat(style.paddingRight) || 0;\r\n var paddingTop = parseFloat(style.paddingTop) || 0;\r\n var width = $scrollable[0].clientWidth - (paddingLeft + paddingRight);\r\n var height = getHeight($scrollable);\r\n var left = offset.left + paddingLeft;\r\n var top = offset.top + paddingTop;\r\n return {\r\n left: left,\r\n right: left + width,\r\n top: top,\r\n bottom: top + height\r\n }\r\n}\r\nvar Sortable = Draggable.inherit({\r\n _init() {\r\n this.callBase();\r\n this._sourceScrollHandler = this._handleSourceScroll.bind(this);\r\n this._sourceScrollableInfo = null\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n clone: true,\r\n filter: \"> *\",\r\n itemOrientation: \"vertical\",\r\n dropFeedbackMode: \"push\",\r\n allowDropInsideItem: false,\r\n allowReordering: true,\r\n moveItemOnDrop: false,\r\n onDragChange: null,\r\n onAdd: null,\r\n onRemove: null,\r\n onReorder: null,\r\n onPlaceholderPrepared: null,\r\n animation: {\r\n type: \"slide\",\r\n duration: 300,\r\n easing: \"ease\"\r\n },\r\n fromIndex: null,\r\n toIndex: null,\r\n dropInsideItem: false,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n offset: 0,\r\n autoUpdate: false,\r\n draggableElementSize: 0\r\n })\r\n },\r\n reset() {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null,\r\n fromIndex: null,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n draggableElementSize: 0\r\n });\r\n if (this._$placeholderElement) {\r\n this._$placeholderElement.remove()\r\n }\r\n this._$placeholderElement = null;\r\n if (!this._isIndicateMode() && this._$modifiedItem) {\r\n this._$modifiedItem.css(\"marginBottom\", this._modifiedItemMargin);\r\n this._$modifiedItem = null\r\n }\r\n },\r\n _getPrevVisibleItem: (items, index) => items.slice(0, index).reverse().filter(isElementVisible)[0],\r\n _dragStartHandler(e) {\r\n this.callBase.apply(this, arguments);\r\n if (true === e.cancel) {\r\n return\r\n }\r\n var $sourceElement = this._getSourceElement();\r\n this._updateItemPoints();\r\n this._subscribeToSourceScroll(e);\r\n this.option(\"fromIndex\", this._getElementIndex($sourceElement));\r\n this.option(\"fromIndexOffset\", this.option(\"offset\"))\r\n },\r\n _subscribeToSourceScroll(e) {\r\n var $scrollable = this._getScrollable($(e.target));\r\n if ($scrollable) {\r\n this._sourceScrollableInfo = {\r\n element: $scrollable,\r\n scrollLeft: $scrollable.scrollLeft(),\r\n scrollTop: $scrollable.scrollTop()\r\n };\r\n eventsEngine.off($scrollable, \"scroll\", this._sourceScrollHandler);\r\n eventsEngine.on($scrollable, \"scroll\", this._sourceScrollHandler)\r\n }\r\n },\r\n _unsubscribeFromSourceScroll() {\r\n if (this._sourceScrollableInfo) {\r\n eventsEngine.off(this._sourceScrollableInfo.element, \"scroll\", this._sourceScrollHandler);\r\n this._sourceScrollableInfo = null\r\n }\r\n },\r\n _handleSourceScroll(e) {\r\n var sourceScrollableInfo = this._sourceScrollableInfo;\r\n if (sourceScrollableInfo) {\r\n [\"scrollLeft\", \"scrollTop\"].forEach(scrollProp => {\r\n if (e.target[scrollProp] !== sourceScrollableInfo[scrollProp]) {\r\n var scrollBy = e.target[scrollProp] - sourceScrollableInfo[scrollProp];\r\n this._correctItemPoints(scrollBy);\r\n this._movePlaceholder();\r\n sourceScrollableInfo[scrollProp] = e.target[scrollProp]\r\n }\r\n })\r\n }\r\n },\r\n _dragEnterHandler(e) {\r\n this.callBase.apply(this, arguments);\r\n if (this === this._getSourceDraggable()) {\r\n return\r\n }\r\n this._subscribeToSourceScroll(e);\r\n this._updateItemPoints();\r\n this.option(\"fromIndex\", -1);\r\n if (!this._isIndicateMode()) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n var lastItemPoint = itemPoints[itemPoints.length - 1];\r\n if (lastItemPoint) {\r\n var $element = this.$element();\r\n var $sourceElement = this._getSourceElement();\r\n var isVertical = this._isVerticalOrientation();\r\n var sourceElementSize = isVertical ? getOuterHeight($sourceElement, true) : getOuterWidth($sourceElement, true);\r\n var scrollSize = $element.get(0)[isVertical ? \"scrollHeight\" : \"scrollWidth\"];\r\n var scrollPosition = $element.get(0)[isVertical ? \"scrollTop\" : \"scrollLeft\"];\r\n var positionProp = isVertical ? \"top\" : \"left\";\r\n var lastPointPosition = lastItemPoint[positionProp];\r\n var elementPosition = $element.offset()[positionProp];\r\n var freeSize = elementPosition + scrollSize - scrollPosition - lastPointPosition;\r\n if (freeSize < sourceElementSize) {\r\n if (isVertical) {\r\n var items = this._getItems();\r\n var $lastItem = $(this._getPrevVisibleItem(items));\r\n this._$modifiedItem = $lastItem;\r\n this._modifiedItemMargin = $lastItem.get(0).style.marginBottom;\r\n $lastItem.css(\"marginBottom\", sourceElementSize - freeSize);\r\n var $sortable = $lastItem.closest(\".dx-sortable\");\r\n var sortable = $sortable.data(\"dxScrollable\") || $sortable.data(\"dxScrollView\");\r\n sortable && sortable.update()\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _dragLeaveHandler() {\r\n this.callBase.apply(this, arguments);\r\n if (this !== this._getSourceDraggable()) {\r\n this._unsubscribeFromSourceScroll()\r\n }\r\n },\r\n dragEnter() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", -1)\r\n }\r\n },\r\n dragLeave() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", this.option(\"fromIndex\"))\r\n }\r\n },\r\n _allowDrop(event) {\r\n var targetDraggable = this._getTargetDraggable();\r\n var $targetDraggable = targetDraggable.$element();\r\n var $scrollable = this._getScrollable($targetDraggable);\r\n if ($scrollable) {\r\n var {\r\n left: left,\r\n right: right,\r\n top: top,\r\n bottom: bottom\r\n } = getScrollableBoundary($scrollable);\r\n var toIndex = this.option(\"toIndex\");\r\n var itemPoints = this.option(\"itemPoints\");\r\n var itemPoint = null === itemPoints || void 0 === itemPoints ? void 0 : itemPoints.filter(item => item.index === toIndex)[0];\r\n if (itemPoint && void 0 !== itemPoint.top) {\r\n var isVertical = this._isVerticalOrientation();\r\n if (isVertical) {\r\n return top <= Math.ceil(itemPoint.top) && Math.floor(itemPoint.top) <= bottom\r\n }\r\n return left <= Math.ceil(itemPoint.left) && Math.floor(itemPoint.left) <= right\r\n }\r\n }\r\n return true\r\n },\r\n dragEnd(sourceEvent) {\r\n this._unsubscribeFromSourceScroll();\r\n var $sourceElement = this._getSourceElement();\r\n var sourceDraggable = this._getSourceDraggable();\r\n var isSourceDraggable = sourceDraggable.NAME !== this.NAME;\r\n var toIndex = this.option(\"toIndex\");\r\n var {\r\n event: event\r\n } = sourceEvent;\r\n var allowDrop = this._allowDrop(event);\r\n if (null !== toIndex && toIndex >= 0 && allowDrop) {\r\n var cancelAdd;\r\n var cancelRemove;\r\n if (sourceDraggable !== this) {\r\n cancelAdd = this._fireAddEvent(event);\r\n if (!cancelAdd) {\r\n cancelRemove = this._fireRemoveEvent(event)\r\n }\r\n }\r\n if (isSourceDraggable) {\r\n resetPosition($sourceElement)\r\n }\r\n if (this.option(\"moveItemOnDrop\")) {\r\n !cancelAdd && this._moveItem($sourceElement, toIndex, cancelRemove)\r\n }\r\n if (sourceDraggable === this) {\r\n return this._fireReorderEvent(event)\r\n }\r\n }\r\n return Deferred().resolve()\r\n },\r\n dragMove(e) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (!itemPoints) {\r\n return\r\n }\r\n var isVertical = this._isVerticalOrientation();\r\n var axisName = isVertical ? \"top\" : \"left\";\r\n var cursorPosition = isVertical ? e.pageY : e.pageX;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var itemPoint;\r\n for (var i = itemPoints.length - 1; i >= 0; i--) {\r\n var centerPosition = itemPoints[i + 1] && (itemPoints[i][axisName] + itemPoints[i + 1][axisName]) / 2;\r\n if ((!isVertical && rtlEnabled ? cursorPosition > centerPosition : centerPosition > cursorPosition) || void 0 === centerPosition) {\r\n itemPoint = itemPoints[i]\r\n } else {\r\n break\r\n }\r\n }\r\n if (itemPoint) {\r\n this._updatePlaceholderPosition(e, itemPoint);\r\n if (this._verticalScrollHelper.isScrolling() && this._isIndicateMode()) {\r\n this._movePlaceholder()\r\n }\r\n }\r\n },\r\n _isIndicateMode() {\r\n return \"indicate\" === this.option(\"dropFeedbackMode\") || this.option(\"allowDropInsideItem\")\r\n },\r\n _createPlaceholder() {\r\n var $placeholderContainer;\r\n if (this._isIndicateMode()) {\r\n $placeholderContainer = $(\"<div>\").addClass(this._addWidgetPrefix(PLACEHOLDER_CLASS)).insertBefore(this._getSourceDraggable()._$dragElement)\r\n }\r\n this._$placeholderElement = $placeholderContainer;\r\n return $placeholderContainer\r\n },\r\n _getItems() {\r\n var itemsSelector = this._getItemsSelector();\r\n return this._$content().find(itemsSelector).not(\".\".concat(this._addWidgetPrefix(PLACEHOLDER_CLASS))).not(\".\".concat(this._addWidgetPrefix(CLONE_CLASS))).toArray()\r\n },\r\n _allowReordering() {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return sourceDraggable !== targetDraggable || this.option(\"allowReordering\")\r\n },\r\n _isValidPoint(visibleIndex, draggableVisibleIndex, dropInsideItem) {\r\n var allowDropInsideItem = this.option(\"allowDropInsideItem\");\r\n var allowReordering = dropInsideItem || this._allowReordering();\r\n if (!allowReordering && (0 !== visibleIndex || !allowDropInsideItem)) {\r\n return false\r\n }\r\n if (!this._isIndicateMode()) {\r\n return true\r\n }\r\n return -1 === draggableVisibleIndex || visibleIndex !== draggableVisibleIndex && (dropInsideItem || visibleIndex !== draggableVisibleIndex + 1)\r\n },\r\n _getItemPoints() {\r\n var result = [];\r\n var $item;\r\n var offset;\r\n var itemWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isVertical = this._isVerticalOrientation();\r\n var itemElements = this._getItems();\r\n var visibleItemElements = itemElements.filter(isElementVisible);\r\n var visibleItemCount = visibleItemElements.length;\r\n var $draggableItem = this._getDraggableElement();\r\n var draggableVisibleIndex = visibleItemElements.indexOf($draggableItem.get(0));\r\n if (visibleItemCount) {\r\n for (var i = 0; i <= visibleItemCount; i++) {\r\n var needCorrectLeftPosition = !isVertical && rtlEnabled ^ i === visibleItemCount;\r\n var needCorrectTopPosition = isVertical && i === visibleItemCount;\r\n if (i < visibleItemCount) {\r\n $item = $(visibleItemElements[i]);\r\n offset = $item.offset();\r\n itemWidth = getOuterWidth($item)\r\n }\r\n result.push({\r\n dropInsideItem: false,\r\n left: offset.left + (needCorrectLeftPosition ? itemWidth : 0),\r\n top: offset.top + (needCorrectTopPosition ? result[i - 1].height : 0),\r\n index: i === visibleItemCount ? itemElements.length : itemElements.indexOf($item.get(0)),\r\n $item: $item,\r\n width: getOuterWidth($item),\r\n height: getOuterHeight($item),\r\n isValid: this._isValidPoint(i, draggableVisibleIndex)\r\n })\r\n }\r\n if (this.option(\"allowDropInsideItem\")) {\r\n var points = result;\r\n result = [];\r\n for (var _i = 0; _i < points.length; _i++) {\r\n result.push(points[_i]);\r\n if (points[_i + 1]) {\r\n result.push(extend({}, points[_i], {\r\n dropInsideItem: true,\r\n top: Math.floor((points[_i].top + points[_i + 1].top) / 2),\r\n left: Math.floor((points[_i].left + points[_i + 1].left) / 2),\r\n isValid: this._isValidPoint(_i, draggableVisibleIndex, true)\r\n }))\r\n }\r\n }\r\n }\r\n } else {\r\n result.push({\r\n dropInsideItem: false,\r\n index: 0,\r\n isValid: true\r\n })\r\n }\r\n return result\r\n },\r\n _updateItemPoints(forceUpdate) {\r\n if (forceUpdate || this.option(\"autoUpdate\") || !this.option(\"itemPoints\")) {\r\n this.option(\"itemPoints\", this._getItemPoints())\r\n }\r\n },\r\n _correctItemPoints(scrollBy) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (scrollBy && itemPoints && !this.option(\"autoUpdate\")) {\r\n var isVertical = this._isVerticalOrientation();\r\n var positionPropName = isVertical ? \"top\" : \"left\";\r\n itemPoints.forEach(itemPoint => {\r\n itemPoint[positionPropName] -= scrollBy\r\n })\r\n }\r\n },\r\n _getElementIndex($itemElement) {\r\n return this._getItems().indexOf($itemElement.get(0))\r\n },\r\n _getDragTemplateArgs($element) {\r\n var args = this.callBase.apply(this, arguments);\r\n args.model.fromIndex = this._getElementIndex($element);\r\n return args\r\n },\r\n _togglePlaceholder(value) {\r\n this._$placeholderElement && this._$placeholderElement.toggle(value)\r\n },\r\n _isVerticalOrientation() {\r\n return \"vertical\" === this.option(\"itemOrientation\")\r\n },\r\n _normalizeToIndex(toIndex, skipOffsetting) {\r\n var isAnotherDraggable = this._getSourceDraggable() !== this._getTargetDraggable();\r\n var fromIndex = this._getActualFromIndex();\r\n if (null === toIndex) {\r\n return fromIndex\r\n }\r\n return Math.max(isAnotherDraggable || fromIndex >= toIndex || skipOffsetting ? toIndex : toIndex - 1, 0)\r\n },\r\n _updatePlaceholderPosition(e, itemPoint) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var toIndex = this._normalizeToIndex(itemPoint.index, itemPoint.dropInsideItem);\r\n var eventArgs = extend(this._getEventArgs(e), {\r\n toIndex: toIndex,\r\n dropInsideItem: itemPoint.dropInsideItem\r\n });\r\n itemPoint.isValid && this._getAction(\"onDragChange\")(eventArgs);\r\n if (eventArgs.cancel || !itemPoint.isValid) {\r\n if (!itemPoint.isValid) {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null\r\n })\r\n }\r\n return\r\n }\r\n this.option({\r\n dropInsideItem: itemPoint.dropInsideItem,\r\n toIndex: itemPoint.index\r\n });\r\n this._getAction(\"onPlaceholderPrepared\")(extend(this._getEventArgs(e), {\r\n placeholderElement: getPublicElement(this._$placeholderElement),\r\n dragElement: getPublicElement(sourceDraggable._$dragElement)\r\n }));\r\n this._updateItemPoints()\r\n },\r\n _makeWidthCorrection($item, width) {\r\n this._$scrollable = this._getScrollable($item);\r\n if (this._$scrollable) {\r\n var scrollableWidth = getWidth(this._$scrollable);\r\n var overflowLeft = this._$scrollable.offset().left - $item.offset().left;\r\n var overflowRight = getOuterWidth($item) - overflowLeft - scrollableWidth;\r\n if (overflowLeft > 0) {\r\n width -= overflowLeft\r\n }\r\n if (overflowRight > 0) {\r\n width -= overflowRight\r\n }\r\n }\r\n return width\r\n },\r\n _updatePlaceholderSizes($placeholderElement, itemElement) {\r\n var dropInsideItem = this.option(\"dropInsideItem\");\r\n var $item = $(itemElement);\r\n var isVertical = this._isVerticalOrientation();\r\n var width = \"\";\r\n var height = \"\";\r\n $placeholderElement.toggleClass(this._addWidgetPrefix(\"placeholder-inside\"), dropInsideItem);\r\n if (isVertical || dropInsideItem) {\r\n width = getOuterWidth($item)\r\n }\r\n if (!isVertical || dropInsideItem) {\r\n height = getOuterHeight($item)\r\n }\r\n width = this._makeWidthCorrection($item, width);\r\n $placeholderElement.css({\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _moveItem($itemElement, index, cancelRemove) {\r\n var $prevTargetItemElement;\r\n var $itemElements = this._getItems();\r\n var $targetItemElement = $itemElements[index];\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (cancelRemove) {\r\n $itemElement = $itemElement.clone();\r\n sourceDraggable._toggleDragSourceClass(false, $itemElement)\r\n }\r\n if (!$targetItemElement) {\r\n $prevTargetItemElement = $itemElements[index - 1]\r\n }\r\n this._moveItemCore($itemElement, $targetItemElement, $prevTargetItemElement)\r\n },\r\n _moveItemCore($targetItem, item, prevItem) {\r\n if (!item && !prevItem) {\r\n $targetItem.appendTo(this.$element())\r\n } else if (prevItem) {\r\n $targetItem.insertAfter($(prevItem))\r\n } else {\r\n $targetItem.insertBefore($(item))\r\n }\r\n },\r\n _getDragStartArgs(e, $itemElement) {\r\n return extend(this.callBase.apply(this, arguments), {\r\n fromIndex: this._getElementIndex($itemElement)\r\n })\r\n },\r\n _getEventArgs(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n var dropInsideItem = targetDraggable.option(\"dropInsideItem\");\r\n return extend(this.callBase.apply(this, arguments), {\r\n fromIndex: sourceDraggable.option(\"fromIndex\"),\r\n toIndex: this._normalizeToIndex(targetDraggable.option(\"toIndex\"), dropInsideItem),\r\n dropInsideItem: dropInsideItem\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"onDragChange\":\r\n case \"onPlaceholderPrepared\":\r\n case \"onAdd\":\r\n case \"onRemove\":\r\n case \"onReorder\":\r\n this[\"_\".concat(name, \"Action\")] = this._createActionByOption(name);\r\n break;\r\n case \"itemOrientation\":\r\n case \"allowDropInsideItem\":\r\n case \"moveItemOnDrop\":\r\n case \"dropFeedbackMode\":\r\n case \"itemPoints\":\r\n case \"animation\":\r\n case \"allowReordering\":\r\n case \"fromIndexOffset\":\r\n case \"offset\":\r\n case \"draggableElementSize\":\r\n case \"autoUpdate\":\r\n break;\r\n case \"fromIndex\":\r\n [false, true].forEach(isDragSource => {\r\n var fromIndex = isDragSource ? args.value : args.previousValue;\r\n if (null !== fromIndex) {\r\n var $fromElement = $(this._getItems()[fromIndex]);\r\n this._toggleDragSourceClass(isDragSource, $fromElement)\r\n }\r\n });\r\n break;\r\n case \"dropInsideItem\":\r\n this._optionChangedDropInsideItem(args);\r\n break;\r\n case \"toIndex\":\r\n this._optionChangedToIndex(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _optionChangedDropInsideItem() {\r\n if (this._isIndicateMode() && this._$placeholderElement) {\r\n this._movePlaceholder()\r\n }\r\n },\r\n _isPositionVisible(position) {\r\n var $element = this.$element();\r\n var scrollContainer;\r\n if (\"hidden\" !== $element.css(\"overflow\")) {\r\n scrollContainer = $element.get(0)\r\n } else {\r\n $element.parents().each((function() {\r\n if (\"visible\" !== $(this).css(\"overflow\")) {\r\n scrollContainer = this;\r\n return false\r\n }\r\n return\r\n }))\r\n }\r\n if (scrollContainer) {\r\n var clientRect = getBoundingRect(scrollContainer);\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var start = isVerticalOrientation ? \"top\" : \"left\";\r\n var end = isVerticalOrientation ? \"bottom\" : \"right\";\r\n var pageOffset = isVerticalOrientation ? window.pageYOffset : window.pageXOffset;\r\n if (position[start] < clientRect[start] + pageOffset || position[start] > clientRect[end] + pageOffset) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _optionChangedToIndex(args) {\r\n var toIndex = args.value;\r\n if (this._isIndicateMode()) {\r\n var showPlaceholder = null !== toIndex && toIndex >= 0;\r\n this._togglePlaceholder(showPlaceholder);\r\n if (showPlaceholder) {\r\n this._movePlaceholder()\r\n }\r\n } else {\r\n this._moveItems(args.previousValue, args.value, args.fullUpdate)\r\n }\r\n },\r\n update() {\r\n if (null === this.option(\"fromIndex\") && null === this.option(\"toIndex\")) {\r\n return\r\n }\r\n this._updateItemPoints(true);\r\n this._updateDragSourceClass();\r\n var toIndex = this.option(\"toIndex\");\r\n this._optionChangedToIndex({\r\n value: toIndex,\r\n fullUpdate: true\r\n })\r\n },\r\n _updateDragSourceClass() {\r\n var fromIndex = this._getActualFromIndex();\r\n var $fromElement = $(this._getItems()[fromIndex]);\r\n if ($fromElement.length) {\r\n this._$sourceElement = $fromElement;\r\n this._toggleDragSourceClass(true, $fromElement)\r\n }\r\n },\r\n _makeLeftCorrection(left) {\r\n var $scrollable = this._$scrollable;\r\n if ($scrollable && this._isVerticalOrientation()) {\r\n var overflowLeft = $scrollable.offset().left - left;\r\n if (overflowLeft > 0) {\r\n left += overflowLeft\r\n }\r\n }\r\n return left\r\n },\r\n _movePlaceholder() {\r\n var $placeholderElement = this._$placeholderElement || this._createPlaceholder();\r\n if (!$placeholderElement) {\r\n return\r\n }\r\n var items = this._getItems();\r\n var toIndex = this.option(\"toIndex\");\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var dropInsideItem = this.option(\"dropInsideItem\");\r\n var position = null;\r\n var itemElement = items[toIndex];\r\n if (itemElement) {\r\n var $itemElement = $(itemElement);\r\n position = $itemElement.offset();\r\n if (!isVerticalOrientation && rtlEnabled && !dropInsideItem) {\r\n position.left += getOuterWidth($itemElement, true)\r\n }\r\n } else {\r\n var prevVisibleItemElement = itemElement = this._getPrevVisibleItem(items, toIndex);\r\n if (prevVisibleItemElement) {\r\n position = $(prevVisibleItemElement).offset();\r\n if (isVerticalOrientation) {\r\n position.top += getOuterHeight(prevVisibleItemElement, true)\r\n } else if (!rtlEnabled) {\r\n position.left += getOuterWidth(prevVisibleItemElement, true)\r\n }\r\n }\r\n }\r\n this._updatePlaceholderSizes($placeholderElement, itemElement);\r\n if (position && !this._isPositionVisible(position)) {\r\n position = null\r\n }\r\n if (position) {\r\n var isLastVerticalPosition = isVerticalOrientation && toIndex === items.length;\r\n var outerPlaceholderHeight = getOuterHeight($placeholderElement);\r\n position.left = this._makeLeftCorrection(position.left);\r\n position.top = isLastVerticalPosition && position.top >= outerPlaceholderHeight ? position.top - outerPlaceholderHeight : position.top;\r\n this._move(position, $placeholderElement)\r\n }\r\n $placeholderElement.toggle(!!position)\r\n },\r\n _getPositions(items, elementSize, fromIndex, toIndex) {\r\n var positions = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var position = 0;\r\n if (null === toIndex || null === fromIndex) {\r\n positions.push(position);\r\n continue\r\n }\r\n if (-1 === fromIndex) {\r\n if (i >= toIndex) {\r\n position = elementSize\r\n }\r\n } else if (-1 === toIndex) {\r\n if (i > fromIndex) {\r\n position = -elementSize\r\n }\r\n } else if (fromIndex < toIndex) {\r\n if (i > fromIndex && i < toIndex) {\r\n position = -elementSize\r\n }\r\n } else if (fromIndex > toIndex) {\r\n if (i >= toIndex && i < fromIndex) {\r\n position = elementSize\r\n }\r\n }\r\n positions.push(position)\r\n }\r\n return positions\r\n },\r\n _getDraggableElementSize(isVerticalOrientation) {\r\n var $draggableItem = this._getDraggableElement();\r\n var size = this.option(\"draggableElementSize\");\r\n if (!size) {\r\n size = isVerticalOrientation ? (getOuterHeight($draggableItem) + getOuterHeight($draggableItem, true)) / 2 : (getOuterWidth($draggableItem) + getOuterWidth($draggableItem, true)) / 2;\r\n if (!this.option(\"autoUpdate\")) {\r\n this.option(\"draggableElementSize\", size)\r\n }\r\n }\r\n return size\r\n },\r\n _getActualFromIndex() {\r\n var {\r\n fromIndex: fromIndex,\r\n fromIndexOffset: fromIndexOffset,\r\n offset: offset\r\n } = this.option();\r\n return null == fromIndex ? null : fromIndex + fromIndexOffset - offset\r\n },\r\n _moveItems(prevToIndex, toIndex, fullUpdate) {\r\n var fromIndex = this._getActualFromIndex();\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var positionPropName = isVerticalOrientation ? \"top\" : \"left\";\r\n var elementSize = this._getDraggableElementSize(isVerticalOrientation);\r\n var items = this._getItems();\r\n var prevPositions = this._getPositions(items, elementSize, fromIndex, prevToIndex);\r\n var positions = this._getPositions(items, elementSize, fromIndex, toIndex);\r\n var animationConfig = this.option(\"animation\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n for (var i = 0; i < items.length; i++) {\r\n var itemElement = items[i];\r\n var prevPosition = prevPositions[i];\r\n var position = positions[i];\r\n if (null === toIndex || null === fromIndex) {\r\n stopAnimation(itemElement)\r\n } else if (prevPosition !== position || fullUpdate && isDefined(position)) {\r\n animate(itemElement, extend({}, animationConfig, {\r\n to: {\r\n [positionPropName]: !isVerticalOrientation && rtlEnabled ? -position : position\r\n }\r\n }))\r\n }\r\n }\r\n },\r\n _toggleDragSourceClass(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n this.callBase.apply(this, arguments);\r\n if (!this._isIndicateMode()) {\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source-hidden\"), value)\r\n }\r\n },\r\n _dispose() {\r\n this.reset();\r\n this.callBase()\r\n },\r\n _fireAddEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onAdd\")(args);\r\n return args.cancel\r\n },\r\n _fireRemoveEvent(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var args = this._getEventArgs(sourceEvent);\r\n sourceDraggable._getAction(\"onRemove\")(args);\r\n return args.cancel\r\n },\r\n _fireReorderEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onReorder\")(args);\r\n return args.promise || Deferred().resolve()\r\n }\r\n});\r\nregisterComponent(SORTABLE, Sortable);\r\nexport default Sortable;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/row_dragging/const.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var ATTRIBUTES = {\r\n dragCell: \"dx-drag-cell\"\r\n};\r\nexport var CLASSES = {\r\n cellFocusDisabled: \"dx-cell-focus-disabled\",\r\n handleIcon: \"drag-icon\",\r\n commandDrag: \"dx-command-drag\",\r\n sortableWithoutHandle: \"dx-sortable-without-handle\",\r\n rowsView: \"rowsview\",\r\n dragView: \"dragview\"\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/row_dragging/dom.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n CLASSES\r\n} from \"./const\";\r\nvar createHandleTemplateFunc = addWidgetPrefix => (container, options) => {\r\n var $container = $(container);\r\n if (\"data\" === options.rowType) {\r\n $container.addClass(CLASSES.cellFocusDisabled);\r\n return $(\"<span>\").addClass(addWidgetPrefix(CLASSES.handleIcon))\r\n }\r\n gridCoreUtils.setEmptyText($container);\r\n return\r\n};\r\nexport var GridCoreRowDraggingDom = {\r\n createHandleTemplateFunc: createHandleTemplateFunc\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/row_dragging/m_row_dragging.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/../core/utils/extend\";\r\nimport {\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n getWidth,\r\n setWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport Sortable from \"../../../../ui/sortable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ATTRIBUTES,\r\n CLASSES\r\n} from \"./const\";\r\nimport {\r\n GridCoreRowDraggingDom\r\n} from \"./dom\";\r\nvar rowsView = Base => class extends Base {\r\n init() {\r\n super.init.apply(this, arguments);\r\n this._updateHandleColumn()\r\n }\r\n optionChanged(args) {\r\n if (\"rowDragging\" === args.name) {\r\n this._updateHandleColumn();\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n super.optionChanged.apply(this, arguments)\r\n }\r\n _allowReordering() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n return !!(rowDragging && (rowDragging.allowReordering || rowDragging.allowDropInsideItem || rowDragging.group))\r\n }\r\n _updateHandleColumn() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var columnsController = this._columnsController;\r\n var isHandleColumnVisible = allowReordering && rowDragging.showDragIcons;\r\n null === columnsController || void 0 === columnsController ? void 0 : columnsController.addCommandColumn({\r\n type: \"drag\",\r\n command: \"drag\",\r\n visibleIndex: -2,\r\n alignment: \"center\",\r\n elementAttr: [{\r\n name: ATTRIBUTES.dragCell,\r\n value: \"\"\r\n }],\r\n cssClass: CLASSES.commandDrag,\r\n width: \"auto\",\r\n cellTemplate: this._getHandleTemplate(),\r\n visible: isHandleColumnVisible\r\n });\r\n null === columnsController || void 0 === columnsController ? void 0 : columnsController.columnOption(\"type:drag\", \"visible\", isHandleColumnVisible)\r\n }\r\n _renderContent() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var $content = super._renderContent.apply(this, arguments);\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var currentSortableName = isFixedTableRendering ? \"_sortableFixed\" : \"_sortable\";\r\n var anotherSortableName = isFixedTableRendering ? \"_sortable\" : \"_sortableFixed\";\r\n var togglePointerEventsStyle = toggle => {\r\n var _a;\r\n null === (_a = this._sortableFixed) || void 0 === _a ? void 0 : _a.$element().css(\"pointerEvents\", toggle ? \"auto\" : \"\")\r\n };\r\n var rowSelector = \".dx-row:not(.dx-freespace-row):not(.dx-virtual-row):not(.dx-header-row):not(.dx-footer-row)\";\r\n var filter = this.option(\"dataRowTemplate\") ? \"> table > tbody\".concat(rowSelector) : \"> table > tbody > \".concat(rowSelector);\r\n if ((allowReordering || this[currentSortableName]) && $content.length) {\r\n this[currentSortableName] = this._createComponent($content, Sortable, extend({\r\n component: this.component,\r\n contentTemplate: null,\r\n filter: filter,\r\n cursorOffset: options => {\r\n var {\r\n event: event\r\n } = options;\r\n var rowsViewOffset = $(this.element()).offset();\r\n return {\r\n x: event.pageX - rowsViewOffset.left\r\n }\r\n },\r\n onDraggableElementShown: e => {\r\n if (rowDragging.dragTemplate) {\r\n return\r\n }\r\n var $dragElement = $(e.dragElement);\r\n var gridInstance = $dragElement.children(\".dx-widget\").data(this.component.NAME);\r\n this._synchronizeScrollLeftPosition(gridInstance)\r\n },\r\n dragTemplate: this._getDraggableRowTemplate(),\r\n handle: rowDragging.showDragIcons && \".\".concat(CLASSES.commandDrag),\r\n dropFeedbackMode: \"indicate\"\r\n }, rowDragging, {\r\n onDragStart: e => {\r\n var _a, _b;\r\n null === (_a = this.getController(\"keyboardNavigation\")) || void 0 === _a ? void 0 : _a._resetFocusedCell();\r\n var row = e.component.getVisibleRows()[e.fromIndex];\r\n e.itemData = row && row.data;\r\n var isDataRow = row && \"data\" === row.rowType;\r\n e.cancel = !allowReordering || !isDataRow;\r\n null === (_b = rowDragging.onDragStart) || void 0 === _b ? void 0 : _b.call(rowDragging, e)\r\n },\r\n onDragEnter: e => {\r\n if (e.fromComponent !== e.toComponent) {\r\n togglePointerEventsStyle(true)\r\n }\r\n },\r\n onDragLeave: () => {\r\n togglePointerEventsStyle(false)\r\n },\r\n onDragEnd: e => {\r\n var _a;\r\n togglePointerEventsStyle(false);\r\n null === (_a = rowDragging.onDragEnd) || void 0 === _a ? void 0 : _a.call(rowDragging, e)\r\n },\r\n onAdd: e => {\r\n var _a;\r\n togglePointerEventsStyle(false);\r\n null === (_a = rowDragging.onAdd) || void 0 === _a ? void 0 : _a.call(rowDragging, e)\r\n },\r\n dropFeedbackMode: rowDragging.dropFeedbackMode,\r\n onOptionChanged: e => {\r\n var hasFixedSortable = this._sortableFixed;\r\n if (hasFixedSortable) {\r\n if (\"fromIndex\" === e.name || \"toIndex\" === e.name) {\r\n this[anotherSortableName].option(e.name, e.value)\r\n }\r\n }\r\n }\r\n }));\r\n $content.toggleClass(\"dx-scrollable-container\", isFixedTableRendering);\r\n $content.toggleClass(CLASSES.sortableWithoutHandle, allowReordering && !rowDragging.showDragIcons)\r\n }\r\n return $content\r\n }\r\n _renderCore(e) {\r\n super._renderCore.apply(this, arguments);\r\n if (e && \"update\" === e.changeType && e.repaintChangesOnly && gridCoreUtils.isVirtualRowRendering(this)) {\r\n deferUpdate(() => {\r\n this._updateSortable()\r\n })\r\n }\r\n }\r\n _updateSortable() {\r\n var offset = this._dataController.getRowIndexOffset();\r\n var offsetDiff = offset - this._previousOffset;\r\n [this._sortable, this._sortableFixed].forEach(sortable => {\r\n var toIndex = null === sortable || void 0 === sortable ? void 0 : sortable.option(\"toIndex\");\r\n if (isDefined(toIndex) && isDefined(this._previousOffset)) {\r\n null === sortable || void 0 === sortable ? void 0 : sortable.option(\"toIndex\", toIndex - offsetDiff)\r\n }\r\n null === sortable || void 0 === sortable ? void 0 : sortable.option(\"offset\", offset);\r\n null === sortable || void 0 === sortable ? void 0 : sortable.update()\r\n });\r\n this._previousOffset = offset\r\n }\r\n _resizeCore() {\r\n super._resizeCore.apply(this, arguments);\r\n this._updateSortable()\r\n }\r\n _getDraggableGridOptions(options) {\r\n var gridOptions = this.option();\r\n var columns = this.getColumns();\r\n var $rowElement = $(this.getRowElement(options.rowIndex));\r\n return {\r\n dataSource: [{\r\n id: 1,\r\n parentId: 0\r\n }],\r\n showBorders: true,\r\n showColumnHeaders: false,\r\n scrolling: {\r\n useNative: false,\r\n showScrollbar: \"never\"\r\n },\r\n pager: {\r\n visible: false\r\n },\r\n loadingTimeout: null,\r\n columnFixing: gridOptions.columnFixing,\r\n columnAutoWidth: gridOptions.columnAutoWidth,\r\n showColumnLines: gridOptions.showColumnLines,\r\n columns: columns.map(column => ({\r\n width: column.width || column.visibleWidth,\r\n fixed: column.fixed,\r\n fixedPosition: column.fixedPosition\r\n })),\r\n onRowPrepared: e => {\r\n var rowsView = e.component.getView(\"rowsView\");\r\n $(e.rowElement).replaceWith($rowElement.eq(rowsView._isFixedTableRendering ? 1 : 0).clone())\r\n }\r\n }\r\n }\r\n _synchronizeScrollLeftPosition(gridInstance) {\r\n var scrollable = null === gridInstance || void 0 === gridInstance ? void 0 : gridInstance.getScrollable();\r\n null === scrollable || void 0 === scrollable ? void 0 : scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n _getDraggableRowTemplate() {\r\n return options => {\r\n var $rootElement = this.component.$element();\r\n var $dataGridContainer = $(\"<div>\");\r\n setWidth($dataGridContainer, getWidth($rootElement));\r\n var items = this._dataController.items();\r\n var row = items && items[options.fromIndex];\r\n var gridOptions = this._getDraggableGridOptions(row);\r\n this._createComponent($dataGridContainer, this.component.NAME, gridOptions);\r\n $dataGridContainer.find(\".dx-gridbase-container\").children(\":not(.\".concat(this.addWidgetPrefix(CLASSES.rowsView), \")\")).hide();\r\n $dataGridContainer.addClass(this.addWidgetPrefix(CLASSES.dragView));\r\n return $dataGridContainer\r\n }\r\n }\r\n _getHandleTemplate() {\r\n return GridCoreRowDraggingDom.createHandleTemplateFunc(string => this.addWidgetPrefix(string))\r\n }\r\n};\r\nexport var rowDraggingModule = {\r\n defaultOptions: () => ({\r\n rowDragging: {\r\n showDragIcons: true,\r\n dropFeedbackMode: \"indicate\",\r\n allowReordering: false,\r\n allowDropInsideItem: false\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n rowsView: rowsView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/row_dragging.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rowDraggingModule\r\n} from \"../../../grids/grid_core/row_dragging/m_row_dragging\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"rowDragging\", rowDraggingModule);\r\n","/**\r\n * DevExtreme (esm/events/index.js)\r\n * Version: 23.2.9\r\n * Build date: Mon Sep 16 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nexport var on = eventsEngine.on;\r\nexport var one = eventsEngine.one;\r\nexport var off = eventsEngine.off;\r\nexport var trigger = eventsEngine.trigger;\r\nexport var triggerHandler = eventsEngine.triggerHandler;\r\nexport var Event = eventsEngine.Event;\r\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/* eslint-disable max-classes-per-file, no-restricted-syntax */\nimport { createContext } from 'react';\nexport var RemovalLockerContext = createContext({\n lock: function () { return undefined; },\n unlock: function () { return undefined; },\n});\nexport function generateID() {\n return Math.random().toString(36).substring(2);\n}\nvar DoubleKeyMap = /** @class */ (function () {\n function DoubleKeyMap() {\n this._map = new Map();\n }\n DoubleKeyMap.prototype.set = function (_a, value) {\n var key1 = _a.key1, key2 = _a.key2;\n var innerMap = this._map.get(key1);\n if (!innerMap) {\n innerMap = new Map();\n this._map.set(key1, innerMap);\n }\n innerMap.set(key2, value);\n };\n DoubleKeyMap.prototype.get = function (_a) {\n var key1 = _a.key1, key2 = _a.key2;\n var innerMap = this._map.get(key1);\n return innerMap ? innerMap.get(key2) : undefined;\n };\n DoubleKeyMap.prototype.delete = function (_a) {\n var key1 = _a.key1, key2 = _a.key2;\n var innerMap = this._map.get(key1);\n if (!innerMap) {\n return;\n }\n innerMap.delete(key2);\n if (innerMap.size === 0) {\n this._map.delete(key1);\n }\n };\n DoubleKeyMap.prototype.clear = function () {\n this._map.clear();\n };\n Object.defineProperty(DoubleKeyMap.prototype, \"empty\", {\n get: function () {\n return this._map.size === 0;\n },\n enumerable: false,\n configurable: true\n });\n DoubleKeyMap.prototype[Symbol.iterator] = function () {\n var _a, _b, _c, key1, innerMap, innerMap_1, innerMap_1_1, _d, key2, value, e_1_1, e_2_1;\n var e_2, _e, e_1, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n _g.trys.push([0, 11, 12, 13]);\n _a = __values(this._map), _b = _a.next();\n _g.label = 1;\n case 1:\n if (!!_b.done) return [3 /*break*/, 10];\n _c = __read(_b.value, 2), key1 = _c[0], innerMap = _c[1];\n _g.label = 2;\n case 2:\n _g.trys.push([2, 7, 8, 9]);\n innerMap_1 = (e_1 = void 0, __values(innerMap)), innerMap_1_1 = innerMap_1.next();\n _g.label = 3;\n case 3:\n if (!!innerMap_1_1.done) return [3 /*break*/, 6];\n _d = __read(innerMap_1_1.value, 2), key2 = _d[0], value = _d[1];\n return [4 /*yield*/, [{ key1: key1, key2: key2 }, value]];\n case 4:\n _g.sent();\n _g.label = 5;\n case 5:\n innerMap_1_1 = innerMap_1.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_1_1 = _g.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (innerMap_1_1 && !innerMap_1_1.done && (_f = innerMap_1.return)) _f.call(innerMap_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 9:\n _b = _a.next();\n return [3 /*break*/, 1];\n case 10: return [3 /*break*/, 13];\n case 11:\n e_2_1 = _g.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 13];\n case 12:\n try {\n if (_b && !_b.done && (_e = _a.return)) _e.call(_a);\n }\n finally { if (e_2) throw e_2.error; }\n return [7 /*endfinally*/];\n case 13: return [2 /*return*/];\n }\n });\n };\n return DoubleKeyMap;\n}());\nexport { DoubleKeyMap };\nvar TemplateInstantiationModels = /** @class */ (function (_super) {\n __extends(TemplateInstantiationModels, _super);\n function TemplateInstantiationModels() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return TemplateInstantiationModels;\n}(DoubleKeyMap));\nexport { TemplateInstantiationModels };\nexport function capitalizeFirstLetter(text) {\n if (text.length) {\n return \"\" + text[0].toUpperCase() + text.substr(1);\n }\n return '';\n}\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport * as React from 'react';\nimport * as events from 'devextreme/events';\nimport { useCallback, useLayoutEffect, useEffect, useState, useRef, useMemo, memo, } from 'react';\nimport { createPortal } from 'react-dom';\nimport { DX_REMOVE_EVENT } from './component-base';\nimport { RemovalLockerContext } from './helpers';\nvar createHiddenNode = function (containerNodeName, ref, defaultElement) {\n var style = { display: 'none' };\n switch (containerNodeName) {\n case 'TABLE':\n return React.createElement(\"tbody\", { style: style, ref: ref });\n case 'TBODY':\n return React.createElement(\"tr\", { style: style, ref: ref });\n default:\n return React.createElement(defaultElement, { style: style, ref: ref });\n }\n};\nvar TemplateWrapperComponent = function (_a) {\n var templateFactory = _a.templateFactory, data = _a.data, index = _a.index, container = _a.container, onRemoved = _a.onRemoved, onRendered = _a.onRendered;\n var _b = __read(useState(false), 2), removalListenerRequired = _b[0], setRemovalListenerRequired = _b[1];\n var isRemovalLocked = useRef(false);\n var removalLocker = useMemo(function () { return ({\n lock: function () { isRemovalLocked.current = true; },\n unlock: function () { isRemovalLocked.current = false; },\n }); }, []);\n var element = useRef();\n var hiddenNodeElement = useRef();\n var removalListenerElement = useRef();\n var onTemplateRemoved = useCallback(function (_, args) {\n if ((args === null || args === void 0 ? void 0 : args.isUnmounting) || isRemovalLocked.current) {\n return;\n }\n if (element.current) {\n events.off(element.current, DX_REMOVE_EVENT, onTemplateRemoved);\n }\n if (removalListenerElement.current) {\n events.off(removalListenerElement.current, DX_REMOVE_EVENT, onTemplateRemoved);\n }\n onRemoved();\n }, [onRemoved]);\n useLayoutEffect(function () {\n var el = element.current;\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n events.off(el, DX_REMOVE_EVENT, onTemplateRemoved);\n events.on(el, DX_REMOVE_EVENT, onTemplateRemoved);\n }\n else if (!removalListenerRequired) {\n setRemovalListenerRequired(true);\n }\n else if (removalListenerElement.current) {\n events.off(removalListenerElement.current, DX_REMOVE_EVENT, onTemplateRemoved);\n events.on(removalListenerElement.current, DX_REMOVE_EVENT, onTemplateRemoved);\n }\n return function () {\n if (element.current) {\n container.appendChild(element.current);\n }\n if (hiddenNodeElement.current) {\n container.appendChild(hiddenNodeElement.current);\n }\n if (removalListenerElement.current) {\n container.appendChild(removalListenerElement.current);\n }\n if (el) {\n events.off(el, DX_REMOVE_EVENT, onTemplateRemoved);\n }\n };\n }, [onTemplateRemoved, removalListenerRequired, container]);\n useEffect(function () {\n onRendered();\n }, [onRendered]);\n var hiddenNode = createHiddenNode(container === null || container === void 0 ? void 0 : container.nodeName, function (node) {\n hiddenNodeElement.current = node;\n element.current = node === null || node === void 0 ? void 0 : node.previousSibling;\n }, 'div');\n var removalListener = removalListenerRequired\n ? createHiddenNode(container === null || container === void 0 ? void 0 : container.nodeName, function (node) { removalListenerElement.current = node; }, 'span')\n : undefined;\n return createPortal(React.createElement(React.Fragment, null,\n React.createElement(RemovalLockerContext.Provider, { value: removalLocker },\n templateFactory({ data: data, index: index, onRendered: onRendered }),\n hiddenNode,\n removalListener)), container);\n};\nexport var TemplateWrapper = memo(TemplateWrapperComponent);\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar config = {\n useLegacyTemplateEngine: false,\n};\nfunction setOptions(options) {\n config = __assign(__assign({}, config), options);\n}\nfunction getOption(optionName) {\n return config[optionName];\n}\nexport default setOptions;\nexport { getOption };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport * as React from 'react';\nimport * as events from 'devextreme/events';\nimport { useState, useMemo, useCallback, useEffect, useRef, } from 'react';\nimport { TemplateWrapper } from './template-wrapper';\nimport { TemplateInstantiationModels, generateID } from './helpers';\nimport { DX_REMOVE_EVENT } from './component-base';\nimport { getOption as getConfigOption } from './config';\nfunction normalizeProps(props) {\n if (getConfigOption('useLegacyTemplateEngine')) {\n var model = props.data;\n if (model && Object.prototype.hasOwnProperty.call(model, 'key')) {\n model.dxkey = model.key;\n }\n return model;\n }\n return props;\n}\nexport var TemplateManager = function (_a) {\n var init = _a.init;\n var _b = __read(useState({\n collection: new TemplateInstantiationModels(),\n }), 2), instantiationModels = _b[0], setInstantiationModels = _b[1];\n var _c = __read(useState(), 2), updateContext = _c[0], setUpdateContext = _c[1];\n var widgetId = useRef('');\n var templateFactories = useRef({});\n var subscribeOnRemoval = useCallback(function (container, onRemoved) {\n if (container.nodeType === Node.ELEMENT_NODE) {\n events.on(container, DX_REMOVE_EVENT, onRemoved);\n }\n }, []);\n var unsubscribeOnRemoval = useCallback(function (container, onRemoved) {\n if (container.nodeType === Node.ELEMENT_NODE) {\n events.off(container, DX_REMOVE_EVENT, onRemoved);\n }\n }, []);\n var unwrapElement = useCallback(function (element) { return (element.get ? element.get(0) : element); }, []);\n var createMapKey = useCallback(function (key1, key2) { return ({ key1: key1, key2: key2 }); }, []);\n var getRandomId = useCallback(function () { return \"\" + generateID() + generateID() + generateID(); }, []);\n var collection = instantiationModels.collection;\n var getRenderFunc = useCallback(function (templateKey) { return function (_a) {\n var data = _a.model, index = _a.index, container = _a.container, onRendered = _a.onRendered;\n var containerElement = unwrapElement(container);\n var key = createMapKey(data, containerElement);\n var onRemoved = function () {\n if (collection.get(key)) {\n collection.delete(key);\n setInstantiationModels({ collection: collection });\n }\n };\n var hostWidgetId = widgetId.current;\n collection.set(key, {\n templateKey: templateKey,\n index: index,\n componentKey: getRandomId(),\n onRendered: function () {\n unsubscribeOnRemoval(containerElement, onRemoved);\n if (hostWidgetId === widgetId.current) {\n onRendered === null || onRendered === void 0 ? void 0 : onRendered();\n }\n },\n onRemoved: onRemoved,\n });\n setInstantiationModels({ collection: collection });\n return containerElement;\n }; }, [unsubscribeOnRemoval, createMapKey, collection]);\n useMemo(function () {\n function getTemplateFunction(template) {\n switch (template.type) {\n case 'children': return function () { return template.content; };\n case 'render': return function (props) {\n normalizeProps(props);\n return template.content(props.data, props.index);\n };\n case 'component': return function (props) {\n props = normalizeProps(props);\n return React.createElement.bind(null, template.content)(props);\n };\n default: return function () { return React.createElement(React.Fragment); };\n }\n }\n function createDXTemplates(templateOptions) {\n var factories = Object.entries(templateOptions)\n .reduce(function (res, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], template = _c[1];\n return (__assign(__assign({}, res), (_b = {}, _b[key] = getTemplateFunction(template), _b)));\n }, {});\n templateFactories.current = factories;\n var dxTemplates = Object.keys(factories)\n .reduce(function (templates, templateKey) {\n templates[templateKey] = { render: getRenderFunc(templateKey) };\n return templates;\n }, {});\n return dxTemplates;\n }\n function clearInstantiationModels() {\n widgetId.current = getRandomId();\n instantiationModels.collection.clear();\n setInstantiationModels(__assign({}, instantiationModels));\n }\n function updateTemplates(onUpdated) {\n setUpdateContext({ onUpdated: onUpdated });\n }\n init({ createDXTemplates: createDXTemplates, clearInstantiationModels: clearInstantiationModels, updateTemplates: updateTemplates });\n }, [init, getRenderFunc]);\n useEffect(function () {\n if (updateContext) {\n updateContext.onUpdated();\n }\n }, [updateContext]);\n if (instantiationModels.collection.empty) {\n return null;\n }\n return (React.createElement(React.Fragment, null, Array.from(instantiationModels.collection).map(function (_a) {\n var _b = __read(_a, 2), _c = _b[0], data = _c.key1, container = _c.key2, _d = _b[1], index = _d.index, templateKey = _d.templateKey, componentKey = _d.componentKey, onRendered = _d.onRendered, onRemoved = _d.onRemoved;\n subscribeOnRemoval(container, onRemoved);\n var factory = templateFactories.current[templateKey];\n if (factory) {\n return React.createElement(TemplateWrapper, { key: componentKey, templateFactory: factory, data: data, index: index, container: container, onRemoved: onRemoved, onRendered: onRendered });\n }\n return null;\n })));\n};\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nexport function mergeNameParts() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.filter(function (value) { return value; }).join('.');\n}\nexport function parseOptionName(name) {\n var parts = name.split('[');\n if (parts.length === 1) {\n return {\n isCollectionItem: false,\n name: name,\n };\n }\n return {\n isCollectionItem: true,\n name: parts[0],\n index: Number(parts[1].slice(0, -1)),\n };\n}\nexport var isIE = function () {\n var _a, _b;\n var ua = (_b = (_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) !== null && _b !== void 0 ? _b : ''; // Check the userAgent property of the window.navigator object\n var msie = ua.indexOf('MSIE'); // IE 10 or older\n var trident = ua.indexOf('Trident/'); // IE 11\n return msie > 0 || trident > 0;\n};\nexport var shallowEquals = function (first, second) {\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n return Object.keys(first).every(function (key) { return first[key] === second[key]; });\n};\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nimport { mergeNameParts, parseOptionName } from './utils';\nfunction buildTemplates(node, optionsAccum, templatesAccum) {\n node.templates.forEach(function (template) {\n if (template.isAnonymous) {\n var templateName = mergeNameParts(node.fullName, template.optionName);\n optionsAccum[template.optionName] = templateName;\n templatesAccum[templateName] = template;\n }\n else {\n templatesAccum[template.optionName] = template;\n }\n });\n}\nfunction buildNode(node, templatesAccum, ignoreInitialValues) {\n var result = {};\n Object.keys(node.predefinedOptions).forEach(function (key) {\n result[key] = node.predefinedOptions[key];\n });\n Object.keys(node.configs).forEach(function (key) {\n result[key] = buildNode(node.configs[key], templatesAccum, ignoreInitialValues);\n });\n Object.keys(node.configCollections).forEach(function (key) {\n result[key] = node.configCollections[key].map(function (item) { return buildNode(item, templatesAccum, ignoreInitialValues); });\n });\n if (!ignoreInitialValues) {\n Object.keys(node.initialOptions).forEach(function (key) {\n result[key] = node.initialOptions[key];\n });\n }\n Object.keys(node.options).forEach(function (key) {\n result[key] = node.options[key];\n });\n buildTemplates(node, result, templatesAccum);\n return result;\n}\nfunction buildConfig(root, ignoreInitialValues) {\n var templatesAccum = {};\n var options = buildNode(root, templatesAccum, ignoreInitialValues);\n return {\n templates: templatesAccum,\n options: options,\n };\n}\nvar ValueType;\n(function (ValueType) {\n ValueType[ValueType[\"Simple\"] = 0] = \"Simple\";\n ValueType[ValueType[\"Complex\"] = 1] = \"Complex\";\n ValueType[ValueType[\"Array\"] = 2] = \"Array\";\n})(ValueType || (ValueType = {}));\nfunction findValueInObject(obj, path) {\n var key = path.shift();\n if (!key) {\n return {\n value: obj,\n type: ValueType.Simple,\n };\n }\n if (obj instanceof Object && Object.keys(obj).includes(key)) {\n return findValueInObject(obj[key], path);\n }\n return undefined;\n}\nfunction findValue(node, path) {\n var name = path.shift();\n if (!name) {\n return {\n value: buildConfig(node, true).options,\n type: ValueType.Complex,\n };\n }\n var optionInfo = parseOptionName(name);\n if (optionInfo.name in node.options) {\n var options = optionInfo.isCollectionItem\n ? node.options[optionInfo.name][optionInfo.index]\n : node.options[optionInfo.name];\n return findValueInObject(options, path);\n }\n if (optionInfo.isCollectionItem) {\n var collection = node.configCollections[optionInfo.name];\n if (!collection) {\n return undefined;\n }\n var item = collection[optionInfo.index];\n if (!item) {\n return undefined;\n }\n return findValue(item, path);\n }\n var child = node.configs[optionInfo.name];\n if (child) {\n return findValue(child, path);\n }\n var childCollection = node.configCollections[optionInfo.name];\n if (childCollection) {\n if (path.length !== 0) {\n return undefined;\n }\n return {\n value: childCollection.map(function (item) { return buildNode(item, {}, true); }),\n type: ValueType.Array,\n };\n }\n return undefined;\n}\nexport { ValueType, buildConfig, buildNode, buildTemplates, findValue, findValueInObject, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nimport { buildNode, buildTemplates } from './tree';\nimport { mergeNameParts } from './utils';\nfunction compareTemplates(current, prev, changesAccum) {\n var currentTemplatesOptions = {};\n var currentTemplates = {};\n var prevTemplatesOptions = {};\n var prevTemplates = {};\n buildTemplates(current, currentTemplatesOptions, currentTemplates);\n buildTemplates(prev, prevTemplatesOptions, prevTemplates);\n changesAccum.addRemovedValues(currentTemplatesOptions, prevTemplatesOptions, current.fullName);\n // TODO: support switching to default templates\n // appendRemovedValues(currentTemplates, prevTemplates, \"\", changesAccum.templates);\n Object.keys(currentTemplatesOptions).forEach(function (key) {\n if (currentTemplatesOptions[key] === prevTemplatesOptions[key]) {\n return;\n }\n changesAccum.options[mergeNameParts(current.fullName, key)] = currentTemplatesOptions[key];\n });\n Object.keys(currentTemplates).forEach(function (key) {\n var currentTemplate = currentTemplates[key];\n var prevTemplate = prevTemplates[key];\n if (prevTemplate && currentTemplate.content === prevTemplate.content) {\n return;\n }\n changesAccum.templates[key] = currentTemplate;\n });\n}\nfunction compare(current, prev, changesAccum) {\n if (!prev) {\n changesAccum.options[current.fullName] = buildNode(current, changesAccum.templates, true);\n return;\n }\n changesAccum.addRemovedValues(current.options, prev.options, current.fullName);\n changesAccum.addRemovedValues(current.configCollections, prev.configCollections, current.fullName);\n changesAccum.addRemovedValues(current.configs, prev.configs, current.fullName);\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n compareCollections(current, prev, changesAccum);\n Object.keys(current.configs).forEach(function (key) {\n compare(current.configs[key], prev.configs[key], changesAccum);\n });\n Object.keys(current.options).forEach(function (key) {\n if (current.options[key] === prev.options[key]) {\n return;\n }\n changesAccum.options[mergeNameParts(current.fullName, key)] = current.options[key];\n });\n compareTemplates(current, prev, changesAccum);\n}\nfunction appendRemovedValues(current, prev, path, changesAccum) {\n var removedKeys = Object.keys(prev).filter(function (key) { return !Object.keys(current).includes(key); });\n removedKeys.forEach(function (key) {\n changesAccum.push(mergeNameParts(path, key));\n });\n}\nfunction getChanges(current, prev) {\n var changesAccum = {\n options: {},\n removedOptions: [],\n templates: {},\n addRemovedValues: function (currentOptions, prevOptions, path) {\n appendRemovedValues(currentOptions, prevOptions, path, this.removedOptions);\n },\n };\n compare(current, prev, changesAccum);\n return changesAccum;\n}\nfunction compareCollections(current, prev, changesAccum) {\n Object.keys(current.configCollections).forEach(function (key) {\n var currentCollection = current.configCollections[key];\n var prevCollection = prev.configCollections[key] || [];\n if (!currentCollection || currentCollection.length !== prevCollection.length) {\n var updatedCollection_1 = [];\n currentCollection.forEach(function (item) {\n var config = buildNode(item, changesAccum.templates, true);\n updatedCollection_1.push(config);\n });\n changesAccum.options[mergeNameParts(current.fullName, key)] = updatedCollection_1;\n return;\n }\n for (var i = 0; i < currentCollection.length; i += 1) {\n compare(currentCollection[i], prevCollection[i], changesAccum);\n }\n });\n}\nexport { getChanges, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\n/* eslint-disable no-restricted-globals */\nimport { getChanges } from './configuration/comparer';\nimport { buildConfig, findValue, ValueType } from './configuration/tree';\nimport { mergeNameParts, shallowEquals } from './configuration/utils';\nimport { capitalizeFirstLetter } from './helpers';\nvar optionsManagers = new Set();\nvar guardTimeoutHandler = -1;\nvar innerGuardTimeoutHandler = -1;\nexport function unscheduleGuards() {\n clearTimeout(guardTimeoutHandler);\n clearTimeout(innerGuardTimeoutHandler);\n}\nexport function scheduleGuards() {\n unscheduleGuards();\n guardTimeoutHandler = window.setTimeout(function () {\n innerGuardTimeoutHandler = window.setTimeout(function () {\n optionsManagers.forEach(function (optionManager) { return optionManager.execGuards(); });\n });\n });\n}\nvar OptionsManager = /** @class */ (function () {\n function OptionsManager() {\n this.guards = {};\n this.isUpdating = false;\n this.onOptionChanged = this.onOptionChanged.bind(this);\n this.wrapOptionValue = this.wrapOptionValue.bind(this);\n }\n OptionsManager.prototype.setInstance = function (instance, config, subscribableOptions, independentEvents) {\n this.instance = instance;\n this.currentConfig = config;\n this.subscribableOptions = new Set(subscribableOptions);\n this.independentEvents = new Set(independentEvents);\n optionsManagers.add(this);\n };\n OptionsManager.prototype.getInitialOptions = function (rootNode) {\n var _this = this;\n var config = buildConfig(rootNode, false);\n var options = {};\n Object.keys(config.options).forEach(function (key) {\n options[key] = _this.wrapOptionValue(key, config.options[key]);\n });\n return options;\n };\n OptionsManager.prototype.getTemplateOptions = function (rootNode) {\n var config = buildConfig(rootNode, false);\n return config.templates;\n };\n OptionsManager.prototype.update = function (config, dxtemplates) {\n var _this = this;\n var changedOptions = [];\n var optionChangedHandler = function (_a) {\n var value = _a.value, fullName = _a.fullName;\n changedOptions.push([fullName, value]);\n };\n this.instance.on('optionChanged', optionChangedHandler);\n var changes = getChanges(config, this.currentConfig);\n if (!changes.options && !changes.templates && !changes.removedOptions.length) {\n return;\n }\n this.instance.beginUpdate();\n this.isUpdating = true;\n changes.removedOptions.forEach(function (optionName) {\n _this.resetOption(optionName);\n });\n if (Object.keys(dxtemplates).length > 0) {\n this.setValue('integrationOptions', {\n templates: dxtemplates,\n });\n }\n Object.keys(changes.options).forEach(function (key) {\n _this.setValue(key, changes.options[key]);\n });\n this.isUpdating = false;\n this.instance.off('optionChanged', optionChangedHandler);\n this.currentConfig = config;\n changedOptions.forEach(function (_a) {\n var _b = __read(_a, 2), name = _b[0], value = _b[1];\n var currentPropValue = config.options[name];\n if (Object.prototype.hasOwnProperty.call(config.options, name)\n && currentPropValue !== value) {\n _this.setValue(name, currentPropValue);\n }\n });\n this.instance.endUpdate();\n };\n OptionsManager.prototype.onOptionChanged = function (e) {\n var _this = this;\n var _a;\n if (this.isUpdating) {\n return;\n }\n var valueDescriptor = findValue(this.currentConfig, e.fullName.split('.'));\n if (!valueDescriptor || valueDescriptor.value !== e.value) {\n this.callOptionChangeHandler(e.fullName, e.value);\n }\n valueDescriptor = findValue(this.currentConfig, e.fullName.split('.'));\n if (!valueDescriptor) {\n return;\n }\n var value = valueDescriptor.value, type = valueDescriptor.type;\n if (value instanceof Array && type === ValueType.Array) {\n for (var i = 0; i < value.length; i += 1) {\n if (value[i] !== ((_a = e.value) === null || _a === void 0 ? void 0 : _a[i])) {\n this.addGuard(e.fullName, value);\n return;\n }\n }\n }\n else if (type === ValueType.Complex && value instanceof Object) {\n Object.keys(value).forEach(function (key) {\n var _a;\n if (value[key] === ((_a = e.value) === null || _a === void 0 ? void 0 : _a[key])) {\n return;\n }\n _this.addGuard(mergeNameParts(e.fullName, key), value[key]);\n });\n }\n else {\n var valuesAreEqual = value === e.value;\n var valuesAreEqualObjects = !valuesAreEqual\n && value instanceof Object\n && e.value instanceof Object\n && shallowEquals(value, e.value);\n if (valuesAreEqual || valuesAreEqualObjects || this.instance.skipOptionsRollBack) {\n return;\n }\n this.addGuard(e.fullName, value);\n }\n };\n OptionsManager.prototype.dispose = function () {\n var _this = this;\n optionsManagers.delete(this);\n Object.keys(this.guards).forEach(function (optionName) {\n delete _this.guards[optionName];\n });\n };\n OptionsManager.prototype.isOptionSubscribable = function (optionName) {\n return this.subscribableOptions.has(optionName);\n };\n OptionsManager.prototype.isIndependentEvent = function (optionName) {\n return this.independentEvents.has(optionName);\n };\n OptionsManager.prototype.callOptionChangeHandler = function (optionName, optionValue) {\n if (!this.isOptionSubscribable(optionName)) {\n return;\n }\n var parts = optionName.split('.');\n var propName = parts[parts.length - 1];\n if (propName.startsWith('on')) {\n return;\n }\n var eventName = \"on\" + capitalizeFirstLetter(propName) + \"Change\";\n parts[parts.length - 1] = eventName;\n var changeEvent = findValue(this.currentConfig, parts);\n if (!changeEvent) {\n return;\n }\n if (typeof changeEvent.value !== 'function') {\n throw new Error(\"Invalid value for the \" + eventName + \" property.\\n \" + eventName + \" must be a function.\");\n }\n changeEvent.value(optionValue);\n };\n OptionsManager.prototype.wrapOptionValue = function (name, value) {\n var _this = this;\n if (name.substr(0, 2) === 'on' && typeof value === 'function') {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!_this.isUpdating || _this.isIndependentEvent(name)) {\n value.apply(void 0, __spreadArray([], __read(args)));\n }\n };\n }\n return value;\n };\n OptionsManager.prototype.addGuard = function (optionName, optionValue) {\n var _this = this;\n if (this.guards[optionName] !== undefined) {\n return;\n }\n var handler = function () {\n _this.setValue(optionName, optionValue);\n delete _this.guards[optionName];\n };\n this.guards[optionName] = handler;\n scheduleGuards();\n };\n OptionsManager.prototype.execGuards = function () {\n Object.values(this.guards)\n .forEach(function (handler) { return handler(); });\n };\n OptionsManager.prototype.resetOption = function (name) {\n this.instance.resetOption(name);\n };\n OptionsManager.prototype.setValue = function (name, value) {\n if (this.guards[name]) {\n delete this.guards[name];\n }\n this.instance.option(name, this.wrapOptionValue(name, value));\n };\n return OptionsManager;\n}());\nexport { OptionsManager, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar elementPropNames = ['style', 'id'];\nvar classNamePropName = 'className';\nvar refPropName = ['dropZone', 'dialogTrigger'];\nfunction isIgnoredProp(name) {\n return name === 'children' || name === classNamePropName || elementPropNames.includes(name);\n}\nfunction getRefElement(value) {\n var _a;\n if (value === null || value === void 0 ? void 0 : value.current) {\n if ((_a = value.current.instance) === null || _a === void 0 ? void 0 : _a.element()) {\n return value.current.instance.element();\n }\n return value.current;\n }\n return value;\n}\nfunction separateProps(props, defaultsProps, templateProps) {\n templateProps = templateProps || [];\n var defaults = {};\n var options = {};\n var templates = {};\n var knownTemplates = {};\n templateProps.forEach(function (value) {\n knownTemplates[value.component] = true;\n knownTemplates[value.render] = true;\n });\n Object.keys(props).forEach(function (key) {\n var defaultOptionName = defaultsProps ? defaultsProps[key] : null;\n var value = props[key];\n if (isIgnoredProp(key)) {\n return;\n }\n if (defaultOptionName) {\n defaults[defaultOptionName] = value;\n return;\n }\n if (knownTemplates[key]) {\n templates[key] = value;\n return;\n }\n if (refPropName.includes(key)) {\n options[key] = getRefElement(value);\n return;\n }\n options[key] = props[key];\n });\n return { options: options, defaults: defaults, templates: templates };\n}\nfunction getClassName(props) {\n return props[classNamePropName];\n}\nexport { elementPropNames, getClassName, separateProps, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nvar Template = /** @class */ (function (_super) {\n __extends(Template, _super);\n function Template() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Template.prototype.render = function () {\n return null;\n };\n return Template;\n}(React.PureComponent));\nvar requiredPropsCheck = function (props) {\n if (!props.component && !props.render && !props.children) {\n return new Error('The Template component requires \\'component\\' or \\'render\\' property');\n }\n return null;\n};\nTemplate.propTypes = {\n name: PropTypes.string.isRequired,\n component: requiredPropsCheck,\n render: requiredPropsCheck,\n children: requiredPropsCheck,\n};\nfunction findProps(child) {\n if (child.type !== Template) {\n return undefined;\n }\n return {\n name: child.props.name,\n render: child.props.render,\n component: child.props.component,\n children: child.props.children,\n keyFn: child.props.keyFn,\n };\n}\nexport { Template, findProps, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nimport { Template as TemplateComp } from '../../template';\nvar ElementType;\n(function (ElementType) {\n ElementType[ElementType[\"Option\"] = 0] = \"Option\";\n ElementType[ElementType[\"Template\"] = 1] = \"Template\";\n ElementType[ElementType[\"Unknown\"] = 2] = \"Unknown\";\n})(ElementType || (ElementType = {}));\nfunction getElementInfo(element, parentExpectedChildren) {\n var reactElement = element;\n if (!reactElement || !reactElement.type) {\n return {\n type: ElementType.Unknown,\n };\n }\n if (reactElement.type === TemplateComp) {\n return {\n type: ElementType.Template,\n props: reactElement.props,\n };\n }\n var elementDescriptor = reactElement.type;\n if (elementDescriptor.OptionName) {\n var name_1 = elementDescriptor.OptionName;\n var isCollectionItem = elementDescriptor.IsCollectionItem;\n var expectation = parentExpectedChildren && parentExpectedChildren[name_1];\n if (expectation) {\n isCollectionItem = expectation.isCollectionItem;\n if (expectation.optionName) {\n name_1 = expectation.optionName;\n }\n }\n return {\n type: ElementType.Option,\n descriptor: {\n name: name_1,\n isCollection: isCollectionItem,\n templates: elementDescriptor.TemplateProps || [],\n initialValuesProps: elementDescriptor.DefaultsProps || {},\n predefinedValuesProps: elementDescriptor.PredefinedProps || {},\n expectedChildren: elementDescriptor.ExpectedChildren || {},\n },\n props: reactElement.props,\n };\n }\n return {\n type: ElementType.Unknown,\n };\n}\nexport { getElementInfo, ElementType, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nfunction getAnonymousTemplate(props, templateMeta, hasTranscludedContent) {\n if (templateMeta.tmplOption === 'template' && hasTranscludedContent) {\n return {\n optionName: templateMeta.tmplOption,\n isAnonymous: true,\n type: 'children',\n content: props.children,\n keyFn: props[templateMeta.keyFn],\n };\n }\n if (props[templateMeta.render]) {\n return {\n optionName: templateMeta.tmplOption,\n isAnonymous: true,\n type: 'render',\n content: props[templateMeta.render],\n keyFn: props[templateMeta.keyFn],\n };\n }\n if (props[templateMeta.component]) {\n return {\n optionName: templateMeta.tmplOption,\n isAnonymous: true,\n type: 'component',\n content: props[templateMeta.component],\n keyFn: props[templateMeta.keyFn],\n };\n }\n return null;\n}\nfunction getNamedTemplate(props) {\n if (!props.name) {\n return null;\n }\n if (props.component) {\n return {\n optionName: props.name,\n isAnonymous: false,\n type: 'component',\n content: props.component,\n keyFn: props.keyFn,\n };\n }\n if (props.render) {\n return {\n optionName: props.name,\n isAnonymous: false,\n type: 'render',\n content: props.render,\n keyFn: props.keyFn,\n };\n }\n return {\n optionName: props.name,\n isAnonymous: false,\n type: 'children',\n content: props.children,\n keyFn: props.keyFn,\n };\n}\nexport { getAnonymousTemplate, getNamedTemplate, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { separateProps } from '../../widget-config';\nimport { ElementType, getElementInfo, } from './element';\nimport { mergeNameParts } from '../utils';\nimport { getAnonymousTemplate, getNamedTemplate } from './templates';\nexport function processChildren(parentElement, parentFullName) {\n var templates = [];\n var configCollections = {};\n var configs = {};\n var hasTranscludedContent = false;\n React.Children.map(parentElement.props.children, function (child) {\n var element = getElementInfo(child, parentElement.descriptor.expectedChildren);\n if (element.type === ElementType.Unknown) {\n if (child !== null && child !== undefined && child !== false) {\n hasTranscludedContent = true;\n }\n return;\n }\n if (element.type === ElementType.Template) {\n var template = getNamedTemplate(element.props);\n if (template) {\n templates.push(template);\n }\n return;\n }\n if (element.descriptor.isCollection) {\n var collection = configCollections[element.descriptor.name];\n if (!collection) {\n collection = [];\n configCollections[element.descriptor.name] = collection;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var collectionItem = createConfigNode(element, mergeNameParts(parentFullName, element.descriptor.name) + \"[\" + collection.length + \"]\");\n collection.push(collectionItem);\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var configNode = createConfigNode(element, parentFullName);\n configs[element.descriptor.name] = configNode;\n });\n return {\n configs: configs,\n configCollections: configCollections,\n templates: templates,\n hasTranscludedContent: hasTranscludedContent,\n };\n}\nfunction createConfigNode(element, path) {\n var fullName = element.descriptor.isCollection\n ? path\n : mergeNameParts(path, element.descriptor.name);\n var separatedValues = separateProps(element.props, element.descriptor.initialValuesProps, element.descriptor.templates);\n var childrenData = processChildren(element, fullName);\n element.descriptor.templates.forEach(function (templateMeta) {\n var template = getAnonymousTemplate(element.props, templateMeta, path.length > 0 ? childrenData.hasTranscludedContent : false);\n if (template) {\n childrenData.templates.push(template);\n }\n });\n return {\n fullName: fullName,\n predefinedOptions: element.descriptor.predefinedValuesProps,\n initialOptions: separatedValues.defaults,\n options: separatedValues.options,\n templates: childrenData.templates,\n configCollections: childrenData.configCollections,\n configs: childrenData.configs,\n };\n}\nfunction buildConfigTree(widgetDescriptor, props) {\n return createConfigNode({\n type: ElementType.Option,\n descriptor: __assign({ name: '', isCollection: false }, widgetDescriptor),\n props: props,\n }, '');\n}\nexport { buildConfigTree, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nimport * as events from 'devextreme/events';\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { requestAnimationFrame } from 'devextreme/animation/frame';\nimport { deferUpdate } from 'devextreme/core/utils/common';\nimport { TemplateManager } from './template-manager';\nimport { OptionsManager, scheduleGuards, unscheduleGuards } from './options-manager';\nimport { elementPropNames, getClassName } from './widget-config';\nimport { buildConfigTree } from './configuration/react/tree';\nimport { isIE } from './configuration/utils';\nimport { RemovalLockerContext } from './helpers';\nvar DX_REMOVE_EVENT = 'dxremove';\nvar ComponentBase = /** @class */ (function (_super) {\n __extends(ComponentBase, _super);\n function ComponentBase(props) {\n var _this = _super.call(this, props) || this;\n _this.isPortalComponent = false;\n _this._templateProps = [];\n _this._childNodes = [];\n _this.useRequestAnimationFrameFlag = false;\n _this.useDeferUpdateForTemplates = false;\n _this.guardsUpdateScheduled = false;\n _this._createWidget = _this._createWidget.bind(_this);\n _this._setTemplateManagerHooks = _this._setTemplateManagerHooks.bind(_this);\n _this._optionsManager = new OptionsManager();\n return _this;\n }\n ComponentBase.displayContentsStyle = function () {\n return isIE()\n ? {\n width: '100%',\n height: '100%',\n padding: 0,\n margin: 0,\n }\n : { display: 'contents' };\n };\n ComponentBase.prototype.componentDidMount = function () {\n var _a;\n var _b;\n var style = this.props.style;\n if ((_b = this._childNodes) === null || _b === void 0 ? void 0 : _b.length) {\n (_a = this._element).append.apply(_a, __spreadArray([], __read(this._childNodes)));\n }\n else if (this._element.childNodes.length) {\n this._childNodes = Array.from(this._element.childNodes);\n }\n this._updateCssClasses(null, this.props);\n if (style) {\n this._setInlineStyles(style);\n }\n };\n ComponentBase.prototype.componentDidUpdate = function (prevProps) {\n var _a;\n this._updateCssClasses(prevProps, this.props);\n var config = this._getConfig();\n var templateOptions = this._optionsManager.getTemplateOptions(config);\n var dxTemplates = ((_a = this._createDXTemplates) === null || _a === void 0 ? void 0 : _a.call(this, templateOptions)) || {};\n this._optionsManager.update(config, dxTemplates);\n this._scheduleTemplatesUpdate();\n };\n ComponentBase.prototype.componentWillUnmount = function () {\n var _a;\n this._lockParentOnRemoved();\n if (this._instance) {\n var dxRemoveArgs = { isUnmounting: true };\n (_a = this._childNodes) === null || _a === void 0 ? void 0 : _a.forEach(function (child) { var _a; return (_a = child.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(child); });\n events.triggerHandler(this._element, DX_REMOVE_EVENT, dxRemoveArgs);\n this._instance.dispose();\n }\n this._optionsManager.dispose();\n this._unlockParentOnRemoved();\n };\n ComponentBase.prototype._createWidget = function (element) {\n var _a, _b;\n element = element || this._element;\n var config = this._getConfig();\n var options = __assign({ templatesRenderAsynchronously: true }, this._optionsManager.getInitialOptions(config));\n var templateOptions = this._optionsManager.getTemplateOptions(config);\n var dxTemplates = (_a = this._createDXTemplates) === null || _a === void 0 ? void 0 : _a.call(this, templateOptions);\n if (dxTemplates && Object.keys(dxTemplates).length) {\n options = __assign(__assign({}, options), { integrationOptions: {\n templates: dxTemplates,\n } });\n }\n (_b = this._clearInstantiationModels) === null || _b === void 0 ? void 0 : _b.call(this);\n this._instance = new this._WidgetClass(element, options);\n if (!this.useRequestAnimationFrameFlag) {\n this.useDeferUpdateForTemplates = this._instance.option('integrationOptions.useDeferUpdateForTemplates');\n }\n this._optionsManager.setInstance(this._instance, config, this.subscribableOptions, this.independentEvents);\n this._instance.on('optionChanged', this._optionsManager.onOptionChanged);\n };\n ComponentBase.prototype._scheduleTemplatesUpdate = function () {\n var _this = this;\n if (this.guardsUpdateScheduled) {\n return;\n }\n this.guardsUpdateScheduled = true;\n var updateFunc = this.useDeferUpdateForTemplates ? deferUpdate : requestAnimationFrame;\n updateFunc(function () {\n var _a;\n _this.guardsUpdateScheduled = false;\n (_a = _this._updateTemplates) === null || _a === void 0 ? void 0 : _a.call(_this, function () { return scheduleGuards(); });\n });\n unscheduleGuards();\n };\n ComponentBase.prototype._getConfig = function () {\n return buildConfigTree({\n templates: this._templateProps,\n initialValuesProps: this._defaults,\n predefinedValuesProps: {},\n expectedChildren: this._expectedChildren,\n }, this.props);\n };\n ComponentBase.prototype._getElementProps = function () {\n var _this = this;\n var elementProps = {\n ref: function (element) { _this._element = element; },\n };\n elementPropNames.forEach(function (name) {\n var props = _this.props;\n if (name in props) {\n elementProps[name] = props[name];\n }\n });\n return elementProps;\n };\n ComponentBase.prototype._setInlineStyles = function (styles) {\n var _this = this;\n Object.entries(styles).forEach(function (_a) {\n var _b = __read(_a, 2), name = _b[0], value = _b[1];\n _this._element.style[name] = value;\n });\n };\n ComponentBase.prototype._updateCssClasses = function (prevProps, newProps) {\n var _a, _b;\n var prevClassName = prevProps ? getClassName(prevProps) : undefined;\n var newClassName = getClassName(newProps);\n if (prevClassName === newClassName) {\n return;\n }\n if (prevClassName) {\n var classNames = prevClassName.split(' ').filter(function (c) { return c; });\n if (classNames.length) {\n (_a = this._element.classList).remove.apply(_a, __spreadArray([], __read(classNames)));\n }\n }\n if (newClassName) {\n var classNames = newClassName.split(' ').filter(function (c) { return c; });\n if (classNames.length) {\n (_b = this._element.classList).add.apply(_b, __spreadArray([], __read(classNames)));\n }\n }\n };\n ComponentBase.prototype._lockParentOnRemoved = function () {\n var _a;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.lock();\n };\n ComponentBase.prototype._unlockParentOnRemoved = function () {\n var _a;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.unlock();\n };\n ComponentBase.prototype._setTemplateManagerHooks = function (_a) {\n var createDXTemplates = _a.createDXTemplates, clearInstantiationModels = _a.clearInstantiationModels, updateTemplates = _a.updateTemplates;\n this._createDXTemplates = createDXTemplates;\n this._clearInstantiationModels = clearInstantiationModels;\n this._updateTemplates = updateTemplates;\n };\n ComponentBase.prototype.renderChildren = function () {\n // @ts-expect-error TS2339\n var children = this.props.children;\n return children;\n };\n ComponentBase.prototype.renderContent = function () {\n var _this = this;\n // @ts-expect-error TS2339\n var children = this.props.children;\n return this.isPortalComponent && children\n ? React.createElement('div', {\n ref: function (node) {\n if (node && _this.portalContainer !== node) {\n _this.portalContainer = node;\n _this.forceUpdate();\n }\n },\n style: ComponentBase.displayContentsStyle(),\n })\n : this.renderChildren();\n };\n ComponentBase.prototype.renderPortal = function () {\n return this.portalContainer && createPortal(this.renderChildren(), this.portalContainer);\n };\n ComponentBase.prototype.render = function () {\n return React.createElement(React.Fragment, {}, React.createElement('div', this._getElementProps(), this.renderContent(), React.createElement(TemplateManager, {\n init: this._setTemplateManagerHooks,\n })), this.isPortalComponent && this.renderPortal());\n };\n ComponentBase.contextType = RemovalLockerContext;\n return ComponentBase;\n}(React.PureComponent));\nexport { ComponentBase, DX_REMOVE_EVENT, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComponentBase } from './component-base';\nvar ExtensionComponent = /** @class */ (function (_super) {\n __extends(ExtensionComponent, _super);\n function ExtensionComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExtensionComponent.prototype.componentDidMount = function () {\n var onMounted = this.props.onMounted;\n if (onMounted) {\n onMounted(this._createWidget);\n }\n else {\n this._createWidget();\n }\n };\n return ExtensionComponent;\n}(ComponentBase));\nexport { ExtensionComponent, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { ComponentBase } from './component-base';\nimport { ExtensionComponent } from './extension-component';\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n function Component(props) {\n var _this = _super.call(this, props) || this;\n _this._extensionCreators = [];\n _this._registerExtension = _this._registerExtension.bind(_this);\n return _this;\n }\n Component.prototype.componentDidMount = function () {\n _super.prototype.componentDidMount.call(this);\n this._createWidget();\n this._createExtensions();\n };\n Component.prototype.componentWillUnmount = function () {\n _super.prototype.componentWillUnmount.call(this);\n this.clearExtensions();\n };\n Component.prototype.clearExtensions = function () {\n this._extensionCreators = [];\n };\n // @ts-expect-error TS2416\n Component.prototype.renderChildren = function () {\n var _this = this;\n return React.Children.map(\n // @ts-expect-error TS2339\n this.props.children, function (child) {\n if (child && Object.prototype.isPrototypeOf.call(ExtensionComponent, child.type)) {\n return React.cloneElement(child, { onMounted: _this._registerExtension });\n }\n return child;\n });\n };\n Component.prototype._registerExtension = function (creator) {\n this._extensionCreators.push(creator);\n };\n Component.prototype._createExtensions = function () {\n var _this = this;\n this._extensionCreators.forEach(function (creator) { return creator(_this._element); });\n };\n return Component;\n}(ComponentBase));\nexport { Component, };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { ElementType, getElementInfo } from './configuration/react/element';\nvar NestedOption = /** @class */ (function (_super) {\n __extends(NestedOption, _super);\n function NestedOption() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NestedOption.prototype.render = function () {\n // @ts-expect-error TS2339\n var stateChildren = this.props.children;\n var children = React.Children.map(stateChildren, function (child) {\n var childElementInfo = getElementInfo(child);\n return childElementInfo.type === ElementType.Option ? child : null;\n });\n return React.createElement(React.Fragment, {}, children);\n };\n return NestedOption;\n}(React.PureComponent));\nexport default NestedOption;\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use client\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport dxDataGrid from \"devextreme/ui/data_grid\";\nimport * as PropTypes from \"prop-types\";\nimport { Component as BaseComponent } from \"./core/component\";\nimport NestedOption from \"./core/nested-option\";\nvar DataGrid = /** @class */ (function (_super) {\n __extends(DataGrid, _super);\n function DataGrid() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._WidgetClass = dxDataGrid;\n _this.useRequestAnimationFrameFlag = true;\n _this.subscribableOptions = [\"columns\", \"editing\", \"editing.changes\", \"editing.editColumnName\", \"editing.editRowKey\", \"filterPanel\", \"filterPanel.filterEnabled\", \"filterValue\", \"focusedColumnIndex\", \"focusedRowIndex\", \"focusedRowKey\", \"groupPanel\", \"groupPanel.visible\", \"paging\", \"paging.pageIndex\", \"paging.pageSize\", \"searchPanel\", \"searchPanel.text\", \"selectedRowKeys\", \"selectionFilter\"];\n _this.independentEvents = [\"onAdaptiveDetailRowPreparing\", \"onCellClick\", \"onCellDblClick\", \"onCellPrepared\", \"onContentReady\", \"onContextMenuPreparing\", \"onDataErrorOccurred\", \"onDisposing\", \"onEditCanceled\", \"onEditCanceling\", \"onEditingStart\", \"onEditorPrepared\", \"onEditorPreparing\", \"onExporting\", \"onFocusedCellChanging\", \"onFocusedRowChanging\", \"onInitialized\", \"onInitNewRow\", \"onKeyDown\", \"onRowClick\", \"onRowCollapsed\", \"onRowCollapsing\", \"onRowDblClick\", \"onRowExpanded\", \"onRowExpanding\", \"onRowInserted\", \"onRowInserting\", \"onRowPrepared\", \"onRowRemoved\", \"onRowRemoving\", \"onRowUpdated\", \"onRowUpdating\", \"onRowValidating\", \"onSaved\", \"onSaving\", \"onToolbarPreparing\"];\n _this._defaults = {\n defaultColumns: \"columns\",\n defaultEditing: \"editing\",\n defaultFilterPanel: \"filterPanel\",\n defaultFilterValue: \"filterValue\",\n defaultFocusedColumnIndex: \"focusedColumnIndex\",\n defaultFocusedRowIndex: \"focusedRowIndex\",\n defaultFocusedRowKey: \"focusedRowKey\",\n defaultGroupPanel: \"groupPanel\",\n defaultPaging: \"paging\",\n defaultSearchPanel: \"searchPanel\",\n defaultSelectedRowKeys: \"selectedRowKeys\",\n defaultSelectionFilter: \"selectionFilter\"\n };\n _this._expectedChildren = {\n column: { optionName: \"columns\", isCollectionItem: true },\n columnChooser: { optionName: \"columnChooser\", isCollectionItem: false },\n columnFixing: { optionName: \"columnFixing\", isCollectionItem: false },\n dataGridHeaderFilter: { optionName: \"headerFilter\", isCollectionItem: false },\n dataGridSelection: { optionName: \"selection\", isCollectionItem: false },\n editing: { optionName: \"editing\", isCollectionItem: false },\n export: { optionName: \"export\", isCollectionItem: false },\n filterBuilder: { optionName: \"filterBuilder\", isCollectionItem: false },\n filterBuilderPopup: { optionName: \"filterBuilderPopup\", isCollectionItem: false },\n filterPanel: { optionName: \"filterPanel\", isCollectionItem: false },\n filterRow: { optionName: \"filterRow\", isCollectionItem: false },\n grouping: { optionName: \"grouping\", isCollectionItem: false },\n groupPanel: { optionName: \"groupPanel\", isCollectionItem: false },\n headerFilter: { optionName: \"headerFilter\", isCollectionItem: false },\n keyboardNavigation: { optionName: \"keyboardNavigation\", isCollectionItem: false },\n loadPanel: { optionName: \"loadPanel\", isCollectionItem: false },\n masterDetail: { optionName: \"masterDetail\", isCollectionItem: false },\n pager: { optionName: \"pager\", isCollectionItem: false },\n paging: { optionName: \"paging\", isCollectionItem: false },\n remoteOperations: { optionName: \"remoteOperations\", isCollectionItem: false },\n rowDragging: { optionName: \"rowDragging\", isCollectionItem: false },\n scrolling: { optionName: \"scrolling\", isCollectionItem: false },\n searchPanel: { optionName: \"searchPanel\", isCollectionItem: false },\n selection: { optionName: \"selection\", isCollectionItem: false },\n sortByGroupSummaryInfo: { optionName: \"sortByGroupSummaryInfo\", isCollectionItem: true },\n sorting: { optionName: \"sorting\", isCollectionItem: false },\n stateStoring: { optionName: \"stateStoring\", isCollectionItem: false },\n summary: { optionName: \"summary\", isCollectionItem: false },\n toolbar: { optionName: \"toolbar\", isCollectionItem: false }\n };\n _this._templateProps = [{\n tmplOption: \"dataRowTemplate\",\n render: \"dataRowRender\",\n component: \"dataRowComponent\",\n keyFn: \"dataRowKeyFn\"\n }, {\n tmplOption: \"rowTemplate\",\n render: \"rowRender\",\n component: \"rowComponent\",\n keyFn: \"rowKeyFn\"\n }];\n return _this;\n }\n Object.defineProperty(DataGrid.prototype, \"instance\", {\n get: function () {\n return this._instance;\n },\n enumerable: false,\n configurable: true\n });\n return DataGrid;\n}(BaseComponent));\nDataGrid.propTypes = {\n accessKey: PropTypes.string,\n activeStateEnabled: PropTypes.bool,\n allowColumnReordering: PropTypes.bool,\n allowColumnResizing: PropTypes.bool,\n autoNavigateToFocusedRow: PropTypes.bool,\n cacheEnabled: PropTypes.bool,\n cellHintEnabled: PropTypes.bool,\n columnAutoWidth: PropTypes.bool,\n columnChooser: PropTypes.object,\n columnFixing: PropTypes.object,\n columnHidingEnabled: PropTypes.bool,\n columnMinWidth: PropTypes.number,\n columnResizingMode: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"nextColumn\",\n \"widget\"\n ])\n ]),\n columns: PropTypes.array,\n columnWidth: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"auto\"\n ])\n ])\n ]),\n customizeColumns: PropTypes.func,\n dateSerializationFormat: PropTypes.string,\n disabled: PropTypes.bool,\n editing: PropTypes.object,\n elementAttr: PropTypes.object,\n errorRowEnabled: PropTypes.bool,\n export: PropTypes.object,\n filterBuilder: PropTypes.object,\n filterBuilderPopup: PropTypes.object,\n filterPanel: PropTypes.object,\n filterRow: PropTypes.object,\n filterSyncEnabled: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"auto\"\n ])\n ])\n ]),\n filterValue: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.func,\n PropTypes.string\n ]),\n focusedColumnIndex: PropTypes.number,\n focusedRowEnabled: PropTypes.bool,\n focusedRowIndex: PropTypes.number,\n grouping: PropTypes.object,\n groupPanel: PropTypes.object,\n headerFilter: PropTypes.object,\n height: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.number,\n PropTypes.string\n ]),\n highlightChanges: PropTypes.bool,\n hint: PropTypes.string,\n hoverStateEnabled: PropTypes.bool,\n keyboardNavigation: PropTypes.object,\n keyExpr: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.string\n ]),\n loadPanel: PropTypes.object,\n masterDetail: PropTypes.object,\n noDataText: PropTypes.string,\n onAdaptiveDetailRowPreparing: PropTypes.func,\n onCellClick: PropTypes.func,\n onCellDblClick: PropTypes.func,\n onCellHoverChanged: PropTypes.func,\n onCellPrepared: PropTypes.func,\n onContentReady: PropTypes.func,\n onContextMenuPreparing: PropTypes.func,\n onDataErrorOccurred: PropTypes.func,\n onDisposing: PropTypes.func,\n onEditCanceled: PropTypes.func,\n onEditCanceling: PropTypes.func,\n onEditingStart: PropTypes.func,\n onEditorPrepared: PropTypes.func,\n onEditorPreparing: PropTypes.func,\n onExporting: PropTypes.func,\n onFocusedCellChanged: PropTypes.func,\n onFocusedCellChanging: PropTypes.func,\n onFocusedRowChanged: PropTypes.func,\n onFocusedRowChanging: PropTypes.func,\n onInitialized: PropTypes.func,\n onInitNewRow: PropTypes.func,\n onKeyDown: PropTypes.func,\n onOptionChanged: PropTypes.func,\n onRowClick: PropTypes.func,\n onRowCollapsed: PropTypes.func,\n onRowCollapsing: PropTypes.func,\n onRowDblClick: PropTypes.func,\n onRowExpanded: PropTypes.func,\n onRowExpanding: PropTypes.func,\n onRowInserted: PropTypes.func,\n onRowInserting: PropTypes.func,\n onRowPrepared: PropTypes.func,\n onRowRemoved: PropTypes.func,\n onRowRemoving: PropTypes.func,\n onRowUpdated: PropTypes.func,\n onRowUpdating: PropTypes.func,\n onRowValidating: PropTypes.func,\n onSaved: PropTypes.func,\n onSaving: PropTypes.func,\n onSelectionChanged: PropTypes.func,\n onToolbarPreparing: PropTypes.func,\n pager: PropTypes.object,\n paging: PropTypes.object,\n remoteOperations: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.object,\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"auto\"\n ])\n ])\n ]),\n renderAsync: PropTypes.bool,\n repaintChangesOnly: PropTypes.bool,\n rowAlternationEnabled: PropTypes.bool,\n rowDragging: PropTypes.object,\n rtlEnabled: PropTypes.bool,\n scrolling: PropTypes.object,\n searchPanel: PropTypes.object,\n selectedRowKeys: PropTypes.array,\n selection: PropTypes.object,\n selectionFilter: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.func,\n PropTypes.string\n ]),\n showBorders: PropTypes.bool,\n showColumnHeaders: PropTypes.bool,\n showColumnLines: PropTypes.bool,\n showRowLines: PropTypes.bool,\n sortByGroupSummaryInfo: PropTypes.array,\n sorting: PropTypes.object,\n stateStoring: PropTypes.object,\n summary: PropTypes.object,\n syncLookupFilterValues: PropTypes.bool,\n tabIndex: PropTypes.number,\n toolbar: PropTypes.object,\n twoWayBindingEnabled: PropTypes.bool,\n visible: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.number,\n PropTypes.string\n ]),\n wordWrapEnabled: PropTypes.bool\n};\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Animation.OptionName = \"animation\";\n Animation.ExpectedChildren = {\n hide: { optionName: \"hide\", isCollectionItem: false },\n show: { optionName: \"show\", isCollectionItem: false }\n };\n return Animation;\n}(NestedOption));\nvar AsyncRule = /** @class */ (function (_super) {\n __extends(AsyncRule, _super);\n function AsyncRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsyncRule.OptionName = \"validationRules\";\n AsyncRule.IsCollectionItem = true;\n AsyncRule.PredefinedProps = {\n type: \"async\"\n };\n return AsyncRule;\n}(NestedOption));\nvar At = /** @class */ (function (_super) {\n __extends(At, _super);\n function At() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n At.OptionName = \"at\";\n return At;\n}(NestedOption));\nvar BoundaryOffset = /** @class */ (function (_super) {\n __extends(BoundaryOffset, _super);\n function BoundaryOffset() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BoundaryOffset.OptionName = \"boundaryOffset\";\n return BoundaryOffset;\n}(NestedOption));\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Button.OptionName = \"buttons\";\n Button.IsCollectionItem = true;\n Button.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return Button;\n}(NestedOption));\nvar Change = /** @class */ (function (_super) {\n __extends(Change, _super);\n function Change() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Change.OptionName = \"changes\";\n Change.IsCollectionItem = true;\n return Change;\n}(NestedOption));\nvar ColCountByScreen = /** @class */ (function (_super) {\n __extends(ColCountByScreen, _super);\n function ColCountByScreen() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColCountByScreen.OptionName = \"colCountByScreen\";\n return ColCountByScreen;\n}(NestedOption));\nvar Collision = /** @class */ (function (_super) {\n __extends(Collision, _super);\n function Collision() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Collision.OptionName = \"collision\";\n return Collision;\n}(NestedOption));\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Column.OptionName = \"columns\";\n Column.IsCollectionItem = true;\n Column.DefaultsProps = {\n defaultFilterValue: \"filterValue\",\n defaultFilterValues: \"filterValues\",\n defaultGroupIndex: \"groupIndex\",\n defaultSelectedFilterOperation: \"selectedFilterOperation\",\n defaultSortIndex: \"sortIndex\",\n defaultSortOrder: \"sortOrder\",\n defaultVisible: \"visible\",\n defaultVisibleIndex: \"visibleIndex\"\n };\n Column.ExpectedChildren = {\n AsyncRule: { optionName: \"validationRules\", isCollectionItem: true },\n button: { optionName: \"buttons\", isCollectionItem: true },\n columnHeaderFilter: { optionName: \"headerFilter\", isCollectionItem: false },\n columnLookup: { optionName: \"lookup\", isCollectionItem: false },\n CompareRule: { optionName: \"validationRules\", isCollectionItem: true },\n CustomRule: { optionName: \"validationRules\", isCollectionItem: true },\n EmailRule: { optionName: \"validationRules\", isCollectionItem: true },\n format: { optionName: \"format\", isCollectionItem: false },\n formItem: { optionName: \"formItem\", isCollectionItem: false },\n headerFilter: { optionName: \"headerFilter\", isCollectionItem: false },\n lookup: { optionName: \"lookup\", isCollectionItem: false },\n NumericRule: { optionName: \"validationRules\", isCollectionItem: true },\n PatternRule: { optionName: \"validationRules\", isCollectionItem: true },\n RangeRule: { optionName: \"validationRules\", isCollectionItem: true },\n RequiredRule: { optionName: \"validationRules\", isCollectionItem: true },\n StringLengthRule: { optionName: \"validationRules\", isCollectionItem: true },\n validationRule: { optionName: \"validationRules\", isCollectionItem: true }\n };\n Column.TemplateProps = [{\n tmplOption: \"cellTemplate\",\n render: \"cellRender\",\n component: \"cellComponent\",\n keyFn: \"cellKeyFn\"\n }, {\n tmplOption: \"editCellTemplate\",\n render: \"editCellRender\",\n component: \"editCellComponent\",\n keyFn: \"editCellKeyFn\"\n }, {\n tmplOption: \"groupCellTemplate\",\n render: \"groupCellRender\",\n component: \"groupCellComponent\",\n keyFn: \"groupCellKeyFn\"\n }, {\n tmplOption: \"headerCellTemplate\",\n render: \"headerCellRender\",\n component: \"headerCellComponent\",\n keyFn: \"headerCellKeyFn\"\n }];\n return Column;\n}(NestedOption));\nvar ColumnChooser = /** @class */ (function (_super) {\n __extends(ColumnChooser, _super);\n function ColumnChooser() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnChooser.OptionName = \"columnChooser\";\n ColumnChooser.ExpectedChildren = {\n columnChooserSearch: { optionName: \"search\", isCollectionItem: false },\n columnChooserSelection: { optionName: \"selection\", isCollectionItem: false },\n position: { optionName: \"position\", isCollectionItem: false },\n search: { optionName: \"search\", isCollectionItem: false },\n selection: { optionName: \"selection\", isCollectionItem: false }\n };\n return ColumnChooser;\n}(NestedOption));\nvar ColumnChooserSearch = /** @class */ (function (_super) {\n __extends(ColumnChooserSearch, _super);\n function ColumnChooserSearch() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnChooserSearch.OptionName = \"search\";\n return ColumnChooserSearch;\n}(NestedOption));\nvar ColumnChooserSelection = /** @class */ (function (_super) {\n __extends(ColumnChooserSelection, _super);\n function ColumnChooserSelection() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnChooserSelection.OptionName = \"selection\";\n return ColumnChooserSelection;\n}(NestedOption));\nvar ColumnFixing = /** @class */ (function (_super) {\n __extends(ColumnFixing, _super);\n function ColumnFixing() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnFixing.OptionName = \"columnFixing\";\n ColumnFixing.ExpectedChildren = {\n columnFixingTexts: { optionName: \"texts\", isCollectionItem: false },\n texts: { optionName: \"texts\", isCollectionItem: false }\n };\n return ColumnFixing;\n}(NestedOption));\nvar ColumnFixingTexts = /** @class */ (function (_super) {\n __extends(ColumnFixingTexts, _super);\n function ColumnFixingTexts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnFixingTexts.OptionName = \"texts\";\n return ColumnFixingTexts;\n}(NestedOption));\nvar ColumnHeaderFilter = /** @class */ (function (_super) {\n __extends(ColumnHeaderFilter, _super);\n function ColumnHeaderFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnHeaderFilter.OptionName = \"headerFilter\";\n ColumnHeaderFilter.ExpectedChildren = {\n columnHeaderFilterSearch: { optionName: \"search\", isCollectionItem: false },\n search: { optionName: \"search\", isCollectionItem: false }\n };\n return ColumnHeaderFilter;\n}(NestedOption));\nvar ColumnHeaderFilterSearch = /** @class */ (function (_super) {\n __extends(ColumnHeaderFilterSearch, _super);\n function ColumnHeaderFilterSearch() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnHeaderFilterSearch.OptionName = \"search\";\n return ColumnHeaderFilterSearch;\n}(NestedOption));\nvar ColumnLookup = /** @class */ (function (_super) {\n __extends(ColumnLookup, _super);\n function ColumnLookup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnLookup.OptionName = \"lookup\";\n return ColumnLookup;\n}(NestedOption));\nvar CompareRule = /** @class */ (function (_super) {\n __extends(CompareRule, _super);\n function CompareRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CompareRule.OptionName = \"validationRules\";\n CompareRule.IsCollectionItem = true;\n CompareRule.PredefinedProps = {\n type: \"compare\"\n };\n return CompareRule;\n}(NestedOption));\nvar CursorOffset = /** @class */ (function (_super) {\n __extends(CursorOffset, _super);\n function CursorOffset() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CursorOffset.OptionName = \"cursorOffset\";\n return CursorOffset;\n}(NestedOption));\nvar CustomOperation = /** @class */ (function (_super) {\n __extends(CustomOperation, _super);\n function CustomOperation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CustomOperation.OptionName = \"customOperations\";\n CustomOperation.IsCollectionItem = true;\n CustomOperation.TemplateProps = [{\n tmplOption: \"editorTemplate\",\n render: \"editorRender\",\n component: \"editorComponent\",\n keyFn: \"editorKeyFn\"\n }];\n return CustomOperation;\n}(NestedOption));\nvar CustomRule = /** @class */ (function (_super) {\n __extends(CustomRule, _super);\n function CustomRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CustomRule.OptionName = \"validationRules\";\n CustomRule.IsCollectionItem = true;\n CustomRule.PredefinedProps = {\n type: \"custom\"\n };\n return CustomRule;\n}(NestedOption));\nvar DataGridHeaderFilter = /** @class */ (function (_super) {\n __extends(DataGridHeaderFilter, _super);\n function DataGridHeaderFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DataGridHeaderFilter.OptionName = \"headerFilter\";\n DataGridHeaderFilter.ExpectedChildren = {\n dataGridHeaderFilterSearch: { optionName: \"search\", isCollectionItem: false },\n dataGridHeaderFilterTexts: { optionName: \"texts\", isCollectionItem: false },\n search: { optionName: \"search\", isCollectionItem: false },\n texts: { optionName: \"texts\", isCollectionItem: false }\n };\n return DataGridHeaderFilter;\n}(NestedOption));\nvar DataGridHeaderFilterSearch = /** @class */ (function (_super) {\n __extends(DataGridHeaderFilterSearch, _super);\n function DataGridHeaderFilterSearch() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DataGridHeaderFilterSearch.OptionName = \"search\";\n return DataGridHeaderFilterSearch;\n}(NestedOption));\nvar DataGridHeaderFilterTexts = /** @class */ (function (_super) {\n __extends(DataGridHeaderFilterTexts, _super);\n function DataGridHeaderFilterTexts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DataGridHeaderFilterTexts.OptionName = \"texts\";\n return DataGridHeaderFilterTexts;\n}(NestedOption));\nvar DataGridSelection = /** @class */ (function (_super) {\n __extends(DataGridSelection, _super);\n function DataGridSelection() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DataGridSelection.OptionName = \"selection\";\n return DataGridSelection;\n}(NestedOption));\nvar Editing = /** @class */ (function (_super) {\n __extends(Editing, _super);\n function Editing() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Editing.OptionName = \"editing\";\n Editing.DefaultsProps = {\n defaultChanges: \"changes\",\n defaultEditColumnName: \"editColumnName\",\n defaultEditRowKey: \"editRowKey\"\n };\n Editing.ExpectedChildren = {\n change: { optionName: \"changes\", isCollectionItem: true },\n editingTexts: { optionName: \"texts\", isCollectionItem: false },\n form: { optionName: \"form\", isCollectionItem: false },\n popup: { optionName: \"popup\", isCollectionItem: false },\n texts: { optionName: \"texts\", isCollectionItem: false }\n };\n return Editing;\n}(NestedOption));\nvar EditingTexts = /** @class */ (function (_super) {\n __extends(EditingTexts, _super);\n function EditingTexts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EditingTexts.OptionName = \"texts\";\n return EditingTexts;\n}(NestedOption));\nvar EmailRule = /** @class */ (function (_super) {\n __extends(EmailRule, _super);\n function EmailRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmailRule.OptionName = \"validationRules\";\n EmailRule.IsCollectionItem = true;\n EmailRule.PredefinedProps = {\n type: \"email\"\n };\n return EmailRule;\n}(NestedOption));\nvar Export = /** @class */ (function (_super) {\n __extends(Export, _super);\n function Export() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Export.OptionName = \"export\";\n Export.ExpectedChildren = {\n exportTexts: { optionName: \"texts\", isCollectionItem: false },\n texts: { optionName: \"texts\", isCollectionItem: false }\n };\n return Export;\n}(NestedOption));\nvar ExportTexts = /** @class */ (function (_super) {\n __extends(ExportTexts, _super);\n function ExportTexts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExportTexts.OptionName = \"texts\";\n return ExportTexts;\n}(NestedOption));\nvar Field = /** @class */ (function (_super) {\n __extends(Field, _super);\n function Field() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Field.OptionName = \"fields\";\n Field.IsCollectionItem = true;\n Field.ExpectedChildren = {\n fieldLookup: { optionName: \"lookup\", isCollectionItem: false },\n format: { optionName: \"format\", isCollectionItem: false },\n lookup: { optionName: \"lookup\", isCollectionItem: false }\n };\n Field.TemplateProps = [{\n tmplOption: \"editorTemplate\",\n render: \"editorRender\",\n component: \"editorComponent\",\n keyFn: \"editorKeyFn\"\n }];\n return Field;\n}(NestedOption));\nvar FieldLookup = /** @class */ (function (_super) {\n __extends(FieldLookup, _super);\n function FieldLookup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FieldLookup.OptionName = \"lookup\";\n return FieldLookup;\n}(NestedOption));\nvar FilterBuilder = /** @class */ (function (_super) {\n __extends(FilterBuilder, _super);\n function FilterBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterBuilder.OptionName = \"filterBuilder\";\n FilterBuilder.DefaultsProps = {\n defaultValue: \"value\"\n };\n FilterBuilder.ExpectedChildren = {\n customOperation: { optionName: \"customOperations\", isCollectionItem: true },\n field: { optionName: \"fields\", isCollectionItem: true },\n filterOperationDescriptions: { optionName: \"filterOperationDescriptions\", isCollectionItem: false },\n groupOperationDescriptions: { optionName: \"groupOperationDescriptions\", isCollectionItem: false }\n };\n return FilterBuilder;\n}(NestedOption));\nvar FilterBuilderPopup = /** @class */ (function (_super) {\n __extends(FilterBuilderPopup, _super);\n function FilterBuilderPopup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterBuilderPopup.OptionName = \"filterBuilderPopup\";\n FilterBuilderPopup.DefaultsProps = {\n defaultHeight: \"height\",\n defaultPosition: \"position\",\n defaultVisible: \"visible\",\n defaultWidth: \"width\"\n };\n FilterBuilderPopup.TemplateProps = [{\n tmplOption: \"contentTemplate\",\n render: \"contentRender\",\n component: \"contentComponent\",\n keyFn: \"contentKeyFn\"\n }, {\n tmplOption: \"titleTemplate\",\n render: \"titleRender\",\n component: \"titleComponent\",\n keyFn: \"titleKeyFn\"\n }];\n return FilterBuilderPopup;\n}(NestedOption));\nvar FilterOperationDescriptions = /** @class */ (function (_super) {\n __extends(FilterOperationDescriptions, _super);\n function FilterOperationDescriptions() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterOperationDescriptions.OptionName = \"filterOperationDescriptions\";\n return FilterOperationDescriptions;\n}(NestedOption));\nvar FilterPanel = /** @class */ (function (_super) {\n __extends(FilterPanel, _super);\n function FilterPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterPanel.OptionName = \"filterPanel\";\n FilterPanel.DefaultsProps = {\n defaultFilterEnabled: \"filterEnabled\"\n };\n FilterPanel.ExpectedChildren = {\n filterPanelTexts: { optionName: \"texts\", isCollectionItem: false },\n texts: { optionName: \"texts\", isCollectionItem: false }\n };\n return FilterPanel;\n}(NestedOption));\nvar FilterPanelTexts = /** @class */ (function (_super) {\n __extends(FilterPanelTexts, _super);\n function FilterPanelTexts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterPanelTexts.OptionName = \"texts\";\n return FilterPanelTexts;\n}(NestedOption));\nvar FilterRow = /** @class */ (function (_super) {\n __extends(FilterRow, _super);\n function FilterRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterRow.OptionName = \"filterRow\";\n FilterRow.ExpectedChildren = {\n operationDescriptions: { optionName: \"operationDescriptions\", isCollectionItem: false }\n };\n return FilterRow;\n}(NestedOption));\nvar Form = /** @class */ (function (_super) {\n __extends(Form, _super);\n function Form() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Form.OptionName = \"form\";\n Form.DefaultsProps = {\n defaultFormData: \"formData\"\n };\n Form.ExpectedChildren = {\n colCountByScreen: { optionName: \"colCountByScreen\", isCollectionItem: false }\n };\n return Form;\n}(NestedOption));\nvar Format = /** @class */ (function (_super) {\n __extends(Format, _super);\n function Format() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Format.OptionName = \"format\";\n return Format;\n}(NestedOption));\nvar FormItem = /** @class */ (function (_super) {\n __extends(FormItem, _super);\n function FormItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FormItem.OptionName = \"formItem\";\n FormItem.ExpectedChildren = {\n AsyncRule: { optionName: \"validationRules\", isCollectionItem: true },\n CompareRule: { optionName: \"validationRules\", isCollectionItem: true },\n CustomRule: { optionName: \"validationRules\", isCollectionItem: true },\n EmailRule: { optionName: \"validationRules\", isCollectionItem: true },\n label: { optionName: \"label\", isCollectionItem: false },\n NumericRule: { optionName: \"validationRules\", isCollectionItem: true },\n PatternRule: { optionName: \"validationRules\", isCollectionItem: true },\n RangeRule: { optionName: \"validationRules\", isCollectionItem: true },\n RequiredRule: { optionName: \"validationRules\", isCollectionItem: true },\n StringLengthRule: { optionName: \"validationRules\", isCollectionItem: true },\n validationRule: { optionName: \"validationRules\", isCollectionItem: true }\n };\n FormItem.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return FormItem;\n}(NestedOption));\nvar From = /** @class */ (function (_super) {\n __extends(From, _super);\n function From() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n From.OptionName = \"from\";\n From.ExpectedChildren = {\n position: { optionName: \"position\", isCollectionItem: false }\n };\n return From;\n}(NestedOption));\nvar Grouping = /** @class */ (function (_super) {\n __extends(Grouping, _super);\n function Grouping() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Grouping.OptionName = \"grouping\";\n Grouping.ExpectedChildren = {\n groupingTexts: { optionName: \"texts\", isCollectionItem: false },\n texts: { optionName: \"texts\", isCollectionItem: false }\n };\n return Grouping;\n}(NestedOption));\nvar GroupingTexts = /** @class */ (function (_super) {\n __extends(GroupingTexts, _super);\n function GroupingTexts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupingTexts.OptionName = \"texts\";\n return GroupingTexts;\n}(NestedOption));\nvar GroupItem = /** @class */ (function (_super) {\n __extends(GroupItem, _super);\n function GroupItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupItem.OptionName = \"groupItems\";\n GroupItem.IsCollectionItem = true;\n GroupItem.ExpectedChildren = {\n valueFormat: { optionName: \"valueFormat\", isCollectionItem: false }\n };\n return GroupItem;\n}(NestedOption));\nvar GroupOperationDescriptions = /** @class */ (function (_super) {\n __extends(GroupOperationDescriptions, _super);\n function GroupOperationDescriptions() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupOperationDescriptions.OptionName = \"groupOperationDescriptions\";\n return GroupOperationDescriptions;\n}(NestedOption));\nvar GroupPanel = /** @class */ (function (_super) {\n __extends(GroupPanel, _super);\n function GroupPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupPanel.OptionName = \"groupPanel\";\n GroupPanel.DefaultsProps = {\n defaultVisible: \"visible\"\n };\n return GroupPanel;\n}(NestedOption));\nvar HeaderFilter = /** @class */ (function (_super) {\n __extends(HeaderFilter, _super);\n function HeaderFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeaderFilter.OptionName = \"headerFilter\";\n return HeaderFilter;\n}(NestedOption));\nvar Hide = /** @class */ (function (_super) {\n __extends(Hide, _super);\n function Hide() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Hide.OptionName = \"hide\";\n Hide.ExpectedChildren = {\n from: { optionName: \"from\", isCollectionItem: false },\n to: { optionName: \"to\", isCollectionItem: false }\n };\n return Hide;\n}(NestedOption));\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Item.OptionName = \"items\";\n Item.IsCollectionItem = true;\n Item.TemplateProps = [{\n tmplOption: \"menuItemTemplate\",\n render: \"menuItemRender\",\n component: \"menuItemComponent\",\n keyFn: \"menuItemKeyFn\"\n }, {\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return Item;\n}(NestedOption));\nvar KeyboardNavigation = /** @class */ (function (_super) {\n __extends(KeyboardNavigation, _super);\n function KeyboardNavigation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n KeyboardNavigation.OptionName = \"keyboardNavigation\";\n return KeyboardNavigation;\n}(NestedOption));\nvar Label = /** @class */ (function (_super) {\n __extends(Label, _super);\n function Label() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Label.OptionName = \"label\";\n Label.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return Label;\n}(NestedOption));\nvar LoadPanel = /** @class */ (function (_super) {\n __extends(LoadPanel, _super);\n function LoadPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoadPanel.OptionName = \"loadPanel\";\n return LoadPanel;\n}(NestedOption));\nvar Lookup = /** @class */ (function (_super) {\n __extends(Lookup, _super);\n function Lookup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Lookup.OptionName = \"lookup\";\n return Lookup;\n}(NestedOption));\nvar MasterDetail = /** @class */ (function (_super) {\n __extends(MasterDetail, _super);\n function MasterDetail() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MasterDetail.OptionName = \"masterDetail\";\n MasterDetail.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return MasterDetail;\n}(NestedOption));\nvar My = /** @class */ (function (_super) {\n __extends(My, _super);\n function My() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n My.OptionName = \"my\";\n return My;\n}(NestedOption));\nvar NumericRule = /** @class */ (function (_super) {\n __extends(NumericRule, _super);\n function NumericRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NumericRule.OptionName = \"validationRules\";\n NumericRule.IsCollectionItem = true;\n NumericRule.PredefinedProps = {\n type: \"numeric\"\n };\n return NumericRule;\n}(NestedOption));\nvar Offset = /** @class */ (function (_super) {\n __extends(Offset, _super);\n function Offset() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Offset.OptionName = \"offset\";\n return Offset;\n}(NestedOption));\nvar OperationDescriptions = /** @class */ (function (_super) {\n __extends(OperationDescriptions, _super);\n function OperationDescriptions() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OperationDescriptions.OptionName = \"operationDescriptions\";\n return OperationDescriptions;\n}(NestedOption));\nvar Pager = /** @class */ (function (_super) {\n __extends(Pager, _super);\n function Pager() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Pager.OptionName = \"pager\";\n return Pager;\n}(NestedOption));\nvar Paging = /** @class */ (function (_super) {\n __extends(Paging, _super);\n function Paging() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Paging.OptionName = \"paging\";\n Paging.DefaultsProps = {\n defaultPageIndex: \"pageIndex\",\n defaultPageSize: \"pageSize\"\n };\n return Paging;\n}(NestedOption));\nvar PatternRule = /** @class */ (function (_super) {\n __extends(PatternRule, _super);\n function PatternRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PatternRule.OptionName = \"validationRules\";\n PatternRule.IsCollectionItem = true;\n PatternRule.PredefinedProps = {\n type: \"pattern\"\n };\n return PatternRule;\n}(NestedOption));\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Popup.OptionName = \"popup\";\n Popup.DefaultsProps = {\n defaultHeight: \"height\",\n defaultPosition: \"position\",\n defaultVisible: \"visible\",\n defaultWidth: \"width\"\n };\n Popup.ExpectedChildren = {\n animation: { optionName: \"animation\", isCollectionItem: false },\n position: { optionName: \"position\", isCollectionItem: false },\n toolbarItem: { optionName: \"toolbarItems\", isCollectionItem: true }\n };\n Popup.TemplateProps = [{\n tmplOption: \"contentTemplate\",\n render: \"contentRender\",\n component: \"contentComponent\",\n keyFn: \"contentKeyFn\"\n }, {\n tmplOption: \"titleTemplate\",\n render: \"titleRender\",\n component: \"titleComponent\",\n keyFn: \"titleKeyFn\"\n }];\n return Popup;\n}(NestedOption));\nvar Position = /** @class */ (function (_super) {\n __extends(Position, _super);\n function Position() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Position.OptionName = \"position\";\n return Position;\n}(NestedOption));\nvar RangeRule = /** @class */ (function (_super) {\n __extends(RangeRule, _super);\n function RangeRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RangeRule.OptionName = \"validationRules\";\n RangeRule.IsCollectionItem = true;\n RangeRule.PredefinedProps = {\n type: \"range\"\n };\n return RangeRule;\n}(NestedOption));\nvar RemoteOperations = /** @class */ (function (_super) {\n __extends(RemoteOperations, _super);\n function RemoteOperations() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RemoteOperations.OptionName = \"remoteOperations\";\n return RemoteOperations;\n}(NestedOption));\nvar RequiredRule = /** @class */ (function (_super) {\n __extends(RequiredRule, _super);\n function RequiredRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RequiredRule.OptionName = \"validationRules\";\n RequiredRule.IsCollectionItem = true;\n RequiredRule.PredefinedProps = {\n type: \"required\"\n };\n return RequiredRule;\n}(NestedOption));\nvar RowDragging = /** @class */ (function (_super) {\n __extends(RowDragging, _super);\n function RowDragging() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RowDragging.OptionName = \"rowDragging\";\n RowDragging.ExpectedChildren = {\n cursorOffset: { optionName: \"cursorOffset\", isCollectionItem: false }\n };\n RowDragging.TemplateProps = [{\n tmplOption: \"dragTemplate\",\n render: \"dragRender\",\n component: \"dragComponent\",\n keyFn: \"dragKeyFn\"\n }];\n return RowDragging;\n}(NestedOption));\nvar Scrolling = /** @class */ (function (_super) {\n __extends(Scrolling, _super);\n function Scrolling() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Scrolling.OptionName = \"scrolling\";\n return Scrolling;\n}(NestedOption));\nvar Search = /** @class */ (function (_super) {\n __extends(Search, _super);\n function Search() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Search.OptionName = \"search\";\n return Search;\n}(NestedOption));\nvar SearchPanel = /** @class */ (function (_super) {\n __extends(SearchPanel, _super);\n function SearchPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SearchPanel.OptionName = \"searchPanel\";\n SearchPanel.DefaultsProps = {\n defaultText: \"text\"\n };\n return SearchPanel;\n}(NestedOption));\nvar Selection = /** @class */ (function (_super) {\n __extends(Selection, _super);\n function Selection() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Selection.OptionName = \"selection\";\n return Selection;\n}(NestedOption));\nvar Show = /** @class */ (function (_super) {\n __extends(Show, _super);\n function Show() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Show.OptionName = \"show\";\n return Show;\n}(NestedOption));\nvar SortByGroupSummaryInfo = /** @class */ (function (_super) {\n __extends(SortByGroupSummaryInfo, _super);\n function SortByGroupSummaryInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortByGroupSummaryInfo.OptionName = \"sortByGroupSummaryInfo\";\n SortByGroupSummaryInfo.IsCollectionItem = true;\n return SortByGroupSummaryInfo;\n}(NestedOption));\nvar Sorting = /** @class */ (function (_super) {\n __extends(Sorting, _super);\n function Sorting() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Sorting.OptionName = \"sorting\";\n return Sorting;\n}(NestedOption));\nvar StateStoring = /** @class */ (function (_super) {\n __extends(StateStoring, _super);\n function StateStoring() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StateStoring.OptionName = \"stateStoring\";\n return StateStoring;\n}(NestedOption));\nvar StringLengthRule = /** @class */ (function (_super) {\n __extends(StringLengthRule, _super);\n function StringLengthRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StringLengthRule.OptionName = \"validationRules\";\n StringLengthRule.IsCollectionItem = true;\n StringLengthRule.PredefinedProps = {\n type: \"stringLength\"\n };\n return StringLengthRule;\n}(NestedOption));\nvar Summary = /** @class */ (function (_super) {\n __extends(Summary, _super);\n function Summary() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Summary.OptionName = \"summary\";\n Summary.ExpectedChildren = {\n groupItem: { optionName: \"groupItems\", isCollectionItem: true },\n summaryTexts: { optionName: \"texts\", isCollectionItem: false },\n texts: { optionName: \"texts\", isCollectionItem: false },\n totalItem: { optionName: \"totalItems\", isCollectionItem: true }\n };\n return Summary;\n}(NestedOption));\nvar SummaryTexts = /** @class */ (function (_super) {\n __extends(SummaryTexts, _super);\n function SummaryTexts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SummaryTexts.OptionName = \"texts\";\n return SummaryTexts;\n}(NestedOption));\nvar Texts = /** @class */ (function (_super) {\n __extends(Texts, _super);\n function Texts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Texts.OptionName = \"texts\";\n return Texts;\n}(NestedOption));\nvar To = /** @class */ (function (_super) {\n __extends(To, _super);\n function To() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n To.OptionName = \"to\";\n return To;\n}(NestedOption));\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n function Toolbar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Toolbar.OptionName = \"toolbar\";\n Toolbar.ExpectedChildren = {\n item: { optionName: \"items\", isCollectionItem: true }\n };\n return Toolbar;\n}(NestedOption));\nvar ToolbarItem = /** @class */ (function (_super) {\n __extends(ToolbarItem, _super);\n function ToolbarItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ToolbarItem.OptionName = \"toolbarItems\";\n ToolbarItem.IsCollectionItem = true;\n ToolbarItem.TemplateProps = [{\n tmplOption: \"menuItemTemplate\",\n render: \"menuItemRender\",\n component: \"menuItemComponent\",\n keyFn: \"menuItemKeyFn\"\n }, {\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return ToolbarItem;\n}(NestedOption));\nvar TotalItem = /** @class */ (function (_super) {\n __extends(TotalItem, _super);\n function TotalItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TotalItem.OptionName = \"totalItems\";\n TotalItem.IsCollectionItem = true;\n TotalItem.ExpectedChildren = {\n valueFormat: { optionName: \"valueFormat\", isCollectionItem: false }\n };\n return TotalItem;\n}(NestedOption));\nvar ValidationRule = /** @class */ (function (_super) {\n __extends(ValidationRule, _super);\n function ValidationRule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValidationRule.OptionName = \"validationRules\";\n ValidationRule.IsCollectionItem = true;\n ValidationRule.PredefinedProps = {\n type: \"required\"\n };\n return ValidationRule;\n}(NestedOption));\nvar ValueFormat = /** @class */ (function (_super) {\n __extends(ValueFormat, _super);\n function ValueFormat() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueFormat.OptionName = \"valueFormat\";\n return ValueFormat;\n}(NestedOption));\nexport default DataGrid;\nexport { DataGrid, Animation, AsyncRule, At, BoundaryOffset, Button, Change, ColCountByScreen, Collision, Column, ColumnChooser, ColumnChooserSearch, ColumnChooserSelection, ColumnFixing, ColumnFixingTexts, ColumnHeaderFilter, ColumnHeaderFilterSearch, ColumnLookup, CompareRule, CursorOffset, CustomOperation, CustomRule, DataGridHeaderFilter, DataGridHeaderFilterSearch, DataGridHeaderFilterTexts, DataGridSelection, Editing, EditingTexts, EmailRule, Export, ExportTexts, Field, FieldLookup, FilterBuilder, FilterBuilderPopup, FilterOperationDescriptions, FilterPanel, FilterPanelTexts, FilterRow, Form, Format, FormItem, From, Grouping, GroupingTexts, GroupItem, GroupOperationDescriptions, GroupPanel, HeaderFilter, Hide, Item, KeyboardNavigation, Label, LoadPanel, Lookup, MasterDetail, My, NumericRule, Offset, OperationDescriptions, Pager, Paging, PatternRule, Popup, Position, RangeRule, RemoteOperations, RequiredRule, RowDragging, Scrolling, Search, SearchPanel, Selection, Show, SortByGroupSummaryInfo, Sorting, StateStoring, StringLengthRule, Summary, SummaryTexts, Texts, To, Toolbar, ToolbarItem, TotalItem, ValidationRule, ValueFormat };\n","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use client\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport dxDropDownButton from \"devextreme/ui/drop_down_button\";\nimport * as PropTypes from \"prop-types\";\nimport { Component as BaseComponent } from \"./core/component\";\nimport NestedOption from \"./core/nested-option\";\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n function DropDownButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._WidgetClass = dxDropDownButton;\n _this.independentEvents = [\"onButtonClick\", \"onContentReady\", \"onDisposing\", \"onInitialized\", \"onItemClick\"];\n _this._expectedChildren = {\n dropDownOptions: { optionName: \"dropDownOptions\", isCollectionItem: false },\n item: { optionName: \"items\", isCollectionItem: true }\n };\n _this._templateProps = [{\n tmplOption: \"dropDownContentTemplate\",\n render: \"dropDownContentRender\",\n component: \"dropDownContentComponent\",\n keyFn: \"dropDownContentKeyFn\"\n }, {\n tmplOption: \"itemTemplate\",\n render: \"itemRender\",\n component: \"itemComponent\",\n keyFn: \"itemKeyFn\"\n }];\n return _this;\n }\n Object.defineProperty(DropDownButton.prototype, \"instance\", {\n get: function () {\n return this._instance;\n },\n enumerable: false,\n configurable: true\n });\n return DropDownButton;\n}(BaseComponent));\nDropDownButton.propTypes = {\n accessKey: PropTypes.string,\n activeStateEnabled: PropTypes.bool,\n deferRendering: PropTypes.bool,\n disabled: PropTypes.bool,\n displayExpr: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string\n ]),\n dropDownOptions: PropTypes.object,\n elementAttr: PropTypes.object,\n focusStateEnabled: PropTypes.bool,\n height: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.number,\n PropTypes.string\n ]),\n hint: PropTypes.string,\n hoverStateEnabled: PropTypes.bool,\n icon: PropTypes.string,\n items: PropTypes.array,\n keyExpr: PropTypes.string,\n noDataText: PropTypes.string,\n onButtonClick: PropTypes.func,\n onContentReady: PropTypes.func,\n onDisposing: PropTypes.func,\n onInitialized: PropTypes.func,\n onItemClick: PropTypes.func,\n onOptionChanged: PropTypes.func,\n onSelectionChanged: PropTypes.func,\n opened: PropTypes.bool,\n rtlEnabled: PropTypes.bool,\n selectedItemKey: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n showArrowIcon: PropTypes.bool,\n splitButton: PropTypes.bool,\n stylingMode: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"text\",\n \"outlined\",\n \"contained\"\n ])\n ]),\n tabIndex: PropTypes.number,\n text: PropTypes.string,\n type: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"danger\",\n \"default\",\n \"normal\",\n \"success\"\n ])\n ]),\n useItemTextAsTitle: PropTypes.bool,\n useSelectMode: PropTypes.bool,\n visible: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.number,\n PropTypes.string\n ]),\n wrapItemText: PropTypes.bool\n};\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Animation.OptionName = \"animation\";\n Animation.ExpectedChildren = {\n hide: { optionName: \"hide\", isCollectionItem: false },\n show: { optionName: \"show\", isCollectionItem: false }\n };\n return Animation;\n}(NestedOption));\nvar At = /** @class */ (function (_super) {\n __extends(At, _super);\n function At() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n At.OptionName = \"at\";\n return At;\n}(NestedOption));\nvar BoundaryOffset = /** @class */ (function (_super) {\n __extends(BoundaryOffset, _super);\n function BoundaryOffset() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BoundaryOffset.OptionName = \"boundaryOffset\";\n return BoundaryOffset;\n}(NestedOption));\nvar Collision = /** @class */ (function (_super) {\n __extends(Collision, _super);\n function Collision() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Collision.OptionName = \"collision\";\n return Collision;\n}(NestedOption));\nvar DropDownOptions = /** @class */ (function (_super) {\n __extends(DropDownOptions, _super);\n function DropDownOptions() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DropDownOptions.OptionName = \"dropDownOptions\";\n DropDownOptions.DefaultsProps = {\n defaultHeight: \"height\",\n defaultPosition: \"position\",\n defaultVisible: \"visible\",\n defaultWidth: \"width\"\n };\n DropDownOptions.ExpectedChildren = {\n animation: { optionName: \"animation\", isCollectionItem: false },\n position: { optionName: \"position\", isCollectionItem: false },\n toolbarItem: { optionName: \"toolbarItems\", isCollectionItem: true }\n };\n DropDownOptions.TemplateProps = [{\n tmplOption: \"contentTemplate\",\n render: \"contentRender\",\n component: \"contentComponent\",\n keyFn: \"contentKeyFn\"\n }, {\n tmplOption: \"titleTemplate\",\n render: \"titleRender\",\n component: \"titleComponent\",\n keyFn: \"titleKeyFn\"\n }];\n return DropDownOptions;\n}(NestedOption));\nvar From = /** @class */ (function (_super) {\n __extends(From, _super);\n function From() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n From.OptionName = \"from\";\n From.ExpectedChildren = {\n position: { optionName: \"position\", isCollectionItem: false }\n };\n return From;\n}(NestedOption));\nvar Hide = /** @class */ (function (_super) {\n __extends(Hide, _super);\n function Hide() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Hide.OptionName = \"hide\";\n Hide.ExpectedChildren = {\n from: { optionName: \"from\", isCollectionItem: false },\n to: { optionName: \"to\", isCollectionItem: false }\n };\n return Hide;\n}(NestedOption));\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Item.OptionName = \"items\";\n Item.IsCollectionItem = true;\n Item.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return Item;\n}(NestedOption));\nvar My = /** @class */ (function (_super) {\n __extends(My, _super);\n function My() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n My.OptionName = \"my\";\n return My;\n}(NestedOption));\nvar Offset = /** @class */ (function (_super) {\n __extends(Offset, _super);\n function Offset() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Offset.OptionName = \"offset\";\n return Offset;\n}(NestedOption));\nvar Position = /** @class */ (function (_super) {\n __extends(Position, _super);\n function Position() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Position.OptionName = \"position\";\n return Position;\n}(NestedOption));\nvar Show = /** @class */ (function (_super) {\n __extends(Show, _super);\n function Show() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Show.OptionName = \"show\";\n return Show;\n}(NestedOption));\nvar To = /** @class */ (function (_super) {\n __extends(To, _super);\n function To() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n To.OptionName = \"to\";\n return To;\n}(NestedOption));\nvar ToolbarItem = /** @class */ (function (_super) {\n __extends(ToolbarItem, _super);\n function ToolbarItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ToolbarItem.OptionName = \"toolbarItems\";\n ToolbarItem.IsCollectionItem = true;\n ToolbarItem.TemplateProps = [{\n tmplOption: \"menuItemTemplate\",\n render: \"menuItemRender\",\n component: \"menuItemComponent\",\n keyFn: \"menuItemKeyFn\"\n }, {\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return ToolbarItem;\n}(NestedOption));\nexport default DropDownButton;\nexport { DropDownButton, Animation, At, BoundaryOffset, Collision, DropDownOptions, From, Hide, Item, My, Offset, Position, Show, To, ToolbarItem };\n","// Version: 2.9.3\r\n// https://github.com/DevExpress/DevExtreme.AspNet.Data\n// Copyright (c) Developer Express Inc.\n\n/* global define, module, require */\n\n(function(factory) {\n \"use strict\";\n\n function unwrapESModule(module) {\n return module && module.__esModule && module.default ? module.default : module;\n }\n\n if(typeof define === \"function\" && define.amd) {\n define(function(require, exports, module) {\n module.exports = factory(\n unwrapESModule(require(\"devextreme/core/utils/ajax\")),\n require(\"devextreme/core/utils/deferred\").Deferred,\n require(\"devextreme/core/utils/extend\").extend,\n unwrapESModule(require(\"devextreme/data/custom_store\")),\n unwrapESModule(require(\"devextreme/data/utils\"))\n );\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(\n unwrapESModule(require(\"devextreme/core/utils/ajax\")),\n require(\"devextreme/core/utils/deferred\").Deferred,\n require(\"devextreme/core/utils/extend\").extend,\n unwrapESModule(require(\"devextreme/data/custom_store\")),\n unwrapESModule(require(\"devextreme/data/utils\"))\n );\n } else {\n throw \"This script should be used with an AMD or CommonJS loader\";\n }\n\n})(function(ajaxUtility, Deferred, extend, CustomStore, dataUtils) {\n \"use strict\";\n\n var CUSTOM_STORE_OPTIONS = [\n \"onLoading\", \"onLoaded\",\n \"onInserting\", \"onInserted\",\n \"onUpdating\", \"onUpdated\",\n \"onRemoving\", \"onRemoved\",\n \"onModifying\", \"onModified\",\n \"onPush\",\n \"loadMode\", \"cacheRawData\",\n \"errorHandler\"\n ];\n\n function createStoreConfig(options) {\n var keyExpr = options.key,\n loadUrl = options.loadUrl,\n loadMethod = options.loadMethod || \"GET\",\n loadParams = options.loadParams,\n isRawLoadMode = options.loadMode === \"raw\",\n updateUrl = options.updateUrl,\n insertUrl = options.insertUrl,\n deleteUrl = options.deleteUrl,\n onBeforeSend = options.onBeforeSend,\n onAjaxError = options.onAjaxError;\n\n function send(operation, requiresKey, ajaxSettings, customSuccessHandler) {\n var d = Deferred(),\n thenable,\n beforeSendResult;\n\n function sendCore() {\n ajaxUtility.sendRequest(ajaxSettings).then(\n function(res, textStatus, xhr) {\n if(customSuccessHandler)\n customSuccessHandler(d, res, xhr);\n else\n d.resolve();\n },\n function(xhr, textStatus) {\n var error = getErrorMessageFromXhr(xhr);\n\n if(onAjaxError) {\n var e = { xhr: xhr, error: error };\n onAjaxError(e);\n error = e.error;\n }\n\n if(error)\n d.reject(error);\n else\n d.reject(xhr, textStatus);\n }\n );\n }\n\n if(requiresKey && !keyExpr) {\n d.reject(new Error(\"Primary key is not specified (operation: '\" + operation + \"', url: '\" + ajaxSettings.url + \"')\"));\n } else {\n if(operation === \"load\") {\n ajaxSettings.cache = false;\n ajaxSettings.dataType = \"json\";\n } else {\n ajaxSettings.dataType = \"text\";\n }\n\n if(onBeforeSend) {\n beforeSendResult = onBeforeSend(operation, ajaxSettings);\n if(beforeSendResult && typeof beforeSendResult.then === \"function\")\n thenable = beforeSendResult;\n }\n\n if(thenable)\n thenable.then(sendCore, function(error) { d.reject(error); });\n else\n sendCore();\n }\n\n return d.promise();\n }\n\n function filterByKey(keyValue) {\n if(!Array.isArray(keyExpr))\n return [keyExpr, keyValue];\n\n return keyExpr.map(function(i) {\n return [i, keyValue[i]];\n });\n }\n\n function loadOptionsToActionParams(options, isCountQuery) {\n var result = {};\n\n if(isCountQuery)\n result.isCountQuery = isCountQuery;\n\n if(options) {\n\n [\"skip\", \"take\", \"requireTotalCount\", \"requireGroupCount\"].forEach(function(i) {\n if(options[i] !== undefined)\n result[i] = options[i];\n });\n\n var normalizeSorting = dataUtils.normalizeSortingInfo,\n group = options.group,\n filter = options.filter,\n select = options.select;\n\n if(options.sort)\n result.sort = JSON.stringify(normalizeSorting(options.sort));\n\n if(group) {\n if(!isAdvancedGrouping(group))\n group = normalizeSorting(group);\n result.group = JSON.stringify(group);\n }\n\n if(Array.isArray(filter)) {\n filter = extend(true, [], filter);\n stringifyDatesInFilter(filter);\n result.filter = JSON.stringify(filter);\n }\n\n if(options.totalSummary)\n result.totalSummary = JSON.stringify(options.totalSummary);\n\n if(options.groupSummary)\n result.groupSummary = JSON.stringify(options.groupSummary);\n\n if(select) {\n if(!Array.isArray(select))\n select = [ select ];\n result.select = JSON.stringify(select);\n }\n }\n\n extend(result, loadParams);\n\n return result;\n }\n\n function handleInsertUpdateSuccess(d, res, xhr) {\n var mime = xhr.getResponseHeader(\"Content-Type\"),\n isJSON = mime && mime.indexOf(\"application/json\") > -1;\n d.resolve(isJSON ? JSON.parse(res) : res);\n }\n\n var result = {\n key: keyExpr,\n useDefaultSearch: true,\n\n load: function(loadOptions) {\n return send(\n \"load\",\n false,\n {\n url: loadUrl,\n method: loadMethod,\n data: loadOptionsToActionParams(loadOptions)\n },\n function(d, res) {\n processLoadResponse(d, res, function(res) {\n return [ res.data, createLoadExtra(res) ];\n });\n }\n );\n },\n\n totalCount: !isRawLoadMode && function(loadOptions) {\n return send(\n \"load\",\n false,\n {\n url: loadUrl,\n method: loadMethod,\n data: loadOptionsToActionParams(loadOptions, true)\n },\n function(d, res) {\n processLoadResponse(d, res, function(res) {\n return [ res.totalCount ];\n });\n }\n );\n },\n\n byKey: !isRawLoadMode && function(key) {\n return send(\n \"load\",\n true,\n {\n url: loadUrl,\n method: loadMethod,\n data: loadOptionsToActionParams({ filter: filterByKey(key) })\n },\n function(d, res) {\n processLoadResponse(d, res, function(res) {\n return [ res.data[0] ];\n });\n }\n );\n },\n\n update: updateUrl && function(key, values) {\n return send(\n \"update\",\n true,\n {\n url: updateUrl,\n method: options.updateMethod || \"PUT\",\n data: {\n key: serializeKey(key),\n values: JSON.stringify(values)\n }\n },\n handleInsertUpdateSuccess\n );\n },\n\n insert: insertUrl && function(values) {\n return send(\n \"insert\",\n true,\n {\n url: insertUrl,\n method: options.insertMethod || \"POST\",\n data: { values: JSON.stringify(values) }\n },\n handleInsertUpdateSuccess\n );\n },\n\n remove: deleteUrl && function(key) {\n return send(\"delete\", true, {\n url: deleteUrl,\n method: options.deleteMethod || \"DELETE\",\n data: { key: serializeKey(key) }\n });\n }\n\n };\n\n CUSTOM_STORE_OPTIONS.forEach(function(name) {\n var value = options[name];\n if(value !== undefined)\n result[name] = value;\n });\n\n return result;\n }\n\n function processLoadResponse(d, res, getResolveArgs) {\n res = expandLoadResponse(res);\n\n if(!res || typeof res !== \"object\")\n d.reject(new Error(\"Unexpected response received\"));\n else\n d.resolve.apply(d, getResolveArgs(res));\n }\n\n function expandLoadResponse(value) {\n if(Array.isArray(value))\n return { data: value };\n\n if(typeof value === \"number\")\n return { totalCount: value };\n\n return value;\n }\n\n function createLoadExtra(res) {\n return {\n totalCount: \"totalCount\" in res ? res.totalCount : -1,\n groupCount: \"groupCount\" in res ? res.groupCount : -1,\n summary: res.summary || null\n };\n }\n\n function serializeKey(key) {\n if(typeof key === \"object\")\n return JSON.stringify(key);\n\n return key;\n }\n\n function serializeDate(date) {\n\n function zpad(text, len) {\n text = String(text);\n while(text.length < len)\n text = \"0\" + text;\n return text;\n }\n\n var builder = [1 + date.getMonth(), \"/\", date.getDate(), \"/\", date.getFullYear()],\n h = date.getHours(),\n m = date.getMinutes(),\n s = date.getSeconds(),\n f = date.getMilliseconds();\n\n if(h + m + s + f > 0)\n builder.push(\" \", zpad(h, 2), \":\", zpad(m, 2), \":\", zpad(s, 2), \".\", zpad(f, 3));\n\n return builder.join(\"\");\n }\n\n function stringifyDatesInFilter(crit) {\n crit.forEach(function(v, k) {\n if(Array.isArray(v)) {\n stringifyDatesInFilter(v);\n } else if(Object.prototype.toString.call(v) === \"[object Date]\") {\n crit[k] = serializeDate(v);\n }\n });\n }\n\n function isAdvancedGrouping(expr) {\n if(!Array.isArray(expr))\n return false;\n\n for(var i = 0; i < expr.length; i++) {\n if(\"groupInterval\" in expr[i] || \"isExpanded\" in expr[i])\n return true;\n }\n\n return false;\n }\n\n function getErrorMessageFromXhr(xhr) {\n var mime = xhr.getResponseHeader(\"Content-Type\"),\n responseText = xhr.responseText,\n candidate;\n\n if(!mime)\n return null;\n\n if(mime.indexOf(\"text/plain\") === 0)\n return responseText;\n\n if(mime.indexOf(\"application/json\") === 0) {\n var jsonObj = safeParseJSON(responseText);\n\n if(typeof jsonObj === \"string\")\n return jsonObj;\n\n if(typeof jsonObj === \"object\") {\n for(var key in jsonObj) {\n if(typeof jsonObj[key] === \"string\")\n return jsonObj[key];\n }\n }\n\n return responseText;\n }\n\n if(mime.indexOf(\"application/problem+json\") === 0) {\n var jsonObj = safeParseJSON(responseText);\n\n var candidate;\n if(typeof jsonObj === \"object\") {\n candidate = jsonObj.title;\n if(isNonEmptyString(candidate))\n return candidate;\n\n candidate = jsonObj.detail;\n if(isNonEmptyString(candidate))\n return candidate;\n }\n\n return responseText;\n }\n\n return null;\n }\n\n function safeParseJSON(json) {\n try {\n return JSON.parse(json);\n } catch(x) {\n return null;\n }\n }\n\n function isNonEmptyString(value) {\n return typeof value === \"string\" && value.length > 0;\n }\n\n return {\n createStore: function(options) {\n return new CustomStore(createStoreConfig(options));\n }\n };\n});\n","import React from 'react';\r\nimport { DataGrid, Column, Editing } from 'devextreme-react/data-grid';\r\nimport { apiService, axiosError } from '../../../core';\r\n\r\nexport default function Payees(props) {\r\n const payrollNumber = props.payrollNumber;\r\n const dataGrid = React.useRef();\r\n\r\n const insertRow = e => {\r\n dataGrid.current.instance.beginCustomLoading(\"adding payee.\");\r\n const isCanceled = new Promise(async (resolve, reject) => {\r\n try {\r\n await apiService.post(`api/Internal/Payrolls/${payrollNumber}/Earnings`, e.data);\r\n props.payeesUpdated();\r\n resolve(false);\r\n } catch (err) {\r\n reject(axiosError.errorDescription(err));\r\n } finally {\r\n dataGrid.current.instance.endCustomLoading();\r\n }\r\n });\r\n e.cancel = isCanceled;\r\n }\r\n\r\n const removeRow = e => {\r\n dataGrid.current.instance.beginCustomLoading(\"adding payee.\");\r\n const isCanceled = new Promise(async (resolve, reject) => {\r\n try {\r\n await apiService.delete(`api/Internal/Payrolls/${payrollNumber}/Earnings/${e.data.rowGuid}`);\r\n props.payeesUpdated();\r\n resolve(false);\r\n } catch (err) {\r\n reject(axiosError.errorDescription(err));\r\n } finally {\r\n dataGrid.current.instance.endCustomLoading();\r\n }\r\n });\r\n e.cancel = isCanceled;\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <DataGrid\r\n height='100%'\r\n ref={dataGrid}\r\n dataSource={props.payees}\r\n showBorders={true}\r\n onRowInserting={insertRow}\r\n onRowRemoving={removeRow}>\r\n <Editing\r\n mode=\"row\"\r\n allowDeleting={true}\r\n allowAdding={true} />\r\n <Column dataField=\"empNum\" caption=\"Employee #\" width={140} />\r\n <Column dataField=\"checkCounter\" caption=\"Check counter\" width={140} />\r\n <Column dataField=\"clCode\" caption=\"Code\" width={120} />\r\n <Column dataField=\"clDept\" caption=\"Department #\" width={140} />\r\n <Column dataField=\"divNum\" caption=\"Division #\" width={140} />\r\n <Column dataField=\"clOtHours\" caption=\"OT Hours\" width={120} />\r\n <Column dataField=\"clOtPay\" caption=\"OT Pay\" width={120} />\r\n <Column dataField=\"clRate\" caption=\"Rate\" width={120} />\r\n <Column dataField=\"clRegHours\" caption=\"Reg Hours\" width={120} />\r\n <Column dataField=\"clRegPay\" caption=\"Reg Pay\" width={120} />\r\n </DataGrid>\r\n </React.Fragment>\r\n );\r\n}","import React from 'react';\r\nimport { DataGrid, Column, Editing } from 'devextreme-react/data-grid';\r\nimport { apiService, axiosError } from '../../../core';\r\n\r\nexport default function Deductions(props) {\r\n const payrollNumber = props.payrollNumber;\r\n const dataGrid = React.useRef();\r\n\r\n const insertRow = e => {\r\n dataGrid.current.instance.beginCustomLoading(\"adding deduction\");\r\n const isCanceled = new Promise(async (resolve, reject) => {\r\n try {\r\n await apiService.post(`api/Internal/Payrolls/${payrollNumber}/Deductions`, e.data);\r\n props.deductionsUpdated();\r\n resolve(false);\r\n } catch(err) {\r\n reject(axiosError.errorDescription(err));\r\n } finally {\r\n dataGrid.current.instance.endCustomLoading();\r\n }\r\n });\r\n e.cancel = isCanceled;\r\n }\r\n\r\n const removeRow = e => {\r\n dataGrid.current.instance.beginCustomLoading(\"removing deduction\");\r\n const isCanceled = new Promise(async (resolve, reject) => {\r\n try {\r\n await apiService.delete(`api/Internal/Payrolls/${payrollNumber}/Deductions/${e.data.rowGuid}`);\r\n props.deductionsUpdated();\r\n resolve(false);\r\n } catch(err) {\r\n reject(axiosError.errorDescription(err));\r\n } finally {\r\n dataGrid.current.instance.endCustomLoading();\r\n }\r\n });\r\n e.cancel = isCanceled;\r\n }\r\n \r\n return (\r\n <React.Fragment>\r\n <DataGrid\r\n ref={dataGrid}\r\n dataSource={props.deductions}\r\n showBorders={true}\r\n onRowInserting={insertRow}\r\n onRowRemoving={removeRow}>\r\n <Editing\r\n mode=\"row\"\r\n allowDeleting={true}\r\n allowAdding={true} />\r\n <Column dataField=\"empNum\" caption=\"Employee #\" width={130} />\r\n <Column dataField=\"checkCounter\" caption=\"Check counter\" width={140} />\r\n <Column dataField=\"clCode\" caption=\"Code\" width={120} />\r\n <Column dataField=\"clDept\" caption=\"Department #\" width={140} />\r\n <Column dataField=\"clAmount\" caption=\"Amount\" width={120} />\r\n <Column dataField=\"clType\" caption=\"Type\" width={120} />\r\n <Column dataField=\"divNum\" caption=\"Division #\" width={140} />\r\n </DataGrid>\r\n </React.Fragment>\r\n );\r\n}","import React from 'react';\r\nimport { DataGrid, Column } from 'devextreme-react/data-grid';\r\n\r\nexport default function Checks({ data }) {\r\n return (\r\n <React.Fragment>\r\n <DataGrid\r\n height='100%'\r\n width='100%'\r\n dataSource={data}\r\n showBorders={true}>\r\n <Column dataField=\"empnum\" caption=\"Employee #\" width={130} />\r\n <Column dataField=\"divnum\" caption=\"Div #\" width={120} />\r\n <Column dataField=\"chkCounter\" caption=\"Check counter\" width={150} />\r\n <Column dataField=\"chK_NUM\" caption=\"Check #\" width={130} />\r\n <Column dataField=\"chK_TYPE\" caption=\"Type\" width={120} />\r\n <Column dataField=\"paY_FREQ\" caption=\"Frequency\" width={120} />\r\n <Column dataField=\"gross\" caption=\"Gross\" width={120} />\r\n <Column dataField=\"net\" caption=\"Net\" width={120} />\r\n </DataGrid>\r\n </React.Fragment>\r\n );\r\n}","/*!\n * devextreme-react\n * Version: 23.2.9\n * Build date: Mon Sep 16 2024\n *\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use client\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport dxButton from \"devextreme/ui/button\";\nimport * as PropTypes from \"prop-types\";\nimport { Component as BaseComponent } from \"./core/component\";\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._WidgetClass = dxButton;\n _this.independentEvents = [\"onClick\", \"onContentReady\", \"onDisposing\", \"onInitialized\"];\n _this._templateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return _this;\n }\n Object.defineProperty(Button.prototype, \"instance\", {\n get: function () {\n return this._instance;\n },\n enumerable: false,\n configurable: true\n });\n return Button;\n}(BaseComponent));\nButton.propTypes = {\n accessKey: PropTypes.string,\n activeStateEnabled: PropTypes.bool,\n disabled: PropTypes.bool,\n elementAttr: PropTypes.object,\n focusStateEnabled: PropTypes.bool,\n height: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.number,\n PropTypes.string\n ]),\n hint: PropTypes.string,\n hoverStateEnabled: PropTypes.bool,\n icon: PropTypes.string,\n onClick: PropTypes.func,\n onContentReady: PropTypes.func,\n onDisposing: PropTypes.func,\n onInitialized: PropTypes.func,\n onOptionChanged: PropTypes.func,\n rtlEnabled: PropTypes.bool,\n stylingMode: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"text\",\n \"outlined\",\n \"contained\"\n ])\n ]),\n tabIndex: PropTypes.number,\n text: PropTypes.string,\n type: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"danger\",\n \"default\",\n \"normal\",\n \"success\"\n ])\n ]),\n useSubmitBehavior: PropTypes.bool,\n validationGroup: PropTypes.string,\n visible: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.number,\n PropTypes.string\n ])\n};\nexport default Button;\nexport { Button };\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n DataGrid, ColumnChooser, ColumnFixing, FilterBuilderPopup, FilterPanel, HeaderFilter, Pager,\r\n Paging, SearchPanel, Sorting, Column, Toolbar, Item, Lookup, Editing, MasterDetail\r\n} from \"devextreme-react/data-grid\";\r\nimport Button from \"devextreme-react/button\";\r\nimport { createStore } from \"devextreme-aspnet-data-nojquery\";\r\nimport { Box } from \"@mui/system\";\r\nimport { urlHelpers } from \"../../../core\";\r\n\r\nexport default function CheckMasterBatch({payrollNumber}) {\r\n const [remoteDataSource, setRemoteDataSource] = useState();\r\n const [focusedRowPrNum, setFocusedRowPrNum] = useState();\r\n const dataGrid = useRef();\r\n\r\n useEffect(() => {\r\n const getPayrolls = async () => {\r\n setRemoteDataSource(\r\n createStore({\r\n key: \"id\",\r\n loadUrl: urlHelpers.getAbsoluteURL(`api/Internal/Payrolls/${payrollNumber}/CheckMasterBatches`),\r\n updateUrl: urlHelpers.getAbsoluteURL(`api/Internal/Payrolls/${payrollNumber}/CheckMasterBatches`),\r\n onBeforeSend: (e, s) => {\r\n s.headers = {\r\n Authorization: `Bearer ${localStorage.getItem(\"BrandsWebJWT\")}`\r\n };\r\n }\r\n })\r\n );\r\n };\r\n\r\n getPayrolls();\r\n }, [payrollNumber]);\r\n\r\n const onFocusedRowChanging = e => {\r\n setFocusedRowPrNum(e.row && e.row.data?.prnum);\r\n };\r\n\r\n const refreshPayrolls = () => {\r\n dataGrid.current.instance.refresh()\r\n }\r\n\r\n return (\r\n <Box sx={{ width: \"100%\", height: \"100%\" }}>\r\n <DataGrid\r\n ref={dataGrid}\r\n dataSource={remoteDataSource}\r\n height=\"100%\"\r\n width=\"100%\"\r\n allowColumnReordering={true}\r\n allowColumnResizing={true}\r\n columnAutoWidth={true}\r\n showBorders={true}\r\n columnResizingMode={\"widget\"}\r\n showColumnLines={false}\r\n rowAlternationEnabled\r\n focusedRowEnabled\r\n onFocusedRowChanged={onFocusedRowChanging}\r\n autoNavigateToFocusedRow\r\n >\r\n <Toolbar>\r\n <Item location=\"before\">\r\n <Button icon=\"refresh\" onClick={refreshPayrolls} />\r\n </Item>\r\n <Item name=\"columnChooserButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"searchPanel\" locateInMenu=\"auto\" location=\"after\" />\r\n </Toolbar>\r\n <Editing mode=\"cell\" allowDeleting={false} allowUpdating={true} />\r\n <SearchPanel visible width={250} />\r\n <HeaderFilter visible allowSearch />\r\n <ColumnChooser enabled />\r\n <Sorting mode=\"multiple\" />\r\n <ColumnFixing />\r\n <Paging defaultPageSize={40} />\r\n <Pager showPageSizeSelector />\r\n <FilterPanel visible />\r\n <FilterBuilderPopup />\r\n\r\n {/* <Column dataField=\"conum\" allowEditing={false}/>\r\n <Column dataField=\"prnum\" caption=\"Pr#\" defaultSortIndex={0} defaultSortOrder=\"desc\" allowEditing={false}/>\r\n <Column dataField=\"gross\" dataType=\"number\" format=\"currency\" />\r\n <Column dataField=\"net\" dataType=\"number\" format=\"currency\" />\r\n <Column dataField=\"checK_DATE\" dataType=\"datetime\" />\r\n <Column dataField=\"pyarollStatus\">\r\n <Lookup dataSource={payrollStatuses} />\r\n </Column>\r\n <Column dataField=\"pR_DESCR\" />\r\n <Column dataField=\"rowGuid\" visible={false} />\r\n <Column dataField=\"firstPeriodStartDate\" dataType=\"datetime\" />\r\n <Column dataField=\"firstPeriodEndDate\" dataType=\"datetime\" />\r\n <Column dataField=\"secondPeriodStartDate\" dataType=\"datetime\" />\r\n <Column dataField=\"secondPeriodEndDate\" dataType=\"datetime\" />\r\n <Column dataField=\"thirdPeriodStartDate\" dataType=\"datetime\" />\r\n <Column dataField=\"thirdPeriodEndDate\" dataType=\"datetime\" /> */}\r\n </DataGrid>\r\n </Box>\r\n );\r\n}\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport {\r\n DataGrid, ColumnChooser, ColumnFixing, FilterBuilderPopup, FilterPanel, HeaderFilter, Pager,\r\n Paging, SearchPanel, Sorting, Toolbar, Item,\r\n GroupPanel,\r\n Grouping\r\n} from \"devextreme-react/data-grid\";\r\nimport Button from \"devextreme-react/button\";\r\nimport { Box } from \"@mui/system\";\r\nimport { apiService, axiosError } from \"../../../core\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\n\r\nexport default function CheckPayrollIssues({payrollNumber}) {\r\n const dataGrid = useRef();\r\n const [issues, setIssues] = React.useState([]);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n const getPayrollIssues = async () => {\r\n dataGrid.current.instance.beginCustomLoading();\r\n try {\r\n const response = await apiService.get(`api/Internal/Payrolls/${payrollNumber}/Issues`);\r\n setIssues(response?.data);\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n dataGrid.current.instance.endCustomLoading();\r\n };\r\n\r\n useEffect(() => {\r\n getPayrollIssues();\r\n }, [payrollNumber]);\r\n\r\n const refreshIssues = () => {\r\n getPayrollIssues();\r\n }\r\n\r\n return (\r\n <Box sx={{ width: \"100%\", height: \"100%\" }} id=\"check_payroll_issues_tab\">\r\n <DataGrid\r\n dataSource={issues}\r\n ref={dataGrid}\r\n height=\"100%\"\r\n width=\"100%\"\r\n allowColumnReordering={true}\r\n allowColumnResizing={true}\r\n columnAutoWidth={true}\r\n showBorders={true}\r\n columnResizingMode={\"widget\"}\r\n showColumnLines={false}\r\n rowAlternationEnabled\r\n focusedRowEnabled\r\n autoNavigateToFocusedRow\r\n keyExpr={['empNum', 'chkCounter', 'msgType']}\r\n >\r\n <Toolbar>\r\n <Item location=\"before\">\r\n <Button icon=\"refresh\" onClick={refreshIssues} />\r\n </Item>\r\n <Item name=\"groupPanel\" locateInMenu=\"auto\" location=\"before\" />\r\n <Item name=\"columnChooserButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"searchPanel\" locateInMenu=\"auto\" location=\"after\" />\r\n </Toolbar>\r\n <SearchPanel visible width={250} />\r\n <HeaderFilter visible allowSearch />\r\n <ColumnChooser enabled />\r\n <Sorting mode=\"multiple\" />\r\n <ColumnFixing />\r\n <Paging defaultPageSize={40} />\r\n <Pager showPageSizeSelector />\r\n <FilterPanel visible />\r\n <FilterBuilderPopup />\r\n <GroupPanel visible={true} />\r\n <Grouping autoExpandAll={true} />\r\n {/* <Column dataField=\"conum\" allowEditing={false}/>\r\n <Column dataField=\"prnum\" caption=\"Pr#\" defaultSortIndex={0} defaultSortOrder=\"desc\" allowEditing={false}/>\r\n <Column dataField=\"gross\" dataType=\"number\" format=\"currency\" />\r\n <Column dataField=\"net\" dataType=\"number\" format=\"currency\" />\r\n <Column dataField=\"checK_DATE\" dataType=\"datetime\" />\r\n <Column dataField=\"pyarollStatus\">\r\n <Lookup dataSource={payrollStatuses} />\r\n </Column>\r\n <Column dataField=\"pR_DESCR\" />\r\n <Column dataField=\"rowGuid\" visible={false} />\r\n <Column dataField=\"firstPeriodStartDate\" dataType=\"datetime\" />\r\n <Column dataField=\"firstPeriodEndDate\" dataType=\"datetime\" />\r\n <Column dataField=\"secondPeriodStartDate\" dataType=\"datetime\" />\r\n <Column dataField=\"secondPeriodEndDate\" dataType=\"datetime\" />\r\n <Column dataField=\"thirdPeriodStartDate\" dataType=\"datetime\" />\r\n <Column dataField=\"thirdPeriodEndDate\" dataType=\"datetime\" /> */}\r\n </DataGrid>\r\n </Box>\r\n );\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n DataGrid, ColumnChooser, ColumnFixing, FilterBuilderPopup, FilterPanel, HeaderFilter, Pager,\r\n Paging, SearchPanel, Sorting, Toolbar, Item, Column\r\n} from \"devextreme-react/data-grid\";\r\nimport Button from \"devextreme-react/button\";\r\nimport { Box } from \"@mui/system\";\r\nimport { apiService, axiosError } from \"../../../core\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\n\r\nexport default function MpwClientErrors({ payrollNumber }) {\r\n const dataGrid = useRef();\r\n const [errors, setErrors] = useState([]);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n const getErrors = async () => {\r\n dataGrid.current.instance.beginCustomLoading();\r\n try {\r\n const response = await apiService.get(`api/Internal/Payrolls/${payrollNumber}/mpwClientErrors`);\r\n setErrors(response?.data);\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n dataGrid.current.instance.endCustomLoading();\r\n };\r\n\r\n useEffect(() => {\r\n getErrors();\r\n }, [payrollNumber]);\r\n\r\n const refreshErrors = () => {\r\n getErrors();\r\n }\r\n\r\n return (\r\n <Box sx={{ width: \"100%\", height: \"100%\" }}>\r\n <DataGrid\r\n dataSource={errors}\r\n ref={dataGrid}\r\n height=\"100%\"\r\n width=\"100%\"\r\n allowColumnReordering={true}\r\n allowColumnResizing={true}\r\n columnAutoWidth={true}\r\n showBorders={true}\r\n columnResizingMode={\"widget\"}\r\n showColumnLines={false}\r\n rowAlternationEnabled\r\n focusedRowEnabled\r\n autoNavigateToFocusedRow\r\n keyExpr={['prnum', 'error_id']}\r\n >\r\n <Toolbar>\r\n <Item location=\"before\">\r\n <Button icon=\"refresh\" onClick={refreshErrors} />\r\n </Item>\r\n <Item name=\"columnChooserButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"searchPanel\" locateInMenu=\"auto\" location=\"after\" />\r\n </Toolbar>\r\n <SearchPanel visible width={250} />\r\n <HeaderFilter visible allowSearch />\r\n <ColumnChooser enabled />\r\n <Sorting mode=\"multiple\" />\r\n <ColumnFixing />\r\n <Paging defaultPageSize={40} />\r\n <Pager showPageSizeSelector />\r\n <FilterPanel visible />\r\n <FilterBuilderPopup />\r\n\r\n <Column dataField=\"conum\" visible={false}/>\r\n <Column dataField=\"prnum\" visible={false}/>\r\n <Column dataField=\"active_error\" />\r\n <Column dataField=\"error_level\" />\r\n <Column dataField=\"error_msg\" />\r\n <Column dataField=\"error_id\" />\r\n <Column dataField=\"timestamp\" visible={false}/>\r\n <Column dataField=\"rowguid\" />\r\n <Column dataField=\"empnum\" />\r\n <Column dataField=\"chk_counter\" />\r\n <Column dataField=\"cleared\" />\r\n <Column dataField=\"user_cleared\" />\r\n <Column dataField=\"date_cleared\" dataType=\"datetime\" />\r\n </DataGrid>\r\n </Box>\r\n );\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n DataGrid, ColumnChooser, ColumnFixing, FilterBuilderPopup, FilterPanel, HeaderFilter, Pager,\r\n Paging, SearchPanel, Sorting, Toolbar, Item, Column, LoadPanel,\r\n GroupPanel,\r\n Grouping\r\n} from \"devextreme-react/data-grid\";\r\nimport Button from \"devextreme-react/button\";\r\nimport { apiService, axiosError } from \"../../../core\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\n\r\nexport default function CheckPayrollIssuesLog({ payrollNumber }) {\r\n const dataGrid = React.useRef();\r\n const [issuesLog, setIssuesLog] = useState([]);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n const getIssuesLog = async () => {\r\n dataGrid.current.instance.beginCustomLoading();\r\n try {\r\n const response = await apiService.get(`api/Internal/Payrolls/${payrollNumber}/IssuesLog`);\r\n setIssuesLog(response?.data);\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n dataGrid.current.instance.endCustomLoading();\r\n };\r\n\r\n useEffect(() => {\r\n getIssuesLog();\r\n }, [payrollNumber]);\r\n\r\n const refreshIssuesLog = () => {\r\n getIssuesLog();\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <DataGrid\r\n ref={dataGrid}\r\n dataSource={issuesLog}\r\n height='100%'\r\n width='100%'\r\n showBorders={true}\r\n allowColumnResizing\r\n allowColumnReordering>\r\n <GroupPanel visible={true}/>\r\n <Grouping autoExpandAll={false} />\r\n <Toolbar>\r\n <Item location=\"before\">\r\n <Button icon=\"refresh\" onClick={refreshIssuesLog} />\r\n </Item>\r\n <Item name=\"groupPanel\" locateInMenu=\"auto\" location=\"before\" />\r\n <Item name=\"columnChooserButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"searchPanel\" locateInMenu=\"auto\" location=\"after\" />\r\n </Toolbar>\r\n <SearchPanel visible width={250} />\r\n <HeaderFilter visible allowSearch />\r\n <ColumnChooser enabled />\r\n <Sorting mode=\"multiple\" />\r\n <ColumnFixing />\r\n <Paging defaultPageSize={40} />\r\n <Pager showPageSizeSelector />\r\n <FilterPanel visible />\r\n <FilterBuilderPopup />\r\n \r\n <Column dataField=\"empNum\" caption=\"Employee #\" />\r\n <Column dataField=\"chkCounter\" caption=\"Check counter\" />\r\n <Column dataField=\"date\" caption=\"Date\" dataType=\"datetime\" />\r\n <Column dataField=\"currentPayrollStatus\" caption=\"Current payroll status\" />\r\n <Column dataField=\"msgType\" caption=\"Msg type\" />\r\n <Column dataField=\"msgBody\" caption=\"Msg body\" width={750}/>\r\n <Column dataField=\"priority\" caption=\"Priority\" />\r\n </DataGrid>\r\n </React.Fragment>\r\n );\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n DataGrid, ColumnChooser, ColumnFixing, FilterBuilderPopup, FilterPanel, HeaderFilter, Pager,\r\n Paging, SearchPanel, Sorting, Toolbar, Item, Column\r\n} from \"devextreme-react/data-grid\";\r\nimport Button from \"devextreme-react/button\";\r\nimport { apiService, axiosError } from \"../../../core\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\n\r\nexport default function PayrollStatusChanges({ payrollNumber }) {\r\n const dataGrid = React.useRef();\r\n const [statusChanges, setStatusChanges] = useState([]);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n const getPayrollStatusChanges = async () => {\r\n dataGrid.current.instance.beginCustomLoading();\r\n try {\r\n const response = await apiService.get(`api/Internal/Payrolls/${payrollNumber}/StatusChanges`);\r\n setStatusChanges(response?.data);\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n dataGrid.current.instance.endCustomLoading();\r\n};\r\n\r\n useEffect(() => {\r\n getPayrollStatusChanges();\r\n }, [payrollNumber]);\r\n\r\n const refreshStatusChanges = () => {\r\n getPayrollStatusChanges();\r\n }\r\n \r\n return (\r\n <React.Fragment>\r\n <DataGrid\r\n height='100%'\r\n ref={dataGrid}\r\n dataSource={statusChanges}\r\n showBorders={true}>\r\n <Toolbar>\r\n <Item location=\"before\">\r\n <Button icon=\"refresh\" onClick={refreshStatusChanges} />\r\n </Item>\r\n <Item name=\"columnChooserButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"searchPanel\" locateInMenu=\"auto\" location=\"after\" />\r\n </Toolbar>\r\n <SearchPanel visible width={250} />\r\n <HeaderFilter visible allowSearch />\r\n <ColumnChooser enabled />\r\n <Sorting mode=\"multiple\" />\r\n <ColumnFixing />\r\n <Paging defaultPageSize={40} />\r\n <Pager showPageSizeSelector />\r\n <FilterPanel visible />\r\n <FilterBuilderPopup />\r\n <Column dataField=\"dateTimeChanged\" caption=\"Changed on\" dataType=\"datetime\"/>\r\n <Column dataField=\"origStatus\" caption=\"Original status\" />\r\n <Column dataField=\"newStatus\" caption=\"New status\" />\r\n <Column dataField=\"manualChange\" caption=\"Manual change\" />\r\n <Column dataField=\"byUser\" caption=\"Changed by\" />\r\n <Column dataField=\"hostName\" caption=\"Hostname\" />\r\n </DataGrid>\r\n </React.Fragment>\r\n );\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n DataGrid, ColumnChooser, ColumnFixing, FilterBuilderPopup, FilterPanel, HeaderFilter, Pager,\r\n Paging, SearchPanel, Sorting, Column, Toolbar, Item, Lookup, Editing, MasterDetail\r\n} from \"devextreme-react/data-grid\";\r\nimport Button from \"devextreme-react/button\";\r\nimport { createStore } from \"devextreme-aspnet-data-nojquery\";\r\nimport { Box } from \"@mui/system\";\r\nimport { urlHelpers } from \"../../../core\";\r\n\r\nexport default function PayrollsInProcess({payrollNumber}) {\r\n const [remoteDataSource, setRemoteDataSource] = useState();\r\n const [focusedRowPrNum, setFocusedRowPrNum] = useState();\r\n const dataGrid = useRef();\r\n\r\n useEffect(() => {\r\n const getPayrolls = async () => {\r\n setRemoteDataSource(\r\n createStore({\r\n key: \"id\",\r\n loadUrl: urlHelpers.getAbsoluteURL(`api/Internal/Payrolls/${payrollNumber}/PayrollsInProcess`),\r\n updateUrl: urlHelpers.getAbsoluteURL(`api/Internal/Payrolls/${payrollNumber}/PayrollsInProcess`),\r\n onBeforeSend: (e, s) => {\r\n s.headers = {\r\n Authorization: `Bearer ${localStorage.getItem(\"BrandsWebJWT\")}`\r\n };\r\n }\r\n })\r\n );\r\n };\r\n\r\n getPayrolls();\r\n }, [payrollNumber]);\r\n\r\n const onFocusedRowChanging = e => {\r\n setFocusedRowPrNum(e.row && e.row.data?.prNum);\r\n };\r\n\r\n const refreshPayrolls = () => {\r\n dataGrid.current.instance.refresh()\r\n }\r\n\r\n return (\r\n <Box sx={{ width: \"100%\", height: \"100%\" }}>\r\n <DataGrid\r\n ref={dataGrid}\r\n dataSource={remoteDataSource}\r\n height=\"100%\"\r\n width=\"100%\"\r\n allowColumnReordering={true}\r\n allowColumnResizing={true}\r\n columnAutoWidth={true}\r\n showBorders={true}\r\n columnResizingMode={\"widget\"}\r\n showColumnLines={false}\r\n rowAlternationEnabled\r\n focusedRowEnabled\r\n onFocusedRowChanged={onFocusedRowChanging}\r\n autoNavigateToFocusedRow\r\n >\r\n <Toolbar>\r\n <Item location=\"before\">\r\n <Button icon=\"refresh\" onClick={refreshPayrolls} />\r\n </Item>\r\n <Item name=\"columnChooserButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"searchPanel\" locateInMenu=\"auto\" location=\"after\" />\r\n </Toolbar>\r\n <Editing mode=\"cell\" allowDeleting={false} allowUpdating={true} />\r\n <SearchPanel visible width={250} />\r\n <HeaderFilter visible allowSearch />\r\n <ColumnChooser enabled />\r\n <Sorting mode=\"multiple\" />\r\n <ColumnFixing />\r\n <Paging defaultPageSize={40} />\r\n <Pager showPageSizeSelector />\r\n <FilterPanel visible />\r\n <FilterBuilderPopup />\r\n </DataGrid>\r\n </Box>\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useSnackbar } from \"notistack\";\r\nimport Tabs from '@mui/material/Tabs';\r\nimport Tab from '@mui/material/Tab';\r\nimport Box from '@mui/material/Box';\r\nimport Payees from './Payees';\r\nimport Deductions from './Deductions';\r\nimport Checks from './Checks';\r\nimport { apiService, axiosError } from '../../../core';\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\nimport CheckMasterBatch from './CheckMasterBatch';\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport CheckPayrollIssues from './CheckPayrollIssues';\r\nimport MpwClientErrors from './MpwClientErrors';\r\nimport CheckPayrollIssuesLog from './CheckPayrollIssuesLog';\r\nimport PayrollStatusChanges from './PayrollStatusChanges';\r\nimport PayrollsInProcess from './PayrollsInProcess';\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index } = props;\r\n\r\n return (\r\n <div hidden={value !== index} style={{flex: 1, overflowY: 'auto'}}>\r\n {value === index && children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default function PayrollDetails(props) {\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const payrollNumber = props.data ? props.data.data.prnum : queryParams.get('prnum');\r\n const [value, setValue] = React.useState(0);\r\n const [payees, setPayees] = React.useState([]);\r\n const [deductions, setDeductions] = React.useState([]);\r\n const [checks, setChecks] = React.useState([]);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n React.useEffect(() => {\r\n getPayees();\r\n getDeductions();\r\n getChecks();\r\n }, [payrollNumber]);\r\n\r\n const getPayees = async () => {\r\n try {\r\n const response = await apiService.get(`api/Internal/Payrolls/${payrollNumber}/Earnings`);\r\n setPayees(response?.data?.data);\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n };\r\n\r\n const getDeductions = async () => {\r\n try {\r\n const response = await apiService.get(`api/Internal/Payrolls/${payrollNumber}/Deductions`);\r\n setDeductions(response?.data?.data);\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n };\r\n\r\n const getChecks = async () => {\r\n try {\r\n const response = await apiService.get(`api/Internal/Payrolls/${payrollNumber}/Checks`);\r\n setChecks(response?.data?.data);\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n };\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n\r\n const refreshPayees = () => {\r\n getPayees();\r\n getChecks();\r\n }\r\n\r\n const refreshDeductions = () => {\r\n getDeductions();\r\n getChecks();\r\n }\r\n\r\n return (\r\n <Box sx={{ width: '100%', height: '100%' }} id=\"payroll_detail_page\" display='flex' flexDirection='column'>\r\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }} id=\"payroll_detail_tabs\">\r\n <Tabs value={value} onChange={handleChange}>\r\n <Tab label=\"Checks\" />\r\n <Tab label=\"Earnings\" />\r\n <Tab label=\"Deductions\" />\r\n <Tab label=\"CheckMasterBatch\" />\r\n <Tab label=\"Check Payroll Issues\" />\r\n <Tab label=\"Mpw Client Errors\" />\r\n <Tab label=\"Check Payroll Issues Log\" />\r\n <Tab label=\"Payroll Status Changes\" />\r\n <Tab label=\"Payrolls In Process\" />\r\n </Tabs>\r\n </Box>\r\n <TabPanel value={value} index={0}>\r\n <Checks data={checks}></Checks>\r\n </TabPanel>\r\n <TabPanel value={value} index={1}>\r\n <Payees payees={payees} payrollNumber={payrollNumber} payeesUpdated={refreshPayees}></Payees>\r\n </TabPanel>\r\n <TabPanel value={value} index={2}>\r\n <Deductions deductions={deductions} payrollNumber={payrollNumber} deductionsUpdated={refreshDeductions}></Deductions>\r\n </TabPanel>\r\n <TabPanel value={value} index={3}>\r\n <CheckMasterBatch payrollNumber={payrollNumber} />\r\n </TabPanel>\r\n <TabPanel value={value} index={4}>\r\n <CheckPayrollIssues payrollNumber={payrollNumber} />\r\n </TabPanel>\r\n <TabPanel value={value} index={5}>\r\n <MpwClientErrors payrollNumber={payrollNumber} />\r\n </TabPanel>\r\n <TabPanel value={value} index={6}>\r\n <CheckPayrollIssuesLog payrollNumber={payrollNumber} />\r\n </TabPanel>\r\n <TabPanel value={value} index={7}>\r\n <PayrollStatusChanges payrollNumber={payrollNumber} />\r\n </TabPanel>\r\n <TabPanel value={value} index={8}>\r\n <PayrollsInProcess payrollNumber={payrollNumber} />\r\n </TabPanel>\r\n </Box>\r\n );\r\n}","import * as React from 'react';\r\nimport { useSnackbar } from \"notistack\";\r\nimport Button from '@mui/material/Button';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Switch from '@mui/material/Switch';\r\nimport Grid from '@mui/material/Grid';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport OutlinedInput from '@mui/material/OutlinedInput';\r\nimport { apiService, axiosError } from '../../../core';\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\n\r\nexport default function AddPayroll(props) {\r\n const [inputData, setInputData] = React.useState({\r\n autoHours: true,\r\n autoPays: true,\r\n autoDeds: true,\r\n autoMemos: true,\r\n accSick: true,\r\n accVac: true,\r\n accPer: true,\r\n calendarId: 0\r\n });\r\n const openProp = props.open;\r\n const [open, setOpen] = React.useState(openProp);\r\n const [calendars, setCalendars] = React.useState([]);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n React.useEffect(() => {\r\n const getCalendars = async () => {\r\n try {\r\n const response = await apiService.get(`api/Internal/Payrolls/Calendars`);\r\n setCalendars(response?.data);\r\n } catch(err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n };\r\n\r\n if (openProp) {\r\n getCalendars();\r\n }\r\n setOpen(openProp);\r\n }, [openProp]);\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n props.openChange(false);\r\n };\r\n\r\n const handleCalendarChange = (event) => {\r\n const { target: { value }} = event;\r\n setInputData({\r\n ...inputData,\r\n calendarId: value\r\n });\r\n };\r\n\r\n const handleSwitchChange = (event) => {\r\n setInputData({ ...inputData, [event.target.id]: event.target.checked });\r\n };\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n props.addPayroll(inputData);\r\n };\r\n\r\n return (\r\n <div>\r\n <Dialog open={open} onClose={handleClose}>\r\n <form onSubmit={handleSubmit}>\r\n <DialogTitle>Add payroll</DialogTitle>\r\n <DialogContent>\r\n <Grid container rowSpacing={1} columnSpacing={{ xs: 1, sm: 2, md: 3 }}>\r\n <Grid item xs={6} sm={6}>\r\n <FormControlLabel control={\r\n <Switch id=\"autoHours\" checked={inputData.autoHours} onChange={handleSwitchChange}/>\r\n } label=\"Auto hours\" />\r\n </Grid>\r\n <Grid item xs={6} sm={6}>\r\n <FormControlLabel control={\r\n <Switch id=\"autoPays\" checked={inputData.autoPays} onChange={handleSwitchChange}/>\r\n } label=\"Auto pays\" />\r\n </Grid>\r\n <Grid item xs={6} sm={6}>\r\n <FormControlLabel control={\r\n <Switch id=\"autoDeds\" checked={inputData.autoDeds} onChange={handleSwitchChange}/>\r\n } label=\"Auto deds\" />\r\n </Grid>\r\n <Grid item xs={6} sm={6}>\r\n <FormControlLabel control={\r\n <Switch id=\"autoMemos\" checked={inputData.autoMemos} onChange={handleSwitchChange}/>\r\n } label=\"Auto memos\" />\r\n </Grid>\r\n <Grid item xs={6} sm={6}>\r\n <FormControlLabel control={\r\n <Switch id=\"accSick\" checked={inputData.accSick} onChange={handleSwitchChange}/>\r\n } label=\"Acc sick\" />\r\n </Grid>\r\n <Grid item xs={6} sm={6}>\r\n <FormControlLabel control={\r\n <Switch id=\"accVac\" checked={inputData.accVac} onChange={handleSwitchChange}/>\r\n } label=\"Acc vac\" />\r\n </Grid>\r\n <Grid item xs={6} sm={6}>\r\n <FormControlLabel control={\r\n <Switch id=\"accPer\" checked={inputData.accPer} onChange={handleSwitchChange}/>\r\n } label=\"Acc per\" />\r\n </Grid>\r\n <Grid item xs={12} sm={12}>\r\n <FormControl>\r\n <InputLabel>Calendar</InputLabel>\r\n <Select\r\n value={inputData.calendarId}\r\n onChange={handleCalendarChange}\r\n input={<OutlinedInput label=\"Calendar\" />}\r\n >\r\n {calendars.map((c) => (\r\n <MenuItem\r\n key={c.id}\r\n value={c.id}\r\n >\r\n { `Pay date: ${new Date(c.checkDate).toLocaleDateString(\"en-US\")} | Freq: ${c.frequency} | Start: ${new Date(c.startDate).toLocaleDateString(\"en-US\")} | End: ${new Date(c.endDate).toLocaleDateString(\"en-US\")}` }\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Grid>\r\n </Grid>\r\n </DialogContent>\r\n <DialogActions>\r\n <Button onClick={handleClose}>Cancel</Button>\r\n <Button onClick={handleClose} type=\"submit\">Submit</Button>\r\n </DialogActions>\r\n </form>\r\n </Dialog>\r\n </div>\r\n );\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n DataGrid, ColumnChooser, ColumnFixing, FilterBuilderPopup, FilterPanel, HeaderFilter, Pager,\r\n Paging, SearchPanel, Sorting, Column, Toolbar, Item, Lookup, Editing, MasterDetail, Button\r\n} from \"devextreme-react/data-grid\";\r\nimport DropDownButton from \"devextreme-react/drop-down-button\";\r\nimport { createStore } from \"devextreme-aspnet-data-nojquery\";\r\nimport { Box } from \"@mui/system\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\nimport { apiService, axiosError, urlHelpers } from \"../../../core\";\r\nimport PayrollDetails from \"./PayrollDetails\";\r\nimport AddPayroll from \"./AddPayroll\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport default function Payrolls(props) {\r\n const [remoteDataSource, setRemoteDataSource] = useState();\r\n const [focusedRowPrNum, setFocusedRowPrNum] = useState();\r\n const [isPayrollFormVisible, setIsPayrollFormVisible] = useState(false);\r\n const dataGrid = useRef();\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n const getPayrolls = async () => {\r\n setRemoteDataSource(\r\n createStore({\r\n key: \"rowGuid\",\r\n loadUrl: urlHelpers.getAbsoluteURL(\"api/Internal/Payrolls\"),\r\n updateUrl: urlHelpers.getAbsoluteURL(\"api/Internal/Payrolls/Update\"),\r\n onBeforeSend: (e, s) => {\r\n s.headers = {\r\n Authorization: `Bearer ${localStorage.getItem(\"BrandsWebJWT\")}`\r\n };\r\n }\r\n })\r\n );\r\n };\r\n\r\n getPayrolls();\r\n }, []);\r\n\r\n const onFocusedRowChanging = e => {\r\n setFocusedRowPrNum(e.row && e.row.data?.prnum);\r\n };\r\n\r\n const onItemClicked = async e => {\r\n dataGrid.current.instance.beginCustomLoading();\r\n try {\r\n if (e.itemData.id === 1) {\r\n await apiService.delete(`api/Internal/Payrolls/${focusedRowPrNum}`);\r\n } else if (e.itemData.id === 2) {\r\n await apiService.post(`api/Internal/Payrolls/${focusedRowPrNum}/Totals`, {\r\n prnum: focusedRowPrNum\r\n });\r\n } else if (e.itemData.id === 3) {\r\n await apiService.post(`api/Internal/Payrolls/${focusedRowPrNum}`);\r\n }\r\n dataGrid.current.instance.refresh()\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n } finally {\r\n dataGrid.current.instance.endCustomLoading();\r\n }\r\n }\r\n\r\n const openChange = async e => {\r\n setIsPayrollFormVisible(e);\r\n }\r\n\r\n const showAddPayrollForm = e => {\r\n setIsPayrollFormVisible(true);\r\n }\r\n\r\n const addPayroll = async (data) => {\r\n try {\r\n dataGrid.current.instance.beginCustomLoading(\"adding payroll\");\r\n await apiService.post(`api/Internal/Payrolls`, data);\r\n refreshPayrolls();\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n } finally {\r\n dataGrid.current.instance.endCustomLoading();\r\n }\r\n }\r\n\r\n const refreshPayrolls = () => {\r\n dataGrid.current.instance.refresh()\r\n }\r\n\r\n const actions = [\r\n { id: 1, text: \"Delete Payroll\", icon: \"trash\" },\r\n { id: 2, text: \"Calculate Totals\", icon: \"percent\" },\r\n { id: 3, text: \"Submit Payroll\", icon: \"save\" }\r\n ];\r\n\r\n const payrollDetails = (e) => {\r\n console.log(e);\r\n history.push(`/internal/super_admin/payroll/details?prnum=${e.row.data.prnum}`);\r\n e.event.preventDefault();\r\n }\r\n\r\n const payrollStatuses = [\"Entering Checks\", \"Submitted\", \"DD Ready\", \"Done\"];\r\n\r\n return (\r\n <Box sx={{ width: \"100%\", height: \"100%\" }}>\r\n <AddPayroll open={isPayrollFormVisible} openChange={openChange} addPayroll={addPayroll}></AddPayroll>\r\n <DataGrid\r\n ref={dataGrid}\r\n dataSource={remoteDataSource}\r\n height=\"100%\"\r\n width=\"100%\"\r\n allowColumnReordering={true}\r\n allowColumnResizing={true}\r\n columnAutoWidth={true}\r\n showBorders={true}\r\n columnResizingMode={\"widget\"}\r\n showColumnLines={false}\r\n rowAlternationEnabled\r\n focusedRowEnabled\r\n onFocusedRowChanged={onFocusedRowChanging}\r\n autoNavigateToFocusedRow\r\n >\r\n <Toolbar>\r\n <Item location=\"before\">\r\n <Button icon=\"refresh\" onClick={refreshPayrolls} />\r\n </Item>\r\n <Item location=\"before\">\r\n <DropDownButton\r\n text=\"Payroll Actions\"\r\n disabled={!focusedRowPrNum}\r\n items={actions}\r\n onItemClick={onItemClicked}\r\n keyExpr=\"id\"\r\n displayExpr=\"text\"\r\n />\r\n </Item>\r\n <Item location=\"after\">\r\n <Button icon=\"add\" onClick={showAddPayrollForm} />\r\n </Item>\r\n <Item name=\"columnChooserButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"searchPanel\" locateInMenu=\"auto\" location=\"after\" />\r\n </Toolbar>\r\n <Editing mode=\"cell\" allowDeleting={false} allowUpdating={true} />\r\n <SearchPanel visible width={250} />\r\n <HeaderFilter visible allowSearch />\r\n <ColumnChooser enabled />\r\n <Sorting mode=\"multiple\" />\r\n <ColumnFixing />\r\n <Paging defaultPageSize={40} />\r\n <Pager showPageSizeSelector />\r\n <FilterPanel visible />\r\n <FilterBuilderPopup />\r\n\r\n <Column type=\"buttons\" width={35}>\r\n <Button hint=\"Details\" icon=\"showpanel\" onClick={payrollDetails} />\r\n </Column>\r\n <Column dataField=\"conum\" allowEditing={false}/>\r\n <Column dataField=\"prnum\" caption=\"Pr#\" defaultSortIndex={0} defaultSortOrder=\"desc\" allowEditing={false}/>\r\n <Column dataField=\"gross\" dataType=\"number\" format=\"currency\" />\r\n <Column dataField=\"net\" dataType=\"number\" format=\"currency\" />\r\n <Column dataField=\"checK_DATE\" dataType=\"datetime\" />\r\n <Column dataField=\"pyarollStatus\">\r\n <Lookup dataSource={payrollStatuses} />\r\n </Column>\r\n <Column dataField=\"pR_DESCR\" />\r\n <Column dataField=\"rowGuid\" visible={false} />\r\n <Column dataField=\"firstPeriodStartDate\" dataType=\"datetime\" />\r\n <Column dataField=\"firstPeriodEndDate\" dataType=\"datetime\" />\r\n <Column dataField=\"secondPeriodStartDate\" dataType=\"datetime\" />\r\n <Column dataField=\"secondPeriodEndDate\" dataType=\"datetime\" />\r\n <Column dataField=\"thirdPeriodStartDate\" dataType=\"datetime\" />\r\n <Column dataField=\"thirdPeriodEndDate\" dataType=\"datetime\" />\r\n <MasterDetail\r\n enabled={true}\r\n component={PayrollDetails}\r\n />\r\n </DataGrid>\r\n </Box>\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useSnackbar } from \"notistack\";\r\nimport Button from '@mui/material/Button';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Grid from '@mui/material/Grid';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport OutlinedInput from '@mui/material/OutlinedInput';\r\nimport { apiService, axiosError } from '../../../core';\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\n\r\nexport default function ProcessPowerGrid(props) {\r\n const [inputData, setInputData] = React.useState({\r\n prNum: 0\r\n });\r\n const openProp = props.open;\r\n const [open, setOpen] = React.useState(openProp);\r\n const [payrolls, setPayrolls] = React.useState([]);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n React.useEffect(() => {\r\n const getPayrolls = async () => {\r\n try {\r\n const response = await apiService.get(`api/Internal/Payrolls`);\r\n setPayrolls(response?.data?.data);\r\n } catch(err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n };\r\n\r\n if (openProp) {\r\n getPayrolls();\r\n }\r\n setOpen(openProp);\r\n }, [openProp]);\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n props.openChange(false);\r\n };\r\n\r\n const handlePayrollChange = (event) => {\r\n const { target: { value }} = event;\r\n setInputData({\r\n prNum: value\r\n });\r\n };\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n props.processPowerGrid(inputData);\r\n };\r\n\r\n return (\r\n <div>\r\n <Dialog open={open} onClose={handleClose}>\r\n <form onSubmit={handleSubmit}>\r\n <DialogTitle>Process power grid</DialogTitle>\r\n <DialogContent style={{paddingTop: '10px'}}>\r\n <Grid container columnSpacing={{ xs: 1, sm: 2, md: 3 }}>\r\n <Grid item xs={12} sm={12}>\r\n <FormControl>\r\n <InputLabel>Payroll</InputLabel>\r\n <Select\r\n value={inputData.prNum}\r\n onChange={handlePayrollChange}\r\n input={<OutlinedInput label=\"Payroll\" />}\r\n >\r\n {payrolls.map((c) => (\r\n <MenuItem\r\n key={c.prnum}\r\n value={c.prnum}\r\n >\r\n { `PR# ${c.prnum}`}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Grid>\r\n </Grid>\r\n </DialogContent>\r\n <DialogActions>\r\n <Button onClick={handleClose}>Cancel</Button>\r\n <Button onClick={handleClose} type=\"submit\">Submit</Button>\r\n </DialogActions>\r\n </form>\r\n </Dialog>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { useSnackbar } from \"notistack\";\r\nimport Button from '@mui/material/Button';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Grid from '@mui/material/Grid';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport OutlinedInput from '@mui/material/OutlinedInput';\r\nimport { apiService, axiosError } from '../../../core';\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\n\r\nexport default function CreatePowerGrid(props) {\r\n const [inputData, setInputData] = React.useState({\r\n schemaId: ''\r\n });\r\n const openProp = props.open;\r\n const [open, setOpen] = React.useState(openProp);\r\n const [schemas, setSchemas] = React.useState([]);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n React.useEffect(() => {\r\n const getSchemas = async () => {\r\n try {\r\n const response = await apiService.get(`api/Internal/PowerGrids/Schemas`);\r\n setSchemas(response?.data);\r\n } catch(err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n };\r\n\r\n if (openProp) {\r\n getSchemas();\r\n }\r\n setOpen(openProp);\r\n }, [openProp]);\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n props.openChange(false);\r\n };\r\n\r\n const handleSchemaChange = (event) => {\r\n const { target: { value }} = event;\r\n setInputData({\r\n schemaId: value\r\n });\r\n };\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n props.createPowerGrid(inputData);\r\n };\r\n\r\n return (\r\n <div>\r\n <Dialog open={open} onClose={handleClose}>\r\n <form onSubmit={handleSubmit}>\r\n <DialogTitle>Create power grid</DialogTitle>\r\n <DialogContent style={{paddingTop: '10px'}}>\r\n <Grid container columnSpacing={{ xs: 1, sm: 2, md: 3 }}>\r\n <Grid item xs={12} sm={12}>\r\n <FormControl>\r\n <InputLabel>Schema</InputLabel>\r\n <Select\r\n value={inputData.schemaId}\r\n onChange={handleSchemaChange}\r\n input={<OutlinedInput label=\"Schema\" />}\r\n >\r\n {schemas.map((c) => (\r\n <MenuItem\r\n key={c.id}\r\n value={c.id}\r\n >\r\n { c.name }\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Grid>\r\n </Grid>\r\n </DialogContent>\r\n <DialogActions>\r\n <Button onClick={handleClose}>Cancel</Button>\r\n <Button onClick={handleClose} type=\"submit\">Submit</Button>\r\n </DialogActions>\r\n </form>\r\n </Dialog>\r\n </div>\r\n );\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n DataGrid, ColumnChooser, ColumnFixing, FilterBuilderPopup, FilterPanel, HeaderFilter, Pager,\r\n Paging, SearchPanel, Sorting, Column, Toolbar, Item\r\n} from \"devextreme-react/data-grid\";\r\nimport Button from \"devextreme-react/button\";\r\nimport DropDownButton from \"devextreme-react/drop-down-button\";\r\nimport { createStore } from \"devextreme-aspnet-data-nojquery\";\r\nimport { Box } from \"@mui/system\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { getErrorSnackbarOptions } from \"../../../utils/snackbarNotifications\";\r\nimport { apiService, axiosError, urlHelpers } from \"../../../core\";\r\nimport ProcessPowerGrid from \"./ProcessPowerGrid\";\r\nimport CreatePowerGrid from \"./CreatePowerGrid\";\r\n\r\nexport default function PowerGrids(props) {\r\n const [remoteDataSource, setRemoteDataSource] = useState();\r\n const [focusedRowId, setFocusedRowId] = useState();\r\n const [isProcessFormVisible, setIsProcessFormVisible] = useState(false);\r\n const [isCreateFormVisible, setIsCreateFormVisible] = useState(false);\r\n const dataGrid = useRef();\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n useEffect(() => {\r\n const getPowerGrids = async () => {\r\n setRemoteDataSource(\r\n createStore({\r\n key: \"rowGuid\",\r\n loadUrl: urlHelpers.getAbsoluteURL(\"api/Internal/PowerGrids\"),\r\n onBeforeSend: (e, s) => {\r\n s.headers = {\r\n Authorization: `Bearer ${localStorage.getItem(\"BrandsWebJWT\")}`\r\n };\r\n }\r\n })\r\n );\r\n };\r\n\r\n getPowerGrids();\r\n }, []);\r\n\r\n const onFocusedRowChanging = e => {\r\n setFocusedRowId(e.row && e.row.data?.id);\r\n };\r\n\r\n const onItemClicked = async e => {\r\n if (e.itemData.id === 1) {\r\n setIsProcessFormVisible(true);\r\n } \r\n }\r\n\r\n const openCreateFormChange = async e => {\r\n setIsCreateFormVisible(e);\r\n }\r\n\r\n const openProcessFormChange = async e => {\r\n setIsProcessFormVisible(e);\r\n }\r\n\r\n const processPowerGrid = async (data) => {\r\n try {\r\n dataGrid.current.instance.beginCustomLoading(\"processing power grid\");\r\n await apiService.post(`api/Internal/PowerGrids/${focusedRowId}`, { payrollNumber: data.prNum });\r\n refreshPowerGrids();\r\n } catch (err) {\r\n if (err.response?.status == 400) {\r\n enqueueSnackbar(err?.response?.data?.errors[0]?.errorMessage, getErrorSnackbarOptions(closeSnackbar));\r\n } else {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n } finally {\r\n dataGrid.current.instance.endCustomLoading();\r\n }\r\n }\r\n\r\n const refreshPowerGrids = () => {\r\n dataGrid.current.instance.refresh();\r\n }\r\n\r\n const createPowerGrid = async (data) => {\r\n try {\r\n dataGrid.current.instance.beginCustomLoading(\"adding power grid\");\r\n await apiService.post(`api/Internal/PowerGrids`, data);\r\n refreshPowerGrids();\r\n } catch (err) {\r\n enqueueSnackbar(axiosError.errorDescription(err), getErrorSnackbarOptions(closeSnackbar));\r\n } finally {\r\n dataGrid.current.instance.endCustomLoading();\r\n }\r\n }\r\n\r\n const actions = [\r\n { id: 1, text: \"Process\", icon: \"selectall\" }\r\n ];\r\n\r\n return (\r\n <Box sx={{ width: \"100%\", height: \"100%\" }}>\r\n <CreatePowerGrid open={isCreateFormVisible} openChange={openCreateFormChange} createPowerGrid={createPowerGrid}></CreatePowerGrid>\r\n <ProcessPowerGrid open={isProcessFormVisible} openChange={openProcessFormChange} processPowerGrid={processPowerGrid}></ProcessPowerGrid>\r\n <DataGrid\r\n ref={dataGrid}\r\n dataSource={remoteDataSource}\r\n height=\"100%\"\r\n width=\"100%\"\r\n allowColumnReordering={true}\r\n allowColumnResizing={true}\r\n columnAutoWidth={true}\r\n showBorders={true}\r\n columnResizingMode={\"widget\"}\r\n showColumnLines={false}\r\n rowAlternationEnabled\r\n focusedRowEnabled\r\n onFocusedRowChanged={onFocusedRowChanging}\r\n autoNavigateToFocusedRow>\r\n <Toolbar>\r\n <Item location=\"before\">\r\n <Button icon=\"refresh\" onClick={refreshPowerGrids} />\r\n </Item>\r\n <Item location=\"before\">\r\n <DropDownButton\r\n text=\"Power Grid Actions\"\r\n disabled={!focusedRowId}\r\n items={actions}\r\n onItemClick={onItemClicked}\r\n keyExpr=\"id\"\r\n displayExpr=\"text\"\r\n />\r\n </Item>\r\n <Item location=\"after\">\r\n <Button icon=\"add\" onClick={() => setIsCreateFormVisible(true)} />\r\n </Item>\r\n <Item name=\"columnChooserButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"searchPanel\" locateInMenu=\"auto\" location=\"after\" />\r\n </Toolbar>\r\n <SearchPanel visible width={250} />\r\n <HeaderFilter visible allowSearch />\r\n <ColumnChooser enabled />\r\n <Sorting mode=\"multiple\" />\r\n <ColumnFixing />\r\n <Paging defaultPageSize={40} />\r\n <Pager showPageSizeSelector />\r\n <FilterPanel visible />\r\n <FilterBuilderPopup />\r\n\r\n <Column dataField=\"name\" />\r\n <Column dataField=\"conum\" />\r\n <Column dataField=\"prnum\" />\r\n <Column dataField=\"createdBy\" />\r\n <Column dataField=\"createdDate\" dataType=\"datetime\" defaultSortIndex={0} defaultSortOrder=\"desc\" />\r\n <Column dataField=\"runDate\" dataType=\"datetime\" />\r\n <Column dataField=\"status\" />\r\n </DataGrid>\r\n </Box>\r\n );\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n DataGrid, ColumnChooser, ColumnFixing, FilterBuilderPopup, FilterPanel, HeaderFilter, Pager,\r\n Paging, SearchPanel, Sorting, Column, Toolbar, Item, Editing, Form, Popup\r\n} from \"devextreme-react/data-grid\";\r\nimport Button from \"devextreme-react/button\";\r\nimport { createStore } from \"devextreme-aspnet-data-nojquery\";\r\nimport { Box } from \"@mui/system\";\r\nimport { urlHelpers } from \"../../../core\";\r\n\r\nconst notesEditorOptions = { height: 100 };\r\n\r\nexport default function PipMsgTypes(props) {\r\n const [remoteDataSource, setRemoteDataSource] = useState();\r\n const [focusedRowPrNum, setFocusedRowPrNum] = useState();\r\n const dataGrid = useRef();\r\n\r\n useEffect(() => {\r\n const getPayrolls = async () => {\r\n setRemoteDataSource(\r\n createStore({\r\n key: \"msgType\",\r\n loadUrl: urlHelpers.getAbsoluteURL(`api/Internal/PayrollsInProcessMsgTypes`),\r\n updateUrl: urlHelpers.getAbsoluteURL(`api/Internal/PayrollsInProcessMsgTypes`),\r\n insertUrl: urlHelpers.getAbsoluteURL(`api/Internal/PayrollsInProcessMsgTypes`),\r\n onBeforeSend: (e, s) => {\r\n s.headers = {\r\n Authorization: `Bearer ${localStorage.getItem(\"BrandsWebJWT\")}`\r\n };\r\n }\r\n })\r\n );\r\n };\r\n\r\n getPayrolls();\r\n }, []);\r\n\r\n const onFocusedRowChanging = e => {\r\n setFocusedRowPrNum(e.row && e.row.data?.prnum);\r\n };\r\n\r\n const refreshPayrolls = () => {\r\n dataGrid.current.instance.refresh()\r\n }\r\n\r\n return (\r\n <Box sx={{ width: \"100%\", height: \"100%\" }}>\r\n <DataGrid remoteOperations\r\n ref={dataGrid}\r\n dataSource={remoteDataSource}\r\n height=\"100%\"\r\n width=\"100%\"\r\n allowColumnReordering={true}\r\n allowColumnResizing={true}\r\n columnAutoWidth={true}\r\n showBorders={true}\r\n columnResizingMode={\"widget\"}\r\n showColumnLines={false}\r\n rowAlternationEnabled\r\n focusedRowEnabled\r\n onFocusedRowChanged={onFocusedRowChanging}\r\n autoNavigateToFocusedRow\r\n >\r\n <Toolbar>\r\n <Item location=\"before\">\r\n <Button icon=\"refresh\" onClick={refreshPayrolls} />\r\n </Item>\r\n <Item name=\"columnChooserButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"revertButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"saveButton\" locateInMenu=\"auto\" location=\"after\" />\r\n <Item name=\"searchPanel\" locateInMenu=\"auto\" location=\"after\" />\r\n </Toolbar>\r\n <SearchPanel visible width={250} />\r\n <HeaderFilter visible allowSearch />\r\n <ColumnChooser enabled />\r\n <Sorting mode=\"multiple\" />\r\n <ColumnFixing />\r\n <Paging defaultPageSize={40} />\r\n <Pager showPageSizeSelector />\r\n <FilterPanel visible />\r\n <FilterBuilderPopup />\r\n\r\n <Editing mode=\"popup\" allowUpdating allowAdding>\r\n <Popup title=\"PayrollsInProcessMsgTypes\" showTitle={true} width={850} height='80vh'/>\r\n <Form>\r\n <Item itemType=\"group\" colCount={3} colSpan={2}>\r\n <Item dataField=\"msgType\" />\r\n <Item dataField=\"allowToBeIgnored\" />\r\n <Item dataField=\"allowIfNotEnforced\" />\r\n <Item dataField=\"description\" />\r\n <Item dataField=\"note\" />\r\n <Item dataField=\"parent\" /> \r\n </Item>\r\n\r\n <Item itemType=\"group\" caption=\"Paydeck\" colCount={1} colSpan={2}>\r\n <Item dataField=\"showInPaydeck\" editorType='dxCheckBox'/>\r\n <Item dataField=\"allowToBeIgnoredInPaydeck\" editorType='dxCheckBox'/>\r\n <Item dataField=\"showInPayrollEntry\" editorType='dxCheckBox'/>\r\n <Item dataField=\"showOnlyIfPayrollIsValidated\" editorType='dxCheckBox'/>\r\n <Item dataField=\"hasAction\" />\r\n <Item dataField=\"actionButtonLabel\" />\r\n <Item dataField=\"clientTitle\" colSpan={4}/>\r\n <Item\r\n dataField=\"paydeckMessageFormat\"\r\n // editorType=\"dxTextArea\"\r\n editorOptions={notesEditorOptions} />\r\n </Item>\r\n </Form>\r\n </Editing>\r\n\r\n <Column type='buttons'>\r\n <Button name='edit' />\r\n <Button name='delete' />\r\n <Button name='save' />\r\n <Button name='cancel' />\r\n </Column>\r\n\r\n <Column dataField=\"msgType\" allowEditing={false} />\r\n <Column dataField=\"allowToBeIgnored\" />\r\n <Column dataField=\"allowIfNotEnforced\" />\r\n <Column dataField=\"showInPaydeck\" />\r\n <Column dataField=\"showInPayrollEntry\" />\r\n\r\n <Column dataField=\"allowToBeIgnoredInPaydeck\" />\r\n <Column dataField=\"showOnlyIfPayrollIsValidated\" />\r\n <Column dataField=\"hasAction\" />\r\n <Column dataField=\"actionButtonLabel\" />\r\n <Column dataField=\"description\" />\r\n <Column dataField=\"note\" />\r\n <Column dataField=\"clientTitle\" />\r\n <Column dataField=\"paydeckMessageFormat\" />\r\n <Column dataField=\"parent\" />\r\n\r\n </DataGrid>\r\n </Box>\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Route } from \"react-router\";\r\nimport SuperAdminLayout from \"./SuperAdminLayout\";\r\nimport Payrolls from \"./Payrolls\";\r\nimport PowerGrids from \"./PowerGrids\";\r\nimport PipMsgTypes from \"./PipMsgTypes\";\r\nimport PayrollDetails from \"./PayrollDetails\";\r\n\r\nfunction SuperAdminRoutes(props) {\r\n return (\r\n <SuperAdminLayout>\r\n <Route path=\"/internal/super_admin/payroll/details\" component={() => <PayrollDetails />} />\r\n <Route path=\"/internal/super_admin/payroll\" exact component={() => <Payrolls />} />\r\n <Route path=\"/internal/super_admin/powerGrids\" component={() => <PowerGrids />} />\r\n <Route path=\"/internal/super_admin/pipMsgTypes\" component={() => <PipMsgTypes />} />\r\n\r\n </SuperAdminLayout>\r\n );\r\n}\r\n\r\nexport default SuperAdminRoutes;\r\n","import React from \"react\";\r\nimport ProtectedRoute from \"./ProtectedRoute\";\r\nimport { PAGES } from \"./pages\";\r\nimport { Switch } from \"react-router-dom\";\r\n\r\n/**\r\n * CPA routes -> /cpa\r\n */\r\nconst PageCPAPortalClients = React.lazy(() => import(\"../pages/cpa/clients\"));\r\nconst PageCPAPortalProfile = React.lazy(() => import(\"../pages/cpa/profile\"));\r\nconst PageCPAAddClient = React.lazy(() => import(\"../pages/cpa/add\"));\r\nconst PageCPAPortalSettings = React.lazy(() => import(\"../pages/cpa/settings/[section]\"));\r\nconst PageCPAPortalSignup = React.lazy(() => import(\"../pages/cpa/signup/[firmId]\"));\r\nconst PageCPAPortalOverview = React.lazy(() => import(\"../pages/cpa/overview/[companyId]\"));\r\nconst PageCPAPortalReports = React.lazy(() => import(\"../pages/cpa/reports/[section]/[companyId]\"));\r\n\r\nexport const CpaRoutes = ({ selectedCpaFirmId, permission }) => {\r\n return <Switch>\r\n <ProtectedRoute\r\n path={`${PAGES.cpaClientOverview.path}/:companyId`}\r\n title={PAGES.cpaClientOverview.title}\r\n permission={true}\r\n component={PageCPAPortalOverview}\r\n disabled={!selectedCpaFirmId}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.cpaClients.path}\r\n title={PAGES.cpaClients.title}\r\n permission={true}\r\n component={PageCPAPortalClients}\r\n disabled={!selectedCpaFirmId}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.cpaSignup.path}/:firmId`}\r\n title={PAGES.cpaSignup.title}\r\n permission={true}\r\n component={PageCPAPortalSignup}\r\n disabled={!selectedCpaFirmId}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.cpaProfile.path}\r\n title={PAGES.cpaProfile.title}\r\n permission={true}\r\n component={PageCPAPortalProfile}\r\n disabled={!selectedCpaFirmId}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.cpaSettings.path}/:section`}\r\n title={PAGES.cpaSettings.title}\r\n permission={true}\r\n component={PageCPAPortalSettings}\r\n disabled={!selectedCpaFirmId}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.cpaReports.path}/:section/:companyId/:sectionId/:reportId`}\r\n title={PAGES.cpaReports.title}\r\n permission={true}\r\n component={PageCPAPortalReports}\r\n disabled={!selectedCpaFirmId}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.cpaReports.path}/:section/:companyId/:sectionId`}\r\n title={PAGES.cpaReports.title}\r\n permission={true}\r\n component={PageCPAPortalReports}\r\n disabled={!selectedCpaFirmId}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.cpaReports.path}/:section/:companyId`}\r\n title={PAGES.cpaReports.title}\r\n permission={true}\r\n component={PageCPAPortalReports}\r\n disabled={!selectedCpaFirmId}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.cpaAddCompany.path}\r\n title={PAGES.cpaAddCompany.title}\r\n permission={true}\r\n component={PageCPAAddClient}\r\n disabled={!selectedCpaFirmId}\r\n />\r\n </Switch>\r\n}","import React from \"react\";\r\nimport ProtectedRoute from \"./ProtectedRoute\";\r\nimport { PAGES } from \"./pages\";\r\nimport { Switch } from \"react-router-dom\";\r\n\r\nconst PagePayrolls = React.lazy(() => import(\"../pages/payrolls\"));\r\nconst PagePayrollsPowerImports = React.lazy(() => import(\"../pages/payrolls/power-imports\"));\r\nconst PagePayrollsPowerImportsDetail = React.lazy(() =>\r\n import(\"../pages/payrolls/power-imports/[id]\")\r\n);\r\nconst PagePayrollsManualChecks = React.lazy(() => import(\"../pages/payrolls/manual-checks\"));\r\nconst PagePayrollsManualCheck = React.lazy(() =>\r\n import(\"../pages/payrolls/manual-checks/[checkKey]\")\r\n);\r\nconst PagePayroll = React.lazy(() => import(\"../pages/payrolls/[prnum]\"));\r\nconst PagePayrollSummary = React.lazy(() => import(\"../pages/payrolls/[prnum]/summary\"));\r\nconst PageStartPayroll = React.lazy(() => import(\"../pages/payrolls/new\"));\r\nconst PagePreferences = React.lazy(() => import(\"../pages/payrolls/preferences\"));\r\nconst PagePreferencesLists = React.lazy(() => import(\"../pages/payrolls/preferences/lists\"));\r\nconst PagePreferencesNewList = React.lazy(() => import(\"../pages/payrolls/preferences/new-list\"));\r\n\r\nconst PayrollRoutes = ({ permissions }) => {\r\n return (\r\n <Switch>\r\n <ProtectedRoute\r\n path={`${PAGES.payrollsManualChecks.path}/:checkKey`}\r\n title={PAGES.payrollsManualChecks.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePayrollsManualCheck}\r\n />\r\n\r\n <ProtectedRoute\r\n path={`${PAGES.payrollStart.path}/:step`}\r\n title={PAGES.payrollStart.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PageStartPayroll}\r\n />\r\n <ProtectedRoute\r\n exact\r\n disabled={false}\r\n path={PAGES.payrollsPowerImports.path}\r\n title={PAGES.payrollsPowerImports.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePayrollsPowerImports}\r\n />\r\n <ProtectedRoute\r\n disabled={false}\r\n path={`${PAGES.payrollsPowerImports.path}/:id`}\r\n title={PAGES.payrollsPowerImports.title}\r\n permission\r\n component={PagePayrollsPowerImportsDetail}\r\n />\r\n\r\n <ProtectedRoute\r\n exact\r\n disabled={false}\r\n path={PAGES.payrollsManualChecks.path}\r\n title={PAGES.payrollsManualChecks.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePayrollsManualChecks}\r\n />\r\n <ProtectedRoute\r\n exact\r\n disabled={false}\r\n path={PAGES.payrollsPreferences.path}\r\n title={PAGES.payrollsPreferences.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePreferences}\r\n />\r\n <ProtectedRoute\r\n exact\r\n disabled={false}\r\n path={PAGES.payrollsList.path}\r\n title={PAGES.payrollsList.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePreferencesLists}\r\n />\r\n <ProtectedRoute\r\n exact\r\n disabled={false}\r\n path={PAGES.newPayrollsList.path}\r\n title={PAGES.newPayrollsList.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePreferencesNewList}\r\n />\r\n <ProtectedRoute\r\n exact\r\n disabled={false}\r\n path={`${PAGES.editPayrollsList.path}/:filterId`}\r\n title={PAGES.editPayrollsList.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePreferencesNewList}\r\n />\r\n\r\n <ProtectedRoute\r\n path={`${PAGES.payrolls.path}/:prnum/summary`}\r\n title={PAGES.payrolls.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePayrollSummary}\r\n />\r\n\r\n <ProtectedRoute\r\n path={`${PAGES.payrolls.path}/:prnum`}\r\n title={PAGES.payrolls.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePayroll}\r\n />\r\n\r\n <ProtectedRoute\r\n path={PAGES.payrolls.path}\r\n title={PAGES.payrolls.title}\r\n permission={permissions?.paydeckPayroll}\r\n component={PagePayrolls}\r\n />\r\n </Switch>\r\n );\r\n};\r\n\r\nexport default PayrollRoutes;\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport ProtectedRoute from \"./ProtectedRoute\";\r\nimport { PAGES } from \"./pages\";\r\n\r\nconst PageESSDashboard = React.lazy(() => import(\"../pages/ess/dashboard\"));\r\nconst PageESSPayHistory = React.lazy(() => import(\"../pages/ess/pay-history\"));\r\nconst PageESSPayHistoryDetail = React.lazy(() => import(\"../pages/ess/pay-history/[id]\"));\r\nconst PageESSProfile = React.lazy(() => import(\"../pages/ess/profile\"));\r\nconst PageESSDocument = React.lazy(() => import(\"../pages/ess/documents\"));\r\nconst PageESSTaxWithholdings = React.lazy(() => import(\"../pages/ess/tax-withholdings\"));\r\nconst PageESSDirectDeposit = React.lazy(() => import(\"../pages/ess/direct-deposit\"));\r\nconst PageESSTimeKeeping = React.lazy(() => import(\"../pages/ess/time-keeping\"));\r\nconst PageESSSetup = React.lazy(() => import(\"../pages/ess/setup\"));\r\nconst PagePosterElite = React.lazy(() => import(\"../pages/ess/PosterElite/page\"));\r\n\r\nexport const EssRoutes = ({ }) => {\r\n return (\r\n <Switch>\r\n <ProtectedRoute\r\n path={PAGES.essPayHistoryDetail.path}\r\n title={PAGES.essPayHistoryDetail.title}\r\n permission\r\n component={PageESSPayHistoryDetail}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.essDashboard.path}\r\n title={PAGES.essDashboard.title}\r\n permission\r\n component={PageESSDashboard}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.essPayHistory.path}\r\n title={PAGES.essPayHistory.title}\r\n permission\r\n component={PageESSPayHistory}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.essProfile.path}/:section`}\r\n title={PAGES.essProfile.title}\r\n permission\r\n component={PageESSProfile}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.essProfile.path}\r\n title={PAGES.essProfile.title}\r\n permission\r\n component={PageESSProfile}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.essDocuments.path}/:year`}\r\n title={PAGES.essDocuments.title}\r\n permission\r\n component={PageESSDocument}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.essDocuments.path}\r\n title={PAGES.essDocuments.title}\r\n permission\r\n component={PageESSDocument}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.essTaxWithholdings.path}\r\n title={PAGES.essTaxWithholdings.title}\r\n permission\r\n component={PageESSTaxWithholdings}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.essDirectDeposit.path}\r\n title={PAGES.essDirectDeposit.title}\r\n permission\r\n component={PageESSDirectDeposit}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.essTimeKeeping.path}\r\n title={PAGES.essTimeKeeping.title}\r\n permission\r\n component={PageESSTimeKeeping}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.essSetup.path}\r\n title={PAGES.essSetup.title}\r\n permission\r\n component={PageESSSetup}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.essPosterElite.path}\r\n title={PAGES.essPosterElite.title}\r\n permission\r\n component={PagePosterElite}\r\n />\r\n </Switch>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport ProtectedRoute from \"./ProtectedRoute\";\r\nimport { PAGES } from \"./pages\";\r\n\r\nconst PageDevextremeEmployees = React.lazy(() => import(\"../pages/devextreme/employees\"));\r\n\r\nexport const DevextremeRoutes = ({}) => {\r\n return (\r\n <Switch>\r\n <ProtectedRoute\r\n path={PAGES.devextremeEmployees.path}\r\n title={PAGES.devextremeEmployees.title}\r\n permission\r\n component={PageDevextremeEmployees}\r\n />\r\n </Switch>\r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Type from \"prop-types\";\r\nimport Backdrop from \"@mui/material/Backdrop\";\r\nimport CircularProgress from \"@mui/material/CircularProgress\";\r\n\r\nfunction LoadingScreen() {\r\n const [showLoading, setShowLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n const timeoutId = setTimeout(() => {\r\n setShowLoading(true);\r\n }, 400);\r\n\r\n return () => {\r\n clearTimeout(timeoutId);\r\n };\r\n }, []);\r\n\r\n return (\r\n <Backdrop open={showLoading} sx={{ zIndex: 2000 }}>\r\n <CircularProgress disableShrink />\r\n </Backdrop>\r\n );\r\n}\r\n\r\nLoadingScreen.propTypes = {\r\n classes: Type.object\r\n};\r\n\r\nexport default LoadingScreen;\r\n","import React, { Suspense, useEffect, useRef } from \"react\";\r\nimport { Redirect, Route, Switch, useLocation, useHistory } from \"react-router-dom\";\r\nimport queryString from \"query-string\";\r\n\r\n/**\r\n * Utils\r\n */\r\nimport { PAGES } from \"../v2/lib/pages\";\r\nimport ProtectedRoute from \"./ProtectedRoute\";\r\nimport ErrorBoundary from \"../containers/ErrorBoundary\";\r\n\r\nimport { UserAuthorizationResultsSchemaRedirectTo } from \"@/api/types\";\r\nimport { useAppState } from \"@/states/app-state\";\r\nimport SuperAdminRoutes from \"../pages/internal/super_admin/SuperAdminRoutes\";\r\nimport { sessionStorageSyncApi } from \"../core/sessionStorageSyncApi\";\r\nimport { CpaRoutes } from \"./CpaRoutes\";\r\nimport PayrollRoutes from \"./PayrollRoutes\";\r\nimport { EssRoutes } from \"./EssRoutes\";\r\nimport { DevextremeRoutes } from \"./DevextremeRoutes\";\r\nimport LoadingScreen from \"../components/LoadingScreen\";\r\n\r\n/**\r\n * Containers/Components (do not render a route)\r\n */\r\nconst LayoutMain = React.lazy(() => import(\"../containers/LayoutMain/LayoutMain\"));\r\nconst EmployeeForm = React.lazy(() => import(\"../containers/EmployeeForm\"));\r\n\r\n/**\r\n * Auth routes -> /auth\r\n */\r\nconst PageBrandsLogin = React.lazy(() => import(\"../v2/pages/auth/login/page\"));\r\nconst PageBrands2FA = React.lazy(() => import(\"../v2/pages/auth/login/mfa/page\"));\r\nconst PageConfirmEmail = React.lazy(() => import(\"../v2/pages/auth/reset-password/email/page\"));\r\nconst PageConfirmPassword = React.lazy(\r\n () => import(\"../v2/pages/auth/set-up-account/password/page\")\r\n);\r\nconst PageFlowComplete = React.lazy(() => import(\"../v2/pages/auth/set-up-account/complete/page\"));\r\nconst PageSelectCompanyContainer = React.lazy(() => import(\"../v2/pages/auth/select-company/page\"));\r\nconst Impersonate = React.lazy(() => import(\"../v2/pages/auth/logout/[guid]/page\"));\r\nconst PageFrillSso = React.lazy(() => import(\"../v2/pages/auth/frill-sso/page\"));\r\n\r\n/**\r\n * Dashboard routes -> /dashboard\r\n */\r\nconst PageDashboard = React.lazy(() => import(\"../pages/dashboard\"));\r\n/**\r\n * Reports routes -> /reports\r\n */\r\nconst PageReports = React.lazy(() => import(\"../pages/reports\"));\r\nconst PageReportsQB = React.lazy(() => import(\"../pages/reports/qb\"));\r\nconst PageReportsSectionPosted = React.lazy(() => import(\"../pages/reports/posted\"));\r\nconst PageReportsSection = React.lazy(() => import(\"../pages/reports/[sectionId]\"));\r\nconst PageReportsRunV2 = React.lazy(() => import(\"../pages/reports/run-v2\"));\r\nconst PageReportsRunV2Section = React.lazy(() => import(\"../pages/reports/run-v2/[sectionId]\"));\r\nconst PageLiveReports = React.lazy(() => import(\"../pages/reports/live\"));\r\nconst PageReportsLive = React.lazy(() => import(\"../pages/reports/live/[reportId]\"));\r\n/**\r\n * Settings routes -> /settings\r\n */\r\nconst SettingsMain = React.lazy(() => import(\"../pages/settings\"));\r\nconst SettingsUsers = React.lazy(() => import(\"../pages/settings/users\"));\r\nconst SettingsManageCPAPortal = React.lazy(() => import(\"../pages/settings/cpaportal\"));\r\nconst SettingsNotifications = React.lazy(() => import(\"../pages/settings/notifications\"));\r\nconst PageEmployeeDeckSettings = React.lazy(\r\n () => import(\"../pages/settings/employeedeck/PageEmployeeDeckSettings\")\r\n);\r\n/**\r\n * Onboarding routes -> /onboarding\r\n */\r\nconst PageOnboarding = React.lazy(() => import(\"../pages/onboarding/[step]\"));\r\nconst PageOnboardingNew = React.lazy(() => import(\"../pages/onboarding/new\"));\r\nconst PageOnboardingSuccess = React.lazy(() => import(\"../pages/onboarding/success\"));\r\n\r\n/**\r\n * Custom reports routes -> /custom-reports\r\n */\r\nconst PageCustomReports = React.lazy(() => import(\"../v2/pages/custom-reports/page\"));\r\nconst PageCustomReport = React.lazy(() => import(\"../v2/pages/custom-reports/[id]/page\"));\r\n\r\n/**\r\n * Other Routes\r\n */\r\nconst PageRestricted = React.lazy(() => import(\"../pages/restricted\"));\r\nconst TestReactErrorBoundaries = React.lazy(() => import(\"../pages/test_react_error_boundaries\"));\r\nconst AuthorizePayroll = React.lazy(() => import(\"../pages/authorize-payroll\"));\r\nconst DebugView = React.lazy(() => import(\"../pages/debug\"));\r\nconst PagePowerImports = React.lazy(() => import(\"../pages/powerImports\"));\r\nconst PagePayrollFinancing = React.lazy(() => import(\"../pages/payroll-financing\"));\r\nconst PageEmployees = React.lazy(() => import(\"../pages/employees\"));\r\nconst PageNewEmployee = React.lazy(() => import(\"../pages/employees-new\"));\r\nconst PageEmployeesOnboarding = React.lazy(() => import(\"../pages/employees-onboarding\"));\r\nconst PageEmployeesOnboardingDetails = React.lazy(\r\n () => import(\"../pages/employees-onboarding/[id]\")\r\n);\r\nconst PageMultiCompanyUsers = React.lazy(() => import(\"../pages/usersbycompany\"));\r\nconst PageServices = React.lazy(() => import(\"../pages/services\"));\r\nconst PageEmployeeOnboarding = React.lazy(() => import(\"../pages/employee-onboarding\"));\r\nconst PageDesignGuidelines = React.lazy(() => import(\"../pages/design-guidelines\"));\r\n\r\nconst RootDiv = (props) => {\r\n const location = useLocation();\r\n const { children, ...rest } = props;\r\n\r\n return (\r\n <div\r\n id=\"routes-root-div\"\r\n {...rest}\r\n className={location.pathname !== \"/login\" ? \"App mainBody\" : \"App\"}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nconst Routes = (props) => {\r\n const profile = useAppState((state) => state.profile);\r\n const initiated = useAppState((state) => state.initiated);\r\n const permissions = profile ? profile.permission : {};\r\n const conum = profile?.conum;\r\n const selectedCpaFirmId = profile?.selectedCpaFirmId;\r\n const history = useHistory();\r\n const native = queryString.parse(history.location.search)?.native;\r\n const intervalId = useRef(null);\r\n\r\n useEffect(() => {\r\n try {\r\n const { conum: sessionConum, empnum } =\r\n JSON.parse(sessionStorageSyncApi.getEmployeeId()) ?? {};\r\n if (empnum && sessionConum && conum && sessionConum === conum) {\r\n sessionStorageSyncApi.removeEmployeeId();\r\n history.push(`/employees/${empnum}/employeePersonalInfo`);\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }, [conum]);\r\n\r\n useEffect(() => {\r\n if (native === \"true\") {\r\n sessionStorageSyncApi.setIsNative();\r\n }\r\n }, [native]);\r\n\r\n useEffect(() => {\r\n intervalId.current = setInterval(() => {\r\n const messagingIframe = document.querySelector('iframe[name=\"Messaging window\"]');\r\n if (messagingIframe) {\r\n if (messagingIframe.style.height !== \"0px\") {\r\n const regex = /^#\\d+ ~.*$/;\r\n const regexToReplace = /^#\\d+ ~/;\r\n const url = new URL(window.location);\r\n url.hash = `#conum=${conum}`;\r\n if (regex.test(document.title)) {\r\n document.title = document.title.replace(regexToReplace, `#${conum} ~`);\r\n } else {\r\n document.title = `#${conum} ~ ${document.title}`;\r\n }\r\n window.history.pushState({ state: \"new\" }, document.title, url);\r\n }\r\n }\r\n }, 1000);\r\n return () => {\r\n clearInterval(intervalId.current);\r\n };\r\n }, [conum]);\r\n\r\n if (!initiated) return <LoadingScreen />;\r\n\r\n return (\r\n <RootDiv>\r\n <Suspense {...props} fallback={<LoadingScreen />}>\r\n <Switch>\r\n <Route exact path={PAGES.reportsPrimary.path}>\r\n <Redirect to={PAGES.reports.path} />\r\n </Route>\r\n <Route exact path=\"/debug\" component={() => <DebugView />} />\r\n <Route path=\"/internal/super_admin\" component={() => <SuperAdminRoutes />} />\r\n {/* <SuperAdminLayout /> */}\r\n\r\n <Route exact path=\"/\" component={() => <Redirect to={PAGES.brandsLogin.path} />} />\r\n\r\n <Route exact path={`${PAGES.impersonate.path}/:guid`} component={Impersonate} />\r\n <Route exact path={PAGES.twoFactorAuthLogin.path} component={PageBrands2FA} />\r\n <Route path={PAGES.brandsLogin.path} component={PageBrandsLogin} />\r\n <Route path={PAGES.authFrillSso.path} component={PageFrillSso} />\r\n <Route path={`${PAGES.onboarding.path}/new`} component={PageOnboardingNew} />\r\n <Route path={`${PAGES.onboarding.path}/success`} component={PageOnboardingSuccess} />\r\n <Route\r\n exact\r\n path={PAGES.brandsLoginSelectCompany.path}\r\n component={PageSelectCompanyContainer}\r\n />\r\n <Route exact path={PAGES.setUpAccountPassword.path} component={PageConfirmPassword} />\r\n <Route exact path={PAGES.resetPasswordEmail.path} component={PageConfirmEmail} />\r\n <Route exact path={PAGES.resetPasswordInput.path} component={PageConfirmPassword} />\r\n <Route exact path={PAGES.resetPasswordComplete.path} component={PageFlowComplete} />\r\n <Route\r\n exact\r\n path={PAGES.testReactErrorBoundaries.path}\r\n component={TestReactErrorBoundaries}\r\n />\r\n <ProtectedRoute\r\n exact\r\n path={PAGES.restrictedIp.path}\r\n userOnlyAuthenticated\r\n permission\r\n component={PageRestricted}\r\n />\r\n <Route\r\n exact\r\n path={`${PAGES.employeeOnboarding.path}/:onboardingCode`}\r\n render={(props) => <PageEmployeeOnboarding {...props} />}\r\n />\r\n <Route exact path={PAGES.authorizePayroll.path} component={AuthorizePayroll} />\r\n <Redirect path={PAGES.standardReportsOld.path} to={PAGES.reportsPrimary.path} />\r\n <Redirect path={PAGES.runReportOld.path} to={PAGES.reportsRunV2.path} />\r\n <Redirect path={PAGES.reportsRun.path} to={PAGES.reportsRunV2.path} />\r\n <Redirect path={PAGES.myReportsOld.path} to={PAGES.reportsPosted.path} />\r\n <Route exact path={PAGES.designGuidelines.path} component={PageDesignGuidelines} />\r\n\r\n <LayoutMain>\r\n <Suspense {...props} fallback={<LoadingScreen />}>\r\n <Switch>\r\n <ProtectedRoute\r\n path={PAGES.dashboard.path}\r\n permission={permissions?.dashboard}\r\n component={PageDashboard}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n exact\r\n path={PAGES.platinumPayExpress.path}\r\n title={PAGES.platinumPayExpress.title}\r\n permission={permissions?.managePayroll}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n exact\r\n path={PAGES.swipeClock.path}\r\n title={PAGES.swipeClock.title}\r\n permission={profile?.swipeClockLoginName}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n exact\r\n path={PAGES.hrNextDirect.path}\r\n title={PAGES.hrNextDirect.title}\r\n permission={permissions?.managePayroll}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.payrollFinancing.path}\r\n title={PAGES.payrollFinancing.title}\r\n permission={permissions?.payrollFunding}\r\n component={PagePayrollFinancing}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.employees.path}/:empnum/:section`}\r\n title={PAGES.employeeForm.title}\r\n permission={permissions?.employee}\r\n render={(props) => {\r\n return (\r\n <>\r\n <EmployeeForm {...props} />\r\n <PageEmployees {...props} />\r\n </>\r\n );\r\n }}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.employees.path}/:empnum`}\r\n title={PAGES.employeeForm.title}\r\n permission={permissions?.employee}\r\n render={(props) => {\r\n return (\r\n <>\r\n <EmployeeForm {...props} />\r\n <PageEmployees {...props} />\r\n </>\r\n );\r\n }}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.employees.path}\r\n title={PAGES.employees.title}\r\n permission={permissions?.employee}\r\n render={(props) => {\r\n return (\r\n <>\r\n <EmployeeForm {...props} />\r\n <PageEmployees {...props} />\r\n </>\r\n );\r\n }}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.liveReports.path}/:reportId`}\r\n exact\r\n title={PAGES.liveReports.title}\r\n permission={permissions?.runReports}\r\n component={PageReportsLive}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.liveReports.path}\r\n title={PAGES.liveReports.title}\r\n permission={permissions?.runReports}\r\n component={PageLiveReports}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.reportsRunV2.path}\r\n title={PAGES.reportsRunV2.title}\r\n permission={permissions?.runReports}\r\n component={PageReportsRunV2}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.reportsPosted.path}\r\n title={PAGES.reportsPosted.title}\r\n permission\r\n component={PageReportsSectionPosted}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.reports.path}/qb`}\r\n title={PAGES.reports.title}\r\n permission\r\n component={PageReportsQB}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.reports.path}/:sectionId`}\r\n title={PAGES.reports.title}\r\n permission\r\n component={PageReportsSection}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.reports.path}\r\n title={PAGES.reports.title}\r\n permission\r\n component={PageReports}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.powerImports.path}\r\n title={PAGES.powerImports.title}\r\n permission={permissions?.powerImports}\r\n component={PagePowerImports}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.employeeDeckSettings.path}\r\n title={PAGES.employeeDeckSettings.title}\r\n permission={permissions?.manageEmployeeDeck}\r\n component={PageEmployeeDeckSettings}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.settingsMain.path}\r\n title={PAGES.settingsMain.title}\r\n permission={permissions?.manageContactsAndUsers}\r\n component={SettingsMain}\r\n exact\r\n disabled={!conum}\r\n />\r\n\r\n <ProtectedRoute\r\n path={PAGES.settingsUsers.path}\r\n title={PAGES.settingsUsers.title}\r\n permission={permissions?.manageContactsAndUsers}\r\n component={SettingsUsers}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.settingsManageCpaPortal.path}\r\n title={PAGES.settingsManageCpaPortal.title}\r\n permission={permissions?.manageContactsAndUsers}\r\n component={SettingsManageCPAPortal}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.settingsNotifications.path}\r\n title={PAGES.settingsNotifications.title}\r\n permission\r\n component={SettingsNotifications}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.services.path}\r\n title={PAGES.services.title}\r\n permission={permissions?.services}\r\n component={PageServices}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.reportsRunV2.path}/:sectionId`}\r\n title={PAGES.reportsRunV2.title}\r\n permission={permissions?.runReports}\r\n component={PageReportsRunV2Section}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.newEmployees.path}\r\n title={PAGES.newEmployees.title}\r\n permission={permissions?.employee}\r\n component={PageNewEmployee}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.employeesOnboarding.path}/:id`}\r\n title={PAGES.employeesOnboarding.title}\r\n permission={permissions?.employee}\r\n component={PageEmployeesOnboardingDetails}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.employeesOnboarding.path}\r\n title={PAGES.employeesOnboarding.title}\r\n permission={permissions?.employee}\r\n component={PageEmployeesOnboarding}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.usersbyCompany.path}\r\n title={PAGES.usersbyCompany.title}\r\n permission={permissions?.manageContactsAndUsers}\r\n component={PageMultiCompanyUsers}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.onboarding.path}/:step/:empnum/:section`}\r\n title={PAGES.onboarding.title}\r\n permission\r\n component={PageOnboarding}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.onboarding.path}/:step`}\r\n title={PAGES.onboarding.title}\r\n permission={\r\n profile?.redirectTo === UserAuthorizationResultsSchemaRedirectTo.Onboarding\r\n }\r\n component={PageOnboarding}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={`${PAGES.customReports.path}/:id`}\r\n title={PAGES.customReports.title}\r\n permission={permissions?.customReports}\r\n component={PageCustomReport}\r\n disabled={!conum}\r\n />\r\n <ProtectedRoute\r\n path={PAGES.customReports.path}\r\n title={PAGES.customReports.title}\r\n permission={permissions?.customReports}\r\n component={PageCustomReports}\r\n disabled={!conum}\r\n />\r\n <Route\r\n path=\"/payrolls\"\r\n render={() => <PayrollRoutes permissions={permissions} />}\r\n />\r\n <Route\r\n path=\"/cpa\"\r\n render={() => (\r\n <CpaRoutes selectedCpaFirmId={selectedCpaFirmId} permission={permissions} />\r\n )}\r\n />\r\n <Route path=\"/ess\" render={() => <EssRoutes />} />\r\n <Route path=\"/devextreme\" render={() => <DevextremeRoutes />} />\r\n\r\n <Redirect to={PAGES.dashboard.path} />\r\n </Switch>\r\n </Suspense>\r\n </LayoutMain>\r\n </Switch>\r\n </Suspense>\r\n </RootDiv>\r\n );\r\n};\r\n\r\nconst WrappedRoutes = (props) => {\r\n return (\r\n <ErrorBoundary>\r\n <Routes {...props} />\r\n </ErrorBoundary>\r\n );\r\n};\r\n\r\nexport default WrappedRoutes;\r\n","import { PAGES } from \"../routes/pages\";\r\nimport authService from \"../core/authService\";\r\nimport { logErrorsService } from \"../core\";\r\nimport { localStorageSyncApi } from \"../core/localStorageSyncApi\";\r\nimport { sessionStorageSyncApi } from \"../core/sessionStorageSyncApi\";\r\n\r\nlet redirectToLoginTimeoutId;\r\n\r\nexport const redirectToLoginTimerClear = () => {\r\n if (redirectToLoginTimeoutId) {\r\n window.clearTimeout(redirectToLoginTimeoutId);\r\n redirectToLoginTimeoutId = undefined;\r\n }\r\n};\r\n\r\nexport const redirectToLoginTimerStart = (history, locationPath) => {\r\n try {\r\n redirectToLoginTimerClear();\r\n const millisecondsTillExpiration = authService.getMillisecondsTillExpiration();\r\n redirectToLoginTimeoutId = window.setTimeout(() => {\r\n logErrorsService.info(\"redirectToLoginTimeout\");\r\n localStorageSyncApi.removeJwtToken();\r\n sessionStorageSyncApi.removeJwtToken();\r\n history.push(PAGES.brandsLogin.path, { prevLocation: locationPath });\r\n }, millisecondsTillExpiration);\r\n } catch (ex) {\r\n logErrorsService.error(`Error in redirectToLoginTimerStart - ${ex.message}`);\r\n return undefined;\r\n }\r\n};\r\n","function isPlainObject(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n const hasObjectPrototype = proto === null ||\n proto === Object.prototype ||\n Object.getPrototypeOf(proto) === null;\n if (!hasObjectPrototype) {\n return false;\n }\n return Object.prototype.toString.call(value) === '[object Object]';\n}\n\nexport { isPlainObject };\n","import { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction flattenObject(object) {\n return flattenObjectImpl(object);\n}\nfunction flattenObjectImpl(object, prefix = '') {\n const result = {};\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = object[key];\n const prefixedKey = prefix ? `${prefix}.${key}` : key;\n if (isPlainObject(value) && Object.keys(value).length > 0) {\n Object.assign(result, flattenObjectImpl(value, prefixedKey));\n continue;\n }\n if (Array.isArray(value)) {\n Object.assign(result, flattenObjectImpl(value, prefixedKey));\n continue;\n }\n result[prefixedKey] = value;\n }\n return result;\n}\n\nexport { flattenObject };\n","import { flattenObject } from 'es-toolkit'\r\n\r\nexport function createFormData(body: Record<string, unknown>) {\r\n const formData = new FormData()\r\n\r\n for (const [key, value] of Object.entries(flattenObject(body))) {\r\n if (value !== null && value !== undefined) {\r\n formData.append(key.replace(/\\.([0-9]+)(?=\\.|$)/g, '[$1]'), value as string | Blob)\r\n }\r\n }\r\n\r\n return formData\r\n}\r\n","/**\n * Generated by orval v7.7.0 🍺\n * Do not edit manually.\n * Brands Web API v2\n * OpenAPI spec version: v2\n */\nimport * as axios from 'axios';\nimport type {\n AxiosRequestConfig,\n AxiosResponse\n} from 'axios';\n\nimport type {\n AddCustomReportSchema,\n AddEmployeeAccountSchema,\n ChangePasswordRequestSchema,\n CheckSchema,\n CreateChecksPayloadSchema,\n CustomReportDetailsSchema,\n CustomReportsListItemSchema,\n DivisionSchema,\n EmployeeDetailsSchema,\n EmployeeIdentificationInfoSchema,\n EmployeeJobDropdownsSchema,\n EmployeeListFilterSchema,\n EmployeeListSchema,\n EmployeeTimeAndLaborSchema,\n ForgotPasswordRequestSchema,\n ImpersonateUserParams,\n LoginRequestSchema,\n LogoutRequestSchema,\n ManualCheckDetailsSchema,\n OnboardingEmployeeSchema,\n PayCodeSchema,\n PayrollChecksColumnSettingsSchema,\n PayrollChecksSortSettingsSchema,\n PayrollEntryIssueSchema,\n PayrollSchema,\n PayrollSettingsSchema,\n PayrollStatusDataSchema,\n ResendInviteEmailRequestSchema,\n ResetPasswordRequestSchema,\n ReviewEmployeeIdentificationInfoSchema,\n RunCustomReportSchema,\n SetUpPasswordSchema,\n SetUpTwoFactorAuthSchema,\n ShareCustomReportSchema,\n SignEmployeeIdentificationFormResultSchema,\n SignIdentificationFormBody,\n SwitchProfileRequestSchema,\n TwoFactorAuthDetailsSchema,\n TwoFactorLoginRequestSchema,\n UpdateCustomReportSchema,\n UpdateEmployeeIdDocumentsInfoResponseSchema,\n UpdateEmployeeIdDocumentsInfoSchema,\n UpdateEmployeeIdentificationDocumentsBody,\n UpdateEmployeeInfoSchema,\n UpdateProfileRequestSchema,\n UserAuthorizationResultsSchema,\n VerifyCodeSchema\n} from './schemas';\n\nimport { createFormData } from '../overrides/create-form-data';\nexport const changePassword = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n changePasswordRequestSchema: ChangePasswordRequestSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/ChangePassword`,\n changePasswordRequestSchema,options\n );\n }\n\nexport const setUpPassword = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n setUpPasswordSchema: SetUpPasswordSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/SetUpPassword`,\n setUpPasswordSchema,options\n );\n }\n\nexport const forgotPassword = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n forgotPasswordRequestSchema: ForgotPasswordRequestSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/ForgotPassword`,\n forgotPasswordRequestSchema,options\n );\n }\n\nexport const impersonateUser = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n userId: number,\n params?: ImpersonateUserParams, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/ImpersonateUser/${userId}`,undefined,{\n ...options,\n params: {...params, ...options?.params},}\n );\n }\n\nexport const login = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n loginRequestSchema: LoginRequestSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/login`,\n loginRequestSchema,options\n );\n }\n\nexport const logoutImpersonate = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n logoutRequestSchema: LogoutRequestSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/Logout`,\n logoutRequestSchema,options\n );\n }\n\nexport const getProfile = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/auth/Profile`,options\n );\n }\n\nexport const resendInviteEmail = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n resendInviteEmailRequestSchema: ResendInviteEmailRequestSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/ResendInviteEmail`,\n resendInviteEmailRequestSchema,options\n );\n }\n\nexport const resetPassword = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n resetPasswordRequestSchema: ResetPasswordRequestSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/ResetPassword`,\n resetPasswordRequestSchema,options\n );\n }\n\nexport const switchProfile = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n switchProfileRequestSchema: SwitchProfileRequestSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/SwitchProfile`,\n switchProfileRequestSchema,options\n );\n }\n\nexport const twoFactorLoginWithOTP = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n twoFactorLoginRequestSchema: TwoFactorLoginRequestSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/TwoFactorLogin`,\n twoFactorLoginRequestSchema,options\n );\n }\n\nexport const updateUserProfile = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n updateProfileRequestSchema: UpdateProfileRequestSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/auth/UpdateUserProfile`,\n updateProfileRequestSchema,options\n );\n }\n\n/**\n * @summary Gets report layouts\n */\nexport const getCustomReports = <TData = AxiosResponse<CustomReportsListItemSchema[]>>(\n options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/CustomReports`,options\n );\n }\n\n/**\n * @summary Adds report layout\n */\nexport const addCustomReport = <TData = AxiosResponse<void>>(\n addCustomReportSchema: AddCustomReportSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/CustomReports`,\n addCustomReportSchema,options\n );\n }\n\n/**\n * @summary Gets report layout by id\n */\nexport const getCustomReport = <TData = AxiosResponse<CustomReportDetailsSchema>>(\n id: number, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/CustomReports/${id}`,options\n );\n }\n\n/**\n * @summary Runs report layout by id\n */\nexport const runCustomReport = <TData = AxiosResponse<unknown[]>>(\n id: number,\n runCustomReportSchema: RunCustomReportSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/CustomReports/${id}`,\n runCustomReportSchema,options\n );\n }\n\n/**\n * @summary Updates report layout by id\n */\nexport const updateCustomReport = <TData = AxiosResponse<void>>(\n id: number,\n updateCustomReportSchema: UpdateCustomReportSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.put(\n `/api/CustomReports/${id}`,\n updateCustomReportSchema,options\n );\n }\n\n/**\n * @summary Deletes report layout by id\n */\nexport const deleteCustomReport = <TData = AxiosResponse<void>>(\n id: number, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.delete(\n `/api/CustomReports/${id}`,options\n );\n }\n\n/**\n * @summary Gets pay codes\n */\nexport const getPayCodes = <TData = AxiosResponse<PayCodeSchema[]>>(\n options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/CustomReports/PayCodes`,options\n );\n }\n\n/**\n * @summary Share report layout\n */\nexport const shareCustomReport = <TData = AxiosResponse<void>>(\n id: number,\n shareCustomReportSchema: ShareCustomReportSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/CustomReports/Shared/${id}`,\n shareCustomReportSchema,options\n );\n }\n\n/**\n * @summary Adds new user account for employee\n */\nexport const addNewEmployeeAccount = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n addEmployeeAccountSchema: AddEmployeeAccountSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/EmployeeOnboarding/Accounts`,\n addEmployeeAccountSchema,options\n );\n }\n\n/**\n * @summary Gets employee identification info\n */\nexport const getEmployeeIdentificationInfo = <TData = AxiosResponse<EmployeeIdentificationInfoSchema>>(\n options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/EmployeeOnboarding/IdentificationInfo`,options\n );\n }\n\n/**\n * @summary Updates employee identification documents\n */\nexport const updateEmployeeIdentificationDocuments = <TData = AxiosResponse<void>>(\n updateEmployeeIdentificationDocumentsBody: UpdateEmployeeIdentificationDocumentsBody, options?: AxiosRequestConfig\n ): Promise<TData> => {const formData = createFormData(updateEmployeeIdentificationDocumentsBody)\n return axios.default.put(\n `/api/EmployeeOnboarding/IdentificationInfo/Documents`,\n formData,options\n );\n }\n\n/**\n * @summary Gets onboarding employees\n */\nexport const getOnboardingEmployees = <TData = AxiosResponse<OnboardingEmployeeSchema[]>>(\n options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/EmployeeOnboardingManager/Employees`,options\n );\n }\n\n/**\n * @summary Gets onboarding employee details by onboarding employee number\n */\nexport const getOnboardingEmployee = <TData = AxiosResponse<EmployeeDetailsSchema>>(\n empNum: number, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/EmployeeOnboardingManager/Employees/${empNum}`,options\n );\n }\n\n/**\n * @summary Approves employee onboarding\n */\nexport const approveEmployeeOnboarding = <TData = AxiosResponse<void>>(\n empNum: number,\n updateEmployeeInfoSchema: UpdateEmployeeInfoSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/EmployeeOnboardingManager/Employees/${empNum}`,\n updateEmployeeInfoSchema,options\n );\n }\n\n/**\n * @summary Gets I-9 form for employee\n */\nexport const getIdentificationForm = <TData = AxiosResponse<Blob>>(\n empNum: number, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/EmployeeOnboardingManager/Employees/${empNum}/IdentificationForm`,{\n responseType: 'blob',\n ...options,}\n );\n }\n\n/**\n * @summary Signs I-9 form as employer\n */\nexport const signIdentificationForm = <TData = AxiosResponse<SignEmployeeIdentificationFormResultSchema>>(\n empNum: number,\n signIdentificationFormBody: SignIdentificationFormBody, options?: AxiosRequestConfig\n ): Promise<TData> => {const formData = createFormData(signIdentificationFormBody)\n return axios.default.post(\n `/api/EmployeeOnboardingManager/Employees/${empNum}/IdentificationForm`,\n formData,options\n );\n }\n\n/**\n * @summary Gets onboarding employee identification info\n */\nexport const getOnboardingEmployeeIdentificationInfo = <TData = AxiosResponse<ReviewEmployeeIdentificationInfoSchema>>(\n empNum: number, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/EmployeeOnboardingManager/Employees/${empNum}/IdentificationInfo`,options\n );\n }\n\n/**\n * @summary Updates onboarding employee identification info\n */\nexport const updateEmployeeIdentificationInfo = <TData = AxiosResponse<UpdateEmployeeIdDocumentsInfoResponseSchema>>(\n empNum: number,\n updateEmployeeIdDocumentsInfoSchema: UpdateEmployeeIdDocumentsInfoSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.put(\n `/api/EmployeeOnboardingManager/Employees/${empNum}/IdentificationInfo`,\n updateEmployeeIdDocumentsInfoSchema,options\n );\n }\n\n/**\n * @summary Gets W-4 form for employee by type (Federal or State)\n */\nexport const getTaxForm = <TData = AxiosResponse<Blob>>(\n empNum: number,\n type: string, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/EmployeeOnboardingManager/Employees/${empNum}/W4Forms/${type}`,{\n responseType: 'blob',\n ...options,}\n );\n }\n\nexport const getEmployees = <TData = AxiosResponse<EmployeeListSchema>>(\n employeeListFilterSchema: EmployeeListFilterSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/employees`,\n employeeListFilterSchema,options\n );\n }\n\n/**\n * @summary Activates direct deposit accounts (skips pre-note)\n */\nexport const skipPreNote = <TData = AxiosResponse<void>>(\n empnum: number, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/Employees/${empnum}/DirectDeposit/Activation`,undefined,options\n );\n }\n\nexport const updateEmployeeTimeAndLabor = <TData = AxiosResponse<EmployeeTimeAndLaborSchema>>(\n empnum: number,\n employeeTimeAndLaborSchema: EmployeeTimeAndLaborSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/Employees/${empnum}/Payroll/TimeAndLabor`,\n employeeTimeAndLaborSchema,options\n );\n }\n\nexport const getDivisions = <TData = AxiosResponse<DivisionSchema[]>>(\n options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/employees/Divisions`,options\n );\n }\n\nexport const getEmployeeJobDropdowns = <TData = AxiosResponse<EmployeeJobDropdownsSchema>>(\n options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/employees/EmployeeJob/Options`,options\n );\n }\n\n/**\n * @summary Gets manual check details by key\n */\nexport const getManualCheckDetails = <TData = AxiosResponse<ManualCheckDetailsSchema>>(\n checkKey: string, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/ManualChecks/${checkKey}`,options\n );\n }\n\n/**\n * @summary Gets payroll entry issues\n */\nexport const getPayrollEntryIssues = <TData = AxiosResponse<PayrollEntryIssueSchema[]>>(\n payrollNumber: number, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/PayrollAssistant/${payrollNumber}/PayrollEntryIssues`,options\n );\n }\n\n/**\n * @summary Gets payroll\n */\nexport const getPayroll = <TData = AxiosResponse<PayrollSchema>>(\n payrollNumber: number, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/Payrolls/${payrollNumber}`,options\n );\n }\n\n/**\n * @summary Adds check to payroll\n */\nexport const createChecks = <TData = AxiosResponse<void>>(\n payrollNumber: number,\n createChecksPayloadSchema: CreateChecksPayloadSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/Payrolls/${payrollNumber}/Checks`,\n createChecksPayloadSchema,options\n );\n }\n\n/**\n * @summary Removes check from payroll\n */\nexport const removeCheck = <TData = AxiosResponse<CheckSchema[]>>(\n payrollNumber: number,\n checkKey: string, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.delete(\n `/api/Payrolls/${payrollNumber}/Checks/${checkKey}`,options\n );\n }\n\n/**\n * @summary Updates checks column settings\n */\nexport const updateChecksColumnSettings = <TData = AxiosResponse<PayrollChecksColumnSettingsSchema>>(\n payrollNumber: string,\n payrollChecksColumnSettingsSchema: PayrollChecksColumnSettingsSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/Payrolls/${payrollNumber}/Checks/ColumnSettings`,\n payrollChecksColumnSettingsSchema,options\n );\n }\n\n/**\n * @summary Updates checks sort settings\n */\nexport const updateChecksSortSettings = <TData = AxiosResponse<PayrollChecksSortSettingsSchema>>(\n payrollNumber: string,\n payrollChecksSortSettingsSchema: PayrollChecksSortSettingsSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/Payrolls/${payrollNumber}/Checks/SortSettings`,\n payrollChecksSortSettingsSchema,options\n );\n }\n\n/**\n * @summary Updates type for checks in current payroll to direct deposit and activates direct deposit accounts for employee\n */\nexport const updateChecksTypeToDirectDeposit = <TData = AxiosResponse<CheckSchema>>(\n payrollNumber: number,\n employeeNumber: number, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/Payrolls/${payrollNumber}/Employees/${employeeNumber}/DirectDeposit`,undefined,options\n );\n }\n\n/**\n * @summary Update payroll settings\n */\nexport const updatePayrollSettings = <TData = AxiosResponse<PayrollSettingsSchema>>(\n payrollSettingsSchema: PayrollSettingsSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/Payrolls/PayrollSettings`,\n payrollSettingsSchema,options\n );\n }\n\n/**\n * @summary Gets company payroll status\n */\nexport const getCompanyPayrollStatus = <TData = AxiosResponse<PayrollStatusDataSchema>>(\n options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/Payrolls/Status`,options\n );\n }\n\nexport const getTwoFactorAuthDetails = <TData = AxiosResponse<TwoFactorAuthDetailsSchema>>(\n options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.get(\n `/api/TwoFactorAuth`,options\n );\n }\n\nexport const sendTwoFactorAuthCode = <TData = AxiosResponse<void>>(\n setUpTwoFactorAuthSchema: SetUpTwoFactorAuthSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/TwoFactorAuth/SendCode`,\n setUpTwoFactorAuthSchema,options\n );\n }\n\nexport const verifyTwoFactorAuthCode = <TData = AxiosResponse<UserAuthorizationResultsSchema>>(\n verifyCodeSchema: VerifyCodeSchema, options?: AxiosRequestConfig\n ): Promise<TData> => {\n return axios.default.post(\n `/api/TwoFactorAuth/VerifyCode`,\n verifyCodeSchema,options\n );\n }\n\nexport type ChangePasswordResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type SetUpPasswordResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type ForgotPasswordResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type ImpersonateUserResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type LoginResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type LogoutImpersonateResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type GetProfileResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type ResendInviteEmailResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type ResetPasswordResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type SwitchProfileResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type TwoFactorLoginWithOTPResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type UpdateUserProfileResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type GetCustomReportsResult = AxiosResponse<CustomReportsListItemSchema[]>\nexport type AddCustomReportResult = AxiosResponse<void>\nexport type GetCustomReportResult = AxiosResponse<CustomReportDetailsSchema>\nexport type RunCustomReportResult = AxiosResponse<unknown[]>\nexport type UpdateCustomReportResult = AxiosResponse<void>\nexport type DeleteCustomReportResult = AxiosResponse<void>\nexport type GetPayCodesResult = AxiosResponse<PayCodeSchema[]>\nexport type ShareCustomReportResult = AxiosResponse<void>\nexport type AddNewEmployeeAccountResult = AxiosResponse<UserAuthorizationResultsSchema>\nexport type GetEmployeeIdentificationInfoResult = AxiosResponse<EmployeeIdentificationInfoSchema>\nexport type UpdateEmployeeIdentificationDocumentsResult = AxiosResponse<void>\nexport type GetOnboardingEmployeesResult = AxiosResponse<OnboardingEmployeeSchema[]>\nexport type GetOnboardingEmployeeResult = AxiosResponse<EmployeeDetailsSchema>\nexport type ApproveEmployeeOnboardingResult = AxiosResponse<void>\nexport type GetIdentificationFormResult = AxiosResponse<Blob>\nexport type SignIdentificationFormResult = AxiosResponse<SignEmployeeIdentificationFormResultSchema>\nexport type GetOnboardingEmployeeIdentificationInfoResult = AxiosResponse<ReviewEmployeeIdentificationInfoSchema>\nexport type UpdateEmployeeIdentificationInfoResult = AxiosResponse<UpdateEmployeeIdDocumentsInfoResponseSchema>\nexport type GetTaxFormResult = AxiosResponse<Blob>\nexport type GetEmployeesResult = AxiosResponse<EmployeeListSchema>\nexport type SkipPreNoteResult = AxiosResponse<void>\nexport type UpdateEmployeeTimeAndLaborResult = AxiosResponse<EmployeeTimeAndLaborSchema>\nexport type GetDivisionsResult = AxiosResponse<DivisionSchema[]>\nexport type GetEmployeeJobDropdownsResult = AxiosResponse<EmployeeJobDropdownsSchema>\nexport type GetManualCheckDetailsResult = AxiosResponse<ManualCheckDetailsSchema>\nexport type GetPayrollEntryIssuesResult = AxiosResponse<PayrollEntryIssueSchema[]>\nexport type GetPayrollResult = AxiosResponse<PayrollSchema>\nexport type CreateChecksResult = AxiosResponse<void>\nexport type RemoveCheckResult = AxiosResponse<CheckSchema[]>\nexport type UpdateChecksColumnSettingsResult = AxiosResponse<PayrollChecksColumnSettingsSchema>\nexport type UpdateChecksSortSettingsResult = AxiosResponse<PayrollChecksSortSettingsSchema>\nexport type UpdateChecksTypeToDirectDepositResult = AxiosResponse<CheckSchema>\nexport type UpdatePayrollSettingsResult = AxiosResponse<PayrollSettingsSchema>\nexport type GetCompanyPayrollStatusResult = AxiosResponse<PayrollStatusDataSchema>\nexport type GetTwoFactorAuthDetailsResult = AxiosResponse<TwoFactorAuthDetailsSchema>\nexport type SendTwoFactorAuthCodeResult = AxiosResponse<void>\nexport type VerifyTwoFactorAuthCodeResult = AxiosResponse<UserAuthorizationResultsSchema>\n","import axios from 'axios'\r\n\r\nimport { app } from '@/states/app-state'\r\nimport { apiService, urlHelpers } from '~/core'\r\n\r\nexport * as api from './generated'\r\n\r\naxios.interceptors.request.use(\r\n (request) => {\r\n app.showLoading()\r\n\r\n request.url = urlHelpers.getAbsoluteURL(request.url) as string\r\n\r\n for (const [key, value] of Object.entries(apiService.getAxiosConfig())) {\r\n request.headers.set(key, value as string)\r\n }\r\n\r\n return request\r\n },\r\n (error) => {\r\n app.hideLoading()\r\n return Promise.reject(error as Error)\r\n },\r\n)\r\n\r\naxios.interceptors.response.use(\r\n (response) => {\r\n app.hideLoading()\r\n return response\r\n },\r\n (error) => {\r\n app.hideLoading()\r\n return Promise.reject(error as Error)\r\n },\r\n)\r\n","import { useMemo } from \"react\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { Location } from \"history\";\r\nimport { jwtDecode } from \"jwt-decode\";\r\nimport { apiService, authService, logErrorsService } from \"../core\";\r\nimport { PAGES } from \"../routes/pages\";\r\nimport { localStorageSyncApi } from \"../core/localStorageSyncApi\";\r\nimport { api } from \"@/api\";\r\nimport {\r\n SwitchProfileRequestSchema,\r\n SwitchProfileRequestSchemaProfileType,\r\n UserAuthorizationResultsSchema,\r\n UserAuthorizationResultsSchemaRedirectTo,\r\n} from \"@/api/types\";\r\nimport { useAppState } from \"@/states/app-state\";\r\n\r\ninterface LocationState {\r\n prevLocation?: string;\r\n flow?: string;\r\n}\r\n\r\ninterface CheckRedirectToProps extends UserAuthorizationResultsSchema {\r\n force?: boolean;\r\n dashboardOrDefaultPath?: string;\r\n}\r\n\r\nexport default function useAccountApi() {\r\n let location = useLocation<LocationState | undefined>();\r\n let history = useHistory();\r\n const setProfile = useAppState((state) => state.setProfile);\r\n\r\n function isString(myVar) {\r\n return typeof myVar === \"string\" || myVar instanceof String;\r\n }\r\n\r\n const accuntFunctions = useMemo(\r\n () => ({\r\n checkRedirectTo({\r\n redirectTo,\r\n dashboardOrDefaultPath,\r\n force = false,\r\n selectedCpaFirmId,\r\n }: CheckRedirectToProps) {\r\n let prevLocation = location && location.state ? location.state.prevLocation : \"\";\r\n if (location?.pathname?.startsWith(\"/ess/\")) prevLocation = location?.pathname ?? \"\";\r\n const flow = location && location.state ? location.state.flow : \"\";\r\n logErrorsService.info(\r\n `Entering checkRedirectTo. redirectTo ${redirectTo}, prevLocation ${prevLocation}, flow ${flow}`\r\n );\r\n let newPath: Partial<Location<LocationState>> = { pathname: \"\", state: {} };\r\n if (redirectTo === UserAuthorizationResultsSchemaRedirectTo.SelectCompany) {\r\n newPath = { pathname: PAGES.brandsLoginSelectCompany.path, state: { prevLocation } };\r\n } else if (redirectTo === UserAuthorizationResultsSchemaRedirectTo.IPRestricted) {\r\n newPath = { pathname: PAGES.restrictedIp.path, state: { prevLocation } };\r\n } else if (redirectTo === UserAuthorizationResultsSchemaRedirectTo.Onboarding) {\r\n if (location.pathname === PAGES.onboarding.path) {\r\n newPath = {\r\n pathname: `${PAGES.onboarding.path}/setup`,\r\n state: { prevLocation },\r\n };\r\n } else if (location.pathname.includes(\"onboarding\") && !force) {\r\n newPath = { pathname: location.pathname, state: { prevLocation } };\r\n } else {\r\n newPath = {\r\n pathname: `${PAGES.onboarding.path}/setup`,\r\n state: { prevLocation },\r\n };\r\n }\r\n } else if (redirectTo === UserAuthorizationResultsSchemaRedirectTo.CpaPortal) {\r\n newPath = {\r\n pathname: location.pathname.startsWith(\"/cpa\")\r\n ? location.pathname\r\n : PAGES.cpaClients.path,\r\n state: { prevLocation },\r\n };\r\n } else if (redirectTo === UserAuthorizationResultsSchemaRedirectTo.AddCpaDetails) {\r\n newPath = {\r\n pathname: `${PAGES.cpaSignup.path}/${selectedCpaFirmId}`,\r\n state: { prevLocation },\r\n };\r\n } else if (redirectTo === UserAuthorizationResultsSchemaRedirectTo.AddCpaUserName) {\r\n newPath = { pathname: PAGES.cpaProfile.path, state: { prevLocation } };\r\n } else if (\r\n redirectTo === UserAuthorizationResultsSchemaRedirectTo.TwoFactorAuth ||\r\n redirectTo === UserAuthorizationResultsSchemaRedirectTo.TwoFactorAuthSetup\r\n ) {\r\n newPath = { pathname: PAGES.twoFactorAuthLogin.path, state: { prevLocation } };\r\n } else if (redirectTo === UserAuthorizationResultsSchemaRedirectTo.Dashboard) {\r\n if (location.pathname.startsWith(\"/cpa\")) {\r\n newPath = { pathname: PAGES.dashboard.path };\r\n } else if (location.pathname.startsWith(\"/ess\")) {\r\n newPath = { pathname: PAGES.dashboard.path };\r\n } else if (location.pathname.startsWith(\"/employee-onboarding\")) {\r\n newPath = {\r\n pathname: location.pathname,\r\n state: { prevLocation },\r\n };\r\n } else if (\r\n prevLocation &&\r\n prevLocation !== \"\" &&\r\n isString(prevLocation) &&\r\n !prevLocation?.includes(\"/auth/\")\r\n ) {\r\n newPath = { pathname: prevLocation };\r\n } else {\r\n newPath = { pathname: dashboardOrDefaultPath };\r\n }\r\n } else if (redirectTo === UserAuthorizationResultsSchemaRedirectTo.EmployeeDeck) {\r\n if (\r\n prevLocation &&\r\n prevLocation !== \"\" &&\r\n isString(prevLocation) &&\r\n !prevLocation?.includes(\"/ess/setup\")\r\n ) {\r\n newPath = { pathname: prevLocation };\r\n } else {\r\n newPath = { pathname: PAGES.essDashboard.path, state: { prevLocation } };\r\n }\r\n } else if (redirectTo === UserAuthorizationResultsSchemaRedirectTo.EmployeeDeckOnboarding) {\r\n newPath = { pathname: PAGES.essSetup.path, state: { prevLocation } };\r\n }\r\n\r\n //redirect away from onboarding\r\n if (\r\n redirectTo !== UserAuthorizationResultsSchemaRedirectTo.Onboarding &&\r\n location.pathname?.includes(\"onboarding\") &&\r\n !location.pathname?.includes(\"employees-onboarding\") &&\r\n (!newPath || !newPath.pathname) &&\r\n !location.pathname.startsWith(`${PAGES.onboarding.path}/new`)\r\n ) {\r\n newPath = { pathname: PAGES.dashboard.path };\r\n }\r\n if (newPath && newPath.pathname && newPath.pathname !== location.pathname) {\r\n const split = newPath.pathname.split(\"?\");\r\n const search = split?.length > 1 ? split[1] : \"\";\r\n logErrorsService.info(`Redirecting to ${newPath.pathname}.`);\r\n history.push({\r\n pathname: split[0],\r\n search: search,\r\n state: {\r\n prevLocation: location?.state?.prevLocation,\r\n ...newPath.state,\r\n },\r\n });\r\n }\r\n },\r\n async login(response: AxiosResponse<UserAuthorizationResultsSchema>) {\r\n this.basicVerifyPasswordLogic(response);\r\n if (response && response.data) {\r\n localStorageSyncApi.checkVersion(response.data.version);\r\n this.checkRedirectTo({\r\n ...response.data,\r\n dashboardOrDefaultPath: PAGES.dashboard.path,\r\n });\r\n }\r\n\r\n // Do not remove onboarding guid unless login is successful\r\n const successfulLoginRedirectPaths = [\r\n UserAuthorizationResultsSchemaRedirectTo.Dashboard,\r\n UserAuthorizationResultsSchemaRedirectTo.SelectCompany,\r\n UserAuthorizationResultsSchemaRedirectTo.Onboarding,\r\n ];\r\n if (successfulLoginRedirectPaths.some((r) => r === response.data?.redirectTo)) {\r\n localStorageSyncApi.removeGuid();\r\n }\r\n },\r\n async switchProfile(\r\n profileType: SwitchProfileRequestSchemaProfileType,\r\n profileId: number,\r\n onboardingCode?: string\r\n ) {\r\n let payload: SwitchProfileRequestSchema = {\r\n profileType,\r\n id: profileId,\r\n employeeOnboardingCode: onboardingCode,\r\n };\r\n const response = await api.switchProfile(payload);\r\n // We first switch the token and profile data before\r\n // Before we were changing the data after redirecting the user\r\n // These caused issues of api returning data using the old token\r\n this.basicVerifyPasswordLogic(response);\r\n // after we switch the token and updated the profile\r\n // we check if we need to redirect the user somewhere else\r\n this.checkRedirectTo(\r\n {\r\n ...response.data,\r\n force: true,\r\n }\r\n // response.data.redirectTo,\r\n // null,\r\n // response.data.currentOnboardingStage,\r\n // true\r\n );\r\n return response.data;\r\n },\r\n async getPpxUrl() {\r\n const { data } = await apiService.get(\"api/accounts/PPX_URL\");\r\n return data;\r\n },\r\n async getPpxSignoutUrl() {\r\n const { data } = await apiService.get(\"api/accounts/PPX_LOGOUT_URL\");\r\n return data;\r\n },\r\n async getProfile() {\r\n try {\r\n const response = await api.getProfile();\r\n this.basicVerifyPasswordLogic(response);\r\n localStorageSyncApi.checkVersion(response.data?.version);\r\n this.checkRedirectTo(response.data);\r\n return response.data;\r\n } catch (err) {\r\n authService.removeToken();\r\n console.log(\"Error getting profile\");\r\n setProfile(null);\r\n history.push({\r\n pathname: PAGES.brandsLogin.path,\r\n state: { prevLocation: history.location.pathname, error: \"Not logged in\" },\r\n });\r\n }\r\n return null;\r\n },\r\n basicVerifyPasswordLogic(response: AxiosResponse<UserAuthorizationResultsSchema>) {\r\n if (response.status === 401) {\r\n try {\r\n authService.removeToken();\r\n } catch (error) {\r\n console.error(error, \"error removing token\");\r\n }\r\n window.location.replace(PAGES.brandsLogin.path);\r\n } else {\r\n const { token, jwtGuid } = response.data;\r\n authService.saveToken(token);\r\n authService.saveJwtGuid(jwtGuid);\r\n let decoded = jwtDecode(token);\r\n window.serverTimeOffset = decoded.iat - Math.floor(Date.now() / 1000);\r\n setProfile(response.data);\r\n }\r\n },\r\n async getSwipeClockUrl() {\r\n const { data } = await apiService.get(\"api/SwipeClock/SSO\");\r\n return data.url;\r\n },\r\n async getHrNextDirectSsoUrl() {\r\n const { data } = await apiService.get(\"api/HrNextDirect\");\r\n return data.url;\r\n },\r\n async getSwipeClockSignoutUrl() {\r\n return \"\";\r\n },\r\n async getSwipeLogins() {\r\n const { data } = await apiService.get(\"api/SwipeClock/logins\");\r\n return data;\r\n },\r\n }),\r\n [history, location]\r\n );\r\n return accuntFunctions;\r\n}\r\n","import { useSelector } from \"react-redux\";\r\nimport { selectIsLoading } from \"../../redux/ducks/appDuck\";\r\nimport { useContext, useEffect, useMemo } from \"react\";\r\nimport { authService, constants, logErrorsService } from \"../../core\";\r\nimport { localStorageSyncApi } from \"../../core/localStorageSyncApi\";\r\nimport { sessionStorageSyncApi } from \"../../core/sessionStorageSyncApi\";\r\nimport { PAGES } from \"../../routes/pages\";\r\nimport { JL } from \"jsnlog\";\r\nimport { selectSnackbar } from \"../../redux/ducks/snackbarDuck\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport {\r\n getErrorSnackbarOptions,\r\n getSuccessSnackbarOptions,\r\n} from \"../../utils/snackbarNotifications\";\r\nimport { useLocation, useHistory } from \"react-router\";\r\nimport { SignalRContext } from \"../../utils/signalR\";\r\nimport ErrorBoundaryComponent from \"../ErrorBoundary/ErrorBoundary\";\r\nimport { redirectToLoginTimerClear, redirectToLoginTimerStart } from \"../../utils/redirectToLogin\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { openNewDownloadModalAC } from \"../../redux/ducks/widgetNewDownloadDuck\";\r\nimport useAccountsApi from \"../../api/accountsApi\";\r\nimport LoadingScreen from \"../../components/LoadingScreen/LoadingScreen\";\r\nimport { useAppState } from \"@/states/app-state\";\r\n\r\nexport const RootLayout = (props) => {\r\n const profile = useAppState((state) => state.profile);\r\n const setProfile = useAppState((state) => state.setProfile);\r\n const location = useLocation();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const snackbar = useSelector((state) => selectSnackbar(state));\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n const signalRConnection = useContext(SignalRContext);\r\n const accountsApi = useAccountsApi();\r\n const showLoading = useSelector(selectIsLoading);\r\n\r\n const children = useMemo(() => {\r\n return props.children;\r\n }, [props]);\r\n\r\n useEffect(() => {\r\n setInspectletProperties(profile);\r\n setClarityProperties(profile);\r\n setFillSSO(profile);\r\n const logLevel = profile?.logLevel;\r\n switch (logLevel) {\r\n case \"info\":\r\n logErrorsService.setLogLevel(JL.getInfoLevel());\r\n break;\r\n default:\r\n logErrorsService.setLogLevel(JL.getInfoLevel());\r\n break;\r\n }\r\n }, [profile]);\r\n\r\n useEffect(() => {\r\n // Hide Google reCAPTCHA if logged in\r\n if (\r\n authService.isCompanyAuthenticated() ||\r\n authService.isCpaUser() ||\r\n authService.isEssUser()\r\n ) {\r\n if (!document.querySelector(\"body\").classList.contains(\"logged-in\")) {\r\n document.querySelector(\"body\").classList.add(\"logged-in\");\r\n }\r\n } else if (document.querySelector(\"body\").classList.contains(\"logged-in\")) {\r\n document.querySelector(\"body\").classList.remove(\"logged-in\");\r\n }\r\n\r\n // Hide Chat Support link if on login page\r\n if (location.pathname === PAGES.brandsLogin.path) {\r\n if (!document.querySelector(\"body\").classList.contains(\"login-page\")) {\r\n document.querySelector(\"body\").classList.add(\"login-page\");\r\n }\r\n } else if (document.querySelector(\"body\").classList.contains(\"login-page\")) {\r\n document.querySelector(\"body\").classList.remove(\"login-page\");\r\n }\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n const unregisterHistoryListener = history.listen(async (location, action) => {\r\n logErrorsService.info(\"route-change\", { location, action });\r\n try {\r\n if (signalRConnection?.connectionState !== \"Disconnected\") {\r\n await signalRConnection?.invoke(\"SetUrl\", location.pathname);\r\n }\r\n } catch (err) {\r\n logErrorsService.error(\"error in SetUrl\", err);\r\n }\r\n });\r\n return () => {\r\n unregisterHistoryListener();\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (snackbar.show === true) {\r\n if (snackbar.variant === \"success\") {\r\n enqueueSnackbar(snackbar.message, getSuccessSnackbarOptions(closeSnackbar));\r\n } else if (snackbar.variant === \"failure\") {\r\n enqueueSnackbar(snackbar.message, getErrorSnackbarOptions(closeSnackbar));\r\n }\r\n }\r\n }, [snackbar]);\r\n\r\n // SignalR\r\n useEffect(() => {\r\n if (signalRConnection) {\r\n try {\r\n signalRConnection.on(\"ReportNotification\", (data) => {\r\n dispatch(openNewDownloadModalAC(data));\r\n });\r\n signalRConnection.on(\"ForceRefreshConnection\", () => {\r\n window.location.reload(true);\r\n });\r\n } catch (err) {\r\n logErrorsService.error(\"error in LayoutMain useEffect signalR\");\r\n }\r\n }\r\n }, [signalRConnection]);\r\n\r\n useEffect(() => {\r\n const getProfile = async () => await accountsApi.getProfile();\r\n const isCompanyAuthenticated = authService.isCompanyAuthenticated();\r\n const isCpaUser = authService.isCpaUser();\r\n const isEssUser = authService.isEssUser();\r\n if ((isCompanyAuthenticated || isCpaUser || isEssUser) && !profile) {\r\n getProfile();\r\n redirectToLoginTimerStart(history, `${location.pathname}${location.search}`);\r\n } else {\r\n setProfile(null);\r\n }\r\n return () => {\r\n return redirectToLoginTimerClear;\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n let lockResolver;\r\n if (navigator && navigator.locks && navigator.locks.request) {\r\n const promise = new Promise((res) => {\r\n lockResolver = res;\r\n });\r\n\r\n navigator.locks.request(\"brands_lock\", { mode: \"shared\" }, () => {\r\n return promise;\r\n });\r\n }\r\n }, []);\r\n\r\n return (\r\n <ErrorBoundaryComponent isPage>\r\n <>\r\n {showLoading && <LoadingScreen />}\r\n {children}\r\n </>\r\n </ErrorBoundaryComponent>\r\n );\r\n};\r\n\r\nfunction setInspectletProperties(profile) {\r\n if (constants.IS_PRODUCTION && window.__insp) {\r\n const bfp = localStorageSyncApi.getOrSetBfp();\r\n const sfp = sessionStorageSyncApi.getOrSetSfp();\r\n const jwtGuid = authService.getJwtGuid();\r\n window.__insp.push([\"identify\", { userName: profile?.userName }]);\r\n window.__insp.push([\"tagSession\", { conum: profile?.conum }]);\r\n window.__insp.push([\"tagSession\", { ClientApp_Version: process.env.REACT_APP_VERSION }]);\r\n window.__insp.push([\"tagSession\", { API_Version: profile?.version }]);\r\n window.__insp.push([\"tagSession\", { bfp, sfp }]);\r\n jwtGuid && window.__insp.push([\"tagSession\", { JWT_Guid: jwtGuid }]);\r\n }\r\n}\r\n\r\nfunction setClarityProperties(profile) {\r\n if (!window?.clarity) return;\r\n\r\n window.clarity(\"set\", \"bfp\", localStorageSyncApi.getOrSetBfp());\r\n window.clarity(\"set\", \"sfp\", sessionStorageSyncApi.getOrSetSfp());\r\n window.clarity(\"set\", \"ClientApp_Version\", process.env.REACT_APP_VERSION);\r\n\r\n const jwtGuid = authService.getJwtGuid();\r\n if (jwtGuid) window.clarity(\"set\", \"JWT_Guid\", jwtGuid);\r\n\r\n if (profile) {\r\n window.clarity(\r\n \"identify\",\r\n profile?.userName,\r\n localStorageSyncApi.getOrSetBfp(),\r\n null,\r\n `${profile.employee?.firstName} ${profile.employee?.lastName}`\r\n );\r\n } else {\r\n window.clarity(\"identify\", null, localStorageSyncApi.getOrSetBfp());\r\n }\r\n\r\n if (!profile) return;\r\n window.clarity(\"set\", \"user_name\", profile?.userName);\r\n window.clarity(\"set\", \"API_Version\", profile?.version);\r\n if (profile?.conum) {\r\n window.clarity(\"set\", \"conum\", profile?.conum.toString());\r\n }\r\n}\r\n\r\nasync function setFillSSO(profile) {\r\n try {\r\n //https://github.com/Frill-co/frill-widget-examples/blob/1e8fea4b4ae9d26ea4e60c034aff7b60bada8ea4/examples/react/src/components/FrillWidget.tsx\r\n if (profile?.frillContainerKey) {\r\n const widget = await window.Frill(\"container\", {\r\n key: profile?.frillContainerKey,\r\n ssoToken: profile?.frillSsoToken,\r\n });\r\n if (!profile?.frillSsoToken) {\r\n window.Frill(\"unidentify\");\r\n widget.destroy();\r\n }\r\n }\r\n } catch (error) {\r\n logErrorsService.error(\"error in setFillSSO\", error);\r\n }\r\n}\r\n","import type {} from '@mui/x-date-pickers-pro/themeAugmentation'\r\n\r\nimport { createTheme } from '@mui/material'\r\nimport { autocompleteClasses } from '@mui/material/Autocomplete'\r\nimport { buttonClasses } from '@mui/material/Button'\r\nimport { formLabelClasses } from '@mui/material/FormLabel'\r\nimport { listItemButtonClasses } from '@mui/material/ListItemButton'\r\nimport { outlinedInputClasses } from '@mui/material/OutlinedInput'\r\nimport { svgIconClasses } from '@mui/material/SvgIcon'\r\nimport { tabClasses } from '@mui/material/Tab'\r\n\r\ndeclare module '@mui/material/styles' {\r\n interface TypographyVariants {\r\n body3: React.CSSProperties\r\n body4: React.CSSProperties\r\n subtitle3: React.CSSProperties\r\n }\r\n\r\n interface TypographyVariantsOptions {\r\n body3?: React.CSSProperties\r\n body4?: React.CSSProperties\r\n subtitle3?: React.CSSProperties\r\n }\r\n\r\n interface TypographyStates {\r\n hover: string\r\n selected: string\r\n focus: string\r\n focusVisible: string\r\n outlinedBorder?: string\r\n }\r\n\r\n interface Palette {\r\n textStates: TypographyStates\r\n primaryStates: TypographyStates\r\n errorStates: TypographyStates\r\n border?: TypeBorder\r\n purple: Palette['primary']\r\n green: Palette['grey']\r\n }\r\n\r\n interface PaletteOptions {\r\n textStates?: TypographyStates\r\n primaryStates?: TypographyStates\r\n errorStates?: TypographyStates\r\n border?: TypeBorder\r\n purple?: PaletteOptions['primary']\r\n green?: PaletteOptions['grey']\r\n }\r\n\r\n interface TypeBackground {\r\n success?: string\r\n error?: string\r\n warning?: string\r\n info?: string\r\n tableHeader?: string\r\n }\r\n\r\n interface TypeBorder {\r\n success?: string\r\n error?: string\r\n warning?: string\r\n info?: string\r\n }\r\n}\r\n\r\ndeclare module '@mui/material/Typography' {\r\n interface TypographyPropsVariantOverrides {\r\n body3: true\r\n body4: true\r\n subtitle3: true\r\n }\r\n}\r\n\r\ndeclare module '@mui/material/styles/createMixins' {\r\n interface Mixins {\r\n scrollbar?: CSSProperties\r\n scrollbarLight?: CSSProperties\r\n scrollbarLarge?: CSSProperties\r\n drawerWidth?: number\r\n navBarHeight?: number\r\n }\r\n}\r\n\r\ndeclare module '@mui/material/Avatar' {\r\n interface AvatarOwnProps {\r\n size?: 'small' | 'medium' | undefined\r\n }\r\n}\r\n\r\ndeclare module '@mui/material/ListItemButton' {\r\n interface ListItemButtonOwnProps {\r\n variant?: 'bolded' | undefined\r\n }\r\n}\r\n\r\nconst basePaletteTheme = createTheme({\r\n palette: {\r\n grey: {\r\n 50: '#F6F6F6',\r\n 100: '#E7E7E7',\r\n 200: '#D1D1D1',\r\n 300: '#B0B0B0',\r\n 400: '#898989',\r\n 500: '#6D6D6D',\r\n 600: '#5D5D5D',\r\n 700: '#4F4F4F',\r\n 800: '#454545',\r\n 900: '#3D3D3D',\r\n },\r\n },\r\n})\r\n\r\nexport const theme = createTheme({\r\n shape: {\r\n borderRadius: 6,\r\n },\r\n mixins: {\r\n scrollbar: {\r\n '& ::-webkit-scrollbar': {\r\n width: 6,\r\n },\r\n '& ::-webkit-scrollbar:horizontal': {\r\n height: 6,\r\n },\r\n '& ::-webkit-scrollbar-track': {\r\n background: 'transparent',\r\n },\r\n '& ::-webkit-scrollbar-thumb': {\r\n backgroundColor: 'transparent',\r\n borderRadius: 2.5,\r\n border: '3px solid transparent',\r\n backgroundClip: 'padding-box',\r\n },\r\n '&:hover': {\r\n '& ::-webkit-scrollbar-thumb': {\r\n border: '3px solid #000000',\r\n },\r\n },\r\n scrollbarWidth: 'thin',\r\n scrollbarColor: 'transparent',\r\n },\r\n scrollbarLight: {\r\n overflowY: 'auto',\r\n '&::-webkit-scrollbar': {\r\n width: 2,\r\n },\r\n '&::-webkit-scrollbar-track': {\r\n background: 'transparent',\r\n },\r\n '&::-webkit-scrollbar-thumb': {\r\n backgroundColor: 'transparent',\r\n borderRadius: 20,\r\n border: '3px solid transparent',\r\n backgroundClip: 'padding-box',\r\n },\r\n '&:hover': {\r\n '&::-webkit-scrollbar': {\r\n width: 2,\r\n marginTop: 3,\r\n },\r\n '&::-webkit-scrollbar-thumb': {\r\n border: '3px solid #c4c4c4',\r\n },\r\n },\r\n },\r\n scrollbarLarge: {\r\n '& ::-webkit-scrollbar': {\r\n width: 12,\r\n },\r\n '& ::-webkit-scrollbar:horizontal': {\r\n height: 12,\r\n },\r\n '& ::-webkit-scrollbar-track': {\r\n background: 'transparent',\r\n },\r\n '& ::-webkit-scrollbar-thumb': {\r\n backgroundColor: 'transparent',\r\n borderRadius: 5,\r\n border: '6px solid #000000',\r\n backgroundClip: 'padding-box',\r\n },\r\n '&:hover': {\r\n '& ::-webkit-scrollbar-thumb': {\r\n border: '6px solid #000000',\r\n },\r\n },\r\n scrollbarWidth: 'thin',\r\n scrollbarColor: 'transparent',\r\n },\r\n drawerWidth: 260,\r\n navBarHeight: 48,\r\n },\r\n typography: {\r\n h1: {\r\n fontFamily: '\"Merriweather\", serif',\r\n fontWeight: 400,\r\n fontSize: '48px',\r\n lineHeight: '56px',\r\n letterSpacing: 0,\r\n },\r\n h2: {\r\n fontFamily: '\"Merriweather\", serif',\r\n fontWeight: 700,\r\n fontSize: '34px',\r\n lineHeight: '42px',\r\n letterSpacing: 0,\r\n },\r\n h3: {\r\n fontFamily: '\"Merriweather\", serif',\r\n fontWeight: 700,\r\n fontSize: '28px',\r\n lineHeight: '34px',\r\n letterSpacing: 0,\r\n },\r\n h4: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 500,\r\n fontSize: '32px',\r\n lineHeight: '38px',\r\n letterSpacing: 0,\r\n },\r\n h5: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 600,\r\n fontSize: '24px',\r\n lineHeight: '30px',\r\n letterSpacing: 0,\r\n },\r\n h6: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 600,\r\n fontSize: '20px',\r\n lineHeight: '24px',\r\n letterSpacing: 0,\r\n },\r\n body1: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 400,\r\n fontSize: '16px',\r\n lineHeight: '20px',\r\n letterSpacing: 0,\r\n },\r\n body2: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 400,\r\n fontSize: '14px',\r\n lineHeight: '18px',\r\n letterSpacing: 0,\r\n },\r\n body3: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 400,\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n letterSpacing: 0,\r\n },\r\n body4: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 300,\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n letterSpacing: 0,\r\n },\r\n subtitle1: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 500,\r\n fontSize: '16px',\r\n lineHeight: '20px',\r\n letterSpacing: 0,\r\n },\r\n subtitle2: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 500,\r\n fontSize: '14px',\r\n lineHeight: '18px',\r\n letterSpacing: 0,\r\n },\r\n subtitle3: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 400,\r\n fontSize: '14px',\r\n lineHeight: '18px',\r\n letterSpacing: 0,\r\n },\r\n overline: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 400,\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n letterSpacing: '0.08em',\r\n textTransform: 'uppercase',\r\n },\r\n caption: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 400,\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n letterSpacing: '0.02em',\r\n },\r\n button: {\r\n fontFamily: '\"Inter\", serif',\r\n fontWeight: 500,\r\n fontSize: '14px',\r\n lineHeight: '18px',\r\n letterSpacing: 0,\r\n textTransform: 'none',\r\n },\r\n },\r\n palette: {\r\n text: {\r\n primary: basePaletteTheme.palette.grey[900],\r\n secondary: basePaletteTheme.palette.grey[500],\r\n disabled: basePaletteTheme.palette.grey[300],\r\n },\r\n textStates: {\r\n hover: '#3D3D3D0A',\r\n selected: '#3D3D3D14',\r\n focus: '#3D3D3D1F',\r\n focusVisible: '#3D3D3D4D',\r\n },\r\n primary: {\r\n main: '#4C27FF',\r\n light: '#877FFF',\r\n dark: '#3311C6',\r\n contrastText: '#FFFFFF',\r\n },\r\n primaryStates: {\r\n hover: '#4C27FF0A',\r\n selected: '#4C27FF14',\r\n focus: '#4C27FF1F',\r\n focusVisible: '#4C27FF40',\r\n outlinedBorder: '#4C27FF80',\r\n },\r\n secondary: {\r\n main: '#0FA7E8',\r\n light: '#7ED4FB',\r\n dark: '#046AA0',\r\n contrastText: '#FFFFFF',\r\n },\r\n purple: {\r\n light: '#AFADFF',\r\n main: '#4426D9',\r\n dark: '#4426D9',\r\n },\r\n action: {\r\n active: '#0000008F',\r\n hover: '#0000000A',\r\n selected: '#00000014',\r\n focus: '#0000001F',\r\n disabled: '#00000061',\r\n disabledBackground: '#0000001F',\r\n },\r\n error: {\r\n main: '#E91A19',\r\n light: '#FF6867',\r\n dark: '#A21312',\r\n contrastText: '#FFFFFF',\r\n },\r\n errorStates: {\r\n hover: 'rgba(233, 26, 25, 0.04)',\r\n selected: '#E91A19',\r\n focus: '#E91A19',\r\n focusVisible: '#E91A19',\r\n outlinedBorder: '#E91A19',\r\n },\r\n warning: {\r\n main: '#EF6C00',\r\n light: '#FF9800',\r\n dark: '#E65100',\r\n contrastText: '#FFFFFF',\r\n },\r\n info: {\r\n main: '#4C27FF',\r\n light: '#877FFF',\r\n dark: '#3311C6',\r\n contrastText: '#FFFFFF',\r\n },\r\n success: {\r\n main: '#04B50B',\r\n light: '#45F24B',\r\n dark: '#0C6F11',\r\n contrastText: '#FFFFFF',\r\n },\r\n common: {\r\n black: basePaletteTheme.palette.grey[900],\r\n white: '#FFFFFF',\r\n },\r\n background: {\r\n paper: '#FFFFFF',\r\n default: '#FBFBFF',\r\n success: '#EFFFEE',\r\n error: '#FFF1F1',\r\n warning: '#FFF3E0',\r\n info: '#F0F9FF',\r\n tableHeader: 'rgba(61, 61, 61, 0.04)',\r\n },\r\n green: {\r\n 900: '#0C5B11',\r\n },\r\n divider: '#E7E7E7',\r\n grey: {\r\n ...basePaletteTheme.palette.grey,\r\n },\r\n border: {\r\n success: '#04B50B80',\r\n error: '#E91A1980',\r\n warning: '#EF6C0080',\r\n info: '#0FA7E880',\r\n },\r\n },\r\n shadows: [\r\n 'none',\r\n '0px 2px 4px 0px rgba(0, 0, 0, 0.08)',\r\n '0px 2px 6px 0px rgba(0, 0, 0, 0.12)',\r\n '0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)',\r\n '0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)',\r\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)',\r\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',\r\n '0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)',\r\n '0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)',\r\n '0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)',\r\n '0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)',\r\n '0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)',\r\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)',\r\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)',\r\n '0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)',\r\n '0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)',\r\n '0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)',\r\n '0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)',\r\n '0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)',\r\n '0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)',\r\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)',\r\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)',\r\n '0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)',\r\n '0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)',\r\n '0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)',\r\n ],\r\n components: {\r\n MuiButton: {\r\n defaultProps: {\r\n disableElevation: true,\r\n disableRipple: true,\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n textTransform: 'none',\r\n padding: theme.spacing(1.25, 2),\r\n borderRadius: 6,\r\n }),\r\n sizeLarge: ({ theme }) => ({\r\n padding: theme.spacing(1, 2.75),\r\n fontSize: 15,\r\n lineHeight: '24px',\r\n [`&.${buttonClasses.outlined}`]: {\r\n padding: theme.spacing(0.875, 2.625),\r\n },\r\n }),\r\n sizeMedium: ({ theme }) => ({\r\n padding: theme.spacing(1, 2),\r\n [`&.${buttonClasses.outlined}`]: {\r\n padding: theme.spacing(0.875, 1.875),\r\n },\r\n }),\r\n sizeSmall: ({ theme }) => ({\r\n padding: theme.spacing(0.875, 1.5),\r\n fontSize: 13,\r\n lineHeight: '18px',\r\n [`&.${buttonClasses.outlined}`]: {\r\n padding: theme.spacing(0.75, 1.375),\r\n },\r\n [`& .${buttonClasses.endIcon}`]: {\r\n marginLeft: theme.spacing(0.75),\r\n },\r\n [`& .${buttonClasses.endIcon} > *:nth-of-type(1)`]: {\r\n fontSize: 14,\r\n },\r\n }),\r\n startIcon: {\r\n '>*:nth-of-type(1)': { fontSize: 16 },\r\n },\r\n endIcon: {\r\n '>*:nth-of-type(1)': { fontSize: 16 },\r\n },\r\n contained: {\r\n boxShadow: '0px 2px 4px 0px rgba(0, 0, 0, 0.08)',\r\n '&:hover': {\r\n boxShadow: '0px 2px 6px 0px rgba(0, 0, 0, 0.12)',\r\n },\r\n '&:focus': {\r\n boxShadow: '0px 1px 10px 0px rgba(0, 0, 0, 0.12)',\r\n },\r\n [`&.${buttonClasses.colorPrimary} .${svgIconClasses.root}`]: {\r\n stroke: '#FFF !important',\r\n },\r\n },\r\n colorInherit: () => ({\r\n // borderColor: theme.palette.action.focus,\r\n }),\r\n },\r\n },\r\n MuiPaper: {\r\n defaultProps: {\r\n elevation: 0,\r\n variant: 'outlined',\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n borderRadius: theme.shape.borderRadius,\r\n }),\r\n outlined: ({ theme }) => ({\r\n border: `1px solid ${theme.palette.action.hover}`,\r\n }),\r\n },\r\n },\r\n MuiCard: {\r\n defaultProps: {\r\n elevation: 0,\r\n variant: 'outlined',\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n borderRadius: theme.shape.borderRadius,\r\n padding: theme.spacing(3),\r\n }),\r\n },\r\n },\r\n MuiTabs: {\r\n defaultProps: {\r\n TabIndicatorProps: {\r\n sx: {\r\n backgroundColor: 'primaryStates.outlinedBorder',\r\n },\r\n },\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n width: '100%',\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n }),\r\n },\r\n },\r\n MuiTab: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n textTransform: 'none',\r\n [`&.${tabClasses.selected}`]: {\r\n backgroundColor: theme.palette.primaryStates.hover,\r\n },\r\n }),\r\n },\r\n },\r\n MuiPopover: {\r\n defaultProps: {\r\n slotProps: {\r\n paper: {\r\n elevation: 2,\r\n variant: 'elevation',\r\n },\r\n },\r\n },\r\n styleOverrides: {\r\n paper: ({ theme }) => ({\r\n borderRadius: theme.shape.borderRadius,\r\n }),\r\n },\r\n },\r\n MuiModal: {\r\n defaultProps: {\r\n slotProps: {\r\n backdrop: {\r\n invisible: false,\r\n },\r\n },\r\n },\r\n styleOverrides: {\r\n backdrop: () => ({\r\n backgroundColor: 'rgba(0, 0, 0, 0.1)',\r\n }),\r\n },\r\n },\r\n MuiButtonBase: {\r\n styleOverrides: {\r\n root: ({ theme, ownerState }) => ({\r\n [`&.${listItemButtonClasses.root}`]: {\r\n padding: theme.spacing(1.5, 2),\r\n ...(ownerState.variant === 'bolded' && {\r\n color: theme.palette.text.secondary,\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n color: theme.palette.text.primary,\r\n },\r\n '&.Mui-selected': {\r\n color: theme.palette.text.primary,\r\n backgroundColor: 'transparent',\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n }),\r\n },\r\n }),\r\n },\r\n },\r\n MuiAvatar: {\r\n styleOverrides: {\r\n root: ({ theme, ownerState }) => ({\r\n ...theme.typography.caption,\r\n boxShadow: theme.shadows[1],\r\n width: 64,\r\n height: 64,\r\n ...(ownerState.size === 'small' && {\r\n width: 24,\r\n height: 24,\r\n }),\r\n }),\r\n },\r\n },\r\n MuiList: {\r\n defaultProps: {\r\n disablePadding: true,\r\n },\r\n },\r\n MuiListItem: {\r\n defaultProps: {\r\n disablePadding: true,\r\n },\r\n },\r\n MuiListItemText: {\r\n defaultProps: {\r\n primaryTypographyProps: {\r\n variant: 'body2',\r\n },\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n // minHeight: 24,\r\n margin: 0,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: theme.spacing(0.25),\r\n justifyContent: 'center',\r\n }),\r\n },\r\n },\r\n MuiListItemAvatar: {\r\n styleOverrides: {\r\n root: () => ({\r\n minWidth: 36,\r\n display: 'flex',\r\n alignItems: 'center',\r\n }),\r\n },\r\n },\r\n MuiAutocomplete: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n [`& .${outlinedInputClasses.root}`]: {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n paddingLeft: 0,\r\n [`& .${autocompleteClasses.input}`]: {\r\n padding: theme.spacing(1, 1.5),\r\n },\r\n },\r\n }),\r\n },\r\n },\r\n MuiChip: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n ...theme.typography.caption,\r\n }),\r\n sizeSmall: () => ({\r\n height: 18,\r\n }),\r\n },\r\n },\r\n MuiInputBase: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n fontSize: 14,\r\n fontWeight: 400,\r\n '&.MuiInput-underline': {\r\n '&:before': {\r\n borderWidth: 1,\r\n borderBottomColor: theme.palette.divider,\r\n },\r\n '&:after': {\r\n borderWidth: 1,\r\n borderBottomColor: theme.palette.grey[900],\r\n },\r\n '&:hover:not(.Mui-disabled,.Mui-error):before': {\r\n borderWidth: 1,\r\n borderBottomColor: theme.palette.divider,\r\n },\r\n },\r\n '& .MuiInputBase-inputAdornedStart': {\r\n paddingLeft: 0,\r\n },\r\n }),\r\n },\r\n },\r\n MuiInputAdornment: {\r\n styleOverrides: {\r\n positionStart: ({ theme }) => ({\r\n marginRight: theme.spacing(0.75),\r\n }),\r\n },\r\n },\r\n MuiDialogTitle: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n padding: theme.spacing(2),\r\n }),\r\n },\r\n },\r\n MuiDialogContent: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n padding: theme.spacing(2),\r\n }),\r\n },\r\n },\r\n MuiDialogActions: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n padding: theme.spacing(2),\r\n }),\r\n },\r\n },\r\n MuiRadio: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n padding: theme.spacing(1.125),\r\n [`& .${svgIconClasses.root}`]: {\r\n width: 20,\r\n height: 20,\r\n },\r\n }),\r\n },\r\n },\r\n // TODO: need review ☝️\r\n MuiFormControl: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n gap: theme.spacing(0.75),\r\n }),\r\n },\r\n },\r\n MuiFormControlLabel: {\r\n defaultProps: {\r\n componentsProps: {\r\n typography: {\r\n variant: 'body2',\r\n },\r\n },\r\n },\r\n },\r\n MuiFormLabel: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n color: theme.palette.text.primary,\r\n ...theme.typography.body2,\r\n [`&.${formLabelClasses.focused}`]: {\r\n color: theme.palette.text.primary,\r\n },\r\n }),\r\n },\r\n },\r\n MuiFormHelperText: {\r\n styleOverrides: {\r\n root: {\r\n margin: 0,\r\n },\r\n },\r\n },\r\n MuiInputLabel: {\r\n styleOverrides: {\r\n root: {\r\n textWrap: 'wrap',\r\n },\r\n outlined: {\r\n position: 'relative',\r\n transform: 'translate(0px, 0px) scale(1)',\r\n },\r\n },\r\n },\r\n MuiTextField: {\r\n defaultProps: {\r\n variant: 'outlined',\r\n InputLabelProps: {\r\n shrink: true,\r\n },\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n gap: theme.spacing(0.75),\r\n }),\r\n },\r\n },\r\n MuiDateRangePicker: {\r\n defaultProps: {\r\n slotProps: {\r\n fieldSeparator: {\r\n sx: { display: 'none' },\r\n },\r\n },\r\n },\r\n },\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n padding: theme.spacing(1, 1.5),\r\n [`&.${outlinedInputClasses.disabled}`]: {\r\n backgroundColor: theme.palette.action.hover,\r\n [`& .${outlinedInputClasses.notchedOutline}`]: {\r\n borderColor: theme.palette.grey[100],\r\n },\r\n },\r\n }),\r\n input: {\r\n padding: 0,\r\n },\r\n notchedOutline: {\r\n top: 0,\r\n legend: {\r\n display: 'none',\r\n },\r\n },\r\n error: ({ theme }) => ({\r\n backgroundColor: theme.palette.errorStates.hover,\r\n }),\r\n },\r\n },\r\n },\r\n})\r\n","import React from \"react\";\r\nimport SvgIcon from \"@mui/material/SvgIcon\";\r\n\r\nconst CheckboxIcon = (props) => {\r\n return (\r\n <SvgIcon width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" {...props}>\r\n <g id=\"checkbox\">\r\n <g id=\"Rectangle 87\">\r\n <rect width=\"16\" height=\"16\" rx=\"2\" fill=\"white\" />\r\n <rect\r\n x=\"0.5\"\r\n y=\"0.5\"\r\n width=\"15\"\r\n height=\"15\"\r\n rx=\"1.5\"\r\n stroke=\"#6D6979\"\r\n strokeOpacity=\"0.5\"\r\n fill=\"none\"\r\n />\r\n </g>\r\n </g>\r\n </SvgIcon>\r\n );\r\n};\r\n\r\nexport default CheckboxIcon;\r\n","import React from \"react\";\r\nimport SvgIcon from \"@mui/material/SvgIcon\";\r\n\r\nconst CheckboxCheckedIcon = (props) => {\r\n return (\r\n <SvgIcon width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" {...props}>\r\n <rect x=\"1\" y=\"1\" width=\"16\" height=\"16\" rx=\"2\" fill=\"#3F1AC4\" />\r\n <rect x=\"1\" y=\"1\" width=\"16\" height=\"16\" rx=\"2\" fill=\"white\" fillOpacity=\"0.25\" />\r\n <path\r\n d=\"M4.5 9.00037L7.68198 12.1823L14.0453 5.81836\"\r\n stroke=\"white\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </SvgIcon>\r\n );\r\n};\r\n\r\nexport default CheckboxCheckedIcon;\r\n","import { createTheme } from \"@mui/material/styles\";\r\n\r\nimport { theme as defaultTheme } from \"../../muiTheme\";\r\nimport ArrowForwardIosIcon from \"../../components/Icons/ArrowForwardIosIcon\";\r\nimport CheckboxIcon from \"../../components/Icons/Payrolls/CheckboxIcon\";\r\nimport CheckboxCheckedIcon from \"../../components/Icons/Payrolls/CheckboxCheckedIcon\";\r\n\r\nexport const theme = createTheme({\r\n ...defaultTheme,\r\n typography: {\r\n ...defaultTheme.typography,\r\n h3: {\r\n fontSize: 18,\r\n lineHeight: \"normal\",\r\n fontWeight: 500,\r\n },\r\n h6: {\r\n fontSize: 13,\r\n lineHeight: \"normal\",\r\n fontWeight: 400,\r\n },\r\n },\r\n palette: {\r\n ...defaultTheme.palette,\r\n purple: {\r\n light: \"#FAF9FF\",\r\n main: \"#320DA0\",\r\n dark: \"#30254F\",\r\n },\r\n error: {\r\n main: \"#F04438\",\r\n },\r\n yellow: {\r\n light: \"#FFE792\",\r\n main: \"#DB8C15\",\r\n },\r\n gray: {\r\n main: \"#76747C\",\r\n },\r\n },\r\n components: {\r\n ...defaultTheme.components,\r\n MuiButton: {\r\n ...defaultTheme.components.MuiButton,\r\n styleOverrides: {\r\n ...defaultTheme.components.MuiButton.styleOverrides,\r\n outlinedInfo: ({ theme }) => {\r\n return {\r\n border: \"1px solid rgba(109, 105, 121, 0.25)\",\r\n color: \"#6D6979\",\r\n backgroundColor: theme.palette.common.white,\r\n \"&:hover\": {\r\n border: \"1px solid rgba(109, 105, 121, 0.5)\",\r\n color: \"#6D6979\",\r\n backgroundColor: \"rgba(109, 105, 121, 0.05)\",\r\n },\r\n };\r\n },\r\n },\r\n },\r\n MuiAccordion: {\r\n defaultProps: {\r\n variant: \"elevation\",\r\n elevation: 0,\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n // borderBottom: `1px solid ${theme.palette.purpleLight.main}`,\r\n borderRadius: theme.spacing(0.625),\r\n // marginBottom: theme.spacing(1.875),\r\n // \"&:before\": {\r\n // display: \"none\",\r\n // },\r\n \"&.Mui-disabled\": {\r\n border: `1px solid ${theme.palette.purpleLight.main}`,\r\n },\r\n }),\r\n },\r\n },\r\n MuiAccordionSummary: {\r\n defaultProps: {\r\n expandIcon: (\r\n <ArrowForwardIosIcon\r\n sx={{\r\n fontSize: 12,\r\n color: \"purple.dark\",\r\n }}\r\n />\r\n ),\r\n },\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n backgroundColor: theme.palette.common.white,\r\n paddingLeft: theme.spacing(1),\r\n borderRadius: theme.spacing(0.625),\r\n flexDirection: \"row-reverse\",\r\n \"& .MuiAccordionSummary-expandIconWrapper\": {\r\n transform: \"rotate(90deg)\",\r\n padding: theme.spacing(1.5),\r\n },\r\n \"& .MuiAccordionSummary-expandIconWrapper.Mui-expanded\": {\r\n transform: \"rotate(270deg)\",\r\n },\r\n \"& .MuiAccordionSummary-content\": {\r\n marginLeft: theme.spacing(0),\r\n },\r\n }),\r\n content: ({ theme }) => ({\r\n color: theme.palette.purple.dark,\r\n }),\r\n },\r\n },\r\n MuiAccordionDetails: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n padding: theme.spacing(2, 2, 2, 5.5),\r\n }),\r\n },\r\n },\r\n MuiCheckbox: {\r\n defaultProps: {\r\n icon: <CheckboxIcon sx={{ fill: \"white\" }} />,\r\n checkedIcon: <CheckboxCheckedIcon sx={{ fill: \"white\" }} />,\r\n },\r\n },\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n root: ({ theme }) => ({\r\n lineHeight: \"18px\",\r\n borderColor: \"#E9E6F9\",\r\n \"& .MuiOutlinedInput-notchedOutline\": {},\r\n \"&.Mui-focused\": {\r\n \"& .MuiOutlinedInput-notchedOutline\": {\r\n borderWidth: 1,\r\n borderColor: \"#6D6979\",\r\n },\r\n },\r\n \"&:hover\": {\r\n \"& .MuiOutlinedInput-notchedOutline\": {\r\n borderColor: \"#6D6979\",\r\n },\r\n },\r\n }),\r\n input: ({ theme, ownerState }) => ({\r\n height: \"unset\",\r\n padding: theme.spacing(1.5, 1.5),\r\n ...(ownerState.size === \"large\" && {\r\n padding: theme.spacing(2, 1.5),\r\n }),\r\n }),\r\n notchedOutline: ({ theme }) => ({\r\n borderColor: \"#E9E6F9\",\r\n legend: {\r\n maxWidth: 0,\r\n },\r\n }),\r\n },\r\n },\r\n },\r\n});\r\n","import React from 'react'\r\n\r\nimport { ThemeProvider } from '@mui/material'\r\n\r\nimport { theme as defaultTheme } from '@/lib/theme'\r\nimport { theme as oldTheme } from '~/muiTheme'\r\nimport { theme as payrollsTheme } from '~/pages/payrolls/payrollsTheme'\r\n\r\nconst themeMap = {\r\n default: defaultTheme,\r\n old: oldTheme,\r\n payrolls: payrollsTheme,\r\n}\r\n\r\nexport function withTheme<P>(Component: React.ComponentType<P>, themeName: keyof typeof themeMap = 'default') {\r\n return React.forwardRef<unknown, P>(function ThemedComponent(props, ref) {\r\n return (\r\n <ThemeProvider theme={themeMap[themeName]}>\r\n <Component ref={ref} {...(props as P)} />\r\n </ThemeProvider>\r\n )\r\n })\r\n}\r\n","import { SvgIcon } from '@mui/material'\r\n\r\ntype Props = React.ComponentProps<typeof SvgIcon>\r\n\r\nexport function AlertTriangleIcon(props: Props) {\r\n return (\r\n <SvgIcon width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\r\n <path\r\n d=\"M11.9998 8.99999V13M11.9998 17H12.0098M10.6151 3.89171L2.39019 18.0983C1.93398 18.8863 1.70588 19.2803 1.73959 19.6037C1.769 19.8857 1.91677 20.142 2.14613 20.3088C2.40908 20.5 2.86435 20.5 3.77487 20.5H20.2246C21.1352 20.5 21.5904 20.5 21.8534 20.3088C22.0827 20.142 22.2305 19.8857 22.2599 19.6037C22.2936 19.2803 22.0655 18.8863 21.6093 18.0983L13.3844 3.89171C12.9299 3.10654 12.7026 2.71396 12.4061 2.58211C12.1474 2.4671 11.8521 2.4671 11.5935 2.58211C11.2969 2.71396 11.0696 3.10655 10.6151 3.89171Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </SvgIcon>\r\n )\r\n}\r\n","import { SvgIcon } from '@mui/material'\r\n\r\ntype Props = React.ComponentProps<typeof SvgIcon>\r\n\r\nexport function CheckCircleIcon(props: Props) {\r\n return (\r\n <SvgIcon width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\r\n <path\r\n d=\"M7.5 12L10.5 15L16.5 9M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </SvgIcon>\r\n )\r\n}\r\n","import { SvgIcon } from '@mui/material'\r\n\r\ntype Props = React.ComponentProps<typeof SvgIcon>\r\n\r\nexport function InfoCircleIcon(props: Props) {\r\n return (\r\n <SvgIcon width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\r\n <path\r\n d=\"M12 16V12M12 8H12.01M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </SvgIcon>\r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport type { TransitionProps } from '@mui/material/transitions'\r\n\r\nimport { Slide } from '@mui/material'\r\n\r\nexport const DialogTransition = React.forwardRef(function DialogTransition(\r\n props: TransitionProps & { children: React.ReactElement },\r\n ref: React.Ref<unknown>,\r\n) {\r\n return <Slide direction=\"up\" ref={ref} {...props} />\r\n})\r\n","import { SvgIcon } from '@mui/material'\r\n\r\ntype Props = React.ComponentProps<typeof SvgIcon>\r\n\r\nexport function XCloseIcon(props: Props) {\r\n return (\r\n <SvgIcon width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\r\n <path\r\n d=\"M18 6L6 18M6 6L18 18\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </SvgIcon>\r\n )\r\n}\r\n","import type { SnackbarKey } from 'notistack'\r\n\r\nimport { IconButton } from '@mui/material'\r\nimport { useSnackbar } from 'notistack'\r\n\r\nimport { XCloseIcon } from '@/components/ui/icons/x-close'\r\n\r\ninterface Props {\r\n snackbarId: SnackbarKey\r\n}\r\n\r\nexport function SnackbarCloseAction({ snackbarId }: Props) {\r\n const { closeSnackbar } = useSnackbar()\r\n\r\n return (\r\n <IconButton onClick={() => closeSnackbar(snackbarId)}>\r\n <XCloseIcon sx={{ color: 'common.white' }} />\r\n </IconButton>\r\n )\r\n}\r\n","import { useEffect } from 'react'\r\n\r\nimport { Avatar, Backdrop, Box, Button, CircularProgress, Dialog, ThemeProvider, Typography } from '@mui/material'\r\nimport { useSnackbar } from 'notistack'\r\n\r\nimport { AlertTriangleIcon } from '@/components/ui/icons/alert-triangle'\r\nimport { CheckCircleIcon } from '@/components/ui/icons/check-circle'\r\nimport { InfoCircleIcon } from '@/components/ui/icons/info-circle'\r\nimport { theme } from '@/lib/theme'\r\nimport { useAppState } from '@/states/app-state'\r\n\r\nimport { DialogTransition } from './dialog-transition'\r\nimport { SnackbarCloseAction } from './snackbar-close-action'\r\n\r\ninterface Props {\r\n children: React.ReactNode\r\n}\r\n\r\nexport function AppProvider({ children }: Props) {\r\n const { enqueueSnackbar } = useSnackbar()\r\n\r\n const { isLoading, messageDialogOptions, hideMessageDialog, messageToastOptions } = useAppState()\r\n\r\n useEffect(() => {\r\n if (!messageToastOptions) return\r\n\r\n enqueueSnackbar(messageToastOptions.message, {\r\n variant: messageToastOptions.variant,\r\n autoHideDuration: 4000,\r\n action: (id) => <SnackbarCloseAction snackbarId={id} />,\r\n })\r\n }, [enqueueSnackbar, messageToastOptions])\r\n\r\n const isMessageDialogOpen = !!messageDialogOptions\r\n\r\n return (\r\n <>\r\n {children}\r\n <ThemeProvider theme={theme}>\r\n <Backdrop open={isLoading} sx={{ zIndex: 2000 }}>\r\n <CircularProgress disableShrink />\r\n </Backdrop>\r\n <Dialog\r\n open={isMessageDialogOpen}\r\n keepMounted\r\n TransitionComponent={DialogTransition}\r\n onClose={() => hideMessageDialog()}\r\n sx={{\r\n '& .MuiDialog-paper': {\r\n borderWidth: '2px 0 0 0',\r\n borderTopColor: `${messageDialogOptions?.variant}.light`,\r\n },\r\n }}\r\n >\r\n {messageDialogOptions && (\r\n <Box display=\"flex\" flexDirection=\"column\" gap={2} p={2}>\r\n <Avatar sx={{ bgcolor: `${messageDialogOptions.variant}.main`, width: 44, height: 44 }}>\r\n {messageDialogOptions.variant === 'warning' && <AlertTriangleIcon sx={{ color: 'common.white' }} />}\r\n {messageDialogOptions.variant === 'success' && <CheckCircleIcon sx={{ color: 'common.white' }} />}\r\n {(messageDialogOptions.variant === 'info' || messageDialogOptions.variant === 'error') && (\r\n <InfoCircleIcon sx={{ color: 'common.white' }} />\r\n )}\r\n </Avatar>\r\n <Box display=\"flex\" flexDirection=\"column\" gap={1}>\r\n <Typography variant=\"h6\">{messageDialogOptions.title}</Typography>\r\n <Typography variant=\"subtitle2\" sx={{ whiteSpace: 'pre-line' }}>\r\n {messageDialogOptions.message}\r\n </Typography>\r\n </Box>\r\n <Box display=\"flex\" justifyContent=\"center\">\r\n <Button variant=\"outlined\" color=\"inherit\" size=\"small\" onClick={() => hideMessageDialog()}>\r\n Close\r\n </Button>\r\n </Box>\r\n </Box>\r\n )}\r\n </Dialog>\r\n </ThemeProvider>\r\n </>\r\n )\r\n}\r\n","import React, { Component } from \"react\";\r\nimport Type from \"prop-types\";\r\nimport CssBaseline from \"@mui/material/CssBaseline\";\r\nimport { ThemeProvider } from \"@mui/material/styles\";\r\nimport { AdapterDayjs } from \"@mui/x-date-pickers-pro/AdapterDayjs\";\r\nimport { LocalizationProvider } from \"@mui/x-date-pickers-pro\";\r\nimport { Provider } from \"react-redux\";\r\nimport { SnackbarProvider } from \"notistack\";\r\nimport { Router } from \"react-router-dom\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport { JL } from \"jsnlog\";\r\nimport isToday from \"dayjs/plugin/isToday\";\r\nimport quarterOfYear from \"dayjs/plugin/quarterOfYear\";\r\nimport relativeTime from \"dayjs/plugin/relativeTime\";\r\nimport dayjs from \"dayjs\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nimport WidgetZendesk from \"./containers/WidgetZendesk\";\r\nimport ErrorBoundary from \"./containers/ErrorBoundary\";\r\nimport InternalServerErrorPage from \"./components/InternalServerErrorPage\";\r\nimport SentryProvider from \"./containers/SentryProvider\";\r\n\r\nimport { theme } from \"./muiTheme\";\r\nimport { store } from \"./redux/configureStore\";\r\nimport { authService, logErrorsService, urlHelpers } from \"./core\";\r\nimport { constants } from \"./core\";\r\nimport SignalRProvider from \"./SignalRProvider\";\r\nimport { logErrorsApi } from \"./api/logErrorsApi\";\r\nimport { localStorageSyncApi } from \"./core/localStorageSyncApi\";\r\nimport { sessionStorageSyncApi } from \"./core/sessionStorageSyncApi\";\r\nimport AppUiProvider from \"./utils/AppUiProvider\";\r\nimport Routes from \"./routes/Routes\";\r\nimport { RootLayout } from \"./containers/LayoutMain/RootLayout\";\r\nimport { AppProvider } from \"@/components/ui/app-provider\";\r\n\r\nif (constants.IS_PRODUCTION) {\r\n require(\"./inspectlet\");\r\n}\r\n\r\nconst scripts = [];\r\n\r\nif (process.env.REACT_APP_CLARITY_PROJECT_ID) {\r\n scripts.push({\r\n type: \"text/javascript\",\r\n innerHTML: `(function(c,l,a,r,i,t,y){\r\nc[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};\r\nt=l.createElement(r);t.async=1;t.src=\"https://www.clarity.ms/tag/\"+i;\r\ny=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);\r\n})(window, document, \"clarity\", \"script\", \"${process.env.REACT_APP_CLARITY_PROJECT_ID}\");`,\r\n });\r\n}\r\n\r\nif (process.env.REACT_APP_USER_GUIDING_ID) {\r\n scripts.push({\r\n type: \"text/javascript\",\r\n innerHTML: `(function(g,u,i,d,e,s){g[e]=g[e]||[];var f=u.getElementsByTagName(i)[0];\r\n var k=u.createElement(i);k.async=true;k.src='https://static.userguiding.com/media/user-guiding-'+s+'-embedded.js';\r\n f.parentNode.insertBefore(k,f);if(g[d])return;var ug=g[d]={q:[]};ug.c=function(n){\r\n return function(){ug.q.push([n,arguments])};};\r\n var m=['previewGuide','finishPreview','track','identify','hideChecklist','launchChecklist'];\r\n for(var j=0;j<m.length;j+=1){ug[m[j]]=ug.c(m[j]);}})(window,document,'script','userGuiding','userGuidingLayer',\r\n '${process.env.REACT_APP_USER_GUIDING_ID}');`,\r\n });\r\n}\r\n\r\ndayjs.extend(isToday);\r\ndayjs.extend(quarterOfYear);\r\ndayjs.extend(relativeTime);\r\n\r\nconst history = createBrowserHistory();\r\n\r\nclass App extends Component {\r\n static propTypes = {\r\n classes: Type.object,\r\n };\r\n\r\n static getDerivedStateFromError(error) {\r\n return { hasError: true };\r\n }\r\n\r\n state = {\r\n hasError: false,\r\n };\r\n\r\n componentDidCatch(error, info) {\r\n const url = window.location.href;\r\n info = JSON.stringify({ info, error });\r\n logErrorsService.error(error.message, info);\r\n logErrorsApi.push(error.message, url, info);\r\n console.error(\"Chunk loading failed:\", error, info);\r\n if (error && /Loading chunk \\d+ failed/.test(error.message)) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n render() {\r\n console.log(\"REACT_APP_ENV\", process.env.REACT_APP_ENV);\r\n console.log(\"HOST_URL\", constants.HOST_URL);\r\n if (this.state.hasError) {\r\n return <InternalServerErrorPage />;\r\n }\r\n\r\n let url = urlHelpers.getAbsoluteURL(\"/jsnlog.logger\");\r\n const token = authService.getToken();\r\n var beforeSendExample = function (xhr) {\r\n const bfp = localStorageSyncApi.getOrSetBfp();\r\n const sfp = sessionStorageSyncApi.getOrSetSfp();\r\n xhr.setRequestHeader(\"jwtGuid\", authService.getJwtGuid());\r\n xhr.setRequestHeader(\"browserHref\", window.location.href);\r\n xhr.setRequestHeader(\"Authorization\", `Bearer ${token}`);\r\n xhr.setRequestHeader(\"x-react-app-version\", process.env.REACT_APP_VERSION);\r\n xhr.setRequestHeader(\"bfp\", bfp);\r\n xhr.setRequestHeader(\"sfp\", sfp);\r\n };\r\n JL.setOptions({\r\n defaultAjaxUrl: url,\r\n storeInBufferLevel: JL.getDebugLevel(),\r\n sendWithBufferLevel: 0,\r\n bufferSize: 100,\r\n defaultBeforeSend: beforeSendExample,\r\n });\r\n logErrorsService.info(\"Loading app.\");\r\n\r\n return (\r\n <ErrorBoundary>\r\n <Helmet script={scripts} />\r\n <Provider store={store}>\r\n <SentryProvider />\r\n <LocalizationProvider dateAdapter={AdapterDayjs}>\r\n <ThemeProvider theme={theme}>\r\n <CssBaseline />\r\n <SnackbarProvider\r\n maxSnack={3}\r\n hideIconVariant\r\n anchorOrigin={{ vertical: \"top\", horizontal: \"center\" }}\r\n preventDuplicate\r\n >\r\n <Router history={history}>\r\n <SignalRProvider>\r\n <AppUiProvider>\r\n <AppProvider>\r\n <RootLayout>\r\n <Routes />\r\n </RootLayout>\r\n </AppProvider>\r\n </AppUiProvider>\r\n <WidgetZendesk />\r\n </SignalRProvider>\r\n <div id=\"recaptcha\" className=\"g-recaptcha\" data-size=\"invisible\" />\r\n </Router>\r\n </SnackbarProvider>\r\n </ThemeProvider>\r\n </LocalizationProvider>\r\n </Provider>\r\n </ErrorBoundary>\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from \"react\";\r\nimport { createRoot } from \"react-dom/client\";\r\nimport { LicenseInfo } from \"@mui/x-license-pro\";\r\nimport * as Sentry from \"@sentry/react\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\n\r\nimport config from \"devextreme/core/config\";\r\nimport \"devextreme/dist/css/dx.common.css\";\r\nimport \"devextreme/dist/css/dx.material.blue.light.css\";\r\nimport \"perfect-scrollbar/css/perfect-scrollbar.css\";\r\nimport \"./custom-devextreme.css\";\r\n\r\nwindow.global ||= window;\r\n\r\nSentry.init({\r\n dsn: \"https://fa467857421d5db4a59d1aac07a03dd6@o289996.ingest.us.sentry.io/4508053398880256\",\r\n integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()],\r\n // Tracing\r\n tracesSampleRate: 1.0, // Capture 100% of the transactions\r\n // Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled\r\n // tracePropagationTargets: [\"localhost\", /^https:\\/\\/brandspaycheck\\.com/],\r\n // Session Replay\r\n replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.\r\n replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.\r\n enabled: process.env.REACT_APP_ENV === \"production\",\r\n});\r\n\r\nconst rootElement = document.getElementById(\"root\");\r\nconst root = createRoot(rootElement);\r\n\r\nLicenseInfo.setLicenseKey(\r\n \"31138f439701c5687f4c1e9366b82a1eTz04MjcwNixFPTE3Mzc1NjY0ODIwMDAsUz1wcm8sTE09c3Vic2NyaXB0aW9uLEtWPTI=\"\r\n);\r\n\r\nconfig(\r\n \"ewogICJmb3JtYXQiOiAxLAogICJjdXN0b21lcklkIjogImRhYmNhMDc2LTVmZGYtMTFlNC04MGMwLTAwMjU5MGQ5ZDVmZiIsCiAgIm1heFZlcnNpb25BbGxvd2VkIjogMjQyCn0=.b8KkLgI0uX71NJIpAFwXX9vgZEuU0Iurg48lqkv/LZKY0SWjbyJD1U/bZsFVejpkntHxXg74wDXzjtodyauJnH5QSSnjuDgr1kR3RWC4TSjF3ovaHvqdWKZVLYLnRbapZwRbCw==\"\r\n);\r\n\r\nroot.render(<App />);\r\n"],"file":"static/index-BZ4EMjQP.js"}