@motifx/core 1.0.1 → 1.1.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.
- package/dist/chunks/{core-DxINgP83.esm.js → core-BGdhUeHu.esm.js} +3175 -1138
- package/dist/chunks/core-BGdhUeHu.esm.js.map +1 -0
- package/dist/chunks/{core-DfzGo_Ti.cjs → core-BI6Lk585.cjs} +3366 -1299
- package/dist/chunks/core-BI6Lk585.cjs.map +1 -0
- package/dist/devtools.cjs +1 -1
- package/dist/devtools.cjs.map +1 -1
- package/dist/devtools.esm.js +1 -1
- package/dist/devtools.esm.js.map +1 -1
- package/dist/index.cjs +87 -74
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +38 -18
- package/dist/index.d.ts +38 -18
- package/dist/index.esm.js +42 -30
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.umd.js +1574 -1120
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/jsx-runtime.cjs.map +1 -1
- package/dist/jsx-runtime.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/core-BDvHkZLQ.esm.js +0 -1601
- package/dist/chunks/core-BDvHkZLQ.esm.js.map +0 -1
- package/dist/chunks/core-DXGu4dNE.cjs +0 -1642
- package/dist/chunks/core-DXGu4dNE.cjs.map +0 -1
- package/dist/chunks/core-DfzGo_Ti.cjs.map +0 -1
- package/dist/chunks/core-DxINgP83.esm.js.map +0 -1
|
@@ -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/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: () => `A spread object on a DOM tag cannot set innerHTML; the key was ignored. Use x-html for trusted HTML.`,\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\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 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', () => !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\";\r\nimport { motifError } from \"../common/diagnostics\";\r\nimport { Signal } from \"../store/Signal\";\r\n\r\ntype ScopeKind = 'root' | 'navigation' | 'user';\r\ntype OwnerSlot = { owner: object | null; ownerless?: boolean };\r\ntype OwnerPin = { scope: ServiceProvider; live: boolean };\r\ntype NavigationState = { current: ServiceProvider; version: Signal<number>; scopes: Set<ServiceProvider> };\r\n\r\nlet activeResolver: ((token: any) => any) | null = null;\r\nlet activeSlot: OwnerSlot | null = null;\r\nlet rawScopedIn: ServiceProvider | null = null;\r\nlet constructionScope: ServiceProvider | null = null;\r\nlet navigatingRoot: ServiceProvider | null = null;\r\n\r\nconst slotsByOwner = new WeakMap<object, OwnerSlot>();\r\nconst handlesBySlot = new WeakMap<OwnerSlot, Map<any, any>>();\r\nconst pins = new WeakMap<object, OwnerPin>();\r\nconst builtIn = new WeakMap<object, ServiceProvider>();\r\nconst boundMethods = new WeakMap<object, Map<PropertyKey, { fn: Function; bound: Function }>>();\r\n\r\nfunction runWithResolver<T>(resolver: (token: any) => any, create: () => T): T {\r\n const previous = activeResolver;\r\n activeResolver = resolver;\r\n try {\r\n return create();\r\n } finally {\r\n activeResolver = previous;\r\n }\r\n}\r\n\r\nfunction runWith<T>(slot: OwnerSlot | null, raw: ServiceProvider | null, create: () => T): T {\r\n const previousSlot = activeSlot;\r\n const previousRaw = rawScopedIn;\r\n activeSlot = slot;\r\n rawScopedIn = raw;\r\n try {\r\n return create();\r\n } finally {\r\n activeSlot = previousSlot;\r\n rawScopedIn = previousRaw;\r\n }\r\n}\r\n\r\nfunction bindTo(target: object, key: PropertyKey, fn: Function): Function {\r\n let cache = boundMethods.get(target);\r\n if (!cache) boundMethods.set(target, cache = new Map());\r\n const hit = cache.get(key);\r\n if (hit && hit.fn === fn) return hit.bound;\r\n const bound = fn.bind(target);\r\n cache.set(key, { fn, bound });\r\n return bound;\r\n}\r\n\r\nfunction pinnedScopeOf(owner: object | null): ServiceProvider | null {\r\n let current: any = owner;\r\n while (current) {\r\n const pin = pins.get(current);\r\n if (pin) return pin.scope;\r\n const built = builtIn.get(current);\r\n if (built && built._pending) return built;\r\n current = current.parent;\r\n }\r\n return null;\r\n}\r\n\r\nexport function inject<T>(token: abstract new (...args: any[]) => T): T;\r\nexport function inject<T = any>(token: string | symbol | object): T;\r\nexport function inject(token: any): any {\r\n if (!activeResolver) throw motifError('MJX409', describeInjectToken(token));\r\n return activeResolver(token);\r\n}\r\n\r\nfunction describeInjectToken(token: any): string {\r\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\r\n return String(token);\r\n}\r\n\r\nexport function runInConstructionScope<T>(scope: ServiceProvider | undefined, create: () => T): T {\r\n const previous = constructionScope;\r\n constructionScope = scope ?? null;\r\n try {\r\n return create();\r\n } finally {\r\n constructionScope = previous;\r\n }\r\n}\r\n\r\nexport function recordServiceOwner(owner: object): void {\r\n if (constructionScope && constructionScope._pending) builtIn.set(owner, constructionScope);\r\n}\r\n\r\nexport function pinServiceOwner(owner: object): void {\r\n const root = navigatingRoot;\r\n if (!root) return;\r\n if (pins.get(owner)?.live) return;\r\n const target = pinnedScopeOf(owner) ?? root._currentScope();\r\n pins.set(owner, { scope: target, live: true });\r\n target._livePins++;\r\n}\r\n\r\nexport function unpinServiceOwner(owner: object): void {\r\n const pin = pins.get(owner);\r\n if (!pin) return;\r\n pins.delete(owner);\r\n if (pin.live) pin.scope._releaseLivePin();\r\n navigatingRoot?._touch();\r\n}\r\n\r\nexport function retireServiceOwner(owner: object): void {\r\n const pin = pins.get(owner);\r\n if (pin) {\r\n if (pin.live) {\r\n pin.live = false;\r\n pin.scope._releaseLivePin();\r\n }\r\n return;\r\n }\r\n if (!navigatingRoot || !slotsByOwner.has(owner)) return;\r\n pins.set(owner, { scope: pinnedScopeOf(owner) ?? navigatingRoot._currentScope(), live: false });\r\n}\r\n\r\nexport class ServiceProvider {\r\n private parent?: ServiceProvider;\r\n private root: ServiceProvider;\r\n private scopeName?: string;\r\n private kind: ScopeKind;\r\n private singletonCache: Map<any, any>;\r\n private scopedCache: Map<any, any> = new Map();\r\n private transientSet: Set<any> = new Set();\r\n private _autoDisposeTransients = false;\r\n private pendingSingleton: Map<any, Promise<any>>;\r\n private pendingScoped: Map<any, Promise<any>> = new Map();\r\n private _navigation?: NavigationState;\r\n private _ownerlessSlot: OwnerSlot = { owner: null, ownerless: true };\r\n private _navigationDisposed = false;\r\n public _livePins = 0;\r\n public _pending = false;\r\n\r\n constructor(private services: ServiceCollection, parent?: ServiceProvider, root?: ServiceProvider) {\r\n this.parent = parent;\r\n this.root = root ?? this;\r\n this.kind = this.root === this ? 'root' : 'user';\r\n this.singletonCache = this.root === this ? new Map() : (this.root as any).singletonCache;\r\n this.pendingSingleton = this.root === this ? new Map() : (this.root as any).pendingSingleton;\r\n }\r\n\r\n public createScope(name?: string): ServiceProvider {\r\n const scoped = new ServiceProvider(this.services, this, this.root);\r\n scoped.scopeName = name ?? this.scopeName;\r\n (scoped as any)._autoDisposeTransients = this._autoDisposeTransients;\r\n return scoped;\r\n }\r\n\r\n public enableAutoDisposeTransients(enable = true): this { this._autoDisposeTransients = enable; return this; }\r\n\r\n\r\n public get<T = any>(token: any): T {\r\n const desc = this.services.getDescriptor(token);\r\n if (!desc) throw motifError('MJX401', this.describeToken(token));\r\n const value = this.resolveDescriptorSync(desc, [token]);\r\n return value as T;\r\n }\r\n\r\n public async getAsync<T = any>(token: any): Promise<T> {\r\n const desc = this.services.getDescriptor(token);\r\n if (!desc) throw motifError('MJX401', this.describeToken(token));\r\n const value = await this.resolveDescriptorAsync(desc, [token]);\r\n return value as T;\r\n }\r\n\r\n public _getFor<T = any>(owner: object, token: any): T {\r\n let slot = slotsByOwner.get(owner);\r\n if (!slot) {\r\n slot = { owner };\r\n slotsByOwner.set(owner, slot);\r\n }\r\n return runWith(slot, rawScopedIn, () => this.get<T>(token));\r\n }\r\n\r\n public getAllServices(): ServiceCollection { return this.services; }\r\n\r\n public _beginNavigation(): ServiceProvider {\r\n const root = this.root;\r\n const navigation = root._navigation ??= { current: root, version: new Signal(0), scopes: new Set() };\r\n navigatingRoot = root;\r\n const scope = new ServiceProvider(this.services, root, root);\r\n scope.kind = 'navigation';\r\n scope.scopeName = 'navigation';\r\n scope._pending = true;\r\n scope._autoDisposeTransients = root._autoDisposeTransients;\r\n navigation.scopes.add(scope);\r\n return scope;\r\n }\r\n\r\n public _commitNavigation(scope: ServiceProvider): void {\r\n const navigation = this.root._navigation;\r\n if (!navigation || navigation.current === scope) return;\r\n scope._pending = false;\r\n const previous = navigation.current;\r\n navigation.current = scope;\r\n this._touch();\r\n if (previous !== this.root) previous._releaseIfUnused();\r\n }\r\n\r\n public _abandonNavigation(scope: ServiceProvider): void {\r\n scope._pending = false;\r\n scope._releaseIfUnused();\r\n }\r\n\r\n public _currentScope(): ServiceProvider {\r\n return this.root._navigation?.current ?? this.root;\r\n }\r\n\r\n public _touch(): void {\r\n const navigation = this.root._navigation;\r\n if (navigation) navigation.version.value = navigation.version.peek() + 1;\r\n }\r\n\r\n public _releaseLivePin(): void {\r\n this._livePins--;\r\n this._releaseIfUnused();\r\n }\r\n\r\n private _releaseIfUnused(): void {\r\n const navigation = this.root._navigation;\r\n if (this.kind !== 'navigation' || this._navigationDisposed || this._livePins > 0) return;\r\n if (navigation && navigation.current === this) return;\r\n this._navigationDisposed = true;\r\n navigation?.scopes.delete(this);\r\n this.dispose().catch(() => { });\r\n }\r\n\r\n private _scopeFor(slot: OwnerSlot): ServiceProvider {\r\n const navigation = this._navigation;\r\n if (navigation) navigation.version.value;\r\n if (!slot.ownerless) {\r\n const pinned = pinnedScopeOf(slot.owner);\r\n if (pinned) return pinned;\r\n if (constructionScope && constructionScope.root === this) return constructionScope;\r\n }\r\n return navigation ? navigation.current : this;\r\n }\r\n\r\n private _handle(desc: ServiceDescriptor, path: any[]): any {\r\n const slot = activeSlot ?? this._ownerlessSlot;\r\n let handles = handlesBySlot.get(slot);\r\n if (!handles) handlesBySlot.set(slot, handles = new Map());\r\n let handle = handles.get(desc.token);\r\n if (!handle) {\r\n handle = this._createHandle(desc, slot);\r\n handles.set(desc.token, handle);\r\n }\r\n this._scopeFor(slot)._scopedInstanceSync(desc, path);\r\n return handle;\r\n }\r\n\r\n private async _handleAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n const slot = activeSlot ?? this._ownerlessSlot;\r\n await this._scopeFor(slot)._scopedInstanceAsync(desc, path);\r\n return runWith(slot, null, () => this._handle(desc, path));\r\n }\r\n\r\n private _createHandle(desc: ServiceDescriptor, slot: OwnerSlot): any {\r\n const root = this;\r\n const target = () => root._scopeFor(slot)._scopedInstanceSync(desc, [desc.token]);\r\n return new Proxy(Object.create(null), {\r\n get(_, key) {\r\n const instance = target();\r\n const value = Reflect.get(instance, key, instance);\r\n return typeof value === 'function' ? bindTo(instance, key, value) : value;\r\n },\r\n set(_, key, value) {\r\n const instance = target();\r\n return Reflect.set(instance, key, value, instance);\r\n },\r\n has(_, key) {\r\n return key in target();\r\n },\r\n getPrototypeOf() {\r\n return Object.getPrototypeOf(target());\r\n },\r\n });\r\n }\r\n\r\n private _isSystemScope(): boolean {\r\n return this.kind !== 'user';\r\n }\r\n\r\n private _scopedInstanceSync(desc: ServiceDescriptor, path: any[]): any {\r\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\r\n const inst = runWith(null, this, () => this.instantiateSync(desc, path));\r\n this.scopedCache.set(desc.token, inst);\r\n return inst;\r\n }\r\n\r\n private async _scopedInstanceAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\r\n if (this.pendingScoped.has(desc.token)) return await this.pendingScoped.get(desc.token)!;\r\n const promise = (async () => {\r\n const inst = await this.instantiateAsyncIn(null, this, desc, path);\r\n this.scopedCache.set(desc.token, inst);\r\n this.pendingScoped.delete(desc.token);\r\n return inst;\r\n })();\r\n this.pendingScoped.set(desc.token, promise);\r\n return await promise;\r\n }\r\n\r\n private resolveDescriptorSync(desc: ServiceDescriptor, path: any[]): any {\r\n this.checkCycle(desc.token, path);\r\n switch (desc.lifetime) {\r\n case 'singleton': {\r\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\r\n const inst = runWith(null, null, () => this.instantiateSync(desc, path));\r\n this.singletonCache.set(desc.token, inst);\r\n return inst;\r\n }\r\n case 'scoped': {\r\n if (this._isSystemScope() && rawScopedIn !== this) return this.root._handle(desc, path);\r\n return this._scopedInstanceSync(desc, path);\r\n }\r\n case 'transient':\r\n default: {\r\n const inst = this.instantiateSync(desc, path);\r\n if (this._autoDisposeTransients && this.parent) {\r\n this.transientSet.add(inst);\r\n }\r\n return inst;\r\n }\r\n }\r\n }\r\n\r\n private async resolveDescriptorAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n this.checkCycle(desc.token, path);\r\n switch (desc.lifetime) {\r\n case 'singleton': {\r\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\r\n if (this.pendingSingleton.has(desc.token)) return await this.pendingSingleton.get(desc.token)!;\r\n const promise = (async () => {\r\n const inst = await this.instantiateAsyncIn(null, null, desc, path);\r\n this.singletonCache.set(desc.token, inst);\r\n this.pendingSingleton.delete(desc.token);\r\n return inst;\r\n })();\r\n this.pendingSingleton.set(desc.token, promise);\r\n return await promise;\r\n }\r\n case 'scoped': {\r\n if (this._isSystemScope() && rawScopedIn !== this) return await this.root._handleAsync(desc, path);\r\n return await this._scopedInstanceAsync(desc, path);\r\n }\r\n case 'transient':\r\n default: {\r\n const inst = await this.instantiateAsync(desc, path);\r\n if (this._autoDisposeTransients && this.parent) {\r\n this.transientSet.add(inst);\r\n }\r\n return inst;\r\n }\r\n }\r\n }\r\n\r\n private construct<T>(create: () => T): T {\r\n if (activeSlot) return create();\r\n const slot: OwnerSlot = { owner: null };\r\n const inst = runWith(slot, rawScopedIn, create);\r\n if (inst && (typeof inst === 'object' || typeof inst === 'function') && typeof (inst as any).then !== 'function') {\r\n recordServiceOwner(inst as any);\r\n slot.owner = inst as any;\r\n if (!slotsByOwner.has(inst as any)) slotsByOwner.set(inst as any, slot);\r\n }\r\n return inst;\r\n }\r\n\r\n private instantiateSync(desc: ServiceDescriptor, path: any[]): any {\r\n if (desc.useValue !== undefined) {\r\n return desc.useValue;\r\n }\r\n if (desc.useFactory) {\r\n return this.construct(() => {\r\n const args = this.resolveDepsSync(desc, path);\r\n const result = runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this));\r\n if (result && typeof (result as any).then === 'function') {\r\n const name = this.describeTokenWithSource(desc.token);\r\n throw motifError('MJX402', name);\r\n }\r\n return result;\r\n });\r\n }\r\n if (desc.useClass) {\r\n return this.construct(() => {\r\n const args = this.resolveDepsSync(desc, path);\r\n return runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args));\r\n });\r\n }\r\n throw motifError('MJX403');\r\n }\r\n\r\n private async instantiateAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n return await runWith(slot, raw, () => this.instantiateAsync(desc, path));\r\n }\r\n\r\n private async instantiateAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n if (desc.useValue !== undefined) {\r\n return desc.useValue;\r\n }\r\n const slot = activeSlot;\r\n const raw = rawScopedIn;\r\n if (desc.useFactory) {\r\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\r\n return await runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this))));\r\n }\r\n if (desc.useClass) {\r\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\r\n return runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args))));\r\n }\r\n throw motifError('MJX403');\r\n }\r\n\r\n public async dispose(): Promise<void> {\r\n const seen = new Set<any>();\r\n const callDispose = async (obj: any) => {\r\n if (!obj || seen.has(obj)) return;\r\n seen.add(obj);\r\n try { if (typeof obj.dispose === 'function') await obj.dispose(); }\r\n catch { /* ignore */ }\r\n try { if (typeof obj.close === 'function') await obj.close(); }\r\n catch { /* ignore */ }\r\n try {\r\n const d = (obj as any)[Symbol.dispose];\r\n if (typeof d === 'function') await d.call(obj);\r\n } catch { }\r\n try {\r\n const ad = (obj as any)[Symbol.asyncDispose];\r\n if (typeof ad === 'function') await ad.call(obj);\r\n } catch { }\r\n };\r\n if (this.root === this) {\r\n const navigation = this._navigation;\r\n if (navigation) {\r\n const scopes = [...navigation.scopes];\r\n navigation.scopes.clear();\r\n navigation.current = this;\r\n if (navigatingRoot === this) navigatingRoot = null;\r\n this._navigation = undefined;\r\n for (const scope of scopes) {\r\n scope._navigationDisposed = true;\r\n await scope.dispose();\r\n }\r\n }\r\n for (const v of this.singletonCache.values()) await callDispose(v);\r\n this.singletonCache.clear();\r\n this.pendingSingleton.clear();\r\n }\r\n for (const v of this.scopedCache.values()) await callDispose(v);\r\n if (this.kind !== 'navigation') this.scopedCache.clear();\r\n this.pendingScoped.clear();\r\n for (const v of this.transientSet.values()) await callDispose(v);\r\n this.transientSet.clear();\r\n }\r\n\r\n private resolveDepsSync(desc: ServiceDescriptor, path: any[]): any[] {\r\n const deps = this.getDeps(desc);\r\n if (!deps || deps.length === 0) return [];\r\n return deps.map(dep => this.resolveTokenSync(dep, path));\r\n }\r\n private async resolveDepsAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any[]> {\r\n const deps = this.getDeps(desc);\r\n if (!deps || deps.length === 0) return [];\r\n const results: any[] = [];\r\n for (const dep of deps) {\r\n results.push(await runWith(slot, raw, () => this.resolveTokenAsync(dep, path)));\r\n }\r\n return results;\r\n }\r\n private injectionResolver(path: any[]): (token: any) => any {\r\n return (token: any) => this.resolveTokenSync(token, path);\r\n }\r\n private getDeps(desc: ServiceDescriptor): any[] | undefined {\r\n if (Array.isArray(desc.deps)) return desc.deps;\r\n const source: any = desc.useClass ?? desc.useFactory;\r\n if (source) {\r\n if (Array.isArray(source.inject)) return source.inject;\r\n if (Array.isArray(source.dependencies)) return source.dependencies;\r\n }\r\n return undefined;\r\n }\r\n private resolveTokenSync(token: any, path: any[]): any {\r\n const d = this.services.getDescriptor(token);\r\n if (!d) throw motifError('MJX401', this.describeToken(token));\r\n const nextPath = path.concat(token);\r\n return this.resolveDescriptorSync(d, nextPath);\r\n }\r\n private async resolveTokenAsync(token: any, path: any[]): Promise<any> {\r\n const d = this.services.getDescriptor(token);\r\n if (!d) throw motifError('MJX401', this.describeToken(token));\r\n const nextPath = path.concat(token);\r\n return await this.resolveDescriptorAsync(d, nextPath);\r\n }\r\n private checkCycle(token: any, path: any[]) {\r\n const firstIndex = path.indexOf(token);\r\n if (firstIndex !== -1 && firstIndex !== path.length - 1) {\r\n const chainTokens = path.slice(firstIndex).concat([token]);\r\n const chain = chainTokens.map((t) => this.describeTokenWithSource(t)).join(' -> ');\r\n throw motifError('MJX404', chain);\r\n }\r\n }\r\n private describeToken = (t: any) => {\r\n if (typeof t === 'string') return t;\r\n if (typeof t === 'symbol') return t.toString();\r\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\r\n return String(t);\r\n };\r\n private describeTokenWithSource(t: any) {\r\n const name = this.describeToken(t);\r\n const d = this.services.getDescriptor(t);\r\n if (!d) return name;\r\n const src = d.useClass ? 'useClass' : d.useFactory ? 'useFactory' : (d.useValue !== undefined) ? 'useValue' : 'unknown';\r\n return `${name}[${src}]`;\r\n }\r\n}\r\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\";\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> & {\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 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) 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) 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\nfunction disposePrefix(c: any, options: IDisposeOptions, asChild: boolean): void {\n const ctx = asChild ? 'disposeAsync' : 'dispose';\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 ?? 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 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 === false || (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 c = c.parent;\n }\n try { return Application.main?.provider ?? null; } catch { return null; }\n }\n\n public getService<T = any>(token: any): T | null {\n try {\n\n const sp = this.serviceProvider;\n if (sp) {\n return sp._getFor<T>(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_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 if (key === 'innerHTML') {\n reportWarning('MJX124', []);\n continue;\n }\n if (SPREAD_URL_ATTRIBUTES.has(key.toLowerCase())) {\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 } 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 }\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 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\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 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 \".\";\r\nimport { Component } from \"./Component\";\r\nimport { Frame } from \"./Frame\";\r\nimport { resolveComponent } from \"./resolveComponent\";\r\nimport { disposableCore } from \"../disposable\";\r\nimport { motifError, reportError } from \"../common/diagnostics\";\r\n\r\nexport interface LazyOptions<T = any> { \r\n Loaderview?: ComponentBase; \r\n Placeholderview?: ComponentBase; \r\n Fallbackview?: ComponentBase;\r\n minDelayMs?: number;\r\n onError?: (error: unknown) => void;\r\n mapResult?: (result: T) => any; \r\n timeoutMs?: number;\r\n signal?: AbortSignal;\r\n retry?: number | LazyRetryOptions;\r\n onRetry?: (attempt: number, error: unknown) => void;\r\n}\r\n\r\nexport interface LazyRetryOptions {\r\n count: number;\r\n delayMs?: number;\r\n whenOnline?: boolean;\r\n}\r\n\r\nfunction normalizeRetry(retry: LazyOptions['retry']): Required<LazyRetryOptions> {\r\n if (typeof retry === 'number') return { count: Math.max(0, Math.floor(retry)), delayMs: 500, whenOnline: true };\r\n if (retry && typeof retry === 'object') {\r\n return {\r\n count: Math.max(0, Math.floor(retry.count || 0)),\r\n delayMs: Math.max(0, retry.delayMs ?? 500),\r\n whenOnline: retry.whenOnline !== false,\r\n };\r\n }\r\n return { count: 0, delayMs: 0, whenOnline: false };\r\n}\r\n\r\nfunction defaultMapper(result: any) {\r\n if (result && typeof result === \"object\" && typeof (result as any).default === \"function\") {\r\n return (result as any).default;\r\n }\r\n return result;\r\n}\r\n\r\n\r\n\r\nexport function Lazy<T>(props: { caller: () => Promise<T>, options?: LazyOptions<T> }): Component;\r\nexport function Lazy(props: any): Component;\r\nexport function Lazy(props: any): Component {\r\n const opts: LazyOptions<any> = (props && props.options) || {};\r\n const frame = new Frame();\r\n const timers = new Set<ReturnType<typeof setTimeout>>();\r\n const trackTimer = (id: ReturnType<typeof setTimeout>) => { try { timers.add(id); } catch { } return id; };\r\n const clearAllTimers = () => {\r\n try { timers.forEach(id => { try { clearTimeout(id); } catch { } }); } catch { }\r\n try { timers.clear(); } catch { }\r\n };\r\n try { frame.motif.register(disposableCore.toDisposable(() => clearAllTimers())); } catch { }\r\n const initial = opts.Placeholderview ?? opts.Loaderview;\r\n if (initial != null) {\r\n frame.navigate(resolveComponent(initial));\r\n }\r\n\r\n const attemptLoad = () => {\r\n if (!opts.timeoutMs && !opts.signal) {\r\n return props.caller();\r\n }\r\n const parts: Promise<any>[] = [props.caller()];\r\n if (opts.timeoutMs && opts.timeoutMs > 0) {\r\n parts.push(new Promise<any>((_, reject) => {\r\n const id = trackTimer(setTimeout(() => reject(motifError('MJX110', opts.timeoutMs!)), opts.timeoutMs));\r\n parts[0].finally(() => { try { clearTimeout(id); timers.delete(id); } catch { } }).catch(() => { /* noop */ });\r\n if (opts.signal) {\r\n const onAbortClear = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\r\n try { opts.signal.addEventListener(\"abort\", onAbortClear, { once: true }); } catch { }\r\n }\r\n }));\r\n }\r\n if (opts.signal) {\r\n parts.push(new Promise<any>((_, reject) => {\r\n if (opts.signal!.aborted) {\r\n reject(motifError('MJX111'));\r\n return;\r\n }\r\n const onAbort = () => {\r\n opts.signal!.removeEventListener(\"abort\", onAbort);\r\n clearAllTimers();\r\n reject(motifError('MJX111'));\r\n };\r\n opts.signal!.addEventListener(\"abort\", onAbort, { once: true });\r\n }));\r\n }\r\n return Promise.race(parts);\r\n };\r\n\r\n const retry = normalizeRetry(opts.retry);\r\n const cleanups = new Set<() => void>();\r\n try { frame.motif.register(disposableCore.toDisposable(() => { cleanups.forEach(c => { try { c(); } catch { } }); cleanups.clear(); })); } catch { }\r\n\r\n const waitBeforeRetry = (attempt: number): Promise<boolean> => new Promise<boolean>(resolve => {\r\n let settled = false;\r\n const finish = (go: boolean) => {\r\n if (settled) return;\r\n settled = true;\r\n cleanups.delete(cancel);\r\n try { if (onlineHandler) window.removeEventListener('online', onlineHandler); } catch { }\r\n try { if (id !== undefined) { clearTimeout(id); timers.delete(id); } } catch { }\r\n try { opts.signal?.removeEventListener('abort', onAbort); } catch { }\r\n resolve(go);\r\n };\r\n const cancel = () => finish(false);\r\n const onAbort = () => finish(false);\r\n let onlineHandler: (() => void) | null = null;\r\n let id: ReturnType<typeof setTimeout> | undefined = undefined;\r\n cleanups.add(cancel);\r\n try { opts.signal?.addEventListener('abort', onAbort, { once: true }); } catch { }\r\n const schedule = () => { id = trackTimer(setTimeout(() => finish(true), retry.delayMs * attempt)); };\r\n const offline = retry.whenOnline && typeof navigator !== 'undefined' && navigator.onLine === false && typeof window !== 'undefined';\r\n if (offline) {\r\n onlineHandler = () => {\r\n try { window.removeEventListener('online', onlineHandler!); } catch { }\r\n onlineHandler = null;\r\n schedule();\r\n };\r\n window.addEventListener('online', onlineHandler);\r\n } else {\r\n schedule();\r\n }\r\n });\r\n\r\n const loadWithRetry = async (): Promise<any> => {\r\n let attempt = 0;\r\n for (; ;) {\r\n try {\r\n return await attemptLoad();\r\n } catch (err) {\r\n if (opts.signal?.aborted || (frame as any).isDisposed || attempt >= retry.count) throw err;\r\n attempt++;\r\n try { opts.onRetry?.(attempt, err); } catch { }\r\n const go = await waitBeforeRetry(attempt);\r\n if (!go || opts.signal?.aborted || (frame as any).isDisposed) throw err;\r\n }\r\n }\r\n };\r\n\r\n const loadPromise = retry.count > 0 ? loadWithRetry() : attemptLoad();\r\n\r\n const startTs = Date.now();\r\n\r\n loadPromise\r\n .then((result: any) => {\r\n if (opts.signal?.aborted) { return; }\r\n const mapper = opts.mapResult ?? defaultMapper;\r\n const target = mapper(result);\r\n const elapsed = Date.now() - startTs;\r\n const minDelay = Math.max(0, (opts.minDelayMs ?? 0));\r\n const remaining = Math.max(0, minDelay - elapsed);\r\n if (remaining > 0) {\r\n const id = trackTimer(setTimeout(() => {\r\n if (!opts.signal?.aborted) {\r\n frame.navigate(resolveComponent(target));\r\n }\r\n }, remaining));\r\n if (opts.signal) {\r\n const onAbortClearDelay = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\r\n try { opts.signal.addEventListener(\"abort\", onAbortClearDelay, { once: true }); } catch { }\r\n }\r\n } else {\r\n frame.navigate(resolveComponent(target));\r\n }\r\n })\r\n .catch((err: any) => {\r\n try { opts.onError?.(err); } catch { /* swallow */ }\r\n if (opts.signal?.aborted) return;\r\n if (opts.Fallbackview != null) {\r\n frame.navigate(resolveComponent(opts.Fallbackview));\r\n } else {\r\n reportError('MJX126', err);\r\n try { frame.motif.clear().catch(() => { }); } catch { }\r\n }\r\n });\r\n\r\n return frame;\r\n}\r\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\nconst 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\nfunction 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","\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 { 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 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 === TargetType.COLLECTION || 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 (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, resolveComponent, 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 = await val.then((result: any) => {\n return result.default ? result.default : result;\n });\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, () => resolveComponent(val, this.application)), scope, route);\n }\n return 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 // 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(): void {\n try { this._scroll?.dispose(); } catch { }\n this._scroll = null;\n this._historyStamp = null;\n try {\n // keepAlive önbelleğindeki örnekleri bırak\n try { void 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 }\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;\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 || 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 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 const AppShell = new Component(target);\n this.appShell = AppShell;\n safeCallSilent(() => {\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(): void {\n startedApplicationBuilder = false;\n safeCallSilent(() => { this._removeLifecycleListeners(); }, 'Application.dispose.lifecycle');\n safeCallSilent(() => { (this as any).urlRoutingModule?.dispose?.(); }, 'Application.dispose.router');\n safeCallSilent(() => { this.provider.dispose(); }, 'Application.dispose.preDispose');\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 _globalApplication = null;\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 = any>(token: any): T {\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","MJX125","key","MJX126","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","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","member","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","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","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","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","_forceInstantDetach","DISPOSE_STARTED","subtreeDisposesSync","_disposing","disposeAsync","disposePrefix","asChild","ctx","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","class","attr","childs","deepCleanup","fragmentCloseMarkers","LIFECYCLE_X_EVENTS","RAW_APPLICATION","SCOPED_SUBSCRIBERS","isPainting","isPainted","ControlCollection","_isWait","_styleFx","useModel","modelCtor","reactive","_computeHideStrategy","_isInDom","onElementCreating","refs","extractRefs","takePendingRefs","ParseProps","applyComponentOptions","ctor0","applyPlainElementProps","applyFallthroughProps","onAdd","control","onAddBeforeBuild","onRemove","ctor","createBaseCtx","_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","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","WeakSet","COMPONENT_OPTION_KEYS","PLAIN_ELEMENT_SKIP","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","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","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","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","go","onlineHandler","navigator","onLine","loadPromise","onRetry","loadWithRetry","startTs","mapResult","elapsed","minDelay","minDelayMs","remaining","onAbortClearDelay","onError","Fallbackview","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","createGetter","meta","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","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","RegExp","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","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","_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","_middlewares","_beforeEachGuards","module","required","createRouter","urlRoutingModule","events","CreateBuilder","appShell","getAppShell","appRoot","rootInstance","AppShell","_routerRoot","_startedRouter","attach","appendToMainHost","_removeLifecycleListeners","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","thisArg","showHref","bypass","clearSlot","_onAddRef","_onRemoveRef","_slotRegisteredListener","_slotUnregisteredListener","_transported","_countedLive","_handleSlotChange","eventArgs","_rememberTransported","_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","cacheSize","loadingTemplate","loadingElement","emptyTemplate","emptyElement","errorTemplate","errorElement","refresh","setData","scrollToIndex","sig","policy","describeInjectToken","components"],"mappings":"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"}
|