@motifx/core 1.0.1 → 1.2.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.min.js","sources":["../src/common/ErrorHandler.ts","../src/devtools/devbus.ts","../src/common/diagnostics.ts","../src/disposable/DisposableCore.ts","../src/disposable/DisposableStore.ts","../src/disposable/Disposable.ts","../src/store/common.ts","../src/bindings/ListBinding.ts","../src/common/NameValuePair.ts","../src/common/List.ts","../src/common/functions.ts","../src/common/LeakMonitor.ts","../src/common/LinkedList.ts","../src/common/Query.ts","../src/common/compilerContract.ts","../src/common/index.ts","../src/store/reactivity-core.ts","../src/bindings/Binding.ts","../src/bindings/BindingCollection.ts","../src/delegate/Emitter.ts","../src/component/ComponentEmiter.ts","../src/component/controlAttribute.ts","../src/component/controlClass.ts","../src/component/types.ts","../src/common/transition.ts","../src/component/ComponentMotif.ts","../src/store/Signal.ts","../src/dependencyInjection/ServiceProvider.ts","../src/component/componentBase.ts","../src/component/resolveComponent.ts","../src/component/Component.ts","../src/core/dom.ts","../src/core/ControlCollection.ts","../src/component/Lazy.ts","../src/component/navigation.ts","../src/component/Frame.ts","../src/component/PreProcessing.ts","../src/component/ContentBody.ts","../src/component/TransportRegistry.ts","../src/component/Transporter.ts","../src/store/handlers/getter.ts","../src/store/handlers/setter.ts","../src/store/handlers/orhers.ts","../src/store/handlers/ArrayMethods.ts","../src/store/ReactiveEngine.ts","../src/store/index.ts","../src/dependencyInjection/autoRegistry.ts","../src/dependencyInjection/ServiceCollection.ts","../src/devtools/routeLinter.ts","../src/devtools/overlay.ts","../src/routing/RouterViewRegistry.ts","../src/routing/RouterView.ts","../src/routing/scrollMemory.ts","../src/routing/NavigationStack.ts","../src/routing/scanner.ts","../src/routing/RouteCollection.ts","../src/routing/RoutingEngine.ts","../src/routing/UrlRoutingModule.ts","../src/routing/routerState.ts","../src/application.ts","../src/dependencyInjection/decorators.ts","../src/common/Resilience.ts","../src/common/Dictionary.ts","../src/routing/RouterLink.ts","../src/component/Transport.tsx","../src/component/TransportTo.tsx","../src/core/Virtualization.ts","../src/common/bind.ts"],"sourcesContent":null,"names":["rethrowLater","error","setTimeout","ErrorHandler","unexpectedErrorHandler","listeners","_isDevelopment","_enableConsoleLogging","setDevelopmentMode","isDev","this","setConsoleLogging","enabled","isDevelopment","globalThis","__MOTIF_DEV__","reportSuppressed","context","logIfDev","report","undefined","cause","console","message","bus","__MOTIF_DEVTOOLS_BUS__","publish","code","name","serializeError","emit","Error","stack","JSON","parse","stringify","String","addListener","listener","push","index","indexOf","splice","slice","setUnexpectedErrorHandler","handler","getUnexpectedErrorHandler","onUnexpectedError","safeCall","fn","fallback","safeCallAsync","safeCallSilent","safeCallSilentAsync","wrapSafe","args","wrapSafeAsync","async","errorHandler","state","Set","warnings","routes","isDevLike","ensureDevtoolsFlagInitialized","window","w","__motif_DEVTOOLS","__MOTIF_DEVTOOLS__","__MOTIF_DEVTOOLS_FLAG","qs","location","search","test","detectEnabled","__motifDevBus","on","warn","getWarnings","isEnabled","setRoutes","getRoutes","add","delete","type","payload","ev","l","details","motifMessages","MJX101","tag","MJX102","description","MJX103","MJX104","MJX105","MJX106","MJX107","MJX108","MJX109","MJX110","ms","MJX111","MJX112","depth","MJX113","MJX114","MJX115","MJX116","MJX117","MJX118","MJX119","MJX120","MJX121","compiled","runtime","MJX122","hook","MJX123","event","MJX201","MJX202","key","MJX203","max","MJX204","MJX205","MJX206","MJX207","MJX208","MJX301","outlet","MJX302","MJX303","chain","MJX304","MJX305","MJX306","MJX307","MJX308","MJX309","MJX310","parentPath","MJX311","path","MJX312","full","MJX313","MJX314","alias","MJX315","MJX316","MJX401","token","MJX402","MJX403","MJX404","MJX405","MJX406","selector","MJX407","MJX408","reason","MJX409","MJX410","sources","MJX411","MJX413","MJX414","MJX501","MJX502","MJX503","MJX504","MJX505","MJX507","limit","count","MJX601","MJX602","MJX603","MJX604","MJX605","MJX607","MJX608","MJX609","MJX610","MJX611","MotifError","constructor","options","super","formatMotifMessage","motifError","reportError","callReported","result","then","reportWarning","devWarn","disposableCore","disposableTracker","notifyCreated","target","trackDisposable","notifyDisposed","markAsDisposed","notifyOwner","owner","setParent","toDisposable","pending","handle","dispose","DisposableStore","_items","_closed","isDisposed","item","detach","clear","size","failures","length","AggregateError","Disposable","_disposables","owned","disposable","_register","ITERATE_KEY","Symbol","followTracking","arrayScope","getRaw","value","current","hasOwn","Object","prototype","hasOwnProperty","call","isObject","intrinsicSymbols","values","getOwnPropertyDescriptors","map","descriptor","filter","isIntrinsicSymbol","has","proxyableTags","Map","canonicalIndex","savedTracking","trackingDepth","enterTracking","pauseTracking","resetTracking","arrayStack","ListBinding","component","itemsFn","renderFn","propertyName","dataSource","dataMember","formatString","converter","converterBack","updateMode","_isActive","_effectCleanup","_rendered","_identityMap","WeakMap","container","motifFragment","controls","activate","_setupBinding","deactivate","_disposeAll","reActivate","forEach","c","_toArray","src","Array","isArray","iterator","from","_getComponentKey","comp","p","props","indexkey","k","motif","__key","isPreCreated","element","parent","_render","idx","untracked","rendered","processRendered","resolveComponent","ComponentBase","_base","itemRef","__fromList","__listAdopted","olditems","_indexSensitive","_isPrimitive","v","update","items","prevItems","prevComponents","currentRaws","it","old","raw","list","get","newComponents","usedComponents","seenKeys","claimed","positionalReuse","isReusable","shared","Math","min","i","is","set","valuePool","prev","queue","occurrences","occurrence","existing","reused","shift","userKey","_syncContainer","effect","oldIndex","oi","stable","predecessors","fill","tails","lo","hi","mid","u","reverse","longestIncreasingIndices","anchor","at","move","NameValuePair","Key","List","ItemAdded","ItemAddedBefore","ItemSplice","__list","_map","Dispose","Add","AddBefore","unshift","Insert","start","remove","FindFromKey","removeIndex","deleted","t","callbackfn","ReverseClone","normalizePath","replace","findAppendableComponent","nodeType","Node","COMMENT_NODE","DOCUMENT_FRAGMENT_NODE","TEXT_NODE","LeakMonitor","threshold","_origins","_quietChecks","check","origin","_busiestOrigin","busiest","entry","createRing","ring","linked","before","after","LinkedList","_ring","_count","isEmpty","_link","pop","_take","link","previous","_unlink","compareKeys","a","b","Query","source","where","predicate","select","orderBy","keySelector","sort","orderByDescending","distinctBy","seen","groupBy","group","first","firstOrDefault","any","some","all","every","aggregate","seed","func","reduce","toArray","reported","motifCompiled","contract","NodeTypes","Effect","callback","deps","active","running","scheduler","run","cleanup","effectStack","stop","depMap","effectQueue","leakMonitor","isFlushing","leakEnabled","leakThreshold","leakCleanups","configureReactivityLeakMonitor","opts","track","rawTarget","dep","m","trigger","effects","queued","runReported","Promise","resolve","runCounts","batch","e","runs","MAX_EFFECT_RUNS_PER_FLUSH","flushEffects","keyMap","depSet","onValueChanged","popAsyncTracking","pushed","lastIndexOf","asyncTracking","capture","suspend","resume","end","UNTRACKED_SENTINEL","isCheckedInput","el","tagName","toLowerCase","readModelValue","checked","isNumericInput","n","valueAsNumber","Number","isFinite","Binding","setter","formatInfo","_component","_memberPath","_memberPathSource","split","functional","getValue","prop","_applyFormat","updateTarget","_updateComponentProperty","isWaiting","isBuilt","isWait","setText","innerHTML","show","hide","style","format","locale","currency","includes","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","decimals","parseInt","match","Date","toLocaleDateString","toLocaleTimeString","toString","BindingCollection","_branchScope","bind","activateAll","deactivateAll","reActivateAll","when","text","loop","method","watch","display","wait","_own","register","computeFn","frame","Frame","last","shown","navigate","cb","binding","html","host","place","next","insert","Component","dom","createTextNode","ternary","conditionFn","trueFn","falseFn","_ternaryCallTop","_ternarySchedule","condFn","onTrue","onFalse","defer","stopped","inner","stopInner","stopEffect","condition","outer","ternaryCall","queueMicrotask","ef","model","tn","lowerTag","writeBack","member","switchCase","discriminatorFn","cases","defaultFn","currentValue","defaultRunned","caseKey","Emitter","_subscriptions","_delivery","_subscribe","_disposed","thisArgs","disposables","subscription","_writable","_unsubscribe","fire","_resume","targets","delivery","ComponentEmiter","_emitters","_sourceDisposables","_listenerDisposables","off","createEvent","getOrCreateEmitter","addSource","eventName","lower","d","lowerFull","startsWith","invoke","res","disp","forward","srcs","agg","keys","METHOD_ATTRS","OPEN_METHODS","showModal","showPopover","WHEN_TRUTHY_METHODS","ARGUMENT_METHODS","PROPERTY_FIRST","controlAttribute","_parent","_attrMap","_watchers","attributes","entries","attribute","bag","Reflect","ownKeys","stopper","bindings","_getElement","removeAttribute","HTMLElement","Element","hasAttribute","getAttribute","val","_applyValue","arg","apply","schedule","cacheValue","blur","inp","setSelectionRange","document","fullscreenElement","exitFullscreen","exitPointerLock","catch","pause","exitPictureInPicture","other","srcObject","setAttribute","isBool","input","isComponentLike","hasMethodState","getMethodState","activeElement","selectionStart","selectionEnd","controlClass","_counts","_staticSet","_watcherSeq","_addReactive","_addStaticFromArray","_addStaticFromObject","valueStr","trim","_addStaticFromString","classNames","cn","cls","_splitClasses","_applySourceDiff","id","className","classList","contains","s","_normalizeToSet","obj","sourceId","now","prevCount","arr","rec","el2","shimAnimation","cancel","addEventListener","removeEventListener","oncancel","playState","cssTimeToMs","amount","substring","sampleTiming","styles","kind","listOf","aspect","delays","durations","longest","Infinity","total","tracks","transformTrack","computeTransitionInfo","Type","timeout","propCount","hasTransform","samples","transition","animation","winner","forced","transitionProperty","getTransitionInfo","isConnected","getComputedStyle","fxElement","createElement","body","appendChild","runCssTransition","phase","done","appear","css","classes","enter","enterFromClass","enterActiveClass","to","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","resolveTransitionClasses","addC","x","removeC","guardTimer","finished","endEvent","endHandler","finish","clearTimeout","offsetHeight","raf","requestAnimationFrame","nextFrame","expectedEnds","dur","duration","leave","info","getTransitionInfoFromElement","ended","ComponentMotif","toggle","domEvent","addHandler","setDisposable","stopAnimations","SIGNAL_TARGET","SIGNAL_KEY","Signal","_value","_target","_key","_equals","create","initialValue","equals","newValue","peek","updater","mutate","mutator","notify","asReadonly","self","valueOf","Computed","_dirty","_computing","_getter","_cleanup","getter","newVal","changed","LazyComputed","_runner","createScheduledEffect","_refresh","isDirty","activeResolver","activeSlot","rawScopedIn","constructionScope","navigatingRoot","slotsByOwner","handlesBySlot","pins","builtIn","boundMethods","runWithResolver","resolver","runWith","slot","previousSlot","previousRaw","pinnedScopeOf","pin","scope","built","_pending","recordServiceOwner","pinServiceOwner","root","live","_currentScope","_livePins","retireServiceOwner","_releaseLivePin","ServiceProvider","services","scopeName","singletonCache","scopedCache","transientSet","_autoDisposeTransients","pendingSingleton","pendingScoped","_navigation","_ownerlessSlot","ownerless","_navigationDisposed","createScope","scoped","enableAutoDisposeTransients","enable","desc","getDescriptor","describeToken","resolveDescriptorSync","getAsync","resolveDescriptorAsync","_getFor","getAllServices","_beginNavigation","navigation","version","scopes","_commitNavigation","_touch","_releaseIfUnused","_abandonNavigation","_scopeFor","pinned","_handle","handles","_createHandle","_scopedInstanceSync","_handleAsync","_scopedInstanceAsync","Proxy","_","instance","cache","hit","bound","bindTo","getPrototypeOf","_isSystemScope","inst","instantiateSync","promise","instantiateAsyncIn","checkCycle","lifetime","instantiateAsync","construct","useValue","useFactory","resolveDepsSync","injectionResolver","describeTokenWithSource","useClass","resolveDepsAsyncIn","callDispose","close","ad","asyncDispose","getDeps","resolveTokenSync","results","resolveTokenAsync","inject","dependencies","nextPath","concat","firstIndex","join","describeServiceToken","clearNavDirection","_markedDirection","wantsEnterTransition","transitionIn","ComponentHelper","callInitializeComponent","sender","initializeComponent","_initializeComponentHandlers","oninitializeComponent","_onInitializeComponentHandlers","callDisposing","backgroundCallback","onDisposing","_onDisposingHandlers","ondisposing","emiters","callActivated","onActivated","_onActivatedHandlers","callDeactivated","onDeactivated","_onDeactivatedHandlers","deactivateTree","deep","_inactive","isVisible","activateTree","callDisposed","_disposedFired","onDisposed","_onDisposedHandlers","ondisposed","callBuilt","onBuilt","_onBuiltHandlers","onbuilt","scheduleMounted","_mountedScheduled","onMounted","_onMountedHandlers","onmounted","onElementAttached","callMounted","_mountedFired","callBuilding","onBuilding","_onBuildingHandlers","callConfig","isConfigured","_preconfig","onConfig","_onConfigHandlers","callConfigured","_postconfigdone","_configDeferred","onConfigured","_onConfiguredHandlers","callOnInitialized","isInitialized","onInitialized","_onInitializedHandlers","callOnInitializing","onInitializing","_onInitializingHandlers","callVisibilityChanged","onVisibilityChanged","_onVisibilityChangedHandlers","findFragmentContent","controlElement","childNodes","child","closeFragment","internalBuild","_activatePreBindings","cisBuilt","enterSeq","_enterSeq","pendingLeave","__pendingLeave","build","currentIndex","appendableElement","getContent","referenceNode","insertHost","domReferenceOf","candidate","placeholder","parentNode","siblings","cfg","hideStrategy","isFromListOrKeyed","createComment","insertBefore","enterTransition","routerClassing","router","requestPath","uri","targetPath","exact","strip","isExactMatch","prefix","rp","pp","startsWithPath","activeClass","offActive","onActive","exactClass","offExact","onExact","fragmentCloseMarkers","LIFECYCLE_X_EVENTS","RAW_APPLICATION","SCOPED_SUBSCRIBERS","transitionInfo","in","out","activeCssCancel","activeCssPhase","cssProps","skipNextLeave","_suppressEnter","op","transitionOut","_enterPlayed","attempt","_enterRun","keyframes","_runCss","leaveTransition","activeAnimations","animate","cleanedUp","safeCleanup","g","Animation","enableRouterClassing","ins","getInstance","onRouterChanged","hasEvent","_eventHandlers","isPainting","isPainted","ControlCollection","_isWait","class","attr","_styleFx","useModel","modelCtor","reactive","_computeHideStrategy","_isInDom","node","onElementCreating","takePendingRefs","extractRefs","ParseProps","applyComponentOptions","ctor0","applyPlainElementProps","applyFallthroughProps","onAdd","control","onAddBeforeBuild","onRemove","ctor","childs","prebinding_Activated","_offAll","evt","wrapped","cap","_deactivateBindings","_activateBindings","_reactivateBindings","_detachDomWithAnimation","_forceInstantDetach","open","nextSibling","removeChild","immediate","removeNow","_detachDomWithAnimationAsync","immediateRemove","_disposeShallow","_deepCleanup","_scopedContext","parentCtx","app","Application","main","_trackContextSubscription","createScopedContext","building","ph","createDocumentFragment","isFragment","textContent","view","templ","deferredSelectValue","nodeName","seq","appendData","append","setState","reState","_textBindingWarned","warnComponentInTextBinding","content","styleObj","_stopStyleEffect","prevKeys","prevWasString","so","cssText","assign","fx","_addHandler","_show","needAttach","placeholderParent","parentElement","expectedParent","replaceChild","_hide","skip","_toggle","_on","xName","sub","_mountedSubs","subs","mods","once","passive","isTrusted","prevent","preventDefault","stopPropagation","original","_trigger","eh","_off","_disposing","_disposeCore","skipLeaveTransition","silentDetach","contentBlocks","findContentBlocks","block","disposeContentBlocks","ctrls","disposeAsync","_disposeAsyncCore","_clear","disableDisposal","clearAsync","using","waitable","onfulfilled","onrejected","doWork","nextAll","prevAll","serviceProvider","provider","getService","sp","err","$","fromDom","fromComponent","findingTarget","findContainer","querySelectorAll","findingComponent","found","walk","cmp","ELEMENT_NODE","matches","msMatchesSelector","webkitMatchesSelector","_stopAnimations","_appliedRefs","ref","fns","applied","isCallableRef","refs","runover","rest","LIFECYCLE_HANDLER_LISTS","initializecomponent","oninitializecomponent","onbuilding","oninitializing","oninitialized","onconfig","onconfigured","onvisibilitychanged","onactivated","ondeactivated","collectLifecycleHandlers","lowerKey","listName","flat","applyTransitionProp","componentMethods","eventKey","nkey","_transitionSources","setTransition","WeakSet","COMPONENT_OPTION_KEYS","PLAIN_ELEMENT_SKIP","attrs","appliedDomProps","_appliedDomProps","FALLTHROUGH_KEYS","isFallthroughKey","subset","observer","MutationObserver","disconnect","observe","documentElement","childList","subtree","notifyActivated","unpinServiceOwner","notifyDeactivated","MAX_FACTORY_DEPTH","SVG_NAMESPACE","static","derivedCtor","elementOrParams","arguments","Function","CreateFragment","ops","isSvg","__isSvgElement","createElementNS","fragmentProps","declaredTag","elementTag","trimmed","readElementTag","declaredNs","elementNamespace","createDeclaredElement","kids","kid","applyRefs","handlerCount","callAddedHandlers","motifComponent","__childExpr","resolved","probe","resolveChildExpression","materializeOptionsObject","handlers","configuredBefore","initializingBefore","initializedBefore","pre","applyJsxFrameworkProps","spec","getOwnPropertyNames","FragmentNode","arg1","arg2","nodes","glblths","getCurrentDom","motifDom","_created","doc","cloneNode","cd","selectors","namepsaceUri","convertToSvgElement","newSvgElement","firstChild","SELECTOR_REGEX","Namespace","children","namespace","exec","HTML","_$","resolveDone","detachComponentDom","arrive","visit","arrived","runLeaveThenDetach","unlinkOnly","silentUnlink","beforeIndex","newBeforeIndex","insertAt","findAppendableElement","maxIterations","isNodeInRange","frag","ownerDocument","moveComponentDomRange","computeAppendReference","moveToIndex","defaultMapper","default","Lazy","timers","trackTimer","clearAllTimers","initial","Placeholderview","Loaderview","attemptLoad","timeoutMs","signal","caller","parts","reject","finally","onAbortClear","aborted","onAbort","race","retry","floor","delayMs","whenOnline","normalizeRetry","cleanups","waitBeforeRetry","settled","go","onlineHandler","navigator","onLine","loadPromise","onRetry","loadWithRetry","startTs","mapResult","elapsed","minDelay","minDelayMs","remaining","onAbortClearDelay","onError","Fallbackview","cancelAnimationsDeep","anims","anim","disposeNavigationTarget","xr","navigateHost","page","keepOldControl","navigateId","_latestNavigateId","isBusy","complete","xP","previouspage","_navPending","prevLock","_navLock","_navAbort","abort","AbortController","oldPage","lazyFrame","flush","navigateLazy","preprocessitem","ContentBodyCollectionHandable","changeBodyCollectionHandler","SLOT_REGISTERED_EVENT","SLOT_UNREGISTERED_EVENT","TransportRegistry","registerSlot","slots","unregisterSlot","getSlot","Transporter","transport","newParent","ownerTransporter","keepState","transportMany","createSlot","mount","unmount","detachAll","ARRAY_MUTATORS","NOT_META","metaReaders","engine","isReadonly","superficial","_engine","receiver","ReactiveMap","createGetter","meta","charCodeAt","reader","readMeta","patched","arrayMethods","createSetter","Boolean","oldValue","oldLength","numeric","hadKey","proxy","removeArrayStack","createOwn","createHas","createDelete","isOwned","deleteProperty","PATCHED_ARRAY_METHODS","ArrayMethods","createArrayMethods","table","patch","needles","direct","outcome","needle","sorted","ReactiveEngineMapper","AllreactiveMap","_gci","startGc","_intervalMs","stopGc","clearInterval","DisposeMapper","arrayTriggerCache","activeCallback","arrayHandler","deepHandler","targetType","proto","cname","isExtensible","existingProxy","clearModel","ArrayTrigger","toRaw","deepClone","array","enableTracking","cnt","reactiveRegistry","isDevRegistryEnabled","__MOTIF_STORE_REGISTRY__","autoRegistry","ServiceCollection","descriptors","reset","addTransient","impl","_add","addSingleton","addScoped","_tokenName","isConstructor","canAutoRegister","buildServiceProvider","lt","tryAddTransient","tryAddSingleton","tryAddScoped","autoRegisterInjectables","joinPaths","base","endsWith","seg","overlayHost","visible","force","RouterViewRegistry","scopeId","outlets","unregister","find","findAll","RouterViewBuilt","for","RouterView","__isRouterView","ids","disposingChilds","disposeTarget","STORAGE_KEY","USER_INPUT","ScrollMemory","viewport","positions","currentKey","visited","restoring","cancelFrame","disarmAbort","offs","locationAnchor","windowViewport","querySelector","scrollTop","scrollTo","top","scrollToAnchor","containerViewport","load","history","scrollRestoration","listen","persistNow","visibilityState","leaving","cancelRestore","remember","persist","hash","splitUri","keyOf","restore","decodeHash","locationHash","saved","round","oldest","settleMs","startedAt","reached","armAbort","cancelAnimationFrame","removers","storage","sessionStorage","setItem","getItem","parsed","pair","scrollY","getElementById","scrollIntoView","decodeURIComponent","SLIDE_OFFSET","isElement","hasOwnTransition","markDirection","direction","unmarkDirection","saveStyle","restoreStyle","saveScroll","left","scrollLeft","restoreScroll","prefersReducedMotion","matchMedia","play","easing","overlay","floating","above","position","margin","boxSizing","getBoundingClientRect","f","width","height","pointerEvents","zIndex","NavigationStack","retainAttached","swipe","session","uris","loaded","currentTop","gesture","gestureCommitted","awaitingGestureResult","disposed","o","retain","sb","swipeBack","edge","installSwipe","retainedCount","isRetaining","nav","begin","point","disposeAllEntries","truncate","stale","disposeEntry","take","pendingDetach","instances","topIndex","deferHide","attached","hidden","scroll","evict","settle","inert","ariaHidden","setProperty","reveal","record","save","describe","retained","gestureCommitPending","consumeGestureCommit","committed","traversalSettled","cancelled","settleGesture","entering","enteringEl","leavingEl","backwards","enteringStyle","leavingStyle","transform","endGestureListeners","fromIndex","onStart","onTouchStart","touches","clientX","topEl","startX","startY","clientY","lastX","dragging","topSaved","under","underSaved","onMove","onTouchMove","onEnd","onTouchEnd","beginDrag","innerWidth","willChange","applyDrag","dx","progress","dy","abs","cancelable","span","idle","velocity","commit","underEl","currentUnder","back","Scanner","tokens","currentColumn","addToken","currentType","parentTokenIndex","parameterIndex","sectionIndex","cpa","codePointAt","currentToken","isOptinal","regexs","parameterName","leadingSlashTokenIndex","leadingStaticTokenIndex","hasLeadingSlash","hasLeadingStatic","consumed","ch","escapeRegex","getNextDelimChar","j","nx","buildCapture","isOptional","delim","pattern","tok","segStart","segEnd","firstIdx","hasDependent","jj","sj","pj","groupInner","prm","RegExp","parameters","exist","pageSearch","hashIdx","withoutHash","query","qIdx","rx","indx","urlSearchParams","URLSearchParams","queryMap","str","second","routeSpecificity","fullPath","statics","params","compareRouteRecords","sa","RouteCollection","records","routesMap","r","viaAlias","nextChain","variants","isAlias","variant","leaf","scanner","aliasOf","RoutingEngine","_revealed","application","routingModule","_previousPath","_previousInstances","mainApp","controlCache","route","_navVersion","generatePathString","routeDefinition","part","paramDefinition","paramName","defaultValue","_pendingActivate","execute","_rootProvider","suppressed","_execute","_routerState","navVersion","restored","controlList","isSameRoute","enableEnter","paramsChanged","prevParams","newParams","allKeys","leafRoute","keepAlive","oldInstance","globalHooks","getHooks","updateHook","onUpdate","updateContext","extend","metaInfo","enterContext","enterHook","onEntering","prepTasks","kept","task","createInstance","motion","previousInstances","pages","_stackLeave","disposeFromDivergencePoint","mountChain","enteringTop","onEnter","disposeAfter","newChain","newInstances","prevChain","prevInstances","outletFor","outletName","targetOutlet","findRouterView","topItem","deferTop","divergeIndex","minLength","containerIndex","_construct","runInConstructionScope","constructWith","parseControl","_resolveFrom","_instanceCreator","activator","pendingMount","pendingListeners","_waitForOutlet","revealed","alreadyShown","showHook","onShow","oldCleanup","warnTimer","_s","_e","OUTLET_WARN_MS","rv","q","pathOf","newHistorySession","random","UrlRoutingModule","_routerOptions","routingEngine","routeCollection","_suppressBeforeEachOnce","_suppressMiddlewaresOnce","_scroll","RouteItems","_installLinkInterceptor","scrollMemory","_addressMode","mode","_stack","hooks","_windowNavListener","shellUri","_getCurrentUri","_seedHistoryIndex","_onHistoryTraversal","shownUri","_previousRoute","_currentUri","protocol","h","pathname","_historyStamp","_readHistoryStamp","stamp","HISTORY_STAMP_KEY","_isPlainObject","_withHistoryStamp","userState","hasState","_userStateOf","historyState","_omit","_currentHistoryUserState","_nextHistoryStamp","_stampCurrentEntry","replaceState","_pendingTraversal","delta","currentUri","traversal","suppressBeforeEachThisCall","suppressMiddlewaresThisCall","navOptions","ok","skipped","gate","proceed","_runMiddlewares","redirectedFrom","redirectError","redirectChain","redirect","requested","_resolveRedirect","MAX_REDIRECTS","_buildFallbackResult","wasInitialNavigation","entryState","toRoute","fromRoute","routeItem","leaveHook","onLeave","leaveContext","leaveResult","guardResult","_runBeforeEachGuards","addressShowsBlocked","_addressShows","snapshotOf","appliedPath","leavingStamp","replaceSource","_applyUrl","stackNav","e2","touch","_handleScrollBehavior","_uriWithHash","describeStack","routeInfos","href","_fallbackRoutes","_getFallbackRoute","custom","fallbacks","_builtinNotFound","_builtinError","validate","_findLayoutPrefix","mergedExtend","mergedMeta","segs","best","matched","_pageSearch","validateChain","padding","fontFamily","navigateByName","initialUri","urix","ctx","rewritePath","middlewareCollections","dispatch","candidates","catchAll","groups","pickedFromDuplicate","_navHandler","HTMLAnchorElement","rel","metaKey","ctrlKey","shiftKey","altKey","URL","pushState","hashIndex","beforeHash","queryIndex","ownHashIndex","ownHash","requestedUri","scrollOption","behavior","RouterState","_current","_constructing","read","snapshot","_globalApplication","startedApplicationBuilder","ApplicationBuilder","rebuild","_middlewares","_beforeEachGuards","module","required","createRouter","urlRoutingModule","events","CreateBuilder","appShell","getAppShell","appRoot","rootInstance","AppShell","_routerRoot","_startedRouter","attach","appendToMainHost","_removeLifecycleListeners","use","useGuard","guard","redirectPath","guardResolved","_routerConfig","useRouter","isDevelopmentModeEnabled","initOverlayIfEnabled","isDevtoolsEnabled","seenFull","seenAlias","rawPath","isDefaultSlash","isEmptyPath","childPath","aliases","rawAlias","aliasFull","aliasCount","lintRoutes","restartRouter","fresh","isOnline","_lifecycleOff","onLifecycle","_installLifecycleListeners","_emitLifecycle","online","win","persisted","_enableErrorLogging","useReactiveMonitor","useDevelopment","flushCompilerContractWarnings","useLogging","setErrorConsoleLogging","isTimeoutError","TimeoutError","delay","addJitter","jitterFactor","jitter","Policy","RetryPolicy","retries","backoff","shouldHandle","calcDelay","pow","action","lastErr","TimeoutPolicy","timer","rej","CircuitBreakerPolicy","failureThreshold","successThreshold","durationOfBreakMs","onStateChange","failureCount","successCount","nextAttemptTime","changeState","newState","getState","BulkheadPolicy","maxConcurrent","maxQueue","dequeue","RateLimiterPolicy","tokensPerInterval","intervalMs","capacity","lastRefill","refill","tokensToAdd","FallbackPolicy","PolicyWrap","policies","reduceRight","resilience","Resilience","resiliences","circuitBreaker","bulkhead","rateLimiter","__values","Value","OnItemAdded","thisArg","showHref","bypass","clearSlot","_onAddRef","_onRemoveRef","_slotRegisteredListener","_slotUnregisteredListener","_transported","_handleSlotChange","eventArgs","_clearChildrenFromSlot","currentSlot","_state","_virtualContent","_topSpacer","_bottomSpacer","_cache","_view","_occurrence","_occurrenceKeys","_isLoadingMore","_emptyRendered","_renderPending","isLoading","currentPage","totalCount","hasMore","data","_loadMore","_renderLoadingState","_renderErrorState","_renderEmptyState","_loadInitial","renderViewport","_makeView","contentWrapper","wrapper","mainTemplate","overflowY","_handleScroll","_initialLoadStarted","_observeResize","_stopResizeObserver","_stopDataWatch","_clearContent","_offsets","_resizeObserver","_observed","_observedHeight","_fixedHeight","itemHeight","_computeOffsets","offsets","_layoutOffsets","_offsetOf","_indexAt","y","RO","ResizeObserver","clientHeight","_loadSeq","_dataWatchStop","_reloadScheduled","_reloadTimes","_request","request","dataRequest","autoRefresh","_scheduleReload","_reloadLoaded","pageSize","response","_rebuildView","_sender","_event","autoLoad","fixed","autoLoadThreshold","nextPage","overscan","topPx","bottomPx","bottom","rows","keep","_rowFor","inDom","_detachRow","pos","_evictCache","_occurrenceKey","itemTemplate","__listItemRef","cur","cacheSize","loadingTemplate","loadingElement","emptyTemplate","emptyElement","errorTemplate","errorElement","refresh","setData","scrollToIndex","sig","policy","describeInjectToken","components"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.min.js","sources":["../src/common/ErrorHandler.ts","../src/devtools/devbus.ts","../src/common/diagnostics.ts","../src/disposable/DisposableCore.ts","../src/disposable/DisposableStore.ts","../src/disposable/Disposable.ts","../src/store/common.ts","../src/bindings/ListBinding.ts","../src/common/NameValuePair.ts","../src/common/List.ts","../src/common/functions.ts","../src/common/LeakMonitor.ts","../src/common/LinkedList.ts","../src/common/Query.ts","../src/common/compilerContract.ts","../src/common/index.ts","../src/store/reactivity-core.ts","../src/bindings/Binding.ts","../src/common/lazyBind.ts","../src/bindings/BindingCollection.ts","../src/delegate/Emitter.ts","../src/component/ComponentEmiter.ts","../src/component/controlAttribute.ts","../src/component/controlClass.ts","../src/component/types.ts","../src/common/transition.ts","../src/component/ComponentMotif.ts","../src/store/Signal.ts","../src/dependencyInjection/ServiceProvider.ts","../src/component/contentBlockRegistry.ts","../src/component/optionsSlots.ts","../src/common/transitionRegistry.ts","../src/component/componentBase.ts","../src/component/resolveComponent.ts","../src/component/Component.ts","../src/core/dom.ts","../src/core/ControlCollection.ts","../src/component/Lazy.ts","../src/component/navigation.ts","../src/component/Frame.ts","../src/component/PreProcessing.ts","../src/component/ContentBody.ts","../src/component/TransportRegistry.ts","../src/component/Transporter.ts","../src/store/handlers/getter.ts","../src/store/handlers/setter.ts","../src/store/handlers/orhers.ts","../src/store/handlers/ArrayMethods.ts","../src/store/handlers/collections.ts","../src/store/ReactiveEngine.ts","../src/store/index.ts","../src/dependencyInjection/autoRegistry.ts","../src/dependencyInjection/ServiceCollection.ts","../src/devtools/routeLinter.ts","../src/devtools/overlay.ts","../src/routing/RouterViewRegistry.ts","../src/routing/RouterView.ts","../src/routing/scrollMemory.ts","../src/routing/NavigationStack.ts","../src/routing/scanner.ts","../src/routing/RouteCollection.ts","../src/routing/RoutingEngine.ts","../src/routing/UrlRoutingModule.ts","../src/routing/routerState.ts","../src/application.ts","../src/dependencyInjection/decorators.ts","../src/common/Resilience.ts","../src/common/Dictionary.ts","../src/routing/RouterLink.ts","../src/component/Transport.tsx","../src/component/TransportTo.tsx","../src/core/Virtualization.ts","../src/common/bind.ts"],"sourcesContent":["function rethrowLater(error: any): void {\r\n\tsetTimeout(() => { throw error; }, 0);\r\n}\r\n\r\nexport class ErrorHandler {\r\n\tprivate unexpectedErrorHandler: (e: any) => void = rethrowLater;\r\n\tprivate listeners: Array<(error: any) => void> = [];\r\n\tprivate _isDevelopment: boolean = false;\r\n\tprivate _enableConsoleLogging: boolean = true;\r\n\r\n\tpublic setDevelopmentMode(isDev: boolean): void {\r\n\t\tthis._isDevelopment = isDev;\r\n\t}\r\n\r\n\tpublic setConsoleLogging(enabled: boolean): void {\r\n\t\tthis._enableConsoleLogging = enabled;\r\n\t}\r\n\r\n\tpublic isDevelopment(): boolean {\r\n\t\treturn this._isDevelopment || (globalThis as any).__MOTIF_DEV__ === true;\r\n\t}\r\n\r\n\tpublic reportSuppressed(context: string, error: any): void {\r\n\t\tthis.logIfDev(context, error);\r\n\t}\r\n\r\n\tpublic report(error: Error): void {\r\n\t\tif (this._enableConsoleLogging) {\r\n\t\t\tif (error.cause !== undefined) console.error(error.message, error.cause);\r\n\t\t\telse console.error(error.message);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n\t\t\tif (bus && typeof bus.publish === 'function') {\r\n\t\t\t\tbus.publish('error:caught', { context: (error as any).code ?? error.name, error: this.serializeError(error) });\r\n\t\t\t}\r\n\t\t} catch { /* ignore */ }\r\n\r\n\t\tthis.emit(error);\r\n\t}\r\n\r\n\tprivate logIfDev(context: string, error: any): void {\r\n\t\tif (this.isDevelopment() && this._enableConsoleLogging) {\r\n\t\t\tconsole.error(`[motifjs Error - ${context}]`, error);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n\t\t\tif (bus && typeof bus.publish === 'function') {\r\n\t\t\t\tbus.publish('error:caught', { context, error: this.serializeError(error) });\r\n\t\t\t}\r\n\t\t} catch { /* ignore */ }\r\n\t}\r\n\r\n\r\n\tprivate serializeError(error: any): any {\r\n\t\tif (!error) return { message: 'Unknown error' };\r\n\t\tif (error instanceof Error) {\r\n\t\t\treturn {\r\n\t\t\t\tname: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstack: error.stack,\r\n\t\t\t\tcause: error.cause ? this.serializeError(error.cause) : undefined\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (typeof error === 'object') {\r\n\t\t\ttry { return JSON.parse(JSON.stringify(error)); } catch { return String(error); }\r\n\t\t}\r\n\t\treturn String(error);\r\n\t}\r\n\r\n\taddListener(listener: (error: any) => void): () => void {\r\n\t\tthis.listeners.push(listener);\r\n\t\treturn () => {\r\n\t\t\tconst index = this.listeners.indexOf(listener);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tthis.listeners.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tprivate emit(error: any): void {\r\n\t\tfor (const listener of this.listeners.slice()) {\r\n\t\t\tlistener(error);\r\n\t\t}\r\n\t}\r\n\r\n\tsetUnexpectedErrorHandler(handler: (e: any) => void): void {\r\n\t\tthis.unexpectedErrorHandler = handler;\r\n\t}\r\n\r\n\tgetUnexpectedErrorHandler(): (e: any) => void {\r\n\t\treturn this.unexpectedErrorHandler;\r\n\t}\r\n\r\n\tonUnexpectedError(error: any): void {\r\n\t\tthis.unexpectedErrorHandler(error);\r\n\t\tthis.emit(error);\r\n\t}\r\n\r\n\tpublic safeCall<T>(fn: () => T, context: string, fallback?: T): T | undefined {\r\n\t\ttry {\r\n\t\t\treturn fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t\tthis.onUnexpectedError(error);\r\n\t\t\treturn fallback;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async safeCallAsync<T>(fn: () => Promise<T>, context: string, fallback?: T): Promise<T | undefined> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t\tthis.onUnexpectedError(error);\r\n\t\t\treturn fallback;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic safeCallSilent(fn: () => void, context: string): void {\r\n\t\ttry {\r\n\t\t\tfn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async safeCallSilentAsync<T>(fn: () => Promise<T>, context: string): Promise<T | undefined> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tpublic wrapSafe<TArgs extends any[], TReturn>(\r\n\t\tfn: (...args: TArgs) => TReturn,\r\n\t\tcontext: string\r\n\t): (...args: TArgs) => TReturn | undefined {\r\n\t\treturn (...args: TArgs) => {\r\n\t\t\ttry {\r\n\t\t\t\treturn fn(...args);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tthis.logIfDev(context, error);\r\n\t\t\t\tthis.onUnexpectedError(error);\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic wrapSafeAsync<TArgs extends any[], TReturn>(\r\n\t\tfn: (...args: TArgs) => Promise<TReturn>,\r\n\t\tcontext: string\r\n\t): (...args: TArgs) => Promise<TReturn | undefined> {\r\n\t\treturn async (...args: TArgs) => {\r\n\t\t\ttry {\r\n\t\t\t\treturn await fn(...args);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tthis.logIfDev(context, error);\r\n\t\t\t\tthis.onUnexpectedError(error);\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport const errorHandler = new ErrorHandler();\r\n\r\n\r\nexport function setErrorConsoleLogging(enabled: boolean): void {\r\n\terrorHandler.setConsoleLogging(enabled);\r\n}\r\n\r\nexport function safeCall<T>(fn: () => T, context: string, fallback?: T): T | undefined {\r\n\treturn errorHandler.safeCall(fn, context, fallback);\r\n}\r\n\r\nexport function safeCallAsync<T>(fn: () => Promise<T>, context: string, fallback?: T): Promise<T | undefined> {\r\n\treturn errorHandler.safeCallAsync(fn, context, fallback);\r\n}\r\n\r\n\r\nexport function safeCallSilent<T>(fn: () => T, context: string): void {\r\n\terrorHandler.safeCallSilent(fn, context);\r\n}\r\n\r\n\r\nexport function safeCallSilentAsync<T>(fn: () => Promise<T>, context: string): Promise<T | undefined> {\r\n\treturn errorHandler.safeCallSilentAsync(fn, context);\r\n}\r\n\r\nexport function wrapSafe<TArgs extends any[], TReturn>(\r\n\tfn: (...args: TArgs) => TReturn,\r\n\tcontext: string\r\n): (...args: TArgs) => TReturn | undefined {\r\n\treturn errorHandler.wrapSafe(fn, context);\r\n}\r\n\r\nexport function wrapSafeAsync<TArgs extends any[], TReturn>(\r\n\tfn: (...args: TArgs) => Promise<TReturn>,\r\n\tcontext: string\r\n): (...args: TArgs) => Promise<TReturn | undefined> {\r\n\treturn errorHandler.wrapSafeAsync(fn, context);\r\n}\r\n\r\nexport function setUnexpectedErrorHandler(handler: (e: any) => void): void {\r\n\terrorHandler.setUnexpectedErrorHandler(handler);\r\n}\r\n","export type DevEvent = { type: string; payload?: any };\r\nexport type DevWarning = { code: string; message: string; details?: any };\r\n\r\nconst state = {\r\n enabled: false as boolean,\r\n listeners: new Set<(ev: DevEvent) => void>(),\r\n warnings: [] as DevWarning[],\r\n routes: null as any,\r\n};\r\n\r\n/** Dev modu: devtools açık ya da `globalThis.__MOTIF_DEV__ === true`. */\r\nexport function isDevLike(): boolean {\r\n return state.enabled || (globalThis as any).__MOTIF_DEV__ === true;\r\n}\r\n\r\nexport function isRequestedByFlag(): boolean {\r\n try {\r\n if (typeof window === 'undefined') return false;\r\n const w = window as any;\r\n if (w.__motif_DEVTOOLS === true) return true;\r\n if ((globalThis as any).__MOTIF_DEVTOOLS__ === true) return true;\r\n if ((globalThis as any).__MOTIF_DEVTOOLS_FLAG === true) return true;\r\n return false;\r\n } catch { return false; }\r\n}\r\n\r\nfunction exposeBus(visible: boolean) {\r\n try {\r\n if (visible) (window as any).__motifDevBus = { on, emit, warn, getWarnings, isEnabled, setRoutes, getRoutes };\r\n else delete (window as any).__motifDevBus;\r\n } catch { }\r\n}\r\n\r\nexport function ensureDevtoolsFlagInitialized() {\r\n if (state.enabled) return;\r\n state.enabled = isRequestedByFlag();\r\n if (state.enabled) exposeBus(true);\r\n}\r\n\r\nexport function setDevtoolsEnabled(enabled: boolean) {\r\n state.enabled = enabled || isRequestedByFlag();\r\n exposeBus(state.enabled);\r\n}\r\n\r\nexport function isEnabled(): boolean { return state.enabled; }\r\n\r\nexport function on(listener: (ev: DevEvent) => void): () => void {\r\n state.listeners.add(listener);\r\n return () => { state.listeners.delete(listener); };\r\n}\r\n\r\nexport function emit(type: string, payload?: any) {\r\n const ev: DevEvent = { type, payload };\r\n for (const l of state.listeners) {\r\n try { l(ev); } catch { }\r\n }\r\n try {\r\n const bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n if (bus && typeof bus.publish === 'function') {\r\n bus.publish('devtools:' + type, payload);\r\n }\r\n } catch { }\r\n}\r\n\r\nexport function warn(code: string, message: string, details?: any) {\r\n if (!isDevLike()) return;\r\n const w: DevWarning = { code, message, details };\r\n state.warnings.push(w);\r\n try { if (typeof console !== 'undefined') details === undefined ? console.warn(`[motifjs] ${code}: ${message}`) : console.warn(`[motifjs] ${code}: ${message}`, details); } catch { }\r\n emit('warning', w);\r\n}\r\n\r\nexport function getWarnings(): DevWarning[] { return state.warnings.slice(); }\r\n\r\nexport function setRoutes(routes: any) { state.routes = routes; }\r\nexport function getRoutes(): any { return state.routes; }\r","import { errorHandler } from \"./ErrorHandler\";\nimport { warn as devWarn } from \"../devtools/devbus\";\n\nexport const motifMessages = {\n MJX101: (tag: string) => `dom.createElement('${tag}'): no document is available (no DOM environment).`,\n MJX102: (description: string) => `Invalid element selector \"${description}\".`,\n MJX103: (tag: string) => `dom.createElementNS('${tag}') failed.`,\n MJX104: () => `Skipped inserting a component into the DOM because it contains its own parent.`,\n MJX105: () => `Applying router link classes failed.`,\n MJX106: () => `The placeholder parent changed; rebuilding the component.`,\n MJX107: () => `Disposing a child component failed.`,\n MJX108: () => `Component is disposed; the result of doWork was discarded.`,\n MJX109: () => `A content block child was removed because its content body is being disposed.`,\n MJX110: (ms: number) => `Lazy timeout: the component did not load within ${ms} ms.`,\n MJX111: () => `Lazy aborted: loading the component was cancelled.`,\n MJX112: (depth: number) => `resolveComponent: the factory chain exceeded ${depth} levels; a factory may be returning itself.`,\n MJX113: () => `The transport slot has no parent; mount the slot before transporting into it.`,\n MJX114: () => `Placing the navigation target into its host failed.`,\n MJX115: () => `Disposing the previous navigation target failed.`,\n MJX116: (ms: number) => `Timeout: the listener guard did not settle within ${ms} ms.`,\n MJX117: () => `Detaching a control failed.`,\n MJX118: () => `The onRemove callback failed while detaching a control.`,\n MJX119: () => `Moving a fragment's DOM range stopped: its end marker was not found (possible infinite loop).`,\n MJX120: () => `Scanning a fragment's DOM range stopped: its end marker was not found (possible infinite loop).`,\n MJX121: (compiled: number, runtime: number) => `This code was compiled for compiler contract ${compiled}, but the @motifx/core runtime implements contract ${runtime}. Install matching versions of @motifx/compiler and @motifx/core, and rebuild packages that ship compiled JSX.`,\n MJX122: (hook: string) => `The component ${hook} hook threw.`,\n MJX123: (event: string) => `The '${event}' event handler threw.`,\n MJX124: (key: string) => `A spread object on a DOM tag cannot set ${key}; the key was ignored. Write it on the tag, or use x-html, for HTML you trust.`,\n MJX125: (key: string) => `A spread object on a DOM tag cannot set a javascript: URL on '${key}'; the value was ignored. Write the attribute on the tag if it is intended.`,\n MJX126: () => `Lazy: loading the component failed and no Fallbackview is set; the host was cleared.`,\n MJX127: (got: string) => got === 'module'\n ? `The loaded module has no default export. Export the component as default, or map it: () => import('./X').then(m => m.X).`\n : `The loaded value is not a component (got ${got}). Return a component class, a function component, an Options API factory or a component instance.`,\n MJX128: (cls: string, member: string, how: 'method' | 'field' | 'replaced') => how === 'method'\n ? `${cls} overrides ${member} without calling super.${member}; MotifJS relies on this ComponentBase member. Rename your member, or call super.${member} in the override.`\n : how === 'field'\n ? `${cls} defines '${member}' as an instance field, which hides the ComponentBase member MotifJS relies on. Rename your field.`\n : `${cls} replaces '${member}', which MotifJS created for the component (a class field or an assignment with that name). Rename your member.`,\n\n MJX201: () => `ListBinding: renderFn must return a component instance, a component class, or a factory function.`,\n MJX202: (key: unknown, index: number) => `ListBinding: duplicate key \"${String(key)}\" at index ${index}. Rows are matched by the item object, not by key, so rendering is not affected; keep keys unique so they identify items.`,\n MJX203: (max: number) => `An effect ran ${max} times in one flush and keeps triggering itself; it is skipped for the rest of this flush. It probably writes a value it reads (for example state.n++). Wrap the write in untracked(...).`,\n MJX204: () => `A component reached a text binding and was not written to the DOM. For a template prop that can change later, write a getter: {() => props.tpl}. Templates that are ready at setup also work as {props.tpl}.`,\n MJX205: () => `Virtualization: the watch callback threw.`,\n MJX206: () => `Virtualization: autoRefresh stopped; dataRequest may be changing the reactive data it reads on every refresh.`,\n MJX207: () => `Virtualization: loading data failed.`,\n MJX208: () => `An effect threw.`,\n\n MJX301: (outlet: string, ms: number) => `RouterView outlet '${outlet}' was not built within ${ms} ms, so the route chain cannot be mounted. Does the layout component render a <RouterView>?`,\n MJX302: (name: string) => `Named route '${name}' was not found.`,\n MJX303: (chain: string) => `Redirect loop or too many redirects: ${chain}`,\n MJX304: () => `Route execution failed.`,\n MJX305: () => `The error fallback route failed.`,\n MJX306: (hook: string) => `The ${hook} hook threw.`,\n MJX307: () => `Disposing a route component failed.`,\n MJX308: () => `The stack navigation transition failed.`,\n MJX309: () => `Router is not initialized. Call useRouter() before navigating.`,\n MJX310: (parentPath: string) => `Route path cannot be empty; use '/' for the default child. Under parent \"${parentPath}\".`,\n MJX311: (path: string, parentPath: string) => `Child route path should start with '/': \"${path}\" under parent \"${parentPath}\".`,\n MJX312: (full: string) => `Child route path resolves to the same full path as its parent: \"${full}\".`,\n MJX313: (full: string) => `Multiple routes resolve to the same full path: \"${full}\".`,\n MJX314: (alias: string, parentPath: string) => `Child route alias should start with '/': \"${alias}\" under parent \"${parentPath}\".`,\n MJX315: (alias: string) => `Route alias resolves to the route's own path: \"${alias}\".`,\n MJX316: (alias: string) => `Multiple routes use the same alias: \"${alias}\".`,\n\n MJX401: (token: string) => `Service not registered for token: ${token}`,\n MJX402: (token: string) => `Async factory used with get() for token ${token}; use getAsync().`,\n MJX403: () => `Invalid service descriptor.`,\n MJX404: (chain: string) => `Cyclic dependency detected: ${chain}`,\n MJX405: () => `Only one ApplicationBuilder instance is allowed.`,\n MJX406: (selector: string) => `Application.run: host not found for selector: ${selector}`,\n MJX407: (token: string) => `getService: no ServiceProvider found for token '${token}'.`,\n MJX408: (token: string, reason: string) => `getService failed for token '${token}': ${reason}`,\n MJX409: (token: string) => `inject(${token}) was called outside a service construction; call it in a field initializer or constructor of a class the ServiceProvider creates.`,\n MJX410: (token: string, sources: string) => `Multiple sources provided for token '${token}': ${sources}. Resolution order is useValue > useFactory > useClass.`,\n MJX411: (token: string) => `'deps' must be an array for token '${token}'; the invalid deps are ignored.`,\n MJX413: (token: string) => `Service '${token}' is registered with a function that cannot be constructed. Use { useValue: fn } to provide the function itself or { useFactory: fn } to create the service.`,\n MJX414: (token: string, reason: string) => `FromService failed for token '${token}': ${reason}`,\n\n MJX501: () => `Disposable already disposed.`,\n MJX502: () => `Cannot register a disposable on itself.`,\n MJX503: () => `Errors were thrown while disposing a store.`,\n MJX504: () => `A disposable was added to a DisposableStore that is already disposed; the added object will leak.`,\n MJX505: () => `Cannot dispose a disposable on itself.`,\n MJX507: (name: string, limit: number, count: number) => `[${name}] potential listener LEAK: ${limit} listeners already; most frequent stack (${count}):`,\n\n MJX601: () => `Sequence contains no elements.`,\n MJX602: () => `Circuit is open.`,\n MJX603: () => `Bulkhead queue is full.`,\n MJX604: () => `Rate limit exceeded.`,\n MJX605: () => `Operation timed out.`,\n MJX607: () => `A history must be created with at least one entry.`,\n MJX608: () => `Method not implemented.`,\n MJX609: () => `OperationRunner: the operation threw.`,\n MJX610: () => `Matching the request path failed.`,\n MJX611: () => `The devtools panel failed to load.`,\n} satisfies Record<string, (...args: any[]) => string>;\n\nexport type MotifErrorCode = keyof typeof motifMessages;\ntype MessageArgs<C extends MotifErrorCode> = Parameters<(typeof motifMessages)[C]>;\n\nexport class MotifError extends Error {\n readonly code: MotifErrorCode;\n\n constructor(code: MotifErrorCode, message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'MotifError';\n this.code = code;\n }\n}\n\nexport function formatMotifMessage<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): string {\n return `[motifjs] ${code}: ${(motifMessages[code] as (...a: any[]) => string)(...args)}`;\n}\n\nexport function motifError<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): MotifError {\n return new MotifError(code, formatMotifMessage(code, ...args));\n}\n\nexport function reportError<C extends MotifErrorCode>(code: C, cause: unknown, ...args: MessageArgs<C>): void {\n errorHandler.report(new MotifError(code, formatMotifMessage(code, ...args), { cause }));\n}\n\nexport function callReported<C extends MotifErrorCode>(fn: () => unknown, code: C, ...args: MessageArgs<C>): void {\n try {\n const result: any = fn();\n if (result && typeof result.then === 'function') {\n result.then(undefined, (error: unknown) => reportError(code, error, ...args));\n }\n } catch (error) {\n reportError(code, error, ...args);\n }\n}\n\nexport function reportWarning<C extends MotifErrorCode>(code: C, args: MessageArgs<C>, details?: unknown): void {\n devWarn(code, (motifMessages[code] as (...a: any[]) => string)(...args), details);\n}\n","import { IDisposable } from \"./IDisposable\";\n\nexport interface IDisposableTracker {\n trackDisposable(disposable: IDisposable): void;\n setParent(child: IDisposable, parent: IDisposable | null): void;\n markAsDisposed(disposable: IDisposable): void;\n markAsSingleton(disposable: IDisposable): void;\n}\n\nclass DisposableCore {\n\n disposableTracker: IDisposableTracker | null = null;\n\n notifyCreated<T extends IDisposable>(target: T): T {\n this.disposableTracker?.trackDisposable(target);\n return target;\n }\n\n notifyDisposed(target: IDisposable): void {\n this.disposableTracker?.markAsDisposed(target);\n }\n\n notifyOwner(target: IDisposable, owner: IDisposable | null): void {\n this.disposableTracker?.setParent(target, owner);\n }\n\n toDisposable(fn: () => void): IDisposable {\n let pending = true;\n const handle: IDisposable = {\n dispose: () => {\n if (!pending) {\n return;\n }\n pending = false;\n this.notifyDisposed(handle);\n fn();\n }\n };\n return this.notifyCreated(handle);\n }\n}\n\nexport const disposableCore: DisposableCore = new DisposableCore();\n","import { IDisposable } from \"./IDisposable\";\r\nimport { disposableCore } from \"./DisposableCore\";\r\nimport { MotifError, formatMotifMessage, motifError, reportWarning } from \"../common/diagnostics\";\r\n\r\nexport class DisposableStore implements IDisposable {\r\n\r\n private readonly _items = new Set<IDisposable>();\r\n private _closed = false;\r\n\r\n constructor() {\r\n disposableCore.notifyCreated(this);\r\n }\r\n\r\n get isDisposed(): boolean {\r\n return this._closed;\r\n }\r\n\r\n add<T extends IDisposable>(item: T): T {\r\n if (!item) {\r\n return item;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX502');\r\n }\r\n disposableCore.notifyOwner(item, this);\r\n if (this._closed) {\r\n reportWarning('MJX504', [], new Error().stack);\r\n } else {\r\n this._items.add(item);\r\n }\r\n return item;\r\n }\r\n\r\n delete<T extends IDisposable>(item: T): void {\r\n if (!item) {\r\n return;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX505');\r\n }\r\n this._items.delete(item);\r\n item.dispose();\r\n }\r\n\r\n detach<T extends IDisposable>(item: T): void {\r\n if (item && this._items.delete(item)) {\r\n disposableCore.notifyOwner(item, null);\r\n }\r\n }\r\n\r\n clear(): void {\r\n if (this._items.size === 0) {\r\n return;\r\n }\r\n const failures: unknown[] = [];\r\n for (const item of this._items) {\r\n try {\r\n item?.dispose();\r\n } catch (error) {\r\n failures.push(error);\r\n }\r\n }\r\n this._items.clear();\r\n if (failures.length === 1) {\r\n throw failures[0];\r\n }\r\n if (failures.length > 1) {\r\n throw new MotifError('MJX503', formatMotifMessage('MJX503'), { cause: new AggregateError(failures) });\r\n }\r\n }\r\n\r\n dispose(): void {\r\n if (this._closed) {\r\n return;\r\n }\r\n disposableCore.notifyDisposed(this);\r\n this._closed = true;\r\n this.clear();\r\n }\r\n}\r\n","import { motifError, reportWarning } from \"../common/diagnostics\";\nimport { IDisposable } from \"./IDisposable\";\nimport { disposableCore } from \"./DisposableCore\";\nimport { DisposableStore } from \"./DisposableStore\";\n\nexport abstract class Disposable implements IDisposable {\n\n protected readonly _disposables = new DisposableStore();\n\n constructor() {\n disposableCore.notifyCreated(this);\n disposableCore.notifyOwner(this._disposables, this);\n }\n\n public dispose(): void {\n disposableCore.notifyDisposed(this);\n const owned = this._disposables;\n if (owned && typeof owned.dispose === 'function') {\n owned.dispose();\n } else {\n reportWarning('MJX501', [], { disposable: this });\n }\n }\n\n protected _register<T extends IDisposable>(item: T): T {\n if ((item as unknown) === this) {\n throw motifError('MJX502');\n }\n return this._disposables.add(item);\n }\n}\n","\r\n\r\nexport const Flags = {\r\n IS_REACTIVE: Symbol.for('motif.isReactive'),\r\n IS_READONLY: Symbol.for('motif.isReadonly'),\r\n IS_SUPERFICIAL: Symbol.for('motif.isSuperficial'),\r\n RAW: Symbol.for('motif.raw'),\r\n GET_SETUP: Symbol.for('motif.getSetup'),\r\n} as const;\r\n\r\nexport const enum TargetType {\r\n SYSTEM = 0,\r\n INVALID = SYSTEM,\r\n COMMON = 0b01,\r\n COLLECTION = 0b10\r\n}\r\n\r\nexport const ITERATE_KEY = Symbol('')\r\nexport let followTracking: boolean = true;\r\nexport let arrayScope: { enabled: boolean, key: string } = { enabled: false, key: '' };\r\n\r\n\r\nexport function getRaw<T>(value: T): T {\r\n let current = value;\r\n while (current && (current as any)[Flags.RAW]) {\r\n current = (current as any)[Flags.RAW];\r\n }\r\n return current;\r\n}\r\n\r\nexport function isReadonly(candidate: unknown): boolean {\r\n if (candidate == null) return false;\r\n return Boolean((candidate as any)[Flags.IS_READONLY]);\r\n}\r\n\r\nexport function hasOwn(target: object, key: PropertyKey): boolean {\r\n return Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nexport function isObject(value: unknown): value is Record<any, any> {\r\n return typeof value === 'object' && value !== null;\r\n}\r\n\r\nconst intrinsicSymbols: ReadonlySet<symbol> = new Set(\r\n Object.values(Object.getOwnPropertyDescriptors(Symbol))\r\n .map(descriptor => descriptor.value)\r\n .filter((value): value is symbol => typeof value === 'symbol')\r\n);\r\n\r\nexport function isIntrinsicSymbol(key: unknown): boolean {\r\n return typeof key === 'symbol' && intrinsicSymbols.has(key);\r\n}\r\n\r\nconst proxyableTags = new Map<string, TargetType>([\r\n ['[object Object]', TargetType.COMMON],\r\n ['[object Array]', TargetType.COMMON],\r\n ['[object Map]', TargetType.COLLECTION],\r\n ['[object Set]', TargetType.COLLECTION],\r\n ['[object WeakMap]', TargetType.COLLECTION],\r\n ['[object WeakSet]', TargetType.COLLECTION],\r\n]);\r\n\r\nexport function getTargetType(value: any): TargetType {\r\n var proto = Object.getPrototypeOf(value);\r\n var cname = \"\";\r\n if (proto && proto.constructor) {\r\n cname = proto.constructor.name;\r\n }\r\n if ((cname === \"Control\" || cname == \"RouteManager\" || cname == \"ServiceManager\")) {\r\n return TargetType.SYSTEM;\r\n }\r\n if (!Object.isExtensible(value)) {\r\n return TargetType.INVALID;\r\n }\r\n return proxyableTags.get(Object.prototype.toString.call(value)) ?? TargetType.INVALID;\r\n}\r\n\r\nconst canonicalIndex = /^(?:0|[1-9]\\d*)$/;\r\nexport const isNumericKey = (key: unknown): boolean =>\r\n typeof key === 'string' && canonicalIndex.test(key) && String(Number(key)) === key;\r\n\r\n\r\nconst savedTracking: boolean[] = [];\r\nlet trackingDepth = 0;\r\n\r\nfunction enterTracking(enabled: boolean) {\r\n savedTracking[trackingDepth++] = followTracking;\r\n followTracking = enabled;\r\n}\r\n\r\nexport function pauseTracking() {\r\n enterTracking(false);\r\n}\r\n\r\nexport function enableTracking() {\r\n enterTracking(true);\r\n}\r\n\r\nexport function resetTracking() {\r\n followTracking = trackingDepth > 0 ? savedTracking[--trackingDepth] : true;\r\n}\r\n\r\nconst arrayStack: { enabled: boolean, key: string }[] = []\r\n\r\n\r\nexport function addArrayStack(key: any) {\r\n arrayStack.push(arrayScope)\r\n arrayScope.enabled = true;\r\n arrayScope.key = key;\r\n}\r\nexport function removeArrayStack() {\r\n const last = arrayStack.pop();\r\n if (arrayStack.length > 0) {\r\n arrayScope = last === undefined ? { enabled: false, key: '' } : last;\r\n } else {\r\n arrayScope = { enabled: false, key: '' }\r\n }\r\n\r\n}\r\n\r\n\r\ndeclare const opaqueBrand: unique symbol\r\ndeclare const shallowBrand: unique symbol\r\n\r\ntype OpaqueState = Function | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | string | number | boolean | { [opaqueBrand]?: true }\r\n\r\ntype DeepState<T> = T extends OpaqueState ? T\r\n : T extends Array<any> ? { [Index in keyof T]: DeepState<T[Index]> }\r\n : T extends object & { [shallowBrand]?: never } ? { [Key in keyof T]: Key extends symbol ? T[Key] : DeepState<T[Key]> }\r\n : T\r\n\r\ninterface BoxedPrimitive<T> { value: T }\r\n\r\nexport type UnwrapValueRefs<T> = T extends number | string | boolean ? BoxedPrimitive<T> : DeepState<T>;\r\n\r\n\r\nexport var setupListener: any;\r\nexport var setupActive = false;\r\n\r\nexport function listenSetup(key: any) {\r\n setupListener = key;\r\n setupActive = true;\r\n}\r\n\r\nexport function closeSetup() {\r\n setupListener = null;\r\n setupActive = false;\r\n}","import { ComponentBase, motifFragment, resolveComponent } from \"../\";\r\nimport { effect, untracked } from \"../\";\r\nimport { getRaw } from \"../store/common\";\r\nimport { motifError, reportWarning } from \"../common/diagnostics\";\r\nimport { IBaseBinding } from \"./\";\r\n\r\n\r\nexport interface ListBindingOptions {\r\n reuse?: boolean;\r\n}\r\n\r\nexport class ListBinding implements IBaseBinding {\r\n propertyName: string = \"__list__\";\r\n dataSource: any;\r\n dataMember?: string | undefined;\r\n formatString?: string | undefined;\r\n converter?: ((value: any) => any) | undefined;\r\n converterBack?: ((value: any) => any) | undefined;\r\n updateMode?: \"onPropertyChanged\" | \"onValidation\" | \"never\" | undefined;\r\n private _isActive = false;\r\n private _effectCleanup?: () => void;\r\n private _rendered: ComponentBase[] = [];\r\n private _identityMap = new WeakMap<object, ComponentBase[]>();\r\n private container: ComponentBase = motifFragment('list-container');\r\n constructor(private component: ComponentBase,\r\n private itemsFn: () => any[] | Iterable<any>,\r\n private renderFn: (item: any, index: number) => ComponentBase,\r\n private options?: ListBindingOptions) {\r\n this.component.controls.add(this.container);\r\n\r\n }\r\n activate(): void { if (this._isActive) return; this._isActive = true; this._setupBinding(); }\r\n deactivate(): void {\r\n if (!this._isActive) return;\r\n this._isActive = false;\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n this._disposeAll();\r\n }\r\n reActivate(): void {\r\n\r\n this.deactivate();\r\n this.activate();\r\n }\r\n private _disposeAll() {\r\n this._rendered.forEach(c => { try { c.dispose && c.dispose(); } catch { } });\r\n this._rendered = [];\r\n this._identityMap = new WeakMap();\r\n }\r\n private _toArray(src: any): any[] {\r\n if (!src) return [];\r\n if (Array.isArray(src)) return src;\r\n if (typeof src === 'function') return this._toArray(src());\r\n if (src[Symbol.iterator]) return Array.from(src as Iterable<any>);\r\n return [];\r\n }\r\n private _getComponentKey(comp: ComponentBase): any {\r\n try {\r\n const p: any = (comp as any).props;\r\n if (p && typeof p.indexkey === 'function') {\r\n return p.indexkey();\r\n }\r\n if (p && typeof p.indexkey !== 'undefined' && p.indexkey !== null) {\r\n return p.indexkey;\r\n }\r\n } catch { }\r\n try {\r\n const k = (comp as any).motif.options?.__key;\r\n if (typeof k !== 'undefined') return k;\r\n } catch { }\r\n return undefined;\r\n }\r\n\r\n private isPreCreated(comp: ComponentBase): boolean {\r\n return comp.element !== null || comp.parent !== null;\r\n }\r\n\r\n private _render(item: any, idx: number): ComponentBase {\r\n return untracked(() => {\r\n const rendered = this.renderFn(item, idx);\r\n return this.processRendered(rendered, item);\r\n });\r\n }\r\n\r\n private processRendered(rendered: any, item: any): ComponentBase {\r\n const component: ComponentBase = resolveComponent(rendered);\r\n if (!(component instanceof ComponentBase)) {\r\n throw motifError('MJX201');\r\n }\r\n\r\n try { (component as any)._base.itemRef = item; } catch { }\r\n try { (component.motif.options as any).__fromList = true; } catch { }\r\n\r\n if (typeof (component as any).__listAdopted === 'undefined') {\r\n (component as any).__listAdopted = component.parent !== null && component.parent !== undefined;\r\n }\r\n\r\n return component;\r\n }\r\n private olditems: any[] = [];\r\n\r\n private get _indexSensitive(): boolean {\r\n try { return this.renderFn.length >= 2; } catch { return true; }\r\n }\r\n\r\n private static _isPrimitive(v: any): boolean {\r\n return v === null || typeof v !== 'object';\r\n }\r\n\r\n private _setupBinding() {\r\n const update = () => {\r\n const source = this._toArray(this.itemsFn());\r\n const rawSource = getRaw(source);\r\n const count = source.length;\r\n let items: any[];\r\n if (rawSource === source) {\r\n items = source;\r\n } else {\r\n items = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n if (i in rawSource) items[i] = source[i];\r\n else void source[i];\r\n }\r\n }\r\n const prevItems = this.olditems;\r\n const prevComponents = this._rendered;\r\n if (this.olditems.length > 0) {\r\n const currentRaws = new Set<any>();\r\n for (let i = 0; i < count; i++) currentRaws.add(getRaw(items[i]));\r\n for (const old of this.olditems) {\r\n const raw = getRaw(old);\r\n if (!currentRaws.has(raw)) {\r\n const list = this._identityMap.get(raw);\r\n if (list) {\r\n this._identityMap.delete(raw);\r\n for (const component of list) {\r\n try { component.dispose(); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const newComponents: ComponentBase[] = [];\r\n const usedComponents = new Set<ComponentBase>();\r\n const seenKeys = new Map<any, number>();\r\n\r\n const claimed = new Set<ComponentBase>();\r\n const positionalReuse = new Map<number, ComponentBase>();\r\n const isReusable = (c: ComponentBase | undefined): c is ComponentBase =>\r\n !!c && !c.isDisposed && !claimed.has(c) && !(c as any).__listAdopted;\r\n\r\n const shared = Math.min(items.length, prevItems.length);\r\n for (let i = 0; i < shared; i++) {\r\n const it = items[i];\r\n if (!ListBinding._isPrimitive(it)) continue;\r\n if (!Object.is(prevItems[i], it)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n positionalReuse.set(i, comp);\r\n claimed.add(comp);\r\n }\r\n\r\n let valuePool: Map<any, ComponentBase[]> | null = null;\r\n if (!this._indexSensitive) {\r\n valuePool = new Map<any, ComponentBase[]>();\r\n for (let i = 0; i < prevItems.length; i++) {\r\n const prev = prevItems[i];\r\n if (!ListBinding._isPrimitive(prev)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n const queue = valuePool.get(prev);\r\n if (queue) queue.push(comp); else valuePool.set(prev, [comp]);\r\n }\r\n }\r\n\r\n const occurrences = new Map<object, number>();\r\n items.forEach((item, idx) => {\r\n let component: ComponentBase;\r\n if (typeof item === 'object' && item !== null) {\r\n const raw = getRaw(item);\r\n const occurrence = occurrences.get(raw) ?? 0;\r\n occurrences.set(raw, occurrence + 1);\r\n let list = this._identityMap.get(raw);\r\n if (!list) {\r\n list = [];\r\n this._identityMap.set(raw, list);\r\n }\r\n const existing = list[occurrence];\r\n if (existing && !existing.isDisposed) {\r\n component = existing;\r\n } else {\r\n component = this._render(item, idx);\r\n list[occurrence] = component;\r\n }\r\n }\r\n else {\r\n let reused = positionalReuse.get(idx);\r\n if (!reused && valuePool) {\r\n const queue = valuePool.get(item);\r\n if (queue && queue.length) {\r\n reused = queue.shift()!;\r\n claimed.add(reused);\r\n }\r\n }\r\n if (reused) {\r\n component = reused;\r\n } else {\r\n component = this._render(item, idx);\r\n }\r\n }\r\n const userKey = this._getComponentKey(component);\r\n if (userKey !== undefined && userKey !== null) {\r\n if (seenKeys.has(userKey)) {\r\n reportWarning('MJX202', [userKey, idx]);\r\n } else {\r\n seenKeys.set(userKey, idx);\r\n }\r\n }\r\n\r\n newComponents.push(component);\r\n usedComponents.add(component);\r\n });\r\n\r\n occurrences.forEach((count, raw) => {\r\n const list = this._identityMap.get(raw);\r\n if (list && list.length > count) list.length = count;\r\n });\r\n\r\n this._rendered.forEach(comp => {\r\n if (!usedComponents.has(comp) && !(comp as any).__listAdopted) {\r\n try { comp.dispose(); } catch { }\r\n }\r\n });\r\n\r\n this._syncContainer(newComponents);\r\n\r\n this._rendered = newComponents;\r\n this.olditems = items === source ? source.slice() : items;\r\n return count;\r\n };\r\n this._effectCleanup = effect(() => update());\r\n }\r\n\r\n private _syncContainer(newComponents: ComponentBase[]) {\r\n const controls = this.container.controls;\r\n const items = controls.items;\r\n\r\n if (items.length === 0) {\r\n for (const comp of newComponents) {\r\n try { controls.add(comp); } catch { }\r\n }\r\n return;\r\n }\r\n\r\n if (newComponents.length >= items.length) {\r\n let appendOnly = true;\r\n for (let i = 0; i < items.length; i++) {\r\n if (newComponents[i] !== items[i]) {\r\n appendOnly = false;\r\n break;\r\n }\r\n }\r\n\r\n if (appendOnly && newComponents.length > items.length) {\r\n const existing = new Set(items);\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n if (existing.has(newComponents[i])) {\r\n appendOnly = false;\r\n break;\r\n }\r\n existing.add(newComponents[i]);\r\n }\r\n }\r\n\r\n if (appendOnly) {\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n try { controls.add(newComponents[i]); } catch { }\r\n }\r\n return;\r\n }\r\n }\r\n\r\n const oldIndex = new Map<ComponentBase, number>();\r\n items.forEach((c, i) => oldIndex.set(c, i));\r\n const sources = newComponents.map(c => {\r\n const oi = oldIndex.get(c);\r\n return oi === undefined ? -1 : oi;\r\n });\r\n\r\n const stable = new Set(longestIncreasingIndices(sources));\r\n\r\n let anchor: ComponentBase | null = null;\r\n for (let i = newComponents.length - 1; i >= 0; i--) {\r\n const comp = newComponents[i];\r\n try {\r\n if (sources[i] === -1) {\r\n if (anchor) {\r\n const at = items.indexOf(anchor);\r\n controls.add(at >= 0 ? at : items.length, comp);\r\n } else {\r\n controls.add(comp);\r\n }\r\n } else if (!stable.has(i)) {\r\n controls.move(comp, anchor);\r\n }\r\n } catch { }\r\n anchor = comp;\r\n }\r\n }\r\n}\r\n\r\nfunction longestIncreasingIndices(sources: number[]): number[] {\r\n const predecessors = new Array<number>(sources.length).fill(-1);\r\n const tails: number[] = [];\r\n\r\n for (let i = 0; i < sources.length; i++) {\r\n const v = sources[i];\r\n if (v === -1) continue;\r\n if (tails.length === 0 || sources[tails[tails.length - 1]] < v) {\r\n predecessors[i] = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n tails.push(i);\r\n continue;\r\n } \r\n let lo = 0, hi = tails.length - 1;\r\n while (lo < hi) {\r\n const mid = (lo + hi) >> 1;\r\n if (sources[tails[mid]] < v) lo = mid + 1; else hi = mid;\r\n }\r\n if (v < sources[tails[lo]]) {\r\n predecessors[i] = lo > 0 ? tails[lo - 1] : -1;\r\n tails[lo] = i;\r\n }\r\n }\r\n\r\n const result: number[] = [];\r\n let u = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n while (u !== -1) {\r\n result.push(u);\r\n u = predecessors[u];\r\n }\r\n return result.reverse();\r\n}"," \r\nexport class NameValuePair<KType, VType> {\r\n public Key!: KType;\r\n public value!: VType;\r\n}; ","export class List<T>{\r\n \r\n public ItemAdded!: (i: T) => void;\r\n public ItemAddedBefore!: (i: T) => void;\r\n public ItemSplice!: (start:any, i: T) => void;\r\n private __list: Array<T> = [];\r\n private _map = new Set<T>();\r\n public Dispose() {\r\n this.__list = [];\r\n\r\n }\r\n public Add(item: T): number {\r\n this._map.add(item);\r\n var i = this.__list.push(item) - 1;\r\n if (this.ItemAdded != undefined) { this.ItemAdded(item); };\r\n return i;\r\n }\r\n\r\n public AddBefore(item: T) {\r\n this._map.add(item);\r\n var i = this.__list.unshift(item) - 1;\r\n if (this.ItemAddedBefore != undefined) { this.ItemAddedBefore(item); };\r\n return i;\r\n\r\n }\r\n\r\n public Insert(start:any, item: T) {\r\n this._map.add(item);\r\n var i = this.__list.splice(start, 0, item);\r\n if (this.ItemSplice != undefined) { this.ItemSplice(start, item); };\r\n return i;\r\n }\r\n\r\n public get items(): Array<T> {\r\n return this.__list;\r\n }\r\n\r\n public clear(): T[] {\r\n this._map.clear();\r\n this.__list.splice(0);\r\n this.__list = [];\r\n return this.__list;\r\n };\r\n public get count(): number { \r\n return this.__list.length;\r\n };\r\n\r\n public remove(item: T): T[] {\r\n const index = this.__list.indexOf(item);\r\n if (index === -1) return [];\r\n this._map.delete(item);\r\n return this.__list.splice(index, 1);\r\n };\r\n\r\n public indexOf(item: T): number {\r\n return this.__list.indexOf(item)\r\n }\r\n\r\n public FindFromKey(key: any, value: any): T[] {\r\n return this.__list.filter(i => { return (i as any)[key] === value })\r\n }\r\n\r\n public removeIndex(index: number): T[] {\r\n var deleted = this.__list.splice(index, 1);\r\n deleted.forEach(t => {\r\n this._map.delete(t);\r\n })\r\n return deleted;\r\n };\r\n\r\n public has(item: T): boolean {\r\n return this._map.has(item);\r\n }\r\n\r\n public item(index: number): T {\r\n return this.__list[index];\r\n }\r\n\r\n public forEach(callbackfn: (value: T, index: number, array: T[]) => void) {\r\n\r\n this.__list?.forEach(callbackfn);\r\n }\r\n\r\n public ReverseClone(): Array<T> {\r\n return this.__list.slice().reverse();\r\n }\r\n\r\n public filter(callbackfn: (value: T, index: number, array: T[]) => boolean ): Array<T> {\r\n return this.__list.filter(callbackfn);\r\n }\r\n};","\r\n\r\nimport { NodeTypes } from \".\";\r\nimport { reportError } from \"./diagnostics\";\r\nimport { Component, ComponentBase } from \"../component\";\r\nimport { IDisposable } from \"../disposable\";\r\n\r\nexport const toKebab = (str: string) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? \"-\" : \"\") + $.toLowerCase());\r\n\r\n\r\nexport function toDisposable(fn: () => void): IDisposable {\r\n let pending = true;\r\n return {\r\n dispose() {\r\n if (!pending) {\r\n return;\r\n }\r\n pending = false;\r\n fn();\r\n }\r\n };\r\n}\r\n\r\n\r\n\r\nexport function advanceif(source: ComponentBase, ...targets: NodeTypes[]) {\r\n if (targets.indexOf(source.element.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function advelif(source: any, ...targets: NodeTypes[]) {\r\n if (source && targets.indexOf(source.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isAnchorElement(source: ComponentBase) {\r\n return source.element.nodeName == 'A';\r\n}\r\n\r\nexport function isElement(source: ComponentBase) {\r\n return source.element.nodeType == NodeTypes.ELEMENT_NODE;\r\n}\r\nexport function isview(source: ComponentBase) {\r\n return source.element.nodeName == 'view';\r\n}\r\n\r\n\r\n\r\nexport function isComponent(source: any) {\r\n return source instanceof ComponentBase\r\n}\r\nexport function createComponent(tag: any, options: any) {\r\n return new Component(tag, options)\r\n}\r\n\r\n\r\nexport function normalizePath(p: string): string {\r\n return '/' + p.replace(/^\\/+|\\/+$/g, '');\r\n}\r\nexport function startsWithPath(requestPath: string, prefix: string): boolean {\r\n const rp = normalizePath(requestPath);\r\n const pp = normalizePath(prefix);\r\n return rp === pp || rp.startsWith(pp + '/');\r\n}\r\n\r\nexport function isExactMatch(requestPath: string, target: string): boolean {\r\n try {\r\n const strip = (p: string) => {\r\n return p.trim()\r\n .split(/[?#]/)[0]\r\n .replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n }\r\n return strip(requestPath) === strip(target);\r\n } catch (error) {\r\n reportError('MJX610', error);\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport function findAppendableComponent(component: ComponentBase): ComponentBase | null {\r\n try {\r\n if (component.isDisposed) return null;\r\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\r\n return component;\r\n } else if (component.parent) {\r\n return findAppendableComponent(component.parent);\r\n }\r\n } catch (error) {\r\n throw error;\r\n }\r\n return null;\r\n}","import { reportWarning } from \"./diagnostics\";\n\nexport class LeakMonitor {\n\n private readonly _origins = new Map<string, number>();\n private _quietChecks = 0;\n\n constructor(readonly threshold: number, readonly name: string) { }\n\n check(size: number): (() => void) | undefined {\n if (this.threshold <= 0 || size < this.threshold) {\n return undefined;\n }\n const origin = new Error().stack ?? '';\n this._origins.set(origin, (this._origins.get(origin) ?? 0) + 1);\n\n this._quietChecks--;\n if (this._quietChecks <= 0) {\n this._quietChecks = this.threshold / 2;\n const [stack, count] = this._busiestOrigin();\n reportWarning('MJX507', [this.name, size, count], stack);\n }\n\n return () => {\n this._origins.set(origin, (this._origins.get(origin) ?? 0) - 1);\n };\n }\n\n private _busiestOrigin(): [string, number] {\n let busiest: [string, number] = ['', 0];\n for (const entry of this._origins) {\n if (entry[1] > busiest[1]) {\n busiest = entry;\n }\n }\n return busiest;\n }\n}\n","interface Link<T> {\n value: T | undefined;\n before: Link<T>;\n after: Link<T>;\n linked: boolean;\n}\n\nfunction createRing<T>(): Link<T> {\n const ring = { value: undefined, linked: false } as Link<T>;\n ring.before = ring;\n ring.after = ring;\n return ring;\n}\n\nexport class LinkedList<T> {\n\n private _ring: Link<T> = createRing<T>();\n private _count = 0;\n\n get size(): number {\n return this._count;\n }\n\n isEmpty(): boolean {\n return this._count === 0;\n }\n\n push(value: T): () => void {\n return this._link(value, this._ring.before);\n }\n\n unshift(value: T): () => void {\n return this._link(value, this._ring);\n }\n\n pop(): T | undefined {\n return this._take(this._ring.before);\n }\n\n shift(): T | undefined {\n return this._take(this._ring.after);\n }\n\n clear(): void {\n for (let link = this._ring.after; link !== this._ring; link = link.after) {\n link.linked = false;\n }\n this._ring = createRing<T>();\n this._count = 0;\n }\n\n *[Symbol.iterator](): Iterator<T> {\n const ring = this._ring;\n for (let link = ring.after; link !== ring; link = link.after) {\n yield link.value as T;\n }\n }\n\n private _link(value: T, previous: Link<T>): () => void {\n const link: Link<T> = { value, before: previous, after: previous.after, linked: true };\n previous.after.before = link;\n previous.after = link;\n this._count++;\n return () => this._unlink(link);\n }\n\n private _take(link: Link<T>): T | undefined {\n if (link === this._ring) {\n return undefined;\n }\n const value = link.value;\n this._unlink(link);\n return value;\n }\n\n private _unlink(link: Link<T>): void {\n if (!link.linked) {\n return;\n }\n link.linked = false;\n link.before.after = link.after;\n link.after.before = link.before;\n this._count--;\n }\n}\n","import { motifError } from \"./diagnostics\";\nexport interface Group<TKey, TElement> {\n key: TKey;\n items: TElement[];\n}\n\nfunction compareKeys<TKey>(a: TKey, b: TKey): number {\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\nexport class Query<T> implements Iterable<T> {\n private readonly source: readonly T[];\n\n constructor(source: Iterable<T>) {\n this.source = Array.isArray(source) ? source : Array.from(source);\n }\n\n static from<T>(source: Iterable<T>): Query<T> {\n return new Query(source);\n }\n\n where(predicate: (item: T, index: number) => boolean): Query<T> {\n return new Query(this.source.filter(predicate));\n }\n\n select<TResult>(selector: (item: T, index: number) => TResult): Query<TResult> {\n return new Query(this.source.map(selector));\n }\n\n orderBy<TKey>(keySelector: (item: T) => TKey): Query<T> {\n return new Query([...this.source].sort((a, b) => compareKeys(keySelector(a), keySelector(b))));\n }\n\n orderByDescending<TKey>(keySelector: (item: T) => TKey): Query<T> {\n return new Query([...this.source].sort((a, b) => compareKeys(keySelector(b), keySelector(a))));\n }\n\n distinctBy<TKey>(keySelector: (item: T) => TKey): Query<T> {\n const seen = new Set<TKey>();\n return new Query(this.source.filter(item => {\n const key = keySelector(item);\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n }));\n }\n\n groupBy<TKey>(keySelector: (item: T) => TKey): Query<Group<TKey, T>> {\n const map = new Map<TKey, T[]>();\n for (const item of this.source) {\n const key = keySelector(item);\n const group = map.get(key);\n if (group) {\n group.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return new Query(Array.from(map, ([key, items]) => ({ key, items })));\n }\n\n first(): T {\n if (this.source.length === 0) {\n throw motifError('MJX601');\n }\n return this.source[0];\n }\n\n firstOrDefault(): T | undefined {\n return this.source[0];\n }\n\n any(predicate?: (item: T) => boolean): boolean {\n return predicate ? this.source.some(predicate) : this.source.length > 0;\n }\n\n all(predicate: (item: T) => boolean): boolean {\n return this.source.every(predicate);\n }\n\n aggregate<TResult>(seed: TResult, func: (acc: TResult, item: T) => TResult): TResult {\n return this.source.reduce(func, seed);\n }\n\n toArray(): T[] {\n return [...this.source];\n }\n\n [Symbol.iterator](): Iterator<T> {\n return this.source[Symbol.iterator]();\n }\n}\n","import { reportWarning } from \"./diagnostics\";\nimport { isDevLike } from \"../devtools/devbus\";\n\nexport const COMPILER_CONTRACT = 1;\n\nconst reported = new Set<number>();\nconst pending = new Set<number>();\n\nexport function motifCompiled(contract: number): void {\n if (contract === COMPILER_CONTRACT || reported.has(contract)) return;\n if (!isDevLike()) {\n pending.add(contract);\n return;\n }\n pending.delete(contract);\n reported.add(contract);\n reportWarning('MJX121', [contract, COMPILER_CONTRACT]);\n}\n\nexport function flushCompilerContractWarnings(): void {\n for (const contract of Array.from(pending)) motifCompiled(contract);\n}\n","\nexport * from \"./NameValuePair\";\nexport * from \"./List\";\nexport * from \"./functions\";\nexport * from \"./ErrorHandler\";\nexport * from \"./LeakMonitor\";\nexport * from \"./Dictionary\";\nexport * from \"./IAttribute\";\nexport * from \"./LinkedList\";\nexport type { TransitionProps, CSSTransitionInfo, TransitionPhase } from \"./transition\";\nexport type { TransitionMode } from \"./transitionRegistry\";\nexport * from \"./bind\";\nexport * from \"./Query\";\nexport { MotifError } from \"./diagnostics\";\nexport { motifCompiled } from \"./compilerContract\";\nexport type { MotifErrorCode } from \"./diagnostics\";\n\n\nexport enum NodeTypes {\n ELEMENT_NODE = 1,\n ATTRIBUTE_NODE = 2,\n TEXT_NODE = 3,\n CDATA_SECTION_NODE = 4,\n ENTITY_REFERENCE_NODE = 5,\n /**deprecated */\n ENTITY_NODE = 6,\n /**deprecated */\n PROCESSING_INSTRUCTION_NODE = 7,\n COMMENT_NODE = 8,\n DOCUMENT_NODE = 9,\n DOCUMENT_TYPE_NODE = 10,\n DOCUMENT_FRAGMENT_NODE = 11,\n /**deprecated */\n NOTATION_NODE = 12\n}\n","\r\nimport { LeakMonitor } from \"../common\";\r\nimport { reportError, reportWarning } from \"../common/diagnostics\";\r\nimport { getRaw, followTracking } from \"./common\";\r\n\r\nexport type EffectFn = () => void;\r\n\r\nclass Effect {\r\n deps: [object, string | symbol][] = [];\r\n active = true;\r\n running = false;\r\n scheduler?: () => void;\r\n constructor(public fn: EffectFn, private callback?: (value: unknown) => void) { }\r\n run() {\r\n let value: unknown;\r\n if (!this.active || this.running) return;\r\n cleanup(this);\r\n effectStack.push(this);\r\n this.running = true;\r\n try {\r\n value = this.fn();\r\n } finally {\r\n effectStack.pop();\r\n this.running = false;\r\n if (this.callback) {\r\n this.callback(value);\r\n }\r\n }\r\n }\r\n stop() {\r\n this.active = false;\r\n cleanup(this);\r\n }\r\n}\r\n\r\nconst depMap = new WeakMap<object, Map<string | symbol, Set<Effect>>>();\r\nconst effectStack: Effect[] = [];\r\nconst effectQueue = new Set<Effect>();\r\nlet isFlushing = false;\r\n\r\nlet leakEnabled = false;\r\nlet leakThreshold = -1;\r\nlet leakMonitor: LeakMonitor | undefined;\r\nconst leakCleanups = new WeakMap<Set<Effect>, Map<Effect, () => void>>();\r\nexport function configureReactivityLeakMonitor(opts: { enabled?: boolean; threshold?: number; name?: string } = {}) {\r\n leakEnabled = !!opts.enabled;\r\n leakThreshold = typeof opts.threshold === 'number' ? opts.threshold : (leakEnabled ? 200 : -1);\r\n leakMonitor = leakEnabled && leakThreshold > 0 ? new LeakMonitor(leakThreshold, opts.name ?? 'reactivity-core') : undefined;\r\n}\r\n\r\nexport function track(target: object, key: string | symbol) {\r\n if (!followTracking) return;\r\n const rawTarget = getRaw(target as any);\r\n const effect = effectStack[effectStack.length - 1];\r\n if (!effect || !effect.active) return;\r\n let deps = depMap.get(rawTarget);\r\n if (!deps) depMap.set(rawTarget, (deps = new Map()));\r\n let dep = deps.get(key);\r\n if (!dep) deps.set(key, (dep = new Set()));\r\n if (!dep.has(effect)) {\r\n dep.add(effect);\r\n effect.deps.push([rawTarget, key]);\r\n if (leakEnabled && leakMonitor && leakThreshold > 0) {\r\n try {\r\n const cleanup = leakMonitor.check(dep.size);\r\n if (cleanup) {\r\n let m = leakCleanups.get(dep);\r\n if (!m) { m = new Map(); leakCleanups.set(dep, m); }\r\n m.set(effect, cleanup);\r\n }\r\n } catch { }\r\n }\r\n }\r\n}\r\n\r\nexport function trigger(target: object, key: string | symbol) {\r\n const rawTarget = getRaw(target as any);\r\n const deps = depMap.get(rawTarget);\r\n if (!deps) return;\r\n const effects = deps.get(key);\r\n if (!effects) return;\r\n let queued = false;\r\n effects.forEach(effect => {\r\n if (!effect.active) return;\r\n if (effect.scheduler) {\r\n runReported(effect.scheduler);\r\n return;\r\n }\r\n effectQueue.add(effect);\r\n queued = true;\r\n });\r\n if (queued) flushEffects();\r\n}\r\n\r\nfunction runReported(fn: () => unknown) {\r\n try {\r\n fn();\r\n } catch (error) {\r\n reportError('MJX208', error);\r\n }\r\n}\r\n\r\nconst MAX_EFFECT_RUNS_PER_FLUSH = 50;\r\n\r\nfunction flushEffects() {\r\n if (isFlushing) return;\r\n isFlushing = true;\r\n Promise.resolve().then(() => {\r\n const runCounts = new Map<Effect, number>();\r\n try {\r\n while (effectQueue.size > 0) {\r\n const batch = Array.from(effectQueue);\r\n effectQueue.clear();\r\n for (const e of batch) {\r\n const runs = (runCounts.get(e) ?? 0) + 1;\r\n runCounts.set(e, runs);\r\n if (runs > MAX_EFFECT_RUNS_PER_FLUSH) {\r\n if (runs === MAX_EFFECT_RUNS_PER_FLUSH + 1) {\r\n reportWarning('MJX203', [MAX_EFFECT_RUNS_PER_FLUSH], { fn: String((e as any).fn).slice(0, 200) });\r\n }\r\n continue;\r\n }\r\n runReported(() => e.run());\r\n }\r\n }\r\n } finally {\r\n effectQueue.clear();\r\n isFlushing = false;\r\n }\r\n });\r\n}\r\n\r\nfunction cleanup(effect: Effect) {\r\n for (const [target, key] of effect.deps) {\r\n const keyMap = depMap.get(target);\r\n if (!keyMap) continue;\r\n const depSet = keyMap.get(key);\r\n if (!depSet) continue;\r\n depSet.delete(effect);\r\n try {\r\n const map = leakCleanups.get(depSet);\r\n const fn = map?.get(effect);\r\n if (fn) { try { fn(); } catch { } map!.delete(effect); }\r\n } catch { }\r\n if (depSet.size === 0) {\r\n keyMap.delete(key);\r\n }\r\n if (keyMap.size === 0) {\r\n depMap.delete(target);\r\n }\r\n }\r\n effect.deps = [];\r\n}\r\n\r\n\r\nexport function effect(fn: EffectFn, onValueChanged?: <T>(value: T) => void) {\r\n const e = new Effect(fn, onValueChanged);\r\n runReported(() => e.run());\r\n return () => e.stop();\r\n}\r\n\r\nexport interface ScheduledEffect {\r\n run(): void;\r\n stop(): void;\r\n}\r\n\r\nexport function createScheduledEffect(fn: EffectFn, scheduler: () => void): ScheduledEffect {\r\n const e = new Effect(fn);\r\n e.scheduler = scheduler;\r\n return {\r\n run: () => { runReported(() => e.run()); },\r\n stop: () => e.stop(),\r\n };\r\n}\r\n\r\nexport interface AsyncTrackingToken { effect: Effect | undefined; pushed: boolean }\r\nfunction popAsyncTracking(t: AsyncTrackingToken) {\r\n if (!t.pushed) return;\r\n t.pushed = false;\r\n const i = effectStack.lastIndexOf(t.effect!);\r\n if (i >= 0) effectStack.splice(i, 1);\r\n}\r\nexport const asyncTracking = {\r\n capture(): AsyncTrackingToken {\r\n return { effect: effectStack[effectStack.length - 1], pushed: false };\r\n },\r\n suspend<T>(t: AsyncTrackingToken, value: T): T {\r\n popAsyncTracking(t);\r\n return value;\r\n },\r\n resume<T>(t: AsyncTrackingToken, value: T): T {\r\n if (t.effect && t.effect.active && !t.pushed) {\r\n effectStack.push(t.effect);\r\n t.pushed = true;\r\n }\r\n return value;\r\n },\r\n end(t: AsyncTrackingToken): void {\r\n popAsyncTracking(t);\r\n },\r\n};\r\n\r\nconst UNTRACKED_SENTINEL = new Effect(() => { });\r\nUNTRACKED_SENTINEL.active = false;\r\nexport function untracked<T>(fn: () => T): T {\r\n effectStack.push(UNTRACKED_SENTINEL);\r\n try {\r\n return fn();\r\n } finally {\r\n effectStack.pop();\r\n }\r\n}\r\n\r\n\r\n\r\nexport function debugGetDeps(target: object): Map<string | symbol, Set<Effect>> | undefined {\r\n const rawTarget = getRaw(target as any);\r\n return depMap.get(rawTarget);\r\n}\r\nexport function debugGetDepMap(): WeakMap<object, Map<string | symbol, Set<Effect>>> {\r\n return depMap;\r\n}\r\n","\r\nimport { ComponentBase } from \"../\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { BindingFormatInfo, IBaseBinding } from \"./\";\r\n\r\n\r\nexport function isCheckedInput(el: any): boolean {\r\n if (!el || el.tagName !== 'INPUT') return false;\r\n const t = String(el.type || '').toLowerCase();\r\n return t === 'checkbox' || t === 'radio';\r\n}\r\n\r\nexport function isNumericInput(el: any): boolean {\r\n if (!el || el.tagName !== 'INPUT') return false;\r\n const t = String(el.type || '').toLowerCase();\r\n return t === 'number' || t === 'range';\r\n}\r\n\r\nexport function readModelValue(el: any): any {\r\n if (!el) return undefined;\r\n if (isCheckedInput(el)) return !!el.checked;\r\n if (isNumericInput(el)) {\r\n const raw = el.value;\r\n if (raw === '' || raw == null) return null;\r\n const n = typeof el.valueAsNumber === 'number' ? el.valueAsNumber : Number(raw);\r\n return Number.isFinite(n) ? n : null;\r\n }\r\n return el.value;\r\n}\r\n\r\nexport class Binding implements IBaseBinding {\r\n propertyName: string;\r\n dataSource: any;\r\n dataMember?: string;\r\n formatString?: string;\r\n converter?: (value: any) => any;\r\n converterBack?: (value: any) => any;\r\n setter?: (value: any) => void;\r\n formatInfo?: BindingFormatInfo;\r\n updateMode: 'onPropertyChanged' | 'onValidation' | 'never' = 'onPropertyChanged';\r\n\r\n private _isActive: boolean = false;\r\n private _component: ComponentBase;\r\n private _effectCleanup?: () => void;\r\n private _memberPath: string[] | null = null;\r\n private _memberPathSource?: string;\r\n\r\n constructor(\r\n component: ComponentBase,\r\n propertyName: string,\r\n dataSource: any,\r\n dataMember?: string,\r\n formatString?: string,\r\n formatInfo?: BindingFormatInfo\r\n ) {\r\n this._component = component;\r\n this.propertyName = propertyName;\r\n this.dataSource = dataSource;\r\n this.dataMember = dataMember;\r\n this.formatString = formatString;\r\n this.formatInfo = formatInfo;\r\n this._memberPath = dataMember ? dataMember.split('.') : null;\r\n this._memberPathSource = dataMember;\r\n }\r\n\r\n activate(): void {\r\n if (this._isActive) return;\r\n\r\n this._isActive = true;\r\n this._setupBinding();\r\n }\r\n\r\n deactivate(): void {\r\n\r\n if (!this._isActive) return;\r\n\r\n this._isActive = false;\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n }\r\n\r\n reActivate(): void {\r\n\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n this._setupBinding();\r\n }\r\n\r\n private functional(value: any) {\r\n if (typeof value === 'function') {\r\n value = this.functional(value());\r\n }\r\n return value;\r\n }\r\n private _setupBinding(): void {\r\n const getValue = () => {\r\n\r\n let value: any = this.dataSource;\r\n if (this.dataMember) {\r\n if (this._memberPathSource !== this.dataMember) {\r\n this._memberPath = this.dataMember.split('.');\r\n this._memberPathSource = this.dataMember;\r\n }\r\n for (const prop of this._memberPath!) {\r\n if (value != null) {\r\n value = value[prop];\r\n }\r\n }\r\n }\r\n value = this.functional(value);\r\n if (this.formatString && value != null) {\r\n value = this._applyFormat(value, this.formatString);\r\n }\r\n\r\n if (this.converter) {\r\n value = this.converter(value);\r\n }\r\n\r\n return value;\r\n };\r\n\r\n const updateTarget = () => {\r\n const value = getValue();\r\n this._updateComponentProperty(value);\r\n return value;\r\n };\r\n\r\n this._effectCleanup = effect(() => {\r\n return updateTarget();\r\n });\r\n\r\n }\r\n\r\n private _updateComponentProperty(value: any): void {\r\n\r\n switch (this.propertyName.toLowerCase()) {\r\n case 'wait': {\r\n const comp = this._component;\r\n if (!comp || comp.isDisposed) return;\r\n const isWaiting = !!value;\r\n if (!comp.isBuilt) {\r\n comp.isWait = isWaiting;\r\n } else {\r\n if (isWaiting) {\r\n comp.isWait = true;\r\n } else {\r\n comp.isWait = false;\r\n }\r\n }\r\n break;\r\n }\r\n case 'display': {\r\n const comp = this._component;\r\n if (!comp || comp.isDisposed) return;\r\n const isWaiting = value;\r\n if (!comp.isBuilt) {\r\n comp.isWait = !isWaiting;\r\n } else {\r\n if (isWaiting) {\r\n comp.isWait = false;\r\n } else {\r\n comp.isWait = true;\r\n }\r\n }\r\n break;\r\n }\r\n case 'text':\r\n case 'textcontent':\r\n this._component.setText(value);\r\n break;\r\n case 'innerhtml':\r\n case 'html':\r\n this._component.element.innerHTML = (value);\r\n this._component.motif.trigger('htmlChanged', { value: value });\r\n break;\r\n case 'visible':\r\n case 'visibility':\r\n if (value) {\r\n this._component.motif.show();\r\n } else {\r\n this._component.motif.hide();\r\n }\r\n break;\r\n case 'style':\r\n if (typeof value === 'object') {\r\n this._component.style(value);\r\n }\r\n break;\r\n case 'model': {\r\n\r\n const el: any = this._component.element;\r\n if (!el) break;\r\n if (isCheckedInput(el)) {\r\n el.checked = !!value;\r\n } else {\r\n el.value = value == null ? '' : value;\r\n }\r\n break;\r\n }\r\n case 'when':\r\n\r\n break;\r\n default:\r\n if (this._component.element && this.propertyName in this._component.element) {\r\n (this._component.element as any)[this.propertyName] = value;\r\n } else if (this.propertyName in this._component) {\r\n (this._component as any)[this.propertyName] = value;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private _applyFormat(value: any, format: string): string {\r\n const locale = this.formatInfo?.locale;\r\n const currency = this.formatInfo?.currency;\r\n if (typeof value === 'number') {\r\n if (format.includes('C') || format.includes('c')) {\r\n if (currency) {\r\n return new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currency\r\n }).format(value);\r\n }\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2\r\n }).format(value);\r\n }\r\n if (format.includes('P') || format.includes('p')) {\r\n return new Intl.NumberFormat(locale, {\r\n style: 'percent'\r\n }).format(value);\r\n }\r\n if (format.includes('N') || format.includes('n')) {\r\n const decimals = parseInt(format.match(/\\d+/)?.[0] || '2');\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: decimals,\r\n maximumFractionDigits: decimals\r\n }).format(value);\r\n }\r\n }\r\n\r\n if (value instanceof Date) {\r\n if (format.includes('d')) {\r\n return value.toLocaleDateString(locale);\r\n }\r\n if (format.includes('t')) {\r\n return value.toLocaleTimeString(locale);\r\n }\r\n }\r\n\r\n return value?.toString() || '';\r\n }\r\n}","import { Flags } from \"../store/common\";\r\n\r\nconst RAW_KEY = Flags.RAW;\r\n\r\nfunction isPrototypeObject(o: any): boolean {\r\n return Object.prototype.hasOwnProperty.call(o, 'constructor') && typeof o.constructor === 'function' && o.constructor.prototype === o;\r\n}\r\n\r\nfunction overridesBelow(instance: any, proto: any, name: string): boolean {\r\n let p = Object.getPrototypeOf(instance);\r\n while (p && p !== proto) {\r\n if (Object.prototype.hasOwnProperty.call(p, name)) return true;\r\n p = Object.getPrototypeOf(p);\r\n }\r\n return false;\r\n}\r\n\r\nexport function lazyBindMethods(proto: any, names: readonly string[]): void {\r\n for (const name of names) {\r\n let fn = proto[name];\r\n if (typeof fn !== 'function') continue;\r\n Object.defineProperty(proto, name, {\r\n configurable: true,\r\n enumerable: false,\r\n get() {\r\n if (this === proto || isPrototypeObject(this)) return fn;\r\n const target = this[RAW_KEY] ?? this;\r\n const bound = fn.bind(target);\r\n if (!overridesBelow(target, proto, name)) {\r\n try {\r\n Object.defineProperty(target, name, { value: bound, writable: true, configurable: true, enumerable: true });\r\n } catch { }\r\n }\r\n return bound;\r\n },\r\n set(value: unknown) {\r\n if (this === proto && typeof value === 'function') { fn = value; return; }\r\n Object.defineProperty(this, name, { value, writable: true, configurable: true, enumerable: true });\r\n },\r\n });\r\n }\r\n}\r\n","\r\n\r\nimport { Component, ComponentBase, Frame, motifFragment, toDisposable } from \"../\";\r\nimport { dom } from \"../\";\r\nimport { effect, untracked } from \"../\";\r\nimport { Binding, BindingFormatInfo, IBaseBinding, IBindingCollection, ListBinding, ListBindingOptions, readModelValue } from \"./\";\r\nimport { reportError } from \"../common/diagnostics\";\r\nimport { lazyBindMethods } from \"../common/lazyBind\";\r\n\r\nfunction resolveValue(value: any): any {\r\n return typeof value === 'function' ? resolveValue(value()) : value;\r\n}\r\n\r\nfunction isWritablePathKey(target: object, key: string): boolean {\r\n if (key === '__proto__') return false;\r\n if (key === 'constructor' || key === 'prototype') return Object.prototype.hasOwnProperty.call(target, key);\r\n return true;\r\n}\r\n\r\nexport class BindingCollection implements IBindingCollection {\r\n private _items: IBaseBinding[] = [];\r\n private _component: ComponentBase;\r\n private _branchScope: Array<() => void> | null = null;\r\n\r\n constructor(component: ComponentBase) {\r\n this._component = component;\r\n }\r\n private _own(stop: () => void) {\r\n if (this._branchScope) {\r\n this._branchScope.push(stop);\r\n return;\r\n }\r\n this._component.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n when(computeFn: () => any, renderFn: (isTrue: boolean) => any) {\r\n\r\n var frame = new Frame();\r\n this._component.controls.add(frame);\r\n let shown = false;\r\n let last: any;\r\n const stop = effect(computeFn, (value) => {\r\n if (shown && (Object.is(last, value) || (!last && !value))) return;\r\n shown = true;\r\n last = value;\r\n untracked(() => {\r\n if (value) {\r\n frame.navigate(renderFn(value as any))\r\n } else {\r\n frame.navigate(motifFragment())\r\n }\r\n });\r\n });\r\n this._own(stop);\r\n\r\n return null as any;\r\n\r\n }\r\n\r\n get items(): IBaseBinding[] {\r\n return [...this._items];\r\n }\r\n\r\n text(cb: any) {\r\n this.add(\"textContent\", cb);\r\n };\r\n\r\n\r\n value(fn: () => any) {\r\n this.add(\"value\", fn);\r\n };\r\n\r\n add(propertyName: string, dataSource: any): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n add(binding: IBaseBinding): IBaseBinding;\r\n add(...args: any[]): IBaseBinding {\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object' && 'propertyName' in args[0]) {\r\n\r\n binding = args[0];\r\n } else {\r\n\r\n const [propertyName, dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n\r\n this._items.push(binding);\r\n\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n wait(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n display(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', () => !resolveValue(predicate()));\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n html(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'innerHTML', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n method(cb: () => any) {\r\n const host = this._component;\r\n let text: ComponentBase | null = null;\r\n let frame: Frame | null = null;\r\n const place = (next: ComponentBase, previous: ComponentBase | null) => {\r\n if (!previous) {\r\n host.controls.add(next);\r\n return;\r\n }\r\n host.controls.insert(host.controls.items.indexOf(previous), next);\r\n host.controls.remove(previous);\r\n };\r\n const stop = effect(cb, (result) => {\r\n if (host.isDisposed) return;\r\n const isText = typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean' || typeof result === 'bigint';\r\n if (isText || (text && result == null)) {\r\n if (text) {\r\n text.setText(result as any);\r\n return;\r\n }\r\n text = new Component(dom.createTextNode(result as any));\r\n place(text, frame);\r\n frame = null;\r\n return;\r\n }\r\n if (!frame) {\r\n frame = new Frame();\r\n place(frame, text);\r\n text = null;\r\n }\r\n frame.navigate(result == null ? motifFragment() : result as any);\r\n });\r\n host.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n ternary(conditionFn: () => any, trueFn: (frame: Frame) => any, falseFn: (frame: Frame) => any) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n this._ternaryCallTop(\r\n conditionFn,\r\n () => { trueFn(frame); },\r\n () => { falseFn(frame); }\r\n );\r\n return null as any;\r\n }\r\n\r\n private _ternarySchedule(condFn: () => any, onTrue: () => void, onFalse: () => void, defer: (run: () => void) => void) {\r\n let first = true;\r\n let last: any;\r\n let stopped = false;\r\n let inner: Array<() => void> = [];\r\n const stopInner = () => {\r\n const list = inner;\r\n inner = [];\r\n for (const stop of list) {\r\n try { stop(); } catch { }\r\n }\r\n };\r\n const stopEffect = effect(condFn, (condition) => {\r\n if (!first && Object.is(last, condition)) return;\r\n last = condition;\r\n const run = () => {\r\n stopInner();\r\n const outer = this._branchScope;\r\n this._branchScope = inner;\r\n try {\r\n if (condition) { onTrue(); } else { onFalse(); }\r\n } finally {\r\n this._branchScope = outer;\r\n }\r\n };\r\n if (first) {\r\n first = false;\r\n untracked(run);\r\n return;\r\n }\r\n defer(() => { if (!stopped && !this._component.isDisposed) run(); });\r\n });\r\n this._own(() => {\r\n stopped = true;\r\n stopEffect();\r\n stopInner();\r\n });\r\n }\r\n private ternaryCall(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => queueMicrotask(run));\r\n }\r\n private _ternaryCallTop(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => setTimeout(run, 0));\r\n }\r\n\r\n watch(cb: () => any) {\r\n const ef = effect(() => {\r\n cb();\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n }\r\n remove(binding: IBaseBinding): void {\r\n const index = this._items.indexOf(binding);\r\n if (index > -1) {\r\n this._items.splice(index, 1);\r\n binding.deactivate();\r\n }\r\n }\r\n\r\n clear(): void {\r\n this._items.forEach(binding => (binding as Binding).deactivate());\r\n this._items = [];\r\n }\r\n\r\n activateAll(): void {\r\n this._items.forEach(binding => {\r\n binding.activate();\r\n });\r\n }\r\n\r\n model(dataSource: any): IBaseBinding;\r\n model(dataSource: any, dataMember: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n model(getter: () => any, setter: (value: any) => void): IBaseBinding;\r\n model(binding: IBaseBinding): IBaseBinding;\r\n model(...args: any[]): IBaseBinding {\r\n\r\n var tn = '';\r\n if (this._component.element) {\r\n tn = (this._component.element as HTMLElement).tagName;\r\n }\r\n var propertyName = 'value';\r\n switch (tn.toLowerCase()) {\r\n case 'input':\r\n\r\n propertyName = 'model';\r\n break;\r\n case 'select':\r\n propertyName = 'value';\r\n break;\r\n case 'textarea':\r\n propertyName = 'value';\r\n break;\r\n case 'img':\r\n propertyName = 'src';\r\n break;\r\n case 'audio':\r\n propertyName = 'src';\r\n break;\r\n case 'video':\r\n propertyName = 'src';\r\n break;\r\n default:\r\n\r\n }\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object') {\r\n binding = args[0];\r\n } else if (typeof args[0] === 'function' && typeof args[1] === 'function') {\r\n binding = new Binding(this._component, propertyName, args[0]);\r\n binding.setter = args[1];\r\n } else {\r\n const [dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n const lowerTag = tn.toLowerCase();\r\n if (lowerTag === 'input' || lowerTag === 'select' || lowerTag === 'textarea') {\r\n const writeBack = () => {\r\n try {\r\n const el: any = this._component.element;\r\n if (!el) return;\r\n\r\n let value: any = readModelValue(el);\r\n const b: any = binding;\r\n if (typeof b.converterBack === 'function') {\r\n value = b.converterBack(value);\r\n }\r\n if (typeof b.setter === 'function') {\r\n b.setter(value);\r\n return;\r\n }\r\n const member: string | undefined = b.dataMember;\r\n const source = b.dataSource;\r\n if (member && source != null) {\r\n\r\n const path = member.split('.');\r\n let target: any = source;\r\n for (let i = 0; i < path.length && target != null; i++) {\r\n const key = path[i];\r\n if (!isWritablePathKey(target, key)) return;\r\n if (i === path.length - 1) {\r\n target[key] = value;\r\n } else {\r\n target = target[key];\r\n }\r\n }\r\n } else if (source != null && typeof source === 'object' && 'value' in source) {\r\n\r\n source.value = value;\r\n }\r\n } catch { /* ignore */ }\r\n };\r\n\r\n this._component.motif.on('input' as any, writeBack as any);\r\n this._component.motif.on('change' as any, writeBack as any);\r\n }\r\n\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n\r\n deactivateAll(): void {\r\n this._items.forEach(binding => binding.deactivate());\r\n this._items = [];\r\n }\r\n\r\n reActivateAll(): void {\r\n for (const binding of [...this._items]) {\r\n if (typeof binding.reActivate !== 'function') continue;\r\n try {\r\n binding.reActivate();\r\n } catch (error) {\r\n reportError('MJX208', error);\r\n }\r\n }\r\n }\r\n\r\n switchCase(\r\n discriminatorFn: () => any,\r\n cases: Record<string | number, (frame: Frame) => any>,\r\n defaultFn?: (frame: Frame) => any\r\n ) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n var currentValue: any;\r\n var defaultRunned = false;\r\n const ef = effect(discriminatorFn, (value) => {\r\n if (currentValue == value) return;\r\n currentValue = value;\r\n const caseKey = String(value);\r\n if (Object.prototype.hasOwnProperty.call(cases, caseKey)) {\r\n cases[caseKey](frame);\r\n defaultRunned = false;\r\n } else if (defaultFn) {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n defaultFn(frame);\r\n } else {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n frame.navigate(motifFragment());\r\n }\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n\r\n return null as any;\r\n }\r\n}\r\n\r\nlazyBindMethods(BindingCollection.prototype, [\r\n 'add', 'remove', 'clear', 'activateAll', 'deactivateAll', 'reActivateAll',\r\n 'when', 'text', 'value', 'list', 'loop', 'method', 'watch', 'display', 'wait',\r\n 'ternaryCall', '_ternaryCallTop'\r\n]);","import { errorHandler } from \"../common/ErrorHandler\";\nimport { IDisposable } from \"../disposable/IDisposable\";\nimport { DisposableStore } from \"../disposable/DisposableStore\";\nimport { Event } from \"./Event\";\n\ninterface Subscription<T> {\n handler: (value: T) => unknown;\n active: boolean;\n}\n\ninterface Delivery<T> {\n targets: Subscription<T>[];\n value: T;\n next: number;\n}\n\nexport class Emitter<T> {\n\n private _subscriptions: Subscription<T>[] = [];\n private _delivery: Delivery<T> | undefined;\n private _subscribe: Event<T> | undefined;\n private _disposed = false;\n\n get event(): Event<T> {\n if (!this._subscribe) {\n this._subscribe = (listener, thisArgs, disposables) => {\n if (this._disposed) {\n return { dispose() { } };\n }\n const subscription: Subscription<T> = {\n handler: thisArgs ? listener.bind(thisArgs) : listener,\n active: true\n };\n this._writable().push(subscription);\n const handle: IDisposable = { dispose: () => this._unsubscribe(subscription) };\n if (disposables instanceof DisposableStore) {\n disposables.add(handle);\n } else if (Array.isArray(disposables)) {\n disposables.push(handle);\n }\n return handle;\n };\n }\n return this._subscribe;\n }\n\n fire(value: T): void {\n this._resume();\n if (this._subscriptions.length === 0) {\n return;\n }\n this._delivery = { targets: this._subscriptions, value, next: 0 };\n this._resume();\n }\n\n dispose(): void {\n if (this._disposed) {\n return;\n }\n this._disposed = true;\n for (const subscription of this._subscriptions) {\n subscription.active = false;\n }\n this._subscriptions = [];\n this._delivery = undefined;\n }\n\n private _writable(): Subscription<T>[] {\n if (this._delivery && this._delivery.targets === this._subscriptions) {\n this._subscriptions = this._subscriptions.slice();\n }\n return this._subscriptions;\n }\n\n private _unsubscribe(subscription: Subscription<T>): void {\n if (!subscription.active) {\n return;\n }\n subscription.active = false;\n const list = this._writable();\n const index = list.indexOf(subscription);\n if (index !== -1) {\n list.splice(index, 1);\n }\n }\n\n private _resume(): void {\n const delivery = this._delivery;\n if (!delivery) {\n return;\n }\n while (delivery.next < delivery.targets.length) {\n const target = delivery.targets[delivery.next++];\n if (!target.active) {\n continue;\n }\n try {\n target.handler(delivery.value);\n } catch (error) {\n errorHandler.onUnexpectedError(error);\n }\n }\n if (this._delivery === delivery) {\n this._delivery = undefined;\n }\n }\n}\n","import { Emitter, Event as DelegateEvent } from \"../delegate\";\r\nimport { disposableCore, IDisposable } from \"../disposable\";\r\nimport { ComponentBase } from \"../\";\r\nimport { EventArgs } from \"./types\";\r\nimport { callReported } from \"../common/diagnostics\";\r\nimport { lazyBindMethods } from \"../common/lazyBind\";\r\n\r\nexport class ComponentEmiter {\r\n\r\n private _emitters?: Map<string, Emitter<EventArgs>>;\r\n private _sourceDisposables?: Map<string, Set<IDisposable>>;\r\n private _listenerDisposables?: Map<string, Map<Function, IDisposable[]>>;\r\n\r\n constructor(private component: ComponentBase) {\r\n }\r\n\r\n public hasListeners(eventName: string): boolean {\r\n return this._emitters !== undefined && this._emitters.has(eventName);\r\n }\r\n\r\n public fire(eventName: string, args: EventArgs) {\r\n\r\n try {\r\n const e = this._emitters?.get(eventName.toLowerCase());\r\n if (e) {\r\n e.fire(args);\r\n }\r\n } catch { }\r\n }\r\n\r\n public on(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n\r\n try {\r\n this.createEvent(event, cb);\r\n } catch {\r\n }\r\n }\r\n public off(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const lower = String(event).toLowerCase();\r\n const map = this._listenerDisposables?.get(lower);\r\n if (!map) return this;\r\n const list = map.get(cb);\r\n map.delete(cb);\r\n list?.forEach(d => { try { d.dispose(); } catch { } });\r\n return this;\r\n }\r\n private getOrCreateEmitter(name: string): Emitter<EventArgs> {\r\n const emitters = this._emitters ??= new Map();\r\n let e = emitters.get(name);\r\n if (!e) {\r\n e = new Emitter<EventArgs>();\r\n emitters.set(name, e);\r\n }\r\n return e;\r\n }\r\n\r\n private createEvent(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const full = String(event);\r\n const lowerFull = full.toLowerCase();\r\n const hook = lowerFull.startsWith('on') ? 'x:' + lowerFull.slice(2) : lowerFull;\r\n const invoke = (e: EventArgs) => {\r\n let res: any;\r\n callReported(() => {\r\n res = (cb as any).length <= 1 ? (cb as any)(e as any) : cb(this.component, e as any);\r\n return res;\r\n }, 'MJX122', hook);\r\n return res;\r\n };\r\n\r\n const emitter = this.getOrCreateEmitter(lowerFull);\r\n const disp = emitter.event((e) => invoke(e));\r\n\r\n const listeners = this._listenerDisposables ??= new Map();\r\n let map = listeners.get(lowerFull);\r\n if (!map) { map = new Map(); listeners.set(lowerFull, map); }\r\n const list = map.get(cb);\r\n if (list) { list.push(disp); } else { map.set(cb, [disp]); }\r\n return this;\r\n }\r\n\r\n public addSource(event: string, source: Emitter<EventArgs> | DelegateEvent<EventArgs>) {\r\n const lower = String(event).toLowerCase();\r\n const target = this.getOrCreateEmitter(lower);\r\n const forward = (ev: DelegateEvent<EventArgs>) => ev(e => target.fire(e));\r\n let disp: IDisposable | undefined;\r\n try {\r\n if (source instanceof Emitter) {\r\n disp = forward(source.event);\r\n } else {\r\n disp = forward(source);\r\n }\r\n } catch { }\r\n if (disp) {\r\n const sources = this._sourceDisposables ??= new Map();\r\n let set = sources.get(lower);\r\n if (!set) { set = new Set(); sources.set(lower, set); }\r\n set.add(disp);\r\n this.component.motif.register(disposableCore.toDisposable(() => {\r\n try { disp?.dispose(); } catch { }\r\n try { set?.delete(disp!); } catch { }\r\n }));\r\n }\r\n return this;\r\n }\r\n\r\n public clear(event?: string) {\r\n if (event) {\r\n const lower = event.toLowerCase();\r\n const srcs = this._sourceDisposables?.get(lower);\r\n srcs?.forEach(d => { try { d.dispose(); } catch { } });\r\n this._sourceDisposables?.delete(lower);\r\n const agg = this._emitters?.get(lower);\r\n try { agg?.dispose(); } catch { }\r\n this._emitters?.delete(lower);\r\n this._listenerDisposables?.delete(lower);\r\n } else if (this._emitters) {\r\n for (const key of Array.from(this._emitters.keys())) { this.clear(key); }\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nlazyBindMethods(ComponentEmiter.prototype, ['fire', 'on', 'off', 'createEvent', 'getOrCreateEmitter', 'addSource', 'clear']);","import { IAttribute } from \"../\";\r\nimport { ComponentBase } from \"../\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { Binding, IBaseBinding } from \"../bindings\";\r\nimport { isComponentLike } from \"./componentBase\";\r\n\r\nexport type ElementTypes = Node | Element | HTMLElement | Text | DocumentFragment | Comment | HTMLDivElement;\r\n\r\nconst METHOD_ATTRS = new Set<string>([\r\n 'focus', 'blur', 'click', 'pause', 'submit', 'reset',\r\n 'scrollTo', 'scrollBy', 'select', 'scrollIntoView',\r\n 'requestFullscreen', 'exitFullscreen',\r\n 'requestPointerLock', 'exitPointerLock',\r\n 'play', 'requestPictureInPicture', 'exitPictureInPicture',\r\n 'show', 'showModal', 'close', 'showPopover', 'hidePopover', 'togglePopover',\r\n 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load',\r\n 'setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek'\r\n]);\r\n\r\nconst OPEN_METHODS: Record<string, string> = { show: 'close', showModal: 'close', showPopover: 'hidePopover' };\r\nconst WHEN_TRUTHY_METHODS = new Set<string>(['close', 'hidePopover', 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load']);\r\nconst ARGUMENT_METHODS = new Set<string>(['setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek']);\r\n\r\nconst PROPERTY_FIRST = new Set<string>(['checked', 'selected', 'muted', 'indeterminate', 'srcObject']);\r\n\r\nexport class controlAttribute<ElementType extends ElementTypes> implements IAttribute<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase<ElementType, any>;\r\n private _attrMapStore?: Map<string | symbol, any>;\r\n private _watchersStore?: Map<string | symbol, { stop: () => void, binding?: IBaseBinding }>;\r\n constructor(parent: ComponentBase<ElementType, any>) {\r\n this._parent = parent;\r\n }\r\n private get _attrMap(): Map<string | symbol, any> { return this._attrMapStore ??= new Map(); }\r\n private get _watchers(): Map<string | symbol, { stop: () => void, binding?: IBaseBinding }> { return this._watchersStore ??= new Map(); }\r\n\r\n /** @deprecated Tek kaynak `_attrMap`; geriye dönük okuma için türetilmiş görünüm. */\r\n get attributes(): { name: string, value: any }[] {\r\n return Array.from(this._attrMap.entries(), ([name, value]) => ({ name: String(name), value }));\r\n }\r\n add(attribute: object | string): ComponentBase<ElementType, any> {\r\n if (attribute !== null && typeof attribute === 'object' && !Array.isArray(attribute)) {\r\n const bag = attribute as Record<string | symbol, any>;\r\n Reflect.ownKeys(bag).forEach(key => {\r\n this.parse(bag[key], key);\r\n });\r\n }\r\n return this._parent;\r\n\r\n };\r\n remove(key: string): ComponentBase<ElementType, any> {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n this._attrMap.delete(key);\r\n const el = this._getElement();\r\n if (el) {\r\n try { el.removeAttribute(key); } catch { }\r\n }\r\n return this._parent;\r\n };\r\n has(key: string): boolean {\r\n\r\n if (this._parent.element instanceof HTMLElement ||\r\n this._parent.element instanceof Element) {\r\n return this._parent.element.hasAttribute(key)\r\n }\r\n return false;\r\n };\r\n get(key: string): string | null {\r\n const el = this._getElement();\r\n if (el) {\r\n const v = el.getAttribute(key);\r\n if (v != null) return v;\r\n }\r\n const val = this._attrMap.get(key);\r\n return val == null ? null : String(val);\r\n };\r\n\r\n parse(values: any, key: any) {\r\n\r\n if (typeof values === 'function') {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n const run = () => effect(() => {\r\n const v = values();\r\n this._applyValue(key, v);\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__attr:${String(key)}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate() { stop(); },\r\n reActivate() {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n this._watchers.set(key, { stop, binding });\r\n } else {\r\n this._applyValue(key, values);\r\n }\r\n }\r\n\r\n private _applyValue(key: string | symbol, raw: any) {\r\n if (!key) return;\r\n const el = this._getElement();\r\n\r\n try {\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n }\r\n }\r\n } catch {\r\n }\r\n\r\n if (el && typeof key === 'string' && METHOD_ATTRS.has(key)) {\r\n const k = key as string;\r\n const method = (el as any)[k];\r\n if (typeof method === 'function') {\r\n const invoke = (fn: Function, arg?: any) => {\r\n try {\r\n if (Array.isArray(arg)) {\r\n fn.apply(el, arg);\r\n } else if (arg === undefined) {\r\n fn.call(el);\r\n } else {\r\n fn.call(el, arg);\r\n }\r\n } catch { }\r\n };\r\n const schedule = (fn: () => void) => { try { queueMicrotask(fn); } catch { try { setTimeout(fn, 0); } catch { } } };\r\n const cacheValue = () => {\r\n this._attrMap.set(key, raw);\r\n };\r\n\r\n if (k === 'focus') {\r\n const action = () => {\r\n if (raw === false) {\r\n const blur = (el as any).blur; if (typeof blur === 'function') invoke(blur);\r\n } else if (raw === true) {\r\n invoke(method);\r\n } else if (typeof raw === 'object' && raw != null && raw !== true) {\r\n invoke(method, raw);\r\n } else if (Array.isArray(raw)) {\r\n invoke(method, raw);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'blur' || k === 'click' || k === 'pause' || k === 'submit' || k === 'reset') {\r\n const action = () => { if (raw) invoke(method); };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'scrollTo' || k === 'scrollBy') {\r\n const action = () => {\r\n if (Array.isArray(raw) || (raw && typeof raw === 'object')) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'select') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n const inp: any = el as any;\r\n if (typeof inp.setSelectionRange === 'function') {\r\n try { inp.setSelectionRange(0, 0); } catch { }\r\n }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'scrollIntoView') {\r\n const action = () => {\r\n if (raw === true || raw == null) {\r\n invoke(method);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'requestFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n\r\n try {\r\n const d: any = document;\r\n if (d && d.fullscreenElement === el && typeof d.exitFullscreen === 'function') {\r\n d.exitFullscreen();\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitFullscreen === 'function') d.exitFullscreen();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'play') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n } else {\r\n const pause = (el as any).pause; if (typeof pause === 'function') invoke(pause);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'exitPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document as any;\r\n if (d && typeof d.exitPictureInPicture === 'function') {\r\n const p = d.exitPictureInPicture(); if (p && typeof p.then === 'function') p.catch(() => { });\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k in OPEN_METHODS) {\r\n const action = () => {\r\n if (raw === false) {\r\n const other = (el as any)[OPEN_METHODS[k]]; if (typeof other === 'function') invoke(other);\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'togglePopover') {\r\n const action = () => {\r\n if (typeof raw === 'boolean') {\r\n try { method.call(el, raw); } catch { }\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (WHEN_TRUTHY_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw === true) {\r\n invoke(method);\r\n } else if (raw) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (ARGUMENT_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw !== undefined && raw !== null && raw !== false) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n cacheValue();\r\n return;\r\n }\r\n }\r\n\r\n if (typeof key === 'string' && PROPERTY_FIRST.has(key)) {\r\n const target = (this._parent.element as any) ?? el;\r\n if (target) {\r\n try {\r\n if (key === 'srcObject') {\r\n target.srcObject = raw ?? null;\r\n } else {\r\n target[key] = !!raw;\r\n }\r\n } catch { }\r\n }\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n } else {\r\n this._attrMap.set(key, raw);\r\n }\r\n return;\r\n }\r\n\r\n if (typeof raw === 'boolean' && typeof key === 'string' && (key.startsWith('aria-') || key.startsWith('data-'))) {\r\n if (el) { try { (el as Element).setAttribute(key, String(raw)); } catch { } }\r\n this._attrMap.set(key, raw);\r\n return;\r\n }\r\n\r\n const isUnset = raw === undefined || raw === null || raw === false;\r\n const isBool = typeof raw === 'boolean';\r\n\r\n if (isUnset) {\r\n if (el) { try { (el as Element).removeAttribute(String(key)); } catch { } }\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n\r\n if (key === 'value') {\r\n try {\r\n const input = (this._parent.element as any) as HTMLInputElement;\r\n const next = String(raw);\r\n if (input.value !== next) { input.value = next; }\r\n } catch { }\r\n } else if (key === 'textContent' || key === 'innerText' || key === 'innerHTML') {\r\n if (isComponentLike(raw)) { this._parent.setText(raw as any); return; }\r\n try { (this._parent.element as any)[key as any] = raw; } catch { }\r\n } else {\r\n if (el) {\r\n try {\r\n if (isBool && raw === true) {\r\n (el as Element).setAttribute(String(key), '');\r\n } else {\r\n (el as Element).setAttribute(String(key), raw);\r\n }\r\n } catch { }\r\n }\r\n }\r\n\r\n this._attrMap.set(key, raw);\r\n }\r\n\r\n private _getElement(): Element | null {\r\n const el = this._parent?.element as unknown;\r\n if (el instanceof HTMLElement || el instanceof Element) return el as Element;\r\n return null;\r\n }\r\n\r\n public hasMethodState(key: string): boolean {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n return !!this.getMethodState(key);\r\n }\r\n\r\n public getMethodState(key: string): any {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n const k = String(key);\r\n switch (k) {\r\n case 'focus':\r\n case 'blur':\r\n try { return (document && (document as any).activeElement) === el; } catch { return false; }\r\n case 'select': {\r\n const inp: any = el as any;\r\n if (typeof inp.selectionStart === 'number' && typeof inp.selectionEnd === 'number') {\r\n try { return (inp.selectionEnd - inp.selectionStart) > 0; } catch { return false; }\r\n }\r\n return false;\r\n }\r\n case 'scrollIntoView':\r\n return false;\r\n case 'click':\r\n return false;\r\n default:\r\n return false;\r\n }\r\n }\r\n}","import { IClass } from \"../\";\r\nimport { ComponentBase } from \"./\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { IBaseBinding } from \"../bindings\";\r\n\r\n\r\n\r\nexport class controlClass<ElementType extends Element | HTMLElement | Text | DocumentFragment | Comment> implements IClass<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase;\r\n constructor(parent: ComponentBase) {\r\n this._parent = parent;\r\n }\r\n private _countsStore?: Map<string, number>;\r\n private _staticSetStore?: Set<string>;\r\n private _watchersStore?: Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }>;\r\n private _watcherSeq = 0;\r\n private get _counts(): Map<string, number> { return this._countsStore ??= new Map(); }\r\n private get _staticSet(): Set<string> { return this._staticSetStore ??= new Set(); }\r\n private get _watchers(): Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }> { return this._watchersStore ??= new Map(); }\r\n\r\n add(...values: (string | any[] | {} | Function)[]): ComponentBase {\r\n for (const value of values) {\r\n if (typeof value === 'function') {\r\n this._addReactive(value);\r\n } else if (Array.isArray(value)) {\r\n this._addStaticFromArray(value);\r\n } else if (value && typeof value === 'object') {\r\n this._addStaticFromObject(value as Record<string, any>);\r\n } else {\r\n var valueStr = String(value ?? '').trim();\r\n if (valueStr.split(' ').length > 1) {\r\n this._addStaticFromArray(valueStr.split(' '));\r\n } else {\r\n this._addStaticFromString(valueStr);\r\n }\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n remove(classNames: string | string[]): ComponentBase {\r\n const el = this._getElement();\r\n if (Array.isArray(classNames)) {\r\n const prev = new Set(this._staticSet);\r\n for (const cn of classNames) {\r\n for (const cls of this._splitClasses(String(cn))) {\r\n this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n } else {\r\n if (classNames === '**') {\r\n for (const [id, w] of Array.from(this._watchers.entries())) {\r\n const prev = new Set(w.set);\r\n this._applySourceDiff(id, prev, new Set(), el);\r\n try { w.binding && this._parent.bindings.remove(w.binding); } catch { }\r\n try { w.stop(); } catch { }\r\n this._watchers.delete(id);\r\n }\r\n const prev = new Set(this._staticSet);\r\n this._staticSet.clear();\r\n this._applySourceDiff('static', prev, new Set(), el);\r\n if (el) {\r\n try { el.removeAttribute('class'); } catch { /* ignore */ }\r\n }\r\n this._counts.clear();\r\n } else {\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(String(classNames))) {\r\n this._staticSet.delete(cls);\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n has(className: string): boolean {\r\n const el = this._getElement();\r\n const name = String(className ?? '').trim();\r\n if (!name) return false;\r\n return !!(el && el.classList.contains(name));\r\n }\r\n\r\n private _getElement(): (Element & { classList: DOMTokenList, className: string }) | null {\r\n const el: unknown = this._parent?.element;\r\n if (el instanceof Element) return el as any;\r\n return null;\r\n }\r\n\r\n private _splitClasses(input: string): string[] {\r\n return (input || '')\r\n .split(/\\s+/)\r\n .map(s => s.trim())\r\n .filter(s => s.length > 0);\r\n }\r\n\r\n private _normalizeToSet(values: any, key?: any): Set<string> {\r\n const result = new Set<string>();\r\n if (values == null) return result;\r\n if (typeof values === 'string') {\r\n for (const cls of this._splitClasses(values)) result.add(cls);\r\n } else if (Array.isArray(values)) {\r\n for (const item of values) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) result.add(cls);\r\n } else if (Array.isArray(item)) {\r\n for (const cls of this._normalizeToSet(item)) result.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof item === 'boolean') {\r\n if (key && item) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'object') {\r\n const obj = values as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'boolean') {\r\n if (key && values) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(values))) result.add(cls);\r\n }\r\n return result;\r\n }\r\n\r\n private _applySourceDiff(sourceId: string, prev: Set<string>, next: Set<string>, el: Element | null) {\r\n\r\n for (const cls of prev) {\r\n if (!next.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount - 1;\r\n if (now <= 0) {\r\n this._counts.delete(cls);\r\n if (el) { try { (el as any).classList.remove(cls); } catch { } }\r\n } else {\r\n this._counts.set(cls, now);\r\n }\r\n }\r\n }\r\n for (const cls of next) {\r\n if (!prev.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount + 1;\r\n this._counts.set(cls, now);\r\n if (prevCount === 0 && el) {\r\n try { (el as any).classList.add(cls); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _addStaticFromString(s: string) {\r\n if (!s) return;\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(s)) this._staticSet.add(cls);\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromArray(arr: any[]) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const item of arr) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) this._staticSet.add(cls);\r\n } else if (Array.isArray(item)) {\r\n const set = this._normalizeToSet(item);\r\n for (const cls of set) this._staticSet.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (typeof v === 'function') {\r\n const keys = this._splitClasses(String(k));\r\n for (const cls of keys) this._addReactive(obj[k], cls);\r\n } else {\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n\r\n }\r\n } else if (typeof item === 'boolean') {\r\n continue;\r\n } else if (typeof item === \"function\") {\r\n this._addReactive(item);\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) this._staticSet.add(cls);\r\n }\r\n }\r\n\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromObject(obj: Record<string, any>) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addReactive(fn: Function, key?: any) {\r\n const id = `fx#${++this._watcherSeq}`;\r\n const rec = { stop: () => { }, binding: undefined as undefined | IBaseBinding, set: new Set<string>() };\r\n const el = this._getElement();\r\n const run = () => effect(() => {\r\n let next: Set<string>;\r\n try {\r\n const v = fn();\r\n next = this._normalizeToSet(v, key);\r\n } catch {\r\n next = new Set();\r\n }\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, next, el);\r\n rec.set = next;\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__class:${id}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate: () => {\r\n stop();\r\n const el2 = this._getElement();\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, new Set(), el2);\r\n rec.set.clear();\r\n },\r\n reActivate: () => {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n rec.stop = stop;\r\n rec.binding = binding;\r\n this._watchers.set(id, rec);\r\n }\r\n}","import { CSSTransitionInfo, TransitionProps } from \"../common/transition\";\r\nimport { TransitionMode } from \"../common/transitionRegistry\";\r\n\r\nexport interface IHtmlElement extends HTMLElement { }\r\nexport interface IElement extends Node { }\r\nexport type ElementType = IElement | IHtmlElement | DocumentFragment | Comment | Text;\r\nexport type CustomParameters<T extends any> = T extends (...args: infer P) => any ? P[0] : never;\r\n\r\n\r\nexport type IsOptional<T> = T extends {} ? { [K in keyof T]-?: {} extends Pick<T, K> ? true : false }[keyof T] : false;\r\n\r\nexport type OptionalParams<T> = T extends null ? { params?: undefined } : T extends undefined ? { params?: undefined } : IsOptional<T> extends true ? T : T;\r\n\r\n\r\nexport interface EventArgs {\r\n cancel: boolean;\r\n}\r\n\r\nexport type RouterClassingSettings = {\r\n to: 'all' | 'active' | 'exact' | 'none',\r\n path: string,\r\n activeClass?: string,\r\n exactClass?: string,\r\n onActive?: () => void,\r\n offActive?: () => void,\r\n onExact?: () => void,\r\n offExact?: () => void,\r\n}\r\n\r\nexport interface ComponentBaseOptions<TProps> {\r\n props?: TProps;\r\n [key: string]: any;\r\n cache?: DocumentFragment;\r\n closeFragment?: Comment;\r\n transition: {\r\n transitionInfo: () => {\r\n in: CSSTransitionInfo,\r\n out: CSSTransitionInfo\r\n },\r\n name: string,\r\n mode?: TransitionMode,\r\n classes?: TransitionProps,\r\n activeCssCancel: (() => void) | null,\r\n activeCssPhase: 'enter' | 'leave' | null,\r\n cssProps: () => TransitionProps | null,\r\n skipNextLeave: boolean\r\n _suppressEnter: boolean\r\n _markedDirection: boolean\r\n in: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n out: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n enterTransition: (resolve: () => void) => Animation,\r\n leaveTransition: (resolve: () => void) => Animation,\r\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear?: boolean) => Animation,\r\n activeAnimations: Animation[],\r\n run: (keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions, resolve?: () => void) => Animation\r\n },\r\n set enableRouterClassing(value: RouterClassingSettings);\r\n getInstance(): any;\r\n hasEvent: (name: string) => boolean;\r\n}\r\n\r\n\r\nexport const shimAnimation: any = {\r\n cancel() { },\r\n addEventListener() { },\r\n removeEventListener() { },\r\n oncancel: null,\r\n playState: 'finished'\r\n};\r\n\r\n\r\nexport type AnyEvents = {\r\n [key: string]: any\r\n}\r\n\r\nexport type HtmlElementEvents = {\r\n [K in keyof IHtmlElement as K extends `on${string}` ?\r\n | Uncapitalize<K extends `on${infer EventName}` ? EventName : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture:self` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:self` : never>\r\n : 'x:building' | 'x:built' | 'x:initializing' | 'x:initialized' | 'x:disposing' | 'x:disposed' | 'x:config' | 'x:configured' | 'x:visibilityChanged' | 'x:mounted']\r\n : CustomParameters<IHtmlElement[K]> extends Event ? CustomParameters<IHtmlElement[K]> : EventArgs;\r\n\r\n} & AnyEvents;\r","\r\nimport { dom } from \"../\";\r\n\r\ntype TransitionKind = 'transition' | 'animation'\r\n\r\nexport interface CSSTransitionInfo {\r\n type: TransitionKind | null\r\n timeout: number\r\n propCount: number\r\n hasTransform: boolean\r\n}\r\n\r\nexport interface TransitionProps {\r\n name?: string\r\n type?: TransitionKind\r\n css?: boolean\r\n duration?: number | { enter: number; leave: number }\r\n enterFromClass?: string\r\n enterActiveClass?: string\r\n enterToClass?: string\r\n appearFromClass?: string\r\n appearActiveClass?: string\r\n appearToClass?: string\r\n leaveFromClass?: string\r\n leaveActiveClass?: string\r\n leaveToClass?: string\r\n}\r\n\r\n\r\ninterface TimingSample {\r\n kind: TransitionKind\r\n longest: number\r\n tracks: number\r\n}\r\n\r\nfunction cssTimeToMs(text: string): number {\r\n const amount = text.substring(0, Math.max(0, text.length - 1)).replace(',', '.');\r\n return 1000 * Number(amount);\r\n}\r\n\r\nfunction sampleTiming(styles: any, kind: TransitionKind): TimingSample {\r\n const listOf = (aspect: 'delay' | 'duration'): string[] => {\r\n const declared: string = styles[`${kind}-${aspect}`] || '';\r\n return declared.split(', ');\r\n };\r\n const delays = listOf('delay');\r\n const durations = listOf('duration');\r\n let longest = -Infinity;\r\n for (let track = 0; track < durations.length; track++) {\r\n const total = cssTimeToMs(durations[track]) + cssTimeToMs(delays[track % delays.length]);\r\n longest = Math.max(longest, total);\r\n }\r\n return { kind, longest, tracks: durations.length };\r\n}\r\n\r\nconst transformTrack = /(?:^|\\W)(?:transform|all)(?:,|$)/;\r\n\r\nfunction computeTransitionInfo(styles: any, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (!styles) {\r\n return { type: 'animation', timeout: 0, propCount: 0, hasTransform: false };\r\n }\r\n\r\n const samples: Record<TransitionKind, TimingSample> = {\r\n transition: sampleTiming(styles, 'transition'),\r\n animation: sampleTiming(styles, 'animation'),\r\n };\r\n\r\n let winner: TimingSample | null;\r\n let timeout: number;\r\n if (Type === 'transition' || Type === 'animation') {\r\n const forced = samples[Type];\r\n winner = forced.longest > 0 ? forced : null;\r\n timeout = winner ? winner.longest : 0;\r\n } else {\r\n const { transition, animation } = samples;\r\n timeout = Math.max(transition.longest, animation.longest);\r\n winner = !(timeout > 0) ? null : transition.longest > animation.longest ? transition : animation;\r\n }\r\n\r\n const type = winner ? winner.kind : null;\r\n return {\r\n type,\r\n timeout,\r\n propCount: winner ? winner.tracks : 0,\r\n hasTransform: type === 'transition' && transformTrack.test(styles.transitionProperty),\r\n };\r\n}\r\n\r\nexport function getTransitionInfo(el: Element, name: string, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (el.isConnected && el.nodeType !== 8) {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n }\r\n const fxElement = dom.createElement('div');\r\n fxElement.setAttribute('style', 'width:0!important;height:0!important;display:none');\r\n dom.body.appendChild(fxElement);\r\n fxElement.setAttribute('class', name);\r\n try {\r\n return computeTransitionInfo(dom.window.getComputedStyle(fxElement), Type);\r\n } finally {\r\n fxElement.remove();\r\n }\r\n}\r\n\r\n\r\nexport function getTransitionInfoFromElement(el: Element, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n}\r\n\r\nexport type TransitionPhase = 'enter' | 'leave';\r\n\r\nexport function resolveTransitionClasses(props: TransitionProps, phase: TransitionPhase, appear: boolean = false): { from: string, active: string, to: string } {\r\n const name = props.name || 'motif';\r\n if (phase === 'enter') {\r\n const enter = {\r\n from: props.enterFromClass ?? `${name}-enter-from`,\r\n active: props.enterActiveClass ?? `${name}-enter-active`,\r\n to: props.enterToClass ?? `${name}-enter-to`,\r\n };\r\n if (!appear) return enter;\r\n return {\r\n from: props.appearFromClass ?? enter.from,\r\n active: props.appearActiveClass ?? enter.active,\r\n to: props.appearToClass ?? enter.to,\r\n };\r\n }\r\n return {\r\n from: props.leaveFromClass ?? `${name}-leave-from`,\r\n active: props.leaveActiveClass ?? `${name}-leave-active`,\r\n to: props.leaveToClass ?? `${name}-leave-to`,\r\n };\r\n}\r\n\r\nexport function runCssTransition(el: Element, props: TransitionProps, phase: TransitionPhase, done: () => void, appear: boolean = false): () => void {\r\n if (props.css === false) {\r\n done();\r\n return () => { };\r\n }\r\n const classes = resolveTransitionClasses(props, phase, appear);\r\n const addC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.add(x); } catch { } }); };\r\n const removeC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.remove(x); } catch { } }); };\r\n\r\n let finished = false;\r\n let guardTimer: any = undefined;\r\n let endEvent: string | null = null;\r\n let endHandler: ((e: any) => void) | null = null;\r\n\r\n const cleanup = () => {\r\n removeC(classes.from);\r\n removeC(classes.to);\r\n removeC(classes.active);\r\n if (guardTimer !== undefined) { try { clearTimeout(guardTimer); } catch { } guardTimer = undefined; }\r\n if (endEvent && endHandler) { try { el.removeEventListener(endEvent, endHandler); } catch { } endHandler = null; }\r\n };\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n cleanup();\r\n try { done(); } catch { }\r\n };\r\n\r\n addC(classes.from);\r\n addC(classes.active);\r\n try { void (el as HTMLElement).offsetHeight; } catch { }\r\n\r\n const nextFrame = (cb: () => void) => {\r\n const raf = (globalThis as any).requestAnimationFrame;\r\n if (typeof raf === 'function') { raf(() => cb()); } else { setTimeout(cb, 16); }\r\n };\r\n\r\n nextFrame(() => {\r\n if (finished) return;\r\n removeC(classes.from);\r\n addC(classes.to);\r\n\r\n let timeout = 0;\r\n let expectedEnds = 1;\r\n const dur = props.duration;\r\n if (typeof dur === 'number') {\r\n timeout = dur;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else if (dur && typeof dur === 'object') {\r\n timeout = (phase === 'enter' ? dur.enter : dur.leave) ?? 0;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else {\r\n const info = getTransitionInfoFromElement(el, props.type);\r\n timeout = info.timeout;\r\n expectedEnds = info.propCount || 1;\r\n endEvent = info.type === 'animation' ? 'animationend' : 'transitionend';\r\n }\r\n\r\n if (!timeout || timeout <= 0) {\r\n finish();\r\n return;\r\n }\r\n\r\n let ended = 0;\r\n endHandler = (e: any) => {\r\n if (e && e.target !== el) return;\r\n if (++ended >= expectedEnds) finish();\r\n };\r\n try { el.addEventListener(endEvent, endHandler); } catch { }\r\n guardTimer = setTimeout(finish, timeout + 60);\r\n });\r\n\r\n return finish;\r\n}\r","import type { ComponentBase } from \"./componentBase\";\nimport { disposableCore, IDisposable } from \"..\";\nimport type { ComponentBaseOptions, EventArgs, HtmlElementEvents } from \"./types\";\n\nexport class ComponentMotif<TSelf extends ComponentBase = ComponentBase, TProps extends object = any> {\n\n private readonly _component: TSelf;\n public options: ComponentBaseOptions<TProps> & { hideStrategy?: 'placeholder' | 'detach' | 'auto', __fromList?: boolean, __key?: any, placeholder?: Comment };\n\n constructor(component: TSelf, options: ComponentMotif<TSelf, TProps>['options']) {\n this._component = component;\n this.options = options;\n }\n\n public show(): Promise<any> {\n return this._component['_show']();\n }\n\n public hide(): Promise<any> {\n return this._component['_hide']();\n }\n\n public toggle(): void {\n this._component['_toggle']();\n }\n\n public on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<TSelf> {\n return this._component['_on'](event, cb as any, domEvent);\n }\n\n public off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any): Promise<TSelf> {\n return this._component['_off'](event, cb as any);\n }\n\n public trigger(event: any, ev: any): Promise<TSelf> {\n return this._component['_trigger'](event, ev);\n }\n\n public addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void): void {\n this._component['_addHandler'](event, handler);\n }\n\n public clear(): Promise<any> {\n return this._component['_clear']();\n }\n\n public register(c: IDisposable): void {\n this._component['_register'](c);\n }\n\n public setDisposable(c: () => void): void {\n this._component['_register'](disposableCore.toDisposable(c));\n }\n\n public stopAnimations(): Promise<void> {\n return this._component['_stopAnimations']();\n }\n}\n","import { track, trigger, effect, createScheduledEffect, untracked, ScheduledEffect } from \"../\";\r\nimport { pauseTracking, resetTracking } from \"./common\";\r\nconst SIGNAL_TARGET = Symbol('SignalTarget');\r\nconst SIGNAL_KEY = Symbol('SignalKey');\r\n\r\nexport class Signal<T> {\r\n private _value: T;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _equals: (a: T, b: T) => boolean;\r\n private _disposed = false;\r\n\r\n public static create<U>(initialValue: U, equals?: (a: U, b: U) => boolean): Signal<U> {\r\n return new Signal<U>(initialValue, equals);\r\n }\r\n\r\n constructor(initialValue: T, equals: (a: T, b: T) => boolean = Object.is) {\r\n this._value = initialValue;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n this._equals = equals;\r\n }\r\n\r\n get value(): T {\r\n if (!this._disposed) {\r\n track(this._target, this._key);\r\n }\r\n return this._value;\r\n }\r\n\r\n set value(newValue: T) {\r\n if (this._disposed) return;\r\n if (!this._equals(this._value as any, newValue as any)) {\r\n this._value = newValue;\r\n trigger(this._target, this._key);\r\n }\r\n }\r\n\r\n peek(): T {\r\n return this._value;\r\n }\r\n\r\n update(updater: (prev: T) => T): void {\r\n this.value = (updater(this._value));\r\n }\r\n\r\n mutate(mutator: (draft: T) => void): void {\r\n if (this._disposed) return;\r\n mutator(this._value);\r\n trigger(this._target, this._key);\r\n }\r\n\r\n notify(): void {\r\n if (this._disposed) return;\r\n trigger(this._target, this._key);\r\n }\r\n\r\n asReadonly(): ReadonlySignal<T> {\r\n const self = this;\r\n return {\r\n get value() { return self.value; },\r\n peek() { return self.peek(); },\r\n valueOf() { return self.valueOf(); },\r\n toString() { return self.toString(); }\r\n };\r\n }\r\n \r\n dispose(): void {\r\n this._disposed = true;\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\r\nexport interface ReadonlySignal<T> {\r\n readonly value: T;\r\n peek(): T;\r\n valueOf(): T;\r\n toString(): string;\r\n}\r\n\r\n\r\nexport class Computed<T> {\r\n private _value!: T;\r\n private _dirty: boolean = true;\r\n private _computing: boolean = false;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _getter: () => T;\r\n private _cleanup?: () => void;\r\n\r\n constructor(getter: () => T) {\r\n this._getter = getter;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n\r\n this._cleanup = effect(() => {\r\n if (this._computing) return; \r\n this._computing = true;\r\n try {\r\n const newVal = this._getter();\r\n const changed = this._dirty || !Object.is(this._value, newVal);\r\n this._value = newVal;\r\n this._dirty = false;\r\n if (changed) {\r\n trigger(this._target, this._key);\r\n }\r\n } finally {\r\n this._computing = false;\r\n }\r\n });\r\n }\r\n\r\n get value(): T {\r\n track(this._target, this._key);\r\n\r\n if (this._dirty) { \r\n this._computing = true;\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n this._computing = false;\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n peek(): T {\r\n if (this._dirty) {\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n dispose(): void {\r\n if (this._cleanup) {\r\n this._cleanup();\r\n this._cleanup = undefined;\r\n }\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\n\nexport class LazyComputed<T> {\n private _value!: T;\n private _dirty: boolean = true;\n private _disposed: boolean = false;\n private readonly _target: object;\n private readonly _key: symbol;\n private readonly _getter: () => T;\n private readonly _runner: ScheduledEffect;\n\n constructor(getter: () => T) {\n this._getter = getter;\n this._target = { [SIGNAL_TARGET]: true };\n this._key = SIGNAL_KEY;\n this._runner = createScheduledEffect(\n () => { this._value = this._getter(); },\n () => {\n if (this._dirty || this._disposed) return;\n this._dirty = true;\n trigger(this._target, this._key);\n }\n );\n }\n\n get value(): T {\n if (!this._disposed) {\n track(this._target, this._key);\n }\n this._refresh();\n return this._value;\n }\n\n peek(): T {\n this._refresh();\n return this._value;\n }\n\n get isDirty(): boolean {\n return this._dirty;\n }\n\n private _refresh(): void {\n if (!this._dirty) return;\n if (this._disposed) {\n this._value = untracked(this._getter);\n } else {\n this._runner.run();\n }\n this._dirty = false;\n }\n\n dispose(): void {\n if (this._disposed) return;\n this._disposed = true;\n this._runner.stop();\n }\n\n valueOf(): T {\n return this.value;\n }\n\n toString(): string {\n return String(this.value);\n }\n}\n","import { ServiceCollection, ServiceDescriptor } from \"./ServiceCollection\";\nimport { motifError } from \"../common/diagnostics\";\nimport { Signal } from \"../store/Signal\";\n\ntype ScopeKind = 'root' | 'navigation' | 'user';\ntype OwnerSlot = { owner: object | null; ownerless?: boolean };\ntype OwnerPin = { scope: ServiceProvider; live: boolean };\ntype NavigationState = { current: ServiceProvider; version: Signal<number>; scopes: Set<ServiceProvider> };\n\nlet activeResolver: ((token: any) => any) | null = null;\nlet activeSlot: OwnerSlot | null = null;\nlet rawScopedIn: ServiceProvider | null = null;\nlet constructionScope: ServiceProvider | null = null;\nlet navigatingRoot: ServiceProvider | null = null;\n\nconst slotsByOwner = new WeakMap<object, OwnerSlot>();\nconst handlesBySlot = new WeakMap<OwnerSlot, Map<any, any>>();\nconst pins = new WeakMap<object, OwnerPin>();\nconst builtIn = new WeakMap<object, ServiceProvider>();\nconst boundMethods = new WeakMap<object, Map<PropertyKey, { fn: Function; bound: Function }>>();\n\nfunction runWithResolver<T>(resolver: (token: any) => any, create: () => T): T {\n const previous = activeResolver;\n activeResolver = resolver;\n try {\n return create();\n } finally {\n activeResolver = previous;\n }\n}\n\nfunction runWith<T>(slot: OwnerSlot | null, raw: ServiceProvider | null, create: () => T): T {\n const previousSlot = activeSlot;\n const previousRaw = rawScopedIn;\n activeSlot = slot;\n rawScopedIn = raw;\n try {\n return create();\n } finally {\n activeSlot = previousSlot;\n rawScopedIn = previousRaw;\n }\n}\n\nfunction bindTo(target: object, key: PropertyKey, fn: Function): Function {\n let cache = boundMethods.get(target);\n if (!cache) boundMethods.set(target, cache = new Map());\n const hit = cache.get(key);\n if (hit && hit.fn === fn) return hit.bound;\n const bound = fn.bind(target);\n cache.set(key, { fn, bound });\n return bound;\n}\n\nfunction pinnedScopeOf(owner: object | null): ServiceProvider | null {\n let current: any = owner;\n while (current) {\n const pin = pins.get(current);\n if (pin) return pin.scope;\n const built = builtIn.get(current);\n if (built && built._pending) return built;\n current = current.parent;\n }\n return null;\n}\n\nexport function inject<T>(token: abstract new (...args: any[]) => T): T;\nexport function inject<T = any>(token: string | symbol | object): T;\nexport function inject(token: any): any {\n if (!activeResolver) throw motifError('MJX409', describeInjectToken(token));\n return activeResolver(token);\n}\n\nfunction describeInjectToken(token: any): string {\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n}\n\nexport function runInConstructionScope<T>(scope: ServiceProvider | undefined, create: () => T): T {\n const previous = constructionScope;\n constructionScope = scope ?? null;\n try {\n return create();\n } finally {\n constructionScope = previous;\n }\n}\n\nexport function recordServiceOwner(owner: object): void {\n if (constructionScope && constructionScope._pending) builtIn.set(owner, constructionScope);\n}\n\nexport function pinServiceOwner(owner: object): void {\n const root = navigatingRoot;\n if (!root) return;\n if (pins.get(owner)?.live) return;\n const target = pinnedScopeOf(owner) ?? root._currentScope();\n pins.set(owner, { scope: target, live: true });\n target._livePins++;\n}\n\nexport function unpinServiceOwner(owner: object): void {\n const pin = pins.get(owner);\n if (!pin) return;\n pins.delete(owner);\n if (pin.live) pin.scope._releaseLivePin();\n navigatingRoot?._touch();\n}\n\nexport function retireServiceOwner(owner: object): void {\n const pin = pins.get(owner);\n if (pin) {\n if (pin.live) {\n pin.live = false;\n pin.scope._releaseLivePin();\n }\n return;\n }\n if (!navigatingRoot || !slotsByOwner.has(owner)) return;\n pins.set(owner, { scope: pinnedScopeOf(owner) ?? navigatingRoot._currentScope(), live: false });\n}\n\nexport class ServiceProvider {\n private parent?: ServiceProvider;\n private root: ServiceProvider;\n private scopeName?: string;\n private kind: ScopeKind;\n private singletonCache: Map<any, any>;\n private scopedCache: Map<any, any> = new Map();\n private transientSet: Set<any> = new Set();\n private _autoDisposeTransients = false;\n private pendingSingleton: Map<any, Promise<any>>;\n private pendingScoped: Map<any, Promise<any>> = new Map();\n private _navigation?: NavigationState;\n private _ownerlessSlot: OwnerSlot = { owner: null, ownerless: true };\n private _navigationDisposed = false;\n public _livePins = 0;\n public _pending = false;\n\n constructor(private services: ServiceCollection, parent?: ServiceProvider, root?: ServiceProvider) {\n this.parent = parent;\n this.root = root ?? this;\n this.kind = this.root === this ? 'root' : 'user';\n this.singletonCache = this.root === this ? new Map() : (this.root as any).singletonCache;\n this.pendingSingleton = this.root === this ? new Map() : (this.root as any).pendingSingleton;\n }\n\n public createScope(name?: string): ServiceProvider {\n const scoped = new ServiceProvider(this.services, this, this.root);\n scoped.scopeName = name ?? this.scopeName;\n (scoped as any)._autoDisposeTransients = this._autoDisposeTransients;\n return scoped;\n }\n\n public enableAutoDisposeTransients(enable = true): this { this._autoDisposeTransients = enable; return this; }\n\n\n public get<T>(token: abstract new (...args: any[]) => T): T;\n public get<T = any>(token: string | symbol | object): T;\n public get(token: any): any {\n const desc = this.services.getDescriptor(token);\n if (!desc) throw motifError('MJX401', this.describeToken(token));\n const value = this.resolveDescriptorSync(desc, [token]);\n return value;\n }\n\n public getAsync<T>(token: abstract new (...args: any[]) => T): Promise<T>;\n public getAsync<T = any>(token: string | symbol | object): Promise<T>;\n public async getAsync(token: any): Promise<any> {\n const desc = this.services.getDescriptor(token);\n if (!desc) throw motifError('MJX401', this.describeToken(token));\n const value = await this.resolveDescriptorAsync(desc, [token]);\n return value;\n }\n\n public _getFor<T = any>(owner: object, token: any): T {\n let slot = slotsByOwner.get(owner);\n if (!slot) {\n slot = { owner };\n slotsByOwner.set(owner, slot);\n }\n return runWith(slot, rawScopedIn, () => this.get<T>(token));\n }\n\n public getAllServices(): ServiceCollection { return this.services; }\n\n public _beginNavigation(): ServiceProvider {\n const root = this.root;\n const navigation = root._navigation ??= { current: root, version: new Signal(0), scopes: new Set() };\n navigatingRoot = root;\n const scope = new ServiceProvider(this.services, root, root);\n scope.kind = 'navigation';\n scope.scopeName = 'navigation';\n scope._pending = true;\n scope._autoDisposeTransients = root._autoDisposeTransients;\n navigation.scopes.add(scope);\n return scope;\n }\n\n public _commitNavigation(scope: ServiceProvider): void {\n const navigation = this.root._navigation;\n if (!navigation || navigation.current === scope) return;\n scope._pending = false;\n const previous = navigation.current;\n navigation.current = scope;\n this._touch();\n if (previous !== this.root) previous._releaseIfUnused();\n }\n\n public _abandonNavigation(scope: ServiceProvider): void {\n scope._pending = false;\n scope._releaseIfUnused();\n }\n\n public _currentScope(): ServiceProvider {\n return this.root._navigation?.current ?? this.root;\n }\n\n public _touch(): void {\n const navigation = this.root._navigation;\n if (navigation) navigation.version.value = navigation.version.peek() + 1;\n }\n\n public _releaseLivePin(): void {\n this._livePins--;\n this._releaseIfUnused();\n }\n\n private _releaseIfUnused(): void {\n const navigation = this.root._navigation;\n if (this.kind !== 'navigation' || this._navigationDisposed || this._livePins > 0) return;\n if (navigation && navigation.current === this) return;\n this._navigationDisposed = true;\n navigation?.scopes.delete(this);\n this.dispose().catch(() => { });\n }\n\n private _scopeFor(slot: OwnerSlot): ServiceProvider {\n const navigation = this._navigation;\n if (navigation) navigation.version.value;\n if (!slot.ownerless) {\n const pinned = pinnedScopeOf(slot.owner);\n if (pinned) return pinned;\n if (constructionScope && constructionScope.root === this) return constructionScope;\n }\n return navigation ? navigation.current : this;\n }\n\n private _handle(desc: ServiceDescriptor, path: any[]): any {\n const slot = activeSlot ?? this._ownerlessSlot;\n let handles = handlesBySlot.get(slot);\n if (!handles) handlesBySlot.set(slot, handles = new Map());\n let handle = handles.get(desc.token);\n if (!handle) {\n handle = this._createHandle(desc, slot);\n handles.set(desc.token, handle);\n }\n this._scopeFor(slot)._scopedInstanceSync(desc, path);\n return handle;\n }\n\n private async _handleAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n const slot = activeSlot ?? this._ownerlessSlot;\n await this._scopeFor(slot)._scopedInstanceAsync(desc, path);\n return runWith(slot, null, () => this._handle(desc, path));\n }\n\n private _createHandle(desc: ServiceDescriptor, slot: OwnerSlot): any {\n const root = this;\n const target = () => root._scopeFor(slot)._scopedInstanceSync(desc, [desc.token]);\n return new Proxy(Object.create(null), {\n get(_, key) {\n const instance = target();\n const value = Reflect.get(instance, key, instance);\n return typeof value === 'function' ? bindTo(instance, key, value) : value;\n },\n set(_, key, value) {\n const instance = target();\n return Reflect.set(instance, key, value, instance);\n },\n has(_, key) {\n return key in target();\n },\n getPrototypeOf() {\n return Object.getPrototypeOf(target());\n },\n });\n }\n\n private _isSystemScope(): boolean {\n return this.kind !== 'user';\n }\n\n private _scopedInstanceSync(desc: ServiceDescriptor, path: any[]): any {\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\n const inst = runWith(null, this, () => this.instantiateSync(desc, path));\n this.scopedCache.set(desc.token, inst);\n return inst;\n }\n\n private async _scopedInstanceAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\n if (this.pendingScoped.has(desc.token)) return await this.pendingScoped.get(desc.token)!;\n const promise = (async () => {\n const inst = await this.instantiateAsyncIn(null, this, desc, path);\n this.scopedCache.set(desc.token, inst);\n this.pendingScoped.delete(desc.token);\n return inst;\n })();\n this.pendingScoped.set(desc.token, promise);\n return await promise;\n }\n\n private resolveDescriptorSync(desc: ServiceDescriptor, path: any[]): any {\n this.checkCycle(desc.token, path);\n switch (desc.lifetime) {\n case 'singleton': {\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\n const inst = runWith(null, null, () => this.instantiateSync(desc, path));\n this.singletonCache.set(desc.token, inst);\n return inst;\n }\n case 'scoped': {\n if (this._isSystemScope() && rawScopedIn !== this) return this.root._handle(desc, path);\n return this._scopedInstanceSync(desc, path);\n }\n case 'transient':\n default: {\n const inst = this.instantiateSync(desc, path);\n if (this._autoDisposeTransients && this.parent) {\n this.transientSet.add(inst);\n }\n return inst;\n }\n }\n }\n\n private async resolveDescriptorAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n this.checkCycle(desc.token, path);\n switch (desc.lifetime) {\n case 'singleton': {\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\n if (this.pendingSingleton.has(desc.token)) return await this.pendingSingleton.get(desc.token)!;\n const promise = (async () => {\n const inst = await this.instantiateAsyncIn(null, null, desc, path);\n this.singletonCache.set(desc.token, inst);\n this.pendingSingleton.delete(desc.token);\n return inst;\n })();\n this.pendingSingleton.set(desc.token, promise);\n return await promise;\n }\n case 'scoped': {\n if (this._isSystemScope() && rawScopedIn !== this) return await this.root._handleAsync(desc, path);\n return await this._scopedInstanceAsync(desc, path);\n }\n case 'transient':\n default: {\n const inst = await this.instantiateAsync(desc, path);\n if (this._autoDisposeTransients && this.parent) {\n this.transientSet.add(inst);\n }\n return inst;\n }\n }\n }\n\n private construct<T>(create: () => T): T {\n if (activeSlot) return create();\n const slot: OwnerSlot = { owner: null };\n const inst = runWith(slot, rawScopedIn, create);\n if (inst && (typeof inst === 'object' || typeof inst === 'function') && typeof (inst as any).then !== 'function') {\n recordServiceOwner(inst as any);\n slot.owner = inst as any;\n if (!slotsByOwner.has(inst as any)) slotsByOwner.set(inst as any, slot);\n }\n return inst;\n }\n\n private instantiateSync(desc: ServiceDescriptor, path: any[]): any {\n if (desc.useValue !== undefined) {\n return desc.useValue;\n }\n if (desc.useFactory) {\n return this.construct(() => {\n const args = this.resolveDepsSync(desc, path);\n const result = runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this));\n if (result && typeof (result as any).then === 'function') {\n const name = this.describeTokenWithSource(desc.token);\n throw motifError('MJX402', name);\n }\n return result;\n });\n }\n if (desc.useClass) {\n return this.construct(() => {\n const args = this.resolveDepsSync(desc, path);\n return runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args));\n });\n }\n throw motifError('MJX403');\n }\n\n private async instantiateAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any> {\n return await runWith(slot, raw, () => this.instantiateAsync(desc, path));\n }\n\n private async instantiateAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n if (desc.useValue !== undefined) {\n return desc.useValue;\n }\n const slot = activeSlot;\n const raw = rawScopedIn;\n if (desc.useFactory) {\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\n return await runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this))));\n }\n if (desc.useClass) {\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\n return runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args))));\n }\n throw motifError('MJX403');\n }\n\n public async dispose(): Promise<void> {\n const seen = new Set<any>();\n const callDispose = async (obj: any) => {\n if (!obj || seen.has(obj)) return;\n seen.add(obj);\n try { if (typeof obj.dispose === 'function') await obj.dispose(); }\n catch { /* ignore */ }\n try { if (typeof obj.close === 'function') await obj.close(); }\n catch { /* ignore */ }\n try {\n const d = (obj as any)[Symbol.dispose];\n if (typeof d === 'function') await d.call(obj);\n } catch { }\n try {\n const ad = (obj as any)[Symbol.asyncDispose];\n if (typeof ad === 'function') await ad.call(obj);\n } catch { }\n };\n if (this.root === this) {\n const navigation = this._navigation;\n if (navigation) {\n const scopes = [...navigation.scopes];\n navigation.scopes.clear();\n navigation.current = this;\n if (navigatingRoot === this) navigatingRoot = null;\n this._navigation = undefined;\n for (const scope of scopes) {\n scope._navigationDisposed = true;\n await scope.dispose();\n }\n }\n for (const v of this.singletonCache.values()) await callDispose(v);\n this.singletonCache.clear();\n this.pendingSingleton.clear();\n }\n for (const v of this.scopedCache.values()) await callDispose(v);\n if (this.kind !== 'navigation') this.scopedCache.clear();\n this.pendingScoped.clear();\n for (const v of this.transientSet.values()) await callDispose(v);\n this.transientSet.clear();\n }\n\n private resolveDepsSync(desc: ServiceDescriptor, path: any[]): any[] {\n const deps = this.getDeps(desc);\n if (!deps || deps.length === 0) return [];\n return deps.map(dep => this.resolveTokenSync(dep, path));\n }\n private async resolveDepsAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any[]> {\n const deps = this.getDeps(desc);\n if (!deps || deps.length === 0) return [];\n const results: any[] = [];\n for (const dep of deps) {\n results.push(await runWith(slot, raw, () => this.resolveTokenAsync(dep, path)));\n }\n return results;\n }\n private injectionResolver(path: any[]): (token: any) => any {\n return (token: any) => this.resolveTokenSync(token, path);\n }\n private getDeps(desc: ServiceDescriptor): any[] | undefined {\n if (Array.isArray(desc.deps)) return desc.deps;\n const source: any = desc.useClass ?? desc.useFactory;\n if (source) {\n if (Array.isArray(source.inject)) return source.inject;\n if (Array.isArray(source.dependencies)) return source.dependencies;\n }\n return undefined;\n }\n private resolveTokenSync(token: any, path: any[]): any {\n const d = this.services.getDescriptor(token);\n if (!d) throw motifError('MJX401', this.describeToken(token));\n const nextPath = path.concat(token);\n return this.resolveDescriptorSync(d, nextPath);\n }\n private async resolveTokenAsync(token: any, path: any[]): Promise<any> {\n const d = this.services.getDescriptor(token);\n if (!d) throw motifError('MJX401', this.describeToken(token));\n const nextPath = path.concat(token);\n return await this.resolveDescriptorAsync(d, nextPath);\n }\n private checkCycle(token: any, path: any[]) {\n const firstIndex = path.indexOf(token);\n if (firstIndex !== -1 && firstIndex !== path.length - 1) {\n const chainTokens = path.slice(firstIndex).concat([token]);\n const chain = chainTokens.map((t) => this.describeTokenWithSource(t)).join(' -> ');\n throw motifError('MJX404', chain);\n }\n }\n private describeToken = (t: any) => {\n if (typeof t === 'string') return t;\n if (typeof t === 'symbol') return t.toString();\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\n return String(t);\n };\n private describeTokenWithSource(t: any) {\n const name = this.describeToken(t);\n const d = this.services.getDescriptor(t);\n if (!d) return name;\n const src = d.useClass ? 'useClass' : d.useFactory ? 'useFactory' : (d.useValue !== undefined) ? 'useValue' : 'unknown';\n return `${name}[${src}]`;\n }\n}\n","export const contentBlocks = { live: 0 };\r\n","export const OPTIONS_OWNER: unique symbol = Symbol('motif.optionsOwner');\nexport const TRANSITION_SLOT: unique symbol = Symbol('motif.transition');\n","export type TransitionMode = 'concurrent' | 'out-in' | 'in-out';\n\nexport const transitionSettings: { mode: TransitionMode } = { mode: 'concurrent' };\n\ntype Entry = { node: Node; via: Node | null; done: Promise<void> };\n\nexport type TrackedRun = { done: () => void; release: () => void; finished?: Promise<void> };\n\nconst noop = () => { };\n\nfunction createTracker() {\n const running = new WeakMap<Node, Set<Entry>>();\n\n function track(node: Node | null | undefined, resolve: () => void, via?: Node | null): TrackedRun {\n const host = node?.parentNode ?? via?.parentNode;\n if (!host) return { done: resolve, release: noop };\n let set = running.get(host);\n if (!set) running.set(host, (set = new Set()));\n let finish: () => void = noop;\n const entry: Entry = { node: node!, via: via ?? null, done: new Promise<void>(r => { finish = r; }) };\n set.add(entry);\n let settled = false;\n const release = () => {\n if (settled) return;\n settled = true;\n set!.delete(entry);\n finish();\n };\n return {\n done: () => {\n const first = !settled;\n release();\n if (first && resolve) resolve();\n },\n release,\n finished: entry.done,\n };\n }\n\n function pending(host: Node | null | undefined, except?: Node | null): Promise<void> | null {\n if (!host) return null;\n const set = running.get(host);\n if (!set || set.size === 0) return null;\n let waits: Promise<void>[] | null = null;\n for (const entry of set) {\n if (entry.node === except) continue;\n if (entry.node.parentNode !== host && entry.via?.parentNode !== host) {\n set.delete(entry);\n continue;\n }\n (waits ??= []).push(entry.done);\n }\n return waits ? Promise.all(waits).then(noop) : null;\n }\n\n return { track, pending };\n}\n\nconst leaves = createTracker();\nconst enters = createTracker();\n\nexport const trackLeave = leaves.track;\nexport const pendingLeaves = leaves.pending;\nexport const trackEnter = enters.track;\nexport const pendingEnters = enters.pending;\n\nexport function deferUntilEntered(node: Node, run: TrackedRun, play: () => unknown): Animation {\n const host = node.parentNode;\n const handle: any = {\n finished: run.finished ?? Promise.resolve(),\n playState: 'pending',\n addEventListener: noop,\n removeEventListener: noop,\n cancel: noop,\n };\n queueMicrotask(() => {\n const wait = pendingEnters(host, node);\n if (wait) wait.then(() => { play(); });\n else play();\n });\n return handle as Animation;\n}\n\nexport function isTransitionMode(value: any): value is TransitionMode {\n return value === 'concurrent' || value === 'out-in' || value === 'in-out';\n}\n","import { ControlCollection, dom, Disposable, disposableCore, IClass, IDisposable, Application, isExactMatch, startsWithPath, reactive, safeCallSilent, safeCallSilentAsync, safeCall, safeCallAsync } from \"..\";\nimport { ServiceProvider } from \"..\";\nimport { BindingCollection, IBaseBinding } from \"../bindings\";\nimport { effect } from \"../store/reactivity-core\";\nimport { ComponentEmiter } from \"./ComponentEmiter\";\nimport { controlAttribute } from \"./controlAttribute\";\nimport { controlClass } from \"./controlClass\";\nimport { ComponentBaseOptions, ElementType, EventArgs, HtmlElementEvents, OptionalParams, RouterClassingSettings, shimAnimation } from \"./types\";\nimport { UnwrapValueRefs } from \"../store/common\";\nimport { getTransitionInfo, runCssTransition, TransitionProps } from \"../common/transition\";\nimport { callReported, motifError, reportError, reportWarning } from \"../common/diagnostics\";\nimport { ComponentMotif } from \"./ComponentMotif\";\nimport { pinServiceOwner, recordServiceOwner, retireServiceOwner, unpinServiceOwner } from \"../dependencyInjection/ServiceProvider\";\nimport { contentBlocks as liveContentBlocks } from \"./contentBlockRegistry\";\nimport { OPTIONS_OWNER, TRANSITION_SLOT } from \"./optionsSlots\";\nimport { deferUntilEntered, isTransitionMode, pendingLeaves, trackEnter, trackLeave, transitionSettings, TransitionMode } from \"../common/transitionRegistry\";\nimport { lazyBindMethods } from \"../common/lazyBind\";\nimport type { MotifDomEventProps } from \"../jsx-runtime\";\nimport { isDevLike } from \"../devtools/devbus\";\n\n/** DI token'ını okunur biçime çevirir (dev uyarıları için). */\nfunction describeServiceToken(t: any): string {\n if (typeof t === 'string') return t;\n if (typeof t === 'symbol') return t.toString();\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\n return String(t);\n}\n\ntype TransitionApi = ComponentBaseOptions<any>['transition'];\n\nfunction peekTransition(c: any): TransitionApi | undefined {\n return c?.motif?.options?.[TRANSITION_SLOT];\n}\n\n/**WAAPI keyframe (transitionIn) YA DA CSS class transition (name/classes) tanımlı olarak enter animasyonu varmı */\nfunction clearNavDirection(c: any): void {\n const t = peekTransition(c);\n if (!t?._markedDirection) return;\n t._markedDirection = false;\n try { (c.element as any)?.removeAttribute?.('data-nav-direction'); } catch { }\n}\n\nfunction enterModeOf(container: any): TransitionMode {\n let c = container;\n while (c) {\n const mode = peekTransition(c)?.mode;\n if (mode) return mode;\n const node = c.element as Node | null;\n if (!node || node.nodeType !== Node.COMMENT_NODE) break;\n c = c.parent ?? c._base?._leaveContainer;\n }\n return transitionSettings.mode;\n}\n\nfunction leaveModeOf(c: any): TransitionMode {\n return enterModeOf(c.parent ?? c._base?._leaveContainer);\n}\n\nfunction wantsEnterTransition(c: any): boolean {\n const o = c?.motif?.options;\n const t = o?.[TRANSITION_SLOT];\n return !!(o?.transitionIn || (t && (t.classes || (t.name && t.name.length > 0))));\n}\n\nfunction createTransitionApi(owner: ComponentBase): TransitionApi {\n const cur = (): TransitionApi => (owner.motif.options as any)?.[TRANSITION_SLOT] ?? t;\n const t: TransitionApi = {\n transitionInfo: () => {\n const s = cur();\n return {\n in: getTransitionInfo(owner.element as Element, `${s.name}-enter ${s.name}-enter-start`),\n out: getTransitionInfo(owner.element as Element, `${s.name}-leave ${s.name}-leave-start`),\n }\n },\n name: '',\n mode: undefined as TransitionMode | undefined,\n classes: undefined as TransitionProps | undefined,\n activeCssCancel: null as (() => void) | null,\n activeCssPhase: null as ('enter' | 'leave' | null),\n cssProps: (): TransitionProps | null => {\n const s = cur();\n if (s.classes) {\n return { name: s.classes.name || s.name || '', ...s.classes };\n }\n if (s.name && s.name.length > 0) {\n return { name: s.name };\n }\n return null;\n },\n skipNextLeave: false,\n _suppressEnter: false,\n _markedDirection: false,\n in: (op) => {\n owner.motif.options.transitionIn = op;\n },\n out: (op) => {\n owner.motif.options.transitionOut = op;\n },\n enterTransition: (resolve: () => void): Animation => {\n const s = cur();\n const base = (owner as any)._base;\n const appear = !base._enterPlayed;\n base._enterPlayed = true;\n base._enterSeq = (base._enterSeq ?? 0) + 1;\n if (s._suppressEnter) {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const attempt = {};\n base._enterRun = attempt;\n const enter = trackEnter(owner.element as unknown as Node, () => {\n if ((owner as any)._base?._enterRun === attempt) {\n (owner as any)._base._enterRun = null;\n clearNavDirection(owner);\n }\n resolve && resolve();\n }, owner.motif.options.placeholder as Node | undefined);\n const transitionIn = owner.motif.options.transitionIn;\n const animation = transitionIn\n ? s.run(transitionIn.keyframes, transitionIn.options, enter.done)\n : s._runCss('enter', enter.done, appear);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', enter.release);\n }\n return animation;\n },\n leaveTransition: (resolve: () => void): Animation => {\n const s = cur();\n const node = owner.element as unknown as Node;\n const leave = trackLeave(node, resolve);\n const play = (): Animation => {\n const transitionOut = owner.motif.options?.transitionOut;\n const animation = transitionOut\n ? s.run(transitionOut.keyframes, transitionOut.options, leave.done)\n : s._runCss('leave', leave.done);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', leave.release);\n }\n return animation;\n };\n if (leave.finished && leaveModeOf(owner) === 'in-out') {\n return deferUntilEntered(node, leave, play);\n }\n return play();\n },\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear: boolean = false): Animation => {\n const s = cur();\n if (phase === 'enter' && s.activeCssPhase === 'leave') {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const cssProps = s.cssProps();\n const el = owner.element as unknown as Element | null;\n if (cssProps && el && (el as any).nodeType === 1 && (el as any).classList) {\n try { s.activeCssCancel?.(); } catch { }\n const cancel = runCssTransition(el, cssProps, phase, () => {\n s.activeCssCancel = null;\n s.activeCssPhase = null;\n resolve && resolve();\n }, appear);\n s.activeCssCancel = cancel;\n s.activeCssPhase = phase;\n return shimAnimation as Animation;\n }\n resolve && resolve();\n return shimAnimation as Animation;\n },\n activeAnimations: [] as Animation[],\n run: (keyframes, options, resolve) => {\n const s = cur();\n owner.motif.stopAnimations();\n\n const element = owner.element as unknown as HTMLElement;\n\n if (element.animate) {\n var x = element.animate(keyframes, options);\n s.activeAnimations.push(x);\n\n let cleanedUp = false;\n const safeCleanup = () => {\n if (cleanedUp) return;\n cleanedUp = true;\n try {\n if (s.activeAnimations) {\n s.activeAnimations = s.activeAnimations.filter(a => a !== x);\n }\n } catch { }\n };\n\n x.addEventListener('finish', () => {\n resolve && resolve();\n safeCleanup();\n });\n\n x.oncancel = () => {\n safeCleanup();\n };\n return x;\n }\n else {\n resolve && resolve();\n const g: any = (globalThis as any);\n if (typeof g.Animation === 'function') {\n try { return new g.Animation(); } catch { /* ignore */ }\n }\n\n return shimAnimation as Animation;\n }\n }\n };\n return t;\n}\n\nclass ComponentOptionsImpl {\n [OPTIONS_OWNER]: ComponentBase;\n [TRANSITION_SLOT]?: TransitionApi;\n\n constructor(owner: ComponentBase) {\n this[OPTIONS_OWNER] = owner;\n }\n\n get transition(): TransitionApi {\n return this[TRANSITION_SLOT] ??= createTransitionApi(this[OPTIONS_OWNER]);\n }\n\n set transition(value: TransitionApi) {\n this[TRANSITION_SLOT] = value;\n }\n\n set enableRouterClassing(value: RouterClassingSettings) {\n try {\n const ins = this[OPTIONS_OWNER];\n const callback = ins.context.onRouterChanged(() => {\n ComponentHelper.routerClassing.call(ins, value);\n });\n ins.motif.register(disposableCore.toDisposable(() => {\n callback();\n }));\n ComponentHelper.routerClassing.call(ins, value);\n } catch (error) {\n reportError('MJX105', error);\n }\n }\n\n getInstance(): ComponentBase {\n return this[OPTIONS_OWNER];\n }\n\n get display(): boolean {\n return this[OPTIONS_OWNER].isVisible;\n }\n\n set display(value: boolean) {\n if (value) {\n this[OPTIONS_OWNER].motif.show();\n } else {\n this[OPTIONS_OWNER].motif.hide();\n }\n }\n\n hasEvent(name: string): boolean {\n return !!(this[OPTIONS_OWNER] as any)._eventHandlers?.has(name);\n }\n}\nlazyBindMethods(ComponentOptionsImpl.prototype, ['getInstance', 'hasEvent']);\n\n\n\n\nexport type IBaseProp<T extends any> = OptionalParams<T> & MotifDomEventProps & {\n childs?: any[];\n options?: any;\n onElementCreating?(): any;\n initializeComponent?(sender: ComponentBase): void;\n onBuilding?(sender: ComponentBase, e: EventArgs): void;\n onBuilt?(sender: ComponentBase, e: EventArgs): void;\n onMounted?(sender: ComponentBase, e: EventArgs): void;\n onInitializing?(sender: ComponentBase, e: EventArgs): void;\n onInitialized?(sender: ComponentBase, e: EventArgs): void;\n onDisposing?(sender: ComponentBase, e: EventArgs): void;\n onDisposed?(sender: ComponentBase, e: EventArgs): void;\n onConfig?(sender: ComponentBase, e: EventArgs): void;\n onConfigured?(sender: ComponentBase, e: EventArgs): void;\n onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n onActivated?(sender: ComponentBase, e: EventArgs): void;\n onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n runover?: {\n initializeComponent?: (sender: ComponentBase) => void;\n }\n [key: string]: any;\n};\n\ntype LifecycleHandler = (sender: ComponentBase, e: EventArgs) => void;\ninterface LifecycleStorage {\n _initializeComponentHandlers?: LifecycleHandler[];\n _onInitializeComponentHandlers?: LifecycleHandler[];\n _onBuildingHandlers?: LifecycleHandler[];\n _onBuiltHandlers?: LifecycleHandler[];\n _onMountedHandlers?: LifecycleHandler[];\n _onInitializingHandlers?: LifecycleHandler[];\n _onInitializedHandlers?: LifecycleHandler[];\n _onConfigHandlers?: LifecycleHandler[];\n _onConfiguredHandlers?: LifecycleHandler[];\n _onVisibilityChangedHandlers?: LifecycleHandler[];\n _onActivatedHandlers?: LifecycleHandler[];\n _onDeactivatedHandlers?: LifecycleHandler[];\n _onDisposingHandlers?: LifecycleHandler[];\n _onDisposedHandlers?: LifecycleHandler[];\n}\ninterface BaseCtx extends LifecycleStorage {\n owner: ComponentBase;\n prebinding_Activated: boolean;\n _offAll: () => void;\n _deactivateBindings: () => void;\n _activateBindings: () => void;\n _activatePreBindings: () => void;\n _reactivateBindings: () => void;\n _detachDomWithAnimation: () => void;\n _detachDomWithAnimationAsync: () => Promise<void>;\n _disposeShallow: () => void;\n _deepCleanup: () => void;\n emiters: ComponentEmiter;\n itemRef?: any;\n [key: string]: any;\n}\n\nfunction fireLifecycle(component: any, name: string, ev: EventArgs): void {\n const base = component._base;\n if (base) base.emiters.fire(name, ev);\n}\n\nfunction hasLifecycleHook(component: any, hook: string, listName: keyof LifecycleStorage, lowerName: string, legacyProp?: string): boolean {\n if (component[hook]) return true;\n const list = component._base[listName];\n if (Array.isArray(list) && list.length > 0) return true;\n if (legacyProp && component[legacyProp]) return true;\n return component._base.emiters.hasListeners(lowerName);\n}\n\nconst RESERVED_METHODS = ['build', 'setState', 'reState', 'setText', 'style', 'dispose', 'disposeAsync', 'using', 'doWork', 'getService', '$', 'useModel', 'context', 'siblings', 'serviceProvider', 'isWait'];\nconst checkedComponentClasses = new WeakSet<Function>();\n\nfunction callsSuper(fn: unknown, name: string): boolean {\n if (typeof fn !== 'function') return false;\n const escaped = name.replace(/\\$/g, '\\\\$');\n return new RegExp(`\\\\bsuper\\\\s*(\\\\.\\\\s*${escaped}(?![\\\\w$])|\\\\[)`).test(Function.prototype.toString.call(fn));\n}\n\nfunction reservedMemberProblems(c: ComponentBase): Array<[string, 'method' | 'field' | 'replaced']> {\n const problems: Array<[string, 'method' | 'field' | 'replaced']> = [];\n const own = (o: object, k: string) => Object.prototype.hasOwnProperty.call(o, k);\n for (const name of RESERVED_METHODS) {\n if (own(c, name)) { problems.push([name, 'field']); continue; }\n for (let p = Object.getPrototypeOf(c); p && p !== ComponentBase.prototype; p = Object.getPrototypeOf(p)) {\n const d = Object.getOwnPropertyDescriptor(p, name);\n if (!d) continue;\n const fns = 'value' in d ? [d.value] : [d.get, d.set].filter(Boolean);\n if (!fns.some(fn => callsSuper(fn, name))) problems.push([name, 'method']);\n break;\n }\n }\n const anyC = c as any;\n if (!(anyC.motif instanceof ComponentMotif)) problems.push(['motif', 'replaced']);\n if (!(anyC.controls instanceof ControlCollection)) problems.push(['controls', 'replaced']);\n if (!(anyC.class instanceof controlClass)) problems.push(['class', 'replaced']);\n if (!(anyC.attr instanceof controlAttribute)) problems.push(['attr', 'replaced']);\n if (!(anyC.bindings instanceof BindingCollection)) problems.push(['bindings', 'replaced']);\n if (anyC.element != null && typeof Node !== 'undefined' && !(anyC.element instanceof Node)) problems.push(['element', 'replaced']);\n if (anyC.parent != null && !(anyC.parent instanceof ComponentBase)) problems.push(['parent', 'replaced']);\n return problems;\n}\n\nexport function checkReservedMembers(c: ComponentBase): void {\n if (!isDevLike()) return;\n const ctor = (c as any)?.constructor;\n if (typeof ctor !== 'function' || checkedComponentClasses.has(ctor)) return;\n checkedComponentClasses.add(ctor);\n const name = ctor.name || 'An anonymous component class';\n for (const [member, how] of reservedMemberProblems(c)) {\n reportWarning('MJX128', [name, member, how]);\n }\n}\n\nconst ComponentHelper = {\n callInitializeComponent(component: ComponentBase | any) {\n const sender = component;\n const ev = { cancel: false } as EventArgs;\n if (!component || component.isDisposed) { return; }\n // 1) class method initializeComponent\n if (typeof component.initializeComponent === 'function') {\n callReported(() => component.initializeComponent(sender, ev), 'MJX122', 'initializeComponent');\n }\n // 2) aggregated extra initializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._initializeComponentHandlers) && component._base._initializeComponentHandlers.length) {\n for (const fn of component._base._initializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'initializeComponent');\n }\n }\n // 3) class method oninitializeComponent \n if (typeof component.oninitializeComponent === 'function') {\n callReported(() => component.oninitializeComponent(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n // 4) aggregated extra oninitializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._onInitializeComponentHandlers) && component._base._onInitializeComponentHandlers.length) {\n for (const fn of component._base._onInitializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n }\n },\n callDisposing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onDisposing', '_onDisposingHandlers', 'ondisposing', 'ondisposing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposing) {\n callReported(() => component.onDisposing(sender, ev), 'MJX122', 'onDisposing');\n }\n if (Array.isArray(component._base._onDisposingHandlers)) {\n for (const fn of component._base._onDisposingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposing');\n }\n }\n if (component.ondisposing) {\n callReported(() => component.ondisposing(sender, ev), 'MJX122', 'ondisposing');\n }\n fireLifecycle(component,'ondisposing', ev);\n },\n callActivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onActivated) { callReported(() => component.onActivated(sender, ev), 'MJX122', 'onActivated'); }\n if (Array.isArray(component._base._onActivatedHandlers)) {\n for (const fn of component._base._onActivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onActivated');\n }\n }\n fireLifecycle(component,'onactivated', ev);\n },\n callDeactivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDeactivated) { callReported(() => component.onDeactivated(sender, ev), 'MJX122', 'onDeactivated'); }\n if (Array.isArray(component._base._onDeactivatedHandlers)) {\n for (const fn of component._base._onDeactivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDeactivated');\n }\n }\n fireLifecycle(component,'ondeactivated', ev);\n },\n deactivateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component.isBuilt || !component._base || component._base._inactive) { return; }\n component._base._inactive = true;\n ComponentHelper.callDeactivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.deactivateTree(c, true);\n }\n }\n },\n activateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component._base || !component._base._inactive) { return; }\n component._base._inactive = false;\n ComponentHelper.callActivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.activateTree(c, true);\n }\n }\n },\n callDisposed(component: ComponentBase | any) {\n if (!component || !component._base || component._base._disposedFired) { return; }\n component._base._disposedFired = true;\n if (hasLifecycleHook(component, 'onDisposed', '_onDisposedHandlers', 'ondisposed', 'ondisposed')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposed) { callReported(() => component.onDisposed(sender, ev), 'MJX122', 'onDisposed'); }\n if (Array.isArray(component._base._onDisposedHandlers)) {\n for (const fn of component._base._onDisposedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposed');\n }\n }\n if (component.ondisposed) { callReported(() => component.ondisposed(sender, ev), 'MJX122', 'ondisposed'); }\n fireLifecycle(component,'ondisposed', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:disposed', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n callBuilt(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (hasLifecycleHook(component, 'onBuilt', '_onBuiltHandlers', 'onbuilt', 'onbuilt')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilt) { callReported(() => component.onBuilt(sender, ev), 'MJX122', 'onBuilt'); }\n if (Array.isArray(component._base._onBuiltHandlers)) {\n for (const fn of component._base._onBuiltHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilt');\n }\n }\n if (component.onbuilt) { callReported(() => component.onbuilt(sender, ev), 'MJX122', 'onbuilt'); }\n fireLifecycle(component,'onbuilt', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:mounted', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n scheduleMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedScheduled) { return; }\n const hasHook = typeof component.onMounted === 'function'\n || (Array.isArray(component._base._onMountedHandlers) && component._base._onMountedHandlers.length > 0)\n || typeof component.onmounted === 'function';\n if (!hasHook) { return; }\n component._base._mountedScheduled = true;\n const el = component.element as Element | null;\n if (!el || typeof (el as any).nodeType !== 'number') { return; }\n const stop = onElementAttached(el, () => {\n if (component.isDisposed) { return; }\n ComponentHelper.callMounted(component);\n });\n if (stop) {\n component._register(disposableCore.toDisposable(stop));\n }\n },\n callMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedFired) { return; }\n component._base._mountedFired = true;\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onMounted) { callReported(() => component.onMounted(sender, ev), 'MJX122', 'onMounted'); }\n if (Array.isArray(component._base._onMountedHandlers)) {\n for (const fn of component._base._onMountedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onMounted');\n }\n }\n if (component.onmounted) { callReported(() => component.onmounted(sender, ev), 'MJX122', 'onmounted'); }\n fireLifecycle(component,'onmounted', ev);\n },\n callBuilding(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onBuilding', '_onBuildingHandlers', 'onbuilding')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilding) { callReported(() => component.onBuilding(sender, ev), 'MJX122', 'onBuilding'); }\n if (Array.isArray(component._base._onBuildingHandlers)) {\n for (const fn of component._base._onBuildingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilding');\n }\n }\n fireLifecycle(component,'onbuilding', ev);\n },\n callConfig(component: ComponentBase | any) {\n if (!component || component.isDisposed || component.isConfigured) { return; }\n component.isConfigured = true;\n\n if (component.motif.options._preconfig) {\n safeCallSilent(() => component.motif.options._preconfig(component), 'Component._preconfig');\n }\n\n if (!hasLifecycleHook(component, 'onConfig', '_onConfigHandlers', 'onconfig')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfig) { callReported(() => component.onConfig(sender, ev), 'MJX122', 'onConfig'); }\n if (Array.isArray(component._base._onConfigHandlers)) {\n for (const fn of component._base._onConfigHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfig');\n }\n }\n fireLifecycle(component,'onconfig', ev);\n },\n callConfigured(component: ComponentBase | any) {\n if (component.motif.options && component.motif.options._postconfigdone) {\n return;\n }\n if (component?._base?._configDeferred && !component.isConfigured) {\n ComponentHelper.callConfig(component);\n }\n component.motif.options._postconfigdone = true;\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onConfigured', '_onConfiguredHandlers', 'onconfigured')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfigured) { callReported(() => component.onConfigured(sender, ev), 'MJX122', 'onConfigured'); }\n if (Array.isArray(component._base._onConfiguredHandlers)) {\n for (const fn of component._base._onConfiguredHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfigured');\n }\n }\n fireLifecycle(component,'onconfigured', ev);\n },\n callOnInitialized(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n component.isInitialized = true;\n if (!hasLifecycleHook(component, 'onInitialized', '_onInitializedHandlers', 'oninitialized')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitialized) { callReported(() => component.onInitialized(sender, ev), 'MJX122', 'onInitialized'); }\n if (Array.isArray(component._base._onInitializedHandlers)) {\n for (const fn of component._base._onInitializedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitialized');\n }\n }\n fireLifecycle(component,'oninitialized', ev);\n },\n callOnInitializing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onInitializing', '_onInitializingHandlers', 'oninitializing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitializing) { callReported(() => component.onInitializing(sender, ev), 'MJX122', 'onInitializing'); }\n if (Array.isArray(component._base._onInitializingHandlers)) {\n for (const fn of component._base._onInitializingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitializing');\n }\n }\n fireLifecycle(component,'oninitializing', ev);\n },\n callVisibilityChanged(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onVisibilityChanged', '_onVisibilityChangedHandlers', 'onvisibilitychanged')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onVisibilityChanged) { callReported(() => component.onVisibilityChanged(sender, ev), 'MJX122', 'onVisibilityChanged'); }\n if (Array.isArray(component._base._onVisibilityChangedHandlers)) {\n for (const fn of component._base._onVisibilityChangedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onVisibilityChanged');\n }\n }\n fireLifecycle(component,'onvisibilitychanged', ev);\n },\n findFragmentContent(c: ComponentBase) {\n const controlElement = c.element.nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n if (c.element.nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n c.motif.options.cache?.appendChild(c.element);\n c.controls.forEach(child => {\n c.motif.options.cache?.appendChild(child.element as unknown as Node);\n });\n c.motif.options.cache?.appendChild(c.motif.options.closeFragment!);\n }\n },\n backgroundCallback(callback: () => any) {\n callback();\n // if (!requestIdleCallback) {\n // if (!requestAnimationFrame) {\n // } else {\n\n // } else {\n },\n internalBuild(this: ComponentBase, c: ComponentBase) {\n if (this.isDisposed || c?.isDisposed) { return; }\n ComponentHelper.callConfigured(c);\n if (c.isDisposed) return;\n c._base._activatePreBindings();\n if (c.isWait) return;\n const cisBuilt = c.isBuilt;\n if (!this.isBuilt) {\n return;\n }\n if (c.isWait) {\n return;\n }\n const enterSeq = c._base._enterSeq;\n if (!c.isBuilt) {\n c.build();\n } else if (c.parent != this) {\n c.parent?.controls.detach(c);\n c.parent = this;\n const pendingLeave = (c as any).__pendingLeave;\n if (pendingLeave) {\n pendingLeave.promise.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n\n if (c.isDisposed || this.isDisposed) return;\n c.parent = this;\n\n const ownItems = this.controls.items;\n const currentIndex = ownItems.length > 0 && ownItems[ownItems.length - 1] === c ? ownItems.length - 1 : ownItems.indexOf(c);\n\n const appendableElement = findAppendableComponent(this);\n var controlElement = (c.element as Node).nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n\n if (cisBuilt && (c.element as Node).nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n\n controlElement = ComponentHelper.getContent.call(c) as Node;\n }\n\n let referenceNode: Node | null = null;\n\n const insertHost = appendableElement?.element as Node | undefined;\n const domReferenceOf = (n: ComponentBase | undefined): Node | null => {\n if (!n || !n.isBuilt) return null;\n const candidate: Node | null = n.isVisible\n ? (n.element as unknown as Node)\n : (((n.motif.options as any)?.placeholder as Node | undefined) ?? null);\n if (!candidate) return null;\n return (insertHost && candidate.parentNode === insertHost) ? candidate : null;\n };\n\n const siblings = this.controls.items;\n for (let i = currentIndex + 1; i < siblings.length; i++) {\n const candidate = domReferenceOf(siblings[i]);\n if (candidate) {\n referenceNode = candidate;\n break;\n }\n }\n if (!referenceNode) {\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n const close = this.motif.options.closeFragment as unknown as Node | undefined;\n referenceNode = (close && insertHost && close.parentNode === insertHost) ? close : null;\n } else {\n referenceNode = null;\n }\n }\n\n if (!c.isVisible) {\n const cfg = (c as any).motif.options?.hideStrategy ?? 'auto';\n const isFromListOrKeyed = !!((c as any).motif.options?.__fromList || typeof ((c as any).motif.options as any)?.indexkey !== 'undefined' || typeof (c as any).motif.options?.__key !== 'undefined');\n const strategy: 'placeholder' | 'detach' = cfg === 'placeholder' ? 'placeholder' : (cfg === 'detach' ? 'detach' : (isFromListOrKeyed ? 'detach' : 'placeholder'));\n if (strategy === 'placeholder') {\n if (!(c as any).motif.options.placeholder) {\n (c as any).motif.options.placeholder = dom.createComment(\"h\");\n }\n controlElement = ((c as any).motif.options.placeholder as unknown as Node);\n } else {\n return;\n }\n }\n\n if (insertHost && enterModeOf(this) === 'out-in') {\n const wait = pendingLeaves(insertHost, controlElement);\n if (wait) {\n c._base._enterSeq = (c._base._enterSeq ?? 0) + 1;\n wait.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n const parentNode = appendableElement?.element as Node | undefined;\n if (controlElement && parentNode && (controlElement === parentNode || controlElement.contains(parentNode))) {\n reportWarning('MJX104', []);\n\n } else {\n if (referenceNode) {\n try {\n appendableElement?.element.insertBefore(controlElement!, referenceNode);\n } catch {\n\n appendableElement?.element.appendChild(controlElement!);\n }\n } else {\n appendableElement?.element.appendChild(controlElement!);\n }\n }\n if (c.isVisible) {\n const enteredInBuild = !cisBuilt && c._base._enterSeq !== enterSeq;\n !enteredInBuild && wantsEnterTransition(c) && c.motif.options.transition.enterTransition(() => { });\n if (cisBuilt) {\n ComponentHelper.activateTree(c);\n }\n }\n },\n getContent(this: ComponentBase): any {\n if (this.isDisposed || !this.element) { return null; }\n if ((this.element as Node).nodeType == Node.COMMENT_NODE) {\n this.motif.options.cache?.appendChild(this.element as Node);\n this.controls.forEach(child => {\n this.motif.options.cache?.appendChild(ComponentHelper.getContent.call(child) as Node);\n });\n this.motif.options.cache?.appendChild(this.motif.options.closeFragment!);\n return this.motif.options.cache;\n } else {\n return this.element;\n }\n },\n routerClassing(this: ComponentBase, value: RouterClassingSettings) {\n try {\n const type = value.to;\n const path = value.path;\n if (this.isDisposed) return;\n\n const router = this.context?.router;\n if (!router) return;\n\n const requestPath = router.uri.startsWith('/') ? router.uri : '/' + router.uri;\n const targetPath = path ?? '';\n\n const exact = isExactMatch(requestPath, targetPath);\n\n /* ---------- Active (segment‑eşleşme, tam eşleşme dahil) ---------- */\n const active = exact || startsWithPath(requestPath, targetPath);\n\n if (value.activeClass && (type === 'all' || type === 'active')) {\n const clsList = value.activeClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, active));\n }\n\n if (active && (type === 'all' || type === 'active')) {\n value.onActive?.();\n } else if ((type === 'all' || type === 'active')) {\n value.offActive?.();\n }\n\n /* ---------- Exact (tam eşleşme) ---------- */\n if (value.exactClass && (type === 'all' || type === 'exact')) {\n const clsList = value.exactClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, exact));\n }\n\n if (exact && (type === 'all' || type === 'exact')) {\n value.onExact?.();\n } else if ((type === 'all' || type === 'exact')) {\n value.offExact?.();\n }\n } catch (error) {\n\n }\n\n }\n}\n\nfunction removeComponentDom(c: any, node: Node, alsoPlaceholder: boolean): void {\n const opts = c.motif?.options;\n const parent = node.parentNode;\n if (node.nodeType === Node.COMMENT_NODE) {\n if (!parent) return;\n const close = (opts?.closeFragment as unknown as Node | undefined) || null;\n if (close) {\n let current: Node | null = node;\n while (current) {\n const after: Node | null = current.nextSibling;\n try { parent.removeChild(current); } catch { }\n if (current === close) break;\n current = after;\n }\n } else {\n try { parent.removeChild(node); } catch { }\n }\n if (!alsoPlaceholder) return;\n } else if (parent) {\n try { parent.removeChild(node); } catch { }\n if (!alsoPlaceholder) return;\n }\n const placeholder = opts?.placeholder as Node | undefined;\n if (placeholder && placeholder.parentNode) {\n try { placeholder.parentNode.removeChild(placeholder); } catch { }\n }\n}\n\nfunction detachDomWithAnimation(c: any): void {\n const node = c.element as unknown as Node | null;\n if (!node || c._keepElementOnDispose === true) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n });\n } catch {\n removeComponentDom(c, node, false);\n }\n}\n\nasync function detachDomWithAnimationAsync(c: any): Promise<void> {\n const node = c.element as unknown as Node | null;\n if (!node || c._keepElementOnDispose === true) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n return new Promise<void>((resolve) => {\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n resolve();\n });\n } catch {\n removeComponentDom(c, node, false);\n resolve();\n }\n });\n}\n\nfunction disposeShallow(c: any): void {\n if (c.isDisposed) return;\n ComponentHelper.callDisposing.call(c, c);\n try {\n c._base._offAll();\n } catch {\n\n }\n c.motif.stopAnimations();\n\n c._base._deactivateBindings();\n if (c.controls?.items?.length) {\n for (const child of c.controls.items) {\n try {\n (child as any)._base._disposeShallow();\n } catch {\n\n }\n }\n }\n ComponentHelper.callDisposed.call(c, c);\n safeCall(() => { c._base.emiters.clear(); }, 'disposeShallow.emiters');\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n}\n\nfunction deepCleanup(c: any): void {\n try { c.parent = null; } catch { }\n\n try {\n c._eventHandlers?.clear();\n } catch {\n\n }\n c._eventHandlers = undefined;\n\n try { c.class?._countsStore?.clear(); } catch { }\n try { c.class?._watchersStore?.clear(); } catch { }\n try { c.attr?._attrMapStore?.clear(); } catch { }\n try { c.attr?._watchersStore?.clear(); } catch { }\n try {\n if (c.motif.options) {\n c.motif.options.cache = undefined;\n c.motif.options.closeFragment = undefined;\n c.motif.options.placeholder = undefined;\n }\n } catch {\n\n }\n try { c.element = null; } catch { }\n try { c.props = undefined; } catch { }\n try { c.childs = undefined; } catch { }\n try { c.class = undefined; } catch { }\n try { c.attr = undefined; } catch { }\n try { c.parent = null; } catch { }\n\n try { c.motif.options = undefined; } catch { }\n const keys = Object.keys(c);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'motif') continue;\n try { c[key] = undefined; } catch { }\n }\n c.isDisposed = true;\n}\n\nconst DISPOSE_STARTED = Promise.resolve();\n\nfunction subtreeDisposesSync(c: any, root: boolean): boolean {\n if (!root && c._disposing && !c.isDisposed) return false;\n if (c.disposeAsync !== ComponentBase.prototype.disposeAsync) return false;\n const opts = c.motif?.options;\n if (opts) {\n if (opts.transitionOut) return false;\n const t = opts[TRANSITION_SLOT] as TransitionApi | undefined;\n if (t) {\n if (t.activeAnimations && t.activeAnimations.length > 0) return false;\n if (t.activeCssCancel) return false;\n if (t.classes || (t.name && t.name.length > 0)) return false;\n }\n }\n const items = c.controls?.items;\n if (items) {\n for (let i = 0; i < items.length; i++) {\n const child = items[i];\n if (child && !child.isDisposed && !subtreeDisposesSync(child, false)) return false;\n }\n }\n return true;\n}\n\nconst teardownApplications = new WeakMap<object, Application>();\n\nfunction owningApplication(c: any): Application | null {\n for (let p = c; p; p = p.parent) {\n if (p.application) return p.application;\n const recorded = teardownApplications.get(p);\n if (recorded) return recorded;\n }\n return Application.main ?? null;\n}\n\nfunction disposePrefix(c: any, options: IDisposeOptions, asChild: boolean): void {\n const ctx = asChild ? 'disposeAsync' : 'dispose';\n if (Application._disposingCount > 0) {\n const app = owningApplication(c);\n if (app && app.state === 'disposing') teardownApplications.set(c, app);\n }\n if (!asChild && options?.skipLeaveTransition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n safeCall(() => { ComponentHelper.callDisposing.call(c, c); }, ctx + '.callDisposing');\n c._base._offAll();\n c._base._deactivateBindings();\n safeCall(() => { c.parent?.controls?.silentDetach?.(c, true); }, ctx + '.silentDetach');\n}\n\nfunction disposeFinish(c: any, options: IDisposeOptions, asChild: boolean): void {\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n if (asChild) {\n c.controls.items = [];\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'disposeAsync.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'disposeAsync.emiters');\n if (options?.deep) {\n c._base._deepCleanup();\n }\n return;\n }\n c.element = null;\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'dispose.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'dispose.emiters');\n c._base._offAll();\n c._base._deepCleanup();\n}\n\nasync function disposeRemainderAsync(c: any, options: IDisposeOptions, asChild: boolean, leave: Promise<void> | undefined): Promise<void> {\n if (leave) {\n await leave;\n } else {\n if (asChild) {\n await c.motif.stopAnimations();\n } else if (peekTransition(c)?.skipNextLeave) {\n await c.motif.stopAnimations();\n }\n await c._base._detachDomWithAnimationAsync();\n }\n if (!asChild && c.constructor.name !== 'TransportTo') {\n await disposeContentBlocks(c);\n }\n const childOptions: IDisposeOptions = { deep: options?.deep };\n await safeCallAsync(async () => {\n if (c.isDisposed) { return; }\n const ctrls = Array.from(c.controls.items) as any[];\n if (ctrls.length) {\n await Promise.all(ctrls.map(child => asChild\n ? safeCallAsync(async () => { await child.disposeAsync(childOptions); }, 'disposeAsync.disposeAsyncChildren.handler')\n : (async () => {\n try {\n await child.disposeAsync(childOptions);\n } catch (error) {\n reportError('MJX107', error);\n }\n })()));\n }\n }, asChild ? 'disposeAsync.disposeAsyncChildren' : 'dispose.disposeAsync');\n if (!asChild && c.isDisposed) { return; }\n disposeFinish(c, options, asChild);\n}\n\nfunction disposeRemainderSync(root: any, options: IDisposeOptions, asChild: boolean, rootDetached: boolean): Promise<void>[] | null {\n const childOptions: IDisposeOptions = { deep: options?.deep };\n const nodes: any[] = [root];\n const parents: number[] = [-1];\n let pending: Promise<void>[] | null = null;\n if (!rootDetached) detachDomWithAnimation(root);\n for (let n = 0; n < nodes.length; n++) {\n const node = nodes[n];\n if (node.isDisposed) continue;\n const items = node.controls?.items;\n if (!items || items.length === 0) continue;\n const ctrls = Array.from(items) as any[];\n for (let j = 0; j < ctrls.length; j++) {\n const child = ctrls[j];\n if (child.isDisposed) continue;\n if (child._disposing) {\n (pending ??= []).push(child._disposing);\n continue;\n }\n try {\n retireServiceOwner(child);\n child._disposing = root._disposing;\n disposePrefix(child, childOptions, true);\n detachDomWithAnimation(child);\n nodes.push(child);\n parents.push(n);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n const count = nodes.length;\n if (count > 1) {\n const heights = new Array<number>(count).fill(0);\n for (let i = count - 1; i >= 1; i--) {\n const p = parents[i];\n if (heights[i] + 1 > heights[p]) heights[p] = heights[i] + 1;\n }\n const order: number[] = [];\n for (let i = 1; i < count; i++) order.push(i);\n order.sort((a, b) => heights[a] - heights[b] || a - b);\n for (let k = 0; k < order.length; k++) {\n try {\n disposeFinish(nodes[order[k]], childOptions, true);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n if (pending) return pending;\n if (!asChild && root.isDisposed) { return null; }\n disposeFinish(root, options, asChild);\n return null;\n}\n\nconst BASE_PROTO = {\n _offAll(this: BaseCtx): void {\n const c: any = this.owner;\n if (!c._eventHandlers) return;\n for (const [full, set] of c._eventHandlers) {\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n for (const rec of set) {\n if (!rec || !rec.wrapped) { continue; }\n\n if ((rec as any).domEvent === false) { continue; }\n const cap = (rec as any).capture === true;\n try {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap);\n } catch { }\n\n try {\n if ((rec as any).capture === undefined) {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n } catch { }\n }\n }\n c._eventHandlers.clear();\n c._eventHandlers = undefined;\n },\n _deactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.deactivateAll(); } catch { }\n },\n _activateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.activateAll(); } catch { }\n },\n _reactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.reActivateAll(); } catch { }\n },\n _activatePreBindings(this: BaseCtx): void {\n if (this.prebinding_Activated) return;\n const c: any = this.owner;\n const registered = c.bindings?._items as IBaseBinding[] | undefined;\n if (registered && registered.length > 0) {\n c.bindings.items.filter((x: IBaseBinding) => x.propertyName == \"isWait\" || x.propertyName == \"display\").forEach((b: IBaseBinding) => {\n b.activate();\n }\n );\n }\n this.prebinding_Activated = true;\n },\n _detachDomWithAnimation(this: BaseCtx): void {\n detachDomWithAnimation(this.owner);\n },\n _detachDomWithAnimationAsync(this: BaseCtx): Promise<void> {\n return detachDomWithAnimationAsync(this.owner);\n },\n _disposeShallow(this: BaseCtx): void {\n disposeShallow(this.owner);\n },\n _deepCleanup(this: BaseCtx): void {\n deepCleanup(this.owner);\n },\n};\n\nfunction createBaseCtx(owner: ComponentBase): BaseCtx {\n const base: BaseCtx = Object.create(BASE_PROTO);\n base.owner = owner;\n base.prebinding_Activated = false;\n base.emiters = new ComponentEmiter(owner);\n return base;\n}\n\nconst fragmentCloseMarkers = new WeakMap<Comment, Comment>();\n\nvar globalId = 0;\n\nconst LIFECYCLE_X_EVENTS = new Set([\n 'building', 'built', 'initializing', 'initialized', 'disposing', 'disposed',\n 'config', 'configured', 'visibilitychanged', 'activated', 'deactivated'\n]);\n\nexport interface IDisposeOptions {\n deep?: boolean;\n skipLeaveTransition?: boolean;\n}\n\nexport interface SiblingsApi {\n all: () => ComponentBase[] | undefined;\n next: () => ComponentBase | undefined;\n prev: () => ComponentBase | undefined;\n nextAll: () => any;\n prevAll: () => any;\n}\n\nconst RAW_APPLICATION = Symbol('motif.rawApplication');\nconst SCOPED_SUBSCRIBERS = new Set<PropertyKey>(['on', 'onRouterChanged']);\n\n/**\n * Uygulamanın bileşene bağlı görünümü. `on`/`onRouterChanged` aboneliklerini sahibin ömrüne\n * kaydeder; diğer tüm üyeler (alanlar, metotlar, atamalar) uygulamanın kendisine yönlenir.\n */\nfunction createScopedContext(app: Application, owner: ComponentBase): Application {\n const cache = new Map<PropertyKey, { fn: Function; bound: Function }>();\n return new Proxy(app, {\n get(target, prop) {\n if (prop === RAW_APPLICATION) { return target; }\n const value = Reflect.get(target, prop, target);\n if (typeof value !== 'function') { return value; }\n const hit = cache.get(prop);\n if (hit && hit.fn === value) { return hit.bound; }\n const bound = SCOPED_SUBSCRIBERS.has(prop)\n ? (...args: any[]) => owner._trackContextSubscription(value.apply(target, args))\n : value.bind(target);\n cache.set(prop, { fn: value, bound });\n return bound;\n },\n set(target, prop, value) {\n return Reflect.set(target, prop, value, target);\n },\n });\n}\n\nexport abstract class ComponentBase<TElement extends ElementType = any, TProps extends object = any> extends Disposable {\n\n public readonly motif: ComponentMotif<this, TProps> = new ComponentMotif<this, TProps>(this, new ComponentOptionsImpl(this) as unknown as ComponentMotif<this, TProps>['options']);\n\n public element: TElement;\n public props: TProps;\n public isBuilt: boolean = false;\n public isInitialized: boolean = false;\n public isDisposed: boolean = false;\n public isConfigured: boolean = false;\n public isPainting: boolean = false;\n public isPainted: boolean = false;\n public isVisible: boolean = true;\n public controls: ControlCollection = new ControlCollection(this);\n\n private _eventHandlers?: Map<string, Set<{\n original: (sender: ComponentBase, e: EventArgs) => any,\n wrapped?: (e: Event) => void,\n dom?: boolean,\n domEvent?: boolean,\n capture?: boolean,\n type?: string\n }>>;\n private _isWait: boolean = false;\n public class: IClass<TElement> = new controlClass(this as any) as any as IClass<TElement>;\n public attr: controlAttribute<TElement> = new controlAttribute(this as any);\n public bindings = new BindingCollection(this);\n /** style(fn) izleyicisi: tek tek tutulur, yeniden çağrıda önceki durdurulur. */\n private _styleFx?: { stop: () => void; binding: IBaseBinding };\n\n public useModel<TModel>(modelCtor: TModel): UnwrapValueRefs<TModel> {\n return reactive<TModel>(modelCtor);\n }\n\n private _computeHideStrategy(): 'placeholder' | 'detach' {\n const cfg = this.motif.options?.hideStrategy ?? 'auto';\n if (cfg === 'placeholder') return 'placeholder';\n if (cfg === 'detach') return 'detach';\n if (this.motif.options?.__fromList || typeof (this.motif.options as any)?.indexkey !== 'undefined' || typeof this.motif.options?.__key !== 'undefined') {\n return 'detach';\n }\n return 'placeholder';\n }\n\n private _isInDom(): boolean {\n try {\n if (!this.element) return false;\n const node = this.element as unknown as Node;\n if (node.nodeType === Node.COMMENT_NODE) {\n return !!node.parentNode;\n }\n return !!node.parentNode;\n } catch { return false; }\n }\n public set isWait(value: boolean) {\n this._isWait = value;\n if (this.isBuilt) {\n if (value) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n return;\n }\n if (value === false && this.parent && this.parent.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n\n }\n public get isWait(): boolean {\n return this._isWait;\n }\n\n constructor(element: TElement, props: TProps = {} as TProps) {\n super();\n recordServiceOwner(this);\n if (this.onElementCreating) {\n this.element = this.onElementCreating.call(this);\n } else if ((props as any)?.onElementCreating) {\n this.element = (props as any).onElementCreating.call(this);\n } else {\n this.element = element;\n }\n\n if (props) {\n const refs = extractRefs(props, this);\n if (refs.length > 0) {\n for (const fn of takePendingRefs(this, refs)) {\n callReported(() => fn(this), 'MJX122', 'ref');\n }\n }\n }\n\n props && ParseProps(props, this);\n applyComponentOptions((props as any)?.options, this);\n this.props = props;\n\n // (class/style/id/tabindex/role/aria-*/data-*) kök düğüme (root node) düşer, prop'lar this.props'ta kalır.\n if (props) {\n const ctor0 = new.target as any;\n const plain = ctor0 === ComponentBase || Object.getPrototypeOf(ctor0) === ComponentBase;\n if (plain) applyPlainElementProps(props, this);\n else applyFallthroughProps(props, this);\n }\n\n\n ComponentHelper.callOnInitializing(this);\n if (this.isDisposed) return;\n this.controls.onAdd = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n if (this.isWait || this.parent?.isWait) return;\n ComponentHelper.internalBuild.call(this, c);\n\n }\n\n this.controls.onAddBeforeBuild = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n }\n\n\n this.controls.onRemove = (c) => {\n if (this._eventHandlers?.has('controlremoved')) this.motif.trigger('controlremoved', { control: c });\n }\n ComponentHelper.callOnInitialized(this);\n\n const ctor = new.target as any;\n const isBaseCtor = ctor === ComponentBase || Object.getPrototypeOf(ctor) === ComponentBase;\n if (isBaseCtor) {\n ComponentHelper.callConfig(this);\n } else {\n this._base._configDeferred = true;\n }\n\n }\n\n\n\n\n\n\n public childs?: any[];\n protected _base: BaseCtx = createBaseCtx(this);\n public parent: ComponentBase | null = null;\n public onElementCreating?(): TElement;\n public initializeComponent?(sender: ComponentBase): void;\n public onBuilding?(sender: ComponentBase, e: EventArgs): void;\n public onBuilt?(sender: ComponentBase, e: EventArgs): void;\n public onMounted?(sender: ComponentBase, e: EventArgs): void;\n public onInitializing?(sender: ComponentBase, e: EventArgs): void;\n public onInitialized?(sender: ComponentBase, e: EventArgs): void;\n public onDisposing?(sender: ComponentBase, e: EventArgs): void;\n public onDisposed?(sender: ComponentBase, e: EventArgs): void;\n public onConfig?(sender: ComponentBase, e: EventArgs): void;\n public onConfigured?(sender: ComponentBase, e: EventArgs): void;\n public onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni outlet'ten ayrılıp önbelleğe alındığında (RoutingEngine) tetiklenir. */\n public onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni önbellekten outlet'e yeniden bağlandığında (RoutingEngine) tetiklenir. */\n public onActivated?(sender: ComponentBase, e: EventArgs): void;\n public view?(): ComponentBase;\n private _scopedContext?: Application;\n\n public get context(): Application {\n const parentCtx: any = this.parent?.context;\n const app: Application = parentCtx?.[RAW_APPLICATION] ?? parentCtx ?? teardownApplications.get(this) ?? Application.main;\n if (!app) { return app; }\n if ((this._scopedContext as any)?.[RAW_APPLICATION] !== app) {\n this._scopedContext = createScopedContext(app, this);\n }\n return this._scopedContext!;\n }\n /** @internal context üzerinden açılan aboneliği bileşenin ömrüne bağlar; iptal fonksiyonunu döndürür. */\n public _trackContextSubscription(off: () => void): () => void {\n if (typeof off !== 'function') { return off; }\n if (this.isDisposed) { off(); return off; }\n const d = this._register(disposableCore.toDisposable(off));\n return () => { this._disposables.detach(d); off(); };\n }\n\n public build(building: boolean = true) {\n checkReservedMembers(this);\n ComponentHelper.callConfigured(this);\n this._base._activatePreBindings();\n if (this.isDisposed || !this.element || this.isWait) { return; }\n if (this.isBuilt || this.isWait) {\n return;\n }\n\n ComponentHelper.callBuilding(this);\n if (this.isDisposed) { return; }\n var ph: any = this.element;\n if (building) {\n ph = dom.createDocumentFragment();\n }\n const isFragment = (typeof this.element !== 'string' && (this.element as unknown as Node).nodeType === Node.COMMENT_NODE);\n if (isFragment) {\n this.motif.options.cache = dom.createDocumentFragment();\n (this.element as any).textContent = \"[\";\n this.motif.options.cache!.appendChild(this.element as unknown as Node);\n }\n if (this.isBuilt) {\n return;\n }\n\n\n ComponentHelper.callInitializeComponent(this);\n if (this.isDisposed) { return; }\n\n if (this.view) {\n const templ = this.view();\n this.controls.add(templ);\n if (this.isDisposed) { return; }\n }\n\n const deferredSelectValue = (this.element as any)?.nodeName === 'SELECT'\n ? this.bindings.items.filter(b => b.propertyName === 'value')\n : [];\n if (deferredSelectValue.length) {\n try {\n this.bindings.items.filter(b => !deferredSelectValue.includes(b)).forEach(b => b.activate());\n } catch { }\n } else {\n this._base._activateBindings();\n }\n\n for (const element of this.controls.items.filter(c => !c.isWait)) {\n element.parent = this;\n element.build(false);\n if (element.isWait) {\n continue;\n }\n var target = isFragment ? this.motif.options.cache : this.element;\n if (building) {\n if (element.motif.options.cache) {\n ph.appendChild(element.motif.options.cache);\n } else {\n ph.appendChild(element.element);\n }\n } else {\n if (element.motif.options.cache) {\n (target as any).appendChild(element.motif.options.cache);\n } else {\n (target as any).appendChild(element.element);\n }\n }\n if (element._base?._inactive && element.isVisible) {\n ComponentHelper.activateTree(element);\n }\n\n }\n\n if (this.isDisposed) { return; }\n if (wantsEnterTransition(this)) {\n const node = this.element as unknown as Node | null;\n if (node && (node as any).isConnected) {\n this.motif.options.transition.enterTransition(() => { });\n } else {\n const seq = this._base._enterSeq;\n queueMicrotask(() => {\n if (!this.isDisposed && this.isVisible && this.motif.options?.transition && this._base._enterSeq === seq) {\n this.motif.options.transition.enterTransition(() => { });\n }\n });\n }\n } else {\n clearNavDirection(this);\n }\n if (building) {\n try {\n var target = isFragment ? this.motif.options.cache : this.element;\n if ((target as any).nodeType === Node.TEXT_NODE) {\n (target as Text).appendData(ph.textContent);\n } else {\n if ((target as any).appendChild) {\n (target as any).appendChild(ph);\n } else {\n (target as any).append(ph);\n }\n }\n } catch (error) {\n }\n\n }\n if (deferredSelectValue.length) {\n try { deferredSelectValue.forEach(b => b.activate()); } catch { }\n }\n if (isFragment) {\n this.motif.options.closeFragment = dom.createComment(\"]\");\n this.motif.options.cache!.appendChild(this.motif.options.closeFragment!);\n if ((this.element as Node).nodeType === Node.COMMENT_NODE && this.motif.options.closeFragment) {\n fragmentCloseMarkers.set(this.element as Comment, this.motif.options.closeFragment);\n }\n }\n\n this.isBuilt = true;\n ComponentHelper.callBuilt(this);\n ComponentHelper.scheduleMounted(this);\n\n }\n\n public setState() {\n this.controls.forEach(c => {\n c.setState();\n });\n this._base._reactivateBindings();\n }\n\n public reState() {\n this._base._reactivateBindings();\n this.controls.forEach(c => {\n c.reState();\n });\n }\n\n public setText(value: string) {\n if (this.isDisposed || !this.element) { return; }\n if (isComponentLike(value)) { warnComponentInTextBinding(this, value); return; }\n if (this.element) {\n (this.element as any).textContent = value;\n }\n }\n\n public style(content: CSSStyleDeclaration | string | Array<any> | Object | (() => any)) {\n if (this.isDisposed) { return this as any }\n const styleObj = (this.element as any)?.style as CSSStyleDeclaration | undefined;\n if (!styleObj) return this;\n if (typeof content === 'function') {\n this._stopStyleEffect();\n let prevKeys: string[] = [];\n let prevWasString = false;\n const run = () => effect(() => {\n const v = (content as () => any)();\n if (this.isDisposed) return;\n const so: any = (this.element as any)?.style;\n if (!so) return;\n if (typeof v === 'string') {\n so.cssText = v;\n prevKeys = [];\n prevWasString = true;\n } else if (v && typeof v === 'object') {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) {\n if (!(k in v)) { try { so[k] = ''; } catch { } }\n }\n Object.assign(so, v);\n prevKeys = Object.keys(v);\n } else {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) { try { so[k] = ''; } catch { } }\n prevKeys = [];\n }\n });\n let current = run();\n const stop = () => { try { current(); } catch { } };\n const binding: IBaseBinding = {\n propertyName: '__style',\n dataSource: null,\n activate() { /* no-op */ },\n reActivate() {\n stop();\n current = run();\n },\n deactivate() { stop(); }\n } as any;\n try { this.bindings.add(binding); } catch { }\n this._styleFx = { stop, binding };\n return this;\n }\n if (typeof content === 'string') {\n (styleObj as any).cssText = content;\n } else if (content && typeof content === 'object') {\n Object.assign(styleObj as any, content);\n }\n return this;\n }\n\n private _stopStyleEffect() {\n const fx = this._styleFx;\n if (!fx) return;\n this._styleFx = undefined;\n try { fx.stop(); } catch { }\n try { this.bindings.remove(fx.binding); } catch { }\n }\n\n private _addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void) {\n this.motif.on(event as any, handler as any);\n }\n private async _show(): Promise<any> {\n\n\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) { return; }/* A*/\n\n if (this.parent && enterModeOf(this.parent) === 'out-in') {\n const showHost = ((this.motif.options.placeholder as Node | undefined)?.parentNode)\n ?? (findAppendableComponent(this.parent)?.element as Node | undefined);\n const wait = pendingLeaves(showHost, this.element as unknown as Node);\n if (wait) {\n const seq = this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n return wait.then(() => {\n if (this.isDisposed || this._base._showSeq !== seq) return;\n return this._show();\n });\n }\n }\n\n if (peekTransition(this)?.activeAnimations?.length) {\n safeCall(async () => {\n await Promise.all(this.motif.options.transition.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n }, 'show.waitForLeaveAnimations');\n }\n /** A*/\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n const needAttach = !this._isInDom() && this.parent && this.parent.isBuilt && !this.isWait;\n this.isVisible = true;\n if (needAttach) {\n ComponentHelper.internalBuild.call(this.parent!, this);\n }\n return;\n } else {\n /** A*/\n const placeholderParent = (this.motif.options.placeholder as Node)?.parentElement;\n const expectedParent = findAppendableComponent(this.parent!)?.element;\n\n if (this.motif.options.placeholder && placeholderParent && placeholderParent !== expectedParent) {\n reportWarning('MJX106', []);\n this.isVisible = true;\n if (this.parent?.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n return;\n }\n\n /** A*/\n wantsEnterTransition(this) && this.motif.options.transition.enterTransition(() => { });\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n c.motif.show();\n });\n this.isVisible = true;\n ComponentHelper.activateTree(this, false);\n return;\n }\n var parent = (this.motif.options.placeholder as Node)?.parentElement;\n if (parent) {\n parent.replaceChild(this.element as Node, this.motif.options.placeholder!);\n this.isVisible = true;\n ComponentHelper.activateTree(this);\n }\n }\n }\n private async _hide(): Promise<any> {\n\n if (this.isDisposed || !this.element) { return; }\n this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n if (!this.isVisible) { return; }\n\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n await this._base._detachDomWithAnimationAsync();\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n return;\n } else {\n const transition = this.motif.options.transition;\n const skip = transition.skipNextLeave === true;\n if (skip) transition.skipNextLeave = false;\n const finish = () => {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n if (skip && c.isVisible && c.element && !c.isDisposed && c.motif.options?.transition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n c.motif.hide();\n });\n this.isVisible = false;\n ComponentHelper.deactivateTree(this, false);\n return;\n }\n var parent = (this.element as Node).parentElement;\n // if (!parent) {\n // var parentComp = findAppendableComponent(this.parent!);\n // if (parentComp && parentComp.isBuilt) {\n // } else {\n if (parent) {\n if (!this.motif.options.placeholder) this.motif.options.placeholder = dom.createComment(\"h\");\n parent.replaceChild(this.motif.options.placeholder!, this.element as Node);\n\n }\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n };\n if (skip) {\n finish();\n return;\n }\n return transition.leaveTransition(finish).finished;\n }\n\n }\n private _toggle() {\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n }\n\n private async _on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event);\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2).toLowerCase();\n if (xName === \"mounted\") {\n let sub: IDisposable | undefined;\n const stop = onElementAttached(this.element as Element, () => {\n if (sub) {\n this._base._mountedSubs?.get(cb)?.delete(sub);\n this._disposables.detach(sub);\n }\n if (this.isDisposed) { return; }\n const ev = { cancel: false } as EventArgs;\n callReported(() => (cb as any).length <= 1 ? (cb as any)(ev) : cb(this, ev as any), 'MJX122', 'x:mounted');\n });\n if (stop) {\n sub = this._register(disposableCore.toDisposable(stop));\n const subs: Map<Function, Set<IDisposable>> = this._base._mountedSubs ??= new Map();\n let set = subs.get(cb);\n if (!set) { set = new Set(); subs.set(cb, set); }\n set.add(sub);\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.on(\"on\" + xName, cb as any);\n return this;\n }\n }\n\n const [name, ...mods] = full.split(\":\");\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n const options: AddEventListenerOptions = {};\n if (mods.includes(\"once\")) options.once = true;\n if (mods.includes(\"passive\")) options.passive = true;\n if (mods.includes(\"capture\")) options.capture = true;\n\n const wrapped = (ev: Event) => {\n if (mods.includes(\"self\") && ev.target !== this.element) return;\n if (mods.includes(\"trusted\") && !ev.isTrusted) return;\n let res: any;\n try {\n if (cb && (cb as any).length <= 1) {\n res = (cb as any)(ev as any);\n } else if (cb) {\n res = cb(this, ev as any);\n }\n } catch (error) {\n reportError('MJX123', error, evt);\n }\n if (res && typeof res.then === 'function') {\n res.then(undefined, (error: unknown) => reportError('MJX123', error, evt));\n }\n const prevent = () => { if (typeof (ev as any)?.preventDefault === 'function') ev.preventDefault(); };\n const stop = () => { if (typeof (ev as any)?.stopPropagation === 'function') ev.stopPropagation(); };\n if (mods.includes(\"prevent\")) { prevent(); }\n if (mods.includes(\"stop\")) { stop(); }\n if (res && (res as any).cancel === true) {\n prevent();\n stop();\n }\n };\n if (domEvent) {\n (this.element as any).addEventListener(evt, wrapped as EventListener, options);\n }\n\n\n this._eventHandlers ??= new Map();\n const key = full.toLowerCase();\n const set = this._eventHandlers.get(key) ?? new Set();\n set.add({ original: cb as any, wrapped, capture: !!options.capture, domEvent: !!domEvent, type: evt });\n this._eventHandlers.set(key, set);\n this._register(disposableCore.toDisposable(() => {\n this.motif.off(event, cb);\n }));\n return this;\n }\n\n private async _trigger(event: any, ev: any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n const name = String(event).toLowerCase();\n safeCall(() => {\n var eh = this._eventHandlers?.get(name);\n if (eh) {\n eh.forEach(rec => {\n try {\n (rec.wrapped as any)(ev);\n } catch {\n\n }\n });\n }\n }, 'trigger');\n return this;\n }\n private async _off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event).toLowerCase();\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2);\n if (xName === \"mounted\") {\n const set = this._base._mountedSubs?.get(cb);\n if (set) {\n this._base._mountedSubs.delete(cb);\n for (const sub of set) {\n this._disposables.delete(sub);\n }\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.off(\"on\" + xName, cb as any);\n }\n return this;\n }\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n if (!this._eventHandlers) return this;\n const set = this._eventHandlers.get(full);\n if (!set) return this;\n for (const rec of Array.from(set)) {\n if (rec.original === (cb as any)) {\n if ((rec as any).domEvent !== false) {\n const cap = (rec as any).capture === true;\n safeCall(() => { (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap); }, 'off.removeEventListener');\n safeCall(() => {\n if ((rec as any).capture === undefined) {\n (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n }, 'off.removeEventListener.fallback');\n }\n set.delete(rec);\n break;\n }\n }\n if (set.size === 0) this._eventHandlers.delete(full);\n return this;\n }\n /** Süren bertaraf: ikinci bir dispose/disposeAsync çağrısı yenisini başlatmaz, bunu bekler. */\n private _disposing?: Promise<void>;\n\n public override dispose(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, false);\n }\n\n private async _disposeCore(options: IDisposeOptions, asChild: boolean): Promise<void> {\n disposePrefix(this, options, asChild);\n let leave: Promise<void> | undefined;\n if (!asChild && !peekTransition(this)?.skipNextLeave) {\n leave = this._base._detachDomWithAnimationAsync();\n }\n await undefined;\n if (liveContentBlocks.live === 0 && subtreeDisposesSync(this, true)) {\n const pending = disposeRemainderSync(this, options, asChild, leave !== undefined);\n if (pending) {\n await Promise.all(pending);\n if (!asChild && this.isDisposed) { return; }\n disposeFinish(this, options, asChild);\n }\n return;\n }\n await disposeRemainderAsync(this, options, asChild, leave);\n }\n\n public disposeAsync(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, true);\n }\n\n\n protected async _clear(): Promise<any> {\n if (this.isDisposed == true) { return; }\n if (this.motif.options && this.motif.options.disableDisposal) { return; };\n await this.controls.clearAsync();\n //if (this.onupdated) this.onupdated(this as any, { data: this.model, field: '', source: 'clear' })\n // return new Promise((resolveOuter: any) => {\n // this.controls.forEach(async (control, index) => {\n // if (index === this.controls.length - 1) {\n // dom.window.setTimeout(resolveOuter, 0);\n // await control.dispose();\n }\n\n using<T>(waitable: Promise<any>, onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected?: ((reason: any) => never | PromiseLike<never>) | undefined | null) {\n waitable.then(\n (value: T) => { this && !this.isDisposed && onfulfilled ? onfulfilled(value) : ''; },\n (reason: any) => { this && !this.isDisposed && onrejected ? onrejected(reason) : '' });\n }\n doWork<T>(waitable: Promise<T> | PromiseLike<T>): Promise<T> {\n return Promise.resolve(waitable).then((value: T) => {\n if (this && !this.isDisposed) {\n return value\n } else {\n return motifError('MJX108');\n };\n }) as Promise<T>;\n }\n\n private _siblingsApi?: SiblingsApi;\n private _siblingsSet?: boolean;\n\n get siblings(): SiblingsApi {\n if (this._siblingsSet) { return this._siblingsApi as SiblingsApi; }\n if (this.isDisposed && !this.motif?.options) { return this._siblingsApi as SiblingsApi; }\n return this._siblingsApi ??= this._createSiblingsApi();\n }\n\n set siblings(value: SiblingsApi) {\n this._siblingsApi = value;\n this._siblingsSet = true;\n }\n\n private _createSiblingsApi(): SiblingsApi {\n return {\n all: () => { return this.parent?.controls.items },\n next: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx + 1];\n },\n prev: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx - 1];\n },\n nextAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(idx + 1);\n },\n prevAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(0, idx);\n }\n };\n }\n\n public get serviceProvider(): ServiceProvider | null {\n let c: ComponentBase | null = this as unknown as ComponentBase;\n while (c) {\n const p = (c as any).provider as ServiceProvider | undefined;\n if (p) return p;\n const recorded = teardownApplications.get(c);\n if (recorded) return recorded.state === 'disposed' ? null : recorded.provider;\n c = c.parent;\n }\n try { return Application.main?.provider ?? null; } catch { return null; }\n }\n\n public getService<T>(token: abstract new (...args: any[]) => T): T | null;\n public getService<T = any>(token: string | symbol | object): T | null;\n public getService(token: any): any {\n try {\n\n const sp = this.serviceProvider;\n if (sp) {\n return sp._getFor(this, token);\n }\n reportWarning('MJX407', [describeServiceToken(token)], { token });\n } catch (err) {\n reportWarning('MJX408', [describeServiceToken(token), String((err as any)?.message ?? err)], { token, error: err });\n }\n return null;\n }\n $(selector: string) {\n if (this.isDisposed || !this.element) {\n return {\n fromDom: () => null,\n fromComponent: () => [] as ComponentBase[]\n };\n }\n var result = {\n fromDom: () => {\n var findContainer = findAppendableComponent(this)?.element;\n var findingTarget;\n if (!findContainer) {\n findingTarget = document;\n } else {\n findingTarget = findContainer;\n }\n if (findingTarget) {\n var elements = findingTarget.querySelectorAll(selector);\n return elements;\n }\n return null;\n },\n fromComponent: () => {\n const findingComponent = findAppendableComponent(this);\n const root = findingComponent ?? this;\n const found: ComponentBase[] = [];\n const walk = (cmp: ComponentBase) => {\n const el = cmp.element as any;\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n const matches: ((sel: string) => boolean) | undefined = (el.matches || el.msMatchesSelector || el.webkitMatchesSelector);\n if (typeof matches === 'function') {\n try { if (matches.call(el, selector)) { found.push(cmp); } } catch { }\n }\n }\n if (cmp.controls && cmp.controls.items && cmp.controls.items.length) {\n for (const child of cmp.controls.items) { walk(child); }\n }\n };\n\n walk(root);\n return found;\n }\n }\n return result;\n }\n\n private async _stopAnimations() {\n const t = peekTransition(this);\n try { t?.activeCssCancel?.(); } catch { }\n try {\n if (t?.activeAnimations?.length) {\n try {\n await Promise.all(t.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n } catch { /* ignore */ }\n }\n\n } catch (error) {\n\n }\n if (this.isDisposed) return;\n if (t) t.activeAnimations = [];\n }\n // return this;\n\n}\n\n\nfunction findContentBlocks(root: ComponentBase, results: ComponentBase[] = []): ComponentBase[] {\n if (!root || root.isDisposed) return results;\n\n if (root.constructor.name === 'TransportTo') {\n results.push(root);\n }\n if (root.controls && root.controls.items) {\n root.controls.items.forEach(child => findContentBlocks(child, results));\n }\n\n return results;\n}\n\nasync function disposeContentBlocks(root: ComponentBase): Promise<any> {\n if (liveContentBlocks.live === 0) return;\n const contentBlocks = findContentBlocks(root);\n return await Promise.all(contentBlocks.map(async (block) => {\n block.motif.options.transition.skipNextLeave = root.motif.options.transition.skipNextLeave;\n for (const element of block.controls.items) {\n element.motif.options.transition.skipNextLeave = block.motif.options.transition.skipNextLeave;\n element.dispose({ skipLeaveTransition: true });\n element.isDisposed = true;\n }\n await block.dispose()\n }));\n}\n\nconst _appliedRefs = new WeakMap<object, Set<Function>>();\n\nexport function takePendingRefs(component: ComponentBase, ref: any): Function[] {\n const fns: Function[] = (Array.isArray(ref) ? ref : [ref]).filter((fn: any) => typeof fn === 'function');\n if (fns.length === 0) return fns;\n let applied = _appliedRefs.get(component);\n if (!applied) {\n applied = new Set();\n _appliedRefs.set(component, applied);\n }\n const pending: Function[] = [];\n for (const fn of fns) {\n if (applied.has(fn)) continue;\n applied.add(fn);\n pending.push(fn);\n }\n return pending;\n}\n\nconst isCallableRef = (ref: any): boolean => typeof ref === 'function' || Array.isArray(ref);\n\nexport function extractRefs(props: any, component?: ComponentBase): any[] {\n const refs: any[] = [];\n if (!props || typeof props !== 'object') return refs;\n if (Object.prototype.hasOwnProperty.call(props, 'ref')) {\n if (isCallableRef(props.ref)) {\n refs.push(props.ref);\n delete props.ref;\n } else if (component && props.ref && typeof props.ref === 'object') {\n props.ref = component;\n }\n }\n const runover = props.runover;\n if (runover && typeof runover === 'object' && Object.prototype.hasOwnProperty.call(runover, 'ref')) {\n if (isCallableRef(runover.ref)) {\n refs.push(runover.ref);\n const rest = { ...runover };\n delete rest.ref;\n props.runover = rest;\n } else if (component && runover.ref && typeof runover.ref === 'object') {\n runover.ref = component;\n }\n }\n return refs.length === 0 ? refs : ([] as any[]).concat(...refs);\n}\n\nconst LIFECYCLE_HANDLER_LISTS: Record<string, keyof LifecycleStorage> = {\n 'initializecomponent': '_initializeComponentHandlers',\n 'oninitializecomponent': '_onInitializeComponentHandlers',\n 'onbuilding': '_onBuildingHandlers',\n 'onbuilt': '_onBuiltHandlers',\n 'onmounted': '_onMountedHandlers',\n 'oninitializing': '_onInitializingHandlers',\n 'oninitialized': '_onInitializedHandlers',\n 'onconfig': '_onConfigHandlers',\n 'onconfigured': '_onConfiguredHandlers',\n 'onvisibilitychanged': '_onVisibilityChangedHandlers',\n 'onactivated': '_onActivatedHandlers',\n 'ondeactivated': '_onDeactivatedHandlers',\n 'ondisposing': '_onDisposingHandlers',\n 'ondisposed': '_onDisposedHandlers',\n};\n\nfunction collectLifecycleHandlers(component: ComponentBase, lowerKey: string, value: any): boolean {\n const listName = Object.prototype.hasOwnProperty.call(LIFECYCLE_HANDLER_LISTS, lowerKey) ? LIFECYCLE_HANDLER_LISTS[lowerKey] : undefined;\n if (!listName) return false;\n const fns: any[] = Array.isArray(value) ? value : [value];\n if (fns.length === 0 || !fns.every(fn => typeof fn === 'function')) return false;\n (component as any)._base[listName] ??= [];\n const list = (component as any)._base[listName] as Function[];\n for (const fn of fns) {\n if (!list.includes(fn)) list.push(fn);\n }\n return true;\n}\n\nexport function ParseProps(props: any, component: ComponentBase): any {\n if (props) {\n if (component.motif.options.props) {\n Object.assign(component.motif.options.props, props);\n } else {\n component.motif.options.props = {};\n Object.assign(component.motif.options.props, props);\n }\n var keys = Object.keys(props);\n if (keys.length === 0) return;\n keys.forEach(key => {\n if (key == 'initializeComponent' || key == 'oninitializeComponent' || key.startsWith('on')) {\n if (collectLifecycleHandlers(component, key.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n } else if (key == 'childs') {\n const flat: ComponentBase[] = ([] as any[]).concat(...props[key] as any);\n component.childs = flat;\n delete props[key];\n } else if (key === 'transition') {\n applyTransitionProp(props[key], component);\n delete props[key];\n } else if (componentMethods.hasOwnProperty(key.toLowerCase()) || componentMethods.hasOwnProperty(\"on\" + key.toLowerCase())) {\n var eventKey;\n if (!key.toLowerCase().startsWith(\"on\") && key.toLowerCase() !== \"initializecomponent\") {\n eventKey = \"on\" + key;\n } else {\n eventKey = key;\n }\n (component as any)[eventKey] = props[key];\n delete props[key];\n } else if (key.startsWith(\"on\")) {\n\n component.motif.on(key as any, props[key]);\n } else if (key.startsWith(\"x-\")) {\n\n var nkey = key.replace(\"x-\", \"on\");\n if (key.toLowerCase() == \"x-wait\") {\n component.bindings.wait(props[key]);\n\n } else if (key.toLowerCase() == \"x-display\") {\n component.bindings.display(props[key]);\n } else {\n if (collectLifecycleHandlers(component, nkey.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n }\n\n\n delete props[key];\n } else if (key.startsWith(\"runover\")) {\n\n ParseProps(props[key], component);\n delete props[key];\n } else if (key.startsWith(\"preconfig\")) {\n component.motif.options._preconfig = props[key];\n delete props[key];\n } else {\n // var callback = props[key];\n // if (typeof callback === \"function\") {\n // } else {\n }\n });\n }\n}\n\nconst _transitionSources = new WeakMap<ComponentBase, any>();\n\nfunction setTransition(component: ComponentBase, value: any, live: boolean): void {\n const transition = component.motif.options.transition;\n if (typeof value === 'string' && value.length > 0) {\n transition.name = value;\n if (live) transition.classes = undefined;\n } else if (value && typeof value === 'object') {\n if (typeof value.name === 'string' && value.name.length > 0) {\n transition.name = value.name;\n }\n if (!('mode' in value)) {\n transition.classes = value;\n } else {\n const { mode, ...classes } = value;\n if (isTransitionMode(mode)) {\n transition.mode = mode;\n }\n if (Object.keys(classes).length > 0) {\n transition.classes = classes;\n }\n }\n } else if (live) {\n transition.name = '';\n transition.classes = undefined;\n }\n}\n\nexport function applyTransitionProp(value: any, component: ComponentBase): void {\n if (!component || component.isDisposed) return;\n if (value === undefined || value === null) return;\n if (_transitionSources.get(component) === value) return;\n _transitionSources.set(component, value);\n if (typeof value === 'function') {\n component.bindings.watch(() => {\n const current = value();\n if (component.isDisposed) return;\n setTransition(component, current, true);\n });\n return;\n }\n setTransition(component, value, false);\n}\n\nexport function isComponentLike(value: any): boolean {\n if (value instanceof ComponentBase) return true;\n return Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase);\n}\n\nconst _textBindingWarned = new WeakSet<object>();\n\nfunction warnComponentInTextBinding(component: ComponentBase, value: any): void {\n if (_textBindingWarned.has(component)) return;\n _textBindingWarned.add(component);\n reportWarning('MJX204', [], { value: Array.isArray(value) ? `ComponentBase[${value.length}]` : 'ComponentBase' });\n}\n\nconst COMPONENT_OPTION_KEYS = ['hideStrategy', 'disableDisposal'] as const;\n\nexport function applyComponentOptions(source: any, component: ComponentBase): void {\n if (!source || typeof source !== 'object' || !component || component.isDisposed) return;\n for (const key of COMPONENT_OPTION_KEYS) {\n if (source[key] !== undefined) (component.motif.options as any)[key] = source[key];\n }\n}\n\n/** `applyPlainElementProps`'un DOM'a yazmayacağı çerçeve anahtarları. */\nconst PLAIN_ELEMENT_SKIP = new Set([\n 'ref', 'key', 'indexkey', 'inject', 'options', 'props', 'settings', 'isSvg',\n 'childs', 'initializeComponent', 'runover', 'transition', 'preconfig', 'nodes', 'onElementCreating'\n]);\n\nconst SPREAD_HTML_KEYS = new Set(['innerhtml', 'srcdoc']);\nconst SPREAD_URL_ATTRIBUTES = new Set(['href', 'src', 'action', 'formaction', 'xlink:href']);\nconst JAVASCRIPT_URL = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\n\nfunction isJavascriptUrl(value: unknown): boolean {\n if (value === undefined || value === null || typeof value === 'boolean') return false;\n try { return JAVASCRIPT_URL.test(String(value)); } catch { return false; }\n}\n\nfunction guardSpreadUrl(key: string, read: () => any): () => any {\n return () => {\n let value = read();\n if (typeof value === 'function') value = value();\n if (typeof value === 'function') value = value();\n if (!isJavascriptUrl(value)) return value;\n reportWarning('MJX125', [key]);\n return null;\n };\n}\n\nexport function applyPlainElementProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const keys = Object.keys(props);\n if (keys.length === 0) return;\n let attrs: Record<string, any> | null = null;\n let applied: Map<string, any> | null = null;\n for (const key of keys) {\n if (PLAIN_ELEMENT_SKIP.has(key)) continue;\n if (key.startsWith('x-') || key.startsWith('x:') || key.startsWith('__')) continue;\n let v = props[key];\n if (v === undefined) continue;\n if (/^on/i.test(key)) {\n if (typeof v === 'function') component.motif.on(key as any, v as any);\n continue;\n }\n if (typeof v === 'function' && v.length > 0) continue;\n const lowerKey = key.toLowerCase();\n if (SPREAD_HTML_KEYS.has(lowerKey)) {\n reportWarning('MJX124', [key]);\n continue;\n }\n if (SPREAD_URL_ATTRIBUTES.has(lowerKey)) {\n if (typeof v === 'function') {\n v = guardSpreadUrl(key, v);\n } else if (isJavascriptUrl(v)) {\n reportWarning('MJX125', [key]);\n continue;\n }\n }\n (applied ??= appliedDomProps(component)).set(key, v);\n if (key === 'class' || key === 'className') {\n component.class.add(v && typeof v === 'object' && !Array.isArray(v) ? [v] : v);\n } else if (key === 'style') {\n component.style(v);\n } else if (key === 'value' || key === 'checked' || key === 'selected') {\n component.bindings.add(key, v);\n } else {\n (attrs ??= {})[key] = v;\n }\n }\n if (attrs) component.attr.add(attrs);\n}\n\nconst _appliedDomProps = new WeakMap<ComponentBase, Map<string, any>>();\nfunction appliedDomProps(component: ComponentBase): Map<string, any> {\n let m = _appliedDomProps.get(component);\n if (!m) { m = new Map(); _appliedDomProps.set(component, m); }\n return m;\n}\n\n/** Bileşen etiketinden köke düşen ortak öznitelikler. */\nconst FALLTHROUGH_KEYS = new Set(['class', 'className', 'style', 'id', 'tabindex', 'role']);\nfunction isFallthroughKey(key: string): boolean {\n return FALLTHROUGH_KEYS.has(key) || key.startsWith('aria-') || key.startsWith('data-');\n}\n\nexport function applyFallthroughProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const applied = _appliedDomProps.get(component);\n let subset: Record<string, any> | null = null;\n for (const key of Object.keys(props)) {\n if (!isFallthroughKey(key)) continue;\n const v = props[key];\n if (v === undefined || v === null) continue;\n if (typeof v === 'function' && v.length > 0) continue;\n if (applied && applied.has(key) && Object.is(applied.get(key), v)) continue;\n (subset ??= {})[key] = v;\n }\n if (subset) applyPlainElementProps(subset, component);\n}\n\nconst componentMethods: Record<string, unknown> = {\n \"oninitializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"initializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfigured\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfig\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilding\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilt\": (sender: ComponentBase, e: EventArgs) => { },\n \"onmounted\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitializing\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitialized\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposing\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposed\": (sender: ComponentBase, e: EventArgs) => { },\n \"onvisibilitychanged\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondeactivated\": (sender: ComponentBase, e: EventArgs) => { },\n \"onactivated\": (sender: ComponentBase, e: EventArgs) => { },\n};\n\n\nfunction findAppendableComponent(component: ComponentBase): ComponentBase | null | undefined {\n\n return safeCall<ComponentBase | null | undefined>(() => {\n if (!component || component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findAppendableComponent(component.parent);\n }\n return null;\n }, 'findAppendableComponent', null);\n\n}\n\n\nfunction findParentElement(component: ComponentBase): ComponentBase | null {\n\n try {\n if (component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findParentElement(component.parent);\n }\n } catch (error) {\n throw error;\n }\n return null;\n}\n\n\nfunction onElementAttached(element: Element, callback: () => any): (() => void) | null {\n if (document.contains(element)) {\n callback();\n return null;\n }\n\n let done = false;\n const observer = new MutationObserver(() => {\n if (done) { return; }\n if (document.contains(element)) {\n done = true;\n observer.disconnect();\n callback();\n }\n });\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n });\n\n return () => {\n if (done) { return; }\n done = true;\n try { observer.disconnect(); } catch { /* ignore */ }\n };\n}\n\nexport function notifyActivated(component: ComponentBase): void {\n unpinServiceOwner(component);\n ComponentHelper.activateTree(component);\n}\nexport function notifyDeactivated(component: ComponentBase): void {\n pinServiceOwner(component);\n ComponentHelper.deactivateTree(component);\n}","import { ComponentBase } from \"./componentBase\";\nimport { reportError } from \"../common/diagnostics\";\n\nconst MAX_FACTORY_DEPTH = 100;\n\nexport function resolveComponent(input: unknown, props?: any): any {\n let current: any = input;\n let depth = 0;\n while (typeof current === \"function\") {\n if (current.prototype instanceof ComponentBase) {\n return new current(props);\n }\n if (++depth > MAX_FACTORY_DEPTH) {\n reportError('MJX112', undefined, MAX_FACTORY_DEPTH);\n return current;\n }\n current = current(props);\n }\n return current;\n}","import { dom } from \"../\";\nimport { ComponentBase, IBaseProp, ParseProps, applyComponentOptions, applyFallthroughProps, applyTransitionProp, extractRefs, safeCallSilent, takePendingRefs, untracked } from \"../\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { ElementType, EventArgs } from \"./types\";\nimport { callReported, motifError } from \"../common/diagnostics\";\n\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nfunction readElementTag(ctor: any): string | undefined {\n try {\n const tag = ctor?.elementTag;\n if (typeof tag === 'string') {\n const trimmed = tag.trim();\n if (trimmed) return trimmed;\n }\n } catch { /* ignore */ }\n return undefined;\n}\n\nfunction createDeclaredElement(tag: string, ctor: any, props: any): any {\n const declaredNs = typeof ctor?.elementNamespace === 'string' && ctor.elementNamespace\n ? ctor.elementNamespace as string\n : undefined;\n const isSvg = declaredNs === SVG_NAMESPACE || props?.options?.isSvg === true || props?.__isSvgElement === true;\n if (isSvg) {\n if (props && typeof props === 'object') { (props as any).isSvg = true; }\n return dom.createElementNS(declaredNs || SVG_NAMESPACE, tag, props);\n }\n return dom.createElement(tag, props);\n}\n\nexport class Component<TElement extends ElementType = any, TProps extends object = any> extends ComponentBase<TElement, TProps> {\n\n public static elementTag?: string;\n public static elementNamespace?: string;\n\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>);\n constructor(element: TElement | string, options: IBaseProp<TProps>);\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor(elementOrParams?: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor() {\n const derivedCtor: any = new.target;\n var args = arguments;\n var elementOrParams;\n var options;\n if (args.length === 1) {\n elementOrParams = args[0];\n } else if (args.length === 2) {\n elementOrParams = args[0];\n options = args[1];\n }\n\n if (elementOrParams instanceof Function) {\n elementOrParams = resolveComponent(elementOrParams, options);\n if (isOptionsObject(elementOrParams)) {\n return materializeOptionsObject(elementOrParams, options);\n }\n }\n if (Array.isArray(elementOrParams)) {\n const letter = CreateFragment();\n super(letter, {} as TProps);\n var ops = Object.create(options || {});\n for (const key in elementOrParams) {\n const element = elementOrParams[key];\n this.controls.add(new Component(element, ops as any));\n }\n } else\n if (typeof elementOrParams === 'string' && elementOrParams.trim().length > 0) {\n // İlk parametre element ise\n if (!options) { options = {} as any; }\n\n if (options?.options && options.options.isSvg || options?.__isSvgElement) {\n const el = dom.createElementNS('http://www.w3.org/2000/svg', elementOrParams, options);\n (options as any)['isSvg'] = true;\n super(el as TElement, options as TProps);\n } else {\n const el = dom.createElement(elementOrParams, options);\n\n super(el as TElement, options as TProps);\n }\n // DOM prop'ları (spread/attr) ComponentBase ctor'ında uygulanır: düz Component'ta tümü,\n // alt sınıflarda yalnızca ortak öznitelikler (applyFallthroughProps).\n } else if (elementOrParams instanceof Node) {\n super(elementOrParams as any, options as TProps);\n } else if (elementOrParams instanceof ComponentBase) {\n // Hazır instance geldi; olduğu gibi kullan\n return elementOrParams as any;\n }\n else {\n // Constructor'a element verilmedi (undefined/null/boş) ya da element olarak\n // tanınmayan bir değer geldi. bu iki olasılığa neden olur :\n // a) Sınıf bir element türü bildirmiş → o türde gerçek element üretilir\n // b) Bildirmemiş → FRAGMENT: kök yorum düğümü (yer tutucu),\n // çocuklar açılış/kapanış işaretçileri arasına render edilir\n // Her bileşenin bir elementi olmak zorunda olduğundan, fragment kök olarak yorum düğümü kullanılır.\n // props hangi argümanda olduğu çağrı biçimine göre değişir:\n // new Component({ ...props }) → props İLK argüman\n // super(void 0, props) / super(null, props) → props İKİNCİ argüman\n const fragmentProps = (elementOrParams && typeof elementOrParams === 'object')\n ? elementOrParams\n : options;\n\n // Sınıf bir element türü bildirdiyse (statik elementTag — derleyici\n // Component<HTMLDivElement> generic'inden üretir fragment yerine\n // O TÜRDE gerçek element oluşturulur.\n const declaredTag = readElementTag(derivedCtor);\n if (declaredTag) {\n const declaredEl = createDeclaredElement(declaredTag, derivedCtor, fragmentProps);\n super(declaredEl as TElement, (fragmentProps ?? {}) as TProps);\n } else {\n super(CreateFragment(), (fragmentProps ?? {}) as TProps);\n }\n\n // Her iki durumda da JSX çocukları (props.childs) içeriğe eklenir.\n // Alt sınıflar initializeComponent'i ezdiği için FragmentNode.initializeComponent'e güvenilemez.\n const kids = this.childs;\n if (Array.isArray(kids) && kids.length) {\n for (const kid of kids) {\n if (kid) this.controls.add(kid);\n }\n }\n }\n }\n\n\n}\n\n\ntype viewFn<P extends object> = (props: P) => any;\n\nexport function FNComponent<P extends object>(view: viewFn<P>) {\n\n return (props: P) => {\n //debugger; \n var comp = motifFragment({\n ...props as any,\n });\n comp.controls.add(view(props) as any);\n return comp;\n };\n}\n\nfunction applyJsxFrameworkProps(target: any, props: any, refs: any[]): any {\n if (!props || typeof props !== 'object') return target;\n if (!(target instanceof ComponentBase)) return target;\n\n applyRefs(target, refs.concat(extractRefs(props)));\n\n // Fonksiyon bileşeni etiketindeki ortak öznitelikler (class/id/aria-*…) döndürülen köke düşer.\n // Kök `<div {...props}/>` ise aynı değerler zaten uygulanmıştır; ikinci kez uygulanmaz.\n applyFallthroughProps(props, target as ComponentBase);\n applyComponentOptions((props as any).options, target as ComponentBase);\n if (Object.prototype.hasOwnProperty.call(props, 'transition')) {\n applyTransitionProp((props as any).transition, target as ComponentBase);\n }\n\n const runover = (props as any).runover;\n if (!runover || typeof runover !== 'object') return target;\n\n const handlers: any[] = (target as any)._base?._onConfigHandlers;\n const configuredBefore = Array.isArray(handlers) ? handlers.length : 0;\n const initializingBefore = handlerCount(target, '_onInitializingHandlers');\n const initializedBefore = handlerCount(target, '_onInitializedHandlers');\n ParseProps(runover, target as ComponentBase);\n\n callAddedHandlers(target, '_onInitializingHandlers', initializingBefore, 'onInitializing');\n callAddedHandlers(target, '_onInitializedHandlers', initializedBefore, 'onInitialized');\n\n // Fonksiyon bileşeninin kökü düz bir `Component` olduğunda config aşaması yapıcıda\n // ÇOKTAN çalışmıştır (`isConfigured`); sonradan kaydedilen preconfig/onConfig bir daha\n // çağrılmayacağı için burada elle koşulur. Yalnızca yeni eklenenler çalıştırılır.\n if ((target as any).isConfigured) {\n const pre = (target as any).motif.options?._preconfig;\n if (typeof pre === 'function') {\n safeCallSilent(() => pre(target), 'motifComponent.preconfig');\n }\n const after: any[] = (target as any)._base?._onConfigHandlers;\n if (Array.isArray(after)) {\n for (let i = configuredBefore; i < after.length; i++) {\n const fn = after[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', 'onConfig');\n }\n }\n }\n return target;\n}\n\nfunction applyRefs(target: any, refs: any[]): any {\n if (target instanceof ComponentBase) {\n for (const fn of takePendingRefs(target, refs)) {\n callReported(() => fn(target), 'MJX122', 'ref');\n }\n }\n return target;\n}\n\nfunction handlerCount(target: any, listName: string): number {\n const list: any[] = target._base?.[listName];\n return Array.isArray(list) ? list.length : 0;\n}\n\nfunction callAddedHandlers(target: any, listName: string, from: number, hook: string): void {\n const list: any[] = target._base?.[listName];\n if (!Array.isArray(list)) return;\n for (let i = from; i < list.length; i++) {\n if (target.isDisposed) return;\n const fn = list[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', hook);\n }\n}\n\nfunction resolveChildExpression(probe: any): any {\n if (typeof probe !== 'function') return undefined;\n let value: any;\n try { value = untracked(probe); } catch { return undefined; }\n if (value instanceof ComponentBase) return value;\n if (Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase)) return value;\n return undefined;\n}\n\nexport function motifComponent(element: unknown, props?: any) {\n\n // Etiket adı: element yaratımı (HTML/SVG) ve spread prop uygulaması Component ctor'ının string parametresinde\n if (typeof element === \"string\") {\n if (element === \"text\" && props && props.__childExpr) {\n const resolved = resolveChildExpression(props.__childExpr);\n if (resolved !== undefined) return resolved;\n }\n return new Component(element, props);\n }\n\n if (element instanceof ComponentBase || element instanceof Component) {\n return element;\n }\n\n // Class component → new, function component/factory → çağır (try/catch tespiti yok)\n if (typeof element === \"function\") {\n const refs = element.prototype instanceof ComponentBase ? [] : extractRefs(props);\n const el = resolveComponent(element, props);\n if (typeof el == \"object\" && el !== null && 'el' in el) {\n return applyRefs(materializeOptionsObject(el, props), refs);\n }\n // Sınıf bileşeninde props yapıcıda işlendi; fonksiyon bileşeninde ise dış etiketin\n // çerçeve prop'ları (direktifler, initializeComponent, yaşam döngüsü) hiçbir yere uygulanmamıştı.\n return applyJsxFrameworkProps(el, props, refs);\n }\n\n if (typeof element == \"object\" && element !== null && 'el' in element) {\n return materializeOptionsObject(element, props);\n }\n return new Component(element, props);\n}\n\nfunction isOptionsObject(value: unknown): boolean {\n return typeof value == \"object\" && value !== null && !(value instanceof ComponentBase) && 'el' in value;\n}\n\nexport function unwrapModule(result: any): any {\n if (result && typeof result === \"object\" && !(result instanceof ComponentBase) && result.default != null) {\n return result.default;\n }\n return result;\n}\n\nfunction describeLoaded(value: any): string {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'array';\n if (typeof value === \"object\" && (Object.prototype.toString.call(value) === '[object Module]' || value.__esModule)) return 'module';\n return typeof value;\n}\n\nexport function assertLoadedComponent(value: unknown): void {\n if (value === null || typeof value !== \"object\") return;\n if (value instanceof ComponentBase || Array.isArray(value) || value instanceof Node) return;\n if (typeof (value as any).then === \"function\") return;\n throw motifError('MJX127', describeLoaded(value));\n}\n\nexport function resolveToComponent(input: unknown, props?: any): any {\n const resolved = resolveComponent(input, props);\n if (isOptionsObject(resolved)) {\n return materializeOptionsObject(resolved, undefined);\n }\n return resolved;\n}\n\nfunction materializeOptionsObject(spec: any, props: any): any {\n const result: any = motifComponent(spec.el, props);\n Object.getOwnPropertyNames(spec).forEach(key => {\n if (key !== 'el' && key !== 'ctor') {\n result[key] = spec[key];\n }\n });\n if (typeof spec.ctor === 'function') {\n callReported(() => spec.ctor.call(result, props), 'MJX122', 'ctor');\n }\n return result;\n}\nexport function motifFragment(props?: any) {\n return new FragmentNode(props);\n}\n\nfunction CreateFragment() {\n const fragment = dom.createComment(\"\");\n return fragment;\n}\n\nexport class FragmentNode<TProps extends object = any> extends Component<Comment, TProps> {\n\n constructor(options?: IBaseProp<TProps>);\n constructor(element: any, props: any);\n constructor(arg1?: any, arg2?: any) {\n if (arguments.length <= 1) {\n super(CreateFragment() as any, arg1 as any);\n } else {\n super(CreateFragment() as any, arg2 as any);\n }\n }\n\n public override initializeComponent(sender: ComponentBase): void {\n const s = (this as any).childs as ComponentBase[] | undefined;\n if (Array.isArray(s) && s.length) {\n for (const child of s) {\n if (child) this.controls.add(child);\n }\n }\n safeCallSilent(() => {\n const nodes = (this.motif.options as any)?.props?.nodes as any[] | undefined;\n if (Array.isArray(nodes) && nodes.length) {\n for (const n of nodes) {\n if (n) this.controls.add(n);\n }\n }\n }, 'Fragment.initializeComponent.props.nodes');\n }\n}\n\n\nexport class motifDocument {\n public router: any = {};\n public context: any = {};\n public run(appElement: Node, app: Component): Component {\n const MainApp = new Component(appElement, {});\n app.parent = MainApp;\n MainApp.controls.add(app);\n //const renderer = new motifRenderer();\n //renderer.render(MainApp);\n MainApp.build();\n return MainApp;\n //console.warn(\"MainApp:\", MainApp);\n }\n}\n","import { IDisposable } from \"../\";\r\nimport { errorHandler } from \"../common/ErrorHandler\";\r\nimport { motifError, reportError } from \"../common/diagnostics\";\r\n\r\nconst glblths = globalThis as any;\r\nfunction getCurrentDom() {\r\n if (glblths && glblths.motifDom) {\r\n return glblths.motifDom.window.document;\r\n }\r\n return glblths.document;\r\n}\r\n\r\nexport function setDom(dom: any) {\r\n if (glblths) {\r\n glblths.motifDom = dom;\r\n }\r\n}\r\n\r\nexport const dom = {\r\n get window() {\r\n if (glblths && glblths.window) {\r\n return glblths.window;\r\n } else if (glblths && glblths) {\r\n return glblths.motifDom.window;\r\n } else {\r\n return glblths;\r\n }\r\n },\r\n _created: new Map<any, any>(),\r\n document: getCurrentDom(),\r\n createElement(tagName: string, options?: any): any {\r\n const doc = getCurrentDom();\r\n if (!doc) {\r\n throw motifError('MJX101', tagName);\r\n }\r\n if (tagName === \"text\") {\r\n return doc.createTextNode('');\r\n }\r\n if (!this._created.has(tagName)) {\r\n const view = doc.createElement(tagName, options);\r\n this._created.set(tagName, view);\r\n }\r\n const tpl = this._created.get(tagName);\r\n return tpl.cloneNode(false);\r\n },\r\n\r\n createDocumentFragment(): any {\r\n try {\r\n var cd = getCurrentDom();\r\n if (cd) {\r\n return cd.createDocumentFragment();\r\n }\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createDocumentFragment', error);\r\n }\r\n\r\n },\r\n createComment(content: any) {\r\n try {\r\n return getCurrentDom()?.createComment(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createComment', error);\r\n }\r\n\r\n },\r\n createTextNode(content: any) {\r\n try {\r\n return getCurrentDom()?.createTextNode(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createTextNode', error);\r\n }\r\n\r\n },\r\n querySelectorAll(selectors: string) {\r\n try {\r\n return getCurrentDom()?.querySelectorAll(selectors)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.querySelectorAll', error);\r\n }\r\n\r\n },\r\n createElementNS(namepsaceUri: string, tagName: string, options?: any): any {\r\n try {\r\n return getCurrentDom()?.createElementNS(namepsaceUri, tagName, options)\r\n } catch (error) {\r\n reportError('MJX103', error, tagName);\r\n }\r\n\r\n },\r\n convertToSvgElement(element: Element): Element {\r\n\r\n const SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\r\n const tagName = element.tagName.toLowerCase();\r\n const newSvgElement = document.createElementNS(SVG_NAMESPACE, tagName);\r\n\r\n for (const attr of element.attributes) {\r\n newSvgElement.setAttribute(attr.name, attr.value);\r\n }\r\n\r\n while (element.firstChild) {\r\n newSvgElement.appendChild(element.firstChild);\r\n }\r\n\r\n const parent = element.parentNode;\r\n if (parent) {\r\n parent.replaceChild(newSvgElement, element);\r\n }\r\n\r\n return newSvgElement;\r\n },\r\n\r\n get body() {\r\n return getCurrentDom()?.body;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nconst SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\r\nexport enum Namespace {\r\n HTML = 'http://www.w3.org/1999/xhtml',\r\n SVG = 'http://www.w3.org/2000/svg'\r\n}\r\n\r\n\r\nfunction _$<T extends Element>(namespace: Namespace, description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n const match = SELECTOR_REGEX.exec(description);\r\n\r\n if (!match) {\r\n throw motifError('MJX102', description);\r\n }\r\n\r\n const tagName = match[1] || 'div';\r\n let result: T;\r\n\r\n if (namespace !== Namespace.HTML) {\r\n result = dom.createElementNS(namespace as string, tagName) as T;\r\n } else {\r\n result = dom.createElement(tagName) as unknown as T;\r\n }\r\n\r\n if (match[3]) {\r\n result.id = match[3];\r\n }\r\n if (match[4]) {\r\n result.className = match[4].replace(/\\./g, ' ').trim();\r\n }\r\n if (attrs) {\r\n Object.entries(attrs).forEach(([name, value]) => {\r\n if (typeof value === 'undefined') {\r\n return;\r\n }\r\n\r\n if (/^on\\w+$/.test(name)) {\r\n (<any>result)[name] = value;\r\n } else if (name === 'selected') {\r\n if (value) {\r\n result.setAttribute(name, 'true');\r\n }\r\n\r\n } else {\r\n result.setAttribute(name, value);\r\n }\r\n });\r\n }\r\n result.append(...children);\r\n return result as T;\r\n}\r\n\r\nexport function $<T extends HTMLElement>(description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n return _$(Namespace.HTML, description, attrs, ...children);\r\n}\r\n\r\n\r\n\r\nclass DomListener implements IDisposable {\r\n\r\n private _handler: (e: any) => void;\r\n private _node: EventTarget;\r\n private readonly _type: string;\r\n private readonly _options: boolean | AddEventListenerOptions;\r\n\r\n constructor(node: EventTarget, type: string, handler: (e: any) => void, options?: boolean | AddEventListenerOptions) {\r\n this._node = node;\r\n this._type = type;\r\n this._handler = handler;\r\n this._options = (options || false);\r\n this._node.addEventListener(this._type, this._handler, this._options);\r\n }\r\n\r\n dispose(): void {\r\n if (!this._handler) {\r\n // Already disposed\r\n return;\r\n }\r\n\r\n this._node.removeEventListener(this._type, this._handler, this._options);\r\n\r\n // Prevent leakers from holding on to the dom or handler func\r\n this._node = null!;\r\n this._handler = null!;\r\n }\r\n}\r\n\r\nexport function addDisposableListener<K extends keyof GlobalEventHandlersEventMap>(node: EventTarget, type: K, handler: (event: GlobalEventHandlersEventMap[K]) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, options: AddEventListenerOptions): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCaptureOrOptions?: boolean | AddEventListenerOptions): IDisposable {\r\n return new DomListener(node, type, handler, useCaptureOrOptions);\r\n}\r\n\r\n\r\n\r\n","// import { dom } from \"../browser\";\r\nimport { TRANSITION_SLOT } from \"../component/optionsSlots\";\r\n// import { effect } from \"../store\";\r\nimport { dom } from \"../\";\r\nimport { Component, ComponentBase, resolveComponent, notifyDeactivated } from \"../\";\r\nimport { reportError } from \"../common/diagnostics\";\r\nimport { checkReservedMembers } from \"../component/componentBase\";\r\n\r\nexport class ControlCollection {\r\n constructor(private owner: ComponentBase) {\r\n\r\n }\r\n items: ComponentBase[] = [];\r\n\r\n add(...control: ComponentBase[]): ComponentBase[]\r\n add(index?: number, ...control: ComponentBase[]): ComponentBase[]\r\n add(): ComponentBase[] {\r\n const count = arguments.length;\r\n if (count === 0) return [] as ComponentBase[];\r\n const first = arguments[0];\r\n if (count === 1 && first instanceof ComponentBase) {\r\n if (first.isDisposed) return [] as ComponentBase[];\r\n return [this._insertOne(undefined, first)];\r\n }\r\n const args = Array.from(arguments) as any[];\r\n if (typeof args[0] === 'number' && args.length > 1) {\r\n const index = args[0] as number;\r\n const children = ([] as ComponentBase[]).concat(...args.slice(1));\r\n return this.insert(index, ...children);\r\n } else {\r\n const children = ([] as ComponentBase[]).concat(...args);\r\n return this.insert(undefined, ...children);\r\n }\r\n }\r\n insert(index?: number, ...controls: ComponentBase[]): ComponentBase[] {\r\n const flat: ComponentBase[] = ([] as any[]).concat(...controls as any);\r\n return flat.filter(x => x != undefined && !x.isDisposed).map(control => this._insertOne(index, control));\r\n }\r\n private _insertOne(index: number | undefined, control: ComponentBase): ComponentBase {\r\n control = resolveComponent(control);\r\n if (typeof control == 'string' || typeof control == 'number' || typeof control == 'boolean' || typeof control == 'bigint') {\r\n control = new Component(dom.createTextNode(control), null as any);\r\n }\r\n checkReservedMembers(control);\r\n if (control.parent) { control.parent.controls.detach(control); }\r\n\r\n if (index != undefined && index >= 0) {\r\n this.items.splice(index, 0, control);\r\n } else {\r\n this.items.push(control);\r\n }\r\n control.parent = this.owner;\r\n\r\n const pendingLeave = (control as any).__pendingLeave as PendingLeave | undefined;\r\n if (pendingLeave) {\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n pendingLeave.promise.then(() => {\r\n if (control.isDisposed || this.owner.isDisposed || control.parent !== this.owner) return;\r\n if (this.onAdd && this.owner.isBuilt) this.onAdd(control);\r\n });\r\n return control;\r\n }\r\n\r\n if (this.onAdd && this.owner.isBuilt) {\r\n this.onAdd(control);\r\n }\r\n\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n return control;\r\n }\r\n remove(control: ComponentBase) {\r\n var index = this.items.indexOf(control);\r\n if (index > -1) {\r\n this.items.splice(index, 1);\r\n try { control.dispose(); } catch { /* ignore */ }\r\n }\r\n }\r\n detach(control: ComponentBase): Promise<void> {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return Promise.resolve();\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return Promise.resolve();\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n return runLeaveThenDetach(control, () => { if (this.onRemove) this.onRemove(control); });\r\n }\r\n\r\n silentDetach(control: ComponentBase, unlinkOnly: boolean = false) {\r\n if (unlinkOnly) { this.silentUnlink(control); return; }\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return;\r\n control.parent = null;\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n\r\n silentUnlink(control: ComponentBase) {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n }\r\n\r\n async clearAsync(): Promise<void> {\r\n const items = this.items.splice(0, this.items.length); \r\n await Promise.all(items.map(c => c.dispose())); \r\n }\r\n\r\n\r\n clear() {\r\n var items = this.items.splice(0, this.items.length);\r\n items.forEach(c => {\r\n try { c.dispose(); } catch { /* ignore */ }\r\n });\r\n }\r\n get length() {\r\n return this.items.length;\r\n }\r\n forEach(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n this.items.forEach(callbackfn);\r\n }\r\n map(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n return this.items.map(callbackfn);\r\n }\r\n onAdd?: (control: ComponentBase) => void;\r\n onRemove?: (control: ComponentBase) => void;\r\n onAddBeforeBuild?: (control: ComponentBase) => void;\r\n move(control: ComponentBase, before?: ComponentBase | null): void {\r\n if (!control || control.isDisposed) return;\r\n if (before === control) return;\r\n if (control.parent !== this.owner) return;\r\n if (before && before.parent !== this.owner) return;\r\n\r\n const oldIndex = this.items.indexOf(control);\r\n if (oldIndex === -1) return;\r\n const beforeIndex = before ? this.items.indexOf(before) : -1;\r\n if (before && beforeIndex === -1) return;\r\n\r\n const alreadyInPlace = before ? beforeIndex === oldIndex + 1 : oldIndex === this.items.length - 1;\r\n if (alreadyInPlace) return;\r\n\r\n\r\n this.items.splice(oldIndex, 1);\r\n\r\n if (!before) {\r\n this.items.push(control);\r\n } else {\r\n const newBeforeIndex = this.items.indexOf(before);\r\n const insertAt = newBeforeIndex >= 0 ? newBeforeIndex : this.items.length;\r\n this.items.splice(insertAt, 0, control);\r\n }\r\n\r\n if ((control as any).isWait) {\r\n return;\r\n }\r\n const container = findAppendableElement(this.owner);\r\n if (!container) return;\r\n\r\n const referenceNode: Node | null = before ? (before.element as unknown as Node) : computeAppendReference(this.owner);\r\n\r\n moveComponentDomRange(control, container, referenceNode);\r\n }\r\n\r\n moveToIndex(control: ComponentBase, index: number): void {\r\n if (!control || control.isDisposed) return;\r\n if (!Number.isFinite(index as any)) return;\r\n if (index < 0) index = 0;\r\n if (index > this.items.length) index = this.items.length;\r\n if (this.items.indexOf(control) === -1) return;\r\n const before = index >= this.items.length ? null : this.items[index];\r\n this.move(control, before);\r\n }\r\n}\r\n\r\n/** Owner için DOM'a eklenebilir gerçek element'i bulur. */\r\nfunction findAppendableElement(owner: ComponentBase): HTMLElement | Node | null {\r\n let c: ComponentBase | null = owner;\r\n while (c) {\r\n const node = c.element as any as Node;\r\n if (node && node.nodeType !== Node.COMMENT_NODE && node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && node.nodeType !== Node.TEXT_NODE) {\r\n return node as any;\r\n }\r\n c = c.parent;\r\n }\r\n return null;\r\n}\r\n\r\n/** Owner fragment ise sona ekleme referansını, değilse null döndürür. */\r\nfunction computeAppendReference(owner: ComponentBase): Node | null {\r\n const node = owner.element as any as Node;\r\n if (node && node.nodeType === Node.COMMENT_NODE) {\r\n return (owner as any).motif.options?.closeFragment || null;\r\n }\r\n return null;\r\n}\r\n\r\n/** Bir component'in kök DOM aralığını (tek element veya fragment aralığı) referenceNode öncesine taşır. */\r\nfunction moveComponentDomRange(control: ComponentBase, container: Node, referenceNode: Node | null) {\r\n const node = control.element as any as Node | null;\r\n if (!node) return;\r\n\r\n if (node.nodeType !== Node.COMMENT_NODE) {\r\n try { container.insertBefore(node, referenceNode); } catch { }\r\n return;\r\n }\r\n\r\n const open = node;\r\n const close = ((control as any).motif.options?.closeFragment as Node | undefined) || null;\r\n if (!close) { try { container.insertBefore(open, referenceNode); } catch { } return; }\r\n\r\n if (referenceNode && isNodeInRange(open, close, referenceNode)) {\r\n referenceNode = close.nextSibling;\r\n }\r\n\r\n const frag = (dom.createDocumentFragment && dom.createDocumentFragment()) || container.ownerDocument?.createDocumentFragment?.() || (function () { try { return document.createDocumentFragment(); } catch { return null as any; } })();\r\n if (!frag) {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { container.insertBefore(current, referenceNode); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n return;\r\n }\r\n\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { (frag as any).appendChild(current); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n try { container.insertBefore(frag as any, referenceNode); } catch { }\r\n}\r\n\r\nfunction isNodeInRange(open: Node, close: Node, test: Node): boolean {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n if (current === test) return true;\r\n if (current === close) break;\r\n current = current.nextSibling;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX120', undefined);\r\n }\r\n return false;\r\n}\r\n\r\nfunction detachComponentDom(control: ComponentBase): void {\r\n const node = control.element as unknown as Node | null;\r\n if (!node) return;\r\n const opts: any = (control as any).motif.options;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n if (!node.parentNode) return;\r\n const close = (opts?.closeFragment as Node | undefined) || null;\r\n const cache: DocumentFragment = opts.cache ?? (opts.cache = dom.createDocumentFragment());\r\n let current: Node | null = node;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n cache.appendChild(current);\r\n if (!close || current === close) break;\r\n current = after;\r\n }\r\n return;\r\n }\r\n if (node.parentNode) {\r\n node.parentNode.removeChild(node);\r\n return;\r\n }\r\n const placeholder = opts?.placeholder as Node | undefined;\r\n if (placeholder && placeholder.parentNode) placeholder.parentNode.removeChild(placeholder);\r\n}\r\n\r\ninterface PendingLeave {\r\n promise: Promise<void>;\r\n finish: () => void;\r\n}\r\n\r\nfunction runLeaveThenDetach(control: ComponentBase, notify: () => void): Promise<void> {\r\n let resolveDone: () => void = () => { };\r\n const promise = new Promise<void>(resolve => { resolveDone = resolve; });\r\n let pending = 1;\r\n let finished = false;\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n if ((control as any).__pendingLeave?.promise === promise) delete (control as any).__pendingLeave;\r\n if (!control.isDisposed) {\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n try {\r\n notify();\r\n } catch (error) {\r\n reportError('MJX118', error);\r\n }\r\n resolveDone();\r\n };\r\n const arrive = () => {\r\n pending--;\r\n if (pending === 0) finish();\r\n };\r\n const visit = (c: ComponentBase) => {\r\n if (!c || c.isDisposed || !c.element || !c.isVisible || c.isWait) return;\r\n const node = c.element as unknown as Node;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n c.controls.items.forEach(visit);\r\n return;\r\n }\r\n if (node.nodeType !== Node.ELEMENT_NODE) return;\r\n pending++;\r\n let arrived = false;\r\n const once = () => {\r\n if (arrived) return;\r\n arrived = true;\r\n arrive();\r\n };\r\n try {\r\n const opts: any = c.motif.options;\r\n if (!opts[TRANSITION_SLOT] && !opts.transitionOut) {\r\n once();\r\n return;\r\n }\r\n opts.transition.leaveTransition(once);\r\n } catch {\r\n once();\r\n }\r\n };\r\n (control as any).__pendingLeave = { promise, finish } as PendingLeave;\r\n visit(control);\r\n arrive();\r\n return promise;\r\n}\r\n","import { ComponentBase, IBaseProp } from \".\";\nimport { Component, assertLoadedComponent, resolveToComponent, unwrapModule } from \"./Component\";\nimport { Frame } from \"./Frame\";\nimport { disposableCore } from \"../disposable\";\nimport { motifError, reportError } from \"../common/diagnostics\";\n\nexport interface LazyOptions<T = any> { \n Loaderview?: ComponentBase; \n Placeholderview?: ComponentBase; \n Fallbackview?: ComponentBase;\n minDelayMs?: number;\n onError?: (error: unknown) => void;\n mapResult?: (result: T) => any; \n timeoutMs?: number;\n signal?: AbortSignal;\n retry?: number | LazyRetryOptions;\n onRetry?: (attempt: number, error: unknown) => void;\n}\n\nexport interface LazyRetryOptions {\n count: number;\n delayMs?: number;\n whenOnline?: boolean;\n}\n\nfunction normalizeRetry(retry: LazyOptions['retry']): Required<LazyRetryOptions> {\n if (typeof retry === 'number') return { count: Math.max(0, Math.floor(retry)), delayMs: 500, whenOnline: true };\n if (retry && typeof retry === 'object') {\n return {\n count: Math.max(0, Math.floor(retry.count || 0)),\n delayMs: Math.max(0, retry.delayMs ?? 500),\n whenOnline: retry.whenOnline !== false,\n };\n }\n return { count: 0, delayMs: 0, whenOnline: false };\n}\n\nfunction defaultMapper(result: any) {\n return unwrapModule(result);\n}\n\n\n\nexport function Lazy<T>(props: { caller: () => Promise<T>, options?: LazyOptions<T> }): Component;\nexport function Lazy(props: any): Component;\nexport function Lazy(props: any): Component {\n const opts: LazyOptions<any> = (props && props.options) || {};\n const frame = new Frame();\n const timers = new Set<ReturnType<typeof setTimeout>>();\n const trackTimer = (id: ReturnType<typeof setTimeout>) => { try { timers.add(id); } catch { } return id; };\n const clearAllTimers = () => {\n try { timers.forEach(id => { try { clearTimeout(id); } catch { } }); } catch { }\n try { timers.clear(); } catch { }\n };\n try { frame.motif.register(disposableCore.toDisposable(() => clearAllTimers())); } catch { }\n const initial = opts.Placeholderview ?? opts.Loaderview;\n if (initial != null) {\n frame.navigate(resolveToComponent(initial));\n }\n\n const attemptLoad = () => {\n if (!opts.timeoutMs && !opts.signal) {\n return props.caller();\n }\n const parts: Promise<any>[] = [props.caller()];\n if (opts.timeoutMs && opts.timeoutMs > 0) {\n parts.push(new Promise<any>((_, reject) => {\n const id = trackTimer(setTimeout(() => reject(motifError('MJX110', opts.timeoutMs!)), opts.timeoutMs));\n parts[0].finally(() => { try { clearTimeout(id); timers.delete(id); } catch { } }).catch(() => { /* noop */ });\n if (opts.signal) {\n const onAbortClear = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\n try { opts.signal.addEventListener(\"abort\", onAbortClear, { once: true }); } catch { }\n }\n }));\n }\n if (opts.signal) {\n parts.push(new Promise<any>((_, reject) => {\n if (opts.signal!.aborted) {\n reject(motifError('MJX111'));\n return;\n }\n const onAbort = () => {\n opts.signal!.removeEventListener(\"abort\", onAbort);\n clearAllTimers();\n reject(motifError('MJX111'));\n };\n opts.signal!.addEventListener(\"abort\", onAbort, { once: true });\n }));\n }\n return Promise.race(parts);\n };\n\n const retry = normalizeRetry(opts.retry);\n const cleanups = new Set<() => void>();\n try { frame.motif.register(disposableCore.toDisposable(() => { cleanups.forEach(c => { try { c(); } catch { } }); cleanups.clear(); })); } catch { }\n\n const waitBeforeRetry = (attempt: number): Promise<boolean> => new Promise<boolean>(resolve => {\n let settled = false;\n const finish = (go: boolean) => {\n if (settled) return;\n settled = true;\n cleanups.delete(cancel);\n try { if (onlineHandler) window.removeEventListener('online', onlineHandler); } catch { }\n try { if (id !== undefined) { clearTimeout(id); timers.delete(id); } } catch { }\n try { opts.signal?.removeEventListener('abort', onAbort); } catch { }\n resolve(go);\n };\n const cancel = () => finish(false);\n const onAbort = () => finish(false);\n let onlineHandler: (() => void) | null = null;\n let id: ReturnType<typeof setTimeout> | undefined = undefined;\n cleanups.add(cancel);\n try { opts.signal?.addEventListener('abort', onAbort, { once: true }); } catch { }\n const schedule = () => { id = trackTimer(setTimeout(() => finish(true), retry.delayMs * attempt)); };\n const offline = retry.whenOnline && typeof navigator !== 'undefined' && navigator.onLine === false && typeof window !== 'undefined';\n if (offline) {\n onlineHandler = () => {\n try { window.removeEventListener('online', onlineHandler!); } catch { }\n onlineHandler = null;\n schedule();\n };\n window.addEventListener('online', onlineHandler);\n } else {\n schedule();\n }\n });\n\n const loadWithRetry = async (): Promise<any> => {\n let attempt = 0;\n for (; ;) {\n try {\n return await attemptLoad();\n } catch (err) {\n if (opts.signal?.aborted || (frame as any).isDisposed || attempt >= retry.count) throw err;\n attempt++;\n try { opts.onRetry?.(attempt, err); } catch { }\n const go = await waitBeforeRetry(attempt);\n if (!go || opts.signal?.aborted || (frame as any).isDisposed) throw err;\n }\n }\n };\n\n const loadPromise = retry.count > 0 ? loadWithRetry() : attemptLoad();\n\n const startTs = Date.now();\n\n const fail = (err: any) => {\n try { opts.onError?.(err); } catch { /* swallow */ }\n if (opts.signal?.aborted) return;\n if (opts.Fallbackview != null) {\n frame.navigate(resolveToComponent(opts.Fallbackview));\n } else {\n reportError('MJX126', err);\n try { frame.motif.clear().catch(() => { }); } catch { }\n }\n };\n\n const place = (target: any) => {\n let component: any;\n try {\n component = resolveToComponent(target);\n assertLoadedComponent(component);\n } catch (err) {\n fail(err);\n return;\n }\n frame.navigate(component);\n };\n\n loadPromise\n .then((result: any) => {\n if (opts.signal?.aborted) { return; }\n const mapper = opts.mapResult ?? defaultMapper;\n const target = mapper(result);\n const elapsed = Date.now() - startTs;\n const minDelay = Math.max(0, (opts.minDelayMs ?? 0));\n const remaining = Math.max(0, minDelay - elapsed);\n if (remaining > 0) {\n const id = trackTimer(setTimeout(() => {\n if (!opts.signal?.aborted) {\n place(target);\n }\n }, remaining));\n if (opts.signal) {\n const onAbortClearDelay = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\n try { opts.signal.addEventListener(\"abort\", onAbortClearDelay, { once: true }); } catch { }\n }\n } else {\n place(target);\n }\n })\n .catch(fail);\n\n return frame;\n}\n","import { ComponentBase, IDisposeOptions } from \"./componentBase\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { Lazy } from \"./Lazy\";\nimport { reportError } from \"../common/diagnostics\";\n\nexport interface NavigationHost extends ComponentBase {\n current: ComponentBase | ComponentBase[] | null;\n previouspage: any;\n isBusy: boolean;\n _latestNavigateId: number;\n _navLock: Promise<void>;\n _navAbort?: AbortController;\n _navPending?: number;\n}\n\nexport function hasOwnTransition(component: ComponentBase | null | undefined, phase: 'enter' | 'leave'): boolean {\n const options: any = component?.motif?.options;\n if (!options) return false;\n const transition = options.transition;\n return !!((phase === 'enter' ? options.transitionIn : options.transitionOut) || (transition && (transition.classes || (transition.name && transition.name.length > 0))));\n}\n\nfunction playsLeave(target: ComponentBase | ComponentBase[] | null): boolean {\n if (!target) return false;\n if (Array.isArray(target)) return target.some(t => !!t && !t.isDisposed && hasOwnTransition(t, 'leave'));\n return !target.isDisposed && hasOwnTransition(target, 'leave');\n}\n\nexport function cancelAnimationsDeep(target: any): void {\n if (!target || target.isDisposed) return;\n if (Array.isArray(target)) {\n target.forEach(cancelAnimationsDeep);\n return;\n }\n try { target.motif.options?.transition?.activeCssCancel?.(); } catch { }\n try {\n const anims = target.motif.options?.transition?.activeAnimations;\n if (Array.isArray(anims)) {\n anims.forEach((anim: any) => {\n try {\n if (anim && typeof anim.cancel === 'function') {\n anim.cancel();\n }\n } catch { }\n });\n anims.length = 0;\n }\n } catch { }\n try {\n if (target.controls && target.controls.items) {\n for (const child of target.controls.items) {\n cancelAnimationsDeep(child);\n }\n }\n } catch { }\n}\n\nexport async function disposeNavigationTarget(target: ComponentBase | ComponentBase[] | null, options: IDisposeOptions = { deep: true }): Promise<void> {\n if (!target) return;\n const list = Array.isArray(target) ? target : [target];\n await Promise.all(list.map(async (xr) => {\n if (!xr || xr.isDisposed) return;\n try {\n await xr.dispose(options);\n } catch (err) {\n reportError('MJX115', err);\n }\n }));\n}\n\nexport async function navigateHost(host: NavigationHost, page: ComponentBase | ComponentBase[], keepOldControl: boolean = false): Promise<void> {\n if (host.isDisposed || page == null) return;\n if (host.current !== null && host.current === (page as any)) return;\n\n const navigateId = ++host._latestNavigateId;\n host.isBusy = true;\n\n const complete = (value: any) => {\n if (host.isDisposed) return;\n if (navigateId !== host._latestNavigateId) return;\n const xP = resolveComponent(value);\n host.current = xP;\n try {\n if (Array.isArray(xP)) {\n host.controls.add(...xP);\n } else {\n host.controls.add(xP);\n }\n } catch (error) {\n reportError('MJX114', error);\n }\n host.isBusy = false;\n host.previouspage = xP;\n };\n\n if (!(host._navPending ?? 0) && host.current === null && !(page instanceof Promise)) {\n try {\n complete(page);\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n return;\n }\n\n host._navPending = (host._navPending ?? 0) + 1;\n const prevLock = host._navLock ?? Promise.resolve();\n host._navLock = (async () => {\n try {\n await prevLock;\n\n try { host._navAbort?.abort(); } catch { }\n host._navAbort = new AbortController();\n\n const oldPage = host.current;\n if (oldPage && !keepOldControl) {\n cancelAnimationsDeep(oldPage);\n cancelAnimationsDeep(host);\n const animated = playsLeave(oldPage);\n const leaving = disposeNavigationTarget(oldPage);\n if (animated) {\n leaving.catch(() => { });\n } else {\n await leaving;\n }\n }\n\n try {\n if (page instanceof Promise) {\n const caller = () => page;\n const lazyFrame = Lazy({ caller, options: { signal: host._navAbort?.signal } as any });\n complete(lazyFrame);\n } else {\n complete(page);\n }\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n } finally {\n host._navPending = Math.max(0, (host._navPending ?? 1) - 1);\n }\n })();\n await host._navLock;\n}\n","import { dom } from \"../core\";\nimport { Component } from \"../\";\nimport { ComponentBase, IDisposeOptions } from \"../\";\nimport { Lazy, LazyOptions } from \"../\";\nimport { disposeNavigationTarget, navigateHost } from \"./navigation\";\n\n\nexport class Frame extends Component {\n public current: ComponentBase | ComponentBase[] | null = null;\n public _latestNavigateId = 0;\n public _navLock: Promise<void> = Promise.resolve();\n public _navAbort?: AbortController;\n isBusy: boolean = false;\n constructor(props?: any) {\n super(dom.createComment(''), props);\n if (props && props.childs && Array.isArray(props.childs) && props.childs.length > 0) {\n this.controls.add(props.childs);\n }\n }\n public async dispose(options: IDisposeOptions = { deep: true }) {\n await disposeNavigationTarget(this.current, options);\n await super.dispose(options);\n }\n public async flush() {\n await disposeNavigationTarget(this.current);\n }\n protected override async _clear() {\n await disposeNavigationTarget(this.current);\n }\n previouspage: any;\n public async navigate(page: ComponentBase | ComponentBase[], keepOldControl: boolean = false) {\n await navigateHost(this, page, keepOldControl);\n }\n\n public async navigateLazy<T>(caller: () => Promise<T>, options?: LazyOptions<T>, keepOldControl: boolean = false) {\n const lazyFrame = Lazy({ caller, options });\n await this.navigate(lazyFrame, keepOldControl);\n }\n}\n","const preprocessitem = new Set<Function>();\r\n\r\nexport function preProcessing(callback: () => any) {\r\n preprocessitem.add(callback);\r\n renderPreProcessing();\r\n}\r\n\r\nexport function renderPreProcessing() {\r\n preprocessitem.forEach(i => {\r\n i();\r\n })\r\n}","\r\nimport { Component, ComponentBase, EventArgs } from \"../\";\r\nimport { reportWarning } from \"../common/diagnostics\";\r\n\r\n\r\n// const ContentBodyCollection = new Map<string, ContentBody>();\r\nconst ContentBodyCollectionHandable = new Map<string, ContentBody>();\r\nconst changeBodyCollectionHandler = Symbol('changeBodyCollectionHandler')\r\n\r\n\r\ninterface ContentBlockProps {\r\n target: string\r\n}\r\nexport class ContentBlock extends Component<any, ContentBlockProps> {\r\n constructor(props: ContentBlockProps) {\r\n super(props);\r\n\r\n\r\n // var cb = ContentBodyCollectionHandable.get(props.target);\r\n // if (cb) {\r\n // } else {\r\n // var cb = ContentBodyCollectionHandable.get(props.target);\r\n // if (cb) {\r\n const forward = (control: ComponentBase) => {\r\n this.motif.trigger('controladded', { control });\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n control.motif.options[\"ownerContentBlock\"] = this;\r\n cb.controls.add(control);\r\n }\r\n };\r\n this.controls.onAdd = forward;\r\n this.controls.onAddBeforeBuild = forward;\r\n if (this.childs) {\r\n this.controls.add(...this.childs);\r\n }\r\n\r\n }\r\n public onConfigured(sender: ComponentBase, e: EventArgs): void {\r\n\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n this.controls.items.forEach(x => { x.motif.options[\"ownerContentBlock\"] = this; });\r\n cb.controls.add(...this.controls.items);\r\n } else {\r\n this.context.on(changeBodyCollectionHandler, () => {\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n this.controls.items.forEach(x => { x.motif.options[\"ownerContentBlock\"] = this; });\r\n cb.controls.add(...this.controls.items);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onDisposing(sender: ComponentBase, e: EventArgs): void {\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n for (const element of [...cb.controls.items]) {\r\n if (element.motif.options[\"ownerContentBlock\"] !== this) continue;\r\n cb.controls.remove(element);\r\n reportWarning('MJX109', [], element);\r\n }\r\n }\r\n\r\n }\r\n ondisposing(sender: Component<any, ContentBlockProps>) {\r\n // var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n // if (cb) {\r\n }\r\n\r\n}\r\ninterface ContentBodyProps {\r\n name: string,\r\n onconfig?: any\r\n}\r\nexport class ContentBody extends Component<any, ContentBodyProps> {\r\n constructor(props: ContentBodyProps) {\r\n super(props);\r\n ContentBodyCollectionHandable.set(this.props.name, this);\r\n this.context.fire(changeBodyCollectionHandler);\r\n }\r\n ondisposing(sender: Component<any, ContentBodyProps>) {\r\n if (ContentBodyCollectionHandable.get(this.props.name) === this) {\r\n ContentBodyCollectionHandable.delete(this.props.name);\r\n }\r\n }\r\n}\r","import { ComponentBase } from \"./componentBase\";\r\nimport { Application } from \"../\";\r\n\r\nexport const SLOT_REGISTERED_EVENT = Symbol('slotRegistered');\r\nexport const SLOT_UNREGISTERED_EVENT = Symbol('slotUnregistered');\r\n\r\nexport class TransportRegistry {\r\n private static slots: Map<string, ComponentBase> = new Map();\r\n\r\n static registerSlot(name: string, slot: ComponentBase) {\r\n this.slots.set(name, slot);\r\n Application.main.fire(SLOT_REGISTERED_EVENT, { name, slot });\r\n }\r\n static unregisterSlot(name: string, slot: ComponentBase) {\r\n if (this.slots.get(name) === slot) {\r\n this.slots.delete(name);\r\n Application.main.fire(SLOT_UNREGISTERED_EVENT, { name, slot });\r\n }\r\n }\r\n static getSlot(name: string): ComponentBase | undefined {\r\n return this.slots.get(name);\r\n }\r\n}\r","import { ComponentBase } from \"./componentBase\";\r\nimport { motifError } from \"../common/diagnostics\";\r\n\r\nexport interface TransportOptions {\r\n index?: number;\r\n keepState?: boolean;\r\n owner?: any;\r\n}\r\n\r\nexport class Transporter {\r\n static transport(child: ComponentBase, newParent: ComponentBase, options: TransportOptions = {}) {\r\n if (!child || !newParent) return;\r\n if (child.parent === newParent && newParent.controls.items.includes(child)) return;\r\n if (child.parent && child.parent !== newParent) {\r\n child.parent.controls.silentDetach(child, true);\r\n }\r\n if (options.owner) {\r\n (child.motif.options as any).ownerTransporter = options.owner;\r\n }\r\n if (typeof options.index === \"number\") {\r\n if (!newParent.controls.items.includes(child)) {\r\n newParent.controls.items.splice(options.index, 0, child);\r\n }\r\n } else {\r\n if (!newParent.controls.items.includes(child)) {\r\n newParent.controls.add(child);\r\n }\r\n }\r\n child.parent = newParent;\r\n if (!options.keepState) {\r\n child.reState();\r\n }\r\n }\r\n\r\n static transportMany(children: ComponentBase[], newParent: ComponentBase, options: TransportOptions = {}) {\r\n if (!Array.isArray(children)) return;\r\n children.forEach(child => this.transport(child, newParent, options));\r\n }\r\n\r\n static createSlot(name: string, parent?: ComponentBase) {\r\n const slot = {\r\n name,\r\n children: [] as ComponentBase[],\r\n parent: parent as ComponentBase | undefined,\r\n mount(child: ComponentBase, options: TransportOptions = {}) {\r\n if (!this.parent) throw motifError('MJX113');\r\n if (!this.children.includes(child)) {\r\n Transporter.transport(child, this.parent, options);\r\n this.children.push(child);\r\n }\r\n },\r\n unmount(child: ComponentBase) {\r\n if (!this.parent) throw motifError('MJX113');\r\n this.children = this.children.filter(c => c !== child);\r\n this.parent.controls.remove(child);\r\n },\r\n detachAll() {\r\n if (!this.parent) return;\r\n this.children.forEach(child => {\r\n this.parent!.controls.remove(child);\r\n });\r\n this.children = [];\r\n }\r\n };\r\n return slot;\r\n }\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\"\r\nimport { Flags, addArrayStack, closeSetup, hasOwn, isIntrinsicSymbol, isObject, pauseTracking, resetTracking, setupActive } from \"../common\"\r\nimport { track } from \"../reactivity-core\"\r\n\r\nconst ARRAY_MUTATORS = new Set(['push', 'pop', 'shift', 'unshift', 'splice', 'reverse', 'sort'])\r\n\r\nexport const NOT_META = Symbol('')\r\ntype MetaReader = (engine: ReactiveEngine, target: any, receiver: any) => unknown\r\n\r\nconst metaReaders = new Map<symbol, MetaReader>([\r\n [Flags.IS_REACTIVE, () => true],\r\n [Flags.IS_READONLY, engine => engine.isReadonly],\r\n [Flags.IS_SUPERFICIAL, engine => engine.superficial],\r\n [Flags.GET_SETUP, (_engine, target) => target],\r\n [Flags.RAW, (engine, target, receiver) => engine.ReactiveMap().get(target) === receiver ? target : NOT_META],\r\n])\r\n\r\nexport function readMeta(engine: ReactiveEngine, target: any, key: unknown, receiver: any): unknown {\r\n if (typeof key !== 'symbol') return NOT_META\r\n const reader = metaReaders.get(key)\r\n return reader === undefined ? NOT_META : reader(engine, target, receiver)\r\n}\r\n\r\nexport function createGetter(engine: ReactiveEngine) {\r\n return function (target: any, p: any, receiver: any) {\r\n const meta = readMeta(engine, target, p, receiver)\r\n if (meta !== NOT_META) return meta\r\n\r\n if (Array.isArray(target) && !engine.isReadonly) {\r\n const patched = engine.arrayMethods.get\r\n if (hasOwn(patched, p)) {\r\n const method = patched[p]\r\n if (ARRAY_MUTATORS.has(p)) addArrayStack(p)\r\n else track(target, p)\r\n return method\r\n }\r\n }\r\n if (setupActive) {\r\n pauseTracking();\r\n engine.track(target, p);\r\n closeSetup();\r\n resetTracking();\r\n }\r\n\r\n const value = Reflect.get(target, p, receiver)\r\n if (p === '__proto__' || isIntrinsicSymbol(p)) return value\r\n\r\n if (!engine.isReadonly) track(target, p)\r\n if (engine.superficial || !isObject(value)) return value\r\n return engine.reactive(value)\r\n }\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\";\nimport { ITERATE_KEY, getRaw, hasOwn, isNumericKey, isReadonly, removeArrayStack } from \"../common\";\nimport { trigger } from \"../reactivity-core\";\n\n\nexport function createSetter(engine: ReactiveEngine) {\n return function (target: any, p: any, newValue: any, receiver: any) {\n if (isReadonly(target)) {\n return false;\n }\n\n const isArray = Array.isArray(target);\n const oldValue = (target as any)[p];\n const oldLength = isArray ? target.length : 0;\n const numeric = isArray && isNumericKey(p);\n const hadKey = numeric ? Number(p) < oldLength : hasOwn(target, p);\n\n const res = Reflect.set(target, p, newValue, receiver);\n\n if (engine.onValueChanged) {\n try { engine.onValueChanged({ raw: target, proxy: receiver }, p); } catch { }\n }\n\n if (getRaw(target) !== getRaw(receiver)) {\n return res;\n }\n if (!isArray && hadKey && Object.is(newValue, oldValue)) {\n return res;\n }\n\n trigger(target, p);\n if (!isArray && !hadKey) {\n trigger(target, ITERATE_KEY);\n }\n if (numeric && !hadKey) {\n trigger(target, 'length');\n }\n if (isArray && p === 'length') {\n const newLength = Number(newValue);\n for (let i = newLength; i < oldLength; i++) {\n trigger(target, String(i));\n }\n }\n removeArrayStack();\n return res;\n }\n}\n","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { ITERATE_KEY, hasOwn, isIntrinsicSymbol, pauseTracking, resetTracking } from \"../common\";\r\nimport { track, trigger } from \"../reactivity-core\";\r\n\r\nexport function createOwn(engine: ReactiveEngine) {\r\n return function ownKeys(target: any) {\r\n const shapeKey = Array.isArray(target) ? 'length' : ITERATE_KEY;\r\n track(target, shapeKey);\r\n return Reflect.ownKeys(target);\r\n }\r\n}\r\n\r\nexport function createHas(engine: ReactiveEngine) {\r\n return function has(target: any, p: any) {\r\n const found = Reflect.has(target, p);\r\n if (isIntrinsicSymbol(p)) return found;\r\n track(target, p);\r\n return found;\r\n }\r\n}\r\n\r\nexport function createDelete(engine: ReactiveEngine) {\r\n return function deleteProperty(target: any, p: any) {\r\n pauseTracking()\r\n try {\r\n const isOwned = hasOwn(target, p);\r\n const result = Reflect.deleteProperty(target, p);\r\n if (isOwned) {\r\n if (Array.isArray(target)) {\r\n trigger(target, 'length');\r\n } else {\r\n trigger(target, p);\r\n trigger(target, ITERATE_KEY);\r\n }\r\n }\r\n return result\r\n } finally { \r\n resetTracking();\r\n }\r\n }\r\n}","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { getRaw, pauseTracking, resetTracking } from \"../common\";\r\n\r\ntype PatchKind = 'lookup' | 'order' | 'join' | 'structural';\r\n\r\nconst PATCHED_ARRAY_METHODS: ReadonlyArray<readonly [string, PatchKind]> = [\r\n ['includes', 'lookup'],\r\n ['indexOf', 'lookup'],\r\n ['lastIndexOf', 'lookup'],\r\n ['sort', 'order'],\r\n ['concat', 'join'],\r\n ['push', 'structural'],\r\n ['pop', 'structural'],\r\n ['shift', 'structural'],\r\n ['unshift', 'structural'],\r\n ['splice', 'structural'],\r\n ['reverse', 'structural'],\r\n];\r\n\r\nconst isLookupMiss = (outcome: unknown) => outcome === false || outcome === -1;\r\n\r\nexport class ArrayMethods {\r\n constructor(public engine: ReactiveEngine) { }\r\n get: Record<string, Function> = this.createArrayMethods();\r\n\r\n createArrayMethods(): Record<string, Function> {\r\n const table: Record<string, Function> = {};\r\n for (const [name, kind] of PATCHED_ARRAY_METHODS) {\r\n table[name] = this.patch(name, kind);\r\n }\r\n return table;\r\n }\r\n\r\n private patch(name: string, kind: PatchKind): Function {\r\n const owner = this;\r\n switch (kind) {\r\n case 'lookup':\r\n return function (this: unknown[], ...needles: any[]) {\r\n const source = getRaw(this) as any;\r\n owner.engine.track(source, 'length');\r\n const direct = source[name](...needles);\r\n if (!isLookupMiss(direct)) return direct;\r\n return source[name](...needles.map(needle => getRaw(needle)));\r\n };\r\n case 'order':\r\n return function (this: unknown[], ...args: any[]) {\r\n const source = getRaw(this) as any;\r\n const size = this.length;\r\n for (let index = 0; index < size; index++) {\r\n owner.engine.track(source, String(index));\r\n }\r\n const sorted = source[name].apply(this, args);\r\n owner.engine.track(source, name);\r\n return sorted;\r\n };\r\n case 'join':\r\n return function (this: unknown[], ...args: any[]) {\r\n return Array.prototype.concat.apply(this, args);\r\n };\r\n default:\r\n return function (this: unknown[], ...args: any[]) {\r\n pauseTracking();\r\n const source = getRaw(this) as any;\r\n try {\r\n return source[name].apply(this, args);\r\n } finally {\r\n resetTracking();\r\n }\r\n };\r\n }\r\n }\r\n\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\";\nimport { ITERATE_KEY, getRaw, hasOwn, isObject } from \"../common\";\nimport { track, trigger } from \"../reactivity-core\";\nimport { NOT_META, readMeta } from \"./getter\";\n\ntype AnyCollection = Map<any, any> | Set<any>;\n\nconst KEYS_KEY = Symbol('');\n\nfunction changed(target: object, key: unknown, keysChanged: boolean) {\n trigger(target, key as any);\n trigger(target, ITERATE_KEY);\n if (keysChanged) trigger(target, KEYS_KEY);\n}\n\nfunction lookupKey(target: AnyCollection, key: unknown) {\n return target.has(key) ? key : getRaw(key);\n}\n\nfunction wrapIterator(source: Iterator<any>, convert: (item: any) => any): IterableIterator<any> {\n return {\n next() {\n const step = source.next();\n return step.done ? step : { value: convert(step.value), done: false };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n}\n\nfunction createCollectionMethods(engine: ReactiveEngine): Record<PropertyKey, Function> {\n const wrap = (value: unknown) => isObject(value) ? engine.reactive(value) : value;\n const wrapEntry = (target: AnyCollection) =>\n target instanceof Map\n ? ([key, value]: [unknown, unknown]) => [key, wrap(value)]\n : ([value]: [unknown, unknown]) => { const item = wrap(value); return [item, item]; };\n\n return {\n get(this: Map<any, any>, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n track(target, found as any);\n return wrap(target.get(found));\n },\n has(this: AnyCollection, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n track(target, found as any);\n return target.has(found);\n },\n set(this: Map<any, any>, key: unknown, value: unknown) {\n const target = getRaw(this);\n const stored = lookupKey(target, key);\n const raw = getRaw(value);\n const existed = target.has(stored);\n const previous = target.get(stored);\n target.set(stored, raw);\n if (!existed) changed(target, stored, true);\n else if (!Object.is(previous, raw)) changed(target, stored, false);\n return this;\n },\n add(this: Set<any>, value: unknown) {\n const target = getRaw(this);\n const stored = lookupKey(target, value);\n if (!target.has(stored)) {\n target.add(stored);\n changed(target, stored, true);\n }\n return this;\n },\n delete(this: AnyCollection, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n const removed = target.delete(found);\n if (removed) changed(target, found, true);\n return removed;\n },\n clear(this: AnyCollection) {\n const target = getRaw(this);\n if (target.size === 0) return;\n const keys = Array.from(target.keys());\n target.clear();\n for (const key of keys) trigger(target, key);\n trigger(target, ITERATE_KEY);\n trigger(target, KEYS_KEY);\n },\n forEach(this: AnyCollection, callback: (value: any, key: any, collection: any) => void, thisArg?: unknown) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n const owner = this;\n const isMap = target instanceof Map;\n target.forEach((value: any, key: any) => {\n const item = wrap(value);\n callback.call(thisArg, item, isMap ? key : item, owner);\n });\n },\n keys(this: AnyCollection) {\n const target = getRaw(this);\n if (target instanceof Map) {\n track(target, KEYS_KEY);\n return target.keys();\n }\n track(target, ITERATE_KEY);\n return wrapIterator(target.keys(), wrap);\n },\n values(this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return wrapIterator(target.values(), wrap);\n },\n entries(this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return wrapIterator(target.entries(), wrapEntry(target));\n },\n [Symbol.iterator](this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return target instanceof Map\n ? wrapIterator(target.entries(), wrapEntry(target))\n : wrapIterator(target.values(), wrap);\n },\n };\n}\n\nexport function createCollectionHandler(engine: ReactiveEngine): ProxyHandler<AnyCollection> {\n const methods = createCollectionMethods(engine);\n return {\n get(target, key, receiver) {\n const meta = readMeta(engine, target, key, receiver);\n if (meta !== NOT_META) return meta;\n if (key === 'size') {\n track(target, ITERATE_KEY);\n return target.size;\n }\n if ((typeof key === 'string' || key === Symbol.iterator) && hasOwn(methods, key) && key in target) {\n return methods[key as any];\n }\n const value = Reflect.get(target, key, target);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n };\n}\n","\r\nimport { TargetType, UnwrapValueRefs, getRaw, getTargetType, isObject, pauseTracking, resetTracking, enableTracking } from \"./common\";\r\nimport { createGetter } from \"./handlers/getter\";\r\nimport { createSetter } from \"./handlers/setter\";\r\nimport { createDelete, createHas, createOwn } from \"./handlers/orhers\";\r\nimport { ArrayMethods } from \"./handlers/ArrayMethods\";\r\nimport { createCollectionHandler } from \"./handlers/collections\";\r\nimport { LinkedList } from \"../common/LinkedList\";\r\nimport { track, trigger } from \"./reactivity-core\";\r\nexport const ReactiveEngineMapper = new WeakSet<ReactiveEngine>();\r\n\r\nconst AllreactiveMap: WeakMap<any, any> = new WeakMap();\r\nfunction armgetter() { return AllreactiveMap; }\r\n\r\n\r\nexport class ReactiveEngine {\r\n _gci: any;\r\n public startGc(_intervalMs: number = 10000) { /* no-op */ }\r\n public stopGc() { if (this._gci) { try { clearInterval(this._gci); } catch { } this._gci = undefined; } }\r\n constructor() {\r\n ReactiveEngineMapper.add(this);\r\n this.startGc();\r\n }\r\n \r\n DisposeMapper = new LinkedList();\r\n arrayTriggerCache = new Map<any, { method: string, key: any, value: any }>();\r\n ReactiveMap: () => WeakMap<any, any> = () => armgetter();\r\n activeCallback: any;\r\n isReadonly: boolean = false;\r\n superficial: boolean = false;\r\n arrayMethods: ArrayMethods = new ArrayMethods(this);\r\n arrayHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n }\r\n deepHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n } as ProxyHandler<any>\r\n collectionHandler = createCollectionHandler(this) as ProxyHandler<any>\r\n reactive<T>(model: T): UnwrapValueRefs<T> {\r\n\r\n var self = this;\r\n if (!isObject(model)) {\r\n model = { value: model } as any;\r\n }\r\n const targetType = getTargetType(model);\r\n if (targetType === TargetType.SYSTEM || TargetType.INVALID) {\r\n return model as any\r\n }\r\n\r\n let existingProxy = AllreactiveMap.get(model)\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n existingProxy = AllreactiveMap.get(getRaw(model))\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n // if (targetType === TargetType.INVALID) {\r\n if (targetType === TargetType.COLLECTION) {\r\n var proxy = new Proxy(model, this.collectionHandler);\r\n AllreactiveMap.set(model, proxy);\r\n return proxy;\r\n } else if (Array.isArray(model)) {\r\n var proxy = new Proxy(model, this.arrayHandler);\r\n // var original = Object.getPrototypeOf(proxy);\r\n // original[\"copy\"] = () => { return model; }\r\n // return \"copied\";\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n } else {\r\n var proxy = new Proxy(model, this.deepHandler);\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n }\r\n }\r\n\r\n clearModel(model: any): void {\r\n if (model != null && model != undefined) {\r\n Object.keys(model).forEach((key) => {\r\n if (typeof model[key] === 'object') {\r\n if (AllreactiveMap.has(model[key]) || AllreactiveMap.has(getRaw(model[key]))) {\r\n this.clearModel(model[key])\r\n }\r\n }\r\n AllreactiveMap.delete(getRaw(model[key]));\r\n AllreactiveMap.delete(model[key]);\r\n })\r\n AllreactiveMap.delete(getRaw(model));\r\n AllreactiveMap.delete(model);\r\n }\r\n }\r\n\r\n track(model: any, key: any) {\r\n track(model, key);\r\n }\r\n trigger(model: any, key: any, value: any) {\r\n trigger(model, key);\r\n }\r\n ArrayTrigger(target: any, key: any, ...args: any) {\r\n this.trigger(target, key, args);\r\n }\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any;\r\n toRaw(item: any) {\r\n return JSON.parse(JSON.stringify(this.deepClone(item)));\r\n }\r\n deepClone(item: any) {\r\n var self = this;\r\n if (!item) { return item; }\r\n var types = [Number, String, Boolean],\r\n result;\r\n types.forEach(function (type) {\r\n if (item instanceof type) {\r\n result = type(item);\r\n }\r\n });\r\n\r\n if (typeof result == \"undefined\") {\r\n if (Object.prototype.toString.call(item) === \"[object Array]\") {\r\n result = [];\r\n item.forEach(function (child: any, index: any, array: any[]) {\r\n result[index] = self.deepClone(child);\r\n });\r\n } else if (typeof item == \"object\") {\r\n if (item.nodeType && typeof item.cloneNode == \"function\") {\r\n result = item.cloneNode(true);\r\n } else if (!item.prototype) {\r\n if (item instanceof Date) {\r\n result = new Date(item);\r\n } else {\r\n result = <any>{};\r\n for (var i in item) {\r\n result[i] = self.deepClone(item[i]);\r\n }\r\n }\r\n } else {\r\n if (false && item.constructor) {\r\n result = new item.constructor();\r\n } else {\r\n result = item;\r\n }\r\n }\r\n } else {\r\n result = item;\r\n }\r\n }\r\n return result;\r\n }\r\n pauseTracking() {\r\n pauseTracking();\r\n }\r\n enableTracking() {\r\n enableTracking();\r\n }\r\n resetTracking() {\r\n resetTracking();\r\n }\r\n dispose() {\r\n var cnt = true;\r\n this.stopGc();\r\n while (cnt == true) {\r\n if (this.DisposeMapper.size > 0) {\r\n const element = this.DisposeMapper.pop();\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n AllreactiveMap.delete(element);\r\n } else {\r\n cnt = false\r\n }\r\n }\r\n this.DisposeMapper.clear();\r\n ReactiveEngineMapper.delete(this);\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n }\r\n\r\n}","\r\nimport { ReactiveEngine } from \"./ReactiveEngine\";\r\nimport { UnwrapValueRefs } from \"./common\";\r\nimport { Signal, Computed, LazyComputed } from \"./Signal\";\r\nexport const engine = new ReactiveEngine();\r\n\r\n\r\n/* @DEV-ONLY */ const reactiveRegistry: Array<{ name: string; value: any; type: string }> = [];\r\nconst isDevRegistryEnabled = () => {\r\n try {\r\n const g = globalThis as any;\r\n if (!g.__MOTIF_DEV__) return false;\r\n if (g.__MOTIF_STORE_REGISTRY__ !== reactiveRegistry) g.__MOTIF_STORE_REGISTRY__ = reactiveRegistry;\r\n return true;\r\n } catch { return false; }\r\n};\r\n\r\nexport function reactiveConfig(config: {\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any\r\n onItemAdded?: (model: any, key: any, value: any) => any\r\n onItemRemoved?: (model: any, key: any, value: any) => any\r\n}) {\r\n engine.onValueChanged = config.onValueChanged;\r\n}\r\n\r\n// export * from \"./IStoreBinder\";\r\n\r\n// export function reactiveListeners(model?: any) {\r\n// if (model) {\r\n// /* @DEV-ONLY */return debugGetDeps(model) ?? new Map();\r\n// return debugGetDepMap();\r\n\r\n\r\nexport function reactive<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'reactive';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\nexport function useModel<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n\r\n\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'useModel';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */ }\r\n/* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\n\r\n\r\nexport function clearModel(model: any) {\r\n return engine.clearModel(model);\r\n}\r\n\r\n \r\n\r\nexport function deepClone(item: any) {\r\n return engine.deepClone(item);\r\n}\r\n\r\nexport function createSignal<T>(initialValue: T): Signal<T> {\r\n const sig = new Signal(initialValue);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `signal_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: sig.value, type: 'signal' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return sig;\r\n}\r\n\r\nexport function createComputed<T>(getter: () => T): Computed<T> {\r\n const comp = new Computed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `computed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: comp.value, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return comp;\r\n}\r\n\r\nexport function createLazyComputed<T>(getter: () => T): LazyComputed<T> {\r\n const comp = new LazyComputed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `lazyComputed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: undefined, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */} catch { }\r\n return comp;\r\n}\r\n\r\nexport { ReactiveEngine };\r\nexport { configureReactivityLeakMonitor, track, trigger, effect, createScheduledEffect, asyncTracking, untracked } from \"./reactivity-core\";\r\nexport type { EffectFn, ScheduledEffect, AsyncTrackingToken } from \"./reactivity-core\";\r\nexport * from \"./Signal\";\r\nimport { untracked } from \"./reactivity-core\";\r\n","import type { ServiceLifetime } from \"./ServiceCollection\";\r\n\r\nexport const autoRegistry = new Map<any, { lifetime?: ServiceLifetime, deps?: any[] }>();\r\n","import { ServiceProvider } from \"./ServiceProvider\";\nimport { autoRegistry } from \"./autoRegistry\";\nimport { motifError, reportWarning } from \"../common/diagnostics\";\n\nexport type ServiceLifetime = 'transient' | 'singleton' | 'scoped';\n\nexport type ServiceImplementation<V> = V extends abstract new (...args: any[]) => any\n ? V\n : V extends (...args: any[]) => any\n ? 'Use { useValue: fn } or { useFactory: fn } to register a function'\n : V;\n\nfunction isConstructor(fn: Function): boolean {\n try {\n Reflect.construct(String, [], fn);\n return true;\n } catch {\n return false;\n }\n}\n\nexport interface ServiceDescriptor<T = any> {\n token: any;\n lifetime: ServiceLifetime;\n useClass?: new (...args: any[]) => T;\n useFactory?: (...args: any[]) => T | Promise<T>;\n useValue?: T;\n deps?: any[];\n}\n\nexport class ServiceCollection {\n private descriptors: Map<any, ServiceDescriptor> = new Map();\n\n public reset(): void {\n this.descriptors.clear();\n }\n public addTransient<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'transient');\n }\n public addSingleton<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'singleton');\n }\n public addScoped<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'scoped');\n }\n\n private _add(token: any, impl: any, lifetime: ServiceLifetime) {\n const desc: ServiceDescriptor = { token, lifetime };\n if (impl && typeof impl === 'object' && (impl.useClass || impl.useFactory || Object.prototype.hasOwnProperty.call(impl, 'useValue') || Array.isArray(impl.deps))) {\n desc.useClass = impl.useClass;\n desc.useFactory = impl.useFactory;\n desc.useValue = impl.useValue;\n desc.deps = Array.isArray(impl.deps) ? impl.deps : undefined;\n try {\n const sources = [\n desc.useClass ? 'useClass' : null,\n desc.useFactory ? 'useFactory' : null,\n (desc.useValue !== undefined) ? 'useValue' : null\n ].filter(Boolean);\n if ((sources as any).length > 1) {\n reportWarning('MJX410', [this._tokenName(token), sources.join(', ')], { token });\n }\n if (impl.deps && !Array.isArray(impl.deps)) {\n reportWarning('MJX411', [this._tokenName(token)], { token });\n }\n } catch { /* no-op */ }\n if (desc.useValue && typeof (desc.useValue as any).then === 'function') {\n const p = desc.useValue as any;\n desc.useFactory = async () => await p;\n desc.useValue = undefined;\n }\n } else if (typeof impl === 'function') {\n if (!isConstructor(impl)) throw motifError('MJX413', this._tokenName(token));\n desc.useClass = impl as any;\n } else {\n if (impl && typeof (impl as any).then === 'function') {\n const p = impl as any;\n desc.useFactory = async () => await p;\n } else {\n desc.useValue = impl;\n }\n }\n this.descriptors.set(token, desc);\n }\n\n private _tokenName(token: any): string {\n if (typeof token === 'string') return token;\n if (typeof token === 'symbol') return token.toString();\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n }\n\n public getDescriptor(token: any): ServiceDescriptor | null {\n const existing = this.descriptors.get(token);\n if (existing) return existing;\n const meta = autoRegistry.get(token);\n if (meta) {\n this._add(token, {\n useClass: token,\n deps: meta.deps,\n useValue: undefined,\n useFactory: undefined\n }, meta.lifetime || 'transient');\n return this.descriptors.get(token) || null;\n }\n return null;\n }\n\n /** `@Injectable` ile işaretlenmiş ama henüz kaydedilmemiş bir token var mı? */\n public canAutoRegister(token: any): boolean {\n return !this.descriptors.has(token) && autoRegistry.has(token);\n }\n\n public getService(token: any): ServiceDescriptor | null {\n return this.getDescriptor(token);\n }\n\n public buildServiceProvider(): ServiceProvider {\n return new ServiceProvider(this);\n }\n\n\n public has(token: any): boolean {\n return this.descriptors.has(token);\n }\n\n\n public remove(token: any): boolean {\n return this.descriptors.delete(token);\n }\n\n\n public replace<V>(token: any, impl: ServiceImplementation<V>, lifetime?: ServiceLifetime): void {\n const existing = this.descriptors.get(token);\n const lt: ServiceLifetime = lifetime ?? (existing?.lifetime ?? 'transient');\n this._add(token, impl, lt);\n }\n\n\n public tryAddTransient<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'transient');\n return true;\n }\n public tryAddSingleton<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'singleton');\n return true;\n }\n public tryAddScoped<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'scoped');\n return true;\n }\n\n public autoRegisterInjectables() {\n for (const [target, meta] of autoRegistry.entries()) {\n if (this.descriptors.has(target)) continue;\n this._add(target, {\n useClass: target,\n deps: meta.deps,\n useValue: undefined,\n useFactory: undefined\n }, meta.lifetime || \"transient\");\n }\n }\n}","import type { RouteItem } from \"../routing/RouteItem\";\r\nimport { reportWarning } from \"../common/diagnostics\";\r\n\r\ntype RouteNode = RouteItem & { childs?: RouteItem[] };\r\n\r\nfunction joinPaths(parent: string, child: string): string {\r\n const p = (parent || '').trim();\r\n const c = (child || '').trim();\r\n const base = p && p !== '/' && p.endsWith('/') ? p.slice(0, -1) : p;\r\n if (c === '/') {\r\n return base || '/';\r\n }\r\n const seg = c ? (c.startsWith('/') ? c : '/' + c) : '';\r\n if (!base || base === '/') {\r\n return seg || '/';\r\n }\r\n return base + seg;\r\n}\r\n\r\nexport function lintRoutes(routes: RouteNode[]): void {\r\n const seenFull: Map<string, number> = new Map();\r\n const seenAlias: Map<string, number> = new Map();\r\n\r\n function visit(node: RouteNode, parentPath: string, depth: number) {\r\n const rawPath = node.path ?? '';\r\n const path = String(rawPath);\r\n const full = parentPath === '' ? path : joinPaths(parentPath, path);\r\n const isDefaultSlash = depth > 0 && path.trim() === '/';\r\n const isEmptyPath = path.trim() === '';\r\n\r\n if (isEmptyPath) {\r\n reportWarning('MJX310', [parentPath || '/'], { parentPath, path });\r\n }\r\n\r\n if (depth > 0 && path.length > 0 && path !== '/' && !path.startsWith('/') && !path.startsWith('*')) {\r\n reportWarning('MJX311', [path, parentPath || '/'], { parentPath, path });\r\n }\r\n\r\n if (parentPath && full === parentPath) {\r\n if (!isDefaultSlash && !isEmptyPath) {\r\n reportWarning('MJX312', [full], { parentPath, childPath: path });\r\n }\r\n }\r\n\r\n const cnt = (seenFull.get(full) || 0) + 1;\r\n seenFull.set(full, cnt);\r\n if (cnt > 1) {\r\n if (!isDefaultSlash && !isEmptyPath) {\r\n reportWarning('MJX313', [full], { full });\r\n }\r\n }\r\n\r\n const aliases = node.alias == null ? [] : (Array.isArray(node.alias) ? node.alias : [node.alias]);\r\n for (const rawAlias of aliases) {\r\n const alias = String(rawAlias ?? '');\r\n if (depth > 0 && alias.length > 0 && alias !== '/' && !alias.startsWith('/') && !alias.startsWith('*')) {\r\n reportWarning('MJX314', [alias, parentPath || '/'], { parentPath, alias });\r\n }\r\n const aliasFull = parentPath === '' ? alias : joinPaths(parentPath, alias);\r\n if (aliasFull === full) {\r\n reportWarning('MJX315', [aliasFull], { full, alias });\r\n }\r\n const aliasCount = (seenAlias.get(aliasFull) || 0) + 1;\r\n seenAlias.set(aliasFull, aliasCount);\r\n if (aliasCount > 1) {\r\n reportWarning('MJX316', [aliasFull], { aliasFull });\r\n }\r\n }\r\n\r\n\r\n const children = (node as any).childs as RouteNode[] | undefined;\r\n if (Array.isArray(children)) {\r\n for (const ch of children) visit(ch, full, depth + 1);\r\n }\r\n }\r\n\r\n for (const r of routes) visit(r as RouteNode, '', 0);\r\n}\r","import { Application, Component } from '..';\r\nimport { getWarnings, on, ensureDevtoolsFlagInitialized, isRequestedByFlag, getRoutes } from './devbus';\r\nimport { lintRoutes } from './routeLinter';\r\nimport { reportWarning } from '../common/diagnostics';\r\nlet overlayHost: HTMLDivElement | null = null;\r\nlet visible = false;\r\n\r\nfunction render() {\r\n return;\r\n // if (!overlayHost) return;\r\n // const warnings = getWarnings();\r\n\r\n // const bar = document.createElement('div');\r\n // bar.style.cssText = 'display:flex; align-items:center; gap:8px; padding:6px 8px; background:#111; color:#fff; border-bottom:1px solid #333;';\r\n // const title = document.createElement('div');\r\n // title.style.fontWeight = '600';\r\n // const closeBtn = document.createElement('button');\r\n // closeBtn.style.cssText = 'margin-left:auto; background:#333; color:#fff; border:0; padding:2px 6px; cursor:pointer;';\r\n\r\n // const list = document.createElement('div');\r\n // list.style.cssText = 'max-height:40vh; overflow:auto; padding:8px; background:#181818; color:#ddd; font:12px/1.4 monospace;';\r\n // for (const w of warnings) {\r\n // const item = document.createElement('div');\r\n // item.style.cssText = 'padding:6px 8px; border:1px solid #333; border-radius:4px; margin-bottom:6px; background:#1f1f1f;';\r\n // const code = document.createElement('div');\r\n // code.style.cssText = 'color:#ffb86c; font-weight:700;';\r\n // const msg = document.createElement('div');\r\n // const det = document.createElement('pre');\r\n // det.textContent = w.details ? JSON.stringify(w.details, null, 2) : '';\r\n // det.style.cssText = 'white-space:pre-wrap; color:#aaa; margin:6px 0 0 0;';\r\n // if (w.details) item.appendChild(det);\r\n}\r\n\r\nexport function toggle(force?: boolean) {\r\n if (!overlayHost) return;\r\n visible = typeof force === 'boolean' ? force : !visible;\r\n overlayHost.style.display = visible ? 'block' : 'none';\r\n if (visible) render();\r\n}\r\n\r\nexport function initOverlayIfEnabled() {\r\n ensureDevtoolsFlagInitialized();\r\n if (!isRequestedByFlag()) return;\r\n try {\r\n if (!overlayHost) {\r\n overlayHost = document.createElement('div');\r\n overlayHost.style.cssText = 'position:fixed; left:12px; bottom:12px; right:12px; z-index:2147483647; background:#111; color:#fff; border:1px solid #333; border-radius:8px; box-shadow:0 4px 14px rgba(0,0,0,0.4); display:none;';\r\n document.body.appendChild(overlayHost);\r\n window.addEventListener('keydown', (e) => {\r\n try {\r\n if ((e.ctrlKey || e.metaKey) && e.key === '`') {\r\n e.preventDefault();\r\n toggle();\r\n }\r\n } catch { }\r\n });\r\n on((ev) => { if (ev.type === 'warning' && visible) render(); });\r\n }\r\n } catch { }\r\n}\r\n\r\nlet devBtn: HTMLButtonElement | null = null;\r\nlet inAppPanelMounted = false;\r\nfunction ensureInAppPanel() {\r\n if (inAppPanelMounted) return;\r\n try {\r\n (async () => {\r\n try {\r\n //var mod = await import(\"@motifjs/devtools-inapp\");\r\n\r\n //const mod = mountInAppPanel;//await (Function('return import(\"@motifjs/devtools-inapp\")')() as Promise<any>);\r\n\r\n //if (mod && typeof mod.mountInAppPanel === 'function') {\r\n } catch (err) {\r\n reportWarning('MJX611', [], err);\r\n }\r\n })();\r\n } catch { }\r\n}\r\nexport function initDevtoolsButton() {\r\n try {\r\n\r\n if (typeof document === 'undefined') return;\r\n if (devBtn) return;\r\n devBtn = document.createElement('button');\r\n devBtn.setAttribute('type', 'button');\r\n devBtn.setAttribute('aria-label', 'Open MotifJS DevTools');\r\n devBtn.textContent = 'Dev';\r\n devBtn.style.cssText = [\r\n 'position:fixed',\r\n 'right:12px',\r\n 'bottom:12px',\r\n 'z-index:2147483646',\r\n 'width:40px',\r\n 'height:40px',\r\n 'border-radius:20px',\r\n 'border:1px solid #333',\r\n 'background:#111',\r\n 'color:#fff',\r\n 'font-weight:700',\r\n 'cursor:pointer',\r\n 'box-shadow:0 4px 10px rgba(0,0,0,0.35)'\r\n ].join(';');\r\n devBtn.onclick = () => {\r\n try {\r\n (window as any).__motif_DEVTOOLS = true;\r\n } catch { }\r\n try {\r\n ensureDevtoolsFlagInitialized();\r\n initOverlayIfEnabled();\r\n toggle(true);\r\n ensureInAppPanel();\r\n try {\r\n const rs = getRoutes();\r\n if (rs) lintRoutes(rs);\r\n } catch { }\r\n } catch { }\r\n };\r\n document.body.appendChild(devBtn);\r\n try { const qs = location.search || ''; if (Application.main.isDevelopmentModeEnabled) ensureInAppPanel(); } catch { }\r\n } catch { }\r\n}\r","export class RouterViewRegistry {\r\n private static outlets: Map<string, Map<string, any>> = new Map();\r\n static register(name: string, scopeId: string, instance: any) {\r\n if (!this.outlets.has(name)) this.outlets.set(name, new Map());\r\n this.outlets.get(name)!.set(scopeId, instance);\r\n }\r\n static unregister(name: string, scopeId: string) {\r\n this.outlets.get(name)?.delete(scopeId);\r\n if (this.outlets.get(name)?.size === 0) this.outlets.delete(name);\r\n }\r\n static find(name: string, scopeId?: string): any | null {\r\n if (scopeId && this.outlets.get(name)?.has(scopeId)) {\r\n return this.outlets.get(name)!.get(scopeId);\r\n }\r\n const group = this.outlets.get(name);\r\n if (group && group.size > 0) return Array.from(group.values())[0];\r\n return null;\r\n }\r\n static findAll(name: string): any[] {\r\n return Array.from(this.outlets.get(name)?.values() ?? []);\r\n }\r\n}\r","import { Component } from \"..\";\r\nimport { ComponentBase, IBaseProp } from \"../\";\r\nimport { disposeNavigationTarget, navigateHost } from \"../component/navigation\";\r\nimport { RouterViewRegistry } from \"./RouterViewRegistry\";\r\n\r\nexport interface RouterViewProps extends IBaseProp<{ name?: string }> { }\r\nexport const RouterViewBuilt = Symbol.for(\"RouterView.built\");;\r\nexport class RouterView extends Component {\r\n constructor(props: IBaseProp<RouterViewProps>) {\r\n super(props);\r\n }\r\n public _navLock: Promise<void> = Promise.resolve();\r\n public _navAbort?: AbortController;\r\n public get __isRouterView(): boolean {\r\n return true;\r\n }\r\n public get scopeId(): string {\r\n let p: any = this.parent, ids: string[] = [];\r\n while (p) {\r\n ids.push(p.constructor?.name ?? '');\r\n p = p.parent;\r\n }\r\n return ids.join('>');\r\n }\r\n public disposingChilds = false;\r\n previouspage: any;\r\n current: ComponentBase | ComponentBase[] | null = null;\r\n _latestNavigateId = 0;\r\n isBusy: boolean = false;\r\n\r\n public async navigate(page: ComponentBase | ComponentBase[], keepOldControl: boolean = false) {\r\n await navigateHost(this, page, keepOldControl);\r\n }\r\n\r\n public async disposeTarget(target: ComponentBase | ComponentBase[] | null): Promise<void> {\r\n await disposeNavigationTarget(target);\r\n }\r\n public override onBuilt() {\r\n try {\r\n\r\n RouterViewRegistry.register(this.props.name ?? 'default', this.scopeId, this);\r\n let p: any = this.parent;\r\n while (p) {\r\n p.motif.trigger(RouterViewBuilt, this);\r\n p = p.parent;\r\n }\r\n } catch { /* ignore */ }\r\n }\r\n\r\n public override onDisposed() {\r\n try {\r\n RouterViewRegistry.unregister(this.props.name ?? 'default', this.scopeId);\r\n } catch { /* ignore */ }\r\n }\r\n\r\n}","\nimport type { ScrollMemoryOptions } from './common';\n\nexport interface ScrollViewport {\n scrollTop(): number;\n scrollTo(top: number): void;\n scrollToAnchor(id: string): boolean;\n}\n\nconst STORAGE_KEY = 'motifjs:scroll';\nconst DEFAULT_LIMIT = 60;\nconst DEFAULT_SETTLE_MS = 1200;\n\nconst USER_INPUT = ['wheel', 'touchstart', 'keydown', 'mousedown'] as const;\n\nexport class ScrollMemory {\n private readonly options: ScrollMemoryOptions;\n private readonly viewport: ScrollViewport;\n private readonly positions = new Map<string, number>();\n\n private currentKey = '';\n\n private visited = false;\n private restoring = false;\n private cancelFrame: (() => void) | null = null;\n private disarmAbort: (() => void) | null = null;\n private readonly offs: Array<() => void> = [];\n\n public locationAnchor = true;\n\n constructor(options: ScrollMemoryOptions = {}, viewport?: ScrollViewport) {\n this.options = options;\n this.viewport = viewport ?? (options.container ? containerViewport(options.container) : windowViewport());\n this.load();\n\n try {\n if (typeof history !== 'undefined' && 'scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n } catch { /* salt okunur bırakan gömülü tarayıcılar */ }\n\n if (typeof window !== 'undefined') {\n this.offs.push(listen(window, 'pagehide', () => this.persistNow()));\n this.offs.push(listen(document, 'visibilitychange', () => {\n if (document.visibilityState === 'hidden') this.persistNow();\n }));\n }\n }\n\n public leaving(): void {\n this.cancelRestore();\n if (!this.visited) return;\n this.remember(this.currentKey, this.viewport.scrollTop());\n this.persist();\n }\n\n public arrived(uri: string): void {\n this.visited = true;\n const { path, hash } = splitUri(uri);\n this.currentKey = this.keyOf(path);\n this.restore(this.currentKey, this.options.anchor === false ? '' : hash || (this.locationAnchor ? locationHash() : ''));\n }\n\n public saved(key: string): number {\n return this.positions.get(this.keyOf(splitUri(key).path)) ?? 0;\n }\n\n public dispose(): void {\n this.cancelRestore();\n this.persistNow();\n for (const off of this.offs.splice(0)) off();\n this.positions.clear();\n }\n\n\n private keyOf(path: string): string {\n const key = this.options.key ? this.options.key(path) : path;\n return key || '/';\n }\n\n private remember(key: string, top: number): void {\n const limit = this.options.limit ?? DEFAULT_LIMIT;\n this.positions.delete(key);\n this.positions.set(key, Math.max(0, Math.round(top)));\n while (this.positions.size > limit) {\n const oldest = this.positions.keys().next();\n if (oldest.done) break;\n this.positions.delete(oldest.value);\n }\n }\n\n private restore(key: string, anchor: string): void {\n this.cancelRestore();\n\n const target = this.positions.get(key) ?? 0;\n\n if (!anchor && target <= 0) {\n if (this.options.top !== false) this.viewport.scrollTo(0);\n return;\n }\n\n this.restoring = true;\n const settleMs = this.options.settleMs ?? DEFAULT_SETTLE_MS;\n const startedAt = Date.now();\n\n const attempt = (): void => {\n this.cancelFrame = null;\n const done = anchor ? this.viewport.scrollToAnchor(anchor) : this.reached(target);\n if (done || Date.now() - startedAt >= settleMs) {\n this.cancelRestore();\n this.remember(key, this.viewport.scrollTop());\n return;\n }\n this.armAbort();\n this.cancelFrame = frame(attempt);\n };\n attempt();\n }\n\n private reached(target: number): boolean {\n this.viewport.scrollTo(target);\n return this.viewport.scrollTop() >= target - 1;\n }\n\n private armAbort(): void {\n if (this.disarmAbort || typeof window === 'undefined') return;\n const abort = () => this.cancelRestore();\n const removers = USER_INPUT.map((type) => listen(window, type, abort, { passive: true }));\n this.disarmAbort = () => { for (const remove of removers) remove(); };\n }\n\n private cancelRestore(): void {\n this.cancelFrame?.();\n this.cancelFrame = null;\n this.disarmAbort?.();\n this.disarmAbort = null;\n this.restoring = false;\n }\n private persistNow(): void {\n if (this.visited && !this.restoring) {\n this.remember(this.currentKey, this.viewport.scrollTop());\n }\n this.persist();\n }\n\n private get storage(): Storage | null {\n if (this.options.persist === false) return null;\n try {\n return typeof sessionStorage === 'undefined' ? null : sessionStorage;\n } catch {\n return null;\n }\n }\n\n private persist(): void {\n const storage = this.storage;\n if (!storage) return;\n try {\n storage.setItem(STORAGE_KEY, JSON.stringify([...this.positions]));\n } catch {\n }\n }\n\n private load(): void {\n const storage = this.storage;\n if (!storage) return;\n try {\n const raw = storage.getItem(STORAGE_KEY);\n if (!raw) return;\n const parsed: unknown = JSON.parse(raw);\n if (!Array.isArray(parsed)) return;\n for (const pair of parsed) {\n if (!Array.isArray(pair) || typeof pair[0] !== 'string') continue;\n const top = Number(pair[1]);\n if (Number.isFinite(top) && top > 0) this.positions.set(pair[0], top);\n }\n } catch {\n }\n }\n}\n\n/** Gerçek pencere (`documentElement`). */\nfunction windowViewport(): ScrollViewport {\n return {\n scrollTop: () => {\n try { return window.scrollY || document.documentElement?.scrollTop || 0; } catch { return 0; }\n },\n scrollTo: (top) => {\n try { window.scrollTo(0, top); } catch { }\n },\n scrollToAnchor: (id) => {\n try {\n const node = document.getElementById(id);\n if (!node) return false;\n node.scrollIntoView();\n return true;\n } catch { return false; }\n },\n };\n}\n\nfunction containerViewport(container: NonNullable<ScrollMemoryOptions['container']>): ScrollViewport {\n const fallback = windowViewport();\n const resolve = (): HTMLElement | null => {\n try {\n if (typeof container === 'string') return document.querySelector(container) as HTMLElement | null;\n if (typeof container === 'function') return container() ?? null;\n return container;\n } catch { return null; }\n };\n return {\n scrollTop: () => {\n const el = resolve();\n if (!el) return fallback.scrollTop();\n return el.scrollTop || 0;\n },\n scrollTo: (top) => {\n const el = resolve();\n if (!el) { fallback.scrollTo(top); return; }\n try { el.scrollTop = top; } catch { }\n },\n scrollToAnchor: (id) => fallback.scrollToAnchor(id),\n };\n}\n\n/** `/docs/x#bolum` → `{ path: '/docs/x', hash: 'bolum' }`. */\nfunction splitUri(uri: string): { path: string; hash: string } {\n const index = uri.indexOf('#');\n if (index < 0) return { path: uri, hash: '' };\n return { path: uri.slice(0, index) || '/', hash: decodeHash(uri.slice(index + 1)) };\n}\n\nfunction locationHash(): string {\n try {\n const hash = location?.hash ?? '';\n return hash.length > 1 ? decodeHash(hash.slice(1)) : '';\n } catch { return ''; }\n}\n\nfunction decodeHash(value: string): string {\n try { return decodeURIComponent(value); } catch { return value; }\n}\n\nfunction frame(run: () => void): () => void {\n if (typeof requestAnimationFrame !== 'function') {\n const id = setTimeout(run, 16);\n return () => clearTimeout(id);\n }\n const id = requestAnimationFrame(run);\n return () => cancelAnimationFrame(id);\n}\n\nfunction listen(\n target: EventTarget,\n type: string,\n handler: () => void,\n options?: AddEventListenerOptions,\n): () => void {\n try {\n target.addEventListener(type, handler, options);\n return () => { try { target.removeEventListener(type, handler, options); } catch { } };\n } catch {\n return () => { };\n }\n}","import { ComponentBase, notifyDeactivated } from \"../\";\nimport { disposeNavigationTarget, hasOwnTransition } from \"../component/navigation\";\nimport { reportError } from \"../common/diagnostics\";\nimport type { NavigationDirection, RouteItem, StackEntryInfo, StackOptions, StackTransitionContext } from \"./\";\n\nexport type HistoryPoint = { index: number; session: string };\n\nexport type StackNavigation = {\n direction: NavigationDirection;\n from: HistoryPoint | null;\n to: HistoryPoint | null;\n uri: string;\n};\n\ntype SavedScroll = Array<[Element, number, number]>;\n\ntype SavedPresentation = {\n style: string | null;\n inert: boolean;\n ariaHidden: string | null;\n};\n\nexport type RetainedEntry = {\n point: HistoryPoint;\n uri: string;\n chain: RouteItem[];\n instances: ComponentBase[];\n top: ComponentBase;\n topIndex: number;\n outlet: any;\n attached: boolean;\n hidden: boolean;\n pendingDetach: boolean;\n saved: SavedPresentation | null;\n scroll: SavedScroll;\n};\n\ntype Gesture = {\n startX: number;\n startY: number;\n lastX: number;\n samples: Array<[number, number]>;\n dragging: boolean;\n width: number;\n top: HTMLElement;\n topSaved: string | null;\n under: RetainedEntry | null;\n underSaved: string | null;\n offs: Array<() => void>;\n};\n\nconst STORAGE_KEY = 'motifjs:stack';\nconst SLIDE_OFFSET = 30;\nconst EASING = 'cubic-bezier(0.2, 0.8, 0.2, 1)';\n\nconst isElement = (node: any): node is HTMLElement => !!node && node.nodeType === 1 && !!node.style;\n\nexport { hasOwnTransition };\n\nexport function markDirection(component: ComponentBase | null | undefined, direction: NavigationDirection): void {\n const el = component?.element as any;\n if (!component || component.isDisposed || !isElement(el)) return;\n try { el.setAttribute('data-nav-direction', direction); } catch { }\n (component.motif.options.transition as any)._markedDirection = true;\n}\n\nexport function unmarkDirection(component: ComponentBase | null | undefined): void {\n const transition: any = component?.motif?.options?.transition;\n if (!transition?._markedDirection) return;\n transition._markedDirection = false;\n try { (component!.element as any)?.removeAttribute?.('data-nav-direction'); } catch { }\n}\n\nexport function playLeave(component: ComponentBase): Promise<void> {\n return new Promise<void>((resolve) => {\n let settled = false;\n const done = () => { if (!settled) { settled = true; resolve(); } };\n try {\n const animation: any = component.motif.options.transition.leaveTransition(done);\n if (animation && typeof animation.addEventListener === 'function') animation.addEventListener('cancel', done);\n } catch {\n done();\n }\n });\n}\n\nfunction saveStyle(el: HTMLElement): string | null {\n return el.getAttribute('style');\n}\n\nfunction restoreStyle(el: HTMLElement, value: string | null): void {\n try {\n el.setAttribute('style', value ?? '');\n if (value === null) el.removeAttribute('style');\n } catch { }\n}\n\nfunction saveScroll(root: HTMLElement): SavedScroll {\n const saved: SavedScroll = [];\n try {\n const visit = (el: Element) => {\n const top = (el as HTMLElement).scrollTop || 0;\n const left = (el as HTMLElement).scrollLeft || 0;\n if (top || left) saved.push([el, top, left]);\n };\n visit(root);\n root.querySelectorAll('*').forEach(visit);\n } catch { }\n return saved;\n}\n\nfunction restoreScroll(saved: SavedScroll): void {\n for (const [el, top, left] of saved) {\n try {\n (el as HTMLElement).scrollTop = top;\n (el as HTMLElement).scrollLeft = left;\n } catch { }\n }\n}\n\nfunction prefersReducedMotion(): boolean {\n try {\n return typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n } catch { return false; }\n}\n\nfunction play(el: HTMLElement, keyframes: Keyframe[], duration: number, running: Animation[]): Promise<void> {\n if (typeof (el as any).animate !== 'function' || duration <= 0) return Promise.resolve();\n try {\n const animation = el.animate(keyframes, { duration, easing: EASING, fill: 'forwards' });\n running.push(animation);\n return animation.finished.then(() => undefined, () => undefined);\n } catch {\n return Promise.resolve();\n }\n}\n\nfunction overlay(floating: HTMLElement, anchor: HTMLElement, above: boolean): void {\n floating.style.position = 'absolute';\n floating.style.top = '0px';\n floating.style.left = '0px';\n floating.style.margin = '0px';\n floating.style.boxSizing = 'border-box';\n const a = anchor.getBoundingClientRect();\n const f = floating.getBoundingClientRect();\n floating.style.top = (a.top - f.top) + 'px';\n floating.style.left = (a.left - f.left) + 'px';\n floating.style.width = a.width + 'px';\n floating.style.height = a.height + 'px';\n floating.style.pointerEvents = 'none';\n floating.style.zIndex = above ? '2' : '0';\n if (!above) {\n let position = '';\n try { position = getComputedStyle(anchor).position; } catch { }\n if (!position || position === 'static') anchor.style.position = 'relative';\n anchor.style.zIndex = '1';\n }\n}\n\nexport class NavigationStack {\n readonly retainAttached: boolean;\n readonly depth: number;\n readonly persist: boolean;\n readonly animation: StackOptions['animation'];\n readonly duration: number;\n private readonly swipe: { edge: number; threshold: number } | null;\n\n private session: string | null = null;\n private readonly entries = new Map<number, RetainedEntry>();\n private readonly uris = new Map<number, string>();\n private loaded: { session: string; uris: Array<[number, string]> } | null = null;\n private current: HistoryPoint | null = null;\n private currentTop: ComponentBase | null = null;\n private readonly offs: Array<() => void> = [];\n private gesture: Gesture | null = null;\n private gestureCommitted = false;\n private awaitingGestureResult = false;\n private disposed = false;\n\n constructor(options: true | StackOptions) {\n const o: StackOptions = options === true ? {} : options;\n this.retainAttached = o.retain === true;\n this.depth = Math.max(0, Math.floor(o.depth ?? 5));\n this.persist = o.persist === true;\n this.animation = o.animation ?? 'none';\n this.duration = Math.max(0, o.duration ?? 300);\n const sb = o.swipeBack;\n this.swipe = sb\n ? {\n edge: (typeof sb === 'object' && typeof sb.edge === 'number' && sb.edge > 0) ? sb.edge : 24,\n threshold: (typeof sb === 'object' && typeof sb.threshold === 'number' && sb.threshold > 0) ? sb.threshold : 0.35,\n }\n : null;\n if (this.persist) this.load();\n if (this.swipe) this.installSwipe();\n }\n\n public get retainedCount(): number {\n return this.entries.size;\n }\n\n public isRetaining(nav: StackNavigation): boolean {\n return !!nav.from && !!nav.to && nav.from.session === nav.to.session && nav.to.index > nav.from.index;\n }\n\n public begin(nav: StackNavigation): void {\n const point = nav.to;\n if (!point) return;\n if (this.session !== point.session) {\n this.disposeAllEntries();\n this.uris.clear();\n this.session = point.session;\n if (this.loaded && this.loaded.session === point.session) {\n for (const [index, uri] of this.loaded.uris) this.uris.set(index, uri);\n }\n this.loaded = null;\n }\n if (nav.direction === 'push') {\n this.truncate(point.index);\n } else if (nav.direction === 'replace') {\n const stale = this.entries.get(point.index);\n if (stale) { this.entries.delete(point.index); void this.disposeEntry(stale); }\n }\n }\n\n public take(point: HistoryPoint | null): RetainedEntry | null {\n if (!point || point.session !== this.session) return null;\n const entry = this.entries.get(point.index);\n if (!entry) return null;\n this.entries.delete(point.index);\n entry.pendingDetach = false;\n return entry;\n }\n\n public retain(point: HistoryPoint, uri: string, chain: RouteItem[], instances: ComponentBase[], topIndex: number, outlet: any, deferHide: boolean): RetainedEntry {\n const top = instances[topIndex];\n const el = top.element as any;\n const entry: RetainedEntry = {\n point, uri, chain: chain.slice(), instances: instances.slice(), top, topIndex, outlet,\n attached: false, hidden: false, pendingDetach: false, saved: null,\n scroll: isElement(el) ? saveScroll(el) : [],\n };\n if (this.retainAttached && isElement(el)) {\n entry.attached = true;\n if (!deferHide) this.hide(entry);\n } else if (deferHide) {\n entry.pendingDetach = true;\n } else {\n try { top.parent?.controls.silentDetach(top); } catch { }\n }\n const previous = this.entries.get(point.index);\n if (previous && previous !== entry) void this.disposeEntry(previous);\n this.entries.set(point.index, entry);\n this.evict();\n return entry;\n }\n\n public settle(entry: RetainedEntry): void {\n if (entry.top.isDisposed || this.entries.get(entry.point.index) !== entry) return;\n if (entry.attached) {\n this.hide(entry);\n } else if (entry.pendingDetach) {\n entry.pendingDetach = false;\n try { entry.top.parent?.controls.silentDetach(entry.top); } catch { }\n }\n }\n\n public hide(entry: RetainedEntry): void {\n if (!entry.attached || entry.hidden) return;\n const el = entry.top.element as any;\n if (!isElement(el)) return;\n entry.saved = {\n style: saveStyle(el),\n inert: el.hasAttribute('inert'),\n ariaHidden: el.getAttribute('aria-hidden'),\n };\n try {\n el.style.setProperty('display', 'none', 'important');\n el.setAttribute('inert', '');\n el.setAttribute('aria-hidden', 'true');\n } catch { }\n entry.hidden = true;\n try { notifyDeactivated(entry.top); } catch { }\n }\n\n public reveal(entry: RetainedEntry): void {\n const el = entry.top.element as any;\n if (entry.hidden && entry.saved && isElement(el)) {\n restoreStyle(el, entry.saved.style);\n try {\n if (!entry.saved.inert) el.removeAttribute('inert');\n if (entry.saved.ariaHidden === null) el.removeAttribute('aria-hidden');\n else el.setAttribute('aria-hidden', entry.saved.ariaHidden);\n } catch { }\n }\n entry.hidden = false;\n entry.saved = null;\n }\n\n public restoreScroll(entry: RetainedEntry): void {\n restoreScroll(entry.scroll);\n }\n\n public record(nav: StackNavigation, top: ComponentBase | null): void {\n if (nav.to && nav.to.session === this.session) {\n this.uris.set(nav.to.index, nav.uri);\n if (nav.direction === 'push') {\n for (const index of Array.from(this.uris.keys())) {\n if (index > nav.to.index) this.uris.delete(index);\n }\n }\n this.current = nav.to;\n }\n this.currentTop = top;\n this.save();\n }\n\n public describe(): StackEntryInfo[] {\n const current = this.current?.index;\n return Array.from(this.uris.entries())\n .sort((a, b) => a[0] - b[0])\n .map(([index, uri]) => ({ index, uri, current: index === current, retained: this.entries.has(index) }));\n }\n\n public get gestureCommitPending(): boolean {\n return this.gestureCommitted;\n }\n\n public consumeGestureCommit(): boolean {\n const committed = this.gestureCommitted;\n this.gestureCommitted = false;\n return committed;\n }\n\n public traversalSettled(cancelled: boolean): void {\n if (!this.awaitingGestureResult) return;\n this.awaitingGestureResult = false;\n const g = this.gesture;\n if (!cancelled) {\n this.gesture = null;\n this.gestureCommitted = false;\n return;\n }\n this.gestureCommitted = false;\n if (g) void this.settleGesture(g, false);\n }\n\n public async transition(direction: NavigationDirection, entering: ComponentBase | null, leaving: ComponentBase | null): Promise<void> {\n if (this.consumeGestureCommit()) return;\n if (this.animation === 'none' || !this.animation) return;\n if (direction !== 'push' && direction !== 'back' && direction !== 'forward') return;\n const enteringEl = entering?.element as any;\n const leavingEl = leaving?.element as any;\n if (!isElement(enteringEl) || !isElement(leavingEl) || !enteringEl.isConnected || !leavingEl.isConnected) return;\n if (prefersReducedMotion()) return;\n\n const backwards = direction === 'back';\n const enteringStyle = saveStyle(enteringEl);\n const leavingStyle = saveStyle(leavingEl);\n const running: Animation[] = [];\n try {\n overlay(leavingEl, enteringEl, backwards);\n if (typeof this.animation === 'function') {\n const context: StackTransitionContext = { direction, entering: enteringEl, leaving: leavingEl };\n await this.animation(context);\n } else {\n const d = this.duration;\n if (backwards) {\n await Promise.all([\n play(leavingEl, [{ transform: 'translateX(0)' }, { transform: 'translateX(100%)' }], d, running),\n play(enteringEl, [{ transform: `translateX(-${SLIDE_OFFSET}%)` }, { transform: 'translateX(0)' }], d, running),\n ]);\n } else {\n await Promise.all([\n play(enteringEl, [{ transform: 'translateX(100%)' }, { transform: 'translateX(0)' }], d, running),\n play(leavingEl, [{ transform: 'translateX(0)' }, { transform: `translateX(-${SLIDE_OFFSET}%)` }], d, running),\n ]);\n }\n }\n } catch (error) {\n reportError('MJX308', error);\n } finally {\n for (const a of running) { try { a.cancel(); } catch { } }\n restoreStyle(enteringEl, enteringStyle);\n restoreStyle(leavingEl, leavingStyle);\n }\n }\n\n public async disposeEntry(entry: RetainedEntry): Promise<void> {\n const top = entry.top;\n if (!top || top.isDisposed) return;\n try { await disposeNavigationTarget(top, { deep: true, skipLeaveTransition: true }); } catch (error) { reportError('MJX307', error); }\n }\n\n public async dispose(): Promise<void> {\n if (this.disposed) return;\n this.disposed = true;\n for (const off of this.offs.splice(0)) { try { off(); } catch { } }\n if (this.gesture) { this.endGestureListeners(this.gesture); this.gesture = null; }\n await this.disposeAllEntries();\n this.uris.clear();\n this.current = null;\n this.currentTop = null;\n }\n\n private async disposeAllEntries(): Promise<void> {\n const all = Array.from(this.entries.values());\n this.entries.clear();\n for (const entry of all) await this.disposeEntry(entry);\n }\n\n private truncate(fromIndex: number): void {\n for (const [index, entry] of Array.from(this.entries)) {\n if (index >= fromIndex) {\n this.entries.delete(index);\n void this.disposeEntry(entry);\n }\n }\n }\n\n private evict(): void {\n while (this.entries.size > this.depth) {\n let oldest = Infinity;\n for (const index of this.entries.keys()) if (index < oldest) oldest = index;\n const entry = this.entries.get(oldest);\n this.entries.delete(oldest);\n if (entry) void this.disposeEntry(entry);\n }\n }\n\n private load(): void {\n try {\n if (typeof sessionStorage === 'undefined') return;\n const raw = sessionStorage.getItem(STORAGE_KEY);\n if (!raw) return;\n const parsed = JSON.parse(raw);\n if (!parsed || typeof parsed.session !== 'string' || !Array.isArray(parsed.uris)) return;\n const uris: Array<[number, string]> = [];\n for (const pair of parsed.uris) {\n if (Array.isArray(pair) && typeof pair[0] === 'number' && typeof pair[1] === 'string') uris.push([pair[0], pair[1]]);\n }\n this.loaded = { session: parsed.session, uris };\n } catch { }\n }\n\n private save(): void {\n if (!this.persist || !this.session) return;\n try {\n if (typeof sessionStorage === 'undefined') return;\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify({ session: this.session, uris: Array.from(this.uris.entries()) }));\n } catch { }\n }\n\n private installSwipe(): void {\n if (typeof document === 'undefined') return;\n const onStart = (e: TouchEvent) => this.onTouchStart(e);\n try {\n document.addEventListener('touchstart', onStart as any, { passive: true });\n this.offs.push(() => { try { document.removeEventListener('touchstart', onStart as any); } catch { } });\n } catch { }\n }\n\n private onTouchStart(e: TouchEvent): void {\n if (this.disposed || this.gesture || this.awaitingGestureResult || !this.swipe) return;\n if (!e.touches || e.touches.length !== 1) return;\n const t = e.touches[0];\n if (!t || t.clientX > this.swipe.edge) return;\n if (!this.current || this.current.index <= 0) return;\n const topEl = this.currentTop?.element as any;\n if (!isElement(topEl) || !topEl.isConnected) return;\n\n const g: Gesture = {\n startX: t.clientX, startY: t.clientY, lastX: t.clientX, samples: [[t.clientX, Date.now()]],\n dragging: false, width: 0, top: topEl, topSaved: null, under: null, underSaved: null, offs: [],\n };\n const onMove = (ev: TouchEvent) => this.onTouchMove(g, ev);\n const onEnd = () => this.onTouchEnd(g);\n try {\n document.addEventListener('touchmove', onMove as any, { passive: false });\n document.addEventListener('touchend', onEnd);\n document.addEventListener('touchcancel', onEnd);\n g.offs.push(() => {\n try { document.removeEventListener('touchmove', onMove as any); } catch { }\n try { document.removeEventListener('touchend', onEnd); } catch { }\n try { document.removeEventListener('touchcancel', onEnd); } catch { }\n });\n } catch { }\n this.gesture = g;\n }\n\n private endGestureListeners(g: Gesture): void {\n for (const off of g.offs.splice(0)) { try { off(); } catch { } }\n }\n\n private beginDrag(g: Gesture): void {\n g.dragging = true;\n g.width = g.top.getBoundingClientRect().width || (typeof window !== 'undefined' ? window.innerWidth : 0) || 1;\n g.topSaved = saveStyle(g.top);\n const current = this.current;\n const under = current ? this.entries.get(current.index - 1) ?? null : null;\n if (under && under.attached && isElement(under.top.element) && (under.top.element as any).isConnected) {\n const el = under.top.element as any as HTMLElement;\n g.under = under;\n g.underSaved = saveStyle(el);\n if (under.saved) restoreStyle(el, under.saved.style);\n overlay(el, g.top, false);\n el.style.transform = `translateX(-${SLIDE_OFFSET}%)`;\n restoreScroll(under.scroll);\n }\n g.top.style.willChange = 'transform';\n }\n\n private applyDrag(g: Gesture, dx: number): void {\n const progress = Math.min(1, Math.max(0, dx / g.width));\n g.top.style.transform = `translateX(${Math.max(0, dx)}px)`;\n if (g.under) {\n (g.under.top.element as any as HTMLElement).style.transform = `translateX(-${SLIDE_OFFSET * (1 - progress)}%)`;\n }\n }\n\n private onTouchMove(g: Gesture, e: TouchEvent): void {\n const t = e.touches && e.touches[0];\n if (!t) return;\n const dx = t.clientX - g.startX;\n const dy = t.clientY - g.startY;\n if (!g.dragging) {\n if (Math.abs(dx) < 8 && Math.abs(dy) < 8) return;\n if (dx <= 0 || Math.abs(dy) > Math.abs(dx)) {\n this.endGestureListeners(g);\n this.gesture = null;\n return;\n }\n this.beginDrag(g);\n }\n if (e.cancelable) { try { e.preventDefault(); } catch { } }\n const now = Date.now();\n g.lastX = t.clientX;\n g.samples.push([t.clientX, now]);\n while (g.samples.length > 2 && now - g.samples[0][1] > 100) g.samples.shift();\n this.applyDrag(g, dx);\n }\n\n private onTouchEnd(g: Gesture): void {\n this.endGestureListeners(g);\n if (!g.dragging) { this.gesture = null; return; }\n const dx = g.lastX - g.startX;\n const progress = dx / g.width;\n const first = g.samples[0];\n const last = g.samples[g.samples.length - 1];\n const span = last && first ? last[1] - first[1] : 0;\n const idle = last ? Date.now() - last[1] : Infinity;\n const velocity = span >= 16 && idle <= 50 ? (last[0] - first[0]) / span : 0;\n const commit = progress > this.swipe!.threshold || (velocity > 0.5 && dx > 0);\n void this.settleGesture(g, commit);\n }\n\n private async settleGesture(g: Gesture, commit: boolean): Promise<void> {\n const running: Animation[] = [];\n const topEl = g.top;\n const underEl = g.under ? g.under.top.element as any as HTMLElement : null;\n const duration = prefersReducedMotion() ? 0 : Math.max(0, Math.round(this.duration * 0.6));\n const currentTop = topEl.style.transform || 'translateX(0px)';\n const currentUnder = underEl?.style.transform || `translateX(-${SLIDE_OFFSET}%)`;\n if (commit) {\n await Promise.all([\n play(topEl, [{ transform: currentTop }, { transform: 'translateX(100%)' }], duration, running),\n underEl ? play(underEl, [{ transform: currentUnder }, { transform: 'translateX(0)' }], duration, running) : Promise.resolve(),\n ]);\n topEl.style.transform = 'translateX(100%)';\n if (underEl) underEl.style.transform = 'translateX(0px)';\n for (const a of running) { try { a.cancel(); } catch { } }\n this.gestureCommitted = true;\n this.awaitingGestureResult = true;\n try { window.history.back(); } catch { this.traversalSettled(true); }\n return;\n }\n await Promise.all([\n play(topEl, [{ transform: currentTop }, { transform: 'translateX(0)' }], duration, running),\n underEl ? play(underEl, [{ transform: currentUnder }, { transform: `translateX(-${SLIDE_OFFSET}%)` }], duration, running) : Promise.resolve(),\n ]);\n for (const a of running) { try { a.cancel(); } catch { } }\n restoreStyle(topEl, g.topSaved);\n if (underEl && g.under) {\n restoreStyle(underEl, g.underSaved);\n }\n if (this.gesture === g) this.gesture = null;\n }\n}\n","export const enum CharacterCodes {\n slash = 0x2F, // /\n question = 0x3F, // ?\n colon = 0x3A, // :\n openBrace = 0x7B, // {\n closeBrace = 0x7D, // }\n equals = 0x3D, // =\n $ = 0x24,\n backslash = 0x5C, // \\\n}\n\n\n\n\nexport interface IToken {\n type: 'static' | 'optional' | 'parameter';\n regexs: [];\n input: string;\n default: string | undefined;\n parameterName: string;\n isOptinal: boolean;\n parameterIndex: number;\n sectionIndex: number;\n hasLeadingSlash?: boolean;\n leadingSlashTokenIndex?: number;\n hasLeadingStatic?: boolean;\n leadingStaticTokenIndex?: number;\n consumed?: boolean;\n}\nexport class Scanner {\n\n constructor(public source: string) {\n this.tokens = [];\n }\n currentColumn = 0;\n tokens: IToken[] = [];\n addToken(token: IToken) {\n this.tokens.push(token);\n }\n\n public parse(): RegExp {\n if (!this.source.startsWith(\"/\")) {\n this.source = \"/\" + this.source;\n }\n // Sondaki '/' karakterlerini normalize et (kök '/' hariç): '/app/' deseni '/app' ile aynı\n while (this.source.length > 1 && this.source.endsWith('/')) {\n this.source = this.source.slice(0, -1);\n }\n\n var currentType: 'static' | 'optional' | 'parameter' | 'defaultValue' = 'static';\n var parentTokenIndex = -1;\n var parameterIndex = 0;\n var sectionIndex = -1;\n this.tokens = [];\n this.currentColumn = 0;\n while (this.currentColumn < this.source.length) {\n\n var cpa = this.codePointAt(this.source, this.currentColumn);\n\n var currentToken = this.tokens[parentTokenIndex];\n switch (cpa) {\n case CharacterCodes.slash:\n sectionIndex++;\n if (currentToken === undefined || currentToken.input.length > 1) {\n this.tokens.push({ default: '', input: '/', isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n break;\n case CharacterCodes.openBrace:\n parameterIndex++;\n let hasLeadingSlash = false;\n let leadingSlashTokenIndex: number | undefined = undefined;\n let hasLeadingStatic = false;\n let leadingStaticTokenIndex: number | undefined = undefined;\n if (this.tokens.length > 0) {\n const prev = this.tokens[this.tokens.length - 1];\n if (prev && prev.type === 'static' && prev.input === '/' && !prev.consumed) {\n hasLeadingSlash = true;\n leadingSlashTokenIndex = this.tokens.length - 1;\n } else if (prev && prev.type === 'static' && prev.input !== '/' && prev.sectionIndex === sectionIndex && !prev.consumed) {\n hasLeadingStatic = true;\n leadingStaticTokenIndex = this.tokens.length - 1;\n }\n }\n this.tokens.push({ default: undefined, input: '', isOptinal: false, regexs: [], type: 'parameter', parameterName: '', parameterIndex: parameterIndex, sectionIndex, hasLeadingSlash, leadingSlashTokenIndex, hasLeadingStatic, leadingStaticTokenIndex });\n parentTokenIndex = this.tokens.length - 1;\n currentType = 'parameter';\n break;\n case CharacterCodes.closeBrace:\n currentType = 'static';\n parentTokenIndex = -1;\n break;\n case CharacterCodes.colon:\n currentType = 'defaultValue';\n break;\n\n case CharacterCodes.question:\n if (currentToken) {\n currentToken.isOptinal = true;\n }\n break;\n default:\n const ch = this.source[this.currentColumn];\n if (currentToken) {\n if (currentType === 'parameter') {\n currentToken.parameterName = `${currentToken.parameterName + ch}`;\n } else if (currentType === 'defaultValue') {\n currentToken.default = `${(currentToken.default ?? '') + ch}`;\n } else {\n if (currentToken.type === 'static') {\n currentToken.input = `${currentToken.input + ch}`;\n } else {\n this.tokens.push({ default: undefined, input: ch, isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n }\n } else {\n this.tokens.push({ default: undefined, input: ch, isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n break;\n }\n this.currentColumn++;\n }\n\n const escapeRegex = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const charClass = \"[\\\\w\\\\d\\\\_\\\\-\\\\%\\\\&\\\\$\\\\+\\\\#\\\\,\\\\.\\\\{\\\\}\\\\(\\\\)\\\\[\\\\]\\\\?\\\\:\\\\=\\\\;\\\\'\\\\\\\"\\\\~\\\\\\\\]\";\n\n for (const t of this.tokens) {\n if (t.type === 'parameter' && t.isOptinal && t.hasLeadingSlash && typeof t.leadingSlashTokenIndex === 'number') {\n const prev = this.tokens[t.leadingSlashTokenIndex];\n if (prev && prev.type === 'static' && prev.input === '/') {\n prev.consumed = true;\n }\n }\n if (t.type === 'parameter' && t.isOptinal && t.hasLeadingStatic && typeof t.leadingStaticTokenIndex === 'number') {\n const prev = this.tokens[t.leadingStaticTokenIndex];\n if (prev && prev.type === 'static' && prev.input && prev.sectionIndex === t.sectionIndex) {\n prev.consumed = true;\n }\n }\n }\n\n const escapeClassChar = (c: string) => c.replace(/[\\\\\\]\\^\\-]/g, '\\\\$&');\n\n const getNextDelimChar = (idx: number): string | undefined => {\n const t = this.tokens[idx];\n for (let j = idx + 1; j < this.tokens.length; j++) {\n const nx = this.tokens[j];\n if (nx.type === 'static' && nx.sectionIndex === t.sectionIndex) {\n if (nx.input && nx.input !== '/') {\n return nx.input[0];\n }\n }\n if (nx.type === 'static' && nx.input === '/') break;\n }\n return undefined;\n };\n const buildCapture = (idx: number, isOptional: boolean) => {\n const delim = getNextDelimChar(idx);\n const innerClass = delim ? `[^${escapeClassChar(escapeRegex(delim))}]` : charClass;\n const quant = isOptional ? '{0,255}' : '{1,255}';\n return `(${innerClass}${quant})`;\n };\n\n let pattern = '^';\n for (let i = 0; i < this.tokens.length;) {\n const tok = this.tokens[i];\n if (tok.type === 'static' && tok.input === '/') {\n if (!tok.consumed) pattern += '/';\n i++;\n continue;\n }\n const segStart = i;\n let segEnd = i;\n while (segEnd < this.tokens.length) {\n const t = this.tokens[segEnd];\n if (t.type === 'static' && t.input === '/' && segEnd !== segStart) break;\n if (t.type === 'static' && t.input === '/' && segEnd === segStart) { segEnd++; break; }\n segEnd++;\n }\n const visited: Record<number, boolean> = {};\n let k = segStart;\n while (k < segEnd) {\n if (visited[k]) { k++; continue; }\n const t = this.tokens[k];\n if (t.type === 'static') {\n if (!t.consumed) pattern += escapeRegex(t.input);\n visited[k] = true;\n k++;\n continue;\n }\n if (t.isOptinal && !t.hasLeadingStatic) {\n\n const firstIdx = k;\n let hasDependent = false;\n for (let jj = firstIdx + 1; jj < segEnd; jj++) {\n const sj = this.tokens[jj];\n const pj = this.tokens[jj + 1] as IToken | undefined;\n if (sj && sj.type === 'static' && pj && pj.type === 'parameter' && pj.isOptinal && pj.hasLeadingStatic && typeof pj.leadingStaticTokenIndex === 'number' && pj.leadingStaticTokenIndex === jj) {\n hasDependent = true;\n break;\n }\n if (sj && sj.type === 'static' && sj.input === '/') break;\n }\n\n let groupInner = '';\n if (t.hasLeadingSlash) groupInner += '/';\n groupInner += buildCapture(firstIdx, !hasDependent);\n visited[firstIdx] = true;\n let j = firstIdx + 1;\n while (j < segEnd) {\n const sj = this.tokens[j];\n if (sj.type === 'static' && this.tokens[j + 1] && this.tokens[j + 1].type === 'parameter') {\n const prm = this.tokens[j + 1] as IToken;\n if (prm.isOptinal && prm.hasLeadingStatic && typeof prm.leadingStaticTokenIndex === 'number' && prm.leadingStaticTokenIndex === j) {\n const lit = escapeRegex(sj.input);\n const cap = buildCapture(j + 1, true);\n groupInner += `(?:${lit}${cap})?`;\n visited[j] = true;\n visited[j + 1] = true;\n j += 2;\n continue;\n }\n }\n break;\n }\n pattern += `(?:${groupInner})?`;\n k = j;\n continue;\n } else {\n const cap = buildCapture(k, t.isOptinal);\n if (t.isOptinal) {\n if (t.hasLeadingSlash) {\n pattern += `(?:/${cap})?`;\n } else if (t.hasLeadingStatic && typeof t.leadingStaticTokenIndex === 'number') {\n const prev = this.tokens[t.leadingStaticTokenIndex];\n const lit = prev && prev.type === 'static' ? escapeRegex(prev.input) : '';\n pattern += `(?:${lit}${cap})?`;\n } else {\n pattern += `(?:${cap})?`;\n }\n } else {\n pattern += cap;\n }\n visited[k] = true;\n k++;\n }\n }\n i = segEnd;\n }\n\n pattern += '$';\n return new RegExp(pattern, \"i\");\n }\n public parameters: Record<string, any> = {};\n public exist(input: string, pageSearch?: string): boolean {\n const hashIdx = input.indexOf('#');\n const withoutHash = hashIdx >= 0 ? input.substring(0, hashIdx) : input;\n let path = withoutHash;\n let query = '';\n const qIdx = withoutHash.indexOf('?');\n if (qIdx >= 0) {\n path = withoutHash.substring(0, qIdx);\n query = withoutHash.substring(qIdx + 1);\n }\n\n // İstek yolundaki sondaki '/' karakterlerini yok say (kök '/' hariç):\n // '/app/' → '/app'; desen ^...$ tam eşleşme olduğundan aksi halde not-found olur.\n while (path.length > 1 && path.endsWith('/')) {\n path = path.slice(0, -1);\n }\n\n var tx = this.parse();\n var rx = tx.exec(path);\n\n if (rx) {\n var i = rx ? rx.length : 0;\n var arr = <any>[];\n\n this.parameters = {};\n rx?.forEach((t, indx) => {\n arr.push(t);\n })\n if (query && query.length) {\n const urlSearchParams = new URLSearchParams(query);\n const queryMap = new Map<string, string[]>();\n urlSearchParams.forEach((val, key) => {\n const existing = queryMap.get(key) || [];\n existing.push(val);\n queryMap.set(key, existing);\n });\n queryMap.forEach((values, key) => {\n if (values.length === 1) {\n this.parameters[key] = values[0];\n } else {\n this.parameters[key] = values;\n }\n });\n } else if (pageSearch) {\n const urlSearchParams = new URLSearchParams(pageSearch);\n const queryMap = new Map<string, string[]>();\n urlSearchParams.forEach((val, key) => {\n const existing = queryMap.get(key) || [];\n existing.push(val);\n queryMap.set(key, existing);\n });\n queryMap.forEach((values, key) => {\n if (values.length === 1) {\n this.parameters[key] = values[0];\n } else {\n this.parameters[key] = values;\n }\n });\n }\n\n if (rx.input === arr[0]) {\n rx?.forEach((t, indx) => {\n\n if (indx !== 0) {\n var all = this.tokens.find(t => t.parameterIndex == indx);\n if (all) {\n let val: any = t;\n if ((val === undefined || val === '') && all.isOptinal) {\n const def = (all.default === undefined || all.default === '') ? undefined : all.default;\n val = def;\n }\n if (val === undefined) {\n this.parameters[all.parameterName] = undefined;\n } else {\n this.parameters[all.parameterName] = val;\n }\n }\n }\n })\n /* TODO: route detayları ile ilgili mesajı Geliştirici Araçları'na gönder */\n return true;\n }\n }\n\n return false;\n }\n codePointAt: (s: string, i: number) =>\n number = (String.prototype as any).codePointAt ?\n (s, i) => (s as any).codePointAt(i) : function codePointAt(str, i): number {\n const size = str.length;\n if (i < 0 || i >= size) {\n return undefined!;\n }\n const first = str.charCodeAt(i);\n if (first >= 0xD800 && first <= 0xDBFF && size > i + 1) {\n const second = str.charCodeAt(i + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n };\n\n}","import { RouteItem, RouteRecord } from \"./RouteItem\";\r\nimport { Scanner } from \"./scanner\";\r\n\r\n\r\n/** Bir fullPath'in statik (parametresiz) ve parametreli segment sayıları. */\r\nexport function routeSpecificity(fullPath: string): { statics: number; params: number } {\r\n let statics = 0, params = 0;\r\n for (const seg of (fullPath || '').split('/')) {\r\n if (!seg) continue;\r\n if (seg.startsWith('{') && seg.endsWith('}')) params++; else statics++;\r\n }\r\n return { statics, params };\r\n}\r\n\r\nexport function compareRouteRecords(a: RouteRecord, b: RouteRecord): number {\r\n const d = a.chain.length - b.chain.length;\r\n if (d !== 0) return d;\r\n const sa = routeSpecificity(a.fullPath), sb = routeSpecificity(b.fullPath);\r\n if (sa.statics !== sb.statics) return sb.statics - sa.statics;\r\n if (sa.params !== sb.params) return sa.params - sb.params;\r\n return b.fullPath.length - a.fullPath.length;\r\n}\r\n\r\nexport class RouteCollection {\r\n\r\n public records: RouteRecord[] = [];\r\n private routesMap: Map<any, RouteItem> = new Map();\r\n constructor(private routes: RouteItem[]) {\r\n this.build();\r\n }\r\n\r\n private build() {\r\n this.records = [];\r\n this.routesMap.clear();\r\n\r\n for (const r of this.routes) this.walk([], \"\", r);\r\n\r\n this.records.sort(compareRouteRecords);\r\n }\r\n\r\n walk = (chain: RouteItem[], parentPath: string, node: RouteItem, viaAlias: boolean = false) => {\r\n const fullPath = this.joinPaths(parentPath, node.path);\r\n if (!viaAlias) {\r\n const existing = (node as any).fullPath as string | null | undefined;\r\n if (existing == null || (typeof existing === 'string' && existing.trim() === '')) {\r\n (node as any).fullPath = fullPath;\r\n }\r\n if (node.name != null) {\r\n this.routesMap.set(node.name, node);\r\n }\r\n }\r\n const nextChain = [...chain, node];\r\n const aliases = node.alias == null ? [] : (Array.isArray(node.alias) ? node.alias : [node.alias]);\r\n const variants = [\r\n { path: fullPath, isAlias: viaAlias },\r\n ...aliases.map(a => ({ path: this.joinPaths(parentPath, a), isAlias: true }))\r\n ];\r\n for (const variant of variants) {\r\n this.records.push({\r\n fullPath: variant.path,\r\n chain: nextChain,\r\n leaf: node,\r\n scanner: new Scanner(variant.path),\r\n aliasOf: variant.isAlias ? ((node as any).fullPath ?? null) : null\r\n });\r\n if (node.childs && node.childs.length) {\r\n for (const child of node.childs) this.walk(nextChain, variant.path, child, variant.isAlias);\r\n }\r\n }\r\n }\r\n\r\n joinPaths(parent: string, child: string): string {\r\n parent = parent || \"\";\r\n child = child || \"\";\r\n\r\n const base = parent && parent !== \"/\" && parent.endsWith(\"/\") ? parent.slice(0, -1) : parent;\r\n\r\n if (child === \"/\") {\r\n return base || \"/\";\r\n }\r\n\r\n const seg = child ? (child.startsWith(\"/\") ? child : \"/\" + child) : \"\";\r\n\r\n if (!base || base === \"/\") {\r\n return seg || \"/\";\r\n }\r\n return base + seg;\r\n }\r\n}\r","import { Component, ComponentBase, assertLoadedComponent, resolveToComponent, unwrapModule, notifyActivated, notifyDeactivated } from \"../\";\nimport { cancelAnimationsDeep } from \"../component/navigation\";\nimport { errorHandler } from \"../common/ErrorHandler\";\nimport { callReported, reportError, reportWarning } from \"../common/diagnostics\";\nimport { NavigationDirection, NavigationOptions, ResolveResult } from \"./\";\nimport { RouterView, RouterViewBuilt } from \"./\";\nimport { UrlRoutingModule } from \"./\";\nimport { RouterViewRegistry } from \"./RouterViewRegistry\";\nimport { RouteItem } from \"./\";\nimport { Application } from \"../\";\nimport { pinServiceOwner, runInConstructionScope } from \"../dependencyInjection/ServiceProvider\";\nimport type { ServiceProvider } from \"../dependencyInjection/ServiceProvider\";\nimport { hasOwnTransition, markDirection, playLeave, unmarkDirection } from \"./NavigationStack\";\nimport type { NavigationStack, RetainedEntry, StackNavigation } from \"./NavigationStack\";\nimport type { RouteSnapshot } from \"./routerState\";\n\ntype StackLeave = { top: ComponentBase | null; retained: RetainedEntry | null; disposeAfter: ComponentBase[] };\ntype StackMotion = { animate: boolean; pages: boolean; direction: NavigationDirection };\ntype NavigationRun = { provider?: ServiceProvider; scope?: ServiceProvider; route: RouteSnapshot; committed: boolean; suppressed: ComponentBase[] };\n\nexport class RoutingEngine {\n\n public stack: NavigationStack | null = null;\n private _revealed: Set<ComponentBase> = new Set();\n\n private root!: ComponentBase;\n private application!: Application;\n private routingModule!: UrlRoutingModule;\n private _previousPath: ResolveResult | null = null;\n private _previousInstances: ComponentBase[] = [];\n\n public register(mainApp: ComponentBase, application: Application, routingModule: UrlRoutingModule) {\n this.root = mainApp;\n this.application = application;\n this.routingModule = routingModule;\n }\n\n private controlCache: Map<RouteItem, any> = new Map();\n\n public async evict(route?: RouteItem | null): Promise<void> {\n const targets: RouteItem[] = route ? [route] : Array.from(this.controlCache.keys());\n for (const r of targets) {\n const inst = this.controlCache.get(r);\n if (!inst || inst.isDisposed) { this.controlCache.delete(r); continue; }\n if (this._previousInstances.includes(inst)) continue;\n this.controlCache.delete(r);\n try { await inst.dispose(); } catch (error) { reportError('MJX307', error); }\n }\n }\n\n\n public async dispose(): Promise<void> {\n this._navVersion++;\n this._previousPath = null;\n this._previousInstances = [];\n this._revealed.clear();\n const stack = this.stack;\n this.stack = null;\n if (stack) { try { await stack.dispose(); } catch { } }\n await this.evict();\n }\n\n generatePathString(routeDefinition: string, params: Record<string, any>): string {\n const parts = routeDefinition.split('/');\n const result = parts.map(part => {\n if (part.startsWith('{') && part.endsWith('}')) {\n const paramDefinition = part.slice(1, -1);\n\n let [paramName, defaultValue] = paramDefinition.split(':');\n\n const isOptional = paramName.endsWith('?');\n if (isOptional) {\n paramName = paramName.slice(0, -1);\n }\n const value = params[paramName];\n if (value !== undefined && value !== null && value !== '') {\n return String(value);\n }\n return defaultValue ?? '';\n\n } else {\n return part;\n }\n })\n .filter(part => part !== '')\n .join('/');\n\n if (routeDefinition.startsWith('/')) {\n return '/' + (result ? result : '');\n }\n return result;\n }\n\n private _navVersion = 0;\n\n private _pendingActivate: Set<ComponentBase> = new Set();\n public async execute(path: ResolveResult, nav?: StackNavigation, route?: RouteSnapshot) {\n route ??= {\n target: path,\n chain: path.chain.map(r => this.generatePathString(r.path, path.params) || ''),\n direction: undefined,\n state: undefined,\n };\n const provider = this._rootProvider();\n const run: NavigationRun = { provider, scope: provider?._beginNavigation(), route, committed: false, suppressed: [] };\n try {\n await this._execute(path, nav, run);\n } finally {\n if (!run.committed && run.scope) provider!._abandonNavigation(run.scope);\n for (const inst of run.suppressed) if (!inst.isDisposed) inst.motif.options.transition._suppressEnter = false;\n }\n }\n\n private _commitNavigation(run: NavigationRun): void {\n if (run.committed) return;\n run.committed = true;\n if (run.scope) run.provider!._commitNavigation(run.scope);\n this.application?._routerState.commit(run.route);\n }\n\n private async _execute(path: ResolveResult, nav: StackNavigation | undefined, run: NavigationRun) {\n const navVersion = ++this._navVersion;\n const stack = this.stack && nav && nav.to ? this.stack : null;\n if (stack) stack.begin(nav!);\n const restored = stack ? stack.take(nav!.to) : null;\n const controlList: any[] = new Array(path.chain.length);\n\n const isSameRoute = !!(this._previousPath &&\n this._previousPath.route === path.route &&\n (this._previousPath.route != null || this._previousPath.fullPath === path.fullPath));\n\n var enableEnter = !!(this._previousPath && this._previousPath.uri === path.uri);\n let paramsChanged = false;\n\n\n if (isSameRoute && path.route) {\n\n const prevParams = this._previousPath!.params || {};\n const newParams = path.params || {};\n let changed = false;\n const allKeys = new Set([...Object.keys(prevParams), ...Object.keys(newParams)]);\n for (const k of allKeys) {\n if (prevParams[k] !== newParams[k]) { changed = true; break; }\n }\n if (changed) {\n paramsChanged = true;\n\n const leafRoute = path.route;\n if (leafRoute && !leafRoute.keepAlive && this.controlCache.has(leafRoute)) {\n if (stack) {\n this.controlCache.delete(leafRoute);\n } else {\n const oldInstance = this.controlCache.get(leafRoute);\n if (oldInstance && typeof oldInstance.dispose === 'function' && !oldInstance.isDisposed) {\n try { await oldInstance.dispose(); } catch { }\n }\n this.controlCache.delete(leafRoute);\n }\n }\n\n try {\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const updateHook = path.route.onUpdate || globalHooks?.onUpdate;\n if (updateHook) {\n const updateContext = {\n from: {\n path: this._previousPath!.uri || this._previousPath!.fullPath || '',\n params: prevParams\n },\n to: {\n path: path.uri || path.fullPath || '',\n params: newParams\n },\n meta: (path as any).meta ?? path.extend\n };\n await updateHook(updateContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onUpdate');\n }\n }\n }\n\n if ((!isSameRoute || paramsChanged) && path.route) {\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route.onEntering || globalHooks?.onEntering;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEntering');\n }\n }\n\n const prepTasks: Promise<void>[] = [];\n for (let i = 0; i < path.chain.length; i++) {\n const element = path.chain[i];\n const kept = restored && restored.chain[i] === element ? restored.instances[i] : undefined;\n if (kept && !kept.isDisposed && !element.keepAlive) {\n controlList[i] = kept;\n this.controlCache.set(element, kept);\n continue;\n }\n if (this.controlCache.has(element)) {\n let control = this.controlCache.get(element);\n if (!control || control.isDisposed) {\n this.controlCache.delete(element);\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n } else {\n controlList[i] = control;\n if (element.keepAlive && !this._previousInstances.includes(control)) {\n this._pendingActivate.add(control);\n }\n }\n } else {\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n }\n }\n if (prepTasks.length) {\n await Promise.all(prepTasks);\n }\n let leave: StackLeave | null = null;\n let motion: StackMotion | null = null;\n const previousInstances = this._previousInstances;\n if (stack) {\n const animate = !!stack.animation && stack.animation !== 'none'\n && (nav!.direction === 'push' || nav!.direction === 'back' || nav!.direction === 'forward');\n motion = { animate, pages: !animate && !stack.gestureCommitPending, direction: nav!.direction };\n leave = await this._stackLeave(path.chain, controlList, nav!, stack, motion);\n if (restored) {\n const top = restored.top;\n if (!top.isDisposed && restored.outlet && top.parent === restored.outlet) {\n stack.reveal(restored);\n restored.outlet.current = top;\n restored.outlet.previouspage = top;\n this._revealed.add(top);\n }\n if (!top.isDisposed) this._pendingActivate.add(top);\n }\n } else {\n await this.disposeFromDivergencePoint(path.chain, controlList);\n }\n const entering: ComponentBase[] = motion ? controlList.filter(c => c && !previousInstances.includes(c)) : [];\n if (motion) {\n for (const inst of previousInstances) unmarkDirection(inst);\n for (const inst of entering) {\n if (motion.pages) markDirection(inst, motion.direction);\n else {\n inst.motif.options.transition._suppressEnter = true;\n run.suppressed.push(inst);\n }\n }\n }\n if (navVersion === this._navVersion) this._commitNavigation(run);\n await this.mountChain(controlList, path.chain, this.root, navVersion);\n if (motion?.pages) {\n if (restored?.attached && !restored.top.isDisposed && hasOwnTransition(restored.top, 'enter')) {\n restored.top.motif.options.transition.enterTransition(() => { });\n }\n for (const inst of entering) if (inst.isBuilt && !hasOwnTransition(inst, 'enter')) unmarkDirection(inst);\n }\n let enteringTop: ComponentBase | null = null;\n if (stack) {\n if (restored) stack.restoreScroll(restored);\n for (let i = 0; i < controlList.length; i++) {\n if (controlList[i] && controlList[i] !== previousInstances[i]) { enteringTop = controlList[i]; break; }\n }\n if (!enteringTop) enteringTop = controlList.length ? controlList[controlList.length - 1] : null;\n stack.record(nav!, enteringTop);\n }\n\n\n\n if (!enableEnter && path.route) {\n\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route?.onEnter || globalHooks?.onEnter;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEnter');\n }\n }\n this._previousPath = path;\n this._previousInstances = controlList.slice();\n\n if (stack && leave) {\n if (leave.top && navVersion === this._navVersion && (leave.retained || leave.disposeAfter.length)) {\n await stack.transition(nav!.direction, enteringTop, leave.top);\n }\n if (leave.retained) stack.settle(leave.retained);\n for (const inst of leave.disposeAfter) {\n try { if (!inst.isDisposed) await inst.dispose({ deep: true, skipLeaveTransition: true }); } catch (error) { reportError('MJX307', error); }\n }\n }\n }\n\n private async _stackLeave(newChain: RouteItem[], newInstances: ComponentBase[], nav: StackNavigation, stack: NavigationStack, motion: StackMotion): Promise<StackLeave> {\n const result: StackLeave = { top: null, retained: null, disposeAfter: [] };\n const prevChain = this._previousPath?.chain ?? [];\n const prevInstances = this._previousInstances;\n if (!prevInstances.length) return result;\n\n let d = -1;\n for (let i = 0; i < prevInstances.length; i++) {\n const inst = prevInstances[i];\n if (inst && !newInstances.includes(inst)) { d = i; break; }\n }\n if (d < 0) return result;\n\n if (!prevInstances[d].isDisposed) pinServiceOwner(prevInstances[d]);\n\n const outletFor = (i: number): RouterView | null => {\n const container = i - 1 >= 0 ? prevInstances[i - 1] : this.root;\n const outletName = (prevChain[i]?.extend?.targetOutlet) || 'default';\n try { return container && !container.isDisposed ? this.findRouterView(container, outletName) : null; } catch { return null; }\n };\n\n const top = prevInstances[d];\n const topItem = prevChain[d];\n if (stack.isRetaining(nav) && top && !top.isDisposed && !topItem?.keepAlive) {\n const outlet = outletFor(d);\n if (outlet && outlet.current === top) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n cancelAnimationsDeep(top);\n if (motion.pages && hasOwnTransition(top, 'leave')) {\n markDirection(top, motion.direction);\n await playLeave(top);\n unmarkDirection(top);\n }\n for (let i = d; i < prevInstances.length; i++) {\n const item = prevChain[i];\n if (item && !item.keepAlive && this.controlCache.get(item) === prevInstances[i]) this.controlCache.delete(item);\n }\n result.top = top;\n result.retained = stack.retain(nav.from!, this._previousPath?.uri ?? '', prevChain, prevInstances, d, outlet, motion.animate);\n return result;\n }\n\n const deferTop = motion.animate && !!top && !top.isDisposed && !topItem?.keepAlive;\n for (let i = prevInstances.length - 1; i >= d; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || newInstances.includes(inst)) continue;\n if (inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n if (deferTop && i > d && !item?.keepAlive) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const outlet = outletFor(i);\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n if (deferTop && i === d) {\n result.top = inst;\n result.disposeAfter.push(inst);\n } else if (motion.pages) {\n markDirection(inst, motion.direction);\n await inst.dispose();\n } else {\n await inst.dispose({ deep: true, skipLeaveTransition: true });\n }\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n return result;\n }\n\n private async disposeFromDivergencePoint(newChain: RouteItem[], newInstances: ComponentBase[]): Promise<void> {\n if (!this._previousPath || !this._previousInstances.length) {\n return;\n }\n\n const prevChain = this._previousPath.chain;\n const prevInstances = this._previousInstances;\n\n let divergeIndex = 0;\n const minLength = Math.min(prevChain.length, newChain.length);\n\n for (let i = 0; i < minLength; i++) {\n if (prevChain[i] === newChain[i]) {\n divergeIndex = i + 1;\n } else {\n break;\n }\n }\n\n for (let i = prevInstances.length - 1; i >= divergeIndex; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const containerIndex = i - 1;\n const container = containerIndex >= 0 ? prevInstances[containerIndex] : this.root;\n const outletName = (item?.extend?.targetOutlet) || 'default';\n const outlet = this.findRouterView(container, outletName);\n\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (this.controlCache.get(item) === inst) this.controlCache.delete(item);\n await inst.dispose();\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n }\n\n private _construct<T>(scope: ServiceProvider | undefined, route: RouteSnapshot | undefined, create: () => T): T {\n const state = this.application?._routerState;\n return runInConstructionScope(scope, () => state ? state.constructWith(route, create) : create());\n }\n\n private async parseControl(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n var instance = this._construct(scope, route, () => this._resolveFrom(scope, control));\n if (instance) {\n return instance;\n }\n let val = control as any;\n if (val instanceof Promise) {\n val = unwrapModule(await val);\n }\n\n instance = this._construct(scope, route, () => this._resolveFrom(scope, val));\n if (instance) {\n return instance;\n }\n\n if (typeof val === 'function') {\n return this.parseControl(this._construct(scope, route, () => resolveToComponent(val, this.application)), scope, route);\n }\n return resolveToComponent(val);\n }\n\n private _resolveFrom(scope: ServiceProvider | undefined, token: any): any {\n const provider = scope ?? this._rootProvider();\n if (!provider || !provider.getAllServices().getDescriptor(token)) return null;\n return provider.get(token);\n }\n\n private _rootProvider(): ServiceProvider | undefined {\n try { return this.application?.provider ?? Application.main?.provider; } catch { return undefined; }\n }\n\n private async createInstance(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n return await this._instanceCreator(control, scope, route);\n }\n\n private async _instanceCreator(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n let val = await this.parseControl(control, scope, route) as any;\n assertLoadedComponent(val);\n // if (val instanceof Promise) {\n // return result.default ? result.default : result;\n\n // if (typeof val === 'function') {\n // try {\n // return val(this.application);\n // } catch {\n // // fallback: try as constructor\n // return new (val as any)(this.application);\n\n\n // if (val && typeof val.then === 'function') {\n // return await val;\n return val;\n }\n\n private async activator(container: ComponentBase) {\n try {\n //const reflect: any = (Reflect as any)?.getMetadata ? Reflect : null;\n //const paramTypes: any[] | undefined = reflect ? (Reflect as any).getMetadata('design:paramtypes', container) as any[] : undefined;\n // if (Array.isArray(paramTypes) && paramTypes.length) {\n // const args: any[] = [];\n // let anyResolved = false;\n // for (const t of paramTypes) {\n // try {\n // // try resolve token; if not registered, provider.getAsync will throw\n // const inst = await sp.getAsync(t);\n // } catch {\n // if (anyResolved) {\n // // If it looks like a constructor, try `new`, otherwise call as function\n // try { return new (container as any)(...args); } catch { return (container as any)(...args); }\n } catch { /* ignore */ }\n }\n pendingMount: WeakMap<any, Promise<void>> = new WeakMap();\n private pendingListeners = new WeakMap<ComponentBase, Function>(); \n private static readonly OUTLET_WARN_MS = 3000;\n \n private async mountChain(instances: any[], chain: any[], container: ComponentBase, navVersion: number): Promise<void> { \n for (let index = 0; index < instances.length;) { \n if (navVersion !== this._navVersion) return;\n\n let inst = instances[index] as ComponentBase; \n if (inst?.isDisposed) {\n inst = await this.createInstance(chain[index].control, this._rootProvider()?._currentScope());\n instances[index] = inst;\n }\n const outletName = (chain[index] && chain[index].extend && chain[index].extend.targetOutlet) || 'default';\n \n const outlet = this.findRouterView(container, outletName);\n \n if (!outlet || !container.isBuilt) {\n this._waitForOutlet(container, instances.slice(index), chain.slice(index), navVersion, outletName);\n return;\n }\n\n const revealed = this._revealed.delete(inst);\n const alreadyShown = outlet.current === inst && !revealed;\n await outlet.navigate(inst);\n if (this._pendingActivate.delete(inst)) {\n notifyActivated(inst);\n }\n const showHook = (chain[index] as RouteItem | undefined)?.onShow;\n if (showHook && !alreadyShown && outlet.current === inst && navVersion === this._navVersion) {\n callReported(() => showHook(inst), 'MJX306', 'onShow');\n }\n container = inst;\n index++;\n }\n }\n \n private _waitForOutlet(container: ComponentBase, instances: any[], chain: any[], navVersion: number, outletName: string): void {\n \n const oldCleanup = this.pendingListeners.get(container);\n if (oldCleanup) {\n try { oldCleanup(); } catch { }\n this.pendingListeners.delete(container);\n }\n\n let done = false;\n let warnTimer: any = undefined;\n\n const handler = async (_s: any, _e: any) => {\n if (done) return;\n cleanup(); \n if (navVersion !== this._navVersion) return;\n await this.mountChain(instances, chain, container, navVersion);\n };\n\n const cleanup = () => {\n if (done) return;\n done = true;\n this.pendingListeners.delete(container);\n try { (container as any).motif?.off?.(RouterViewBuilt as any, handler); } catch { }\n if (warnTimer !== undefined) {\n try { clearTimeout(warnTimer); } catch { }\n warnTimer = undefined;\n }\n };\n\n container.motif.on(RouterViewBuilt as any, handler);\n this.pendingListeners.set(container, cleanup);\n\n if (errorHandler.isDevelopment()) {\n warnTimer = setTimeout(() => {\n if (!done && navVersion === this._navVersion) {\n reportWarning('MJX301', [outletName, RoutingEngine.OUTLET_WARN_MS]);\n }\n }, RoutingEngine.OUTLET_WARN_MS);\n }\n }\n\n\n\n\n private findRouterView(root: ComponentBase, name: string = 'default'): RouterView | null {\n // 1) Önce mevcut container'ın ALT AĞACINDA ara (yakınlık öncelikli)\n const stack: ComponentBase[] = (root.controls?.items || []).slice();\n while (stack.length) {\n const c = stack.shift()!;\n if (!c || c.isDisposed) continue;\n if ((c as any).__isRouterView) {\n const rv = c as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if (c.controls && c.controls.items && c.controls.items.length) {\n for (const ch of c.controls.items) stack.push(ch);\n }\n }\n\n // 2) Alt ağaçta bulunamadıysa ve isim 'default' ise: üst/yan dallara BAKMA.\n if (!name || name === 'default') {\n return null;\n }\n\n const scopeId = typeof (root as any).scopeId === 'function' ? (root as any).scopeId() : (root as any).scopeId ?? '';\n var x = RouterViewRegistry.find(name, scopeId);\n if (x) return x;\n\n // 3) İsimli outlet için ÜST AĞAÇLARDA arama: her bir üst ata için, o atanının\n let current: any = root;\n let parent: any = current?.parent;\n while (parent) {\n const siblings: ComponentBase[] = (parent.controls?.items || []).filter((it: any) => it !== current);\n const q: ComponentBase[] = siblings.slice();\n while (q.length) {\n const node = q.shift()!;\n if (!node || (node as any).isDisposed) continue;\n if ((node as any).__isRouterView) {\n const rv = node as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if ((node as any).controls && (node as any).controls.items && (node as any).controls.items.length) {\n for (const ch of (node as any).controls.items) q.push(ch);\n }\n }\n current = parent;\n parent = parent.parent;\n }\n\n // 4) Hiçbir yerde bulunmadı\n return null;\n }\n\n}","import { $, Application, dom, safeCallSilentAsync } from \"..\";\nimport { Component } from \"../\";\nimport { NavigationDirection, NavigationOptions, ResolveResult, RouteInfo, RouteResolveContext, RouterOptions, StackEntryInfo } from \"./\";\nimport type { RouteSnapshot } from \"./routerState\";\nimport { ScrollMemory } from \"./scrollMemory\";\nimport { NavigationStack, StackNavigation } from \"./NavigationStack\";\nimport { RouteCollection, compareRouteRecords } from \"./\";\nimport { RouteItem, RouteRecord, RouterValidateEventArgs } from \"./\";\nimport { RoutingEngine } from \"./\";\nimport { errorHandler } from \"../common/ErrorHandler\";\nimport { motifError, reportError, reportWarning } from \"../common/diagnostics\";\n\nconst pathOf = (uri: string): string => uri.split('#')[0].split('?')[0];\n\ntype HistoryStamp = { index: number; session: string; hasState?: boolean };\n\ntype TraversalInfo = { direction: NavigationDirection; state: any; from: HistoryStamp | null };\n\nconst newHistorySession = (): string => Math.random().toString(36).slice(2, 10) + Date.now().toString(36);\n\nexport class UrlRoutingModule {\n private static readonly MAX_REDIRECTS = 10;\n private _routerOptions: RouterOptions;\n private routingEngine: RoutingEngine;\n routeCollection!: RouteCollection\n private routesMap: Map<any, RouteItem> = new Map();\n private mainApp!: Component;\n private application: Application;\n private _suppressBeforeEachOnce: boolean = false;\n private _suppressMiddlewaresOnce: boolean = false;\n private _scroll: ScrollMemory | null = null;\n\n constructor(options: RouterOptions, application: Application) {\n this._routerOptions = options;\n this.routeCollection = new RouteCollection(options.RouteItems);\n this.routingEngine = new RoutingEngine();\n this.application = application;\n this._installLinkInterceptor();\n\n const scrollMemory = options.scrollMemory;\n if (scrollMemory) {\n this._scroll = new ScrollMemory(scrollMemory === true ? {} : scrollMemory);\n this._scroll.locationAnchor = this._addressMode() === 'history';\n }\n\n if (options.stack && options.mode !== 'shell') {\n this._stack = new NavigationStack(options.stack);\n this.routingEngine.stack = this._stack;\n }\n }\n\n private _stack: NavigationStack | null = null;\n public getHooks(): RouterOptions['hooks'] | undefined {\n return this._routerOptions.hooks;\n }\n\n private _windowNavListener: ((this: Window, ev: Event) => any) | null = null;\n public start(mainApp: Component, shellUri?: string) {\n this.mainApp = mainApp;\n this.routingEngine.register(this.mainApp, this.application, this);\n const path = this._routerOptions.mode === 'shell' ? (shellUri ?? '/') : this._getCurrentUri();\n this._seedHistoryIndex();\n this._suppressMiddlewaresOnce = true;\n this.navigate(path);\n if (this._routerOptions.mode === 'shell') return;\n this._windowNavListener = () => {\n void this._onHistoryTraversal();\n };\n window.addEventListener(\n this._routerOptions.mode === 'hash' || this._routerOptions.mode === 'file' ? 'hashchange' : 'popstate',\n this._windowNavListener\n );\n }\n\n public get shownUri(): string | undefined {\n return this._previousRoute ? this._currentUri : undefined;\n }\n\n private _getCurrentUri(): string {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'hash' || mode === 'file') {\n const h = w?.location?.hash || '';\n return h && h.startsWith('#') ? h.slice(1) || '/' : '/';\n }\n return (w?.location?.pathname || '/') + (w?.location?.search || '');\n } catch { return '/'; }\n }\n\n private static readonly HISTORY_STAMP_KEY = '__motifHistory';\n private _historyStamp: HistoryStamp | null = null;\n\n private _addressMode(): NonNullable<RouterOptions['mode']> {\n const w = window as any;\n return this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n }\n\n private _readHistoryStamp(): HistoryStamp | null {\n try {\n const state = (window as any)?.history?.state;\n const stamp = state && typeof state === 'object' ? state[UrlRoutingModule.HISTORY_STAMP_KEY] : null;\n if (stamp && typeof stamp === 'object' && typeof stamp.index === 'number' && Number.isFinite(stamp.index) && typeof stamp.session === 'string') {\n return { index: stamp.index, session: stamp.session };\n }\n } catch { }\n return null;\n }\n\n private static _isPlainObject(value: any): boolean {\n if (!value || typeof value !== 'object') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n }\n\n private _withHistoryStamp(state: any, stamp: HistoryStamp): any {\n if (state == null) return { [UrlRoutingModule.HISTORY_STAMP_KEY]: stamp };\n if (UrlRoutingModule._isPlainObject(state)) {\n return { ...state, [UrlRoutingModule.HISTORY_STAMP_KEY]: stamp };\n }\n return state;\n }\n\n private _routerState(userState: any, stamp: HistoryStamp): any {\n return userState\n ? this._withHistoryStamp(userState, { ...stamp, hasState: true })\n : this._withHistoryStamp(null, stamp);\n }\n\n private _userStateOf(historyState: any): any {\n if (historyState == null) return undefined;\n if (!UrlRoutingModule._isPlainObject(historyState)) return historyState;\n const key = UrlRoutingModule.HISTORY_STAMP_KEY;\n if (!(key in historyState)) return historyState;\n const stamp = historyState[key];\n if (!stamp || stamp.hasState !== true) return undefined;\n const { [key]: _omit, ...rest } = historyState;\n return rest;\n }\n\n private _currentHistoryUserState(): any {\n if (this._addressMode() === 'shell') return undefined;\n try { return this._userStateOf((window as any)?.history?.state); } catch { return undefined; }\n }\n\n private _nextHistoryStamp(push: boolean): HistoryStamp {\n const base = this._historyStamp;\n if (!base) return { index: 0, session: newHistorySession() };\n return { index: push ? base.index + 1 : base.index, session: base.session };\n }\n\n private _stampCurrentEntry(stamp: HistoryStamp, userState?: any): void {\n try {\n const w = window as any;\n if (!w?.history || typeof w.history.replaceState !== 'function') return;\n const current = w.history.state;\n let next: any;\n if (userState) {\n next = this._routerState(userState, stamp);\n } else {\n const hasState = UrlRoutingModule._isPlainObject(current) && Object.keys(current).length > 0;\n next = this._withHistoryStamp(current, hasState ? { ...stamp, hasState: true } : stamp);\n }\n if (next !== current) w.history.replaceState(next, '');\n } catch { }\n }\n\n private _seedHistoryIndex(): void {\n if (this._addressMode() === 'shell') return;\n const existing = this._readHistoryStamp();\n if (existing) {\n this._historyStamp = existing;\n return;\n }\n const stamp: HistoryStamp = { index: 0, session: newHistorySession() };\n this._stampCurrentEntry(stamp);\n this._historyStamp = stamp;\n }\n\n private _pendingTraversal: TraversalInfo | null = null;\n\n private async _onHistoryTraversal(): Promise<void> {\n const shown = this._historyStamp;\n const arrived = this._readHistoryStamp();\n this._historyStamp = arrived;\n let direction: NavigationDirection = 'traverse';\n if (shown && arrived && shown.session === arrived.session && shown.index !== arrived.index) {\n direction = arrived.index < shown.index ? 'back' : 'forward';\n }\n this._pendingTraversal = { direction, state: this._currentHistoryUserState(), from: shown };\n let result: any;\n try {\n result = await this.navigate(this._getCurrentUri());\n } finally {\n this._pendingTraversal = null;\n }\n const cancelled = !!result && result.cancelled === true;\n try { this._stack?.traversalSettled(cancelled); } catch { }\n if (!cancelled) return;\n const now = this._readHistoryStamp();\n this._historyStamp = now;\n if (!shown || !now || now.session !== shown.session) return;\n const delta = shown.index - now.index;\n if (delta === 0) return;\n try { (window as any).history.go(delta); } catch { }\n }\n\n private _currentUri: string = '___startup___';\n private _previousRoute: any = null;\n\n public get currentUri(): string {\n return this._currentUri;\n }\n\n public async navigate(uri: string, options?: NavigationOptions): Promise<any> {\n const traversal = this._pendingTraversal;\n this._pendingTraversal = null;\n\n return await safeCallSilentAsync(async () => {\n\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('route:navigation-start', { uri }); } catch { }\n const suppressBeforeEachThisCall = this._suppressBeforeEachOnce;\n if (suppressBeforeEachThisCall) {\n this._suppressBeforeEachOnce = false;\n }\n const suppressMiddlewaresThisCall = this._suppressMiddlewaresOnce;\n if (suppressMiddlewaresThisCall) {\n this._suppressMiddlewaresOnce = false;\n }\n const navOptions: NavigationOptions = options || {};\n const force = navOptions.force || false;\n\n if (uri === this._currentUri && !force) {\n return { ok: true, skipped: true, uri };\n }\n\n let gate: { proceed: boolean; uri: string };\n if (suppressMiddlewaresThisCall) {\n gate = { proceed: true, uri };\n } else {\n gate = await this._runMiddlewares(uri);\n }\n\n if (!gate.proceed) {\n return {\n ok: false,\n uri: gate.uri,\n cancelled: true,\n reason: 'middleware'\n };\n }\n uri = gate.uri;\n\n let target = this.resolve(uri);\n\n let redirectedFrom: string | undefined;\n let redirectError: Error | undefined;\n let redirectChain = '';\n if (target.ok && target.route?.redirect) {\n const requested = uri;\n const visited: string[] = [requested];\n while (target.ok && target.route?.redirect) {\n const next = this._resolveRedirect(target, uri);\n if (!next) break;\n if (visited.length > UrlRoutingModule.MAX_REDIRECTS || visited.some(v => pathOf(v) === pathOf(next))) {\n redirectChain = [...visited, next].join(' → ');\n redirectError = motifError('MJX303', redirectChain);\n break;\n }\n visited.push(next);\n uri = next;\n target = this.resolve(uri);\n }\n if (redirectError) {\n reportWarning('MJX303', [redirectChain]);\n uri = requested;\n target = this._buildFallbackResult(uri, 'error', { path: uri, error: redirectError });\n } else if (uri !== requested) {\n redirectedFrom = requested;\n if (uri === this._currentUri && !force) {\n return { ok: true, skipped: true, uri };\n }\n }\n }\n\n const wasInitialNavigation = !this._previousRoute;\n const direction: NavigationDirection = wasInitialNavigation\n ? 'initial'\n : traversal ? traversal.direction : (navOptions.replace ? 'replace' : 'push');\n const entryState = traversal\n ? traversal.state\n : (wasInitialNavigation && navOptions.state === undefined ? this._currentHistoryUserState() : (navOptions.state || undefined));\n\n const toRoute = {\n path: target.uri || uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n options: options,\n redirectedFrom,\n direction,\n state: entryState\n };\n\n const fromRoute = this._previousRoute ? {\n path: this._previousRoute.path,\n params: this._previousRoute.params,\n meta: this._previousRoute.meta,\n options: this._previousRoute.options\n } : null;\n\n if (this._previousRoute && this._previousRoute.routeItem) {\n const currentRouteItem = this._previousRoute.routeItem as RouteItem;\n const leaveHook = currentRouteItem.onLeave || this._routerOptions.hooks?.onLeave;\n if (leaveHook) {\n try {\n const leaveContext = {\n from: {\n path: this._previousRoute.path,\n params: this._previousRoute.params,\n meta: this._previousRoute.meta\n },\n to: toRoute\n };\n const leaveResult = await leaveHook(leaveContext);\n if (leaveResult === false) {\n return { ok: false, cancelled: true, reason: 'onLeave' };\n }\n if (leaveResult && typeof leaveResult === 'object' && (leaveResult as any).cancel === true) {\n const customReason = (leaveResult as any).reason || 'onLeave';\n return { ok: false, cancelled: true, reason: customReason };\n }\n } catch (error) {\n reportError('MJX306', error, 'onLeave');\n }\n }\n }\n\n let guardResult: string | false | true = true;\n if (!suppressBeforeEachThisCall) {\n guardResult = await this.application._runBeforeEachGuards(toRoute, fromRoute);\n }\n\n if (guardResult === false) {\n return { ok: false, cancelled: true, reason: 'guard' };\n }\n\n if (typeof guardResult === 'string') {\n const addressShowsBlocked = this._addressShows(uri, redirectedFrom);\n return await this.navigate(guardResult, addressShowsBlocked ? { ...navOptions, replace: true } : options);\n }\n\n const snapshotOf = (result: ResolveResult): RouteSnapshot => ({\n target: result,\n chain: result.chain.map(r => this.routingEngine.generatePathString(r.path, result.params) || ''),\n direction,\n state: entryState,\n });\n\n if (!target.ok && !redirectError) {\n target = this._buildFallbackResult(uri, 'notFound', { path: uri });\n }\n this._currentUri = uri;\n this._previousRoute = {\n path: target.uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n routeItem: target.route\n };\n\n let appliedPath = target.uri;\n\n this._scroll?.leaving();\n\n const leavingStamp = traversal ? traversal.from : this._historyStamp;\n try {\n const replaceSource = !!redirectedFrom && this._addressShows(redirectedFrom);\n this._applyUrl(appliedPath, replaceSource ? { ...navOptions, replace: true } : navOptions);\n } catch { }\n const stackNav: StackNavigation | undefined = this._stack\n ? { direction, from: leavingStamp, to: this._historyStamp, uri: appliedPath }\n : undefined;\n\n try {\n await this.routingEngine.execute(target, stackNav, snapshotOf(target));\n } catch (error) {\n reportError('MJX304', error);\n target = this._buildFallbackResult(uri, 'error', { path: uri, error });\n try { await this.routingEngine.execute(target, stackNav, snapshotOf(target)); } catch (e2) { reportError('MJX305', e2); }\n }\n if (this._stack) this.application._routerState.touch();\n if (navOptions.scroll) { \n this._handleScrollBehavior(navOptions.scroll);\n } else {\n this._scroll?.arrived(this._uriWithHash(appliedPath, uri));\n }\n this.application.fire?.('motifjs-router-navigated', {\n uri: appliedPath,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n route: target.ok ? target.route : null,\n ok: target.ok,\n initial: wasInitialNavigation,\n redirectedFrom,\n direction,\n state: entryState\n });\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('route:navigation-end', { uri: appliedPath, params: target.params }); } catch { }\n\n return target;\n\n }, 'UrlRoutingModule.navigate');\n\n }\n \n public describeStack(): StackEntryInfo[] | undefined {\n return this._stack ? this._stack.describe() : undefined;\n }\n\n public routeInfos(): RouteInfo[] {\n const out: RouteInfo[] = [];\n const visit = (node: RouteItem, chain: RouteItem[]) => {\n const nextChain = [...chain, node];\n out.push({\n fullPath: node.fullPath || node.path,\n name: node.name ?? null,\n meta: node.meta ?? node.extend ?? {},\n route: node,\n chain: nextChain,\n });\n for (const child of node.childs || []) visit(child, nextChain);\n };\n for (const node of this.routeCollection?.['routes'] || []) visit(node, []);\n return out;\n }\n\n public href(name: string, params?: Record<string, any>): string {\n const routeItem = this.routeCollection['routesMap']?.get(name);\n if (!routeItem) throw motifError('MJX302', name);\n const path = routeItem.fullPath || routeItem.path;\n return this.routingEngine.generatePathString(path, params || {}) || path;\n }\n\n public async evict(route?: RouteItem | string | null): Promise<void> {\n let item: RouteItem | null | undefined = null;\n if (typeof route === 'string') {\n item = this.routeCollection['routesMap']?.get(route);\n if (!item) throw motifError('MJX302', String(route));\n } else {\n item = route;\n }\n await this.routingEngine.evict(item);\n }\n\n private _fallbackRoutes: { notFound?: RouteItem; error?: RouteItem } = {};\n\n private _getFallbackRoute(kind: 'notFound' | 'error'): RouteItem {\n const existing = this._fallbackRoutes[kind];\n if (existing) return existing;\n const custom = this._routerOptions.fallbacks?.[kind];\n const control = custom ?? (kind === 'notFound' ? UrlRoutingModule._builtinNotFound : UrlRoutingModule._builtinError);\n const item: RouteItem = {\n path: '',\n fullPath: null,\n control,\n name: kind === 'notFound' ? 'not-found' : 'error',\n childs: [],\n extend: {},\n meta: {},\n validate: undefined,\n keepAlive: false,\n };\n this._fallbackRoutes[kind] = item;\n return item;\n }\n\n private _buildFallbackResult(uri: string, kind: 'notFound' | 'error', params: Record<string, any>): ResolveResult {\n const fallback = this._getFallbackRoute(kind);\n const prefix = this._findLayoutPrefix(uri);\n const chain = [...(prefix?.chain ?? []), fallback];\n const mergedExtend: Record<string, any> = {};\n const mergedMeta: Record<string, any> = {};\n for (const item of chain) {\n if (item?.extend && typeof item.extend === 'object') Object.assign(mergedExtend, item.extend);\n if (item?.meta && typeof item.meta === 'object') Object.assign(mergedMeta, item.meta);\n }\n return {\n ok: false,\n uri,\n fullPath: null,\n route: fallback,\n chain,\n params: { ...(prefix?.params ?? {}), ...params },\n extend: mergedExtend,\n meta: mergedMeta,\n };\n }\n\n private _findLayoutPrefix(uri: string): { chain: RouteItem[]; params: Record<string, any> } | null {\n const path = uri.split('?')[0].split('#')[0];\n const segs = path.split('/').filter(Boolean);\n let best: { rec: RouteRecord; params: Record<string, any>; depth: number } | null = null;\n for (const rec of this.routeCollection?.records || []) {\n if (!rec.leaf.childs || !rec.leaf.childs.length) continue;\n const depth = rec.fullPath.split('/').filter(Boolean).length;\n if (depth > segs.length) continue;\n const prefix = '/' + segs.slice(0, depth).join('/');\n let matched = false;\n try { matched = rec.scanner.exist(prefix, this._pageSearch()); } catch { matched = false; }\n if (!matched) continue;\n const params = { ...rec.scanner.parameters };\n if (!this.validateChain(prefix, rec, params)) continue;\n if (!best || rec.chain.length > best.rec.chain.length || (rec.chain.length === best.rec.chain.length && depth > best.depth)) {\n best = { rec, params, depth };\n }\n }\n return best ? { chain: best.rec.chain, params: best.params } : null;\n }\n\n private static _builtinNotFound = () => new Component('div', {\n initializeComponent(sender: Component) {\n sender.style({\n padding: '20px', fontFamily: 'Arial, sans-serif', display: 'flex', 'flex-direction': 'column', 'align-items': 'center'\n });\n (sender.element as HTMLElement).appendChild($('h2', {}, ...['404 - Not Found']));\n (sender.element as HTMLElement).appendChild($('p', {}, ...['The requested page was not found.']));\n },\n });\n\n private static _builtinError = () => new Component('div', {\n initializeComponent(sender: Component) {\n sender.style({\n padding: '20px', fontFamily: 'Arial, sans-serif', display: 'flex', 'flex-direction': 'column', 'align-items': 'center'\n });\n (sender.element as HTMLElement).appendChild($('h2', {}, ...['Error']));\n (sender.element as HTMLElement).appendChild($('p', {}, ...['The requested page could not be loaded.']));\n },\n });\n\n public async navigateByName(name: string, params?: Record<string, any>, options?: NavigationOptions): Promise<any> {\n\n return await this.navigate(this.href(name, params), options);\n }\n\n private async _runMiddlewares(initialUri: string): Promise<{ proceed: boolean, uri: string }> {\n let urix = initialUri;\n const ctx: RouteResolveContext = {\n uri: urix,\n rewritePath: (uri: string) => {\n urix = uri;\n (ctx as any).uri = uri;\n },\n context: this.application\n };\n let proceed = false;\n const stack = this._routerOptions.middlewareCollections ? this._routerOptions.middlewareCollections() || [] : [];\n const dispatch = async (i: number): Promise<void> => {\n if (i === stack.length) { proceed = true; return; }\n const fn = stack[i];\n await fn(ctx, async () => { await dispatch(i + 1); });\n };\n if (stack.length === 0) {\n proceed = true;\n } else {\n await dispatch(0);\n }\n return { proceed, uri: urix };\n }\n\n public resolve(uri: string): ResolveResult {\n const candidates: Array<{ rec: RouteRecord; params: Record<string, any> }> = [];\n const pageSearch = this._pageSearch();\n for (const rec of this.routeCollection?.records! || []) {\n if (!rec.scanner.exist(uri, pageSearch)) continue;\n const params = { ...rec.scanner.parameters };\n if (!this.validateChain(uri, rec, params)) continue;\n candidates.push({ rec, params });\n }\n\n if (candidates.length === 0) {\n const catchAll = (this.routeCollection?.records || []).find(r => r.scanner.exist('/*'));\n if (catchAll) {\n const mergedExtend: Record<string, any> = {};\n try {\n for (const item of catchAll.chain) {\n if (item && item.extend && typeof item.extend === 'object') {\n Object.assign(mergedExtend, item.extend);\n }\n }\n } catch { /* ignore */ }\n\n return {\n ok: true,\n uri,\n fullPath: catchAll.fullPath,\n route: catchAll.leaf,\n chain: catchAll.chain,\n params: {},\n extend: mergedExtend || {},\n meta: (catchAll as any).meta || {}\n };\n }\n\n return {\n ok: false,\n uri,\n fullPath: null,\n route: null,\n chain: [],\n params: {},\n extend: {}\n };\n }\n\n let best = candidates[0];\n const groups = new Map<string, Array<{ rec: RouteRecord; params: Record<string, any> }>>();\n for (const c of candidates) {\n // Aynı path grubunda en uzun zincirli olanı seç.\n const key = c.rec.fullPath;\n const arr = groups.get(key) || [];\n arr.push(c); groups.set(key, arr);\n }\n let pickedFromDuplicate = false;\n for (const [key, arr] of groups) {\n if (arr.length > 1) {\n // Legacy sıralamaya dön: sığ zincir önce, sonra uzun fullPath. \n const pool = arr.some(c => !c.rec.aliasOf) ? arr.filter(c => !c.rec.aliasOf) : arr;\n const deepest = pool.reduce((a, b) => a.rec.chain.length >= b.rec.chain.length ? a : b);\n best = deepest;\n pickedFromDuplicate = true;\n break;\n }\n }\n if (!pickedFromDuplicate) {\n // En iyi adayı ResolveResult'a dönüştür.\n // Ortak tercih kuralı (RouteCollection.compareRouteRecords): sığ zincir, statik segment, az parametre, uzun path\n best = candidates.reduce((a, b) => compareRouteRecords(a.rec, b.rec) <= 0 ? a : b, candidates[0]);\n }\n\n const rec = best.rec;\n const params = best.params;\n const mergedExtend: Record<string, any> = {};\n try {\n for (const item of rec.chain) {\n if (item && item.extend && typeof item.extend === 'object') {\n Object.assign(mergedExtend, item.extend);\n }\n }\n } catch { /* ignore */ }\n return {\n ok: true,\n uri,\n fullPath: rec.fullPath,\n aliasOf: rec.aliasOf ?? null,\n route: rec.leaf,\n chain: rec.chain,\n params,\n extend: mergedExtend,\n meta: (() => {\n const mergedMeta: Record<string, any> = {};\n try {\n for (const item of rec.chain) {\n if (item && (item as any).meta && typeof (item as any).meta === 'object') {\n Object.assign(mergedMeta, (item as any).meta);\n }\n }\n } catch { /* ignore */ }\n return mergedMeta;\n })()\n };\n }\n\n // Doğrulama başarısızsa zincir geçersiz.\n private validateChain(uri: string, rec: RouteRecord, params: Record<string, any>): boolean {\n for (const item of rec.chain) {\n if (typeof item.validate === 'function') {\n const e: RouterValidateEventArgs = {\n uri,\n key: item.name ?? rec.fullPath,\n // createInstance: control alanından gerçek component instance'ını üretir.\n routes: this.routesMap,\n params\n };\n // Fonksiyon ise: doğrudan çağırmayı dener (factory gibi).\n if (!item.validate(e)) return false;\n }\n }\n return true;\n }\n\n private _navHandler: ((e: Event) => void) | null = null;\n private _installLinkInterceptor() {\n try {\n if (this._navHandler) return;\n this._navHandler = (ev: Event) => {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n let el = ev.target as HTMLElement | null;\n while (el && el !== document.body) {\n if (el instanceof HTMLAnchorElement) break;\n el = el.parentElement;\n }\n if (!el || !(el instanceof HTMLAnchorElement)) return;\n // opt-in via data-router-link veya rel=\"router\"\n const rel = el.getAttribute('rel') || '';\n const optIn = el.getAttribute(\"x-command\") == 'router' || el.hasAttribute('data-router-link') || rel.toLowerCase() === 'router';\n if (!optIn) return;\n // modifier keys veya target=\"_blank\" => ignore\n const a = el as HTMLAnchorElement;\n if (a.target && a.target !== '_self') return;\n if ((ev as MouseEvent).metaKey || (ev as MouseEvent).ctrlKey || (ev as MouseEvent).shiftKey || (ev as MouseEvent).altKey) return;\n let href = a.getAttribute('href') || '';\n if (!href) {\n href = a.getAttribute('x-to') || '';\n };\n if (!href) return;\n // same-origin kontorlü (history mode için)\n if (mode === 'history') {\n const u = new URL(href, w.location.href);\n if (u.origin !== w.location.origin) return;\n ev.preventDefault();\n const path = u.pathname + u.search + u.hash;\n this.navigate(path);\n return;\n }\n ev.preventDefault();\n const path = href.startsWith('#') ? href.slice(1) : href;\n this.navigate(path);\n };\n document.addEventListener('click', this._navHandler);\n } catch { }\n }\n\n private _applyUrl(uri: string, options: NavigationOptions = {}) {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'shell') return; // shell mode'da URL değişikliğine izin verme\n\n if (mode === 'hash' || mode === 'file') {\n const target = uri.startsWith('#') ? uri : ('#' + uri);\n if (w?.location?.hash !== target) {\n if (options.replace && w?.history && typeof w.history.replaceState === 'function') {\n const stamp = this._nextHistoryStamp(false);\n w.history.replaceState(this._routerState(options.state, stamp), '', target);\n this._historyStamp = stamp;\n } else {\n w.location.hash = target;\n const stamp = this._nextHistoryStamp(true);\n this._stampCurrentEntry(stamp, options.state);\n this._historyStamp = stamp;\n }\n }\n return;\n }\n\n if (w?.history && typeof w.history.pushState === 'function') {\n const current = (w.location.pathname || '/') + (w.location.search || '');\n if (current !== uri) {\n if (options.replace) {\n const stamp = this._nextHistoryStamp(false);\n w.history.replaceState(this._routerState(options.state, stamp), '', uri);\n this._historyStamp = stamp;\n } else {\n const stamp = this._nextHistoryStamp(true);\n w.history.pushState(this._routerState(options.state, stamp), '', uri);\n this._historyStamp = stamp;\n }\n }\n }\n } catch { }\n }\n\n private _resolveRedirect(target: ResolveResult, uri: string): string | null {\n const redirect = target.route?.redirect;\n if (!redirect) return null;\n if (typeof redirect === 'function') {\n const result = redirect({\n path: target.uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend\n });\n return typeof result === 'string' && result.length > 0 ? result : null;\n }\n const path = this.routingEngine.generatePathString(redirect, target.params || {});\n const hashIndex = uri.indexOf('#');\n const hash = hashIndex >= 0 ? uri.slice(hashIndex) : '';\n const beforeHash = hashIndex >= 0 ? uri.slice(0, hashIndex) : uri;\n const queryIndex = beforeHash.indexOf('?');\n const query = queryIndex >= 0 ? beforeHash.slice(queryIndex) : '';\n const ownHashIndex = path.indexOf('#');\n const ownHash = ownHashIndex >= 0 ? path.slice(ownHashIndex) : '';\n let result = ownHashIndex >= 0 ? path.slice(0, ownHashIndex) : path;\n if (query && !result.includes('?')) result += query;\n return result + (ownHash || hash);\n }\n\n private _pageSearch(): string | undefined {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'history' || mode === 'shell') return undefined;\n return w?.location?.search || undefined;\n } catch { return undefined; }\n }\n\n private _addressShows(...uris: Array<string | undefined>): boolean {\n const current = this._getCurrentUri().split('#')[0];\n return uris.some(u => !!u && u.split('#')[0] === current);\n }\n\n private _uriWithHash(appliedPath: string, requestedUri: string): string {\n const index = requestedUri.indexOf('#');\n if (index < 0 || appliedPath.indexOf('#') >= 0) return appliedPath;\n return appliedPath + requestedUri.slice(index);\n }\n\n private _handleScrollBehavior(scrollOption?: NavigationOptions['scroll']) {\n if (!scrollOption) return;\n\n try {\n if (scrollOption === 'top') {\n window.scrollTo({ top: 0, behavior: 'auto' });\n } else if (scrollOption === 'smooth') {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n } else if (scrollOption === 'instant') {\n window.scrollTo({ top: 0, behavior: 'instant' });\n } else if (typeof scrollOption === 'object') {\n window.scrollTo({\n top: scrollOption.top || 0,\n left: scrollOption.left || 0,\n behavior: scrollOption.behavior || 'auto'\n });\n }\n } catch { }\n }\n\n public dispose(): Promise<void> {\n try { this._scroll?.dispose(); } catch { }\n this._scroll = null;\n this._historyStamp = null;\n let done: Promise<void> = Promise.resolve();\n try {\n // keepAlive önbelleğindeki örnekleri bırak\n try { done = this.routingEngine.dispose(); } catch { }\n if (this._navHandler) {\n try { document.removeEventListener('click', this._navHandler); } catch { }\n this._navHandler = null;\n }\n if (this._windowNavListener) {\n const evt = this._routerOptions.mode === 'hash' || this._routerOptions.mode === 'file' ? 'hashchange' : 'popstate';\n try { window.removeEventListener(evt, this._windowNavListener); } catch { }\n this._windowNavListener = null;\n }\n } catch { }\n return done;\n }\n\n}","import { Signal } from \"../store/Signal\";\nimport { motifError } from \"../common/diagnostics\";\nimport type { UrlRoutingModule } from \"./UrlRoutingModule\";\nimport type { NavigationDirection, NavigationOptions, ResolveResult, Router } from \"./common\";\nimport type { RouteItem } from \"./RouteItem\";\n\nexport type RouteSnapshot = {\n target: ResolveResult;\n chain: string[];\n direction: NavigationDirection | undefined;\n state: any;\n};\n\nexport class RouterState {\n readonly version = new Signal(0);\n private _current: RouteSnapshot | null = null;\n private _constructing: RouteSnapshot | null = null;\n\n read(): RouteSnapshot | null {\n this.version.value;\n return this._constructing ?? this._current;\n }\n\n commit(snapshot: RouteSnapshot): void {\n this._current = snapshot;\n this.touch();\n }\n\n reset(): void {\n this._current = null;\n this.touch();\n }\n\n touch(): void {\n this.version.value = this.version.peek() + 1;\n }\n\n constructWith<T>(snapshot: RouteSnapshot | undefined, create: () => T): T {\n if (!snapshot) return create();\n const previous = this._constructing;\n this._constructing = snapshot;\n try {\n return create();\n } finally {\n this._constructing = previous;\n }\n }\n}\n\nexport function createRouter(state: RouterState, module: () => UrlRoutingModule | undefined): Router {\n const required = (): UrlRoutingModule => {\n const current = module();\n if (!current) throw motifError('MJX309');\n return current;\n };\n const target = () => state.read()?.target;\n return {\n get params() { return target()?.params ?? {}; },\n get route() { return target()?.route ?? null; },\n get ok() { return target()?.ok ?? false; },\n get uri() { return target()?.uri ?? ''; },\n get fullPath() { return target()?.fullPath ?? null; },\n get aliasOf() { return target()?.aliasOf ?? null; },\n get extend() { return target()?.extend ?? {}; },\n get meta() {\n const current = target();\n return current ? ((current as any).meta ?? current.extend) : {};\n },\n get chain() { return state.read()?.chain ?? []; },\n get direction() { return state.read()?.direction; },\n get state() { return state.read()?.state; },\n get stack() {\n state.version.value;\n return module()?.describeStack();\n },\n get routes() {\n state.version.value;\n return module()?.routeInfos() ?? [];\n },\n navigate: async (uri: string, options?: NavigationOptions) => {\n await required().navigate(uri, options);\n },\n navigateByName: async (name: string, params?: Record<string, any>, options?: NavigationOptions) => {\n await required().navigateByName(name, params, options);\n },\n evict: async (route?: RouteItem | string | null) => {\n await required().evict(route);\n },\n resolve: (uri: string) => required().resolve(uri),\n href: (name: string, params?: Record<string, any>) => required().href(name, params),\n };\n}\n","import { ServiceCollection } from \"./dependencyInjection/ServiceCollection\";\nimport { ServiceProvider } from \"./dependencyInjection/ServiceProvider\";\nimport { Component } from \"./component/Component\";\nimport { RouteItem } from \"./routing/RouteItem\";\nimport { ensureDevtoolsFlagInitialized, setRoutes, setDevtoolsEnabled, isEnabled as isDevtoolsEnabled } from \"./devtools/devbus\";\nimport { lintRoutes } from \"./devtools/routeLinter\";\nimport { initOverlayIfEnabled, initDevtoolsButton } from \"./devtools/overlay\";\nimport { RouterView } from \"./routing/RouterView\";\nimport { UrlRoutingModule } from \"./routing/UrlRoutingModule\";\nimport { RouterState, createRouter } from \"./routing/routerState\";\nimport { NavigationDirection, NavigationOptions, Router, RouteResolveContext, RouterNavigatedEventArgs, RouterEvents, RouterOptions, ScrollMemoryOptions, StackOptions } from \"./routing\";\nimport { errorHandler, safeCall, safeCallSilent, setErrorConsoleLogging } from \"./common/ErrorHandler\";\nimport { engine, configureReactivityLeakMonitor } from \"./store\";\nimport { MotifError, callReported, formatMotifMessage, motifError, reportError } from \"./common/diagnostics\";\nimport { flushCompilerContractWarnings } from \"./common/compilerContract\";\nimport { isTransitionMode, transitionSettings, TransitionMode } from \"./common/transitionRegistry\";\nimport { ComponentBase } from \"./component\";\nexport interface IStartup {\n configuration?: (services: any) => void;\n\n}\n\nlet _globalApplication: Application | null = null;\n\nexport type ApplicationState = 'initializing' | 'running' | 'disposing' | 'disposed';\nlet _globalBuilder: ApplicationBuilder | null = null;\nlet startedApplicationBuilder = false;\nconst _applicationStack = new Map<string | symbol, { builder: ApplicationBuilder, app: Application }>();\n\nexport class ApplicationBuilder {\n\n public services: ServiceCollection = new ServiceCollection();\n\n constructor() {\n if ((_globalApplication && _globalApplication.state !== 'disposing') || startedApplicationBuilder) {\n throw new MotifError('MJX405', formatMotifMessage('MJX405'), { cause: _globalApplication });\n }\n startedApplicationBuilder = true;\n }\n\n build() {\n // if (_globalApplication) {\n // throw new Error(\"ApplicationBuilder: Only one instance of ApplicationBuilder is allowed.\");\n this.services.autoRegisterInjectables();\n const provider = this.services.buildServiceProvider();\n this.services.addSingleton(ServiceProvider, provider);\n var app = new Application(provider);\n this.services.addSingleton(Application, app);\n _globalApplication = app;\n return app;\n }\n\n rebuild() {\n if (_globalApplication) {\n _globalApplication.provider.dispose();\n _globalApplication.provider = this.services.buildServiceProvider();\n return _globalApplication;\n }\n return this.build();\n }\n}\n\ninterface ApplicationEvents {\n 'router-changed': 'motifjs-router-navigated';\n}\nexport type AppLifecycleState = 'visible' | 'hidden' | 'frozen' | 'resumed' | 'restored' | 'online' | 'offline';\n\nexport type AppLifecycleEventArgs = {\n state: AppLifecycleState;\n visible: boolean;\n online: boolean;\n};\n\nexport type NavigationGuardContext = {\n to: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions, redirectedFrom?: string, direction?: NavigationDirection, state?: any };\n from: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions } | null;\n};\n\nexport type NavigationGuard = (\n context: NavigationGuardContext,\n next: (redirect?: string | false) => void\n) => void | Promise<void>;\n\nexport type ContainerGroups = {\n [key: string]: {\n registry: () => any;\n initialize: () => any\n };\n}\n\nexport class Application {\n public static get main(): Application {\n return _globalApplication!;\n }\n\n constructor(public provider: ServiceProvider) { }\n public static _disposingCount = 0;\n private _state: ApplicationState = 'initializing';\n private _disposing?: Promise<void>;\n public get state(): ApplicationState {\n return this._state;\n }\n private _middlewares: Array<(ctx: RouteResolveContext, next: () => Promise<void>) => any> = [];\n private _beforeEachGuards: NavigationGuard[] = [];\n public readonly _routerState = new RouterState();\n public readonly router: Router = createRouter(this._routerState, () => this.urlRoutingModule);\n private events: Map<any, Set<any>> = new Map();\n\n public static CreateBuilder(): ApplicationBuilder {\n return new ApplicationBuilder();\n }\n private appShell!: Component;\n public getAppShell(): Component {\n return this.appShell;\n }\n public run(host: HTMLElement | string | Node, appRoot?: any): void {\n safeCallSilent(() => {\n engine.startGc();\n }, 'Application.run.engine.startGc');\n let target: HTMLElement | null;\n if (typeof host === 'string') {\n target = document.querySelector(host) as HTMLElement | null;\n if (!target) throw motifError('MJX406', host);\n } else {\n target = host as HTMLElement;\n }\n let rootInstance: any = appRoot;\n\n\n this._state = 'running';\n const AppShell = new Component(target);\n this.appShell = AppShell;\n safeCallSilent(() => {\n (AppShell as any)._keepElementOnDispose = true;\n (AppShell as any).application = this;\n (AppShell as any).provider = this.provider;\n\n }, 'Application.run.setupAppShell');\n\n if (!rootInstance) {\n rootInstance = AppShell;\n rootInstance.controls.add(new RouterView({ name: 'default' }));\n } else {\n rootInstance.parent = AppShell;\n AppShell.controls.add(rootInstance);\n }\n AppShell.build();\n this._routerRoot = rootInstance;\n if (this.urlRoutingModule) {\n this.urlRoutingModule.start(rootInstance);\n this._startedRouter = this.urlRoutingModule;\n } else {\n } \n try {\n } catch { }\n }\n\n public insert(component: Component): void {\n this.appShell.controls.add(component);\n }\n public remove(component: Component): void {\n this.appShell.controls.remove(component);\n }\n\n public attach(component: Component): void {\n this.appShell.controls.add(component);\n }\n\n public detach(component: Component): void {\n this.appShell.controls.detach(component);\n }\n\n public appendToMainHost(component: Node): void {\n this.appShell.element?.appendChild(component);\n }\n\n public dispose(): Promise<void> {\n if (this._disposing) return this._disposing;\n this._state = 'disposing';\n Application._disposingCount++;\n startedApplicationBuilder = false;\n let routerDone: Promise<void> | undefined;\n safeCallSilent(() => { this._removeLifecycleListeners(); }, 'Application.dispose.lifecycle');\n safeCallSilent(() => { routerDone = (this as any).urlRoutingModule?.dispose?.(); }, 'Application.dispose.router');\n safeCallSilent(() => { engine.stopGc(); }, 'Application.dispose.gcStop');\n safeCallSilent(() => {\n try {\n const w = window as any;\n if (w && w.history && typeof w.history.replaceState === 'function') {\n // Normalize to root path; for hash mode also clear the hash\n w.history.replaceState({}, '', '/');\n }\n } catch { /* ignore */ }\n }, 'Application.dispose.resetUrl');\n transitionSettings.mode = 'concurrent';\n const shell = this.appShell;\n return this._disposing = (async () => {\n try { await routerDone; } catch (error) { reportError('MJX307', error); }\n if (shell && !shell.isDisposed) {\n try { await shell.dispose(); } catch (error) { reportError('MJX307', error); }\n }\n try { await this.provider.dispose(); } catch { }\n if (_globalApplication === this) _globalApplication = null;\n this._state = 'disposed';\n Application._disposingCount--;\n })();\n }\n\n public useTransitions(options: { mode?: TransitionMode }): Application {\n if (isTransitionMode(options?.mode)) transitionSettings.mode = options.mode;\n return this;\n }\n\n public use(callback: (ctx: RouteResolveContext, next: () => Promise<void>) => any): Application {\n this._middlewares.push(callback);\n return this;\n }\n\n public useGuard(guard: NavigationGuard): Application {\n this._beforeEachGuards.push(guard);\n return this;\n }\n\n public async _runBeforeEachGuards(to: any, from: any): Promise<string | false | true> {\n const context: NavigationGuardContext = { to, from };\n\n for (const guard of this._beforeEachGuards) {\n let redirectPath: string | false | undefined;\n let guardResolved = false;\n\n const next = (redirect?: string | false) => {\n guardResolved = true;\n redirectPath = redirect;\n };\n\n try {\n await guard(context, next);\n } catch (error) {\n reportError('MJX306', error, 'guard');\n return false;\n }\n\n if (!guardResolved) {\n return false;\n }\n\n if (redirectPath === false) {\n return false;\n }\n\n if (typeof redirectPath === 'string') {\n return redirectPath;\n }\n }\n\n return true; \n }\n\n private urlRoutingModule!: UrlRoutingModule;\n private _routerConfig: RouterOptions | null = null;\n private _routerRoot: Component | null = null;\n private _startedRouter: UrlRoutingModule | null = null;\n public useRouter(options: RouteItem[] | {\n routes: RouteItem[],\n mode?: 'history' | 'hash' | 'file' | 'shell',\n fallbacks?: { notFound?: any, error?: any },\n hooks?: RouterEvents,\n scrollMemory?: boolean | ScrollMemoryOptions,\n stack?: boolean | StackOptions\n }): Application {\n let routes: RouteItem[];\n let mode: 'history' | 'hash' | 'file' | 'shell' | undefined;\n let fallbacks: { notFound?: any, error?: any } | undefined;\n let hooks: RouterEvents | undefined;\n let scrollMemory: boolean | ScrollMemoryOptions | undefined;\n let stack: boolean | StackOptions | undefined;\n if (Array.isArray(options)) {\n routes = options;\n } else {\n routes = options.routes;\n mode = options.mode;\n fallbacks = options.fallbacks;\n hooks = options.hooks;\n scrollMemory = options.scrollMemory;\n stack = options.stack;\n }\n\n if (this.urlRoutingModule) {\n this.urlRoutingModule.dispose();\n }\n\n this._routerConfig = {\n mode,\n fallbacks,\n middlewareCollections: () => this._middlewares,\n RouteItems: routes,\n hooks,\n scrollMemory,\n stack,\n };\n this.urlRoutingModule = new UrlRoutingModule(this._routerConfig, this);\n\n this._routerState.reset();\n\n\n\n safeCallSilent(() => {\n ensureDevtoolsFlagInitialized();\n initOverlayIfEnabled();\n setRoutes(routes as any);\n if (this._isDevelopment || (globalThis as any).__MOTIF_DEV__ === true || isDevtoolsEnabled()) {\n lintRoutes(routes as any);\n }\n }, 'Application.useRouter.devtools');\n\n return this;\n }\n\n public restartRouter() {\n const root = this._routerRoot;\n if (!root || !this._routerConfig) return this;\n const previous = this._startedRouter;\n const shownUri = previous?.shownUri;\n let fresh = this.urlRoutingModule;\n if (!fresh || fresh === previous) {\n previous?.dispose();\n fresh = new UrlRoutingModule(this._routerConfig, this);\n this.urlRoutingModule = fresh;\n }\n this._routerState.reset();\n this._startedRouter = fresh;\n fresh.start(root, shownUri);\n return this;\n }\n\n public async navigate(uri: string, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigate(uri, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public async navigateByName(name: string, params?: Record<string, any>, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigateByName(name, params, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public on<T>(event: ApplicationEvents[keyof ApplicationEvents & string] | any, handler: (args?: T) => void): any {\n var e = this.events.get(event);\n if (!e) {\n this.events.set(event, new Set());\n e = this.events.get(event);\n }\n if (e) {\n e.add(handler);\n }\n return () => this.off(event, handler);\n }\n public off<T>(event: any, handler: (args?: T) => void): void {\n var e = this.events.get(event);\n if (e) {\n e.delete(handler);\n }\n }\n\n public fire<T>(event: any, args?: T): void {\n var e = this.events.get(event);\n if (e) {\n e.forEach(handler => {\n callReported(() => handler(args), 'MJX123', String(event));\n });\n }\n }\n\n public onRouterChanged(handler: (args?: RouterNavigatedEventArgs) => unknown): any {\n return this.on<RouterNavigatedEventArgs>('motifjs-router-navigated', handler);\n }\n\n public get isVisible(): boolean {\n try { return typeof document === 'undefined' || document.visibilityState !== 'hidden'; } catch { return true; }\n }\n\n public get isOnline(): boolean {\n try { return typeof navigator === 'undefined' || navigator.onLine !== false; } catch { return true; }\n }\n\n private _lifecycleOff: Array<() => void> | null = null;\n\n public onLifecycle(handler: (args?: AppLifecycleEventArgs) => unknown): () => void {\n this._installLifecycleListeners();\n return this.on<AppLifecycleEventArgs>('motifjs-app-lifecycle', handler);\n }\n\n private _emitLifecycle(state: AppLifecycleState): void {\n this.fire<AppLifecycleEventArgs>('motifjs-app-lifecycle', { state, visible: this.isVisible, online: this.isOnline });\n }\n\n private _installLifecycleListeners(): void {\n if (this._lifecycleOff) return;\n const offs: Array<() => void> = [];\n const listen = (target: EventTarget | undefined, type: string, fn: (e: any) => void) => {\n if (!target) return;\n try {\n target.addEventListener(type, fn);\n offs.push(() => { try { target.removeEventListener(type, fn); } catch { } });\n } catch { }\n };\n const doc = typeof document !== 'undefined' ? document : undefined;\n const win = typeof window !== 'undefined' ? window : undefined;\n listen(doc, 'visibilitychange', () => this._emitLifecycle(this.isVisible ? 'visible' : 'hidden'));\n listen(doc, 'freeze', () => this._emitLifecycle('frozen'));\n listen(doc, 'resume', () => this._emitLifecycle('resumed'));\n listen(win, 'pageshow', (e: PageTransitionEvent) => { if (e && e.persisted) this._emitLifecycle('restored'); });\n listen(win, 'online', () => this._emitLifecycle('online'));\n listen(win, 'offline', () => this._emitLifecycle('offline'));\n this._lifecycleOff = offs;\n }\n\n private _removeLifecycleListeners(): void {\n const offs = this._lifecycleOff;\n this._lifecycleOff = null;\n if (offs) for (const off of offs) off();\n }\n\n\n private _isDevelopment: boolean = false;\n private _enableErrorLogging: boolean = true;\n public get isDevelopmentModeEnabled(): boolean {\n return this._isDevelopment;\n }\n\n /** Enable reactive leak monitoring (dev önerilir) */\n public useReactiveMonitor(opts: { enabled?: boolean; threshold?: number; name?: string } = {}): this {\n safeCallSilent(() => { configureReactivityLeakMonitor(opts); }, 'Application.useReactiveMonitor.core');\n return this;\n }\n\n public useDevelopment(isDev: boolean = true): this {\n this._isDevelopment = isDev;\n errorHandler.setDevelopmentMode(isDev);\n safeCallSilent(() => { (globalThis as any).__MOTIF_DEV__ = isDev; }, 'Application.useDevelopment.flag');\n safeCallSilent(() => { setDevtoolsEnabled(isDev); }, 'Application.useDevelopment.devtools');\n if (isDev) flushCompilerContractWarnings();\n return this;\n }\n\n public useLogging(enabled: boolean = true): this {\n this._enableErrorLogging = enabled;\n setErrorConsoleLogging(enabled);\n return this;\n }\n\n\n\n\n}\n\n\nexport class ApplicationService {\n public static get current(): Application {\n return Application.main;\n }\n public static initialized: boolean = false;\n public static addToMain(...components: ComponentBase[]) {\n this.current && this.current.getAppShell().controls.add(...components);\n }\n}\n\nexport function useNavigation(): Router {\n return Application.main.router;\n}\n\nexport function useApplication() {\n return {\n application: Application.main,\n services: Application.main.provider,\n router: Application.main.router,\n attach(...components: ComponentBase[]) {\n Application.main && Application.main.getAppShell().controls.add(...components);\n }\n }\n}","import { Application, ServiceLifetime } from \"..\";\nimport { autoRegistry } from \"./autoRegistry\";\nimport { reportWarning } from \"../common/diagnostics\";\n\n\n\nexport function Injectable(options?: {\n lifetime?: ServiceLifetime,\n deps?: any[]\n}): (target: any, context?: ClassDecoratorContext) => void {\n\n return (target: any) => {\n autoRegistry.set(target, {\n lifetime: options?.lifetime ?? \"transient\",\n deps: options?.deps\n });\n };\n}\n\n\n\nexport function FromService<T>(token: abstract new (...args: any[]) => T): T;\nexport function FromService<T = any>(token: string | symbol | object): T;\nexport function FromService(token: any): any {\n try {\n return Application.main.provider.get(token);\n } catch (error) {\n reportWarning('MJX414', [describeServiceToken(token), String((error as any)?.message ?? error)], { token, error });\n return null as any;\n }\n}\n\nfunction describeServiceToken(token: any): string {\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n}\n","import { MotifError, formatMotifMessage, motifError } from \"./diagnostics\";\r\n\r\ntype AsyncOrSync<T> = Promise<T> | T;\r\n\r\nexport interface ResilienceContext {\r\n [key: string]: any;\r\n}\r\n\r\ntype Context = ResilienceContext;\r\n\r\nexport type ResilienceAction<T> = (ctx?: ResilienceContext) => AsyncOrSync<T>;\r\n\r\ntype Action<T> = ResilienceAction<T>;\r\n\r\ntype ShouldHandlePredicate = (err: any) => boolean;\r\n\r\nexport interface ResiliencePolicy {\r\n execute<T>(action: ResilienceAction<T>, ctx?: ResilienceContext): Promise<T>;\r\n}\r\n\r\nfunction isTimeoutError(err: any) {\r\n return err && err.name === 'TimeoutError';\r\n}\r\n\r\nclass TimeoutError extends MotifError {\r\n constructor() {\r\n super('MJX605', formatMotifMessage('MJX605'));\r\n this.name = 'TimeoutError';\r\n }\r\n}\r\n\r\nfunction delay(ms: number) {\r\n return new Promise<void>(res => setTimeout(res, ms));\r\n}\r\n\r\nfunction addJitter(base: number, jitterFactor = 0.1) {\r\n const jitter = (Math.random() * 2 - 1) * jitterFactor * base;\r\n return Math.max(0, Math.floor(base + jitter));\r\n}\r\n\r\n\r\nabstract class Policy implements ResiliencePolicy {\r\n abstract execute<T>(action: Action<T>, ctx?: Context): Promise<T>;\r\n}\r\n\r\n\r\nexport interface RetryOptions {\r\n retries?: number;\r\n backoff?: 'fixed' | 'exponential' | 'none';\r\n delay?: number;\r\n jitter?: number;\r\n shouldHandle?: ShouldHandlePredicate;\r\n onRetry?: (attempt: number, err: any, delayMs: number, ctx?: Context) => void | Promise<void>;\r\n}\r\n\r\nclass RetryPolicy extends Policy {\r\n private retries: number;\r\n private backoff: 'fixed' | 'exponential' | 'none';\r\n private delayMs: number;\r\n private jitter: number;\r\n private shouldHandle: ShouldHandlePredicate;\r\n private onRetry?: (attempt: number, err: any, delayMs: number, ctx?: Context) => void | Promise<void>;\r\n\r\n constructor(options: RetryOptions = {}) {\r\n super();\r\n this.retries = options.retries ?? 3;\r\n this.backoff = options.backoff ?? 'exponential';\r\n this.delayMs = options.delay ?? 100;\r\n this.jitter = Math.min(Math.max(options.jitter ?? 0.1, 0), 1);\r\n this.shouldHandle = options.shouldHandle ?? ((err) => !!err && !isTimeoutError(err));\r\n this.onRetry = options.onRetry;\r\n }\r\n\r\n private calcDelay(attempt: number) {\r\n if (this.backoff === 'none') return 0;\r\n if (this.backoff === 'fixed') return addJitter(this.delayMs, this.jitter);\r\n const base = this.delayMs * Math.pow(2, attempt - 1);\r\n return addJitter(base, this.jitter);\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n let lastErr: any;\r\n\r\n for (let attempt = 1; attempt <= this.retries + 1; attempt++) {\r\n try {\r\n return await Promise.resolve(action(ctx));\r\n } catch (err) {\r\n lastErr = err;\r\n if (!this.shouldHandle(err) || attempt > this.retries) break;\r\n const wait = this.calcDelay(attempt);\r\n if (this.onRetry) await this.onRetry(attempt, err, wait, ctx);\r\n if (wait > 0) await delay(wait);\r\n }\r\n }\r\n\r\n throw lastErr;\r\n }\r\n}\r\n\r\n\r\nexport interface TimeoutOptions {\r\n timeoutMs: number;\r\n}\r\n\r\nclass TimeoutPolicy extends Policy {\r\n private timeoutMs: number;\r\n\r\n constructor(opts: TimeoutOptions) {\r\n super();\r\n this.timeoutMs = opts.timeoutMs;\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n let timer: any;\r\n const p = Promise.resolve(action(ctx));\r\n const t = new Promise<never>((_, rej) => {\r\n timer = setTimeout(() => rej(new TimeoutError()), this.timeoutMs);\r\n });\r\n\r\n try {\r\n return await Promise.race([p, t]);\r\n } finally {\r\n clearTimeout(timer);\r\n }\r\n }\r\n}\r\n\r\n\r\nexport type CircuitState = 'CLOSED' | 'OPEN' | 'HALF_OPEN';\r\n\r\nexport interface CircuitBreakerOptions {\r\n failureThreshold?: number;\r\n successThreshold?: number;\r\n durationOfBreakMs?: number;\r\n shouldHandle?: ShouldHandlePredicate;\r\n onStateChange?: (oldState: CircuitState, newState: CircuitState) => void | Promise<void>;\r\n}\r\n\r\nclass CircuitBreakerPolicy extends Policy {\r\n private failureThreshold: number;\r\n private successThreshold: number;\r\n private durationOfBreakMs: number;\r\n private shouldHandle: ShouldHandlePredicate;\r\n private onStateChange?: (oldState: CircuitState, newState: CircuitState) => void | Promise<void>;\r\n\r\n private state: CircuitState = 'CLOSED';\r\n private failureCount = 0;\r\n private successCount = 0;\r\n private nextAttemptTime = 0; \r\n\r\n constructor(opts: CircuitBreakerOptions = {}) {\r\n super();\r\n this.failureThreshold = opts.failureThreshold ?? 5;\r\n this.successThreshold = opts.successThreshold ?? 2;\r\n this.durationOfBreakMs = opts.durationOfBreakMs ?? 60000; \r\n this.shouldHandle = opts.shouldHandle ?? ((err) => !!err && !isTimeoutError(err));\r\n this.onStateChange = opts.onStateChange;\r\n }\r\n\r\n private async changeState(newState: CircuitState) {\r\n const old = this.state;\r\n this.state = newState;\r\n this.failureCount = 0;\r\n this.successCount = 0;\r\n if (newState === 'OPEN') this.nextAttemptTime = Date.now() + this.durationOfBreakMs;\r\n if (this.onStateChange) await this.onStateChange(old, newState);\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n if (this.state === 'OPEN') {\r\n if (Date.now() >= this.nextAttemptTime) {\r\n await this.changeState('HALF_OPEN');\r\n } else {\r\n throw motifError('MJX602');\r\n }\r\n }\r\n\r\n try {\r\n const result = await Promise.resolve(action(ctx));\r\n if (this.state === 'HALF_OPEN') {\r\n this.successCount++;\r\n if (this.successCount >= this.successThreshold) await this.changeState('CLOSED');\r\n } else if (this.state === 'CLOSED') {\r\n this.failureCount = 0;\r\n }\r\n return result;\r\n } catch (err) {\r\n if (this.shouldHandle(err)) {\r\n this.failureCount++;\r\n if (this.state === 'HALF_OPEN' || (this.state === 'CLOSED' && this.failureCount >= this.failureThreshold)) {\r\n await this.changeState('OPEN');\r\n }\r\n }\r\n throw err;\r\n }\r\n }\r\n\r\n getState() {\r\n return this.state;\r\n }\r\n}\r\n\r\n\r\nexport interface BulkheadOptions {\r\n maxConcurrent?: number;\r\n maxQueue?: number;\r\n}\r\n\r\nclass BulkheadPolicy extends Policy {\r\n private maxConcurrent: number;\r\n private maxQueue: number;\r\n private active = 0;\r\n private queue: Array<() => void> = [];\r\n\r\n constructor(opts: BulkheadOptions = {}) {\r\n super();\r\n this.maxConcurrent = opts.maxConcurrent ?? 10;\r\n this.maxQueue = opts.maxQueue ?? 50;\r\n }\r\n\r\n private dequeue() {\r\n if (this.queue.length === 0) return;\r\n if (this.active >= this.maxConcurrent) return;\r\n const resolver = this.queue.shift()!;\r\n resolver();\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n if (this.active >= this.maxConcurrent) {\r\n if (this.queue.length >= this.maxQueue) {\r\n throw motifError('MJX603');\r\n }\r\n await new Promise<void>((res) => {\r\n this.queue.push(res);\r\n });\r\n }\r\n\r\n this.active++;\r\n try {\r\n const result = await Promise.resolve(action(ctx));\r\n return result;\r\n } finally {\r\n this.active--;\r\n this.dequeue();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport interface RateLimiterOptions {\r\n tokensPerInterval?: number;\r\n intervalMs?: number;\r\n capacity?: number;\r\n}\r\n\r\nclass RateLimiterPolicy extends Policy {\r\n private tokensPerInterval: number;\r\n private intervalMs: number;\r\n private capacity: number;\r\n private tokens: number;\r\n private lastRefill: number;\r\n\r\n constructor(opts: RateLimiterOptions = {}) {\r\n super();\r\n this.tokensPerInterval = opts.tokensPerInterval ?? 1;\r\n this.intervalMs = opts.intervalMs ?? 1000;\r\n this.capacity = opts.capacity ?? this.tokensPerInterval;\r\n this.tokens = this.capacity;\r\n this.lastRefill = Date.now();\r\n }\r\n\r\n private refill() {\r\n const now = Date.now();\r\n const elapsed = now - this.lastRefill;\r\n if (elapsed <= 0) return;\r\n const tokensToAdd = Math.floor(elapsed / this.intervalMs) * this.tokensPerInterval;\r\n if (tokensToAdd > 0) {\r\n this.tokens = Math.min(this.capacity, this.tokens + tokensToAdd);\r\n this.lastRefill = now;\r\n }\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n this.refill();\r\n if (this.tokens <= 0) {\r\n throw motifError('MJX604');\r\n }\r\n this.tokens -= 1;\r\n return Promise.resolve(action(ctx));\r\n }\r\n}\r\n\r\n\r\nexport interface FallbackOptions<T> {\r\n fallback: (err: any, ctx?: Context) => AsyncOrSync<T>;\r\n shouldHandle?: ShouldHandlePredicate;\r\n}\r\n\r\nclass FallbackPolicy<T> extends Policy {\r\n private fallback: (err: any, ctx?: Context) => AsyncOrSync<T>;\r\n private shouldHandle: ShouldHandlePredicate;\r\n\r\n constructor(opts: FallbackOptions<T>) {\r\n super();\r\n this.fallback = opts.fallback;\r\n this.shouldHandle = opts.shouldHandle ?? (() => true);\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n\r\n try {\r\n return await Promise.resolve(action(ctx)) as T;\r\n } catch (err) {\r\n if (!this.shouldHandle(err)) throw err;\r\n return await Promise.resolve(this.fallback(err, ctx)) as unknown as T;\r\n }\r\n\r\n }\r\n}\r\n\r\nclass PolicyWrap extends Policy {\r\n private policies: Policy[];\r\n\r\n constructor(...policies: Policy[]) {\r\n super();\r\n this.policies = policies;\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n const wrapped = this.policies.reduceRight((next: Action<T>, p: Policy) => {\r\n return (c?: Context) => p.execute(() => next(c), c);\r\n }, action);\r\n\r\n return wrapped(ctx);\r\n }\r\n}\r\n\r\n\r\nconst resilience = {\r\n retry: (opts?: RetryOptions) => new RetryPolicy(opts),\r\n timeout: (opts: TimeoutOptions) => new TimeoutPolicy(opts),\r\n circuitBreaker: (opts?: CircuitBreakerOptions) => new CircuitBreakerPolicy(opts),\r\n bulkhead: (opts?: BulkheadOptions) => new BulkheadPolicy(opts),\r\n rateLimiter: (opts?: RateLimiterOptions) => new RateLimiterPolicy(opts),\r\n fallback: <T>(opts: FallbackOptions<T>) => new FallbackPolicy<T>(opts),\r\n wrap: (...policies: Policy[]) => new PolicyWrap(...policies),\r\n};\r\n\r\n\r\nexport function decorate<T>(policy: ResiliencePolicy, fn: ResilienceAction<T>) {\r\n return (ctx?: ResilienceContext) => policy.execute(fn, ctx);\r\n}\r\n\r\nexport class Resilience implements ResiliencePolicy {\r\n static get create(): Resilience {\r\n return new Resilience();\r\n }\r\n private resiliences: Policy[] = [];\r\n retry = (opts?: RetryOptions): Resilience => {\r\n this.resiliences.push(resilience.retry(opts));\r\n return this;\r\n }\r\n timeout = (opts: TimeoutOptions): Resilience => {\r\n this.resiliences.push(resilience.timeout(opts));\r\n return this;\r\n }\r\n\r\n circuitBreaker = (opts?: CircuitBreakerOptions): Resilience => {\r\n this.resiliences.push(resilience.circuitBreaker(opts));\r\n return this;\r\n }\r\n\r\n bulkhead = (opts?: BulkheadOptions): Resilience => {\r\n this.resiliences.push(resilience.bulkhead(opts));\r\n return this;\r\n }\r\n\r\n rateLimiter = (opts?: RateLimiterOptions): Resilience => {\r\n this.resiliences.push(resilience.rateLimiter(opts));\r\n return this;\r\n }\r\n fallback = <T>(opts: FallbackOptions<T>): Resilience => {\r\n this.resiliences.push(resilience.fallback<T>(opts));\r\n return this;\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n return resilience.wrap(...this.resiliences).execute(action, ctx);\r\n }\r\n}\r","import { List, NameValuePair } from \"./\";\r\n\r\nexport class Dictionary<KType, VType> {\r\n private __values: List<NameValuePair<KType, VType>> = new List<NameValuePair<KType, VType>>();\r\n public Add(Key: KType, Value: VType): number {\r\n\r\n\r\n var item = new NameValuePair<KType, VType>();\r\n item.Key = Key;\r\n item.value = Value;\r\n var n = this.__values.Add(item);\r\n if (this.OnItemAdded != null) {\r\n this.OnItemAdded(item.Key, item.value);\r\n }\r\n\r\n return n;\r\n\r\n }\r\n public has(key: KType) {\r\n return this.filter(t => t.Key == key)[0] ? true : false;\r\n }\r\n public item(key: KType) {\r\n return this.filter(t => t.Key == key)[0]\r\n }\r\n public OnItemAdded!: (key: KType, value: VType) => any;\r\n public removeIndex(index: number): NameValuePair<KType, VType>[] {\r\n return this.__values.removeIndex(index);\r\n };\r\n public remove(Key: KType) {\r\n var item = this.__values.filter(x => x.Key == Key);\r\n item.forEach((v) => {\r\n this.__values.remove(v);\r\n });\r\n };\r\n public clear() {\r\n this.__values.clear();\r\n };\r\n public forEach(callback: ((item: NameValuePair<KType, VType>) => void)) {\r\n this.__values.forEach(callback);\r\n\r\n }\r\n public get values(): List<NameValuePair<KType, VType>> {\r\n return this.__values;\r\n }\r\n public filter(callbackfn: (value: NameValuePair<KType, VType>, index: number, array: NameValuePair<KType, VType>[]) => boolean): NameValuePair<KType, VType>[] {\r\n return this.__values.items.filter(callbackfn);\r\n }\r\n\r\n public find(predicate: (value: NameValuePair<KType, VType>, index: number, obj: NameValuePair<KType, VType>[]) => unknown, thisArg?: any): NameValuePair<KType, VType> | undefined {\r\n return this.__values.items.find(predicate);\r\n }\r\n} ","import { Application, Component, ComponentBase, dom, EventArgs, isExactMatch, startsWithPath } from \"../\";\r\nimport { Router } from \"./common\";\r\n\r\ntype RouterLinkOptions = {\r\n to: string;\r\n el?: string | Node;\r\n showHref?: boolean;\r\n text?: string;\r\n exactClass?: string;\r\n activeClass?: string;\r\n bypass?: boolean;\r\n target?: string;\r\n onExact?: () => void;\r\n offExact?: () => void;\r\n onActive?: () => void;\r\n offActive?: () => void;\r\n};\r\n\r\nexport class RouterLink extends Component<any, RouterLinkOptions> {\r\n constructor(props: RouterLinkOptions) {\r\n\r\n super(props.el ?? 'a', props);\r\n if (props.showHref !== false) this.attr.add({ href: props.to });\r\n if (props.target) this.attr.add({ target: props.target });\r\n\r\n this.motif.on('click', (s, e: MouseEvent) => {\r\n if (props.bypass) return;\r\n if (props.target && props.target !== '_self') return;\r\n if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;\r\n e.preventDefault();\r\n const router: Router | undefined = Application.main.router;\r\n if (router) router.navigate(props.to);\r\n });\r\n\r\n if (this.childs && this.childs.length) {\r\n this.controls.add(...this.childs);\r\n } else if (props.text != null) {\r\n this.attr.add({ textContent: props.text });\r\n }\r\n\r\n }\r\n\r\n public onBuilt(sender: ComponentBase, e: EventArgs): void {\r\n this.motif.options.enableRouterClassing = {\r\n to: 'all',\r\n path: this.props.to,\r\n activeClass: this.props.activeClass,\r\n exactClass: this.props.exactClass,\r\n onActive: this.props.onActive,\r\n offActive: this.props.offActive,\r\n onExact: this.props.onExact,\r\n offExact: this.props.offExact\r\n }\r\n }\r\n\r\n}\r","import { Component } from \"./Component\";\r\nimport { ComponentBase } from \"./componentBase\";\r\nimport { TransportRegistry } from \"./TransportRegistry\";\r\n\r\nexport class Transport extends Component<any, { name: string, mode?: 'replace' | 'merge' }> {\r\n public mode: 'replace' | 'merge';\r\n constructor(props: { name: string, mode?: 'replace' | 'merge' }) {\r\n super(props);\r\n this.mode = props.mode || 'replace';\r\n }\r\n initializeComponent(sender: ComponentBase) {\r\n TransportRegistry.registerSlot(this.props.name, this);\r\n this.onDisposing = () => {\r\n [...(this.controls.items || [])].forEach(child => {\r\n this.controls.remove(child);\r\n child.dispose?.();\r\n });\r\n TransportRegistry.unregisterSlot(this.props.name, this);\r\n };\r\n }\r\n\r\n clearSlot() {\r\n [...(this.controls.items || [])].forEach(child => {\r\n this.controls.remove(child);\r\n child.dispose?.();\r\n });\r\n }\r\n}\r","\r\nimport { TransportRegistry, SLOT_REGISTERED_EVENT, SLOT_UNREGISTERED_EVENT } from \"./TransportRegistry\";\r\nimport { Transporter } from \"./Transporter\";\r\nimport { ComponentBase } from \"./componentBase\";\r\nimport { Application, EventArgs, Transport, Component } from \"../\";\r\nimport { contentBlocks } from \"./contentBlockRegistry\";\r\n\r\nexport class TransportTo extends Component<any, { name: string }> {\r\n private _onAddRef?: (c: ComponentBase) => void;\r\n private _onRemoveRef?: (c: ComponentBase) => void;\r\n private _slotRegisteredListener?: () => void;\r\n private _slotUnregisteredListener?: () => void;\r\n private _transported: ComponentBase[] = [];\r\n private _countedLive = false;\r\n constructor(props: { name: string }) {\r\n super('div', props);\r\n contentBlocks.live++;\r\n this._countedLive = true;\r\n }\r\n\r\n private _handleSlotChange = (eventArgs: { name: string, slot: Transport }) => {\r\n if (eventArgs.name === this.props.name) {\r\n const slot = eventArgs.slot;\r\n if (slot.mode !== 'merge') {\r\n slot.clearSlot?.();\r\n }\r\n const all = [...(this.childs || []), ...this.controls.items];\r\n Transporter.transportMany(all, slot);\r\n this._rememberTransported(all);\r\n }\r\n };\r\n\r\n private _rememberTransported(children: ComponentBase[]) {\r\n const kept = this._transported.filter(c => !c.isDisposed);\r\n for (const child of children) {\r\n if (!kept.includes(child)) kept.push(child);\r\n }\r\n this._transported = kept;\r\n }\r\n\r\n private _clearChildrenFromSlot = (slot: ComponentBase) => {\r\n (this.childs || []).forEach(child => {\r\n slot.controls.remove(child);\r\n child.dispose();\r\n });\r\n (this.controls.items || []).forEach(child => {\r\n slot.controls.remove(child);\r\n child.dispose();\r\n });\r\n };\r\n\r\n initializeComponent(sender: ComponentBase) {\r\n let slot = TransportRegistry.getSlot(this.props.name) as Transport | undefined;\r\n if (slot) {\r\n if (slot.mode !== 'merge') {\r\n slot.clearSlot?.();\r\n }\r\n const all = [...(this.childs || []), ...this.controls.items];\r\n Transporter.transportMany(all, slot);\r\n this._rememberTransported(all);\r\n }\r\n\r\n this._slotRegisteredListener = Application.main.on(SLOT_REGISTERED_EVENT, this._handleSlotChange as any);\r\n this._slotUnregisteredListener = Application.main.on(SLOT_UNREGISTERED_EVENT, (eventArgs: { name: string, slot: ComponentBase } | any) => {\r\n if (eventArgs.name === this.props.name) {\r\n this._clearChildrenFromSlot(eventArgs.slot);\r\n }\r\n });;\r\n\r\n this._onAddRef = (child: ComponentBase) => {\r\n this.motif.trigger('controladded', { control: child });\r\n const currentSlot = TransportRegistry.getSlot(this.props.name);\r\n if (currentSlot) {\r\n Transporter.transport(child, currentSlot);\r\n this._rememberTransported([child]);\r\n }\r\n };\r\n this._onRemoveRef = (child: ComponentBase) => {\r\n const currentSlot = TransportRegistry.getSlot(this.props.name);\r\n if (currentSlot) {\r\n currentSlot.controls.remove(child);\r\n }\r\n this._transported = this._transported.filter(c => c !== child);\r\n };\r\n this.controls.onAdd = this._onAddRef;\r\n this.controls.onRemove = this._onRemoveRef;\r\n\r\n\r\n }\r\n\r\n public onDisposing(sender: ComponentBase, e: EventArgs): void {\r\n if (this._countedLive) {\r\n this._countedLive = false;\r\n contentBlocks.live--;\r\n }\r\n const currentSlot = TransportRegistry.getSlot(this.props.name);\r\n for (const child of this._transported || []) {\r\n currentSlot?.controls.remove(child);\r\n child.dispose();\r\n }\r\n\r\n if (this._slotRegisteredListener) {\r\n Application.main.off(SLOT_REGISTERED_EVENT, this._handleSlotChange as any);\r\n this._slotRegisteredListener = undefined;\r\n }\r\n if (this._slotUnregisteredListener) {\r\n Application.main.off(SLOT_UNREGISTERED_EVENT, this._slotUnregisteredListener);\r\n this._slotUnregisteredListener = undefined;\r\n }\r\n if (this.controls.onAdd === this._onAddRef) this.controls.onAdd = undefined;\r\n if (this.controls.onRemove === this._onRemoveRef) this.controls.onRemove = undefined;\r\n this._onAddRef = undefined;\r\n this._onRemoveRef = undefined;\r\n this._transported = [];\r\n }\r\n}\r","\r\nimport { Component, findAppendableComponent } from '../';\r\nimport { ComponentBase, notifyDeactivated } from '../';\r\nimport { effect, untracked } from '../store';\r\nimport { reportError, reportWarning } from '../common/diagnostics';\r\n\r\nexport interface VirtualizationDataRequest {\r\n page: number;\r\n pageSize: number;\r\n scrollTop: number;\r\n}\r\n\r\nexport interface VirtualizationDataResponse<T> {\r\n items: T[];\r\n totalCount: number;\r\n hasMore: boolean;\r\n}\r\n\r\nexport interface VirtualizationState<T> {\r\n isLoading: boolean;\r\n isInitialized: boolean;\r\n currentPage: number;\r\n totalCount: number;\r\n hasMore: boolean;\r\n error?: Error;\r\n data: T[];\r\n}\r\n\r\nexport interface VirtualizationProps<T> {\r\n dataRequest: (request: VirtualizationDataRequest) => Promise<VirtualizationDataResponse<T>>;\r\n itemTemplate: (item: T, index: number) => any;\r\n itemHeight: number | ((item: T, index: number) => number);\r\n pageSize?: number;\r\n renderMode?: 'item' | 'page';\r\n mainTemplate?: (content: Component, state: VirtualizationState<T>) => any;\r\n loadingTemplate?: (state: VirtualizationState<T>) => any;\r\n emptyTemplate?: () => any;\r\n errorTemplate?: (error: Error) => any;\r\n overscan?: number;\r\n autoLoad?: boolean;\r\n autoLoadThreshold?: number;\r\n overscanPages?: number;\r\n pageBuffer?: number;\r\n className?: string;\r\n style?: Partial<CSSStyleDeclaration>;\r\n filter?: (item: T[]) => T[];\r\n cacheSize?: number;\r\n \r\n autoRefresh?: boolean; \r\n watch?: () => unknown;\r\n}\r\n\r\nexport class Virtualization<T = any> extends Component<HTMLDivElement, VirtualizationProps<T>> {\r\n private readonly _state: VirtualizationState<T>;\r\n\r\n private _virtualContent!: Component<Comment>;\r\n private _topSpacer!: Component<HTMLDivElement>;\r\n private _bottomSpacer!: Component<HTMLDivElement>;\r\n private _cache = new Map<any, ComponentBase>();\r\n private _view: T[] = [];\r\n private _occurrence: number[] = [];\r\n private _occurrenceKeys = new WeakMap<object, object[]>();\r\n\r\n private _isLoadingMore = false;\r\n private _emptyRendered: boolean = false;\r\n private _renderPending = false;\r\n\r\n constructor(props: VirtualizationProps<T>) {\r\n super('div', props as any);\r\n\r\n if (props.className) this.class.add(props.className);\r\n if (props.style) Object.assign(this.element.style, props.style);\r\n\r\n this._state = this.useModel({\r\n isLoading: false,\r\n isInitialized: false,\r\n currentPage: 0,\r\n totalCount: 0,\r\n hasMore: true,\r\n error: undefined,\r\n data: []\r\n });\r\n\r\n this._loadMore = this._loadMore.bind(this);\r\n this._renderLoadingState = this._renderLoadingState.bind(this);\r\n this._renderErrorState = this._renderErrorState.bind(this);\r\n this._renderEmptyState = this._renderEmptyState.bind(this);\r\n this._loadInitial = this._loadInitial.bind(this);\r\n this.renderViewport = this.renderViewport.bind(this);\r\n this._makeView();\r\n }\r\n\r\n contentWrapper = new Component();\r\n wrapper!: Component;\r\n private _makeView() {\r\n\r\n this._topSpacer = new Component<HTMLDivElement>('div');\r\n this._topSpacer.element.style.cssText = 'height: 0px;';\r\n this._topSpacer.class.add('motif-virtualization-top-spacer');\r\n this._bottomSpacer = new Component<HTMLDivElement>('div');\r\n this._bottomSpacer.element.style.cssText = 'height: 0px;';\r\n this._bottomSpacer.class.add('motif-virtualization-bottom-spacer');\r\n\r\n this._virtualContent = new Component<Comment>(document.createComment('')); \r\n\r\n if (this.props.mainTemplate) {\r\n this.contentWrapper.controls.add(this._topSpacer, this._virtualContent, this._bottomSpacer); \r\n this.contentWrapper.onBuilding = ((s) => {\r\n var el = findAppendableComponent(s.parent!);\r\n if (el) {\r\n this.wrapper = el!;\r\n this._loadInitial();\r\n el.style({ overflowY: 'auto', position: 'relative' });\r\n el.motif.on('scroll', this._handleScroll);\r\n }\r\n });\r\n\r\n this.controls.add(this.props.mainTemplate(this.contentWrapper, this._state));\r\n } else {\r\n this.wrapper = this;\r\n this.element.style.cssText = 'overflow-y: auto; height: 100%; position: relative;';\r\n this.controls.add(this._topSpacer, this._virtualContent, this._bottomSpacer);\r\n this.motif.on('scroll', this._handleScroll); \r\n }\r\n }\r\n\r\n private _initialLoadStarted = false;\r\n onBuilding() {\r\n if (this.props.mainTemplate || this._initialLoadStarted) return;\r\n this._initialLoadStarted = true;\r\n this._loadInitial();\r\n }\r\n\r\n onMounted() {\r\n this._observeResize();\r\n if (this._renderPending) this.renderViewport();\r\n }\r\n\r\n onDisposing() {\r\n this._stopResizeObserver();\r\n this._stopDataWatch();\r\n this._clearContent();\r\n }\r\n\r\n private _offsets: number[] | null = null;\r\n private _resizeObserver?: ResizeObserver;\r\n private _observed?: Element;\r\n private _observedHeight = -1;\r\n\r\n private _fixedHeight(): number | null {\r\n const h = this.props.itemHeight;\r\n return typeof h === 'function' ? null : h;\r\n }\r\n\r\n private _computeOffsets(): void {\r\n const fn = this.props.itemHeight;\r\n if (typeof fn !== 'function') { this._offsets = null; return; }\r\n const view = this._view;\r\n const offsets = new Array<number>(view.length + 1);\r\n offsets[0] = 0;\r\n for (let i = 0; i < view.length; i++) {\r\n let h = 0;\r\n try { h = Number(fn(view[i], i)); } catch { h = 0; }\r\n offsets[i + 1] = offsets[i] + (h > 0 && Number.isFinite(h) ? h : 0);\r\n }\r\n this._offsets = offsets;\r\n }\r\n\r\n private _layoutOffsets(): number[] {\r\n if (!this._offsets || this._offsets.length !== this._view.length + 1) this._computeOffsets();\r\n return this._offsets!;\r\n }\r\n\r\n private _offsetOf(index: number): number {\r\n const h = this._fixedHeight();\r\n if (h !== null) return index * h;\r\n const offsets = this._layoutOffsets();\r\n return offsets[Math.min(Math.max(0, index), offsets.length - 1)];\r\n }\r\n\r\n private _indexAt(y: number, offsets: number[]): number {\r\n const total = offsets.length - 1;\r\n if (total <= 0) return 0;\r\n let lo = 0, hi = total - 1;\r\n while (lo < hi) {\r\n const mid = (lo + hi + 1) >> 1;\r\n if (offsets[mid] <= y) lo = mid; else hi = mid - 1;\r\n }\r\n return lo;\r\n }\r\n\r\n private _observeResize(): void {\r\n const el = this.wrapper?.element as unknown as HTMLElement | undefined;\r\n if (!el || this._observed === el || this.isDisposed) return;\r\n const RO = (globalThis as any).ResizeObserver;\r\n if (typeof RO !== 'function') return;\r\n this._stopResizeObserver();\r\n this._observedHeight = el.clientHeight;\r\n const observer: ResizeObserver = new RO(() => {\r\n if (this.isDisposed) return;\r\n const h = el.clientHeight;\r\n if (h === this._observedHeight) return;\r\n this._observedHeight = h;\r\n this.renderViewport();\r\n });\r\n observer.observe(el);\r\n this._resizeObserver = observer;\r\n this._observed = el;\r\n }\r\n\r\n private _stopResizeObserver(): void {\r\n try { this._resizeObserver?.disconnect(); } catch { }\r\n this._resizeObserver = undefined;\r\n this._observed = undefined;\r\n }\r\n\r\n \r\n private _loadSeq = 0;\r\n private _dataWatchStop?: () => void;\r\n private _reloadScheduled = false;\r\n private _reloadTimes: number[] = [];\r\n\r\n private _stopDataWatch(): void {\r\n this._dataWatchStop?.();\r\n this._dataWatchStop = undefined;\r\n }\r\n\r\n /**\r\n * dataRequest'i çağırır. `watch` açıksa çağrının senkron kısmında okunan reaktif veriyi izler;\r\n * değişince yeniden yükleme planlar. Aksi hâlde çağrı hiçbir dış effect'e bağımlılık sızdırmaz.\r\n */\r\n private _request(request: VirtualizationDataRequest, watch: boolean): Promise<VirtualizationDataResponse<T>> {\r\n const call = (): Promise<VirtualizationDataResponse<T>> => {\r\n try { return Promise.resolve(this.props.dataRequest(request)); }\r\n catch (error) { return Promise.reject(error); }\r\n };\r\n if (!watch || this.props.autoRefresh === false) return untracked(call);\r\n\r\n this._stopDataWatch();\r\n let result!: Promise<VirtualizationDataResponse<T>>;\r\n let first = true;\r\n this._dataWatchStop = effect(() => {\r\n if (first) {\r\n first = false;\r\n try { this.props.watch?.(); } catch (error) { reportError('MJX205', error); }\r\n result = call();\r\n return;\r\n }\r\n this._scheduleReload();\r\n });\r\n return result;\r\n }\r\n\r\n private _scheduleReload(): void {\r\n if (this._reloadScheduled || this.isDisposed) return;\r\n this._reloadScheduled = true;\r\n queueMicrotask(() => {\r\n this._reloadScheduled = false;\r\n if (this.isDisposed) return;\r\n // Sonsuz döngü koruması, 1 sn'de 30'u aşınca dur.\r\n const now = Date.now();\r\n this._reloadTimes = this._reloadTimes.filter(t => now - t < 1000);\r\n this._reloadTimes.push(now);\r\n if (this._reloadTimes.length > 30) {\r\n this._stopDataWatch();\r\n reportWarning('MJX206', []);\r\n return;\r\n }\r\n if (this._state.isInitialized) void this._reloadLoaded();\r\n else void this._loadInitial();\r\n });\r\n }\r\n\r\n /** Yüklü aralığı (0..currentPage) tek istekte yeniden alır; içerik yanıt gelene kadar kalır. */\r\n private async _reloadLoaded(): Promise<void> {\r\n const seq = ++this._loadSeq;\r\n const pageSize = this.props.pageSize || 50;\r\n const pages = this._state.currentPage + 1;\r\n try {\r\n const response = await this._request({\r\n page: 0,\r\n pageSize: pageSize * pages,\r\n scrollTop: this.wrapper?.element?.scrollTop ?? 0\r\n }, true);\r\n if (this.isDisposed || seq !== this._loadSeq) return;\r\n const el = this.wrapper?.element as HTMLElement | undefined;\r\n const top = el?.scrollTop ?? 0;\r\n this._state.currentPage = pages - 1;\r\n this._state.totalCount = response.totalCount;\r\n this._state.hasMore = response.hasMore;\r\n this._state.error = undefined;\r\n this._state.data = response.items;\r\n this._rebuildView();\r\n // Satırlar sökülürken içerik kısalmasın: kısalırsa tarayıcı kaydırmayı kırpar.\r\n // Boşluğu geçici olarak yeni listenin tam boyuna sabitle; renderViewport düzeltir.\r\n this._topSpacer.style({ height: '0px' });\r\n this._bottomSpacer.style({ height: this._offsetOf(this._view.length) + 'px' });\r\n this._clearContent();\r\n if (el && el.scrollTop !== top) el.scrollTop = top;\r\n this.renderViewport();\r\n } catch (error) {\r\n if (this.isDisposed || seq !== this._loadSeq) return;\r\n this._state.error = error as Error;\r\n this._renderErrorState(error as Error);\r\n }\r\n }\r\n\r\n private _handleScroll = (_sender: Component, _event: Event) => {\r\n this.renderViewport();\r\n if (this.props.autoLoad === false) return;\r\n if (!this._state.hasMore || this._isLoadingMore || !this._state.isInitialized) return;\r\n const el = this.wrapper.element as HTMLElement;\r\n const fixed = this._fixedHeight();\r\n const loadedBottom = fixed !== null ? this._state.data.length * fixed : this._offsetOf(this._view.length);\r\n const distanceToLoaded = loadedBottom - (el.scrollTop + el.clientHeight);\r\n if (distanceToLoaded < (this.props.autoLoadThreshold ?? 100)) void this._loadMore();\r\n }\r\n\r\n private async _loadInitial(): Promise<void> {\r\n const seq = ++this._loadSeq;\r\n this._state.isLoading = true;\r\n this._renderLoadingState();\r\n\r\n try {\r\n const pageSize = this.props.pageSize || 50;\r\n\r\n const response = await this._request({\r\n page: 0,\r\n pageSize,\r\n scrollTop: 0\r\n }, true);\r\n if (this.isDisposed || seq !== this._loadSeq) return;\r\n this._state.currentPage = 0;\r\n this._state.totalCount = response.totalCount;\r\n this._state.hasMore = response.hasMore;\r\n this._state.isInitialized = true;\r\n this._state.isLoading = false;\r\n this._state.error = undefined;\r\n this._state.data = response.items;\r\n this._clearContent();\r\n this._rebuildView();\r\n this.renderViewport();\r\n\r\n } catch (error) {\r\n if (this.isDisposed || seq !== this._loadSeq) return;\r\n this._state.isLoading = false;\r\n this._state.error = error as Error;\r\n this._renderErrorState(error as Error);\r\n }\r\n }\r\n\r\n private async _loadMore(): Promise<void> {\r\n if (this._isLoadingMore || !this._state.hasMore || !this._state.isInitialized) return;\r\n const seq = this._loadSeq;\r\n try {\r\n this._isLoadingMore = true;\r\n const nextPage = this._state.currentPage + 1;\r\n\r\n const pageSize = this.props.pageSize || 50;\r\n const response = await this._request({\r\n page: nextPage,\r\n pageSize,\r\n scrollTop: this.wrapper?.element?.scrollTop ?? 0\r\n }, false);\r\n if (this.isDisposed || seq !== this._loadSeq) return;\r\n this._state.totalCount = response.totalCount;\r\n this._state.currentPage = nextPage;\r\n this._state.hasMore = response.hasMore;\r\n this._state.error = undefined;\r\n this._state.data.push(...response.items);\r\n this._rebuildView();\r\n this.renderViewport();\r\n\r\n } catch (error) {\r\n if (this.isDisposed || seq !== this._loadSeq) return;\r\n this._state.error = error as Error;\r\n reportError('MJX207', error);\r\n } finally {\r\n this._isLoadingMore = false;\r\n }\r\n\r\n }\r\n\r\n\r\n private _rebuildView(): void {\r\n this._view = this.props.filter ? this.props.filter(this._state.data) : this._state.data;\r\n const seen = new Map<object, number>();\r\n this._occurrence = this._view.map(item => {\r\n if (typeof item !== 'object' || item === null) return 0;\r\n const n = seen.get(item) ?? 0;\r\n seen.set(item, n + 1);\r\n return n;\r\n });\r\n if (typeof this.props.itemHeight === 'function') this._computeOffsets();\r\n else this._offsets = null;\r\n }\r\n\r\n private _clearContent(): void {\r\n if (!this._virtualContent) return;\r\n const controls = this._virtualContent.controls;\r\n\r\n for (const c of this._cache.values()) {\r\n controls.silentUnlink(c);\r\n if (!c.isDisposed) void c.dispose();\r\n }\r\n this._cache.clear();\r\n controls.clear();\r\n this._emptyRendered = false;\r\n }\r\n\r\n private renderViewport(): void {\r\n if (this.isDisposed || !this.wrapper || !this._state.isInitialized) return;\r\n const el = this.wrapper.element as HTMLElement;\r\n this._observeResize();\r\n const view = this._view;\r\n const total = view.length;\r\n\r\n if (total === 0) {\r\n if (!this._emptyRendered) {\r\n this._clearContent();\r\n this._renderEmptyState();\r\n }\r\n this._topSpacer.style({ height: '0px' });\r\n this._bottomSpacer.style({ height: '0px' });\r\n return;\r\n }\r\n if (this._emptyRendered) this._clearContent();\r\n\r\n const h = this._fixedHeight();\r\n let overscan: number, first: number, last: number, topPx: number, bottomPx: number;\r\n if (h !== null) {\r\n const visible = Math.floor(el.clientHeight / h);\r\n if (visible <= 0) {\r\n this._renderPending = !(el as any).isConnected;\r\n return;\r\n }\r\n this._renderPending = false;\r\n\r\n overscan = Math.max(0, this.props.overscan ?? visible);\r\n const anchor = Math.min(Math.max(0, Math.floor(el.scrollTop / h)), total - 1);\r\n first = Math.max(0, anchor - overscan);\r\n last = Math.min(total, anchor + visible + overscan);\r\n topPx = first * h;\r\n bottomPx = Math.max(0, total - last) * h;\r\n } else {\r\n if (el.clientHeight <= 0) {\r\n this._renderPending = !(el as any).isConnected;\r\n return;\r\n }\r\n this._renderPending = false;\r\n\r\n const offsets = this._layoutOffsets();\r\n const top = Math.max(0, el.scrollTop);\r\n const bottom = top + el.clientHeight;\r\n const anchor = this._indexAt(top, offsets);\r\n let end = anchor;\r\n while (end < total && offsets[end] < bottom) end++;\r\n const visible = Math.max(1, end - anchor);\r\n overscan = Math.max(0, this.props.overscan ?? visible);\r\n first = Math.max(0, anchor - overscan);\r\n last = Math.min(total, Math.max(end, anchor + 1) + overscan);\r\n topPx = offsets[first];\r\n bottomPx = Math.max(0, offsets[total] - offsets[last]);\r\n }\r\n\r\n const rows: ComponentBase[] = new Array(last - first);\r\n const keep = new Set<ComponentBase>();\r\n for (let i = first; i < last; i++) {\r\n const c = this._rowFor(view[i], i);\r\n rows[i - first] = c;\r\n keep.add(c);\r\n }\r\n\r\n const inDom = this._virtualContent.controls.items;\r\n for (const c of inDom.slice()) {\r\n if (!keep.has(c)) this._detachRow(c);\r\n }\r\n\r\n for (let pos = 0; pos < rows.length; pos++) {\r\n const c = rows[pos];\r\n if (inDom[pos] === c) continue;\r\n if (c.parent === this._virtualContent) this._detachRow(c);\r\n this._virtualContent.controls.insert(pos, c);\r\n }\r\n this._topSpacer.style({ height: topPx + 'px' });\r\n this._bottomSpacer.style({ height: bottomPx + 'px' });\r\n\r\n this._evictCache(Math.max(200, (last - first) * 3));\r\n\r\n if (this.props.autoLoad !== false && this._state.hasMore && !this._isLoadingMore && total < last + overscan) {\r\n void this._loadMore();\r\n }\r\n }\r\n\r\n private _occurrenceKey(item: object, occurrence: number): object {\r\n let keys = this._occurrenceKeys.get(item);\r\n if (!keys) {\r\n keys = [];\r\n this._occurrenceKeys.set(item, keys);\r\n }\r\n return keys[occurrence] ??= {};\r\n }\r\n\r\n private _rowFor(item: T, index: number): ComponentBase {\r\n const occurrence = this._occurrence[index] ?? 0;\r\n const key = (typeof item === 'object' && item !== null)\r\n ? (occurrence === 0 ? item : this._occurrenceKey(item, occurrence))\r\n : index;\r\n let component = this._cache.get(key);\r\n if (component && component.isDisposed) {\r\n this._cache.delete(key);\r\n component = undefined;\r\n }\r\n if (component) {\r\n this._cache.delete(key);\r\n this._cache.set(key, component);\r\n return component;\r\n }\r\n const rendered = this.props.itemTemplate(item, index);\r\n component = rendered instanceof ComponentBase ? rendered : new Component(rendered);\r\n (component as any).__listItemRef = item;\r\n this._cache.set(key, component);\r\n return component;\r\n }\r\n\r\n private _detachRow(c: ComponentBase): void {\r\n const controls = this._virtualContent.controls;\r\n if (c.isDisposed) { controls.silentUnlink(c); return; }\r\n const node = c.element as unknown as Node;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n controls.silentUnlink(c);\r\n const close = (c.motif.options as any).closeFragment as Node | undefined;\r\n const frag: DocumentFragment = (c.motif.options as any).cache ?? ((c.motif.options as any).cache = document.createDocumentFragment());\r\n let cur: Node | null = node;\r\n while (cur) {\r\n const next: Node | null = cur.nextSibling;\r\n frag.appendChild(cur);\r\n if (cur === close) break;\r\n cur = next;\r\n }\r\n notifyDeactivated(c);\r\n } else {\r\n controls.silentDetach(c);\r\n }\r\n }\r\n\r\n private _evictCache(limit: number): void {\r\n const max = this.props.cacheSize ?? limit;\r\n if (this._cache.size <= max) return;\r\n for (const [key, c] of this._cache) {\r\n if (this._cache.size <= max) break;\r\n if (c.parent === this._virtualContent) continue;\r\n this._cache.delete(key);\r\n if (!c.isDisposed) void c.dispose();\r\n }\r\n }\r\n\r\n private _renderLoadingState(): void {\r\n if (!this._virtualContent || !this.props.loadingTemplate) return;\r\n this._clearContent();\r\n const loadingElement = this.props.loadingTemplate(this._state);\r\n this._virtualContent.controls.add(loadingElement);\r\n }\r\n\r\n private _renderEmptyState(): void {\r\n if (!this._virtualContent || !this.props.emptyTemplate) return;\r\n this._clearContent();\r\n const emptyElement = this.props.emptyTemplate();\r\n this._virtualContent.controls.add(emptyElement);\r\n this._emptyRendered = true;\r\n }\r\n\r\n private _renderErrorState(error: Error): void {\r\n if (!this._virtualContent) {\r\n reportError('MJX207', error);\r\n return;\r\n }\r\n this._clearContent();\r\n if (this.props.errorTemplate) {\r\n const errorElement = this.props.errorTemplate(error);\r\n this._virtualContent.controls.add(errorElement);\r\n } else {\r\n reportError('MJX207', error);\r\n }\r\n }\r\n\r\n public refresh(): Promise<void> {\r\n this._state.data = [];\r\n this._state.currentPage = 0;\r\n this._state.isInitialized = false;\r\n this._state.hasMore = true;\r\n this._rebuildView();\r\n return this._loadInitial();\r\n }\r\n\r\n public setData(data: T[]) { \r\n this._loadSeq++;\r\n this._stopDataWatch();\r\n this._state.data = data;\r\n this._state.currentPage = 0;\r\n this._state.totalCount = data.length;\r\n this._state.hasMore = false;\r\n this._state.isInitialized = true;\r\n this._state.isLoading = false;\r\n this._state.error = undefined;\r\n this._clearContent();\r\n this._rebuildView();\r\n this.renderViewport();\r\n }\r\n\r\n public scrollToIndex(index: number): void {\r\n if (!this.wrapper) return;\r\n const total = this._view.length;\r\n const i = Math.min(Math.max(0, index), Math.max(0, total - 1));\r\n this.wrapper.element.scrollTop = this._offsetOf(i);\r\n this.renderViewport();\r\n }\r\n\r\n public getState(): Readonly<VirtualizationState<T>> {\r\n return { ...this._state };\r\n }\r\n\r\n}\r\n","export type Bind<T> = T | (() => T);\n\nexport function toGetter<T>(value: Bind<T>): () => T {\n return typeof value === 'function' ? (value as () => T) : () => value;\n}\n\nexport function read<T>(value: Bind<T>): T {\n return typeof value === 'function' ? (value as () => T)() : value;\n}\n"],"names":["rethrowLater","error","setTimeout","ErrorHandler","unexpectedErrorHandler","listeners","_isDevelopment","_enableConsoleLogging","setDevelopmentMode","isDev","this","setConsoleLogging","enabled","isDevelopment","globalThis","__MOTIF_DEV__","reportSuppressed","context","logIfDev","report","undefined","cause","console","message","bus","__MOTIF_DEVTOOLS_BUS__","publish","code","name","serializeError","emit","Error","stack","JSON","parse","stringify","String","addListener","listener","push","index","indexOf","splice","slice","setUnexpectedErrorHandler","handler","getUnexpectedErrorHandler","onUnexpectedError","safeCall","fn","fallback","safeCallAsync","safeCallSilent","safeCallSilentAsync","wrapSafe","args","wrapSafeAsync","async","errorHandler","state","Set","warnings","routes","isDevLike","isRequestedByFlag","window","__motif_DEVTOOLS","__MOTIF_DEVTOOLS__","__MOTIF_DEVTOOLS_FLAG","exposeBus","visible","__motifDevBus","on","warn","getWarnings","isEnabled","setRoutes","getRoutes","ensureDevtoolsFlagInitialized","add","delete","type","payload","ev","l","details","w","motifMessages","MJX101","tag","MJX102","description","MJX103","MJX104","MJX105","MJX106","MJX107","MJX108","MJX109","MJX110","ms","MJX111","MJX112","depth","MJX113","MJX114","MJX115","MJX116","MJX117","MJX118","MJX119","MJX120","MJX121","compiled","runtime","MJX122","hook","MJX123","event","MJX124","key","MJX125","MJX126","MJX127","got","MJX128","cls","member","how","MJX201","MJX202","MJX203","max","MJX204","MJX205","MJX206","MJX207","MJX208","MJX301","outlet","MJX302","MJX303","chain","MJX304","MJX305","MJX306","MJX307","MJX308","MJX309","MJX310","parentPath","MJX311","path","MJX312","full","MJX313","MJX314","alias","MJX315","MJX316","MJX401","token","MJX402","MJX403","MJX404","MJX405","MJX406","selector","MJX407","MJX408","reason","MJX409","MJX410","sources","MJX411","MJX413","MJX414","MJX501","MJX502","MJX503","MJX504","MJX505","MJX507","limit","count","MJX601","MJX602","MJX603","MJX604","MJX605","MJX607","MJX608","MJX609","MJX610","MJX611","MotifError","constructor","options","super","formatMotifMessage","motifError","reportError","callReported","result","then","reportWarning","devWarn","disposableCore","disposableTracker","notifyCreated","target","trackDisposable","notifyDisposed","markAsDisposed","notifyOwner","owner","setParent","toDisposable","pending","handle","dispose","DisposableStore","_items","_closed","isDisposed","item","detach","clear","size","failures","length","AggregateError","Disposable","_disposables","owned","disposable","_register","Flags","IS_REACTIVE","Symbol","for","IS_READONLY","IS_SUPERFICIAL","RAW","GET_SETUP","ITERATE_KEY","followTracking","arrayScope","getRaw","value","current","hasOwn","Object","prototype","hasOwnProperty","call","isObject","intrinsicSymbols","values","getOwnPropertyDescriptors","map","descriptor","filter","isIntrinsicSymbol","has","proxyableTags","Map","canonicalIndex","savedTracking","trackingDepth","enterTracking","pauseTracking","resetTracking","arrayStack","ListBinding","component","itemsFn","renderFn","propertyName","dataSource","dataMember","formatString","converter","converterBack","updateMode","_isActive","_effectCleanup","_rendered","_identityMap","WeakMap","container","motifFragment","controls","activate","_setupBinding","deactivate","_disposeAll","reActivate","forEach","c","_toArray","src","Array","isArray","iterator","from","_getComponentKey","comp","p","props","indexkey","k","motif","__key","isPreCreated","element","parent","_render","idx","untracked","rendered","processRendered","resolveComponent","ComponentBase","_base","itemRef","__fromList","__listAdopted","olditems","_indexSensitive","_isPrimitive","v","update","source","rawSource","items","i","prevItems","prevComponents","currentRaws","old","raw","list","get","newComponents","usedComponents","seenKeys","claimed","positionalReuse","isReusable","shared","Math","min","it","is","set","valuePool","prev","queue","occurrences","occurrence","existing","reused","shift","userKey","_syncContainer","effect","appendOnly","oldIndex","oi","stable","predecessors","fill","tails","lo","hi","mid","u","reverse","longestIncreasingIndices","anchor","at","move","NameValuePair","Key","List","ItemAdded","ItemAddedBefore","ItemSplice","__list","_map","Dispose","Add","AddBefore","unshift","Insert","start","remove","FindFromKey","removeIndex","deleted","t","callbackfn","ReverseClone","normalizePath","replace","findAppendableComponent","nodeType","Node","COMMENT_NODE","DOCUMENT_FRAGMENT_NODE","TEXT_NODE","LeakMonitor","threshold","_origins","_quietChecks","check","origin","_busiestOrigin","busiest","entry","createRing","ring","linked","before","after","LinkedList","_ring","_count","isEmpty","_link","pop","_take","link","previous","_unlink","compareKeys","a","b","Query","where","predicate","select","orderBy","keySelector","sort","orderByDescending","distinctBy","seen","groupBy","group","first","firstOrDefault","any","some","all","every","aggregate","seed","func","reduce","toArray","reported","motifCompiled","contract","NodeTypes","Effect","callback","deps","active","running","scheduler","run","cleanup","effectStack","stop","depMap","effectQueue","leakMonitor","isFlushing","leakEnabled","leakThreshold","leakCleanups","configureReactivityLeakMonitor","opts","track","rawTarget","dep","m","trigger","effects","queued","runReported","Promise","resolve","runCounts","batch","e","runs","MAX_EFFECT_RUNS_PER_FLUSH","flushEffects","keyMap","depSet","onValueChanged","popAsyncTracking","pushed","lastIndexOf","asyncTracking","capture","suspend","resume","end","UNTRACKED_SENTINEL","isCheckedInput","el","tagName","toLowerCase","readModelValue","checked","isNumericInput","n","valueAsNumber","Number","isFinite","Binding","setter","formatInfo","_component","_memberPath","_memberPathSource","split","functional","getValue","prop","_applyFormat","updateTarget","_updateComponentProperty","isWaiting","isBuilt","isWait","setText","innerHTML","show","hide","style","format","locale","currency","includes","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","decimals","parseInt","match","Date","toLocaleDateString","toLocaleTimeString","toString","RAW_KEY","overridesBelow","instance","proto","getPrototypeOf","lazyBindMethods","names","defineProperty","configurable","enumerable","o","bound","bind","writable","resolveValue","isWritablePathKey","BindingCollection","_branchScope","_own","register","when","computeFn","frame","Frame","last","shown","navigate","text","cb","binding","wait","display","html","loop","method","host","place","next","insert","Component","dom","createTextNode","ternary","conditionFn","trueFn","falseFn","_ternaryCallTop","_ternarySchedule","condFn","onTrue","onFalse","defer","stopped","inner","stopInner","stopEffect","condition","outer","ternaryCall","queueMicrotask","watch","ef","activateAll","model","tn","lowerTag","writeBack","deactivateAll","reActivateAll","switchCase","discriminatorFn","cases","defaultFn","currentValue","defaultRunned","caseKey","Emitter","_subscriptions","_delivery","_subscribe","_disposed","thisArgs","disposables","subscription","_writable","_unsubscribe","fire","_resume","targets","delivery","ComponentEmiter","_emitters","_sourceDisposables","_listenerDisposables","hasListeners","eventName","createEvent","off","lower","d","getOrCreateEmitter","emitters","lowerFull","startsWith","invoke","res","disp","addSource","forward","srcs","agg","keys","METHOD_ATTRS","OPEN_METHODS","showModal","showPopover","WHEN_TRUTHY_METHODS","ARGUMENT_METHODS","PROPERTY_FIRST","controlAttribute","_parent","_attrMapStore","_watchersStore","_attrMap","_watchers","attributes","entries","attribute","bag","Reflect","ownKeys","stopper","bindings","_getElement","removeAttribute","HTMLElement","Element","hasAttribute","getAttribute","val","_applyValue","arg","apply","schedule","cacheValue","blur","inp","setSelectionRange","document","fullscreenElement","exitFullscreen","exitPointerLock","catch","pause","exitPictureInPicture","other","srcObject","setAttribute","isBool","input","isComponentLike","hasMethodState","getMethodState","activeElement","selectionStart","selectionEnd","controlClass","_countsStore","_staticSetStore","_watcherSeq","_counts","_staticSet","_addReactive","_addStaticFromArray","_addStaticFromObject","valueStr","trim","_addStaticFromString","classNames","cn","_splitClasses","_applySourceDiff","id","className","classList","contains","s","_normalizeToSet","obj","sourceId","now","prevCount","arr","rec","el2","shimAnimation","cancel","addEventListener","removeEventListener","oncancel","playState","cssTimeToMs","amount","substring","sampleTiming","styles","kind","listOf","aspect","delays","durations","longest","Infinity","total","tracks","transformTrack","computeTransitionInfo","Type","timeout","propCount","hasTransform","samples","transition","animation","winner","forced","test","transitionProperty","getTransitionInfo","isConnected","getComputedStyle","fxElement","createElement","body","appendChild","runCssTransition","phase","done","appear","css","classes","enter","enterFromClass","enterActiveClass","to","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","resolveTransitionClasses","addC","x","removeC","guardTimer","finished","endEvent","endHandler","finish","clearTimeout","offsetHeight","raf","requestAnimationFrame","nextFrame","expectedEnds","dur","duration","leave","info","getTransitionInfoFromElement","ended","ComponentMotif","toggle","domEvent","addHandler","setDisposable","stopAnimations","SIGNAL_TARGET","SIGNAL_KEY","Signal","_value","_target","_key","_equals","create","initialValue","equals","newValue","peek","updater","mutate","mutator","notify","asReadonly","self","valueOf","Computed","_dirty","_computing","_getter","_cleanup","getter","newVal","changed","LazyComputed","_runner","createScheduledEffect","_refresh","isDirty","activeResolver","activeSlot","rawScopedIn","constructionScope","navigatingRoot","slotsByOwner","handlesBySlot","pins","builtIn","boundMethods","runWithResolver","resolver","runWith","slot","previousSlot","previousRaw","pinnedScopeOf","pin","scope","built","_pending","recordServiceOwner","pinServiceOwner","root","live","_currentScope","_livePins","retireServiceOwner","_releaseLivePin","ServiceProvider","services","scopeName","singletonCache","scopedCache","transientSet","_autoDisposeTransients","pendingSingleton","pendingScoped","_navigation","_ownerlessSlot","ownerless","_navigationDisposed","createScope","scoped","enableAutoDisposeTransients","enable","desc","getDescriptor","describeToken","resolveDescriptorSync","getAsync","resolveDescriptorAsync","_getFor","getAllServices","_beginNavigation","navigation","version","scopes","_commitNavigation","_touch","_releaseIfUnused","_abandonNavigation","_scopeFor","pinned","_handle","handles","_createHandle","_scopedInstanceSync","_handleAsync","_scopedInstanceAsync","Proxy","_","cache","hit","bindTo","_isSystemScope","inst","instantiateSync","promise","instantiateAsyncIn","checkCycle","lifetime","instantiateAsync","construct","useValue","useFactory","resolveDepsSync","injectionResolver","describeTokenWithSource","useClass","resolveDepsAsyncIn","callDispose","close","ad","asyncDispose","getDeps","resolveTokenSync","results","resolveTokenAsync","inject","dependencies","nextPath","concat","firstIndex","join","contentBlocks","OPTIONS_OWNER","TRANSITION_SLOT","transitionSettings","mode","noop","createTracker","node","via","parentNode","release","r","settled","except","waits","leaves","enters","trackLeave","pendingLeaves","trackEnter","pendingEnters","isTransitionMode","describeServiceToken","peekTransition","clearNavDirection","_markedDirection","enterModeOf","_leaveContainer","wantsEnterTransition","transitionIn","createTransitionApi","cur","transitionInfo","in","out","activeCssCancel","activeCssPhase","cssProps","skipNextLeave","_suppressEnter","op","transitionOut","enterTransition","base","_enterPlayed","_enterSeq","attempt","_enterRun","placeholder","keyframes","_runCss","leaveTransition","play","deferUntilEntered","activeAnimations","animate","cleanedUp","safeCleanup","g","Animation","ComponentOptionsImpl","enableRouterClassing","ins","onRouterChanged","ComponentHelper","routerClassing","getInstance","isVisible","hasEvent","_eventHandlers","fireLifecycle","emiters","hasLifecycleHook","listName","lowerName","legacyProp","RESERVED_METHODS","checkedComponentClasses","WeakSet","callsSuper","escaped","RegExp","Function","checkReservedMembers","ctor","problems","own","getOwnPropertyDescriptor","Boolean","anyC","ControlCollection","class","attr","reservedMemberProblems","callInitializeComponent","sender","initializeComponent","_initializeComponentHandlers","oninitializeComponent","_onInitializeComponentHandlers","callDisposing","onDisposing","_onDisposingHandlers","ondisposing","callActivated","onActivated","_onActivatedHandlers","callDeactivated","onDeactivated","_onDeactivatedHandlers","deactivateTree","deep","_inactive","activateTree","callDisposed","_disposedFired","onDisposed","_onDisposedHandlers","ondisposed","callBuilt","onBuilt","_onBuiltHandlers","onbuilt","scheduleMounted","_mountedScheduled","onMounted","_onMountedHandlers","onmounted","onElementAttached","callMounted","_mountedFired","callBuilding","onBuilding","_onBuildingHandlers","callConfig","isConfigured","_preconfig","onConfig","_onConfigHandlers","callConfigured","_postconfigdone","_configDeferred","onConfigured","_onConfiguredHandlers","callOnInitialized","isInitialized","onInitialized","_onInitializedHandlers","callOnInitializing","onInitializing","_onInitializingHandlers","callVisibilityChanged","onVisibilityChanged","_onVisibilityChangedHandlers","findFragmentContent","controlElement","childNodes","child","closeFragment","backgroundCallback","internalBuild","_activatePreBindings","cisBuilt","enterSeq","pendingLeave","__pendingLeave","build","ownItems","currentIndex","appendableElement","getContent","referenceNode","insertHost","domReferenceOf","candidate","siblings","cfg","hideStrategy","isFromListOrKeyed","createComment","insertBefore","router","requestPath","uri","targetPath","exact","strip","isExactMatch","prefix","rp","pp","startsWithPath","activeClass","offActive","onActive","exactClass","offExact","onExact","removeComponentDom","alsoPlaceholder","nextSibling","removeChild","detachDomWithAnimation","_keepElementOnDispose","_forceInstantDetach","DISPOSE_STARTED","subtreeDisposesSync","_disposing","disposeAsync","teardownApplications","disposePrefix","asChild","ctx","Application","_disposingCount","app","application","recorded","main","owningApplication","skipLeaveTransition","_offAll","_deactivateBindings","silentDetach","disposeFinish","_deepCleanup","disposeRemainderAsync","_detachDomWithAnimationAsync","liveContentBlocks","findContentBlocks","block","disposeContentBlocks","childOptions","ctrls","BASE_PROTO","evt","wrapped","cap","_activateBindings","_reactivateBindings","prebinding_Activated","registered","_detachDomWithAnimation","detachDomWithAnimationAsync","_disposeShallow","disposeShallow","childs","deepCleanup","fragmentCloseMarkers","LIFECYCLE_X_EVENTS","RAW_APPLICATION","SCOPED_SUBSCRIBERS","isPainting","isPainted","_isWait","_styleFx","useModel","modelCtor","reactive","_computeHideStrategy","_isInDom","onElementCreating","refs","extractRefs","takePendingRefs","ParseProps","applyComponentOptions","ctor0","applyPlainElementProps","applyFallthroughProps","onAdd","control","onAddBeforeBuild","onRemove","createBaseCtx","_scopedContext","parentCtx","_trackContextSubscription","createScopedContext","building","ph","createDocumentFragment","isFragment","textContent","view","templ","deferredSelectValue","nodeName","seq","appendData","append","setState","reState","_textBindingWarned","warnComponentInTextBinding","content","styleObj","_stopStyleEffect","prevKeys","prevWasString","so","cssText","assign","fx","_addHandler","_show","showHost","_showSeq","needAttach","placeholderParent","parentElement","expectedParent","replaceChild","_hide","skip","_toggle","_on","xName","sub","_mountedSubs","subs","mods","once","passive","isTrusted","prevent","preventDefault","stopPropagation","original","_trigger","eh","_off","_disposeCore","rootDetached","nodes","parents","j","heights","order","disposeRemainderSync","_clear","disableDisposal","clearAsync","using","waitable","onfulfilled","onrejected","doWork","_siblingsApi","_siblingsSet","_createSiblingsApi","nextAll","prevAll","serviceProvider","provider","getService","sp","err","$","fromDom","fromComponent","findingTarget","findContainer","querySelectorAll","findingComponent","found","walk","cmp","ELEMENT_NODE","matches","msMatchesSelector","webkitMatchesSelector","_stopAnimations","_appliedRefs","ref","fns","applied","isCallableRef","runover","rest","LIFECYCLE_HANDLER_LISTS","initializecomponent","oninitializecomponent","onbuilding","oninitializing","oninitialized","onconfig","onconfigured","onvisibilitychanged","onactivated","ondeactivated","collectLifecycleHandlers","lowerKey","flat","applyTransitionProp","componentMethods","eventKey","nkey","_transitionSources","setTransition","COMPONENT_OPTION_KEYS","PLAIN_ELEMENT_SKIP","SPREAD_HTML_KEYS","SPREAD_URL_ATTRIBUTES","JAVASCRIPT_URL","isJavascriptUrl","guardSpreadUrl","read","attrs","appliedDomProps","_appliedDomProps","FALLTHROUGH_KEYS","isFallthroughKey","subset","observer","MutationObserver","disconnect","observe","documentElement","childList","subtree","notifyActivated","unpinServiceOwner","notifyDeactivated","MAX_FACTORY_DEPTH","SVG_NAMESPACE","static","derivedCtor","elementOrParams","arguments","isOptionsObject","materializeOptionsObject","CreateFragment","ops","isSvg","__isSvgElement","createElementNS","fragmentProps","declaredTag","elementTag","trimmed","readElementTag","declaredNs","elementNamespace","createDeclaredElement","kids","kid","applyRefs","handlerCount","callAddedHandlers","motifComponent","__childExpr","resolved","probe","resolveChildExpression","handlers","configuredBefore","initializingBefore","initializedBefore","pre","applyJsxFrameworkProps","unwrapModule","default","assertLoadedComponent","__esModule","describeLoaded","resolveToComponent","spec","getOwnPropertyNames","FragmentNode","arg1","arg2","glblths","getCurrentDom","motifDom","_created","doc","cloneNode","cd","selectors","namepsaceUri","convertToSvgElement","newSvgElement","firstChild","SELECTOR_REGEX","Namespace","children","namespace","exec","HTML","_$","_insertOne","resolveDone","detachComponentDom","arrive","visit","arrived","runLeaveThenDetach","unlinkOnly","silentUnlink","beforeIndex","newBeforeIndex","insertAt","findAppendableElement","open","maxIterations","isNodeInRange","frag","ownerDocument","moveComponentDomRange","computeAppendReference","moveToIndex","defaultMapper","Lazy","timers","trackTimer","clearAllTimers","initial","Placeholderview","Loaderview","attemptLoad","timeoutMs","signal","caller","parts","reject","finally","onAbortClear","aborted","onAbort","race","retry","floor","delayMs","whenOnline","normalizeRetry","cleanups","waitBeforeRetry","go","onlineHandler","navigator","onLine","loadPromise","onRetry","loadWithRetry","startTs","fail","onError","Fallbackview","mapResult","elapsed","minDelay","minDelayMs","remaining","onAbortClearDelay","hasOwnTransition","cancelAnimationsDeep","anims","anim","disposeNavigationTarget","xr","navigateHost","page","keepOldControl","navigateId","_latestNavigateId","isBusy","complete","xP","previouspage","_navPending","prevLock","_navLock","_navAbort","abort","AbortController","oldPage","animated","leaving","lazyFrame","flush","navigateLazy","preprocessitem","ContentBodyCollectionHandable","changeBodyCollectionHandler","SLOT_REGISTERED_EVENT","SLOT_UNREGISTERED_EVENT","TransportRegistry","registerSlot","slots","unregisterSlot","getSlot","Transporter","transport","newParent","ownerTransporter","keepState","transportMany","createSlot","mount","unmount","detachAll","ARRAY_MUTATORS","NOT_META","metaReaders","engine","isReadonly","superficial","_engine","receiver","ReactiveMap","readMeta","reader","createGetter","meta","patched","arrayMethods","createSetter","oldValue","oldLength","numeric","hadKey","proxy","removeArrayStack","createOwn","createHas","createDelete","isOwned","deleteProperty","PATCHED_ARRAY_METHODS","ArrayMethods","createArrayMethods","table","patch","needles","direct","outcome","needle","sorted","KEYS_KEY","keysChanged","lookupKey","wrapIterator","convert","step","createCollectionHandler","methods","wrap","wrapEntry","stored","existed","removed","thisArg","isMap","createCollectionMethods","ReactiveEngineMapper","AllreactiveMap","_gci","startGc","_intervalMs","stopGc","clearInterval","DisposeMapper","arrayTriggerCache","activeCallback","arrayHandler","deepHandler","collectionHandler","targetType","cname","isExtensible","existingProxy","clearModel","ArrayTrigger","toRaw","deepClone","array","enableTracking","cnt","reactiveRegistry","isDevRegistryEnabled","__MOTIF_STORE_REGISTRY__","autoRegistry","ServiceCollection","descriptors","reset","addTransient","impl","_add","addSingleton","addScoped","_tokenName","isConstructor","canAutoRegister","buildServiceProvider","lt","tryAddTransient","tryAddSingleton","tryAddScoped","autoRegisterInjectables","joinPaths","endsWith","seg","overlayHost","initOverlayIfEnabled","ctrlKey","metaKey","RouterViewRegistry","scopeId","outlets","unregister","find","findAll","RouterViewBuilt","RouterView","__isRouterView","ids","disposingChilds","disposeTarget","STORAGE_KEY","USER_INPUT","ScrollMemory","viewport","positions","currentKey","visited","restoring","cancelFrame","disarmAbort","offs","locationAnchor","windowViewport","querySelector","scrollTop","scrollTo","top","scrollToAnchor","containerViewport","load","history","scrollRestoration","listen","persistNow","visibilityState","cancelRestore","remember","persist","hash","splitUri","keyOf","restore","location","decodeHash","locationHash","saved","round","oldest","settleMs","startedAt","reached","armAbort","cancelAnimationFrame","removers","storage","sessionStorage","setItem","getItem","parsed","pair","scrollY","getElementById","scrollIntoView","decodeURIComponent","SLIDE_OFFSET","isElement","markDirection","direction","unmarkDirection","saveStyle","restoreStyle","saveScroll","left","scrollLeft","restoreScroll","prefersReducedMotion","matchMedia","easing","overlay","floating","above","position","margin","boxSizing","getBoundingClientRect","f","width","height","pointerEvents","zIndex","NavigationStack","retainAttached","swipe","session","uris","loaded","currentTop","gesture","gestureCommitted","awaitingGestureResult","disposed","retain","sb","swipeBack","edge","installSwipe","retainedCount","isRetaining","nav","begin","point","disposeAllEntries","truncate","stale","disposeEntry","take","pendingDetach","instances","topIndex","deferHide","attached","hidden","scroll","evict","settle","inert","ariaHidden","setProperty","reveal","record","save","describe","retained","gestureCommitPending","consumeGestureCommit","committed","traversalSettled","cancelled","settleGesture","entering","enteringEl","leavingEl","backwards","enteringStyle","leavingStyle","transform","endGestureListeners","fromIndex","onStart","onTouchStart","touches","clientX","topEl","startX","startY","clientY","lastX","dragging","topSaved","under","underSaved","onMove","onTouchMove","onEnd","onTouchEnd","beginDrag","innerWidth","willChange","applyDrag","dx","progress","dy","abs","cancelable","span","idle","velocity","commit","underEl","currentUnder","back","Scanner","tokens","currentColumn","addToken","currentType","parentTokenIndex","parameterIndex","sectionIndex","cpa","codePointAt","currentToken","isOptinal","regexs","parameterName","leadingSlashTokenIndex","leadingStaticTokenIndex","hasLeadingSlash","hasLeadingStatic","consumed","ch","escapeRegex","getNextDelimChar","nx","buildCapture","isOptional","delim","pattern","tok","segStart","segEnd","firstIdx","hasDependent","jj","sj","pj","groupInner","prm","parameters","exist","pageSearch","hashIdx","withoutHash","query","qIdx","rx","indx","urlSearchParams","URLSearchParams","queryMap","str","charCodeAt","second","routeSpecificity","fullPath","statics","params","compareRouteRecords","sa","RouteCollection","records","routesMap","viaAlias","nextChain","variants","isAlias","variant","leaf","scanner","aliasOf","RoutingEngine","_revealed","routingModule","_previousPath","_previousInstances","mainApp","controlCache","route","_navVersion","generatePathString","routeDefinition","part","paramDefinition","paramName","defaultValue","_pendingActivate","execute","_rootProvider","suppressed","_execute","_routerState","navVersion","restored","controlList","isSameRoute","enableEnter","paramsChanged","prevParams","newParams","allKeys","leafRoute","keepAlive","oldInstance","globalHooks","getHooks","updateHook","onUpdate","updateContext","extend","metaInfo","enterContext","enterHook","onEntering","prepTasks","kept","task","createInstance","motion","previousInstances","pages","_stackLeave","disposeFromDivergencePoint","mountChain","enteringTop","onEnter","disposeAfter","newChain","newInstances","prevChain","prevInstances","outletFor","outletName","targetOutlet","findRouterView","topItem","deferTop","divergeIndex","minLength","containerIndex","_construct","runInConstructionScope","constructWith","parseControl","_resolveFrom","_instanceCreator","activator","pendingMount","pendingListeners","_waitForOutlet","revealed","alreadyShown","showHook","onShow","oldCleanup","warnTimer","_s","_e","OUTLET_WARN_MS","rv","q","pathOf","newHistorySession","random","UrlRoutingModule","_routerOptions","routingEngine","routeCollection","_suppressBeforeEachOnce","_suppressMiddlewaresOnce","_scroll","RouteItems","_installLinkInterceptor","scrollMemory","_addressMode","_stack","hooks","_windowNavListener","shellUri","_getCurrentUri","_seedHistoryIndex","_onHistoryTraversal","shownUri","_previousRoute","_currentUri","protocol","h","pathname","search","_historyStamp","_readHistoryStamp","stamp","HISTORY_STAMP_KEY","_isPlainObject","_withHistoryStamp","userState","hasState","_userStateOf","historyState","_omit","_currentHistoryUserState","_nextHistoryStamp","_stampCurrentEntry","replaceState","_pendingTraversal","delta","currentUri","traversal","suppressBeforeEachThisCall","suppressMiddlewaresThisCall","navOptions","force","ok","skipped","gate","proceed","_runMiddlewares","redirectedFrom","redirectError","redirectChain","redirect","requested","_resolveRedirect","MAX_REDIRECTS","_buildFallbackResult","wasInitialNavigation","entryState","toRoute","fromRoute","routeItem","leaveHook","onLeave","leaveContext","leaveResult","guardResult","_runBeforeEachGuards","addressShowsBlocked","_addressShows","snapshotOf","appliedPath","leavingStamp","replaceSource","_applyUrl","stackNav","e2","touch","_handleScrollBehavior","_uriWithHash","describeStack","routeInfos","href","_fallbackRoutes","_getFallbackRoute","custom","fallbacks","_builtinNotFound","_builtinError","validate","_findLayoutPrefix","mergedExtend","mergedMeta","segs","best","matched","_pageSearch","validateChain","padding","fontFamily","navigateByName","initialUri","urix","rewritePath","middlewareCollections","dispatch","candidates","catchAll","groups","pickedFromDuplicate","_navHandler","HTMLAnchorElement","rel","shiftKey","altKey","URL","pushState","hashIndex","beforeHash","queryIndex","ownHashIndex","ownHash","requestedUri","scrollOption","behavior","RouterState","_current","_constructing","snapshot","_globalApplication","startedApplicationBuilder","ApplicationBuilder","rebuild","_state","_middlewares","_beforeEachGuards","module","required","createRouter","urlRoutingModule","events","CreateBuilder","appShell","getAppShell","appRoot","rootInstance","AppShell","_routerRoot","_startedRouter","attach","appendToMainHost","routerDone","_removeLifecycleListeners","shell","useTransitions","use","useGuard","guard","redirectPath","guardResolved","_routerConfig","useRouter","isDevtoolsEnabled","seenFull","seenAlias","rawPath","isDefaultSlash","isEmptyPath","childPath","aliases","rawAlias","aliasFull","aliasCount","lintRoutes","restartRouter","fresh","isOnline","_lifecycleOff","onLifecycle","_installLifecycleListeners","_emitLifecycle","online","win","persisted","_enableErrorLogging","isDevelopmentModeEnabled","useReactiveMonitor","useDevelopment","flushCompilerContractWarnings","useLogging","setErrorConsoleLogging","isTimeoutError","TimeoutError","delay","addJitter","jitterFactor","jitter","Policy","RetryPolicy","retries","backoff","shouldHandle","calcDelay","pow","action","lastErr","TimeoutPolicy","timer","rej","CircuitBreakerPolicy","failureThreshold","successThreshold","durationOfBreakMs","onStateChange","failureCount","successCount","nextAttemptTime","changeState","newState","getState","BulkheadPolicy","maxConcurrent","maxQueue","dequeue","RateLimiterPolicy","tokensPerInterval","intervalMs","capacity","lastRefill","refill","tokensToAdd","FallbackPolicy","PolicyWrap","policies","reduceRight","resilience","Resilience","resiliences","circuitBreaker","bulkhead","rateLimiter","__values","Value","OnItemAdded","showHref","bypass","clearSlot","_onAddRef","_onRemoveRef","_slotRegisteredListener","_slotUnregisteredListener","_transported","_countedLive","_handleSlotChange","eventArgs","_rememberTransported","_clearChildrenFromSlot","currentSlot","_virtualContent","_topSpacer","_bottomSpacer","_cache","_view","_occurrence","_occurrenceKeys","_isLoadingMore","_emptyRendered","_renderPending","isLoading","currentPage","totalCount","hasMore","data","_loadMore","_renderLoadingState","_renderErrorState","_renderEmptyState","_loadInitial","renderViewport","_makeView","contentWrapper","wrapper","mainTemplate","overflowY","_handleScroll","_initialLoadStarted","_observeResize","_stopResizeObserver","_stopDataWatch","_clearContent","_offsets","_resizeObserver","_observed","_observedHeight","_fixedHeight","itemHeight","_computeOffsets","offsets","_layoutOffsets","_offsetOf","_indexAt","y","RO","ResizeObserver","clientHeight","_loadSeq","_dataWatchStop","_reloadScheduled","_reloadTimes","_request","request","dataRequest","autoRefresh","_scheduleReload","_reloadLoaded","pageSize","response","_rebuildView","_sender","_event","autoLoad","fixed","autoLoadThreshold","nextPage","overscan","topPx","bottomPx","bottom","rows","keep","_rowFor","inDom","_detachRow","pos","_evictCache","_occurrenceKey","itemTemplate","__listItemRef","cacheSize","loadingTemplate","loadingElement","emptyTemplate","emptyElement","errorTemplate","errorElement","refresh","setData","scrollToIndex","sig","policy","describeInjectToken","components"],"mappings":"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"}