@motifx/core 1.0.1 → 1.2.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{core-DfzGo_Ti.cjs → core-SS-LXi1V.cjs} +3722 -1338
- package/dist/chunks/core-SS-LXi1V.cjs.map +1 -0
- package/dist/chunks/{core-DxINgP83.esm.js → core-vVL0WG0n.esm.js} +3527 -1173
- package/dist/chunks/core-vVL0WG0n.esm.js.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 +55 -24
- package/dist/index.d.ts +55 -24
- 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 +1943 -1172
- 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.d.cts +17 -3
- package/dist/jsx-runtime.d.ts +17 -3
- 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.esm.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/Dictionary.ts","../src/common/LinkedList.ts","../src/common/bind.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/Transport.tsx","../src/component/Transporter.ts","../src/component/TransportTo.tsx","../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/core/Virtualization.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/RouterLink.ts","../src/routing/UrlRoutingModule.ts","../src/routing/routerState.ts","../src/application.ts","../src/dependencyInjection/decorators.ts","../src/common/Resilience.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","Dictionary","__values","Value","n","OnItemAdded","x","callback","find","predicate","thisArg","createRing","ring","linked","before","after","LinkedList","_ring","_count","isEmpty","_link","pop","_take","link","previous","_unlink","toGetter","read","compareKeys","a","b","Query","source","where","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","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","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","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","inject","describeInjectToken","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","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","FNComponent","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","preProcessing","ContentBodyCollectionHandable","changeBodyCollectionHandler","ContentBlock","ContentBody","SLOT_REGISTERED_EVENT","SLOT_UNREGISTERED_EVENT","TransportRegistry","registerSlot","slots","unregisterSlot","getSlot","Transport","mode","clearSlot","Transporter","transport","newParent","ownerTransporter","keepState","transportMany","createSlot","mount","unmount","detachAll","TransportTo","_onAddRef","_onRemoveRef","_slotRegisteredListener","_slotUnregisteredListener","_transported","_handleSlotChange","eventArgs","_clearChildrenFromSlot","currentSlot","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__","createSignal","sig","createComputed","createLazyComputed","Virtualization","_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","position","_handleScroll","_initialLoadStarted","_observeResize","_stopResizeObserver","_stopDataWatch","_clearContent","_offsets","_resizeObserver","_observed","_observedHeight","_fixedHeight","h","itemHeight","_computeOffsets","offsets","_layoutOffsets","_offsetOf","_indexAt","y","RO","ResizeObserver","clientHeight","_loadSeq","_dataWatchStop","_reloadScheduled","_reloadTimes","_request","request","dataRequest","autoRefresh","_scheduleReload","_reloadLoaded","pageSize","pages","response","scrollTop","top","_rebuildView","height","_sender","_event","autoLoad","fixed","autoLoadThreshold","nextPage","overscan","topPx","bottomPx","visible","bottom","rows","keep","_rowFor","inDom","_detachRow","pos","_evictCache","_occurrenceKey","itemTemplate","__listItemRef","cur","cacheSize","loadingTemplate","loadingElement","emptyTemplate","emptyElement","errorTemplate","errorElement","refresh","setData","scrollToIndex","getState","autoRegistry","ServiceCollection","descriptors","reset","addTransient","impl","_add","addSingleton","addScoped","_tokenName","isConstructor","canAutoRegister","buildServiceProvider","lt","tryAddTransient","tryAddSingleton","tryAddScoped","autoRegisterInjectables","joinPaths","base","endsWith","seg","overlayHost","force","RouterViewRegistry","scopeId","outlets","unregister","findAll","RouterViewBuilt","for","RouterView","__isRouterView","ids","disposingChilds","disposeTarget","STORAGE_KEY","USER_INPUT","ScrollMemory","viewport","positions","currentKey","visited","restoring","cancelFrame","disarmAbort","offs","locationAnchor","windowViewport","querySelector","scrollTo","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","margin","boxSizing","getBoundingClientRect","f","width","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","_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","RouterLink","showHref","href","bypass","metaKey","ctrlKey","shiftKey","altKey","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","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","_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","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","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","useNavigation","useApplication","components","Injectable","FromService","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","BulkheadPolicy","maxConcurrent","maxQueue","dequeue","RateLimiterPolicy","tokensPerInterval","intervalMs","capacity","lastRefill","refill","tokensToAdd","FallbackPolicy","PolicyWrap","policies","reduceRight","resilience","decorate","policy","Resilience","resiliences","circuitBreaker","bulkhead","rateLimiter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.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/Dictionary.ts","../src/common/LinkedList.ts","../src/common/bind.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/Transport.tsx","../src/component/Transporter.ts","../src/component/TransportTo.tsx","../src/store/handlers/getter.ts","../src/store/handlers/setter.ts","../src/store/handlers/orhers.ts","../src/store/handlers/ArrayMethods.ts","../src/store/handlers/collections.ts","../src/store/ReactiveEngine.ts","../src/store/index.ts","../src/core/Virtualization.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/RouterLink.ts","../src/routing/UrlRoutingModule.ts","../src/routing/routerState.ts","../src/application.ts","../src/dependencyInjection/decorators.ts","../src/common/Resilience.ts"],"sourcesContent":["function rethrowLater(error: any): void {\r\n\tsetTimeout(() => { throw error; }, 0);\r\n}\r\n\r\nexport class ErrorHandler {\r\n\tprivate unexpectedErrorHandler: (e: any) => void = rethrowLater;\r\n\tprivate listeners: Array<(error: any) => void> = [];\r\n\tprivate _isDevelopment: boolean = false;\r\n\tprivate _enableConsoleLogging: boolean = true;\r\n\r\n\tpublic setDevelopmentMode(isDev: boolean): void {\r\n\t\tthis._isDevelopment = isDev;\r\n\t}\r\n\r\n\tpublic setConsoleLogging(enabled: boolean): void {\r\n\t\tthis._enableConsoleLogging = enabled;\r\n\t}\r\n\r\n\tpublic isDevelopment(): boolean {\r\n\t\treturn this._isDevelopment || (globalThis as any).__MOTIF_DEV__ === true;\r\n\t}\r\n\r\n\tpublic reportSuppressed(context: string, error: any): void {\r\n\t\tthis.logIfDev(context, error);\r\n\t}\r\n\r\n\tpublic report(error: Error): void {\r\n\t\tif (this._enableConsoleLogging) {\r\n\t\t\tif (error.cause !== undefined) console.error(error.message, error.cause);\r\n\t\t\telse console.error(error.message);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n\t\t\tif (bus && typeof bus.publish === 'function') {\r\n\t\t\t\tbus.publish('error:caught', { context: (error as any).code ?? error.name, error: this.serializeError(error) });\r\n\t\t\t}\r\n\t\t} catch { /* ignore */ }\r\n\r\n\t\tthis.emit(error);\r\n\t}\r\n\r\n\tprivate logIfDev(context: string, error: any): void {\r\n\t\tif (this.isDevelopment() && this._enableConsoleLogging) {\r\n\t\t\tconsole.error(`[motifjs Error - ${context}]`, error);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n\t\t\tif (bus && typeof bus.publish === 'function') {\r\n\t\t\t\tbus.publish('error:caught', { context, error: this.serializeError(error) });\r\n\t\t\t}\r\n\t\t} catch { /* ignore */ }\r\n\t}\r\n\r\n\r\n\tprivate serializeError(error: any): any {\r\n\t\tif (!error) return { message: 'Unknown error' };\r\n\t\tif (error instanceof Error) {\r\n\t\t\treturn {\r\n\t\t\t\tname: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstack: error.stack,\r\n\t\t\t\tcause: error.cause ? this.serializeError(error.cause) : undefined\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (typeof error === 'object') {\r\n\t\t\ttry { return JSON.parse(JSON.stringify(error)); } catch { return String(error); }\r\n\t\t}\r\n\t\treturn String(error);\r\n\t}\r\n\r\n\taddListener(listener: (error: any) => void): () => void {\r\n\t\tthis.listeners.push(listener);\r\n\t\treturn () => {\r\n\t\t\tconst index = this.listeners.indexOf(listener);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tthis.listeners.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tprivate emit(error: any): void {\r\n\t\tfor (const listener of this.listeners.slice()) {\r\n\t\t\tlistener(error);\r\n\t\t}\r\n\t}\r\n\r\n\tsetUnexpectedErrorHandler(handler: (e: any) => void): void {\r\n\t\tthis.unexpectedErrorHandler = handler;\r\n\t}\r\n\r\n\tgetUnexpectedErrorHandler(): (e: any) => void {\r\n\t\treturn this.unexpectedErrorHandler;\r\n\t}\r\n\r\n\tonUnexpectedError(error: any): void {\r\n\t\tthis.unexpectedErrorHandler(error);\r\n\t\tthis.emit(error);\r\n\t}\r\n\r\n\tpublic safeCall<T>(fn: () => T, context: string, fallback?: T): T | undefined {\r\n\t\ttry {\r\n\t\t\treturn fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t\tthis.onUnexpectedError(error);\r\n\t\t\treturn fallback;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async safeCallAsync<T>(fn: () => Promise<T>, context: string, fallback?: T): Promise<T | undefined> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t\tthis.onUnexpectedError(error);\r\n\t\t\treturn fallback;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic safeCallSilent(fn: () => void, context: string): void {\r\n\t\ttry {\r\n\t\t\tfn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async safeCallSilentAsync<T>(fn: () => Promise<T>, context: string): Promise<T | undefined> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tpublic wrapSafe<TArgs extends any[], TReturn>(\r\n\t\tfn: (...args: TArgs) => TReturn,\r\n\t\tcontext: string\r\n\t): (...args: TArgs) => TReturn | undefined {\r\n\t\treturn (...args: TArgs) => {\r\n\t\t\ttry {\r\n\t\t\t\treturn fn(...args);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tthis.logIfDev(context, error);\r\n\t\t\t\tthis.onUnexpectedError(error);\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic wrapSafeAsync<TArgs extends any[], TReturn>(\r\n\t\tfn: (...args: TArgs) => Promise<TReturn>,\r\n\t\tcontext: string\r\n\t): (...args: TArgs) => Promise<TReturn | undefined> {\r\n\t\treturn async (...args: TArgs) => {\r\n\t\t\ttry {\r\n\t\t\t\treturn await fn(...args);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tthis.logIfDev(context, error);\r\n\t\t\t\tthis.onUnexpectedError(error);\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport const errorHandler = new ErrorHandler();\r\n\r\n\r\nexport function setErrorConsoleLogging(enabled: boolean): void {\r\n\terrorHandler.setConsoleLogging(enabled);\r\n}\r\n\r\nexport function safeCall<T>(fn: () => T, context: string, fallback?: T): T | undefined {\r\n\treturn errorHandler.safeCall(fn, context, fallback);\r\n}\r\n\r\nexport function safeCallAsync<T>(fn: () => Promise<T>, context: string, fallback?: T): Promise<T | undefined> {\r\n\treturn errorHandler.safeCallAsync(fn, context, fallback);\r\n}\r\n\r\n\r\nexport function safeCallSilent<T>(fn: () => T, context: string): void {\r\n\terrorHandler.safeCallSilent(fn, context);\r\n}\r\n\r\n\r\nexport function safeCallSilentAsync<T>(fn: () => Promise<T>, context: string): Promise<T | undefined> {\r\n\treturn errorHandler.safeCallSilentAsync(fn, context);\r\n}\r\n\r\nexport function wrapSafe<TArgs extends any[], TReturn>(\r\n\tfn: (...args: TArgs) => TReturn,\r\n\tcontext: string\r\n): (...args: TArgs) => TReturn | undefined {\r\n\treturn errorHandler.wrapSafe(fn, context);\r\n}\r\n\r\nexport function wrapSafeAsync<TArgs extends any[], TReturn>(\r\n\tfn: (...args: TArgs) => Promise<TReturn>,\r\n\tcontext: string\r\n): (...args: TArgs) => Promise<TReturn | undefined> {\r\n\treturn errorHandler.wrapSafeAsync(fn, context);\r\n}\r\n\r\nexport function setUnexpectedErrorHandler(handler: (e: any) => void): void {\r\n\terrorHandler.setUnexpectedErrorHandler(handler);\r\n}\r\n","export type DevEvent = { type: string; payload?: any };\r\nexport type DevWarning = { code: string; message: string; details?: any };\r\n\r\nconst state = {\r\n enabled: false as boolean,\r\n listeners: new Set<(ev: DevEvent) => void>(),\r\n warnings: [] as DevWarning[],\r\n routes: null as any,\r\n};\r\n\r\n/** Dev modu: devtools açık ya da `globalThis.__MOTIF_DEV__ === true`. */\r\nexport function isDevLike(): boolean {\r\n return state.enabled || (globalThis as any).__MOTIF_DEV__ === true;\r\n}\r\n\r\nexport function isRequestedByFlag(): boolean {\r\n try {\r\n if (typeof window === 'undefined') return false;\r\n const w = window as any;\r\n if (w.__motif_DEVTOOLS === true) return true;\r\n if ((globalThis as any).__MOTIF_DEVTOOLS__ === true) return true;\r\n if ((globalThis as any).__MOTIF_DEVTOOLS_FLAG === true) return true;\r\n return false;\r\n } catch { return false; }\r\n}\r\n\r\nfunction exposeBus(visible: boolean) {\r\n try {\r\n if (visible) (window as any).__motifDevBus = { on, emit, warn, getWarnings, isEnabled, setRoutes, getRoutes };\r\n else delete (window as any).__motifDevBus;\r\n } catch { }\r\n}\r\n\r\nexport function ensureDevtoolsFlagInitialized() {\r\n if (state.enabled) return;\r\n state.enabled = isRequestedByFlag();\r\n if (state.enabled) exposeBus(true);\r\n}\r\n\r\nexport function setDevtoolsEnabled(enabled: boolean) {\r\n state.enabled = enabled || isRequestedByFlag();\r\n exposeBus(state.enabled);\r\n}\r\n\r\nexport function isEnabled(): boolean { return state.enabled; }\r\n\r\nexport function on(listener: (ev: DevEvent) => void): () => void {\r\n state.listeners.add(listener);\r\n return () => { state.listeners.delete(listener); };\r\n}\r\n\r\nexport function emit(type: string, payload?: any) {\r\n const ev: DevEvent = { type, payload };\r\n for (const l of state.listeners) {\r\n try { l(ev); } catch { }\r\n }\r\n try {\r\n const bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n if (bus && typeof bus.publish === 'function') {\r\n bus.publish('devtools:' + type, payload);\r\n }\r\n } catch { }\r\n}\r\n\r\nexport function warn(code: string, message: string, details?: any) {\r\n if (!isDevLike()) return;\r\n const w: DevWarning = { code, message, details };\r\n state.warnings.push(w);\r\n try { if (typeof console !== 'undefined') details === undefined ? console.warn(`[motifjs] ${code}: ${message}`) : console.warn(`[motifjs] ${code}: ${message}`, details); } catch { }\r\n emit('warning', w);\r\n}\r\n\r\nexport function getWarnings(): DevWarning[] { return state.warnings.slice(); }\r\n\r\nexport function setRoutes(routes: any) { state.routes = routes; }\r\nexport function getRoutes(): any { return state.routes; }\r","import { errorHandler } from \"./ErrorHandler\";\nimport { warn as devWarn } from \"../devtools/devbus\";\n\nexport const motifMessages = {\n MJX101: (tag: string) => `dom.createElement('${tag}'): no document is available (no DOM environment).`,\n MJX102: (description: string) => `Invalid element selector \"${description}\".`,\n MJX103: (tag: string) => `dom.createElementNS('${tag}') failed.`,\n MJX104: () => `Skipped inserting a component into the DOM because it contains its own parent.`,\n MJX105: () => `Applying router link classes failed.`,\n MJX106: () => `The placeholder parent changed; rebuilding the component.`,\n MJX107: () => `Disposing a child component failed.`,\n MJX108: () => `Component is disposed; the result of doWork was discarded.`,\n MJX109: () => `A content block child was removed because its content body is being disposed.`,\n MJX110: (ms: number) => `Lazy timeout: the component did not load within ${ms} ms.`,\n MJX111: () => `Lazy aborted: loading the component was cancelled.`,\n MJX112: (depth: number) => `resolveComponent: the factory chain exceeded ${depth} levels; a factory may be returning itself.`,\n MJX113: () => `The transport slot has no parent; mount the slot before transporting into it.`,\n MJX114: () => `Placing the navigation target into its host failed.`,\n MJX115: () => `Disposing the previous navigation target failed.`,\n MJX116: (ms: number) => `Timeout: the listener guard did not settle within ${ms} ms.`,\n MJX117: () => `Detaching a control failed.`,\n MJX118: () => `The onRemove callback failed while detaching a control.`,\n MJX119: () => `Moving a fragment's DOM range stopped: its end marker was not found (possible infinite loop).`,\n MJX120: () => `Scanning a fragment's DOM range stopped: its end marker was not found (possible infinite loop).`,\n MJX121: (compiled: number, runtime: number) => `This code was compiled for compiler contract ${compiled}, but the @motifx/core runtime implements contract ${runtime}. Install matching versions of @motifx/compiler and @motifx/core, and rebuild packages that ship compiled JSX.`,\n MJX122: (hook: string) => `The component ${hook} hook threw.`,\n MJX123: (event: string) => `The '${event}' event handler threw.`,\n MJX124: (key: string) => `A spread object on a DOM tag cannot set ${key}; the key was ignored. Write it on the tag, or use x-html, for HTML you trust.`,\n MJX125: (key: string) => `A spread object on a DOM tag cannot set a javascript: URL on '${key}'; the value was ignored. Write the attribute on the tag if it is intended.`,\n MJX126: () => `Lazy: loading the component failed and no Fallbackview is set; the host was cleared.`,\n MJX127: (got: string) => got === 'module'\n ? `The loaded module has no default export. Export the component as default, or map it: () => import('./X').then(m => m.X).`\n : `The loaded value is not a component (got ${got}). Return a component class, a function component, an Options API factory or a component instance.`,\n MJX128: (cls: string, member: string, how: 'method' | 'field' | 'replaced') => how === 'method'\n ? `${cls} overrides ${member} without calling super.${member}; MotifJS relies on this ComponentBase member. Rename your member, or call super.${member} in the override.`\n : how === 'field'\n ? `${cls} defines '${member}' as an instance field, which hides the ComponentBase member MotifJS relies on. Rename your field.`\n : `${cls} replaces '${member}', which MotifJS created for the component (a class field or an assignment with that name). Rename your member.`,\n\n MJX201: () => `ListBinding: renderFn must return a component instance, a component class, or a factory function.`,\n MJX202: (key: unknown, index: number) => `ListBinding: duplicate key \"${String(key)}\" at index ${index}. Rows are matched by the item object, not by key, so rendering is not affected; keep keys unique so they identify items.`,\n MJX203: (max: number) => `An effect ran ${max} times in one flush and keeps triggering itself; it is skipped for the rest of this flush. It probably writes a value it reads (for example state.n++). Wrap the write in untracked(...).`,\n MJX204: () => `A component reached a text binding and was not written to the DOM. For a template prop that can change later, write a getter: {() => props.tpl}. Templates that are ready at setup also work as {props.tpl}.`,\n MJX205: () => `Virtualization: the watch callback threw.`,\n MJX206: () => `Virtualization: autoRefresh stopped; dataRequest may be changing the reactive data it reads on every refresh.`,\n MJX207: () => `Virtualization: loading data failed.`,\n MJX208: () => `An effect threw.`,\n\n MJX301: (outlet: string, ms: number) => `RouterView outlet '${outlet}' was not built within ${ms} ms, so the route chain cannot be mounted. Does the layout component render a <RouterView>?`,\n MJX302: (name: string) => `Named route '${name}' was not found.`,\n MJX303: (chain: string) => `Redirect loop or too many redirects: ${chain}`,\n MJX304: () => `Route execution failed.`,\n MJX305: () => `The error fallback route failed.`,\n MJX306: (hook: string) => `The ${hook} hook threw.`,\n MJX307: () => `Disposing a route component failed.`,\n MJX308: () => `The stack navigation transition failed.`,\n MJX309: () => `Router is not initialized. Call useRouter() before navigating.`,\n MJX310: (parentPath: string) => `Route path cannot be empty; use '/' for the default child. Under parent \"${parentPath}\".`,\n MJX311: (path: string, parentPath: string) => `Child route path should start with '/': \"${path}\" under parent \"${parentPath}\".`,\n MJX312: (full: string) => `Child route path resolves to the same full path as its parent: \"${full}\".`,\n MJX313: (full: string) => `Multiple routes resolve to the same full path: \"${full}\".`,\n MJX314: (alias: string, parentPath: string) => `Child route alias should start with '/': \"${alias}\" under parent \"${parentPath}\".`,\n MJX315: (alias: string) => `Route alias resolves to the route's own path: \"${alias}\".`,\n MJX316: (alias: string) => `Multiple routes use the same alias: \"${alias}\".`,\n\n MJX401: (token: string) => `Service not registered for token: ${token}`,\n MJX402: (token: string) => `Async factory used with get() for token ${token}; use getAsync().`,\n MJX403: () => `Invalid service descriptor.`,\n MJX404: (chain: string) => `Cyclic dependency detected: ${chain}`,\n MJX405: () => `Only one ApplicationBuilder instance is allowed.`,\n MJX406: (selector: string) => `Application.run: host not found for selector: ${selector}`,\n MJX407: (token: string) => `getService: no ServiceProvider found for token '${token}'.`,\n MJX408: (token: string, reason: string) => `getService failed for token '${token}': ${reason}`,\n MJX409: (token: string) => `inject(${token}) was called outside a service construction; call it in a field initializer or constructor of a class the ServiceProvider creates.`,\n MJX410: (token: string, sources: string) => `Multiple sources provided for token '${token}': ${sources}. Resolution order is useValue > useFactory > useClass.`,\n MJX411: (token: string) => `'deps' must be an array for token '${token}'; the invalid deps are ignored.`,\n MJX413: (token: string) => `Service '${token}' is registered with a function that cannot be constructed. Use { useValue: fn } to provide the function itself or { useFactory: fn } to create the service.`,\n MJX414: (token: string, reason: string) => `FromService failed for token '${token}': ${reason}`,\n\n MJX501: () => `Disposable already disposed.`,\n MJX502: () => `Cannot register a disposable on itself.`,\n MJX503: () => `Errors were thrown while disposing a store.`,\n MJX504: () => `A disposable was added to a DisposableStore that is already disposed; the added object will leak.`,\n MJX505: () => `Cannot dispose a disposable on itself.`,\n MJX507: (name: string, limit: number, count: number) => `[${name}] potential listener LEAK: ${limit} listeners already; most frequent stack (${count}):`,\n\n MJX601: () => `Sequence contains no elements.`,\n MJX602: () => `Circuit is open.`,\n MJX603: () => `Bulkhead queue is full.`,\n MJX604: () => `Rate limit exceeded.`,\n MJX605: () => `Operation timed out.`,\n MJX607: () => `A history must be created with at least one entry.`,\n MJX608: () => `Method not implemented.`,\n MJX609: () => `OperationRunner: the operation threw.`,\n MJX610: () => `Matching the request path failed.`,\n MJX611: () => `The devtools panel failed to load.`,\n} satisfies Record<string, (...args: any[]) => string>;\n\nexport type MotifErrorCode = keyof typeof motifMessages;\ntype MessageArgs<C extends MotifErrorCode> = Parameters<(typeof motifMessages)[C]>;\n\nexport class MotifError extends Error {\n readonly code: MotifErrorCode;\n\n constructor(code: MotifErrorCode, message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'MotifError';\n this.code = code;\n }\n}\n\nexport function formatMotifMessage<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): string {\n return `[motifjs] ${code}: ${(motifMessages[code] as (...a: any[]) => string)(...args)}`;\n}\n\nexport function motifError<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): MotifError {\n return new MotifError(code, formatMotifMessage(code, ...args));\n}\n\nexport function reportError<C extends MotifErrorCode>(code: C, cause: unknown, ...args: MessageArgs<C>): void {\n errorHandler.report(new MotifError(code, formatMotifMessage(code, ...args), { cause }));\n}\n\nexport function callReported<C extends MotifErrorCode>(fn: () => unknown, code: C, ...args: MessageArgs<C>): void {\n try {\n const result: any = fn();\n if (result && typeof result.then === 'function') {\n result.then(undefined, (error: unknown) => reportError(code, error, ...args));\n }\n } catch (error) {\n reportError(code, error, ...args);\n }\n}\n\nexport function reportWarning<C extends MotifErrorCode>(code: C, args: MessageArgs<C>, details?: unknown): void {\n devWarn(code, (motifMessages[code] as (...a: any[]) => string)(...args), details);\n}\n","import { IDisposable } from \"./IDisposable\";\n\nexport interface IDisposableTracker {\n trackDisposable(disposable: IDisposable): void;\n setParent(child: IDisposable, parent: IDisposable | null): void;\n markAsDisposed(disposable: IDisposable): void;\n markAsSingleton(disposable: IDisposable): void;\n}\n\nclass DisposableCore {\n\n disposableTracker: IDisposableTracker | null = null;\n\n notifyCreated<T extends IDisposable>(target: T): T {\n this.disposableTracker?.trackDisposable(target);\n return target;\n }\n\n notifyDisposed(target: IDisposable): void {\n this.disposableTracker?.markAsDisposed(target);\n }\n\n notifyOwner(target: IDisposable, owner: IDisposable | null): void {\n this.disposableTracker?.setParent(target, owner);\n }\n\n toDisposable(fn: () => void): IDisposable {\n let pending = true;\n const handle: IDisposable = {\n dispose: () => {\n if (!pending) {\n return;\n }\n pending = false;\n this.notifyDisposed(handle);\n fn();\n }\n };\n return this.notifyCreated(handle);\n }\n}\n\nexport const disposableCore: DisposableCore = new DisposableCore();\n","import { IDisposable } from \"./IDisposable\";\r\nimport { disposableCore } from \"./DisposableCore\";\r\nimport { MotifError, formatMotifMessage, motifError, reportWarning } from \"../common/diagnostics\";\r\n\r\nexport class DisposableStore implements IDisposable {\r\n\r\n private readonly _items = new Set<IDisposable>();\r\n private _closed = false;\r\n\r\n constructor() {\r\n disposableCore.notifyCreated(this);\r\n }\r\n\r\n get isDisposed(): boolean {\r\n return this._closed;\r\n }\r\n\r\n add<T extends IDisposable>(item: T): T {\r\n if (!item) {\r\n return item;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX502');\r\n }\r\n disposableCore.notifyOwner(item, this);\r\n if (this._closed) {\r\n reportWarning('MJX504', [], new Error().stack);\r\n } else {\r\n this._items.add(item);\r\n }\r\n return item;\r\n }\r\n\r\n delete<T extends IDisposable>(item: T): void {\r\n if (!item) {\r\n return;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX505');\r\n }\r\n this._items.delete(item);\r\n item.dispose();\r\n }\r\n\r\n detach<T extends IDisposable>(item: T): void {\r\n if (item && this._items.delete(item)) {\r\n disposableCore.notifyOwner(item, null);\r\n }\r\n }\r\n\r\n clear(): void {\r\n if (this._items.size === 0) {\r\n return;\r\n }\r\n const failures: unknown[] = [];\r\n for (const item of this._items) {\r\n try {\r\n item?.dispose();\r\n } catch (error) {\r\n failures.push(error);\r\n }\r\n }\r\n this._items.clear();\r\n if (failures.length === 1) {\r\n throw failures[0];\r\n }\r\n if (failures.length > 1) {\r\n throw new MotifError('MJX503', formatMotifMessage('MJX503'), { cause: new AggregateError(failures) });\r\n }\r\n }\r\n\r\n dispose(): void {\r\n if (this._closed) {\r\n return;\r\n }\r\n disposableCore.notifyDisposed(this);\r\n this._closed = true;\r\n this.clear();\r\n }\r\n}\r\n","import { motifError, reportWarning } from \"../common/diagnostics\";\nimport { IDisposable } from \"./IDisposable\";\nimport { disposableCore } from \"./DisposableCore\";\nimport { DisposableStore } from \"./DisposableStore\";\n\nexport abstract class Disposable implements IDisposable {\n\n protected readonly _disposables = new DisposableStore();\n\n constructor() {\n disposableCore.notifyCreated(this);\n disposableCore.notifyOwner(this._disposables, this);\n }\n\n public dispose(): void {\n disposableCore.notifyDisposed(this);\n const owned = this._disposables;\n if (owned && typeof owned.dispose === 'function') {\n owned.dispose();\n } else {\n reportWarning('MJX501', [], { disposable: this });\n }\n }\n\n protected _register<T extends IDisposable>(item: T): T {\n if ((item as unknown) === this) {\n throw motifError('MJX502');\n }\n return this._disposables.add(item);\n }\n}\n","\r\n\r\nexport const Flags = {\r\n IS_REACTIVE: Symbol.for('motif.isReactive'),\r\n IS_READONLY: Symbol.for('motif.isReadonly'),\r\n IS_SUPERFICIAL: Symbol.for('motif.isSuperficial'),\r\n RAW: Symbol.for('motif.raw'),\r\n GET_SETUP: Symbol.for('motif.getSetup'),\r\n} as const;\r\n\r\nexport const enum TargetType {\r\n SYSTEM = 0,\r\n INVALID = SYSTEM,\r\n COMMON = 0b01,\r\n COLLECTION = 0b10\r\n}\r\n\r\nexport const ITERATE_KEY = Symbol('')\r\nexport let followTracking: boolean = true;\r\nexport let arrayScope: { enabled: boolean, key: string } = { enabled: false, key: '' };\r\n\r\n\r\nexport function getRaw<T>(value: T): T {\r\n let current = value;\r\n while (current && (current as any)[Flags.RAW]) {\r\n current = (current as any)[Flags.RAW];\r\n }\r\n return current;\r\n}\r\n\r\nexport function isReadonly(candidate: unknown): boolean {\r\n if (candidate == null) return false;\r\n return Boolean((candidate as any)[Flags.IS_READONLY]);\r\n}\r\n\r\nexport function hasOwn(target: object, key: PropertyKey): boolean {\r\n return Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nexport function isObject(value: unknown): value is Record<any, any> {\r\n return typeof value === 'object' && value !== null;\r\n}\r\n\r\nconst intrinsicSymbols: ReadonlySet<symbol> = new Set(\r\n Object.values(Object.getOwnPropertyDescriptors(Symbol))\r\n .map(descriptor => descriptor.value)\r\n .filter((value): value is symbol => typeof value === 'symbol')\r\n);\r\n\r\nexport function isIntrinsicSymbol(key: unknown): boolean {\r\n return typeof key === 'symbol' && intrinsicSymbols.has(key);\r\n}\r\n\r\nconst proxyableTags = new Map<string, TargetType>([\r\n ['[object Object]', TargetType.COMMON],\r\n ['[object Array]', TargetType.COMMON],\r\n ['[object Map]', TargetType.COLLECTION],\r\n ['[object Set]', TargetType.COLLECTION],\r\n ['[object WeakMap]', TargetType.COLLECTION],\r\n ['[object WeakSet]', TargetType.COLLECTION],\r\n]);\r\n\r\nexport function getTargetType(value: any): TargetType {\r\n var proto = Object.getPrototypeOf(value);\r\n var cname = \"\";\r\n if (proto && proto.constructor) {\r\n cname = proto.constructor.name;\r\n }\r\n if ((cname === \"Control\" || cname == \"RouteManager\" || cname == \"ServiceManager\")) {\r\n return TargetType.SYSTEM;\r\n }\r\n if (!Object.isExtensible(value)) {\r\n return TargetType.INVALID;\r\n }\r\n return proxyableTags.get(Object.prototype.toString.call(value)) ?? TargetType.INVALID;\r\n}\r\n\r\nconst canonicalIndex = /^(?:0|[1-9]\\d*)$/;\r\nexport const isNumericKey = (key: unknown): boolean =>\r\n typeof key === 'string' && canonicalIndex.test(key) && String(Number(key)) === key;\r\n\r\n\r\nconst savedTracking: boolean[] = [];\r\nlet trackingDepth = 0;\r\n\r\nfunction enterTracking(enabled: boolean) {\r\n savedTracking[trackingDepth++] = followTracking;\r\n followTracking = enabled;\r\n}\r\n\r\nexport function pauseTracking() {\r\n enterTracking(false);\r\n}\r\n\r\nexport function enableTracking() {\r\n enterTracking(true);\r\n}\r\n\r\nexport function resetTracking() {\r\n followTracking = trackingDepth > 0 ? savedTracking[--trackingDepth] : true;\r\n}\r\n\r\nconst arrayStack: { enabled: boolean, key: string }[] = []\r\n\r\n\r\nexport function addArrayStack(key: any) {\r\n arrayStack.push(arrayScope)\r\n arrayScope.enabled = true;\r\n arrayScope.key = key;\r\n}\r\nexport function removeArrayStack() {\r\n const last = arrayStack.pop();\r\n if (arrayStack.length > 0) {\r\n arrayScope = last === undefined ? { enabled: false, key: '' } : last;\r\n } else {\r\n arrayScope = { enabled: false, key: '' }\r\n }\r\n\r\n}\r\n\r\n\r\ndeclare const opaqueBrand: unique symbol\r\ndeclare const shallowBrand: unique symbol\r\n\r\ntype OpaqueState = Function | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | string | number | boolean | { [opaqueBrand]?: true }\r\n\r\ntype DeepState<T> = T extends OpaqueState ? T\r\n : T extends Array<any> ? { [Index in keyof T]: DeepState<T[Index]> }\r\n : T extends object & { [shallowBrand]?: never } ? { [Key in keyof T]: Key extends symbol ? T[Key] : DeepState<T[Key]> }\r\n : T\r\n\r\ninterface BoxedPrimitive<T> { value: T }\r\n\r\nexport type UnwrapValueRefs<T> = T extends number | string | boolean ? BoxedPrimitive<T> : DeepState<T>;\r\n\r\n\r\nexport var setupListener: any;\r\nexport var setupActive = false;\r\n\r\nexport function listenSetup(key: any) {\r\n setupListener = key;\r\n setupActive = true;\r\n}\r\n\r\nexport function closeSetup() {\r\n setupListener = null;\r\n setupActive = false;\r\n}","import { ComponentBase, motifFragment, resolveComponent } from \"../\";\r\nimport { effect, untracked } from \"../\";\r\nimport { getRaw } from \"../store/common\";\r\nimport { motifError, reportWarning } from \"../common/diagnostics\";\r\nimport { IBaseBinding } from \"./\";\r\n\r\n\r\nexport interface ListBindingOptions {\r\n reuse?: boolean;\r\n}\r\n\r\nexport class ListBinding implements IBaseBinding {\r\n propertyName: string = \"__list__\";\r\n dataSource: any;\r\n dataMember?: string | undefined;\r\n formatString?: string | undefined;\r\n converter?: ((value: any) => any) | undefined;\r\n converterBack?: ((value: any) => any) | undefined;\r\n updateMode?: \"onPropertyChanged\" | \"onValidation\" | \"never\" | undefined;\r\n private _isActive = false;\r\n private _effectCleanup?: () => void;\r\n private _rendered: ComponentBase[] = [];\r\n private _identityMap = new WeakMap<object, ComponentBase[]>();\r\n private container: ComponentBase = motifFragment('list-container');\r\n constructor(private component: ComponentBase,\r\n private itemsFn: () => any[] | Iterable<any>,\r\n private renderFn: (item: any, index: number) => ComponentBase,\r\n private options?: ListBindingOptions) {\r\n this.component.controls.add(this.container);\r\n\r\n }\r\n activate(): void { if (this._isActive) return; this._isActive = true; this._setupBinding(); }\r\n deactivate(): void {\r\n if (!this._isActive) return;\r\n this._isActive = false;\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n this._disposeAll();\r\n }\r\n reActivate(): void {\r\n\r\n this.deactivate();\r\n this.activate();\r\n }\r\n private _disposeAll() {\r\n this._rendered.forEach(c => { try { c.dispose && c.dispose(); } catch { } });\r\n this._rendered = [];\r\n this._identityMap = new WeakMap();\r\n }\r\n private _toArray(src: any): any[] {\r\n if (!src) return [];\r\n if (Array.isArray(src)) return src;\r\n if (typeof src === 'function') return this._toArray(src());\r\n if (src[Symbol.iterator]) return Array.from(src as Iterable<any>);\r\n return [];\r\n }\r\n private _getComponentKey(comp: ComponentBase): any {\r\n try {\r\n const p: any = (comp as any).props;\r\n if (p && typeof p.indexkey === 'function') {\r\n return p.indexkey();\r\n }\r\n if (p && typeof p.indexkey !== 'undefined' && p.indexkey !== null) {\r\n return p.indexkey;\r\n }\r\n } catch { }\r\n try {\r\n const k = (comp as any).motif.options?.__key;\r\n if (typeof k !== 'undefined') return k;\r\n } catch { }\r\n return undefined;\r\n }\r\n\r\n private isPreCreated(comp: ComponentBase): boolean {\r\n return comp.element !== null || comp.parent !== null;\r\n }\r\n\r\n private _render(item: any, idx: number): ComponentBase {\r\n return untracked(() => {\r\n const rendered = this.renderFn(item, idx);\r\n return this.processRendered(rendered, item);\r\n });\r\n }\r\n\r\n private processRendered(rendered: any, item: any): ComponentBase {\r\n const component: ComponentBase = resolveComponent(rendered);\r\n if (!(component instanceof ComponentBase)) {\r\n throw motifError('MJX201');\r\n }\r\n\r\n try { (component as any)._base.itemRef = item; } catch { }\r\n try { (component.motif.options as any).__fromList = true; } catch { }\r\n\r\n if (typeof (component as any).__listAdopted === 'undefined') {\r\n (component as any).__listAdopted = component.parent !== null && component.parent !== undefined;\r\n }\r\n\r\n return component;\r\n }\r\n private olditems: any[] = [];\r\n\r\n private get _indexSensitive(): boolean {\r\n try { return this.renderFn.length >= 2; } catch { return true; }\r\n }\r\n\r\n private static _isPrimitive(v: any): boolean {\r\n return v === null || typeof v !== 'object';\r\n }\r\n\r\n private _setupBinding() {\r\n const update = () => {\r\n const source = this._toArray(this.itemsFn());\r\n const rawSource = getRaw(source);\r\n const count = source.length;\r\n let items: any[];\r\n if (rawSource === source) {\r\n items = source;\r\n } else {\r\n items = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n if (i in rawSource) items[i] = source[i];\r\n else void source[i];\r\n }\r\n }\r\n const prevItems = this.olditems;\r\n const prevComponents = this._rendered;\r\n if (this.olditems.length > 0) {\r\n const currentRaws = new Set<any>();\r\n for (let i = 0; i < count; i++) currentRaws.add(getRaw(items[i]));\r\n for (const old of this.olditems) {\r\n const raw = getRaw(old);\r\n if (!currentRaws.has(raw)) {\r\n const list = this._identityMap.get(raw);\r\n if (list) {\r\n this._identityMap.delete(raw);\r\n for (const component of list) {\r\n try { component.dispose(); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const newComponents: ComponentBase[] = [];\r\n const usedComponents = new Set<ComponentBase>();\r\n const seenKeys = new Map<any, number>();\r\n\r\n const claimed = new Set<ComponentBase>();\r\n const positionalReuse = new Map<number, ComponentBase>();\r\n const isReusable = (c: ComponentBase | undefined): c is ComponentBase =>\r\n !!c && !c.isDisposed && !claimed.has(c) && !(c as any).__listAdopted;\r\n\r\n const shared = Math.min(items.length, prevItems.length);\r\n for (let i = 0; i < shared; i++) {\r\n const it = items[i];\r\n if (!ListBinding._isPrimitive(it)) continue;\r\n if (!Object.is(prevItems[i], it)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n positionalReuse.set(i, comp);\r\n claimed.add(comp);\r\n }\r\n\r\n let valuePool: Map<any, ComponentBase[]> | null = null;\r\n if (!this._indexSensitive) {\r\n valuePool = new Map<any, ComponentBase[]>();\r\n for (let i = 0; i < prevItems.length; i++) {\r\n const prev = prevItems[i];\r\n if (!ListBinding._isPrimitive(prev)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n const queue = valuePool.get(prev);\r\n if (queue) queue.push(comp); else valuePool.set(prev, [comp]);\r\n }\r\n }\r\n\r\n const occurrences = new Map<object, number>();\r\n items.forEach((item, idx) => {\r\n let component: ComponentBase;\r\n if (typeof item === 'object' && item !== null) {\r\n const raw = getRaw(item);\r\n const occurrence = occurrences.get(raw) ?? 0;\r\n occurrences.set(raw, occurrence + 1);\r\n let list = this._identityMap.get(raw);\r\n if (!list) {\r\n list = [];\r\n this._identityMap.set(raw, list);\r\n }\r\n const existing = list[occurrence];\r\n if (existing && !existing.isDisposed) {\r\n component = existing;\r\n } else {\r\n component = this._render(item, idx);\r\n list[occurrence] = component;\r\n }\r\n }\r\n else {\r\n let reused = positionalReuse.get(idx);\r\n if (!reused && valuePool) {\r\n const queue = valuePool.get(item);\r\n if (queue && queue.length) {\r\n reused = queue.shift()!;\r\n claimed.add(reused);\r\n }\r\n }\r\n if (reused) {\r\n component = reused;\r\n } else {\r\n component = this._render(item, idx);\r\n }\r\n }\r\n const userKey = this._getComponentKey(component);\r\n if (userKey !== undefined && userKey !== null) {\r\n if (seenKeys.has(userKey)) {\r\n reportWarning('MJX202', [userKey, idx]);\r\n } else {\r\n seenKeys.set(userKey, idx);\r\n }\r\n }\r\n\r\n newComponents.push(component);\r\n usedComponents.add(component);\r\n });\r\n\r\n occurrences.forEach((count, raw) => {\r\n const list = this._identityMap.get(raw);\r\n if (list && list.length > count) list.length = count;\r\n });\r\n\r\n this._rendered.forEach(comp => {\r\n if (!usedComponents.has(comp) && !(comp as any).__listAdopted) {\r\n try { comp.dispose(); } catch { }\r\n }\r\n });\r\n\r\n this._syncContainer(newComponents);\r\n\r\n this._rendered = newComponents;\r\n this.olditems = items === source ? source.slice() : items;\r\n return count;\r\n };\r\n this._effectCleanup = effect(() => update());\r\n }\r\n\r\n private _syncContainer(newComponents: ComponentBase[]) {\r\n const controls = this.container.controls;\r\n const items = controls.items;\r\n\r\n if (items.length === 0) {\r\n for (const comp of newComponents) {\r\n try { controls.add(comp); } catch { }\r\n }\r\n return;\r\n }\r\n\r\n if (newComponents.length >= items.length) {\r\n let appendOnly = true;\r\n for (let i = 0; i < items.length; i++) {\r\n if (newComponents[i] !== items[i]) {\r\n appendOnly = false;\r\n break;\r\n }\r\n }\r\n\r\n if (appendOnly && newComponents.length > items.length) {\r\n const existing = new Set(items);\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n if (existing.has(newComponents[i])) {\r\n appendOnly = false;\r\n break;\r\n }\r\n existing.add(newComponents[i]);\r\n }\r\n }\r\n\r\n if (appendOnly) {\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n try { controls.add(newComponents[i]); } catch { }\r\n }\r\n return;\r\n }\r\n }\r\n\r\n const oldIndex = new Map<ComponentBase, number>();\r\n items.forEach((c, i) => oldIndex.set(c, i));\r\n const sources = newComponents.map(c => {\r\n const oi = oldIndex.get(c);\r\n return oi === undefined ? -1 : oi;\r\n });\r\n\r\n const stable = new Set(longestIncreasingIndices(sources));\r\n\r\n let anchor: ComponentBase | null = null;\r\n for (let i = newComponents.length - 1; i >= 0; i--) {\r\n const comp = newComponents[i];\r\n try {\r\n if (sources[i] === -1) {\r\n if (anchor) {\r\n const at = items.indexOf(anchor);\r\n controls.add(at >= 0 ? at : items.length, comp);\r\n } else {\r\n controls.add(comp);\r\n }\r\n } else if (!stable.has(i)) {\r\n controls.move(comp, anchor);\r\n }\r\n } catch { }\r\n anchor = comp;\r\n }\r\n }\r\n}\r\n\r\nfunction longestIncreasingIndices(sources: number[]): number[] {\r\n const predecessors = new Array<number>(sources.length).fill(-1);\r\n const tails: number[] = [];\r\n\r\n for (let i = 0; i < sources.length; i++) {\r\n const v = sources[i];\r\n if (v === -1) continue;\r\n if (tails.length === 0 || sources[tails[tails.length - 1]] < v) {\r\n predecessors[i] = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n tails.push(i);\r\n continue;\r\n } \r\n let lo = 0, hi = tails.length - 1;\r\n while (lo < hi) {\r\n const mid = (lo + hi) >> 1;\r\n if (sources[tails[mid]] < v) lo = mid + 1; else hi = mid;\r\n }\r\n if (v < sources[tails[lo]]) {\r\n predecessors[i] = lo > 0 ? tails[lo - 1] : -1;\r\n tails[lo] = i;\r\n }\r\n }\r\n\r\n const result: number[] = [];\r\n let u = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n while (u !== -1) {\r\n result.push(u);\r\n u = predecessors[u];\r\n }\r\n return result.reverse();\r\n}"," \r\nexport class NameValuePair<KType, VType> {\r\n public Key!: KType;\r\n public value!: VType;\r\n}; ","export class List<T>{\r\n \r\n public ItemAdded!: (i: T) => void;\r\n public ItemAddedBefore!: (i: T) => void;\r\n public ItemSplice!: (start:any, i: T) => void;\r\n private __list: Array<T> = [];\r\n private _map = new Set<T>();\r\n public Dispose() {\r\n this.__list = [];\r\n\r\n }\r\n public Add(item: T): number {\r\n this._map.add(item);\r\n var i = this.__list.push(item) - 1;\r\n if (this.ItemAdded != undefined) { this.ItemAdded(item); };\r\n return i;\r\n }\r\n\r\n public AddBefore(item: T) {\r\n this._map.add(item);\r\n var i = this.__list.unshift(item) - 1;\r\n if (this.ItemAddedBefore != undefined) { this.ItemAddedBefore(item); };\r\n return i;\r\n\r\n }\r\n\r\n public Insert(start:any, item: T) {\r\n this._map.add(item);\r\n var i = this.__list.splice(start, 0, item);\r\n if (this.ItemSplice != undefined) { this.ItemSplice(start, item); };\r\n return i;\r\n }\r\n\r\n public get items(): Array<T> {\r\n return this.__list;\r\n }\r\n\r\n public clear(): T[] {\r\n this._map.clear();\r\n this.__list.splice(0);\r\n this.__list = [];\r\n return this.__list;\r\n };\r\n public get count(): number { \r\n return this.__list.length;\r\n };\r\n\r\n public remove(item: T): T[] {\r\n const index = this.__list.indexOf(item);\r\n if (index === -1) return [];\r\n this._map.delete(item);\r\n return this.__list.splice(index, 1);\r\n };\r\n\r\n public indexOf(item: T): number {\r\n return this.__list.indexOf(item)\r\n }\r\n\r\n public FindFromKey(key: any, value: any): T[] {\r\n return this.__list.filter(i => { return (i as any)[key] === value })\r\n }\r\n\r\n public removeIndex(index: number): T[] {\r\n var deleted = this.__list.splice(index, 1);\r\n deleted.forEach(t => {\r\n this._map.delete(t);\r\n })\r\n return deleted;\r\n };\r\n\r\n public has(item: T): boolean {\r\n return this._map.has(item);\r\n }\r\n\r\n public item(index: number): T {\r\n return this.__list[index];\r\n }\r\n\r\n public forEach(callbackfn: (value: T, index: number, array: T[]) => void) {\r\n\r\n this.__list?.forEach(callbackfn);\r\n }\r\n\r\n public ReverseClone(): Array<T> {\r\n return this.__list.slice().reverse();\r\n }\r\n\r\n public filter(callbackfn: (value: T, index: number, array: T[]) => boolean ): Array<T> {\r\n return this.__list.filter(callbackfn);\r\n }\r\n};","\r\n\r\nimport { NodeTypes } from \".\";\r\nimport { reportError } from \"./diagnostics\";\r\nimport { Component, ComponentBase } from \"../component\";\r\nimport { IDisposable } from \"../disposable\";\r\n\r\nexport const toKebab = (str: string) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? \"-\" : \"\") + $.toLowerCase());\r\n\r\n\r\nexport function toDisposable(fn: () => void): IDisposable {\r\n let pending = true;\r\n return {\r\n dispose() {\r\n if (!pending) {\r\n return;\r\n }\r\n pending = false;\r\n fn();\r\n }\r\n };\r\n}\r\n\r\n\r\n\r\nexport function advanceif(source: ComponentBase, ...targets: NodeTypes[]) {\r\n if (targets.indexOf(source.element.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function advelif(source: any, ...targets: NodeTypes[]) {\r\n if (source && targets.indexOf(source.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isAnchorElement(source: ComponentBase) {\r\n return source.element.nodeName == 'A';\r\n}\r\n\r\nexport function isElement(source: ComponentBase) {\r\n return source.element.nodeType == NodeTypes.ELEMENT_NODE;\r\n}\r\nexport function isview(source: ComponentBase) {\r\n return source.element.nodeName == 'view';\r\n}\r\n\r\n\r\n\r\nexport function isComponent(source: any) {\r\n return source instanceof ComponentBase\r\n}\r\nexport function createComponent(tag: any, options: any) {\r\n return new Component(tag, options)\r\n}\r\n\r\n\r\nexport function normalizePath(p: string): string {\r\n return '/' + p.replace(/^\\/+|\\/+$/g, '');\r\n}\r\nexport function startsWithPath(requestPath: string, prefix: string): boolean {\r\n const rp = normalizePath(requestPath);\r\n const pp = normalizePath(prefix);\r\n return rp === pp || rp.startsWith(pp + '/');\r\n}\r\n\r\nexport function isExactMatch(requestPath: string, target: string): boolean {\r\n try {\r\n const strip = (p: string) => {\r\n return p.trim()\r\n .split(/[?#]/)[0]\r\n .replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n }\r\n return strip(requestPath) === strip(target);\r\n } catch (error) {\r\n reportError('MJX610', error);\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport function findAppendableComponent(component: ComponentBase): ComponentBase | null {\r\n try {\r\n if (component.isDisposed) return null;\r\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\r\n return component;\r\n } else if (component.parent) {\r\n return findAppendableComponent(component.parent);\r\n }\r\n } catch (error) {\r\n throw error;\r\n }\r\n return null;\r\n}","import { reportWarning } from \"./diagnostics\";\n\nexport class LeakMonitor {\n\n private readonly _origins = new Map<string, number>();\n private _quietChecks = 0;\n\n constructor(readonly threshold: number, readonly name: string) { }\n\n check(size: number): (() => void) | undefined {\n if (this.threshold <= 0 || size < this.threshold) {\n return undefined;\n }\n const origin = new Error().stack ?? '';\n this._origins.set(origin, (this._origins.get(origin) ?? 0) + 1);\n\n this._quietChecks--;\n if (this._quietChecks <= 0) {\n this._quietChecks = this.threshold / 2;\n const [stack, count] = this._busiestOrigin();\n reportWarning('MJX507', [this.name, size, count], stack);\n }\n\n return () => {\n this._origins.set(origin, (this._origins.get(origin) ?? 0) - 1);\n };\n }\n\n private _busiestOrigin(): [string, number] {\n let busiest: [string, number] = ['', 0];\n for (const entry of this._origins) {\n if (entry[1] > busiest[1]) {\n busiest = entry;\n }\n }\n return busiest;\n }\n}\n","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} ","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","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","import { motifError } from \"./diagnostics\";\nexport interface Group<TKey, TElement> {\n key: TKey;\n items: TElement[];\n}\n\nfunction compareKeys<TKey>(a: TKey, b: TKey): number {\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\nexport class Query<T> implements Iterable<T> {\n private readonly source: readonly T[];\n\n constructor(source: Iterable<T>) {\n this.source = Array.isArray(source) ? source : Array.from(source);\n }\n\n static from<T>(source: Iterable<T>): Query<T> {\n return new Query(source);\n }\n\n where(predicate: (item: T, index: number) => boolean): Query<T> {\n return new Query(this.source.filter(predicate));\n }\n\n select<TResult>(selector: (item: T, index: number) => TResult): Query<TResult> {\n return new Query(this.source.map(selector));\n }\n\n orderBy<TKey>(keySelector: (item: T) => TKey): Query<T> {\n return new Query([...this.source].sort((a, b) => compareKeys(keySelector(a), keySelector(b))));\n }\n\n orderByDescending<TKey>(keySelector: (item: T) => TKey): Query<T> {\n return new Query([...this.source].sort((a, b) => compareKeys(keySelector(b), keySelector(a))));\n }\n\n distinctBy<TKey>(keySelector: (item: T) => TKey): Query<T> {\n const seen = new Set<TKey>();\n return new Query(this.source.filter(item => {\n const key = keySelector(item);\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n }));\n }\n\n groupBy<TKey>(keySelector: (item: T) => TKey): Query<Group<TKey, T>> {\n const map = new Map<TKey, T[]>();\n for (const item of this.source) {\n const key = keySelector(item);\n const group = map.get(key);\n if (group) {\n group.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return new Query(Array.from(map, ([key, items]) => ({ key, items })));\n }\n\n first(): T {\n if (this.source.length === 0) {\n throw motifError('MJX601');\n }\n return this.source[0];\n }\n\n firstOrDefault(): T | undefined {\n return this.source[0];\n }\n\n any(predicate?: (item: T) => boolean): boolean {\n return predicate ? this.source.some(predicate) : this.source.length > 0;\n }\n\n all(predicate: (item: T) => boolean): boolean {\n return this.source.every(predicate);\n }\n\n aggregate<TResult>(seed: TResult, func: (acc: TResult, item: T) => TResult): TResult {\n return this.source.reduce(func, seed);\n }\n\n toArray(): T[] {\n return [...this.source];\n }\n\n [Symbol.iterator](): Iterator<T> {\n return this.source[Symbol.iterator]();\n }\n}\n","import { reportWarning } from \"./diagnostics\";\nimport { isDevLike } from \"../devtools/devbus\";\n\nexport const COMPILER_CONTRACT = 1;\n\nconst reported = new Set<number>();\nconst pending = new Set<number>();\n\nexport function motifCompiled(contract: number): void {\n if (contract === COMPILER_CONTRACT || reported.has(contract)) return;\n if (!isDevLike()) {\n pending.add(contract);\n return;\n }\n pending.delete(contract);\n reported.add(contract);\n reportWarning('MJX121', [contract, COMPILER_CONTRACT]);\n}\n\nexport function flushCompilerContractWarnings(): void {\n for (const contract of Array.from(pending)) motifCompiled(contract);\n}\n","\nexport * from \"./NameValuePair\";\nexport * from \"./List\";\nexport * from \"./functions\";\nexport * from \"./ErrorHandler\";\nexport * from \"./LeakMonitor\";\nexport * from \"./Dictionary\";\nexport * from \"./IAttribute\";\nexport * from \"./LinkedList\";\nexport type { TransitionProps, CSSTransitionInfo, TransitionPhase } from \"./transition\";\nexport type { TransitionMode } from \"./transitionRegistry\";\nexport * from \"./bind\";\nexport * from \"./Query\";\nexport { MotifError } from \"./diagnostics\";\nexport { motifCompiled } from \"./compilerContract\";\nexport type { MotifErrorCode } from \"./diagnostics\";\n\n\nexport enum NodeTypes {\n ELEMENT_NODE = 1,\n ATTRIBUTE_NODE = 2,\n TEXT_NODE = 3,\n CDATA_SECTION_NODE = 4,\n ENTITY_REFERENCE_NODE = 5,\n /**deprecated */\n ENTITY_NODE = 6,\n /**deprecated */\n PROCESSING_INSTRUCTION_NODE = 7,\n COMMENT_NODE = 8,\n DOCUMENT_NODE = 9,\n DOCUMENT_TYPE_NODE = 10,\n DOCUMENT_FRAGMENT_NODE = 11,\n /**deprecated */\n NOTATION_NODE = 12\n}\n","\r\nimport { LeakMonitor } from \"../common\";\r\nimport { reportError, reportWarning } from \"../common/diagnostics\";\r\nimport { getRaw, followTracking } from \"./common\";\r\n\r\nexport type EffectFn = () => void;\r\n\r\nclass Effect {\r\n deps: [object, string | symbol][] = [];\r\n active = true;\r\n running = false;\r\n scheduler?: () => void;\r\n constructor(public fn: EffectFn, private callback?: (value: unknown) => void) { }\r\n run() {\r\n let value: unknown;\r\n if (!this.active || this.running) return;\r\n cleanup(this);\r\n effectStack.push(this);\r\n this.running = true;\r\n try {\r\n value = this.fn();\r\n } finally {\r\n effectStack.pop();\r\n this.running = false;\r\n if (this.callback) {\r\n this.callback(value);\r\n }\r\n }\r\n }\r\n stop() {\r\n this.active = false;\r\n cleanup(this);\r\n }\r\n}\r\n\r\nconst depMap = new WeakMap<object, Map<string | symbol, Set<Effect>>>();\r\nconst effectStack: Effect[] = [];\r\nconst effectQueue = new Set<Effect>();\r\nlet isFlushing = false;\r\n\r\nlet leakEnabled = false;\r\nlet leakThreshold = -1;\r\nlet leakMonitor: LeakMonitor | undefined;\r\nconst leakCleanups = new WeakMap<Set<Effect>, Map<Effect, () => void>>();\r\nexport function configureReactivityLeakMonitor(opts: { enabled?: boolean; threshold?: number; name?: string } = {}) {\r\n leakEnabled = !!opts.enabled;\r\n leakThreshold = typeof opts.threshold === 'number' ? opts.threshold : (leakEnabled ? 200 : -1);\r\n leakMonitor = leakEnabled && leakThreshold > 0 ? new LeakMonitor(leakThreshold, opts.name ?? 'reactivity-core') : undefined;\r\n}\r\n\r\nexport function track(target: object, key: string | symbol) {\r\n if (!followTracking) return;\r\n const rawTarget = getRaw(target as any);\r\n const effect = effectStack[effectStack.length - 1];\r\n if (!effect || !effect.active) return;\r\n let deps = depMap.get(rawTarget);\r\n if (!deps) depMap.set(rawTarget, (deps = new Map()));\r\n let dep = deps.get(key);\r\n if (!dep) deps.set(key, (dep = new Set()));\r\n if (!dep.has(effect)) {\r\n dep.add(effect);\r\n effect.deps.push([rawTarget, key]);\r\n if (leakEnabled && leakMonitor && leakThreshold > 0) {\r\n try {\r\n const cleanup = leakMonitor.check(dep.size);\r\n if (cleanup) {\r\n let m = leakCleanups.get(dep);\r\n if (!m) { m = new Map(); leakCleanups.set(dep, m); }\r\n m.set(effect, cleanup);\r\n }\r\n } catch { }\r\n }\r\n }\r\n}\r\n\r\nexport function trigger(target: object, key: string | symbol) {\r\n const rawTarget = getRaw(target as any);\r\n const deps = depMap.get(rawTarget);\r\n if (!deps) return;\r\n const effects = deps.get(key);\r\n if (!effects) return;\r\n let queued = false;\r\n effects.forEach(effect => {\r\n if (!effect.active) return;\r\n if (effect.scheduler) {\r\n runReported(effect.scheduler);\r\n return;\r\n }\r\n effectQueue.add(effect);\r\n queued = true;\r\n });\r\n if (queued) flushEffects();\r\n}\r\n\r\nfunction runReported(fn: () => unknown) {\r\n try {\r\n fn();\r\n } catch (error) {\r\n reportError('MJX208', error);\r\n }\r\n}\r\n\r\nconst MAX_EFFECT_RUNS_PER_FLUSH = 50;\r\n\r\nfunction flushEffects() {\r\n if (isFlushing) return;\r\n isFlushing = true;\r\n Promise.resolve().then(() => {\r\n const runCounts = new Map<Effect, number>();\r\n try {\r\n while (effectQueue.size > 0) {\r\n const batch = Array.from(effectQueue);\r\n effectQueue.clear();\r\n for (const e of batch) {\r\n const runs = (runCounts.get(e) ?? 0) + 1;\r\n runCounts.set(e, runs);\r\n if (runs > MAX_EFFECT_RUNS_PER_FLUSH) {\r\n if (runs === MAX_EFFECT_RUNS_PER_FLUSH + 1) {\r\n reportWarning('MJX203', [MAX_EFFECT_RUNS_PER_FLUSH], { fn: String((e as any).fn).slice(0, 200) });\r\n }\r\n continue;\r\n }\r\n runReported(() => e.run());\r\n }\r\n }\r\n } finally {\r\n effectQueue.clear();\r\n isFlushing = false;\r\n }\r\n });\r\n}\r\n\r\nfunction cleanup(effect: Effect) {\r\n for (const [target, key] of effect.deps) {\r\n const keyMap = depMap.get(target);\r\n if (!keyMap) continue;\r\n const depSet = keyMap.get(key);\r\n if (!depSet) continue;\r\n depSet.delete(effect);\r\n try {\r\n const map = leakCleanups.get(depSet);\r\n const fn = map?.get(effect);\r\n if (fn) { try { fn(); } catch { } map!.delete(effect); }\r\n } catch { }\r\n if (depSet.size === 0) {\r\n keyMap.delete(key);\r\n }\r\n if (keyMap.size === 0) {\r\n depMap.delete(target);\r\n }\r\n }\r\n effect.deps = [];\r\n}\r\n\r\n\r\nexport function effect(fn: EffectFn, onValueChanged?: <T>(value: T) => void) {\r\n const e = new Effect(fn, onValueChanged);\r\n runReported(() => e.run());\r\n return () => e.stop();\r\n}\r\n\r\nexport interface ScheduledEffect {\r\n run(): void;\r\n stop(): void;\r\n}\r\n\r\nexport function createScheduledEffect(fn: EffectFn, scheduler: () => void): ScheduledEffect {\r\n const e = new Effect(fn);\r\n e.scheduler = scheduler;\r\n return {\r\n run: () => { runReported(() => e.run()); },\r\n stop: () => e.stop(),\r\n };\r\n}\r\n\r\nexport interface AsyncTrackingToken { effect: Effect | undefined; pushed: boolean }\r\nfunction popAsyncTracking(t: AsyncTrackingToken) {\r\n if (!t.pushed) return;\r\n t.pushed = false;\r\n const i = effectStack.lastIndexOf(t.effect!);\r\n if (i >= 0) effectStack.splice(i, 1);\r\n}\r\nexport const asyncTracking = {\r\n capture(): AsyncTrackingToken {\r\n return { effect: effectStack[effectStack.length - 1], pushed: false };\r\n },\r\n suspend<T>(t: AsyncTrackingToken, value: T): T {\r\n popAsyncTracking(t);\r\n return value;\r\n },\r\n resume<T>(t: AsyncTrackingToken, value: T): T {\r\n if (t.effect && t.effect.active && !t.pushed) {\r\n effectStack.push(t.effect);\r\n t.pushed = true;\r\n }\r\n return value;\r\n },\r\n end(t: AsyncTrackingToken): void {\r\n popAsyncTracking(t);\r\n },\r\n};\r\n\r\nconst UNTRACKED_SENTINEL = new Effect(() => { });\r\nUNTRACKED_SENTINEL.active = false;\r\nexport function untracked<T>(fn: () => T): T {\r\n effectStack.push(UNTRACKED_SENTINEL);\r\n try {\r\n return fn();\r\n } finally {\r\n effectStack.pop();\r\n }\r\n}\r\n\r\n\r\n\r\nexport function debugGetDeps(target: object): Map<string | symbol, Set<Effect>> | undefined {\r\n const rawTarget = getRaw(target as any);\r\n return depMap.get(rawTarget);\r\n}\r\nexport function debugGetDepMap(): WeakMap<object, Map<string | symbol, Set<Effect>>> {\r\n return depMap;\r\n}\r\n","\r\nimport { ComponentBase } from \"../\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { BindingFormatInfo, IBaseBinding } from \"./\";\r\n\r\n\r\nexport function isCheckedInput(el: any): boolean {\r\n if (!el || el.tagName !== 'INPUT') return false;\r\n const t = String(el.type || '').toLowerCase();\r\n return t === 'checkbox' || t === 'radio';\r\n}\r\n\r\nexport function isNumericInput(el: any): boolean {\r\n if (!el || el.tagName !== 'INPUT') return false;\r\n const t = String(el.type || '').toLowerCase();\r\n return t === 'number' || t === 'range';\r\n}\r\n\r\nexport function readModelValue(el: any): any {\r\n if (!el) return undefined;\r\n if (isCheckedInput(el)) return !!el.checked;\r\n if (isNumericInput(el)) {\r\n const raw = el.value;\r\n if (raw === '' || raw == null) return null;\r\n const n = typeof el.valueAsNumber === 'number' ? el.valueAsNumber : Number(raw);\r\n return Number.isFinite(n) ? n : null;\r\n }\r\n return el.value;\r\n}\r\n\r\nexport class Binding implements IBaseBinding {\r\n propertyName: string;\r\n dataSource: any;\r\n dataMember?: string;\r\n formatString?: string;\r\n converter?: (value: any) => any;\r\n converterBack?: (value: any) => any;\r\n setter?: (value: any) => void;\r\n formatInfo?: BindingFormatInfo;\r\n updateMode: 'onPropertyChanged' | 'onValidation' | 'never' = 'onPropertyChanged';\r\n\r\n private _isActive: boolean = false;\r\n private _component: ComponentBase;\r\n private _effectCleanup?: () => void;\r\n private _memberPath: string[] | null = null;\r\n private _memberPathSource?: string;\r\n\r\n constructor(\r\n component: ComponentBase,\r\n propertyName: string,\r\n dataSource: any,\r\n dataMember?: string,\r\n formatString?: string,\r\n formatInfo?: BindingFormatInfo\r\n ) {\r\n this._component = component;\r\n this.propertyName = propertyName;\r\n this.dataSource = dataSource;\r\n this.dataMember = dataMember;\r\n this.formatString = formatString;\r\n this.formatInfo = formatInfo;\r\n this._memberPath = dataMember ? dataMember.split('.') : null;\r\n this._memberPathSource = dataMember;\r\n }\r\n\r\n activate(): void {\r\n if (this._isActive) return;\r\n\r\n this._isActive = true;\r\n this._setupBinding();\r\n }\r\n\r\n deactivate(): void {\r\n\r\n if (!this._isActive) return;\r\n\r\n this._isActive = false;\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n }\r\n\r\n reActivate(): void {\r\n\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n this._setupBinding();\r\n }\r\n\r\n private functional(value: any) {\r\n if (typeof value === 'function') {\r\n value = this.functional(value());\r\n }\r\n return value;\r\n }\r\n private _setupBinding(): void {\r\n const getValue = () => {\r\n\r\n let value: any = this.dataSource;\r\n if (this.dataMember) {\r\n if (this._memberPathSource !== this.dataMember) {\r\n this._memberPath = this.dataMember.split('.');\r\n this._memberPathSource = this.dataMember;\r\n }\r\n for (const prop of this._memberPath!) {\r\n if (value != null) {\r\n value = value[prop];\r\n }\r\n }\r\n }\r\n value = this.functional(value);\r\n if (this.formatString && value != null) {\r\n value = this._applyFormat(value, this.formatString);\r\n }\r\n\r\n if (this.converter) {\r\n value = this.converter(value);\r\n }\r\n\r\n return value;\r\n };\r\n\r\n const updateTarget = () => {\r\n const value = getValue();\r\n this._updateComponentProperty(value);\r\n return value;\r\n };\r\n\r\n this._effectCleanup = effect(() => {\r\n return updateTarget();\r\n });\r\n\r\n }\r\n\r\n private _updateComponentProperty(value: any): void {\r\n\r\n switch (this.propertyName.toLowerCase()) {\r\n case 'wait': {\r\n const comp = this._component;\r\n if (!comp || comp.isDisposed) return;\r\n const isWaiting = !!value;\r\n if (!comp.isBuilt) {\r\n comp.isWait = isWaiting;\r\n } else {\r\n if (isWaiting) {\r\n comp.isWait = true;\r\n } else {\r\n comp.isWait = false;\r\n }\r\n }\r\n break;\r\n }\r\n case 'display': {\r\n const comp = this._component;\r\n if (!comp || comp.isDisposed) return;\r\n const isWaiting = value;\r\n if (!comp.isBuilt) {\r\n comp.isWait = !isWaiting;\r\n } else {\r\n if (isWaiting) {\r\n comp.isWait = false;\r\n } else {\r\n comp.isWait = true;\r\n }\r\n }\r\n break;\r\n }\r\n case 'text':\r\n case 'textcontent':\r\n this._component.setText(value);\r\n break;\r\n case 'innerhtml':\r\n case 'html':\r\n this._component.element.innerHTML = (value);\r\n this._component.motif.trigger('htmlChanged', { value: value });\r\n break;\r\n case 'visible':\r\n case 'visibility':\r\n if (value) {\r\n this._component.motif.show();\r\n } else {\r\n this._component.motif.hide();\r\n }\r\n break;\r\n case 'style':\r\n if (typeof value === 'object') {\r\n this._component.style(value);\r\n }\r\n break;\r\n case 'model': {\r\n\r\n const el: any = this._component.element;\r\n if (!el) break;\r\n if (isCheckedInput(el)) {\r\n el.checked = !!value;\r\n } else {\r\n el.value = value == null ? '' : value;\r\n }\r\n break;\r\n }\r\n case 'when':\r\n\r\n break;\r\n default:\r\n if (this._component.element && this.propertyName in this._component.element) {\r\n (this._component.element as any)[this.propertyName] = value;\r\n } else if (this.propertyName in this._component) {\r\n (this._component as any)[this.propertyName] = value;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private _applyFormat(value: any, format: string): string {\r\n const locale = this.formatInfo?.locale;\r\n const currency = this.formatInfo?.currency;\r\n if (typeof value === 'number') {\r\n if (format.includes('C') || format.includes('c')) {\r\n if (currency) {\r\n return new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currency\r\n }).format(value);\r\n }\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2\r\n }).format(value);\r\n }\r\n if (format.includes('P') || format.includes('p')) {\r\n return new Intl.NumberFormat(locale, {\r\n style: 'percent'\r\n }).format(value);\r\n }\r\n if (format.includes('N') || format.includes('n')) {\r\n const decimals = parseInt(format.match(/\\d+/)?.[0] || '2');\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: decimals,\r\n maximumFractionDigits: decimals\r\n }).format(value);\r\n }\r\n }\r\n\r\n if (value instanceof Date) {\r\n if (format.includes('d')) {\r\n return value.toLocaleDateString(locale);\r\n }\r\n if (format.includes('t')) {\r\n return value.toLocaleTimeString(locale);\r\n }\r\n }\r\n\r\n return value?.toString() || '';\r\n }\r\n}","import { Flags } from \"../store/common\";\r\n\r\nconst RAW_KEY = Flags.RAW;\r\n\r\nfunction isPrototypeObject(o: any): boolean {\r\n return Object.prototype.hasOwnProperty.call(o, 'constructor') && typeof o.constructor === 'function' && o.constructor.prototype === o;\r\n}\r\n\r\nfunction overridesBelow(instance: any, proto: any, name: string): boolean {\r\n let p = Object.getPrototypeOf(instance);\r\n while (p && p !== proto) {\r\n if (Object.prototype.hasOwnProperty.call(p, name)) return true;\r\n p = Object.getPrototypeOf(p);\r\n }\r\n return false;\r\n}\r\n\r\nexport function lazyBindMethods(proto: any, names: readonly string[]): void {\r\n for (const name of names) {\r\n let fn = proto[name];\r\n if (typeof fn !== 'function') continue;\r\n Object.defineProperty(proto, name, {\r\n configurable: true,\r\n enumerable: false,\r\n get() {\r\n if (this === proto || isPrototypeObject(this)) return fn;\r\n const target = this[RAW_KEY] ?? this;\r\n const bound = fn.bind(target);\r\n if (!overridesBelow(target, proto, name)) {\r\n try {\r\n Object.defineProperty(target, name, { value: bound, writable: true, configurable: true, enumerable: true });\r\n } catch { }\r\n }\r\n return bound;\r\n },\r\n set(value: unknown) {\r\n if (this === proto && typeof value === 'function') { fn = value; return; }\r\n Object.defineProperty(this, name, { value, writable: true, configurable: true, enumerable: true });\r\n },\r\n });\r\n }\r\n}\r\n","\r\n\r\nimport { Component, ComponentBase, Frame, motifFragment, toDisposable } from \"../\";\r\nimport { dom } from \"../\";\r\nimport { effect, untracked } from \"../\";\r\nimport { Binding, BindingFormatInfo, IBaseBinding, IBindingCollection, ListBinding, ListBindingOptions, readModelValue } from \"./\";\r\nimport { reportError } from \"../common/diagnostics\";\r\nimport { lazyBindMethods } from \"../common/lazyBind\";\r\n\r\nfunction resolveValue(value: any): any {\r\n return typeof value === 'function' ? resolveValue(value()) : value;\r\n}\r\n\r\nfunction isWritablePathKey(target: object, key: string): boolean {\r\n if (key === '__proto__') return false;\r\n if (key === 'constructor' || key === 'prototype') return Object.prototype.hasOwnProperty.call(target, key);\r\n return true;\r\n}\r\n\r\nexport class BindingCollection implements IBindingCollection {\r\n private _items: IBaseBinding[] = [];\r\n private _component: ComponentBase;\r\n private _branchScope: Array<() => void> | null = null;\r\n\r\n constructor(component: ComponentBase) {\r\n this._component = component;\r\n }\r\n private _own(stop: () => void) {\r\n if (this._branchScope) {\r\n this._branchScope.push(stop);\r\n return;\r\n }\r\n this._component.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n when(computeFn: () => any, renderFn: (isTrue: boolean) => any) {\r\n\r\n var frame = new Frame();\r\n this._component.controls.add(frame);\r\n let shown = false;\r\n let last: any;\r\n const stop = effect(computeFn, (value) => {\r\n if (shown && (Object.is(last, value) || (!last && !value))) return;\r\n shown = true;\r\n last = value;\r\n untracked(() => {\r\n if (value) {\r\n frame.navigate(renderFn(value as any))\r\n } else {\r\n frame.navigate(motifFragment())\r\n }\r\n });\r\n });\r\n this._own(stop);\r\n\r\n return null as any;\r\n\r\n }\r\n\r\n get items(): IBaseBinding[] {\r\n return [...this._items];\r\n }\r\n\r\n text(cb: any) {\r\n this.add(\"textContent\", cb);\r\n };\r\n\r\n\r\n value(fn: () => any) {\r\n this.add(\"value\", fn);\r\n };\r\n\r\n add(propertyName: string, dataSource: any): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n add(binding: IBaseBinding): IBaseBinding;\r\n add(...args: any[]): IBaseBinding {\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object' && 'propertyName' in args[0]) {\r\n\r\n binding = args[0];\r\n } else {\r\n\r\n const [propertyName, dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n\r\n this._items.push(binding);\r\n\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n wait(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n display(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', () => !resolveValue(predicate()));\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n html(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'innerHTML', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n method(cb: () => any) {\r\n const host = this._component;\r\n let text: ComponentBase | null = null;\r\n let frame: Frame | null = null;\r\n const place = (next: ComponentBase, previous: ComponentBase | null) => {\r\n if (!previous) {\r\n host.controls.add(next);\r\n return;\r\n }\r\n host.controls.insert(host.controls.items.indexOf(previous), next);\r\n host.controls.remove(previous);\r\n };\r\n const stop = effect(cb, (result) => {\r\n if (host.isDisposed) return;\r\n const isText = typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean' || typeof result === 'bigint';\r\n if (isText || (text && result == null)) {\r\n if (text) {\r\n text.setText(result as any);\r\n return;\r\n }\r\n text = new Component(dom.createTextNode(result as any));\r\n place(text, frame);\r\n frame = null;\r\n return;\r\n }\r\n if (!frame) {\r\n frame = new Frame();\r\n place(frame, text);\r\n text = null;\r\n }\r\n frame.navigate(result == null ? motifFragment() : result as any);\r\n });\r\n host.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n ternary(conditionFn: () => any, trueFn: (frame: Frame) => any, falseFn: (frame: Frame) => any) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n this._ternaryCallTop(\r\n conditionFn,\r\n () => { trueFn(frame); },\r\n () => { falseFn(frame); }\r\n );\r\n return null as any;\r\n }\r\n\r\n private _ternarySchedule(condFn: () => any, onTrue: () => void, onFalse: () => void, defer: (run: () => void) => void) {\r\n let first = true;\r\n let last: any;\r\n let stopped = false;\r\n let inner: Array<() => void> = [];\r\n const stopInner = () => {\r\n const list = inner;\r\n inner = [];\r\n for (const stop of list) {\r\n try { stop(); } catch { }\r\n }\r\n };\r\n const stopEffect = effect(condFn, (condition) => {\r\n if (!first && Object.is(last, condition)) return;\r\n last = condition;\r\n const run = () => {\r\n stopInner();\r\n const outer = this._branchScope;\r\n this._branchScope = inner;\r\n try {\r\n if (condition) { onTrue(); } else { onFalse(); }\r\n } finally {\r\n this._branchScope = outer;\r\n }\r\n };\r\n if (first) {\r\n first = false;\r\n untracked(run);\r\n return;\r\n }\r\n defer(() => { if (!stopped && !this._component.isDisposed) run(); });\r\n });\r\n this._own(() => {\r\n stopped = true;\r\n stopEffect();\r\n stopInner();\r\n });\r\n }\r\n private ternaryCall(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => queueMicrotask(run));\r\n }\r\n private _ternaryCallTop(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => setTimeout(run, 0));\r\n }\r\n\r\n watch(cb: () => any) {\r\n const ef = effect(() => {\r\n cb();\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n }\r\n remove(binding: IBaseBinding): void {\r\n const index = this._items.indexOf(binding);\r\n if (index > -1) {\r\n this._items.splice(index, 1);\r\n binding.deactivate();\r\n }\r\n }\r\n\r\n clear(): void {\r\n this._items.forEach(binding => (binding as Binding).deactivate());\r\n this._items = [];\r\n }\r\n\r\n activateAll(): void {\r\n this._items.forEach(binding => {\r\n binding.activate();\r\n });\r\n }\r\n\r\n model(dataSource: any): IBaseBinding;\r\n model(dataSource: any, dataMember: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n model(getter: () => any, setter: (value: any) => void): IBaseBinding;\r\n model(binding: IBaseBinding): IBaseBinding;\r\n model(...args: any[]): IBaseBinding {\r\n\r\n var tn = '';\r\n if (this._component.element) {\r\n tn = (this._component.element as HTMLElement).tagName;\r\n }\r\n var propertyName = 'value';\r\n switch (tn.toLowerCase()) {\r\n case 'input':\r\n\r\n propertyName = 'model';\r\n break;\r\n case 'select':\r\n propertyName = 'value';\r\n break;\r\n case 'textarea':\r\n propertyName = 'value';\r\n break;\r\n case 'img':\r\n propertyName = 'src';\r\n break;\r\n case 'audio':\r\n propertyName = 'src';\r\n break;\r\n case 'video':\r\n propertyName = 'src';\r\n break;\r\n default:\r\n\r\n }\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object') {\r\n binding = args[0];\r\n } else if (typeof args[0] === 'function' && typeof args[1] === 'function') {\r\n binding = new Binding(this._component, propertyName, args[0]);\r\n binding.setter = args[1];\r\n } else {\r\n const [dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n const lowerTag = tn.toLowerCase();\r\n if (lowerTag === 'input' || lowerTag === 'select' || lowerTag === 'textarea') {\r\n const writeBack = () => {\r\n try {\r\n const el: any = this._component.element;\r\n if (!el) return;\r\n\r\n let value: any = readModelValue(el);\r\n const b: any = binding;\r\n if (typeof b.converterBack === 'function') {\r\n value = b.converterBack(value);\r\n }\r\n if (typeof b.setter === 'function') {\r\n b.setter(value);\r\n return;\r\n }\r\n const member: string | undefined = b.dataMember;\r\n const source = b.dataSource;\r\n if (member && source != null) {\r\n\r\n const path = member.split('.');\r\n let target: any = source;\r\n for (let i = 0; i < path.length && target != null; i++) {\r\n const key = path[i];\r\n if (!isWritablePathKey(target, key)) return;\r\n if (i === path.length - 1) {\r\n target[key] = value;\r\n } else {\r\n target = target[key];\r\n }\r\n }\r\n } else if (source != null && typeof source === 'object' && 'value' in source) {\r\n\r\n source.value = value;\r\n }\r\n } catch { /* ignore */ }\r\n };\r\n\r\n this._component.motif.on('input' as any, writeBack as any);\r\n this._component.motif.on('change' as any, writeBack as any);\r\n }\r\n\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n\r\n deactivateAll(): void {\r\n this._items.forEach(binding => binding.deactivate());\r\n this._items = [];\r\n }\r\n\r\n reActivateAll(): void {\r\n for (const binding of [...this._items]) {\r\n if (typeof binding.reActivate !== 'function') continue;\r\n try {\r\n binding.reActivate();\r\n } catch (error) {\r\n reportError('MJX208', error);\r\n }\r\n }\r\n }\r\n\r\n switchCase(\r\n discriminatorFn: () => any,\r\n cases: Record<string | number, (frame: Frame) => any>,\r\n defaultFn?: (frame: Frame) => any\r\n ) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n var currentValue: any;\r\n var defaultRunned = false;\r\n const ef = effect(discriminatorFn, (value) => {\r\n if (currentValue == value) return;\r\n currentValue = value;\r\n const caseKey = String(value);\r\n if (Object.prototype.hasOwnProperty.call(cases, caseKey)) {\r\n cases[caseKey](frame);\r\n defaultRunned = false;\r\n } else if (defaultFn) {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n defaultFn(frame);\r\n } else {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n frame.navigate(motifFragment());\r\n }\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n\r\n return null as any;\r\n }\r\n}\r\n\r\nlazyBindMethods(BindingCollection.prototype, [\r\n 'add', 'remove', 'clear', 'activateAll', 'deactivateAll', 'reActivateAll',\r\n 'when', 'text', 'value', 'list', 'loop', 'method', 'watch', 'display', 'wait',\r\n 'ternaryCall', '_ternaryCallTop'\r\n]);","import { errorHandler } from \"../common/ErrorHandler\";\nimport { IDisposable } from \"../disposable/IDisposable\";\nimport { DisposableStore } from \"../disposable/DisposableStore\";\nimport { Event } from \"./Event\";\n\ninterface Subscription<T> {\n handler: (value: T) => unknown;\n active: boolean;\n}\n\ninterface Delivery<T> {\n targets: Subscription<T>[];\n value: T;\n next: number;\n}\n\nexport class Emitter<T> {\n\n private _subscriptions: Subscription<T>[] = [];\n private _delivery: Delivery<T> | undefined;\n private _subscribe: Event<T> | undefined;\n private _disposed = false;\n\n get event(): Event<T> {\n if (!this._subscribe) {\n this._subscribe = (listener, thisArgs, disposables) => {\n if (this._disposed) {\n return { dispose() { } };\n }\n const subscription: Subscription<T> = {\n handler: thisArgs ? listener.bind(thisArgs) : listener,\n active: true\n };\n this._writable().push(subscription);\n const handle: IDisposable = { dispose: () => this._unsubscribe(subscription) };\n if (disposables instanceof DisposableStore) {\n disposables.add(handle);\n } else if (Array.isArray(disposables)) {\n disposables.push(handle);\n }\n return handle;\n };\n }\n return this._subscribe;\n }\n\n fire(value: T): void {\n this._resume();\n if (this._subscriptions.length === 0) {\n return;\n }\n this._delivery = { targets: this._subscriptions, value, next: 0 };\n this._resume();\n }\n\n dispose(): void {\n if (this._disposed) {\n return;\n }\n this._disposed = true;\n for (const subscription of this._subscriptions) {\n subscription.active = false;\n }\n this._subscriptions = [];\n this._delivery = undefined;\n }\n\n private _writable(): Subscription<T>[] {\n if (this._delivery && this._delivery.targets === this._subscriptions) {\n this._subscriptions = this._subscriptions.slice();\n }\n return this._subscriptions;\n }\n\n private _unsubscribe(subscription: Subscription<T>): void {\n if (!subscription.active) {\n return;\n }\n subscription.active = false;\n const list = this._writable();\n const index = list.indexOf(subscription);\n if (index !== -1) {\n list.splice(index, 1);\n }\n }\n\n private _resume(): void {\n const delivery = this._delivery;\n if (!delivery) {\n return;\n }\n while (delivery.next < delivery.targets.length) {\n const target = delivery.targets[delivery.next++];\n if (!target.active) {\n continue;\n }\n try {\n target.handler(delivery.value);\n } catch (error) {\n errorHandler.onUnexpectedError(error);\n }\n }\n if (this._delivery === delivery) {\n this._delivery = undefined;\n }\n }\n}\n","import { Emitter, Event as DelegateEvent } from \"../delegate\";\r\nimport { disposableCore, IDisposable } from \"../disposable\";\r\nimport { ComponentBase } from \"../\";\r\nimport { EventArgs } from \"./types\";\r\nimport { callReported } from \"../common/diagnostics\";\r\nimport { lazyBindMethods } from \"../common/lazyBind\";\r\n\r\nexport class ComponentEmiter {\r\n\r\n private _emitters?: Map<string, Emitter<EventArgs>>;\r\n private _sourceDisposables?: Map<string, Set<IDisposable>>;\r\n private _listenerDisposables?: Map<string, Map<Function, IDisposable[]>>;\r\n\r\n constructor(private component: ComponentBase) {\r\n }\r\n\r\n public hasListeners(eventName: string): boolean {\r\n return this._emitters !== undefined && this._emitters.has(eventName);\r\n }\r\n\r\n public fire(eventName: string, args: EventArgs) {\r\n\r\n try {\r\n const e = this._emitters?.get(eventName.toLowerCase());\r\n if (e) {\r\n e.fire(args);\r\n }\r\n } catch { }\r\n }\r\n\r\n public on(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n\r\n try {\r\n this.createEvent(event, cb);\r\n } catch {\r\n }\r\n }\r\n public off(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const lower = String(event).toLowerCase();\r\n const map = this._listenerDisposables?.get(lower);\r\n if (!map) return this;\r\n const list = map.get(cb);\r\n map.delete(cb);\r\n list?.forEach(d => { try { d.dispose(); } catch { } });\r\n return this;\r\n }\r\n private getOrCreateEmitter(name: string): Emitter<EventArgs> {\r\n const emitters = this._emitters ??= new Map();\r\n let e = emitters.get(name);\r\n if (!e) {\r\n e = new Emitter<EventArgs>();\r\n emitters.set(name, e);\r\n }\r\n return e;\r\n }\r\n\r\n private createEvent(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const full = String(event);\r\n const lowerFull = full.toLowerCase();\r\n const hook = lowerFull.startsWith('on') ? 'x:' + lowerFull.slice(2) : lowerFull;\r\n const invoke = (e: EventArgs) => {\r\n let res: any;\r\n callReported(() => {\r\n res = (cb as any).length <= 1 ? (cb as any)(e as any) : cb(this.component, e as any);\r\n return res;\r\n }, 'MJX122', hook);\r\n return res;\r\n };\r\n\r\n const emitter = this.getOrCreateEmitter(lowerFull);\r\n const disp = emitter.event((e) => invoke(e));\r\n\r\n const listeners = this._listenerDisposables ??= new Map();\r\n let map = listeners.get(lowerFull);\r\n if (!map) { map = new Map(); listeners.set(lowerFull, map); }\r\n const list = map.get(cb);\r\n if (list) { list.push(disp); } else { map.set(cb, [disp]); }\r\n return this;\r\n }\r\n\r\n public addSource(event: string, source: Emitter<EventArgs> | DelegateEvent<EventArgs>) {\r\n const lower = String(event).toLowerCase();\r\n const target = this.getOrCreateEmitter(lower);\r\n const forward = (ev: DelegateEvent<EventArgs>) => ev(e => target.fire(e));\r\n let disp: IDisposable | undefined;\r\n try {\r\n if (source instanceof Emitter) {\r\n disp = forward(source.event);\r\n } else {\r\n disp = forward(source);\r\n }\r\n } catch { }\r\n if (disp) {\r\n const sources = this._sourceDisposables ??= new Map();\r\n let set = sources.get(lower);\r\n if (!set) { set = new Set(); sources.set(lower, set); }\r\n set.add(disp);\r\n this.component.motif.register(disposableCore.toDisposable(() => {\r\n try { disp?.dispose(); } catch { }\r\n try { set?.delete(disp!); } catch { }\r\n }));\r\n }\r\n return this;\r\n }\r\n\r\n public clear(event?: string) {\r\n if (event) {\r\n const lower = event.toLowerCase();\r\n const srcs = this._sourceDisposables?.get(lower);\r\n srcs?.forEach(d => { try { d.dispose(); } catch { } });\r\n this._sourceDisposables?.delete(lower);\r\n const agg = this._emitters?.get(lower);\r\n try { agg?.dispose(); } catch { }\r\n this._emitters?.delete(lower);\r\n this._listenerDisposables?.delete(lower);\r\n } else if (this._emitters) {\r\n for (const key of Array.from(this._emitters.keys())) { this.clear(key); }\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nlazyBindMethods(ComponentEmiter.prototype, ['fire', 'on', 'off', 'createEvent', 'getOrCreateEmitter', 'addSource', 'clear']);","import { IAttribute } from \"../\";\r\nimport { ComponentBase } from \"../\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { Binding, IBaseBinding } from \"../bindings\";\r\nimport { isComponentLike } from \"./componentBase\";\r\n\r\nexport type ElementTypes = Node | Element | HTMLElement | Text | DocumentFragment | Comment | HTMLDivElement;\r\n\r\nconst METHOD_ATTRS = new Set<string>([\r\n 'focus', 'blur', 'click', 'pause', 'submit', 'reset',\r\n 'scrollTo', 'scrollBy', 'select', 'scrollIntoView',\r\n 'requestFullscreen', 'exitFullscreen',\r\n 'requestPointerLock', 'exitPointerLock',\r\n 'play', 'requestPictureInPicture', 'exitPictureInPicture',\r\n 'show', 'showModal', 'close', 'showPopover', 'hidePopover', 'togglePopover',\r\n 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load',\r\n 'setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek'\r\n]);\r\n\r\nconst OPEN_METHODS: Record<string, string> = { show: 'close', showModal: 'close', showPopover: 'hidePopover' };\r\nconst WHEN_TRUTHY_METHODS = new Set<string>(['close', 'hidePopover', 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load']);\r\nconst ARGUMENT_METHODS = new Set<string>(['setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek']);\r\n\r\nconst PROPERTY_FIRST = new Set<string>(['checked', 'selected', 'muted', 'indeterminate', 'srcObject']);\r\n\r\nexport class controlAttribute<ElementType extends ElementTypes> implements IAttribute<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase<ElementType, any>;\r\n private _attrMapStore?: Map<string | symbol, any>;\r\n private _watchersStore?: Map<string | symbol, { stop: () => void, binding?: IBaseBinding }>;\r\n constructor(parent: ComponentBase<ElementType, any>) {\r\n this._parent = parent;\r\n }\r\n private get _attrMap(): Map<string | symbol, any> { return this._attrMapStore ??= new Map(); }\r\n private get _watchers(): Map<string | symbol, { stop: () => void, binding?: IBaseBinding }> { return this._watchersStore ??= new Map(); }\r\n\r\n /** @deprecated Tek kaynak `_attrMap`; geriye dönük okuma için türetilmiş görünüm. */\r\n get attributes(): { name: string, value: any }[] {\r\n return Array.from(this._attrMap.entries(), ([name, value]) => ({ name: String(name), value }));\r\n }\r\n add(attribute: object | string): ComponentBase<ElementType, any> {\r\n if (attribute !== null && typeof attribute === 'object' && !Array.isArray(attribute)) {\r\n const bag = attribute as Record<string | symbol, any>;\r\n Reflect.ownKeys(bag).forEach(key => {\r\n this.parse(bag[key], key);\r\n });\r\n }\r\n return this._parent;\r\n\r\n };\r\n remove(key: string): ComponentBase<ElementType, any> {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n this._attrMap.delete(key);\r\n const el = this._getElement();\r\n if (el) {\r\n try { el.removeAttribute(key); } catch { }\r\n }\r\n return this._parent;\r\n };\r\n has(key: string): boolean {\r\n\r\n if (this._parent.element instanceof HTMLElement ||\r\n this._parent.element instanceof Element) {\r\n return this._parent.element.hasAttribute(key)\r\n }\r\n return false;\r\n };\r\n get(key: string): string | null {\r\n const el = this._getElement();\r\n if (el) {\r\n const v = el.getAttribute(key);\r\n if (v != null) return v;\r\n }\r\n const val = this._attrMap.get(key);\r\n return val == null ? null : String(val);\r\n };\r\n\r\n parse(values: any, key: any) {\r\n\r\n if (typeof values === 'function') {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n const run = () => effect(() => {\r\n const v = values();\r\n this._applyValue(key, v);\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__attr:${String(key)}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate() { stop(); },\r\n reActivate() {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n this._watchers.set(key, { stop, binding });\r\n } else {\r\n this._applyValue(key, values);\r\n }\r\n }\r\n\r\n private _applyValue(key: string | symbol, raw: any) {\r\n if (!key) return;\r\n const el = this._getElement();\r\n\r\n try {\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n }\r\n }\r\n } catch {\r\n }\r\n\r\n if (el && typeof key === 'string' && METHOD_ATTRS.has(key)) {\r\n const k = key as string;\r\n const method = (el as any)[k];\r\n if (typeof method === 'function') {\r\n const invoke = (fn: Function, arg?: any) => {\r\n try {\r\n if (Array.isArray(arg)) {\r\n fn.apply(el, arg);\r\n } else if (arg === undefined) {\r\n fn.call(el);\r\n } else {\r\n fn.call(el, arg);\r\n }\r\n } catch { }\r\n };\r\n const schedule = (fn: () => void) => { try { queueMicrotask(fn); } catch { try { setTimeout(fn, 0); } catch { } } };\r\n const cacheValue = () => {\r\n this._attrMap.set(key, raw);\r\n };\r\n\r\n if (k === 'focus') {\r\n const action = () => {\r\n if (raw === false) {\r\n const blur = (el as any).blur; if (typeof blur === 'function') invoke(blur);\r\n } else if (raw === true) {\r\n invoke(method);\r\n } else if (typeof raw === 'object' && raw != null && raw !== true) {\r\n invoke(method, raw);\r\n } else if (Array.isArray(raw)) {\r\n invoke(method, raw);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'blur' || k === 'click' || k === 'pause' || k === 'submit' || k === 'reset') {\r\n const action = () => { if (raw) invoke(method); };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'scrollTo' || k === 'scrollBy') {\r\n const action = () => {\r\n if (Array.isArray(raw) || (raw && typeof raw === 'object')) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'select') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n const inp: any = el as any;\r\n if (typeof inp.setSelectionRange === 'function') {\r\n try { inp.setSelectionRange(0, 0); } catch { }\r\n }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'scrollIntoView') {\r\n const action = () => {\r\n if (raw === true || raw == null) {\r\n invoke(method);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'requestFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n\r\n try {\r\n const d: any = document;\r\n if (d && d.fullscreenElement === el && typeof d.exitFullscreen === 'function') {\r\n d.exitFullscreen();\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitFullscreen === 'function') d.exitFullscreen();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'play') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n } else {\r\n const pause = (el as any).pause; if (typeof pause === 'function') invoke(pause);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'exitPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document as any;\r\n if (d && typeof d.exitPictureInPicture === 'function') {\r\n const p = d.exitPictureInPicture(); if (p && typeof p.then === 'function') p.catch(() => { });\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k in OPEN_METHODS) {\r\n const action = () => {\r\n if (raw === false) {\r\n const other = (el as any)[OPEN_METHODS[k]]; if (typeof other === 'function') invoke(other);\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'togglePopover') {\r\n const action = () => {\r\n if (typeof raw === 'boolean') {\r\n try { method.call(el, raw); } catch { }\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (WHEN_TRUTHY_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw === true) {\r\n invoke(method);\r\n } else if (raw) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (ARGUMENT_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw !== undefined && raw !== null && raw !== false) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n cacheValue();\r\n return;\r\n }\r\n }\r\n\r\n if (typeof key === 'string' && PROPERTY_FIRST.has(key)) {\r\n const target = (this._parent.element as any) ?? el;\r\n if (target) {\r\n try {\r\n if (key === 'srcObject') {\r\n target.srcObject = raw ?? null;\r\n } else {\r\n target[key] = !!raw;\r\n }\r\n } catch { }\r\n }\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n } else {\r\n this._attrMap.set(key, raw);\r\n }\r\n return;\r\n }\r\n\r\n if (typeof raw === 'boolean' && typeof key === 'string' && (key.startsWith('aria-') || key.startsWith('data-'))) {\r\n if (el) { try { (el as Element).setAttribute(key, String(raw)); } catch { } }\r\n this._attrMap.set(key, raw);\r\n return;\r\n }\r\n\r\n const isUnset = raw === undefined || raw === null || raw === false;\r\n const isBool = typeof raw === 'boolean';\r\n\r\n if (isUnset) {\r\n if (el) { try { (el as Element).removeAttribute(String(key)); } catch { } }\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n\r\n if (key === 'value') {\r\n try {\r\n const input = (this._parent.element as any) as HTMLInputElement;\r\n const next = String(raw);\r\n if (input.value !== next) { input.value = next; }\r\n } catch { }\r\n } else if (key === 'textContent' || key === 'innerText' || key === 'innerHTML') {\r\n if (isComponentLike(raw)) { this._parent.setText(raw as any); return; }\r\n try { (this._parent.element as any)[key as any] = raw; } catch { }\r\n } else {\r\n if (el) {\r\n try {\r\n if (isBool && raw === true) {\r\n (el as Element).setAttribute(String(key), '');\r\n } else {\r\n (el as Element).setAttribute(String(key), raw);\r\n }\r\n } catch { }\r\n }\r\n }\r\n\r\n this._attrMap.set(key, raw);\r\n }\r\n\r\n private _getElement(): Element | null {\r\n const el = this._parent?.element as unknown;\r\n if (el instanceof HTMLElement || el instanceof Element) return el as Element;\r\n return null;\r\n }\r\n\r\n public hasMethodState(key: string): boolean {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n return !!this.getMethodState(key);\r\n }\r\n\r\n public getMethodState(key: string): any {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n const k = String(key);\r\n switch (k) {\r\n case 'focus':\r\n case 'blur':\r\n try { return (document && (document as any).activeElement) === el; } catch { return false; }\r\n case 'select': {\r\n const inp: any = el as any;\r\n if (typeof inp.selectionStart === 'number' && typeof inp.selectionEnd === 'number') {\r\n try { return (inp.selectionEnd - inp.selectionStart) > 0; } catch { return false; }\r\n }\r\n return false;\r\n }\r\n case 'scrollIntoView':\r\n return false;\r\n case 'click':\r\n return false;\r\n default:\r\n return false;\r\n }\r\n }\r\n}","import { IClass } from \"../\";\r\nimport { ComponentBase } from \"./\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { IBaseBinding } from \"../bindings\";\r\n\r\n\r\n\r\nexport class controlClass<ElementType extends Element | HTMLElement | Text | DocumentFragment | Comment> implements IClass<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase;\r\n constructor(parent: ComponentBase) {\r\n this._parent = parent;\r\n }\r\n private _countsStore?: Map<string, number>;\r\n private _staticSetStore?: Set<string>;\r\n private _watchersStore?: Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }>;\r\n private _watcherSeq = 0;\r\n private get _counts(): Map<string, number> { return this._countsStore ??= new Map(); }\r\n private get _staticSet(): Set<string> { return this._staticSetStore ??= new Set(); }\r\n private get _watchers(): Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }> { return this._watchersStore ??= new Map(); }\r\n\r\n add(...values: (string | any[] | {} | Function)[]): ComponentBase {\r\n for (const value of values) {\r\n if (typeof value === 'function') {\r\n this._addReactive(value);\r\n } else if (Array.isArray(value)) {\r\n this._addStaticFromArray(value);\r\n } else if (value && typeof value === 'object') {\r\n this._addStaticFromObject(value as Record<string, any>);\r\n } else {\r\n var valueStr = String(value ?? '').trim();\r\n if (valueStr.split(' ').length > 1) {\r\n this._addStaticFromArray(valueStr.split(' '));\r\n } else {\r\n this._addStaticFromString(valueStr);\r\n }\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n remove(classNames: string | string[]): ComponentBase {\r\n const el = this._getElement();\r\n if (Array.isArray(classNames)) {\r\n const prev = new Set(this._staticSet);\r\n for (const cn of classNames) {\r\n for (const cls of this._splitClasses(String(cn))) {\r\n this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n } else {\r\n if (classNames === '**') {\r\n for (const [id, w] of Array.from(this._watchers.entries())) {\r\n const prev = new Set(w.set);\r\n this._applySourceDiff(id, prev, new Set(), el);\r\n try { w.binding && this._parent.bindings.remove(w.binding); } catch { }\r\n try { w.stop(); } catch { }\r\n this._watchers.delete(id);\r\n }\r\n const prev = new Set(this._staticSet);\r\n this._staticSet.clear();\r\n this._applySourceDiff('static', prev, new Set(), el);\r\n if (el) {\r\n try { el.removeAttribute('class'); } catch { /* ignore */ }\r\n }\r\n this._counts.clear();\r\n } else {\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(String(classNames))) {\r\n this._staticSet.delete(cls);\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n has(className: string): boolean {\r\n const el = this._getElement();\r\n const name = String(className ?? '').trim();\r\n if (!name) return false;\r\n return !!(el && el.classList.contains(name));\r\n }\r\n\r\n private _getElement(): (Element & { classList: DOMTokenList, className: string }) | null {\r\n const el: unknown = this._parent?.element;\r\n if (el instanceof Element) return el as any;\r\n return null;\r\n }\r\n\r\n private _splitClasses(input: string): string[] {\r\n return (input || '')\r\n .split(/\\s+/)\r\n .map(s => s.trim())\r\n .filter(s => s.length > 0);\r\n }\r\n\r\n private _normalizeToSet(values: any, key?: any): Set<string> {\r\n const result = new Set<string>();\r\n if (values == null) return result;\r\n if (typeof values === 'string') {\r\n for (const cls of this._splitClasses(values)) result.add(cls);\r\n } else if (Array.isArray(values)) {\r\n for (const item of values) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) result.add(cls);\r\n } else if (Array.isArray(item)) {\r\n for (const cls of this._normalizeToSet(item)) result.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof item === 'boolean') {\r\n if (key && item) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'object') {\r\n const obj = values as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'boolean') {\r\n if (key && values) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(values))) result.add(cls);\r\n }\r\n return result;\r\n }\r\n\r\n private _applySourceDiff(sourceId: string, prev: Set<string>, next: Set<string>, el: Element | null) {\r\n\r\n for (const cls of prev) {\r\n if (!next.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount - 1;\r\n if (now <= 0) {\r\n this._counts.delete(cls);\r\n if (el) { try { (el as any).classList.remove(cls); } catch { } }\r\n } else {\r\n this._counts.set(cls, now);\r\n }\r\n }\r\n }\r\n for (const cls of next) {\r\n if (!prev.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount + 1;\r\n this._counts.set(cls, now);\r\n if (prevCount === 0 && el) {\r\n try { (el as any).classList.add(cls); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _addStaticFromString(s: string) {\r\n if (!s) return;\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(s)) this._staticSet.add(cls);\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromArray(arr: any[]) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const item of arr) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) this._staticSet.add(cls);\r\n } else if (Array.isArray(item)) {\r\n const set = this._normalizeToSet(item);\r\n for (const cls of set) this._staticSet.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (typeof v === 'function') {\r\n const keys = this._splitClasses(String(k));\r\n for (const cls of keys) this._addReactive(obj[k], cls);\r\n } else {\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n\r\n }\r\n } else if (typeof item === 'boolean') {\r\n continue;\r\n } else if (typeof item === \"function\") {\r\n this._addReactive(item);\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) this._staticSet.add(cls);\r\n }\r\n }\r\n\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromObject(obj: Record<string, any>) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addReactive(fn: Function, key?: any) {\r\n const id = `fx#${++this._watcherSeq}`;\r\n const rec = { stop: () => { }, binding: undefined as undefined | IBaseBinding, set: new Set<string>() };\r\n const el = this._getElement();\r\n const run = () => effect(() => {\r\n let next: Set<string>;\r\n try {\r\n const v = fn();\r\n next = this._normalizeToSet(v, key);\r\n } catch {\r\n next = new Set();\r\n }\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, next, el);\r\n rec.set = next;\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__class:${id}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate: () => {\r\n stop();\r\n const el2 = this._getElement();\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, new Set(), el2);\r\n rec.set.clear();\r\n },\r\n reActivate: () => {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n rec.stop = stop;\r\n rec.binding = binding;\r\n this._watchers.set(id, rec);\r\n }\r\n}","import { CSSTransitionInfo, TransitionProps } from \"../common/transition\";\r\nimport { TransitionMode } from \"../common/transitionRegistry\";\r\n\r\nexport interface IHtmlElement extends HTMLElement { }\r\nexport interface IElement extends Node { }\r\nexport type ElementType = IElement | IHtmlElement | DocumentFragment | Comment | Text;\r\nexport type CustomParameters<T extends any> = T extends (...args: infer P) => any ? P[0] : never;\r\n\r\n\r\nexport type IsOptional<T> = T extends {} ? { [K in keyof T]-?: {} extends Pick<T, K> ? true : false }[keyof T] : false;\r\n\r\nexport type OptionalParams<T> = T extends null ? { params?: undefined } : T extends undefined ? { params?: undefined } : IsOptional<T> extends true ? T : T;\r\n\r\n\r\nexport interface EventArgs {\r\n cancel: boolean;\r\n}\r\n\r\nexport type RouterClassingSettings = {\r\n to: 'all' | 'active' | 'exact' | 'none',\r\n path: string,\r\n activeClass?: string,\r\n exactClass?: string,\r\n onActive?: () => void,\r\n offActive?: () => void,\r\n onExact?: () => void,\r\n offExact?: () => void,\r\n}\r\n\r\nexport interface ComponentBaseOptions<TProps> {\r\n props?: TProps;\r\n [key: string]: any;\r\n cache?: DocumentFragment;\r\n closeFragment?: Comment;\r\n transition: {\r\n transitionInfo: () => {\r\n in: CSSTransitionInfo,\r\n out: CSSTransitionInfo\r\n },\r\n name: string,\r\n mode?: TransitionMode,\r\n classes?: TransitionProps,\r\n activeCssCancel: (() => void) | null,\r\n activeCssPhase: 'enter' | 'leave' | null,\r\n cssProps: () => TransitionProps | null,\r\n skipNextLeave: boolean\r\n _suppressEnter: boolean\r\n _markedDirection: boolean\r\n in: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n out: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n enterTransition: (resolve: () => void) => Animation,\r\n leaveTransition: (resolve: () => void) => Animation,\r\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear?: boolean) => Animation,\r\n activeAnimations: Animation[],\r\n run: (keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions, resolve?: () => void) => Animation\r\n },\r\n set enableRouterClassing(value: RouterClassingSettings);\r\n getInstance(): any;\r\n hasEvent: (name: string) => boolean;\r\n}\r\n\r\n\r\nexport const shimAnimation: any = {\r\n cancel() { },\r\n addEventListener() { },\r\n removeEventListener() { },\r\n oncancel: null,\r\n playState: 'finished'\r\n};\r\n\r\n\r\nexport type AnyEvents = {\r\n [key: string]: any\r\n}\r\n\r\nexport type HtmlElementEvents = {\r\n [K in keyof IHtmlElement as K extends `on${string}` ?\r\n | Uncapitalize<K extends `on${infer EventName}` ? EventName : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture:self` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:self` : never>\r\n : 'x:building' | 'x:built' | 'x:initializing' | 'x:initialized' | 'x:disposing' | 'x:disposed' | 'x:config' | 'x:configured' | 'x:visibilityChanged' | 'x:mounted']\r\n : CustomParameters<IHtmlElement[K]> extends Event ? CustomParameters<IHtmlElement[K]> : EventArgs;\r\n\r\n} & AnyEvents;\r","\r\nimport { dom } from \"../\";\r\n\r\ntype TransitionKind = 'transition' | 'animation'\r\n\r\nexport interface CSSTransitionInfo {\r\n type: TransitionKind | null\r\n timeout: number\r\n propCount: number\r\n hasTransform: boolean\r\n}\r\n\r\nexport interface TransitionProps {\r\n name?: string\r\n type?: TransitionKind\r\n css?: boolean\r\n duration?: number | { enter: number; leave: number }\r\n enterFromClass?: string\r\n enterActiveClass?: string\r\n enterToClass?: string\r\n appearFromClass?: string\r\n appearActiveClass?: string\r\n appearToClass?: string\r\n leaveFromClass?: string\r\n leaveActiveClass?: string\r\n leaveToClass?: string\r\n}\r\n\r\n\r\ninterface TimingSample {\r\n kind: TransitionKind\r\n longest: number\r\n tracks: number\r\n}\r\n\r\nfunction cssTimeToMs(text: string): number {\r\n const amount = text.substring(0, Math.max(0, text.length - 1)).replace(',', '.');\r\n return 1000 * Number(amount);\r\n}\r\n\r\nfunction sampleTiming(styles: any, kind: TransitionKind): TimingSample {\r\n const listOf = (aspect: 'delay' | 'duration'): string[] => {\r\n const declared: string = styles[`${kind}-${aspect}`] || '';\r\n return declared.split(', ');\r\n };\r\n const delays = listOf('delay');\r\n const durations = listOf('duration');\r\n let longest = -Infinity;\r\n for (let track = 0; track < durations.length; track++) {\r\n const total = cssTimeToMs(durations[track]) + cssTimeToMs(delays[track % delays.length]);\r\n longest = Math.max(longest, total);\r\n }\r\n return { kind, longest, tracks: durations.length };\r\n}\r\n\r\nconst transformTrack = /(?:^|\\W)(?:transform|all)(?:,|$)/;\r\n\r\nfunction computeTransitionInfo(styles: any, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (!styles) {\r\n return { type: 'animation', timeout: 0, propCount: 0, hasTransform: false };\r\n }\r\n\r\n const samples: Record<TransitionKind, TimingSample> = {\r\n transition: sampleTiming(styles, 'transition'),\r\n animation: sampleTiming(styles, 'animation'),\r\n };\r\n\r\n let winner: TimingSample | null;\r\n let timeout: number;\r\n if (Type === 'transition' || Type === 'animation') {\r\n const forced = samples[Type];\r\n winner = forced.longest > 0 ? forced : null;\r\n timeout = winner ? winner.longest : 0;\r\n } else {\r\n const { transition, animation } = samples;\r\n timeout = Math.max(transition.longest, animation.longest);\r\n winner = !(timeout > 0) ? null : transition.longest > animation.longest ? transition : animation;\r\n }\r\n\r\n const type = winner ? winner.kind : null;\r\n return {\r\n type,\r\n timeout,\r\n propCount: winner ? winner.tracks : 0,\r\n hasTransform: type === 'transition' && transformTrack.test(styles.transitionProperty),\r\n };\r\n}\r\n\r\nexport function getTransitionInfo(el: Element, name: string, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (el.isConnected && el.nodeType !== 8) {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n }\r\n const fxElement = dom.createElement('div');\r\n fxElement.setAttribute('style', 'width:0!important;height:0!important;display:none');\r\n dom.body.appendChild(fxElement);\r\n fxElement.setAttribute('class', name);\r\n try {\r\n return computeTransitionInfo(dom.window.getComputedStyle(fxElement), Type);\r\n } finally {\r\n fxElement.remove();\r\n }\r\n}\r\n\r\n\r\nexport function getTransitionInfoFromElement(el: Element, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n}\r\n\r\nexport type TransitionPhase = 'enter' | 'leave';\r\n\r\nexport function resolveTransitionClasses(props: TransitionProps, phase: TransitionPhase, appear: boolean = false): { from: string, active: string, to: string } {\r\n const name = props.name || 'motif';\r\n if (phase === 'enter') {\r\n const enter = {\r\n from: props.enterFromClass ?? `${name}-enter-from`,\r\n active: props.enterActiveClass ?? `${name}-enter-active`,\r\n to: props.enterToClass ?? `${name}-enter-to`,\r\n };\r\n if (!appear) return enter;\r\n return {\r\n from: props.appearFromClass ?? enter.from,\r\n active: props.appearActiveClass ?? enter.active,\r\n to: props.appearToClass ?? enter.to,\r\n };\r\n }\r\n return {\r\n from: props.leaveFromClass ?? `${name}-leave-from`,\r\n active: props.leaveActiveClass ?? `${name}-leave-active`,\r\n to: props.leaveToClass ?? `${name}-leave-to`,\r\n };\r\n}\r\n\r\nexport function runCssTransition(el: Element, props: TransitionProps, phase: TransitionPhase, done: () => void, appear: boolean = false): () => void {\r\n if (props.css === false) {\r\n done();\r\n return () => { };\r\n }\r\n const classes = resolveTransitionClasses(props, phase, appear);\r\n const addC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.add(x); } catch { } }); };\r\n const removeC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.remove(x); } catch { } }); };\r\n\r\n let finished = false;\r\n let guardTimer: any = undefined;\r\n let endEvent: string | null = null;\r\n let endHandler: ((e: any) => void) | null = null;\r\n\r\n const cleanup = () => {\r\n removeC(classes.from);\r\n removeC(classes.to);\r\n removeC(classes.active);\r\n if (guardTimer !== undefined) { try { clearTimeout(guardTimer); } catch { } guardTimer = undefined; }\r\n if (endEvent && endHandler) { try { el.removeEventListener(endEvent, endHandler); } catch { } endHandler = null; }\r\n };\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n cleanup();\r\n try { done(); } catch { }\r\n };\r\n\r\n addC(classes.from);\r\n addC(classes.active);\r\n try { void (el as HTMLElement).offsetHeight; } catch { }\r\n\r\n const nextFrame = (cb: () => void) => {\r\n const raf = (globalThis as any).requestAnimationFrame;\r\n if (typeof raf === 'function') { raf(() => cb()); } else { setTimeout(cb, 16); }\r\n };\r\n\r\n nextFrame(() => {\r\n if (finished) return;\r\n removeC(classes.from);\r\n addC(classes.to);\r\n\r\n let timeout = 0;\r\n let expectedEnds = 1;\r\n const dur = props.duration;\r\n if (typeof dur === 'number') {\r\n timeout = dur;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else if (dur && typeof dur === 'object') {\r\n timeout = (phase === 'enter' ? dur.enter : dur.leave) ?? 0;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else {\r\n const info = getTransitionInfoFromElement(el, props.type);\r\n timeout = info.timeout;\r\n expectedEnds = info.propCount || 1;\r\n endEvent = info.type === 'animation' ? 'animationend' : 'transitionend';\r\n }\r\n\r\n if (!timeout || timeout <= 0) {\r\n finish();\r\n return;\r\n }\r\n\r\n let ended = 0;\r\n endHandler = (e: any) => {\r\n if (e && e.target !== el) return;\r\n if (++ended >= expectedEnds) finish();\r\n };\r\n try { el.addEventListener(endEvent, endHandler); } catch { }\r\n guardTimer = setTimeout(finish, timeout + 60);\r\n });\r\n\r\n return finish;\r\n}\r","import type { ComponentBase } from \"./componentBase\";\nimport { disposableCore, IDisposable } from \"..\";\nimport type { ComponentBaseOptions, EventArgs, HtmlElementEvents } from \"./types\";\n\nexport class ComponentMotif<TSelf extends ComponentBase = ComponentBase, TProps extends object = any> {\n\n private readonly _component: TSelf;\n public options: ComponentBaseOptions<TProps> & { hideStrategy?: 'placeholder' | 'detach' | 'auto', __fromList?: boolean, __key?: any, placeholder?: Comment };\n\n constructor(component: TSelf, options: ComponentMotif<TSelf, TProps>['options']) {\n this._component = component;\n this.options = options;\n }\n\n public show(): Promise<any> {\n return this._component['_show']();\n }\n\n public hide(): Promise<any> {\n return this._component['_hide']();\n }\n\n public toggle(): void {\n this._component['_toggle']();\n }\n\n public on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<TSelf> {\n return this._component['_on'](event, cb as any, domEvent);\n }\n\n public off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any): Promise<TSelf> {\n return this._component['_off'](event, cb as any);\n }\n\n public trigger(event: any, ev: any): Promise<TSelf> {\n return this._component['_trigger'](event, ev);\n }\n\n public addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void): void {\n this._component['_addHandler'](event, handler);\n }\n\n public clear(): Promise<any> {\n return this._component['_clear']();\n }\n\n public register(c: IDisposable): void {\n this._component['_register'](c);\n }\n\n public setDisposable(c: () => void): void {\n this._component['_register'](disposableCore.toDisposable(c));\n }\n\n public stopAnimations(): Promise<void> {\n return this._component['_stopAnimations']();\n }\n}\n","import { track, trigger, effect, createScheduledEffect, untracked, ScheduledEffect } from \"../\";\r\nimport { pauseTracking, resetTracking } from \"./common\";\r\nconst SIGNAL_TARGET = Symbol('SignalTarget');\r\nconst SIGNAL_KEY = Symbol('SignalKey');\r\n\r\nexport class Signal<T> {\r\n private _value: T;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _equals: (a: T, b: T) => boolean;\r\n private _disposed = false;\r\n\r\n public static create<U>(initialValue: U, equals?: (a: U, b: U) => boolean): Signal<U> {\r\n return new Signal<U>(initialValue, equals);\r\n }\r\n\r\n constructor(initialValue: T, equals: (a: T, b: T) => boolean = Object.is) {\r\n this._value = initialValue;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n this._equals = equals;\r\n }\r\n\r\n get value(): T {\r\n if (!this._disposed) {\r\n track(this._target, this._key);\r\n }\r\n return this._value;\r\n }\r\n\r\n set value(newValue: T) {\r\n if (this._disposed) return;\r\n if (!this._equals(this._value as any, newValue as any)) {\r\n this._value = newValue;\r\n trigger(this._target, this._key);\r\n }\r\n }\r\n\r\n peek(): T {\r\n return this._value;\r\n }\r\n\r\n update(updater: (prev: T) => T): void {\r\n this.value = (updater(this._value));\r\n }\r\n\r\n mutate(mutator: (draft: T) => void): void {\r\n if (this._disposed) return;\r\n mutator(this._value);\r\n trigger(this._target, this._key);\r\n }\r\n\r\n notify(): void {\r\n if (this._disposed) return;\r\n trigger(this._target, this._key);\r\n }\r\n\r\n asReadonly(): ReadonlySignal<T> {\r\n const self = this;\r\n return {\r\n get value() { return self.value; },\r\n peek() { return self.peek(); },\r\n valueOf() { return self.valueOf(); },\r\n toString() { return self.toString(); }\r\n };\r\n }\r\n \r\n dispose(): void {\r\n this._disposed = true;\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\r\nexport interface ReadonlySignal<T> {\r\n readonly value: T;\r\n peek(): T;\r\n valueOf(): T;\r\n toString(): string;\r\n}\r\n\r\n\r\nexport class Computed<T> {\r\n private _value!: T;\r\n private _dirty: boolean = true;\r\n private _computing: boolean = false;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _getter: () => T;\r\n private _cleanup?: () => void;\r\n\r\n constructor(getter: () => T) {\r\n this._getter = getter;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n\r\n this._cleanup = effect(() => {\r\n if (this._computing) return; \r\n this._computing = true;\r\n try {\r\n const newVal = this._getter();\r\n const changed = this._dirty || !Object.is(this._value, newVal);\r\n this._value = newVal;\r\n this._dirty = false;\r\n if (changed) {\r\n trigger(this._target, this._key);\r\n }\r\n } finally {\r\n this._computing = false;\r\n }\r\n });\r\n }\r\n\r\n get value(): T {\r\n track(this._target, this._key);\r\n\r\n if (this._dirty) { \r\n this._computing = true;\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n this._computing = false;\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n peek(): T {\r\n if (this._dirty) {\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n dispose(): void {\r\n if (this._cleanup) {\r\n this._cleanup();\r\n this._cleanup = undefined;\r\n }\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\n\nexport class LazyComputed<T> {\n private _value!: T;\n private _dirty: boolean = true;\n private _disposed: boolean = false;\n private readonly _target: object;\n private readonly _key: symbol;\n private readonly _getter: () => T;\n private readonly _runner: ScheduledEffect;\n\n constructor(getter: () => T) {\n this._getter = getter;\n this._target = { [SIGNAL_TARGET]: true };\n this._key = SIGNAL_KEY;\n this._runner = createScheduledEffect(\n () => { this._value = this._getter(); },\n () => {\n if (this._dirty || this._disposed) return;\n this._dirty = true;\n trigger(this._target, this._key);\n }\n );\n }\n\n get value(): T {\n if (!this._disposed) {\n track(this._target, this._key);\n }\n this._refresh();\n return this._value;\n }\n\n peek(): T {\n this._refresh();\n return this._value;\n }\n\n get isDirty(): boolean {\n return this._dirty;\n }\n\n private _refresh(): void {\n if (!this._dirty) return;\n if (this._disposed) {\n this._value = untracked(this._getter);\n } else {\n this._runner.run();\n }\n this._dirty = false;\n }\n\n dispose(): void {\n if (this._disposed) return;\n this._disposed = true;\n this._runner.stop();\n }\n\n valueOf(): T {\n return this.value;\n }\n\n toString(): string {\n return String(this.value);\n }\n}\n","import { ServiceCollection, ServiceDescriptor } from \"./ServiceCollection\";\nimport { motifError } from \"../common/diagnostics\";\nimport { Signal } from \"../store/Signal\";\n\ntype ScopeKind = 'root' | 'navigation' | 'user';\ntype OwnerSlot = { owner: object | null; ownerless?: boolean };\ntype OwnerPin = { scope: ServiceProvider; live: boolean };\ntype NavigationState = { current: ServiceProvider; version: Signal<number>; scopes: Set<ServiceProvider> };\n\nlet activeResolver: ((token: any) => any) | null = null;\nlet activeSlot: OwnerSlot | null = null;\nlet rawScopedIn: ServiceProvider | null = null;\nlet constructionScope: ServiceProvider | null = null;\nlet navigatingRoot: ServiceProvider | null = null;\n\nconst slotsByOwner = new WeakMap<object, OwnerSlot>();\nconst handlesBySlot = new WeakMap<OwnerSlot, Map<any, any>>();\nconst pins = new WeakMap<object, OwnerPin>();\nconst builtIn = new WeakMap<object, ServiceProvider>();\nconst boundMethods = new WeakMap<object, Map<PropertyKey, { fn: Function; bound: Function }>>();\n\nfunction runWithResolver<T>(resolver: (token: any) => any, create: () => T): T {\n const previous = activeResolver;\n activeResolver = resolver;\n try {\n return create();\n } finally {\n activeResolver = previous;\n }\n}\n\nfunction runWith<T>(slot: OwnerSlot | null, raw: ServiceProvider | null, create: () => T): T {\n const previousSlot = activeSlot;\n const previousRaw = rawScopedIn;\n activeSlot = slot;\n rawScopedIn = raw;\n try {\n return create();\n } finally {\n activeSlot = previousSlot;\n rawScopedIn = previousRaw;\n }\n}\n\nfunction bindTo(target: object, key: PropertyKey, fn: Function): Function {\n let cache = boundMethods.get(target);\n if (!cache) boundMethods.set(target, cache = new Map());\n const hit = cache.get(key);\n if (hit && hit.fn === fn) return hit.bound;\n const bound = fn.bind(target);\n cache.set(key, { fn, bound });\n return bound;\n}\n\nfunction pinnedScopeOf(owner: object | null): ServiceProvider | null {\n let current: any = owner;\n while (current) {\n const pin = pins.get(current);\n if (pin) return pin.scope;\n const built = builtIn.get(current);\n if (built && built._pending) return built;\n current = current.parent;\n }\n return null;\n}\n\nexport function inject<T>(token: abstract new (...args: any[]) => T): T;\nexport function inject<T = any>(token: string | symbol | object): T;\nexport function inject(token: any): any {\n if (!activeResolver) throw motifError('MJX409', describeInjectToken(token));\n return activeResolver(token);\n}\n\nfunction describeInjectToken(token: any): string {\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n}\n\nexport function runInConstructionScope<T>(scope: ServiceProvider | undefined, create: () => T): T {\n const previous = constructionScope;\n constructionScope = scope ?? null;\n try {\n return create();\n } finally {\n constructionScope = previous;\n }\n}\n\nexport function recordServiceOwner(owner: object): void {\n if (constructionScope && constructionScope._pending) builtIn.set(owner, constructionScope);\n}\n\nexport function pinServiceOwner(owner: object): void {\n const root = navigatingRoot;\n if (!root) return;\n if (pins.get(owner)?.live) return;\n const target = pinnedScopeOf(owner) ?? root._currentScope();\n pins.set(owner, { scope: target, live: true });\n target._livePins++;\n}\n\nexport function unpinServiceOwner(owner: object): void {\n const pin = pins.get(owner);\n if (!pin) return;\n pins.delete(owner);\n if (pin.live) pin.scope._releaseLivePin();\n navigatingRoot?._touch();\n}\n\nexport function retireServiceOwner(owner: object): void {\n const pin = pins.get(owner);\n if (pin) {\n if (pin.live) {\n pin.live = false;\n pin.scope._releaseLivePin();\n }\n return;\n }\n if (!navigatingRoot || !slotsByOwner.has(owner)) return;\n pins.set(owner, { scope: pinnedScopeOf(owner) ?? navigatingRoot._currentScope(), live: false });\n}\n\nexport class ServiceProvider {\n private parent?: ServiceProvider;\n private root: ServiceProvider;\n private scopeName?: string;\n private kind: ScopeKind;\n private singletonCache: Map<any, any>;\n private scopedCache: Map<any, any> = new Map();\n private transientSet: Set<any> = new Set();\n private _autoDisposeTransients = false;\n private pendingSingleton: Map<any, Promise<any>>;\n private pendingScoped: Map<any, Promise<any>> = new Map();\n private _navigation?: NavigationState;\n private _ownerlessSlot: OwnerSlot = { owner: null, ownerless: true };\n private _navigationDisposed = false;\n public _livePins = 0;\n public _pending = false;\n\n constructor(private services: ServiceCollection, parent?: ServiceProvider, root?: ServiceProvider) {\n this.parent = parent;\n this.root = root ?? this;\n this.kind = this.root === this ? 'root' : 'user';\n this.singletonCache = this.root === this ? new Map() : (this.root as any).singletonCache;\n this.pendingSingleton = this.root === this ? new Map() : (this.root as any).pendingSingleton;\n }\n\n public createScope(name?: string): ServiceProvider {\n const scoped = new ServiceProvider(this.services, this, this.root);\n scoped.scopeName = name ?? this.scopeName;\n (scoped as any)._autoDisposeTransients = this._autoDisposeTransients;\n return scoped;\n }\n\n public enableAutoDisposeTransients(enable = true): this { this._autoDisposeTransients = enable; return this; }\n\n\n public get<T>(token: abstract new (...args: any[]) => T): T;\n public get<T = any>(token: string | symbol | object): T;\n public get(token: any): any {\n const desc = this.services.getDescriptor(token);\n if (!desc) throw motifError('MJX401', this.describeToken(token));\n const value = this.resolveDescriptorSync(desc, [token]);\n return value;\n }\n\n public getAsync<T>(token: abstract new (...args: any[]) => T): Promise<T>;\n public getAsync<T = any>(token: string | symbol | object): Promise<T>;\n public async getAsync(token: any): Promise<any> {\n const desc = this.services.getDescriptor(token);\n if (!desc) throw motifError('MJX401', this.describeToken(token));\n const value = await this.resolveDescriptorAsync(desc, [token]);\n return value;\n }\n\n public _getFor<T = any>(owner: object, token: any): T {\n let slot = slotsByOwner.get(owner);\n if (!slot) {\n slot = { owner };\n slotsByOwner.set(owner, slot);\n }\n return runWith(slot, rawScopedIn, () => this.get<T>(token));\n }\n\n public getAllServices(): ServiceCollection { return this.services; }\n\n public _beginNavigation(): ServiceProvider {\n const root = this.root;\n const navigation = root._navigation ??= { current: root, version: new Signal(0), scopes: new Set() };\n navigatingRoot = root;\n const scope = new ServiceProvider(this.services, root, root);\n scope.kind = 'navigation';\n scope.scopeName = 'navigation';\n scope._pending = true;\n scope._autoDisposeTransients = root._autoDisposeTransients;\n navigation.scopes.add(scope);\n return scope;\n }\n\n public _commitNavigation(scope: ServiceProvider): void {\n const navigation = this.root._navigation;\n if (!navigation || navigation.current === scope) return;\n scope._pending = false;\n const previous = navigation.current;\n navigation.current = scope;\n this._touch();\n if (previous !== this.root) previous._releaseIfUnused();\n }\n\n public _abandonNavigation(scope: ServiceProvider): void {\n scope._pending = false;\n scope._releaseIfUnused();\n }\n\n public _currentScope(): ServiceProvider {\n return this.root._navigation?.current ?? this.root;\n }\n\n public _touch(): void {\n const navigation = this.root._navigation;\n if (navigation) navigation.version.value = navigation.version.peek() + 1;\n }\n\n public _releaseLivePin(): void {\n this._livePins--;\n this._releaseIfUnused();\n }\n\n private _releaseIfUnused(): void {\n const navigation = this.root._navigation;\n if (this.kind !== 'navigation' || this._navigationDisposed || this._livePins > 0) return;\n if (navigation && navigation.current === this) return;\n this._navigationDisposed = true;\n navigation?.scopes.delete(this);\n this.dispose().catch(() => { });\n }\n\n private _scopeFor(slot: OwnerSlot): ServiceProvider {\n const navigation = this._navigation;\n if (navigation) navigation.version.value;\n if (!slot.ownerless) {\n const pinned = pinnedScopeOf(slot.owner);\n if (pinned) return pinned;\n if (constructionScope && constructionScope.root === this) return constructionScope;\n }\n return navigation ? navigation.current : this;\n }\n\n private _handle(desc: ServiceDescriptor, path: any[]): any {\n const slot = activeSlot ?? this._ownerlessSlot;\n let handles = handlesBySlot.get(slot);\n if (!handles) handlesBySlot.set(slot, handles = new Map());\n let handle = handles.get(desc.token);\n if (!handle) {\n handle = this._createHandle(desc, slot);\n handles.set(desc.token, handle);\n }\n this._scopeFor(slot)._scopedInstanceSync(desc, path);\n return handle;\n }\n\n private async _handleAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n const slot = activeSlot ?? this._ownerlessSlot;\n await this._scopeFor(slot)._scopedInstanceAsync(desc, path);\n return runWith(slot, null, () => this._handle(desc, path));\n }\n\n private _createHandle(desc: ServiceDescriptor, slot: OwnerSlot): any {\n const root = this;\n const target = () => root._scopeFor(slot)._scopedInstanceSync(desc, [desc.token]);\n return new Proxy(Object.create(null), {\n get(_, key) {\n const instance = target();\n const value = Reflect.get(instance, key, instance);\n return typeof value === 'function' ? bindTo(instance, key, value) : value;\n },\n set(_, key, value) {\n const instance = target();\n return Reflect.set(instance, key, value, instance);\n },\n has(_, key) {\n return key in target();\n },\n getPrototypeOf() {\n return Object.getPrototypeOf(target());\n },\n });\n }\n\n private _isSystemScope(): boolean {\n return this.kind !== 'user';\n }\n\n private _scopedInstanceSync(desc: ServiceDescriptor, path: any[]): any {\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\n const inst = runWith(null, this, () => this.instantiateSync(desc, path));\n this.scopedCache.set(desc.token, inst);\n return inst;\n }\n\n private async _scopedInstanceAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\n if (this.pendingScoped.has(desc.token)) return await this.pendingScoped.get(desc.token)!;\n const promise = (async () => {\n const inst = await this.instantiateAsyncIn(null, this, desc, path);\n this.scopedCache.set(desc.token, inst);\n this.pendingScoped.delete(desc.token);\n return inst;\n })();\n this.pendingScoped.set(desc.token, promise);\n return await promise;\n }\n\n private resolveDescriptorSync(desc: ServiceDescriptor, path: any[]): any {\n this.checkCycle(desc.token, path);\n switch (desc.lifetime) {\n case 'singleton': {\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\n const inst = runWith(null, null, () => this.instantiateSync(desc, path));\n this.singletonCache.set(desc.token, inst);\n return inst;\n }\n case 'scoped': {\n if (this._isSystemScope() && rawScopedIn !== this) return this.root._handle(desc, path);\n return this._scopedInstanceSync(desc, path);\n }\n case 'transient':\n default: {\n const inst = this.instantiateSync(desc, path);\n if (this._autoDisposeTransients && this.parent) {\n this.transientSet.add(inst);\n }\n return inst;\n }\n }\n }\n\n private async resolveDescriptorAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n this.checkCycle(desc.token, path);\n switch (desc.lifetime) {\n case 'singleton': {\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\n if (this.pendingSingleton.has(desc.token)) return await this.pendingSingleton.get(desc.token)!;\n const promise = (async () => {\n const inst = await this.instantiateAsyncIn(null, null, desc, path);\n this.singletonCache.set(desc.token, inst);\n this.pendingSingleton.delete(desc.token);\n return inst;\n })();\n this.pendingSingleton.set(desc.token, promise);\n return await promise;\n }\n case 'scoped': {\n if (this._isSystemScope() && rawScopedIn !== this) return await this.root._handleAsync(desc, path);\n return await this._scopedInstanceAsync(desc, path);\n }\n case 'transient':\n default: {\n const inst = await this.instantiateAsync(desc, path);\n if (this._autoDisposeTransients && this.parent) {\n this.transientSet.add(inst);\n }\n return inst;\n }\n }\n }\n\n private construct<T>(create: () => T): T {\n if (activeSlot) return create();\n const slot: OwnerSlot = { owner: null };\n const inst = runWith(slot, rawScopedIn, create);\n if (inst && (typeof inst === 'object' || typeof inst === 'function') && typeof (inst as any).then !== 'function') {\n recordServiceOwner(inst as any);\n slot.owner = inst as any;\n if (!slotsByOwner.has(inst as any)) slotsByOwner.set(inst as any, slot);\n }\n return inst;\n }\n\n private instantiateSync(desc: ServiceDescriptor, path: any[]): any {\n if (desc.useValue !== undefined) {\n return desc.useValue;\n }\n if (desc.useFactory) {\n return this.construct(() => {\n const args = this.resolveDepsSync(desc, path);\n const result = runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this));\n if (result && typeof (result as any).then === 'function') {\n const name = this.describeTokenWithSource(desc.token);\n throw motifError('MJX402', name);\n }\n return result;\n });\n }\n if (desc.useClass) {\n return this.construct(() => {\n const args = this.resolveDepsSync(desc, path);\n return runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args));\n });\n }\n throw motifError('MJX403');\n }\n\n private async instantiateAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any> {\n return await runWith(slot, raw, () => this.instantiateAsync(desc, path));\n }\n\n private async instantiateAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n if (desc.useValue !== undefined) {\n return desc.useValue;\n }\n const slot = activeSlot;\n const raw = rawScopedIn;\n if (desc.useFactory) {\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\n return await runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this))));\n }\n if (desc.useClass) {\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\n return runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args))));\n }\n throw motifError('MJX403');\n }\n\n public async dispose(): Promise<void> {\n const seen = new Set<any>();\n const callDispose = async (obj: any) => {\n if (!obj || seen.has(obj)) return;\n seen.add(obj);\n try { if (typeof obj.dispose === 'function') await obj.dispose(); }\n catch { /* ignore */ }\n try { if (typeof obj.close === 'function') await obj.close(); }\n catch { /* ignore */ }\n try {\n const d = (obj as any)[Symbol.dispose];\n if (typeof d === 'function') await d.call(obj);\n } catch { }\n try {\n const ad = (obj as any)[Symbol.asyncDispose];\n if (typeof ad === 'function') await ad.call(obj);\n } catch { }\n };\n if (this.root === this) {\n const navigation = this._navigation;\n if (navigation) {\n const scopes = [...navigation.scopes];\n navigation.scopes.clear();\n navigation.current = this;\n if (navigatingRoot === this) navigatingRoot = null;\n this._navigation = undefined;\n for (const scope of scopes) {\n scope._navigationDisposed = true;\n await scope.dispose();\n }\n }\n for (const v of this.singletonCache.values()) await callDispose(v);\n this.singletonCache.clear();\n this.pendingSingleton.clear();\n }\n for (const v of this.scopedCache.values()) await callDispose(v);\n if (this.kind !== 'navigation') this.scopedCache.clear();\n this.pendingScoped.clear();\n for (const v of this.transientSet.values()) await callDispose(v);\n this.transientSet.clear();\n }\n\n private resolveDepsSync(desc: ServiceDescriptor, path: any[]): any[] {\n const deps = this.getDeps(desc);\n if (!deps || deps.length === 0) return [];\n return deps.map(dep => this.resolveTokenSync(dep, path));\n }\n private async resolveDepsAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any[]> {\n const deps = this.getDeps(desc);\n if (!deps || deps.length === 0) return [];\n const results: any[] = [];\n for (const dep of deps) {\n results.push(await runWith(slot, raw, () => this.resolveTokenAsync(dep, path)));\n }\n return results;\n }\n private injectionResolver(path: any[]): (token: any) => any {\n return (token: any) => this.resolveTokenSync(token, path);\n }\n private getDeps(desc: ServiceDescriptor): any[] | undefined {\n if (Array.isArray(desc.deps)) return desc.deps;\n const source: any = desc.useClass ?? desc.useFactory;\n if (source) {\n if (Array.isArray(source.inject)) return source.inject;\n if (Array.isArray(source.dependencies)) return source.dependencies;\n }\n return undefined;\n }\n private resolveTokenSync(token: any, path: any[]): any {\n const d = this.services.getDescriptor(token);\n if (!d) throw motifError('MJX401', this.describeToken(token));\n const nextPath = path.concat(token);\n return this.resolveDescriptorSync(d, nextPath);\n }\n private async resolveTokenAsync(token: any, path: any[]): Promise<any> {\n const d = this.services.getDescriptor(token);\n if (!d) throw motifError('MJX401', this.describeToken(token));\n const nextPath = path.concat(token);\n return await this.resolveDescriptorAsync(d, nextPath);\n }\n private checkCycle(token: any, path: any[]) {\n const firstIndex = path.indexOf(token);\n if (firstIndex !== -1 && firstIndex !== path.length - 1) {\n const chainTokens = path.slice(firstIndex).concat([token]);\n const chain = chainTokens.map((t) => this.describeTokenWithSource(t)).join(' -> ');\n throw motifError('MJX404', chain);\n }\n }\n private describeToken = (t: any) => {\n if (typeof t === 'string') return t;\n if (typeof t === 'symbol') return t.toString();\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\n return String(t);\n };\n private describeTokenWithSource(t: any) {\n const name = this.describeToken(t);\n const d = this.services.getDescriptor(t);\n if (!d) return name;\n const src = d.useClass ? 'useClass' : d.useFactory ? 'useFactory' : (d.useValue !== undefined) ? 'useValue' : 'unknown';\n return `${name}[${src}]`;\n }\n}\n","export const contentBlocks = { live: 0 };\r\n","export const OPTIONS_OWNER: unique symbol = Symbol('motif.optionsOwner');\nexport const TRANSITION_SLOT: unique symbol = Symbol('motif.transition');\n","export type TransitionMode = 'concurrent' | 'out-in' | 'in-out';\n\nexport const transitionSettings: { mode: TransitionMode } = { mode: 'concurrent' };\n\ntype Entry = { node: Node; via: Node | null; done: Promise<void> };\n\nexport type TrackedRun = { done: () => void; release: () => void; finished?: Promise<void> };\n\nconst noop = () => { };\n\nfunction createTracker() {\n const running = new WeakMap<Node, Set<Entry>>();\n\n function track(node: Node | null | undefined, resolve: () => void, via?: Node | null): TrackedRun {\n const host = node?.parentNode ?? via?.parentNode;\n if (!host) return { done: resolve, release: noop };\n let set = running.get(host);\n if (!set) running.set(host, (set = new Set()));\n let finish: () => void = noop;\n const entry: Entry = { node: node!, via: via ?? null, done: new Promise<void>(r => { finish = r; }) };\n set.add(entry);\n let settled = false;\n const release = () => {\n if (settled) return;\n settled = true;\n set!.delete(entry);\n finish();\n };\n return {\n done: () => {\n const first = !settled;\n release();\n if (first && resolve) resolve();\n },\n release,\n finished: entry.done,\n };\n }\n\n function pending(host: Node | null | undefined, except?: Node | null): Promise<void> | null {\n if (!host) return null;\n const set = running.get(host);\n if (!set || set.size === 0) return null;\n let waits: Promise<void>[] | null = null;\n for (const entry of set) {\n if (entry.node === except) continue;\n if (entry.node.parentNode !== host && entry.via?.parentNode !== host) {\n set.delete(entry);\n continue;\n }\n (waits ??= []).push(entry.done);\n }\n return waits ? Promise.all(waits).then(noop) : null;\n }\n\n return { track, pending };\n}\n\nconst leaves = createTracker();\nconst enters = createTracker();\n\nexport const trackLeave = leaves.track;\nexport const pendingLeaves = leaves.pending;\nexport const trackEnter = enters.track;\nexport const pendingEnters = enters.pending;\n\nexport function deferUntilEntered(node: Node, run: TrackedRun, play: () => unknown): Animation {\n const host = node.parentNode;\n const handle: any = {\n finished: run.finished ?? Promise.resolve(),\n playState: 'pending',\n addEventListener: noop,\n removeEventListener: noop,\n cancel: noop,\n };\n queueMicrotask(() => {\n const wait = pendingEnters(host, node);\n if (wait) wait.then(() => { play(); });\n else play();\n });\n return handle as Animation;\n}\n\nexport function isTransitionMode(value: any): value is TransitionMode {\n return value === 'concurrent' || value === 'out-in' || value === 'in-out';\n}\n","import { ControlCollection, dom, Disposable, disposableCore, IClass, IDisposable, Application, isExactMatch, startsWithPath, reactive, safeCallSilent, safeCallSilentAsync, safeCall, safeCallAsync } from \"..\";\nimport { ServiceProvider } from \"..\";\nimport { BindingCollection, IBaseBinding } from \"../bindings\";\nimport { effect } from \"../store/reactivity-core\";\nimport { ComponentEmiter } from \"./ComponentEmiter\";\nimport { controlAttribute } from \"./controlAttribute\";\nimport { controlClass } from \"./controlClass\";\nimport { ComponentBaseOptions, ElementType, EventArgs, HtmlElementEvents, OptionalParams, RouterClassingSettings, shimAnimation } from \"./types\";\nimport { UnwrapValueRefs } from \"../store/common\";\nimport { getTransitionInfo, runCssTransition, TransitionProps } from \"../common/transition\";\nimport { callReported, motifError, reportError, reportWarning } from \"../common/diagnostics\";\nimport { ComponentMotif } from \"./ComponentMotif\";\nimport { pinServiceOwner, recordServiceOwner, retireServiceOwner, unpinServiceOwner } from \"../dependencyInjection/ServiceProvider\";\nimport { contentBlocks as liveContentBlocks } from \"./contentBlockRegistry\";\nimport { OPTIONS_OWNER, TRANSITION_SLOT } from \"./optionsSlots\";\nimport { deferUntilEntered, isTransitionMode, pendingLeaves, trackEnter, trackLeave, transitionSettings, TransitionMode } from \"../common/transitionRegistry\";\nimport { lazyBindMethods } from \"../common/lazyBind\";\nimport type { MotifDomEventProps } from \"../jsx-runtime\";\nimport { isDevLike } from \"../devtools/devbus\";\n\n/** DI token'ını okunur biçime çevirir (dev uyarıları için). */\nfunction describeServiceToken(t: any): string {\n if (typeof t === 'string') return t;\n if (typeof t === 'symbol') return t.toString();\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\n return String(t);\n}\n\ntype TransitionApi = ComponentBaseOptions<any>['transition'];\n\nfunction peekTransition(c: any): TransitionApi | undefined {\n return c?.motif?.options?.[TRANSITION_SLOT];\n}\n\n/**WAAPI keyframe (transitionIn) YA DA CSS class transition (name/classes) tanımlı olarak enter animasyonu varmı */\nfunction clearNavDirection(c: any): void {\n const t = peekTransition(c);\n if (!t?._markedDirection) return;\n t._markedDirection = false;\n try { (c.element as any)?.removeAttribute?.('data-nav-direction'); } catch { }\n}\n\nfunction enterModeOf(container: any): TransitionMode {\n let c = container;\n while (c) {\n const mode = peekTransition(c)?.mode;\n if (mode) return mode;\n const node = c.element as Node | null;\n if (!node || node.nodeType !== Node.COMMENT_NODE) break;\n c = c.parent ?? c._base?._leaveContainer;\n }\n return transitionSettings.mode;\n}\n\nfunction leaveModeOf(c: any): TransitionMode {\n return enterModeOf(c.parent ?? c._base?._leaveContainer);\n}\n\nfunction wantsEnterTransition(c: any): boolean {\n const o = c?.motif?.options;\n const t = o?.[TRANSITION_SLOT];\n return !!(o?.transitionIn || (t && (t.classes || (t.name && t.name.length > 0))));\n}\n\nfunction createTransitionApi(owner: ComponentBase): TransitionApi {\n const cur = (): TransitionApi => (owner.motif.options as any)?.[TRANSITION_SLOT] ?? t;\n const t: TransitionApi = {\n transitionInfo: () => {\n const s = cur();\n return {\n in: getTransitionInfo(owner.element as Element, `${s.name}-enter ${s.name}-enter-start`),\n out: getTransitionInfo(owner.element as Element, `${s.name}-leave ${s.name}-leave-start`),\n }\n },\n name: '',\n mode: undefined as TransitionMode | undefined,\n classes: undefined as TransitionProps | undefined,\n activeCssCancel: null as (() => void) | null,\n activeCssPhase: null as ('enter' | 'leave' | null),\n cssProps: (): TransitionProps | null => {\n const s = cur();\n if (s.classes) {\n return { name: s.classes.name || s.name || '', ...s.classes };\n }\n if (s.name && s.name.length > 0) {\n return { name: s.name };\n }\n return null;\n },\n skipNextLeave: false,\n _suppressEnter: false,\n _markedDirection: false,\n in: (op) => {\n owner.motif.options.transitionIn = op;\n },\n out: (op) => {\n owner.motif.options.transitionOut = op;\n },\n enterTransition: (resolve: () => void): Animation => {\n const s = cur();\n const base = (owner as any)._base;\n const appear = !base._enterPlayed;\n base._enterPlayed = true;\n base._enterSeq = (base._enterSeq ?? 0) + 1;\n if (s._suppressEnter) {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const attempt = {};\n base._enterRun = attempt;\n const enter = trackEnter(owner.element as unknown as Node, () => {\n if ((owner as any)._base?._enterRun === attempt) {\n (owner as any)._base._enterRun = null;\n clearNavDirection(owner);\n }\n resolve && resolve();\n }, owner.motif.options.placeholder as Node | undefined);\n const transitionIn = owner.motif.options.transitionIn;\n const animation = transitionIn\n ? s.run(transitionIn.keyframes, transitionIn.options, enter.done)\n : s._runCss('enter', enter.done, appear);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', enter.release);\n }\n return animation;\n },\n leaveTransition: (resolve: () => void): Animation => {\n const s = cur();\n const node = owner.element as unknown as Node;\n const leave = trackLeave(node, resolve);\n const play = (): Animation => {\n const transitionOut = owner.motif.options?.transitionOut;\n const animation = transitionOut\n ? s.run(transitionOut.keyframes, transitionOut.options, leave.done)\n : s._runCss('leave', leave.done);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', leave.release);\n }\n return animation;\n };\n if (leave.finished && leaveModeOf(owner) === 'in-out') {\n return deferUntilEntered(node, leave, play);\n }\n return play();\n },\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear: boolean = false): Animation => {\n const s = cur();\n if (phase === 'enter' && s.activeCssPhase === 'leave') {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const cssProps = s.cssProps();\n const el = owner.element as unknown as Element | null;\n if (cssProps && el && (el as any).nodeType === 1 && (el as any).classList) {\n try { s.activeCssCancel?.(); } catch { }\n const cancel = runCssTransition(el, cssProps, phase, () => {\n s.activeCssCancel = null;\n s.activeCssPhase = null;\n resolve && resolve();\n }, appear);\n s.activeCssCancel = cancel;\n s.activeCssPhase = phase;\n return shimAnimation as Animation;\n }\n resolve && resolve();\n return shimAnimation as Animation;\n },\n activeAnimations: [] as Animation[],\n run: (keyframes, options, resolve) => {\n const s = cur();\n owner.motif.stopAnimations();\n\n const element = owner.element as unknown as HTMLElement;\n\n if (element.animate) {\n var x = element.animate(keyframes, options);\n s.activeAnimations.push(x);\n\n let cleanedUp = false;\n const safeCleanup = () => {\n if (cleanedUp) return;\n cleanedUp = true;\n try {\n if (s.activeAnimations) {\n s.activeAnimations = s.activeAnimations.filter(a => a !== x);\n }\n } catch { }\n };\n\n x.addEventListener('finish', () => {\n resolve && resolve();\n safeCleanup();\n });\n\n x.oncancel = () => {\n safeCleanup();\n };\n return x;\n }\n else {\n resolve && resolve();\n const g: any = (globalThis as any);\n if (typeof g.Animation === 'function') {\n try { return new g.Animation(); } catch { /* ignore */ }\n }\n\n return shimAnimation as Animation;\n }\n }\n };\n return t;\n}\n\nclass ComponentOptionsImpl {\n [OPTIONS_OWNER]: ComponentBase;\n [TRANSITION_SLOT]?: TransitionApi;\n\n constructor(owner: ComponentBase) {\n this[OPTIONS_OWNER] = owner;\n }\n\n get transition(): TransitionApi {\n return this[TRANSITION_SLOT] ??= createTransitionApi(this[OPTIONS_OWNER]);\n }\n\n set transition(value: TransitionApi) {\n this[TRANSITION_SLOT] = value;\n }\n\n set enableRouterClassing(value: RouterClassingSettings) {\n try {\n const ins = this[OPTIONS_OWNER];\n const callback = ins.context.onRouterChanged(() => {\n ComponentHelper.routerClassing.call(ins, value);\n });\n ins.motif.register(disposableCore.toDisposable(() => {\n callback();\n }));\n ComponentHelper.routerClassing.call(ins, value);\n } catch (error) {\n reportError('MJX105', error);\n }\n }\n\n getInstance(): ComponentBase {\n return this[OPTIONS_OWNER];\n }\n\n get display(): boolean {\n return this[OPTIONS_OWNER].isVisible;\n }\n\n set display(value: boolean) {\n if (value) {\n this[OPTIONS_OWNER].motif.show();\n } else {\n this[OPTIONS_OWNER].motif.hide();\n }\n }\n\n hasEvent(name: string): boolean {\n return !!(this[OPTIONS_OWNER] as any)._eventHandlers?.has(name);\n }\n}\nlazyBindMethods(ComponentOptionsImpl.prototype, ['getInstance', 'hasEvent']);\n\n\n\n\nexport type IBaseProp<T extends any> = OptionalParams<T> & MotifDomEventProps & {\n childs?: any[];\n options?: any;\n onElementCreating?(): any;\n initializeComponent?(sender: ComponentBase): void;\n onBuilding?(sender: ComponentBase, e: EventArgs): void;\n onBuilt?(sender: ComponentBase, e: EventArgs): void;\n onMounted?(sender: ComponentBase, e: EventArgs): void;\n onInitializing?(sender: ComponentBase, e: EventArgs): void;\n onInitialized?(sender: ComponentBase, e: EventArgs): void;\n onDisposing?(sender: ComponentBase, e: EventArgs): void;\n onDisposed?(sender: ComponentBase, e: EventArgs): void;\n onConfig?(sender: ComponentBase, e: EventArgs): void;\n onConfigured?(sender: ComponentBase, e: EventArgs): void;\n onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n onActivated?(sender: ComponentBase, e: EventArgs): void;\n onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n runover?: {\n initializeComponent?: (sender: ComponentBase) => void;\n }\n [key: string]: any;\n};\n\ntype LifecycleHandler = (sender: ComponentBase, e: EventArgs) => void;\ninterface LifecycleStorage {\n _initializeComponentHandlers?: LifecycleHandler[];\n _onInitializeComponentHandlers?: LifecycleHandler[];\n _onBuildingHandlers?: LifecycleHandler[];\n _onBuiltHandlers?: LifecycleHandler[];\n _onMountedHandlers?: LifecycleHandler[];\n _onInitializingHandlers?: LifecycleHandler[];\n _onInitializedHandlers?: LifecycleHandler[];\n _onConfigHandlers?: LifecycleHandler[];\n _onConfiguredHandlers?: LifecycleHandler[];\n _onVisibilityChangedHandlers?: LifecycleHandler[];\n _onActivatedHandlers?: LifecycleHandler[];\n _onDeactivatedHandlers?: LifecycleHandler[];\n _onDisposingHandlers?: LifecycleHandler[];\n _onDisposedHandlers?: LifecycleHandler[];\n}\ninterface BaseCtx extends LifecycleStorage {\n owner: ComponentBase;\n prebinding_Activated: boolean;\n _offAll: () => void;\n _deactivateBindings: () => void;\n _activateBindings: () => void;\n _activatePreBindings: () => void;\n _reactivateBindings: () => void;\n _detachDomWithAnimation: () => void;\n _detachDomWithAnimationAsync: () => Promise<void>;\n _disposeShallow: () => void;\n _deepCleanup: () => void;\n emiters: ComponentEmiter;\n itemRef?: any;\n [key: string]: any;\n}\n\nfunction fireLifecycle(component: any, name: string, ev: EventArgs): void {\n const base = component._base;\n if (base) base.emiters.fire(name, ev);\n}\n\nfunction hasLifecycleHook(component: any, hook: string, listName: keyof LifecycleStorage, lowerName: string, legacyProp?: string): boolean {\n if (component[hook]) return true;\n const list = component._base[listName];\n if (Array.isArray(list) && list.length > 0) return true;\n if (legacyProp && component[legacyProp]) return true;\n return component._base.emiters.hasListeners(lowerName);\n}\n\nconst RESERVED_METHODS = ['build', 'setState', 'reState', 'setText', 'style', 'dispose', 'disposeAsync', 'using', 'doWork', 'getService', '$', 'useModel', 'context', 'siblings', 'serviceProvider', 'isWait'];\nconst checkedComponentClasses = new WeakSet<Function>();\n\nfunction callsSuper(fn: unknown, name: string): boolean {\n if (typeof fn !== 'function') return false;\n const escaped = name.replace(/\\$/g, '\\\\$');\n return new RegExp(`\\\\bsuper\\\\s*(\\\\.\\\\s*${escaped}(?![\\\\w$])|\\\\[)`).test(Function.prototype.toString.call(fn));\n}\n\nfunction reservedMemberProblems(c: ComponentBase): Array<[string, 'method' | 'field' | 'replaced']> {\n const problems: Array<[string, 'method' | 'field' | 'replaced']> = [];\n const own = (o: object, k: string) => Object.prototype.hasOwnProperty.call(o, k);\n for (const name of RESERVED_METHODS) {\n if (own(c, name)) { problems.push([name, 'field']); continue; }\n for (let p = Object.getPrototypeOf(c); p && p !== ComponentBase.prototype; p = Object.getPrototypeOf(p)) {\n const d = Object.getOwnPropertyDescriptor(p, name);\n if (!d) continue;\n const fns = 'value' in d ? [d.value] : [d.get, d.set].filter(Boolean);\n if (!fns.some(fn => callsSuper(fn, name))) problems.push([name, 'method']);\n break;\n }\n }\n const anyC = c as any;\n if (!(anyC.motif instanceof ComponentMotif)) problems.push(['motif', 'replaced']);\n if (!(anyC.controls instanceof ControlCollection)) problems.push(['controls', 'replaced']);\n if (!(anyC.class instanceof controlClass)) problems.push(['class', 'replaced']);\n if (!(anyC.attr instanceof controlAttribute)) problems.push(['attr', 'replaced']);\n if (!(anyC.bindings instanceof BindingCollection)) problems.push(['bindings', 'replaced']);\n if (anyC.element != null && typeof Node !== 'undefined' && !(anyC.element instanceof Node)) problems.push(['element', 'replaced']);\n if (anyC.parent != null && !(anyC.parent instanceof ComponentBase)) problems.push(['parent', 'replaced']);\n return problems;\n}\n\nexport function checkReservedMembers(c: ComponentBase): void {\n if (!isDevLike()) return;\n const ctor = (c as any)?.constructor;\n if (typeof ctor !== 'function' || checkedComponentClasses.has(ctor)) return;\n checkedComponentClasses.add(ctor);\n const name = ctor.name || 'An anonymous component class';\n for (const [member, how] of reservedMemberProblems(c)) {\n reportWarning('MJX128', [name, member, how]);\n }\n}\n\nconst ComponentHelper = {\n callInitializeComponent(component: ComponentBase | any) {\n const sender = component;\n const ev = { cancel: false } as EventArgs;\n if (!component || component.isDisposed) { return; }\n // 1) class method initializeComponent\n if (typeof component.initializeComponent === 'function') {\n callReported(() => component.initializeComponent(sender, ev), 'MJX122', 'initializeComponent');\n }\n // 2) aggregated extra initializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._initializeComponentHandlers) && component._base._initializeComponentHandlers.length) {\n for (const fn of component._base._initializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'initializeComponent');\n }\n }\n // 3) class method oninitializeComponent \n if (typeof component.oninitializeComponent === 'function') {\n callReported(() => component.oninitializeComponent(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n // 4) aggregated extra oninitializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._onInitializeComponentHandlers) && component._base._onInitializeComponentHandlers.length) {\n for (const fn of component._base._onInitializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n }\n },\n callDisposing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onDisposing', '_onDisposingHandlers', 'ondisposing', 'ondisposing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposing) {\n callReported(() => component.onDisposing(sender, ev), 'MJX122', 'onDisposing');\n }\n if (Array.isArray(component._base._onDisposingHandlers)) {\n for (const fn of component._base._onDisposingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposing');\n }\n }\n if (component.ondisposing) {\n callReported(() => component.ondisposing(sender, ev), 'MJX122', 'ondisposing');\n }\n fireLifecycle(component,'ondisposing', ev);\n },\n callActivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onActivated) { callReported(() => component.onActivated(sender, ev), 'MJX122', 'onActivated'); }\n if (Array.isArray(component._base._onActivatedHandlers)) {\n for (const fn of component._base._onActivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onActivated');\n }\n }\n fireLifecycle(component,'onactivated', ev);\n },\n callDeactivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDeactivated) { callReported(() => component.onDeactivated(sender, ev), 'MJX122', 'onDeactivated'); }\n if (Array.isArray(component._base._onDeactivatedHandlers)) {\n for (const fn of component._base._onDeactivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDeactivated');\n }\n }\n fireLifecycle(component,'ondeactivated', ev);\n },\n deactivateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component.isBuilt || !component._base || component._base._inactive) { return; }\n component._base._inactive = true;\n ComponentHelper.callDeactivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.deactivateTree(c, true);\n }\n }\n },\n activateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component._base || !component._base._inactive) { return; }\n component._base._inactive = false;\n ComponentHelper.callActivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.activateTree(c, true);\n }\n }\n },\n callDisposed(component: ComponentBase | any) {\n if (!component || !component._base || component._base._disposedFired) { return; }\n component._base._disposedFired = true;\n if (hasLifecycleHook(component, 'onDisposed', '_onDisposedHandlers', 'ondisposed', 'ondisposed')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposed) { callReported(() => component.onDisposed(sender, ev), 'MJX122', 'onDisposed'); }\n if (Array.isArray(component._base._onDisposedHandlers)) {\n for (const fn of component._base._onDisposedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposed');\n }\n }\n if (component.ondisposed) { callReported(() => component.ondisposed(sender, ev), 'MJX122', 'ondisposed'); }\n fireLifecycle(component,'ondisposed', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:disposed', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n callBuilt(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (hasLifecycleHook(component, 'onBuilt', '_onBuiltHandlers', 'onbuilt', 'onbuilt')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilt) { callReported(() => component.onBuilt(sender, ev), 'MJX122', 'onBuilt'); }\n if (Array.isArray(component._base._onBuiltHandlers)) {\n for (const fn of component._base._onBuiltHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilt');\n }\n }\n if (component.onbuilt) { callReported(() => component.onbuilt(sender, ev), 'MJX122', 'onbuilt'); }\n fireLifecycle(component,'onbuilt', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:mounted', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n scheduleMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedScheduled) { return; }\n const hasHook = typeof component.onMounted === 'function'\n || (Array.isArray(component._base._onMountedHandlers) && component._base._onMountedHandlers.length > 0)\n || typeof component.onmounted === 'function';\n if (!hasHook) { return; }\n component._base._mountedScheduled = true;\n const el = component.element as Element | null;\n if (!el || typeof (el as any).nodeType !== 'number') { return; }\n const stop = onElementAttached(el, () => {\n if (component.isDisposed) { return; }\n ComponentHelper.callMounted(component);\n });\n if (stop) {\n component._register(disposableCore.toDisposable(stop));\n }\n },\n callMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedFired) { return; }\n component._base._mountedFired = true;\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onMounted) { callReported(() => component.onMounted(sender, ev), 'MJX122', 'onMounted'); }\n if (Array.isArray(component._base._onMountedHandlers)) {\n for (const fn of component._base._onMountedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onMounted');\n }\n }\n if (component.onmounted) { callReported(() => component.onmounted(sender, ev), 'MJX122', 'onmounted'); }\n fireLifecycle(component,'onmounted', ev);\n },\n callBuilding(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onBuilding', '_onBuildingHandlers', 'onbuilding')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilding) { callReported(() => component.onBuilding(sender, ev), 'MJX122', 'onBuilding'); }\n if (Array.isArray(component._base._onBuildingHandlers)) {\n for (const fn of component._base._onBuildingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilding');\n }\n }\n fireLifecycle(component,'onbuilding', ev);\n },\n callConfig(component: ComponentBase | any) {\n if (!component || component.isDisposed || component.isConfigured) { return; }\n component.isConfigured = true;\n\n if (component.motif.options._preconfig) {\n safeCallSilent(() => component.motif.options._preconfig(component), 'Component._preconfig');\n }\n\n if (!hasLifecycleHook(component, 'onConfig', '_onConfigHandlers', 'onconfig')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfig) { callReported(() => component.onConfig(sender, ev), 'MJX122', 'onConfig'); }\n if (Array.isArray(component._base._onConfigHandlers)) {\n for (const fn of component._base._onConfigHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfig');\n }\n }\n fireLifecycle(component,'onconfig', ev);\n },\n callConfigured(component: ComponentBase | any) {\n if (component.motif.options && component.motif.options._postconfigdone) {\n return;\n }\n if (component?._base?._configDeferred && !component.isConfigured) {\n ComponentHelper.callConfig(component);\n }\n component.motif.options._postconfigdone = true;\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onConfigured', '_onConfiguredHandlers', 'onconfigured')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfigured) { callReported(() => component.onConfigured(sender, ev), 'MJX122', 'onConfigured'); }\n if (Array.isArray(component._base._onConfiguredHandlers)) {\n for (const fn of component._base._onConfiguredHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfigured');\n }\n }\n fireLifecycle(component,'onconfigured', ev);\n },\n callOnInitialized(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n component.isInitialized = true;\n if (!hasLifecycleHook(component, 'onInitialized', '_onInitializedHandlers', 'oninitialized')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitialized) { callReported(() => component.onInitialized(sender, ev), 'MJX122', 'onInitialized'); }\n if (Array.isArray(component._base._onInitializedHandlers)) {\n for (const fn of component._base._onInitializedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitialized');\n }\n }\n fireLifecycle(component,'oninitialized', ev);\n },\n callOnInitializing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onInitializing', '_onInitializingHandlers', 'oninitializing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitializing) { callReported(() => component.onInitializing(sender, ev), 'MJX122', 'onInitializing'); }\n if (Array.isArray(component._base._onInitializingHandlers)) {\n for (const fn of component._base._onInitializingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitializing');\n }\n }\n fireLifecycle(component,'oninitializing', ev);\n },\n callVisibilityChanged(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onVisibilityChanged', '_onVisibilityChangedHandlers', 'onvisibilitychanged')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onVisibilityChanged) { callReported(() => component.onVisibilityChanged(sender, ev), 'MJX122', 'onVisibilityChanged'); }\n if (Array.isArray(component._base._onVisibilityChangedHandlers)) {\n for (const fn of component._base._onVisibilityChangedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onVisibilityChanged');\n }\n }\n fireLifecycle(component,'onvisibilitychanged', ev);\n },\n findFragmentContent(c: ComponentBase) {\n const controlElement = c.element.nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n if (c.element.nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n c.motif.options.cache?.appendChild(c.element);\n c.controls.forEach(child => {\n c.motif.options.cache?.appendChild(child.element as unknown as Node);\n });\n c.motif.options.cache?.appendChild(c.motif.options.closeFragment!);\n }\n },\n backgroundCallback(callback: () => any) {\n callback();\n // if (!requestIdleCallback) {\n // if (!requestAnimationFrame) {\n // } else {\n\n // } else {\n },\n internalBuild(this: ComponentBase, c: ComponentBase) {\n if (this.isDisposed || c?.isDisposed) { return; }\n ComponentHelper.callConfigured(c);\n if (c.isDisposed) return;\n c._base._activatePreBindings();\n if (c.isWait) return;\n const cisBuilt = c.isBuilt;\n if (!this.isBuilt) {\n return;\n }\n if (c.isWait) {\n return;\n }\n const enterSeq = c._base._enterSeq;\n if (!c.isBuilt) {\n c.build();\n } else if (c.parent != this) {\n c.parent?.controls.detach(c);\n c.parent = this;\n const pendingLeave = (c as any).__pendingLeave;\n if (pendingLeave) {\n pendingLeave.promise.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n\n if (c.isDisposed || this.isDisposed) return;\n c.parent = this;\n\n const ownItems = this.controls.items;\n const currentIndex = ownItems.length > 0 && ownItems[ownItems.length - 1] === c ? ownItems.length - 1 : ownItems.indexOf(c);\n\n const appendableElement = findAppendableComponent(this);\n var controlElement = (c.element as Node).nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n\n if (cisBuilt && (c.element as Node).nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n\n controlElement = ComponentHelper.getContent.call(c) as Node;\n }\n\n let referenceNode: Node | null = null;\n\n const insertHost = appendableElement?.element as Node | undefined;\n const domReferenceOf = (n: ComponentBase | undefined): Node | null => {\n if (!n || !n.isBuilt) return null;\n const candidate: Node | null = n.isVisible\n ? (n.element as unknown as Node)\n : (((n.motif.options as any)?.placeholder as Node | undefined) ?? null);\n if (!candidate) return null;\n return (insertHost && candidate.parentNode === insertHost) ? candidate : null;\n };\n\n const siblings = this.controls.items;\n for (let i = currentIndex + 1; i < siblings.length; i++) {\n const candidate = domReferenceOf(siblings[i]);\n if (candidate) {\n referenceNode = candidate;\n break;\n }\n }\n if (!referenceNode) {\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n const close = this.motif.options.closeFragment as unknown as Node | undefined;\n referenceNode = (close && insertHost && close.parentNode === insertHost) ? close : null;\n } else {\n referenceNode = null;\n }\n }\n\n if (!c.isVisible) {\n const cfg = (c as any).motif.options?.hideStrategy ?? 'auto';\n const isFromListOrKeyed = !!((c as any).motif.options?.__fromList || typeof ((c as any).motif.options as any)?.indexkey !== 'undefined' || typeof (c as any).motif.options?.__key !== 'undefined');\n const strategy: 'placeholder' | 'detach' = cfg === 'placeholder' ? 'placeholder' : (cfg === 'detach' ? 'detach' : (isFromListOrKeyed ? 'detach' : 'placeholder'));\n if (strategy === 'placeholder') {\n if (!(c as any).motif.options.placeholder) {\n (c as any).motif.options.placeholder = dom.createComment(\"h\");\n }\n controlElement = ((c as any).motif.options.placeholder as unknown as Node);\n } else {\n return;\n }\n }\n\n if (insertHost && enterModeOf(this) === 'out-in') {\n const wait = pendingLeaves(insertHost, controlElement);\n if (wait) {\n c._base._enterSeq = (c._base._enterSeq ?? 0) + 1;\n wait.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n const parentNode = appendableElement?.element as Node | undefined;\n if (controlElement && parentNode && (controlElement === parentNode || controlElement.contains(parentNode))) {\n reportWarning('MJX104', []);\n\n } else {\n if (referenceNode) {\n try {\n appendableElement?.element.insertBefore(controlElement!, referenceNode);\n } catch {\n\n appendableElement?.element.appendChild(controlElement!);\n }\n } else {\n appendableElement?.element.appendChild(controlElement!);\n }\n }\n if (c.isVisible) {\n const enteredInBuild = !cisBuilt && c._base._enterSeq !== enterSeq;\n !enteredInBuild && wantsEnterTransition(c) && c.motif.options.transition.enterTransition(() => { });\n if (cisBuilt) {\n ComponentHelper.activateTree(c);\n }\n }\n },\n getContent(this: ComponentBase): any {\n if (this.isDisposed || !this.element) { return null; }\n if ((this.element as Node).nodeType == Node.COMMENT_NODE) {\n this.motif.options.cache?.appendChild(this.element as Node);\n this.controls.forEach(child => {\n this.motif.options.cache?.appendChild(ComponentHelper.getContent.call(child) as Node);\n });\n this.motif.options.cache?.appendChild(this.motif.options.closeFragment!);\n return this.motif.options.cache;\n } else {\n return this.element;\n }\n },\n routerClassing(this: ComponentBase, value: RouterClassingSettings) {\n try {\n const type = value.to;\n const path = value.path;\n if (this.isDisposed) return;\n\n const router = this.context?.router;\n if (!router) return;\n\n const requestPath = router.uri.startsWith('/') ? router.uri : '/' + router.uri;\n const targetPath = path ?? '';\n\n const exact = isExactMatch(requestPath, targetPath);\n\n /* ---------- Active (segment‑eşleşme, tam eşleşme dahil) ---------- */\n const active = exact || startsWithPath(requestPath, targetPath);\n\n if (value.activeClass && (type === 'all' || type === 'active')) {\n const clsList = value.activeClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, active));\n }\n\n if (active && (type === 'all' || type === 'active')) {\n value.onActive?.();\n } else if ((type === 'all' || type === 'active')) {\n value.offActive?.();\n }\n\n /* ---------- Exact (tam eşleşme) ---------- */\n if (value.exactClass && (type === 'all' || type === 'exact')) {\n const clsList = value.exactClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, exact));\n }\n\n if (exact && (type === 'all' || type === 'exact')) {\n value.onExact?.();\n } else if ((type === 'all' || type === 'exact')) {\n value.offExact?.();\n }\n } catch (error) {\n\n }\n\n }\n}\n\nfunction removeComponentDom(c: any, node: Node, alsoPlaceholder: boolean): void {\n const opts = c.motif?.options;\n const parent = node.parentNode;\n if (node.nodeType === Node.COMMENT_NODE) {\n if (!parent) return;\n const close = (opts?.closeFragment as unknown as Node | undefined) || null;\n if (close) {\n let current: Node | null = node;\n while (current) {\n const after: Node | null = current.nextSibling;\n try { parent.removeChild(current); } catch { }\n if (current === close) break;\n current = after;\n }\n } else {\n try { parent.removeChild(node); } catch { }\n }\n if (!alsoPlaceholder) return;\n } else if (parent) {\n try { parent.removeChild(node); } catch { }\n if (!alsoPlaceholder) return;\n }\n const placeholder = opts?.placeholder as Node | undefined;\n if (placeholder && placeholder.parentNode) {\n try { placeholder.parentNode.removeChild(placeholder); } catch { }\n }\n}\n\nfunction detachDomWithAnimation(c: any): void {\n const node = c.element as unknown as Node | null;\n if (!node || c._keepElementOnDispose === true) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n });\n } catch {\n removeComponentDom(c, node, false);\n }\n}\n\nasync function detachDomWithAnimationAsync(c: any): Promise<void> {\n const node = c.element as unknown as Node | null;\n if (!node || c._keepElementOnDispose === true) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n return new Promise<void>((resolve) => {\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n resolve();\n });\n } catch {\n removeComponentDom(c, node, false);\n resolve();\n }\n });\n}\n\nfunction disposeShallow(c: any): void {\n if (c.isDisposed) return;\n ComponentHelper.callDisposing.call(c, c);\n try {\n c._base._offAll();\n } catch {\n\n }\n c.motif.stopAnimations();\n\n c._base._deactivateBindings();\n if (c.controls?.items?.length) {\n for (const child of c.controls.items) {\n try {\n (child as any)._base._disposeShallow();\n } catch {\n\n }\n }\n }\n ComponentHelper.callDisposed.call(c, c);\n safeCall(() => { c._base.emiters.clear(); }, 'disposeShallow.emiters');\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n}\n\nfunction deepCleanup(c: any): void {\n try { c.parent = null; } catch { }\n\n try {\n c._eventHandlers?.clear();\n } catch {\n\n }\n c._eventHandlers = undefined;\n\n try { c.class?._countsStore?.clear(); } catch { }\n try { c.class?._watchersStore?.clear(); } catch { }\n try { c.attr?._attrMapStore?.clear(); } catch { }\n try { c.attr?._watchersStore?.clear(); } catch { }\n try {\n if (c.motif.options) {\n c.motif.options.cache = undefined;\n c.motif.options.closeFragment = undefined;\n c.motif.options.placeholder = undefined;\n }\n } catch {\n\n }\n try { c.element = null; } catch { }\n try { c.props = undefined; } catch { }\n try { c.childs = undefined; } catch { }\n try { c.class = undefined; } catch { }\n try { c.attr = undefined; } catch { }\n try { c.parent = null; } catch { }\n\n try { c.motif.options = undefined; } catch { }\n const keys = Object.keys(c);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'motif') continue;\n try { c[key] = undefined; } catch { }\n }\n c.isDisposed = true;\n}\n\nconst DISPOSE_STARTED = Promise.resolve();\n\nfunction subtreeDisposesSync(c: any, root: boolean): boolean {\n if (!root && c._disposing && !c.isDisposed) return false;\n if (c.disposeAsync !== ComponentBase.prototype.disposeAsync) return false;\n const opts = c.motif?.options;\n if (opts) {\n if (opts.transitionOut) return false;\n const t = opts[TRANSITION_SLOT] as TransitionApi | undefined;\n if (t) {\n if (t.activeAnimations && t.activeAnimations.length > 0) return false;\n if (t.activeCssCancel) return false;\n if (t.classes || (t.name && t.name.length > 0)) return false;\n }\n }\n const items = c.controls?.items;\n if (items) {\n for (let i = 0; i < items.length; i++) {\n const child = items[i];\n if (child && !child.isDisposed && !subtreeDisposesSync(child, false)) return false;\n }\n }\n return true;\n}\n\nconst teardownApplications = new WeakMap<object, Application>();\n\nfunction owningApplication(c: any): Application | null {\n for (let p = c; p; p = p.parent) {\n if (p.application) return p.application;\n const recorded = teardownApplications.get(p);\n if (recorded) return recorded;\n }\n return Application.main ?? null;\n}\n\nfunction disposePrefix(c: any, options: IDisposeOptions, asChild: boolean): void {\n const ctx = asChild ? 'disposeAsync' : 'dispose';\n if (Application._disposingCount > 0) {\n const app = owningApplication(c);\n if (app && app.state === 'disposing') teardownApplications.set(c, app);\n }\n if (!asChild && options?.skipLeaveTransition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n safeCall(() => { ComponentHelper.callDisposing.call(c, c); }, ctx + '.callDisposing');\n c._base._offAll();\n c._base._deactivateBindings();\n safeCall(() => { c.parent?.controls?.silentDetach?.(c, true); }, ctx + '.silentDetach');\n}\n\nfunction disposeFinish(c: any, options: IDisposeOptions, asChild: boolean): void {\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n if (asChild) {\n c.controls.items = [];\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'disposeAsync.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'disposeAsync.emiters');\n if (options?.deep) {\n c._base._deepCleanup();\n }\n return;\n }\n c.element = null;\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'dispose.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'dispose.emiters');\n c._base._offAll();\n c._base._deepCleanup();\n}\n\nasync function disposeRemainderAsync(c: any, options: IDisposeOptions, asChild: boolean, leave: Promise<void> | undefined): Promise<void> {\n if (leave) {\n await leave;\n } else {\n if (asChild) {\n await c.motif.stopAnimations();\n } else if (peekTransition(c)?.skipNextLeave) {\n await c.motif.stopAnimations();\n }\n await c._base._detachDomWithAnimationAsync();\n }\n if (!asChild && c.constructor.name !== 'TransportTo') {\n await disposeContentBlocks(c);\n }\n const childOptions: IDisposeOptions = { deep: options?.deep };\n await safeCallAsync(async () => {\n if (c.isDisposed) { return; }\n const ctrls = Array.from(c.controls.items) as any[];\n if (ctrls.length) {\n await Promise.all(ctrls.map(child => asChild\n ? safeCallAsync(async () => { await child.disposeAsync(childOptions); }, 'disposeAsync.disposeAsyncChildren.handler')\n : (async () => {\n try {\n await child.disposeAsync(childOptions);\n } catch (error) {\n reportError('MJX107', error);\n }\n })()));\n }\n }, asChild ? 'disposeAsync.disposeAsyncChildren' : 'dispose.disposeAsync');\n if (!asChild && c.isDisposed) { return; }\n disposeFinish(c, options, asChild);\n}\n\nfunction disposeRemainderSync(root: any, options: IDisposeOptions, asChild: boolean, rootDetached: boolean): Promise<void>[] | null {\n const childOptions: IDisposeOptions = { deep: options?.deep };\n const nodes: any[] = [root];\n const parents: number[] = [-1];\n let pending: Promise<void>[] | null = null;\n if (!rootDetached) detachDomWithAnimation(root);\n for (let n = 0; n < nodes.length; n++) {\n const node = nodes[n];\n if (node.isDisposed) continue;\n const items = node.controls?.items;\n if (!items || items.length === 0) continue;\n const ctrls = Array.from(items) as any[];\n for (let j = 0; j < ctrls.length; j++) {\n const child = ctrls[j];\n if (child.isDisposed) continue;\n if (child._disposing) {\n (pending ??= []).push(child._disposing);\n continue;\n }\n try {\n retireServiceOwner(child);\n child._disposing = root._disposing;\n disposePrefix(child, childOptions, true);\n detachDomWithAnimation(child);\n nodes.push(child);\n parents.push(n);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n const count = nodes.length;\n if (count > 1) {\n const heights = new Array<number>(count).fill(0);\n for (let i = count - 1; i >= 1; i--) {\n const p = parents[i];\n if (heights[i] + 1 > heights[p]) heights[p] = heights[i] + 1;\n }\n const order: number[] = [];\n for (let i = 1; i < count; i++) order.push(i);\n order.sort((a, b) => heights[a] - heights[b] || a - b);\n for (let k = 0; k < order.length; k++) {\n try {\n disposeFinish(nodes[order[k]], childOptions, true);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n if (pending) return pending;\n if (!asChild && root.isDisposed) { return null; }\n disposeFinish(root, options, asChild);\n return null;\n}\n\nconst BASE_PROTO = {\n _offAll(this: BaseCtx): void {\n const c: any = this.owner;\n if (!c._eventHandlers) return;\n for (const [full, set] of c._eventHandlers) {\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n for (const rec of set) {\n if (!rec || !rec.wrapped) { continue; }\n\n if ((rec as any).domEvent === false) { continue; }\n const cap = (rec as any).capture === true;\n try {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap);\n } catch { }\n\n try {\n if ((rec as any).capture === undefined) {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n } catch { }\n }\n }\n c._eventHandlers.clear();\n c._eventHandlers = undefined;\n },\n _deactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.deactivateAll(); } catch { }\n },\n _activateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.activateAll(); } catch { }\n },\n _reactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.reActivateAll(); } catch { }\n },\n _activatePreBindings(this: BaseCtx): void {\n if (this.prebinding_Activated) return;\n const c: any = this.owner;\n const registered = c.bindings?._items as IBaseBinding[] | undefined;\n if (registered && registered.length > 0) {\n c.bindings.items.filter((x: IBaseBinding) => x.propertyName == \"isWait\" || x.propertyName == \"display\").forEach((b: IBaseBinding) => {\n b.activate();\n }\n );\n }\n this.prebinding_Activated = true;\n },\n _detachDomWithAnimation(this: BaseCtx): void {\n detachDomWithAnimation(this.owner);\n },\n _detachDomWithAnimationAsync(this: BaseCtx): Promise<void> {\n return detachDomWithAnimationAsync(this.owner);\n },\n _disposeShallow(this: BaseCtx): void {\n disposeShallow(this.owner);\n },\n _deepCleanup(this: BaseCtx): void {\n deepCleanup(this.owner);\n },\n};\n\nfunction createBaseCtx(owner: ComponentBase): BaseCtx {\n const base: BaseCtx = Object.create(BASE_PROTO);\n base.owner = owner;\n base.prebinding_Activated = false;\n base.emiters = new ComponentEmiter(owner);\n return base;\n}\n\nconst fragmentCloseMarkers = new WeakMap<Comment, Comment>();\n\nvar globalId = 0;\n\nconst LIFECYCLE_X_EVENTS = new Set([\n 'building', 'built', 'initializing', 'initialized', 'disposing', 'disposed',\n 'config', 'configured', 'visibilitychanged', 'activated', 'deactivated'\n]);\n\nexport interface IDisposeOptions {\n deep?: boolean;\n skipLeaveTransition?: boolean;\n}\n\nexport interface SiblingsApi {\n all: () => ComponentBase[] | undefined;\n next: () => ComponentBase | undefined;\n prev: () => ComponentBase | undefined;\n nextAll: () => any;\n prevAll: () => any;\n}\n\nconst RAW_APPLICATION = Symbol('motif.rawApplication');\nconst SCOPED_SUBSCRIBERS = new Set<PropertyKey>(['on', 'onRouterChanged']);\n\n/**\n * Uygulamanın bileşene bağlı görünümü. `on`/`onRouterChanged` aboneliklerini sahibin ömrüne\n * kaydeder; diğer tüm üyeler (alanlar, metotlar, atamalar) uygulamanın kendisine yönlenir.\n */\nfunction createScopedContext(app: Application, owner: ComponentBase): Application {\n const cache = new Map<PropertyKey, { fn: Function; bound: Function }>();\n return new Proxy(app, {\n get(target, prop) {\n if (prop === RAW_APPLICATION) { return target; }\n const value = Reflect.get(target, prop, target);\n if (typeof value !== 'function') { return value; }\n const hit = cache.get(prop);\n if (hit && hit.fn === value) { return hit.bound; }\n const bound = SCOPED_SUBSCRIBERS.has(prop)\n ? (...args: any[]) => owner._trackContextSubscription(value.apply(target, args))\n : value.bind(target);\n cache.set(prop, { fn: value, bound });\n return bound;\n },\n set(target, prop, value) {\n return Reflect.set(target, prop, value, target);\n },\n });\n}\n\nexport abstract class ComponentBase<TElement extends ElementType = any, TProps extends object = any> extends Disposable {\n\n public readonly motif: ComponentMotif<this, TProps> = new ComponentMotif<this, TProps>(this, new ComponentOptionsImpl(this) as unknown as ComponentMotif<this, TProps>['options']);\n\n public element: TElement;\n public props: TProps;\n public isBuilt: boolean = false;\n public isInitialized: boolean = false;\n public isDisposed: boolean = false;\n public isConfigured: boolean = false;\n public isPainting: boolean = false;\n public isPainted: boolean = false;\n public isVisible: boolean = true;\n public controls: ControlCollection = new ControlCollection(this);\n\n private _eventHandlers?: Map<string, Set<{\n original: (sender: ComponentBase, e: EventArgs) => any,\n wrapped?: (e: Event) => void,\n dom?: boolean,\n domEvent?: boolean,\n capture?: boolean,\n type?: string\n }>>;\n private _isWait: boolean = false;\n public class: IClass<TElement> = new controlClass(this as any) as any as IClass<TElement>;\n public attr: controlAttribute<TElement> = new controlAttribute(this as any);\n public bindings = new BindingCollection(this);\n /** style(fn) izleyicisi: tek tek tutulur, yeniden çağrıda önceki durdurulur. */\n private _styleFx?: { stop: () => void; binding: IBaseBinding };\n\n public useModel<TModel>(modelCtor: TModel): UnwrapValueRefs<TModel> {\n return reactive<TModel>(modelCtor);\n }\n\n private _computeHideStrategy(): 'placeholder' | 'detach' {\n const cfg = this.motif.options?.hideStrategy ?? 'auto';\n if (cfg === 'placeholder') return 'placeholder';\n if (cfg === 'detach') return 'detach';\n if (this.motif.options?.__fromList || typeof (this.motif.options as any)?.indexkey !== 'undefined' || typeof this.motif.options?.__key !== 'undefined') {\n return 'detach';\n }\n return 'placeholder';\n }\n\n private _isInDom(): boolean {\n try {\n if (!this.element) return false;\n const node = this.element as unknown as Node;\n if (node.nodeType === Node.COMMENT_NODE) {\n return !!node.parentNode;\n }\n return !!node.parentNode;\n } catch { return false; }\n }\n public set isWait(value: boolean) {\n this._isWait = value;\n if (this.isBuilt) {\n if (value) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n return;\n }\n if (value === false && this.parent && this.parent.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n\n }\n public get isWait(): boolean {\n return this._isWait;\n }\n\n constructor(element: TElement, props: TProps = {} as TProps) {\n super();\n recordServiceOwner(this);\n if (this.onElementCreating) {\n this.element = this.onElementCreating.call(this);\n } else if ((props as any)?.onElementCreating) {\n this.element = (props as any).onElementCreating.call(this);\n } else {\n this.element = element;\n }\n\n if (props) {\n const refs = extractRefs(props, this);\n if (refs.length > 0) {\n for (const fn of takePendingRefs(this, refs)) {\n callReported(() => fn(this), 'MJX122', 'ref');\n }\n }\n }\n\n props && ParseProps(props, this);\n applyComponentOptions((props as any)?.options, this);\n this.props = props;\n\n // (class/style/id/tabindex/role/aria-*/data-*) kök düğüme (root node) düşer, prop'lar this.props'ta kalır.\n if (props) {\n const ctor0 = new.target as any;\n const plain = ctor0 === ComponentBase || Object.getPrototypeOf(ctor0) === ComponentBase;\n if (plain) applyPlainElementProps(props, this);\n else applyFallthroughProps(props, this);\n }\n\n\n ComponentHelper.callOnInitializing(this);\n if (this.isDisposed) return;\n this.controls.onAdd = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n if (this.isWait || this.parent?.isWait) return;\n ComponentHelper.internalBuild.call(this, c);\n\n }\n\n this.controls.onAddBeforeBuild = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n }\n\n\n this.controls.onRemove = (c) => {\n if (this._eventHandlers?.has('controlremoved')) this.motif.trigger('controlremoved', { control: c });\n }\n ComponentHelper.callOnInitialized(this);\n\n const ctor = new.target as any;\n const isBaseCtor = ctor === ComponentBase || Object.getPrototypeOf(ctor) === ComponentBase;\n if (isBaseCtor) {\n ComponentHelper.callConfig(this);\n } else {\n this._base._configDeferred = true;\n }\n\n }\n\n\n\n\n\n\n public childs?: any[];\n protected _base: BaseCtx = createBaseCtx(this);\n public parent: ComponentBase | null = null;\n public onElementCreating?(): TElement;\n public initializeComponent?(sender: ComponentBase): void;\n public onBuilding?(sender: ComponentBase, e: EventArgs): void;\n public onBuilt?(sender: ComponentBase, e: EventArgs): void;\n public onMounted?(sender: ComponentBase, e: EventArgs): void;\n public onInitializing?(sender: ComponentBase, e: EventArgs): void;\n public onInitialized?(sender: ComponentBase, e: EventArgs): void;\n public onDisposing?(sender: ComponentBase, e: EventArgs): void;\n public onDisposed?(sender: ComponentBase, e: EventArgs): void;\n public onConfig?(sender: ComponentBase, e: EventArgs): void;\n public onConfigured?(sender: ComponentBase, e: EventArgs): void;\n public onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni outlet'ten ayrılıp önbelleğe alındığında (RoutingEngine) tetiklenir. */\n public onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni önbellekten outlet'e yeniden bağlandığında (RoutingEngine) tetiklenir. */\n public onActivated?(sender: ComponentBase, e: EventArgs): void;\n public view?(): ComponentBase;\n private _scopedContext?: Application;\n\n public get context(): Application {\n const parentCtx: any = this.parent?.context;\n const app: Application = parentCtx?.[RAW_APPLICATION] ?? parentCtx ?? teardownApplications.get(this) ?? Application.main;\n if (!app) { return app; }\n if ((this._scopedContext as any)?.[RAW_APPLICATION] !== app) {\n this._scopedContext = createScopedContext(app, this);\n }\n return this._scopedContext!;\n }\n /** @internal context üzerinden açılan aboneliği bileşenin ömrüne bağlar; iptal fonksiyonunu döndürür. */\n public _trackContextSubscription(off: () => void): () => void {\n if (typeof off !== 'function') { return off; }\n if (this.isDisposed) { off(); return off; }\n const d = this._register(disposableCore.toDisposable(off));\n return () => { this._disposables.detach(d); off(); };\n }\n\n public build(building: boolean = true) {\n checkReservedMembers(this);\n ComponentHelper.callConfigured(this);\n this._base._activatePreBindings();\n if (this.isDisposed || !this.element || this.isWait) { return; }\n if (this.isBuilt || this.isWait) {\n return;\n }\n\n ComponentHelper.callBuilding(this);\n if (this.isDisposed) { return; }\n var ph: any = this.element;\n if (building) {\n ph = dom.createDocumentFragment();\n }\n const isFragment = (typeof this.element !== 'string' && (this.element as unknown as Node).nodeType === Node.COMMENT_NODE);\n if (isFragment) {\n this.motif.options.cache = dom.createDocumentFragment();\n (this.element as any).textContent = \"[\";\n this.motif.options.cache!.appendChild(this.element as unknown as Node);\n }\n if (this.isBuilt) {\n return;\n }\n\n\n ComponentHelper.callInitializeComponent(this);\n if (this.isDisposed) { return; }\n\n if (this.view) {\n const templ = this.view();\n this.controls.add(templ);\n if (this.isDisposed) { return; }\n }\n\n const deferredSelectValue = (this.element as any)?.nodeName === 'SELECT'\n ? this.bindings.items.filter(b => b.propertyName === 'value')\n : [];\n if (deferredSelectValue.length) {\n try {\n this.bindings.items.filter(b => !deferredSelectValue.includes(b)).forEach(b => b.activate());\n } catch { }\n } else {\n this._base._activateBindings();\n }\n\n for (const element of this.controls.items.filter(c => !c.isWait)) {\n element.parent = this;\n element.build(false);\n if (element.isWait) {\n continue;\n }\n var target = isFragment ? this.motif.options.cache : this.element;\n if (building) {\n if (element.motif.options.cache) {\n ph.appendChild(element.motif.options.cache);\n } else {\n ph.appendChild(element.element);\n }\n } else {\n if (element.motif.options.cache) {\n (target as any).appendChild(element.motif.options.cache);\n } else {\n (target as any).appendChild(element.element);\n }\n }\n if (element._base?._inactive && element.isVisible) {\n ComponentHelper.activateTree(element);\n }\n\n }\n\n if (this.isDisposed) { return; }\n if (wantsEnterTransition(this)) {\n const node = this.element as unknown as Node | null;\n if (node && (node as any).isConnected) {\n this.motif.options.transition.enterTransition(() => { });\n } else {\n const seq = this._base._enterSeq;\n queueMicrotask(() => {\n if (!this.isDisposed && this.isVisible && this.motif.options?.transition && this._base._enterSeq === seq) {\n this.motif.options.transition.enterTransition(() => { });\n }\n });\n }\n } else {\n clearNavDirection(this);\n }\n if (building) {\n try {\n var target = isFragment ? this.motif.options.cache : this.element;\n if ((target as any).nodeType === Node.TEXT_NODE) {\n (target as Text).appendData(ph.textContent);\n } else {\n if ((target as any).appendChild) {\n (target as any).appendChild(ph);\n } else {\n (target as any).append(ph);\n }\n }\n } catch (error) {\n }\n\n }\n if (deferredSelectValue.length) {\n try { deferredSelectValue.forEach(b => b.activate()); } catch { }\n }\n if (isFragment) {\n this.motif.options.closeFragment = dom.createComment(\"]\");\n this.motif.options.cache!.appendChild(this.motif.options.closeFragment!);\n if ((this.element as Node).nodeType === Node.COMMENT_NODE && this.motif.options.closeFragment) {\n fragmentCloseMarkers.set(this.element as Comment, this.motif.options.closeFragment);\n }\n }\n\n this.isBuilt = true;\n ComponentHelper.callBuilt(this);\n ComponentHelper.scheduleMounted(this);\n\n }\n\n public setState() {\n this.controls.forEach(c => {\n c.setState();\n });\n this._base._reactivateBindings();\n }\n\n public reState() {\n this._base._reactivateBindings();\n this.controls.forEach(c => {\n c.reState();\n });\n }\n\n public setText(value: string) {\n if (this.isDisposed || !this.element) { return; }\n if (isComponentLike(value)) { warnComponentInTextBinding(this, value); return; }\n if (this.element) {\n (this.element as any).textContent = value;\n }\n }\n\n public style(content: CSSStyleDeclaration | string | Array<any> | Object | (() => any)) {\n if (this.isDisposed) { return this as any }\n const styleObj = (this.element as any)?.style as CSSStyleDeclaration | undefined;\n if (!styleObj) return this;\n if (typeof content === 'function') {\n this._stopStyleEffect();\n let prevKeys: string[] = [];\n let prevWasString = false;\n const run = () => effect(() => {\n const v = (content as () => any)();\n if (this.isDisposed) return;\n const so: any = (this.element as any)?.style;\n if (!so) return;\n if (typeof v === 'string') {\n so.cssText = v;\n prevKeys = [];\n prevWasString = true;\n } else if (v && typeof v === 'object') {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) {\n if (!(k in v)) { try { so[k] = ''; } catch { } }\n }\n Object.assign(so, v);\n prevKeys = Object.keys(v);\n } else {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) { try { so[k] = ''; } catch { } }\n prevKeys = [];\n }\n });\n let current = run();\n const stop = () => { try { current(); } catch { } };\n const binding: IBaseBinding = {\n propertyName: '__style',\n dataSource: null,\n activate() { /* no-op */ },\n reActivate() {\n stop();\n current = run();\n },\n deactivate() { stop(); }\n } as any;\n try { this.bindings.add(binding); } catch { }\n this._styleFx = { stop, binding };\n return this;\n }\n if (typeof content === 'string') {\n (styleObj as any).cssText = content;\n } else if (content && typeof content === 'object') {\n Object.assign(styleObj as any, content);\n }\n return this;\n }\n\n private _stopStyleEffect() {\n const fx = this._styleFx;\n if (!fx) return;\n this._styleFx = undefined;\n try { fx.stop(); } catch { }\n try { this.bindings.remove(fx.binding); } catch { }\n }\n\n private _addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void) {\n this.motif.on(event as any, handler as any);\n }\n private async _show(): Promise<any> {\n\n\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) { return; }/* A*/\n\n if (this.parent && enterModeOf(this.parent) === 'out-in') {\n const showHost = ((this.motif.options.placeholder as Node | undefined)?.parentNode)\n ?? (findAppendableComponent(this.parent)?.element as Node | undefined);\n const wait = pendingLeaves(showHost, this.element as unknown as Node);\n if (wait) {\n const seq = this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n return wait.then(() => {\n if (this.isDisposed || this._base._showSeq !== seq) return;\n return this._show();\n });\n }\n }\n\n if (peekTransition(this)?.activeAnimations?.length) {\n safeCall(async () => {\n await Promise.all(this.motif.options.transition.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n }, 'show.waitForLeaveAnimations');\n }\n /** A*/\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n const needAttach = !this._isInDom() && this.parent && this.parent.isBuilt && !this.isWait;\n this.isVisible = true;\n if (needAttach) {\n ComponentHelper.internalBuild.call(this.parent!, this);\n }\n return;\n } else {\n /** A*/\n const placeholderParent = (this.motif.options.placeholder as Node)?.parentElement;\n const expectedParent = findAppendableComponent(this.parent!)?.element;\n\n if (this.motif.options.placeholder && placeholderParent && placeholderParent !== expectedParent) {\n reportWarning('MJX106', []);\n this.isVisible = true;\n if (this.parent?.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n return;\n }\n\n /** A*/\n wantsEnterTransition(this) && this.motif.options.transition.enterTransition(() => { });\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n c.motif.show();\n });\n this.isVisible = true;\n ComponentHelper.activateTree(this, false);\n return;\n }\n var parent = (this.motif.options.placeholder as Node)?.parentElement;\n if (parent) {\n parent.replaceChild(this.element as Node, this.motif.options.placeholder!);\n this.isVisible = true;\n ComponentHelper.activateTree(this);\n }\n }\n }\n private async _hide(): Promise<any> {\n\n if (this.isDisposed || !this.element) { return; }\n this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n if (!this.isVisible) { return; }\n\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n await this._base._detachDomWithAnimationAsync();\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n return;\n } else {\n const transition = this.motif.options.transition;\n const skip = transition.skipNextLeave === true;\n if (skip) transition.skipNextLeave = false;\n const finish = () => {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n if (skip && c.isVisible && c.element && !c.isDisposed && c.motif.options?.transition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n c.motif.hide();\n });\n this.isVisible = false;\n ComponentHelper.deactivateTree(this, false);\n return;\n }\n var parent = (this.element as Node).parentElement;\n // if (!parent) {\n // var parentComp = findAppendableComponent(this.parent!);\n // if (parentComp && parentComp.isBuilt) {\n // } else {\n if (parent) {\n if (!this.motif.options.placeholder) this.motif.options.placeholder = dom.createComment(\"h\");\n parent.replaceChild(this.motif.options.placeholder!, this.element as Node);\n\n }\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n };\n if (skip) {\n finish();\n return;\n }\n return transition.leaveTransition(finish).finished;\n }\n\n }\n private _toggle() {\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n }\n\n private async _on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event);\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2).toLowerCase();\n if (xName === \"mounted\") {\n let sub: IDisposable | undefined;\n const stop = onElementAttached(this.element as Element, () => {\n if (sub) {\n this._base._mountedSubs?.get(cb)?.delete(sub);\n this._disposables.detach(sub);\n }\n if (this.isDisposed) { return; }\n const ev = { cancel: false } as EventArgs;\n callReported(() => (cb as any).length <= 1 ? (cb as any)(ev) : cb(this, ev as any), 'MJX122', 'x:mounted');\n });\n if (stop) {\n sub = this._register(disposableCore.toDisposable(stop));\n const subs: Map<Function, Set<IDisposable>> = this._base._mountedSubs ??= new Map();\n let set = subs.get(cb);\n if (!set) { set = new Set(); subs.set(cb, set); }\n set.add(sub);\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.on(\"on\" + xName, cb as any);\n return this;\n }\n }\n\n const [name, ...mods] = full.split(\":\");\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n const options: AddEventListenerOptions = {};\n if (mods.includes(\"once\")) options.once = true;\n if (mods.includes(\"passive\")) options.passive = true;\n if (mods.includes(\"capture\")) options.capture = true;\n\n const wrapped = (ev: Event) => {\n if (mods.includes(\"self\") && ev.target !== this.element) return;\n if (mods.includes(\"trusted\") && !ev.isTrusted) return;\n let res: any;\n try {\n if (cb && (cb as any).length <= 1) {\n res = (cb as any)(ev as any);\n } else if (cb) {\n res = cb(this, ev as any);\n }\n } catch (error) {\n reportError('MJX123', error, evt);\n }\n if (res && typeof res.then === 'function') {\n res.then(undefined, (error: unknown) => reportError('MJX123', error, evt));\n }\n const prevent = () => { if (typeof (ev as any)?.preventDefault === 'function') ev.preventDefault(); };\n const stop = () => { if (typeof (ev as any)?.stopPropagation === 'function') ev.stopPropagation(); };\n if (mods.includes(\"prevent\")) { prevent(); }\n if (mods.includes(\"stop\")) { stop(); }\n if (res && (res as any).cancel === true) {\n prevent();\n stop();\n }\n };\n if (domEvent) {\n (this.element as any).addEventListener(evt, wrapped as EventListener, options);\n }\n\n\n this._eventHandlers ??= new Map();\n const key = full.toLowerCase();\n const set = this._eventHandlers.get(key) ?? new Set();\n set.add({ original: cb as any, wrapped, capture: !!options.capture, domEvent: !!domEvent, type: evt });\n this._eventHandlers.set(key, set);\n this._register(disposableCore.toDisposable(() => {\n this.motif.off(event, cb);\n }));\n return this;\n }\n\n private async _trigger(event: any, ev: any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n const name = String(event).toLowerCase();\n safeCall(() => {\n var eh = this._eventHandlers?.get(name);\n if (eh) {\n eh.forEach(rec => {\n try {\n (rec.wrapped as any)(ev);\n } catch {\n\n }\n });\n }\n }, 'trigger');\n return this;\n }\n private async _off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event).toLowerCase();\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2);\n if (xName === \"mounted\") {\n const set = this._base._mountedSubs?.get(cb);\n if (set) {\n this._base._mountedSubs.delete(cb);\n for (const sub of set) {\n this._disposables.delete(sub);\n }\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.off(\"on\" + xName, cb as any);\n }\n return this;\n }\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n if (!this._eventHandlers) return this;\n const set = this._eventHandlers.get(full);\n if (!set) return this;\n for (const rec of Array.from(set)) {\n if (rec.original === (cb as any)) {\n if ((rec as any).domEvent !== false) {\n const cap = (rec as any).capture === true;\n safeCall(() => { (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap); }, 'off.removeEventListener');\n safeCall(() => {\n if ((rec as any).capture === undefined) {\n (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n }, 'off.removeEventListener.fallback');\n }\n set.delete(rec);\n break;\n }\n }\n if (set.size === 0) this._eventHandlers.delete(full);\n return this;\n }\n /** Süren bertaraf: ikinci bir dispose/disposeAsync çağrısı yenisini başlatmaz, bunu bekler. */\n private _disposing?: Promise<void>;\n\n public override dispose(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, false);\n }\n\n private async _disposeCore(options: IDisposeOptions, asChild: boolean): Promise<void> {\n disposePrefix(this, options, asChild);\n let leave: Promise<void> | undefined;\n if (!asChild && !peekTransition(this)?.skipNextLeave) {\n leave = this._base._detachDomWithAnimationAsync();\n }\n await undefined;\n if (liveContentBlocks.live === 0 && subtreeDisposesSync(this, true)) {\n const pending = disposeRemainderSync(this, options, asChild, leave !== undefined);\n if (pending) {\n await Promise.all(pending);\n if (!asChild && this.isDisposed) { return; }\n disposeFinish(this, options, asChild);\n }\n return;\n }\n await disposeRemainderAsync(this, options, asChild, leave);\n }\n\n public disposeAsync(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, true);\n }\n\n\n protected async _clear(): Promise<any> {\n if (this.isDisposed == true) { return; }\n if (this.motif.options && this.motif.options.disableDisposal) { return; };\n await this.controls.clearAsync();\n //if (this.onupdated) this.onupdated(this as any, { data: this.model, field: '', source: 'clear' })\n // return new Promise((resolveOuter: any) => {\n // this.controls.forEach(async (control, index) => {\n // if (index === this.controls.length - 1) {\n // dom.window.setTimeout(resolveOuter, 0);\n // await control.dispose();\n }\n\n using<T>(waitable: Promise<any>, onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected?: ((reason: any) => never | PromiseLike<never>) | undefined | null) {\n waitable.then(\n (value: T) => { this && !this.isDisposed && onfulfilled ? onfulfilled(value) : ''; },\n (reason: any) => { this && !this.isDisposed && onrejected ? onrejected(reason) : '' });\n }\n doWork<T>(waitable: Promise<T> | PromiseLike<T>): Promise<T> {\n return Promise.resolve(waitable).then((value: T) => {\n if (this && !this.isDisposed) {\n return value\n } else {\n return motifError('MJX108');\n };\n }) as Promise<T>;\n }\n\n private _siblingsApi?: SiblingsApi;\n private _siblingsSet?: boolean;\n\n get siblings(): SiblingsApi {\n if (this._siblingsSet) { return this._siblingsApi as SiblingsApi; }\n if (this.isDisposed && !this.motif?.options) { return this._siblingsApi as SiblingsApi; }\n return this._siblingsApi ??= this._createSiblingsApi();\n }\n\n set siblings(value: SiblingsApi) {\n this._siblingsApi = value;\n this._siblingsSet = true;\n }\n\n private _createSiblingsApi(): SiblingsApi {\n return {\n all: () => { return this.parent?.controls.items },\n next: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx + 1];\n },\n prev: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx - 1];\n },\n nextAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(idx + 1);\n },\n prevAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(0, idx);\n }\n };\n }\n\n public get serviceProvider(): ServiceProvider | null {\n let c: ComponentBase | null = this as unknown as ComponentBase;\n while (c) {\n const p = (c as any).provider as ServiceProvider | undefined;\n if (p) return p;\n const recorded = teardownApplications.get(c);\n if (recorded) return recorded.state === 'disposed' ? null : recorded.provider;\n c = c.parent;\n }\n try { return Application.main?.provider ?? null; } catch { return null; }\n }\n\n public getService<T>(token: abstract new (...args: any[]) => T): T | null;\n public getService<T = any>(token: string | symbol | object): T | null;\n public getService(token: any): any {\n try {\n\n const sp = this.serviceProvider;\n if (sp) {\n return sp._getFor(this, token);\n }\n reportWarning('MJX407', [describeServiceToken(token)], { token });\n } catch (err) {\n reportWarning('MJX408', [describeServiceToken(token), String((err as any)?.message ?? err)], { token, error: err });\n }\n return null;\n }\n $(selector: string) {\n if (this.isDisposed || !this.element) {\n return {\n fromDom: () => null,\n fromComponent: () => [] as ComponentBase[]\n };\n }\n var result = {\n fromDom: () => {\n var findContainer = findAppendableComponent(this)?.element;\n var findingTarget;\n if (!findContainer) {\n findingTarget = document;\n } else {\n findingTarget = findContainer;\n }\n if (findingTarget) {\n var elements = findingTarget.querySelectorAll(selector);\n return elements;\n }\n return null;\n },\n fromComponent: () => {\n const findingComponent = findAppendableComponent(this);\n const root = findingComponent ?? this;\n const found: ComponentBase[] = [];\n const walk = (cmp: ComponentBase) => {\n const el = cmp.element as any;\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n const matches: ((sel: string) => boolean) | undefined = (el.matches || el.msMatchesSelector || el.webkitMatchesSelector);\n if (typeof matches === 'function') {\n try { if (matches.call(el, selector)) { found.push(cmp); } } catch { }\n }\n }\n if (cmp.controls && cmp.controls.items && cmp.controls.items.length) {\n for (const child of cmp.controls.items) { walk(child); }\n }\n };\n\n walk(root);\n return found;\n }\n }\n return result;\n }\n\n private async _stopAnimations() {\n const t = peekTransition(this);\n try { t?.activeCssCancel?.(); } catch { }\n try {\n if (t?.activeAnimations?.length) {\n try {\n await Promise.all(t.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n } catch { /* ignore */ }\n }\n\n } catch (error) {\n\n }\n if (this.isDisposed) return;\n if (t) t.activeAnimations = [];\n }\n // return this;\n\n}\n\n\nfunction findContentBlocks(root: ComponentBase, results: ComponentBase[] = []): ComponentBase[] {\n if (!root || root.isDisposed) return results;\n\n if (root.constructor.name === 'TransportTo') {\n results.push(root);\n }\n if (root.controls && root.controls.items) {\n root.controls.items.forEach(child => findContentBlocks(child, results));\n }\n\n return results;\n}\n\nasync function disposeContentBlocks(root: ComponentBase): Promise<any> {\n if (liveContentBlocks.live === 0) return;\n const contentBlocks = findContentBlocks(root);\n return await Promise.all(contentBlocks.map(async (block) => {\n block.motif.options.transition.skipNextLeave = root.motif.options.transition.skipNextLeave;\n for (const element of block.controls.items) {\n element.motif.options.transition.skipNextLeave = block.motif.options.transition.skipNextLeave;\n element.dispose({ skipLeaveTransition: true });\n element.isDisposed = true;\n }\n await block.dispose()\n }));\n}\n\nconst _appliedRefs = new WeakMap<object, Set<Function>>();\n\nexport function takePendingRefs(component: ComponentBase, ref: any): Function[] {\n const fns: Function[] = (Array.isArray(ref) ? ref : [ref]).filter((fn: any) => typeof fn === 'function');\n if (fns.length === 0) return fns;\n let applied = _appliedRefs.get(component);\n if (!applied) {\n applied = new Set();\n _appliedRefs.set(component, applied);\n }\n const pending: Function[] = [];\n for (const fn of fns) {\n if (applied.has(fn)) continue;\n applied.add(fn);\n pending.push(fn);\n }\n return pending;\n}\n\nconst isCallableRef = (ref: any): boolean => typeof ref === 'function' || Array.isArray(ref);\n\nexport function extractRefs(props: any, component?: ComponentBase): any[] {\n const refs: any[] = [];\n if (!props || typeof props !== 'object') return refs;\n if (Object.prototype.hasOwnProperty.call(props, 'ref')) {\n if (isCallableRef(props.ref)) {\n refs.push(props.ref);\n delete props.ref;\n } else if (component && props.ref && typeof props.ref === 'object') {\n props.ref = component;\n }\n }\n const runover = props.runover;\n if (runover && typeof runover === 'object' && Object.prototype.hasOwnProperty.call(runover, 'ref')) {\n if (isCallableRef(runover.ref)) {\n refs.push(runover.ref);\n const rest = { ...runover };\n delete rest.ref;\n props.runover = rest;\n } else if (component && runover.ref && typeof runover.ref === 'object') {\n runover.ref = component;\n }\n }\n return refs.length === 0 ? refs : ([] as any[]).concat(...refs);\n}\n\nconst LIFECYCLE_HANDLER_LISTS: Record<string, keyof LifecycleStorage> = {\n 'initializecomponent': '_initializeComponentHandlers',\n 'oninitializecomponent': '_onInitializeComponentHandlers',\n 'onbuilding': '_onBuildingHandlers',\n 'onbuilt': '_onBuiltHandlers',\n 'onmounted': '_onMountedHandlers',\n 'oninitializing': '_onInitializingHandlers',\n 'oninitialized': '_onInitializedHandlers',\n 'onconfig': '_onConfigHandlers',\n 'onconfigured': '_onConfiguredHandlers',\n 'onvisibilitychanged': '_onVisibilityChangedHandlers',\n 'onactivated': '_onActivatedHandlers',\n 'ondeactivated': '_onDeactivatedHandlers',\n 'ondisposing': '_onDisposingHandlers',\n 'ondisposed': '_onDisposedHandlers',\n};\n\nfunction collectLifecycleHandlers(component: ComponentBase, lowerKey: string, value: any): boolean {\n const listName = Object.prototype.hasOwnProperty.call(LIFECYCLE_HANDLER_LISTS, lowerKey) ? LIFECYCLE_HANDLER_LISTS[lowerKey] : undefined;\n if (!listName) return false;\n const fns: any[] = Array.isArray(value) ? value : [value];\n if (fns.length === 0 || !fns.every(fn => typeof fn === 'function')) return false;\n (component as any)._base[listName] ??= [];\n const list = (component as any)._base[listName] as Function[];\n for (const fn of fns) {\n if (!list.includes(fn)) list.push(fn);\n }\n return true;\n}\n\nexport function ParseProps(props: any, component: ComponentBase): any {\n if (props) {\n if (component.motif.options.props) {\n Object.assign(component.motif.options.props, props);\n } else {\n component.motif.options.props = {};\n Object.assign(component.motif.options.props, props);\n }\n var keys = Object.keys(props);\n if (keys.length === 0) return;\n keys.forEach(key => {\n if (key == 'initializeComponent' || key == 'oninitializeComponent' || key.startsWith('on')) {\n if (collectLifecycleHandlers(component, key.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n } else if (key == 'childs') {\n const flat: ComponentBase[] = ([] as any[]).concat(...props[key] as any);\n component.childs = flat;\n delete props[key];\n } else if (key === 'transition') {\n applyTransitionProp(props[key], component);\n delete props[key];\n } else if (componentMethods.hasOwnProperty(key.toLowerCase()) || componentMethods.hasOwnProperty(\"on\" + key.toLowerCase())) {\n var eventKey;\n if (!key.toLowerCase().startsWith(\"on\") && key.toLowerCase() !== \"initializecomponent\") {\n eventKey = \"on\" + key;\n } else {\n eventKey = key;\n }\n (component as any)[eventKey] = props[key];\n delete props[key];\n } else if (key.startsWith(\"on\")) {\n\n component.motif.on(key as any, props[key]);\n } else if (key.startsWith(\"x-\")) {\n\n var nkey = key.replace(\"x-\", \"on\");\n if (key.toLowerCase() == \"x-wait\") {\n component.bindings.wait(props[key]);\n\n } else if (key.toLowerCase() == \"x-display\") {\n component.bindings.display(props[key]);\n } else {\n if (collectLifecycleHandlers(component, nkey.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n }\n\n\n delete props[key];\n } else if (key.startsWith(\"runover\")) {\n\n ParseProps(props[key], component);\n delete props[key];\n } else if (key.startsWith(\"preconfig\")) {\n component.motif.options._preconfig = props[key];\n delete props[key];\n } else {\n // var callback = props[key];\n // if (typeof callback === \"function\") {\n // } else {\n }\n });\n }\n}\n\nconst _transitionSources = new WeakMap<ComponentBase, any>();\n\nfunction setTransition(component: ComponentBase, value: any, live: boolean): void {\n const transition = component.motif.options.transition;\n if (typeof value === 'string' && value.length > 0) {\n transition.name = value;\n if (live) transition.classes = undefined;\n } else if (value && typeof value === 'object') {\n if (typeof value.name === 'string' && value.name.length > 0) {\n transition.name = value.name;\n }\n if (!('mode' in value)) {\n transition.classes = value;\n } else {\n const { mode, ...classes } = value;\n if (isTransitionMode(mode)) {\n transition.mode = mode;\n }\n if (Object.keys(classes).length > 0) {\n transition.classes = classes;\n }\n }\n } else if (live) {\n transition.name = '';\n transition.classes = undefined;\n }\n}\n\nexport function applyTransitionProp(value: any, component: ComponentBase): void {\n if (!component || component.isDisposed) return;\n if (value === undefined || value === null) return;\n if (_transitionSources.get(component) === value) return;\n _transitionSources.set(component, value);\n if (typeof value === 'function') {\n component.bindings.watch(() => {\n const current = value();\n if (component.isDisposed) return;\n setTransition(component, current, true);\n });\n return;\n }\n setTransition(component, value, false);\n}\n\nexport function isComponentLike(value: any): boolean {\n if (value instanceof ComponentBase) return true;\n return Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase);\n}\n\nconst _textBindingWarned = new WeakSet<object>();\n\nfunction warnComponentInTextBinding(component: ComponentBase, value: any): void {\n if (_textBindingWarned.has(component)) return;\n _textBindingWarned.add(component);\n reportWarning('MJX204', [], { value: Array.isArray(value) ? `ComponentBase[${value.length}]` : 'ComponentBase' });\n}\n\nconst COMPONENT_OPTION_KEYS = ['hideStrategy', 'disableDisposal'] as const;\n\nexport function applyComponentOptions(source: any, component: ComponentBase): void {\n if (!source || typeof source !== 'object' || !component || component.isDisposed) return;\n for (const key of COMPONENT_OPTION_KEYS) {\n if (source[key] !== undefined) (component.motif.options as any)[key] = source[key];\n }\n}\n\n/** `applyPlainElementProps`'un DOM'a yazmayacağı çerçeve anahtarları. */\nconst PLAIN_ELEMENT_SKIP = new Set([\n 'ref', 'key', 'indexkey', 'inject', 'options', 'props', 'settings', 'isSvg',\n 'childs', 'initializeComponent', 'runover', 'transition', 'preconfig', 'nodes', 'onElementCreating'\n]);\n\nconst SPREAD_HTML_KEYS = new Set(['innerhtml', 'srcdoc']);\nconst SPREAD_URL_ATTRIBUTES = new Set(['href', 'src', 'action', 'formaction', 'xlink:href']);\nconst JAVASCRIPT_URL = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\n\nfunction isJavascriptUrl(value: unknown): boolean {\n if (value === undefined || value === null || typeof value === 'boolean') return false;\n try { return JAVASCRIPT_URL.test(String(value)); } catch { return false; }\n}\n\nfunction guardSpreadUrl(key: string, read: () => any): () => any {\n return () => {\n let value = read();\n if (typeof value === 'function') value = value();\n if (typeof value === 'function') value = value();\n if (!isJavascriptUrl(value)) return value;\n reportWarning('MJX125', [key]);\n return null;\n };\n}\n\nexport function applyPlainElementProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const keys = Object.keys(props);\n if (keys.length === 0) return;\n let attrs: Record<string, any> | null = null;\n let applied: Map<string, any> | null = null;\n for (const key of keys) {\n if (PLAIN_ELEMENT_SKIP.has(key)) continue;\n if (key.startsWith('x-') || key.startsWith('x:') || key.startsWith('__')) continue;\n let v = props[key];\n if (v === undefined) continue;\n if (/^on/i.test(key)) {\n if (typeof v === 'function') component.motif.on(key as any, v as any);\n continue;\n }\n if (typeof v === 'function' && v.length > 0) continue;\n const lowerKey = key.toLowerCase();\n if (SPREAD_HTML_KEYS.has(lowerKey)) {\n reportWarning('MJX124', [key]);\n continue;\n }\n if (SPREAD_URL_ATTRIBUTES.has(lowerKey)) {\n if (typeof v === 'function') {\n v = guardSpreadUrl(key, v);\n } else if (isJavascriptUrl(v)) {\n reportWarning('MJX125', [key]);\n continue;\n }\n }\n (applied ??= appliedDomProps(component)).set(key, v);\n if (key === 'class' || key === 'className') {\n component.class.add(v && typeof v === 'object' && !Array.isArray(v) ? [v] : v);\n } else if (key === 'style') {\n component.style(v);\n } else if (key === 'value' || key === 'checked' || key === 'selected') {\n component.bindings.add(key, v);\n } else {\n (attrs ??= {})[key] = v;\n }\n }\n if (attrs) component.attr.add(attrs);\n}\n\nconst _appliedDomProps = new WeakMap<ComponentBase, Map<string, any>>();\nfunction appliedDomProps(component: ComponentBase): Map<string, any> {\n let m = _appliedDomProps.get(component);\n if (!m) { m = new Map(); _appliedDomProps.set(component, m); }\n return m;\n}\n\n/** Bileşen etiketinden köke düşen ortak öznitelikler. */\nconst FALLTHROUGH_KEYS = new Set(['class', 'className', 'style', 'id', 'tabindex', 'role']);\nfunction isFallthroughKey(key: string): boolean {\n return FALLTHROUGH_KEYS.has(key) || key.startsWith('aria-') || key.startsWith('data-');\n}\n\nexport function applyFallthroughProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const applied = _appliedDomProps.get(component);\n let subset: Record<string, any> | null = null;\n for (const key of Object.keys(props)) {\n if (!isFallthroughKey(key)) continue;\n const v = props[key];\n if (v === undefined || v === null) continue;\n if (typeof v === 'function' && v.length > 0) continue;\n if (applied && applied.has(key) && Object.is(applied.get(key), v)) continue;\n (subset ??= {})[key] = v;\n }\n if (subset) applyPlainElementProps(subset, component);\n}\n\nconst componentMethods: Record<string, unknown> = {\n \"oninitializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"initializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfigured\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfig\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilding\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilt\": (sender: ComponentBase, e: EventArgs) => { },\n \"onmounted\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitializing\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitialized\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposing\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposed\": (sender: ComponentBase, e: EventArgs) => { },\n \"onvisibilitychanged\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondeactivated\": (sender: ComponentBase, e: EventArgs) => { },\n \"onactivated\": (sender: ComponentBase, e: EventArgs) => { },\n};\n\n\nfunction findAppendableComponent(component: ComponentBase): ComponentBase | null | undefined {\n\n return safeCall<ComponentBase | null | undefined>(() => {\n if (!component || component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findAppendableComponent(component.parent);\n }\n return null;\n }, 'findAppendableComponent', null);\n\n}\n\n\nfunction findParentElement(component: ComponentBase): ComponentBase | null {\n\n try {\n if (component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findParentElement(component.parent);\n }\n } catch (error) {\n throw error;\n }\n return null;\n}\n\n\nfunction onElementAttached(element: Element, callback: () => any): (() => void) | null {\n if (document.contains(element)) {\n callback();\n return null;\n }\n\n let done = false;\n const observer = new MutationObserver(() => {\n if (done) { return; }\n if (document.contains(element)) {\n done = true;\n observer.disconnect();\n callback();\n }\n });\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n });\n\n return () => {\n if (done) { return; }\n done = true;\n try { observer.disconnect(); } catch { /* ignore */ }\n };\n}\n\nexport function notifyActivated(component: ComponentBase): void {\n unpinServiceOwner(component);\n ComponentHelper.activateTree(component);\n}\nexport function notifyDeactivated(component: ComponentBase): void {\n pinServiceOwner(component);\n ComponentHelper.deactivateTree(component);\n}","import { ComponentBase } from \"./componentBase\";\nimport { reportError } from \"../common/diagnostics\";\n\nconst MAX_FACTORY_DEPTH = 100;\n\nexport function resolveComponent(input: unknown, props?: any): any {\n let current: any = input;\n let depth = 0;\n while (typeof current === \"function\") {\n if (current.prototype instanceof ComponentBase) {\n return new current(props);\n }\n if (++depth > MAX_FACTORY_DEPTH) {\n reportError('MJX112', undefined, MAX_FACTORY_DEPTH);\n return current;\n }\n current = current(props);\n }\n return current;\n}","import { dom } from \"../\";\nimport { ComponentBase, IBaseProp, ParseProps, applyComponentOptions, applyFallthroughProps, applyTransitionProp, extractRefs, safeCallSilent, takePendingRefs, untracked } from \"../\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { ElementType, EventArgs } from \"./types\";\nimport { callReported, motifError } from \"../common/diagnostics\";\n\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nfunction readElementTag(ctor: any): string | undefined {\n try {\n const tag = ctor?.elementTag;\n if (typeof tag === 'string') {\n const trimmed = tag.trim();\n if (trimmed) return trimmed;\n }\n } catch { /* ignore */ }\n return undefined;\n}\n\nfunction createDeclaredElement(tag: string, ctor: any, props: any): any {\n const declaredNs = typeof ctor?.elementNamespace === 'string' && ctor.elementNamespace\n ? ctor.elementNamespace as string\n : undefined;\n const isSvg = declaredNs === SVG_NAMESPACE || props?.options?.isSvg === true || props?.__isSvgElement === true;\n if (isSvg) {\n if (props && typeof props === 'object') { (props as any).isSvg = true; }\n return dom.createElementNS(declaredNs || SVG_NAMESPACE, tag, props);\n }\n return dom.createElement(tag, props);\n}\n\nexport class Component<TElement extends ElementType = any, TProps extends object = any> extends ComponentBase<TElement, TProps> {\n\n public static elementTag?: string;\n public static elementNamespace?: string;\n\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>);\n constructor(element: TElement | string, options: IBaseProp<TProps>);\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor(elementOrParams?: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor() {\n const derivedCtor: any = new.target;\n var args = arguments;\n var elementOrParams;\n var options;\n if (args.length === 1) {\n elementOrParams = args[0];\n } else if (args.length === 2) {\n elementOrParams = args[0];\n options = args[1];\n }\n\n if (elementOrParams instanceof Function) {\n elementOrParams = resolveComponent(elementOrParams, options);\n if (isOptionsObject(elementOrParams)) {\n return materializeOptionsObject(elementOrParams, options);\n }\n }\n if (Array.isArray(elementOrParams)) {\n const letter = CreateFragment();\n super(letter, {} as TProps);\n var ops = Object.create(options || {});\n for (const key in elementOrParams) {\n const element = elementOrParams[key];\n this.controls.add(new Component(element, ops as any));\n }\n } else\n if (typeof elementOrParams === 'string' && elementOrParams.trim().length > 0) {\n // İlk parametre element ise\n if (!options) { options = {} as any; }\n\n if (options?.options && options.options.isSvg || options?.__isSvgElement) {\n const el = dom.createElementNS('http://www.w3.org/2000/svg', elementOrParams, options);\n (options as any)['isSvg'] = true;\n super(el as TElement, options as TProps);\n } else {\n const el = dom.createElement(elementOrParams, options);\n\n super(el as TElement, options as TProps);\n }\n // DOM prop'ları (spread/attr) ComponentBase ctor'ında uygulanır: düz Component'ta tümü,\n // alt sınıflarda yalnızca ortak öznitelikler (applyFallthroughProps).\n } else if (elementOrParams instanceof Node) {\n super(elementOrParams as any, options as TProps);\n } else if (elementOrParams instanceof ComponentBase) {\n // Hazır instance geldi; olduğu gibi kullan\n return elementOrParams as any;\n }\n else {\n // Constructor'a element verilmedi (undefined/null/boş) ya da element olarak\n // tanınmayan bir değer geldi. bu iki olasılığa neden olur :\n // a) Sınıf bir element türü bildirmiş → o türde gerçek element üretilir\n // b) Bildirmemiş → FRAGMENT: kök yorum düğümü (yer tutucu),\n // çocuklar açılış/kapanış işaretçileri arasına render edilir\n // Her bileşenin bir elementi olmak zorunda olduğundan, fragment kök olarak yorum düğümü kullanılır.\n // props hangi argümanda olduğu çağrı biçimine göre değişir:\n // new Component({ ...props }) → props İLK argüman\n // super(void 0, props) / super(null, props) → props İKİNCİ argüman\n const fragmentProps = (elementOrParams && typeof elementOrParams === 'object')\n ? elementOrParams\n : options;\n\n // Sınıf bir element türü bildirdiyse (statik elementTag — derleyici\n // Component<HTMLDivElement> generic'inden üretir fragment yerine\n // O TÜRDE gerçek element oluşturulur.\n const declaredTag = readElementTag(derivedCtor);\n if (declaredTag) {\n const declaredEl = createDeclaredElement(declaredTag, derivedCtor, fragmentProps);\n super(declaredEl as TElement, (fragmentProps ?? {}) as TProps);\n } else {\n super(CreateFragment(), (fragmentProps ?? {}) as TProps);\n }\n\n // Her iki durumda da JSX çocukları (props.childs) içeriğe eklenir.\n // Alt sınıflar initializeComponent'i ezdiği için FragmentNode.initializeComponent'e güvenilemez.\n const kids = this.childs;\n if (Array.isArray(kids) && kids.length) {\n for (const kid of kids) {\n if (kid) this.controls.add(kid);\n }\n }\n }\n }\n\n\n}\n\n\ntype viewFn<P extends object> = (props: P) => any;\n\nexport function FNComponent<P extends object>(view: viewFn<P>) {\n\n return (props: P) => {\n //debugger; \n var comp = motifFragment({\n ...props as any,\n });\n comp.controls.add(view(props) as any);\n return comp;\n };\n}\n\nfunction applyJsxFrameworkProps(target: any, props: any, refs: any[]): any {\n if (!props || typeof props !== 'object') return target;\n if (!(target instanceof ComponentBase)) return target;\n\n applyRefs(target, refs.concat(extractRefs(props)));\n\n // Fonksiyon bileşeni etiketindeki ortak öznitelikler (class/id/aria-*…) döndürülen köke düşer.\n // Kök `<div {...props}/>` ise aynı değerler zaten uygulanmıştır; ikinci kez uygulanmaz.\n applyFallthroughProps(props, target as ComponentBase);\n applyComponentOptions((props as any).options, target as ComponentBase);\n if (Object.prototype.hasOwnProperty.call(props, 'transition')) {\n applyTransitionProp((props as any).transition, target as ComponentBase);\n }\n\n const runover = (props as any).runover;\n if (!runover || typeof runover !== 'object') return target;\n\n const handlers: any[] = (target as any)._base?._onConfigHandlers;\n const configuredBefore = Array.isArray(handlers) ? handlers.length : 0;\n const initializingBefore = handlerCount(target, '_onInitializingHandlers');\n const initializedBefore = handlerCount(target, '_onInitializedHandlers');\n ParseProps(runover, target as ComponentBase);\n\n callAddedHandlers(target, '_onInitializingHandlers', initializingBefore, 'onInitializing');\n callAddedHandlers(target, '_onInitializedHandlers', initializedBefore, 'onInitialized');\n\n // Fonksiyon bileşeninin kökü düz bir `Component` olduğunda config aşaması yapıcıda\n // ÇOKTAN çalışmıştır (`isConfigured`); sonradan kaydedilen preconfig/onConfig bir daha\n // çağrılmayacağı için burada elle koşulur. Yalnızca yeni eklenenler çalıştırılır.\n if ((target as any).isConfigured) {\n const pre = (target as any).motif.options?._preconfig;\n if (typeof pre === 'function') {\n safeCallSilent(() => pre(target), 'motifComponent.preconfig');\n }\n const after: any[] = (target as any)._base?._onConfigHandlers;\n if (Array.isArray(after)) {\n for (let i = configuredBefore; i < after.length; i++) {\n const fn = after[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', 'onConfig');\n }\n }\n }\n return target;\n}\n\nfunction applyRefs(target: any, refs: any[]): any {\n if (target instanceof ComponentBase) {\n for (const fn of takePendingRefs(target, refs)) {\n callReported(() => fn(target), 'MJX122', 'ref');\n }\n }\n return target;\n}\n\nfunction handlerCount(target: any, listName: string): number {\n const list: any[] = target._base?.[listName];\n return Array.isArray(list) ? list.length : 0;\n}\n\nfunction callAddedHandlers(target: any, listName: string, from: number, hook: string): void {\n const list: any[] = target._base?.[listName];\n if (!Array.isArray(list)) return;\n for (let i = from; i < list.length; i++) {\n if (target.isDisposed) return;\n const fn = list[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', hook);\n }\n}\n\nfunction resolveChildExpression(probe: any): any {\n if (typeof probe !== 'function') return undefined;\n let value: any;\n try { value = untracked(probe); } catch { return undefined; }\n if (value instanceof ComponentBase) return value;\n if (Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase)) return value;\n return undefined;\n}\n\nexport function motifComponent(element: unknown, props?: any) {\n\n // Etiket adı: element yaratımı (HTML/SVG) ve spread prop uygulaması Component ctor'ının string parametresinde\n if (typeof element === \"string\") {\n if (element === \"text\" && props && props.__childExpr) {\n const resolved = resolveChildExpression(props.__childExpr);\n if (resolved !== undefined) return resolved;\n }\n return new Component(element, props);\n }\n\n if (element instanceof ComponentBase || element instanceof Component) {\n return element;\n }\n\n // Class component → new, function component/factory → çağır (try/catch tespiti yok)\n if (typeof element === \"function\") {\n const refs = element.prototype instanceof ComponentBase ? [] : extractRefs(props);\n const el = resolveComponent(element, props);\n if (typeof el == \"object\" && el !== null && 'el' in el) {\n return applyRefs(materializeOptionsObject(el, props), refs);\n }\n // Sınıf bileşeninde props yapıcıda işlendi; fonksiyon bileşeninde ise dış etiketin\n // çerçeve prop'ları (direktifler, initializeComponent, yaşam döngüsü) hiçbir yere uygulanmamıştı.\n return applyJsxFrameworkProps(el, props, refs);\n }\n\n if (typeof element == \"object\" && element !== null && 'el' in element) {\n return materializeOptionsObject(element, props);\n }\n return new Component(element, props);\n}\n\nfunction isOptionsObject(value: unknown): boolean {\n return typeof value == \"object\" && value !== null && !(value instanceof ComponentBase) && 'el' in value;\n}\n\nexport function unwrapModule(result: any): any {\n if (result && typeof result === \"object\" && !(result instanceof ComponentBase) && result.default != null) {\n return result.default;\n }\n return result;\n}\n\nfunction describeLoaded(value: any): string {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'array';\n if (typeof value === \"object\" && (Object.prototype.toString.call(value) === '[object Module]' || value.__esModule)) return 'module';\n return typeof value;\n}\n\nexport function assertLoadedComponent(value: unknown): void {\n if (value === null || typeof value !== \"object\") return;\n if (value instanceof ComponentBase || Array.isArray(value) || value instanceof Node) return;\n if (typeof (value as any).then === \"function\") return;\n throw motifError('MJX127', describeLoaded(value));\n}\n\nexport function resolveToComponent(input: unknown, props?: any): any {\n const resolved = resolveComponent(input, props);\n if (isOptionsObject(resolved)) {\n return materializeOptionsObject(resolved, undefined);\n }\n return resolved;\n}\n\nfunction materializeOptionsObject(spec: any, props: any): any {\n const result: any = motifComponent(spec.el, props);\n Object.getOwnPropertyNames(spec).forEach(key => {\n if (key !== 'el' && key !== 'ctor') {\n result[key] = spec[key];\n }\n });\n if (typeof spec.ctor === 'function') {\n callReported(() => spec.ctor.call(result, props), 'MJX122', 'ctor');\n }\n return result;\n}\nexport function motifFragment(props?: any) {\n return new FragmentNode(props);\n}\n\nfunction CreateFragment() {\n const fragment = dom.createComment(\"\");\n return fragment;\n}\n\nexport class FragmentNode<TProps extends object = any> extends Component<Comment, TProps> {\n\n constructor(options?: IBaseProp<TProps>);\n constructor(element: any, props: any);\n constructor(arg1?: any, arg2?: any) {\n if (arguments.length <= 1) {\n super(CreateFragment() as any, arg1 as any);\n } else {\n super(CreateFragment() as any, arg2 as any);\n }\n }\n\n public override initializeComponent(sender: ComponentBase): void {\n const s = (this as any).childs as ComponentBase[] | undefined;\n if (Array.isArray(s) && s.length) {\n for (const child of s) {\n if (child) this.controls.add(child);\n }\n }\n safeCallSilent(() => {\n const nodes = (this.motif.options as any)?.props?.nodes as any[] | undefined;\n if (Array.isArray(nodes) && nodes.length) {\n for (const n of nodes) {\n if (n) this.controls.add(n);\n }\n }\n }, 'Fragment.initializeComponent.props.nodes');\n }\n}\n\n\nexport class motifDocument {\n public router: any = {};\n public context: any = {};\n public run(appElement: Node, app: Component): Component {\n const MainApp = new Component(appElement, {});\n app.parent = MainApp;\n MainApp.controls.add(app);\n //const renderer = new motifRenderer();\n //renderer.render(MainApp);\n MainApp.build();\n return MainApp;\n //console.warn(\"MainApp:\", MainApp);\n }\n}\n","import { IDisposable } from \"../\";\r\nimport { errorHandler } from \"../common/ErrorHandler\";\r\nimport { motifError, reportError } from \"../common/diagnostics\";\r\n\r\nconst glblths = globalThis as any;\r\nfunction getCurrentDom() {\r\n if (glblths && glblths.motifDom) {\r\n return glblths.motifDom.window.document;\r\n }\r\n return glblths.document;\r\n}\r\n\r\nexport function setDom(dom: any) {\r\n if (glblths) {\r\n glblths.motifDom = dom;\r\n }\r\n}\r\n\r\nexport const dom = {\r\n get window() {\r\n if (glblths && glblths.window) {\r\n return glblths.window;\r\n } else if (glblths && glblths) {\r\n return glblths.motifDom.window;\r\n } else {\r\n return glblths;\r\n }\r\n },\r\n _created: new Map<any, any>(),\r\n document: getCurrentDom(),\r\n createElement(tagName: string, options?: any): any {\r\n const doc = getCurrentDom();\r\n if (!doc) {\r\n throw motifError('MJX101', tagName);\r\n }\r\n if (tagName === \"text\") {\r\n return doc.createTextNode('');\r\n }\r\n if (!this._created.has(tagName)) {\r\n const view = doc.createElement(tagName, options);\r\n this._created.set(tagName, view);\r\n }\r\n const tpl = this._created.get(tagName);\r\n return tpl.cloneNode(false);\r\n },\r\n\r\n createDocumentFragment(): any {\r\n try {\r\n var cd = getCurrentDom();\r\n if (cd) {\r\n return cd.createDocumentFragment();\r\n }\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createDocumentFragment', error);\r\n }\r\n\r\n },\r\n createComment(content: any) {\r\n try {\r\n return getCurrentDom()?.createComment(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createComment', error);\r\n }\r\n\r\n },\r\n createTextNode(content: any) {\r\n try {\r\n return getCurrentDom()?.createTextNode(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createTextNode', error);\r\n }\r\n\r\n },\r\n querySelectorAll(selectors: string) {\r\n try {\r\n return getCurrentDom()?.querySelectorAll(selectors)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.querySelectorAll', error);\r\n }\r\n\r\n },\r\n createElementNS(namepsaceUri: string, tagName: string, options?: any): any {\r\n try {\r\n return getCurrentDom()?.createElementNS(namepsaceUri, tagName, options)\r\n } catch (error) {\r\n reportError('MJX103', error, tagName);\r\n }\r\n\r\n },\r\n convertToSvgElement(element: Element): Element {\r\n\r\n const SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\r\n const tagName = element.tagName.toLowerCase();\r\n const newSvgElement = document.createElementNS(SVG_NAMESPACE, tagName);\r\n\r\n for (const attr of element.attributes) {\r\n newSvgElement.setAttribute(attr.name, attr.value);\r\n }\r\n\r\n while (element.firstChild) {\r\n newSvgElement.appendChild(element.firstChild);\r\n }\r\n\r\n const parent = element.parentNode;\r\n if (parent) {\r\n parent.replaceChild(newSvgElement, element);\r\n }\r\n\r\n return newSvgElement;\r\n },\r\n\r\n get body() {\r\n return getCurrentDom()?.body;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nconst SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\r\nexport enum Namespace {\r\n HTML = 'http://www.w3.org/1999/xhtml',\r\n SVG = 'http://www.w3.org/2000/svg'\r\n}\r\n\r\n\r\nfunction _$<T extends Element>(namespace: Namespace, description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n const match = SELECTOR_REGEX.exec(description);\r\n\r\n if (!match) {\r\n throw motifError('MJX102', description);\r\n }\r\n\r\n const tagName = match[1] || 'div';\r\n let result: T;\r\n\r\n if (namespace !== Namespace.HTML) {\r\n result = dom.createElementNS(namespace as string, tagName) as T;\r\n } else {\r\n result = dom.createElement(tagName) as unknown as T;\r\n }\r\n\r\n if (match[3]) {\r\n result.id = match[3];\r\n }\r\n if (match[4]) {\r\n result.className = match[4].replace(/\\./g, ' ').trim();\r\n }\r\n if (attrs) {\r\n Object.entries(attrs).forEach(([name, value]) => {\r\n if (typeof value === 'undefined') {\r\n return;\r\n }\r\n\r\n if (/^on\\w+$/.test(name)) {\r\n (<any>result)[name] = value;\r\n } else if (name === 'selected') {\r\n if (value) {\r\n result.setAttribute(name, 'true');\r\n }\r\n\r\n } else {\r\n result.setAttribute(name, value);\r\n }\r\n });\r\n }\r\n result.append(...children);\r\n return result as T;\r\n}\r\n\r\nexport function $<T extends HTMLElement>(description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n return _$(Namespace.HTML, description, attrs, ...children);\r\n}\r\n\r\n\r\n\r\nclass DomListener implements IDisposable {\r\n\r\n private _handler: (e: any) => void;\r\n private _node: EventTarget;\r\n private readonly _type: string;\r\n private readonly _options: boolean | AddEventListenerOptions;\r\n\r\n constructor(node: EventTarget, type: string, handler: (e: any) => void, options?: boolean | AddEventListenerOptions) {\r\n this._node = node;\r\n this._type = type;\r\n this._handler = handler;\r\n this._options = (options || false);\r\n this._node.addEventListener(this._type, this._handler, this._options);\r\n }\r\n\r\n dispose(): void {\r\n if (!this._handler) {\r\n // Already disposed\r\n return;\r\n }\r\n\r\n this._node.removeEventListener(this._type, this._handler, this._options);\r\n\r\n // Prevent leakers from holding on to the dom or handler func\r\n this._node = null!;\r\n this._handler = null!;\r\n }\r\n}\r\n\r\nexport function addDisposableListener<K extends keyof GlobalEventHandlersEventMap>(node: EventTarget, type: K, handler: (event: GlobalEventHandlersEventMap[K]) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, options: AddEventListenerOptions): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCaptureOrOptions?: boolean | AddEventListenerOptions): IDisposable {\r\n return new DomListener(node, type, handler, useCaptureOrOptions);\r\n}\r\n\r\n\r\n\r\n","// import { dom } from \"../browser\";\r\nimport { TRANSITION_SLOT } from \"../component/optionsSlots\";\r\n// import { effect } from \"../store\";\r\nimport { dom } from \"../\";\r\nimport { Component, ComponentBase, resolveComponent, notifyDeactivated } from \"../\";\r\nimport { reportError } from \"../common/diagnostics\";\r\nimport { checkReservedMembers } from \"../component/componentBase\";\r\n\r\nexport class ControlCollection {\r\n constructor(private owner: ComponentBase) {\r\n\r\n }\r\n items: ComponentBase[] = [];\r\n\r\n add(...control: ComponentBase[]): ComponentBase[]\r\n add(index?: number, ...control: ComponentBase[]): ComponentBase[]\r\n add(): ComponentBase[] {\r\n const count = arguments.length;\r\n if (count === 0) return [] as ComponentBase[];\r\n const first = arguments[0];\r\n if (count === 1 && first instanceof ComponentBase) {\r\n if (first.isDisposed) return [] as ComponentBase[];\r\n return [this._insertOne(undefined, first)];\r\n }\r\n const args = Array.from(arguments) as any[];\r\n if (typeof args[0] === 'number' && args.length > 1) {\r\n const index = args[0] as number;\r\n const children = ([] as ComponentBase[]).concat(...args.slice(1));\r\n return this.insert(index, ...children);\r\n } else {\r\n const children = ([] as ComponentBase[]).concat(...args);\r\n return this.insert(undefined, ...children);\r\n }\r\n }\r\n insert(index?: number, ...controls: ComponentBase[]): ComponentBase[] {\r\n const flat: ComponentBase[] = ([] as any[]).concat(...controls as any);\r\n return flat.filter(x => x != undefined && !x.isDisposed).map(control => this._insertOne(index, control));\r\n }\r\n private _insertOne(index: number | undefined, control: ComponentBase): ComponentBase {\r\n control = resolveComponent(control);\r\n if (typeof control == 'string' || typeof control == 'number' || typeof control == 'boolean' || typeof control == 'bigint') {\r\n control = new Component(dom.createTextNode(control), null as any);\r\n }\r\n checkReservedMembers(control);\r\n if (control.parent) { control.parent.controls.detach(control); }\r\n\r\n if (index != undefined && index >= 0) {\r\n this.items.splice(index, 0, control);\r\n } else {\r\n this.items.push(control);\r\n }\r\n control.parent = this.owner;\r\n\r\n const pendingLeave = (control as any).__pendingLeave as PendingLeave | undefined;\r\n if (pendingLeave) {\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n pendingLeave.promise.then(() => {\r\n if (control.isDisposed || this.owner.isDisposed || control.parent !== this.owner) return;\r\n if (this.onAdd && this.owner.isBuilt) this.onAdd(control);\r\n });\r\n return control;\r\n }\r\n\r\n if (this.onAdd && this.owner.isBuilt) {\r\n this.onAdd(control);\r\n }\r\n\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n return control;\r\n }\r\n remove(control: ComponentBase) {\r\n var index = this.items.indexOf(control);\r\n if (index > -1) {\r\n this.items.splice(index, 1);\r\n try { control.dispose(); } catch { /* ignore */ }\r\n }\r\n }\r\n detach(control: ComponentBase): Promise<void> {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return Promise.resolve();\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return Promise.resolve();\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n return runLeaveThenDetach(control, () => { if (this.onRemove) this.onRemove(control); });\r\n }\r\n\r\n silentDetach(control: ComponentBase, unlinkOnly: boolean = false) {\r\n if (unlinkOnly) { this.silentUnlink(control); return; }\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return;\r\n control.parent = null;\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n\r\n silentUnlink(control: ComponentBase) {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n }\r\n\r\n async clearAsync(): Promise<void> {\r\n const items = this.items.splice(0, this.items.length); \r\n await Promise.all(items.map(c => c.dispose())); \r\n }\r\n\r\n\r\n clear() {\r\n var items = this.items.splice(0, this.items.length);\r\n items.forEach(c => {\r\n try { c.dispose(); } catch { /* ignore */ }\r\n });\r\n }\r\n get length() {\r\n return this.items.length;\r\n }\r\n forEach(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n this.items.forEach(callbackfn);\r\n }\r\n map(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n return this.items.map(callbackfn);\r\n }\r\n onAdd?: (control: ComponentBase) => void;\r\n onRemove?: (control: ComponentBase) => void;\r\n onAddBeforeBuild?: (control: ComponentBase) => void;\r\n move(control: ComponentBase, before?: ComponentBase | null): void {\r\n if (!control || control.isDisposed) return;\r\n if (before === control) return;\r\n if (control.parent !== this.owner) return;\r\n if (before && before.parent !== this.owner) return;\r\n\r\n const oldIndex = this.items.indexOf(control);\r\n if (oldIndex === -1) return;\r\n const beforeIndex = before ? this.items.indexOf(before) : -1;\r\n if (before && beforeIndex === -1) return;\r\n\r\n const alreadyInPlace = before ? beforeIndex === oldIndex + 1 : oldIndex === this.items.length - 1;\r\n if (alreadyInPlace) return;\r\n\r\n\r\n this.items.splice(oldIndex, 1);\r\n\r\n if (!before) {\r\n this.items.push(control);\r\n } else {\r\n const newBeforeIndex = this.items.indexOf(before);\r\n const insertAt = newBeforeIndex >= 0 ? newBeforeIndex : this.items.length;\r\n this.items.splice(insertAt, 0, control);\r\n }\r\n\r\n if ((control as any).isWait) {\r\n return;\r\n }\r\n const container = findAppendableElement(this.owner);\r\n if (!container) return;\r\n\r\n const referenceNode: Node | null = before ? (before.element as unknown as Node) : computeAppendReference(this.owner);\r\n\r\n moveComponentDomRange(control, container, referenceNode);\r\n }\r\n\r\n moveToIndex(control: ComponentBase, index: number): void {\r\n if (!control || control.isDisposed) return;\r\n if (!Number.isFinite(index as any)) return;\r\n if (index < 0) index = 0;\r\n if (index > this.items.length) index = this.items.length;\r\n if (this.items.indexOf(control) === -1) return;\r\n const before = index >= this.items.length ? null : this.items[index];\r\n this.move(control, before);\r\n }\r\n}\r\n\r\n/** Owner için DOM'a eklenebilir gerçek element'i bulur. */\r\nfunction findAppendableElement(owner: ComponentBase): HTMLElement | Node | null {\r\n let c: ComponentBase | null = owner;\r\n while (c) {\r\n const node = c.element as any as Node;\r\n if (node && node.nodeType !== Node.COMMENT_NODE && node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && node.nodeType !== Node.TEXT_NODE) {\r\n return node as any;\r\n }\r\n c = c.parent;\r\n }\r\n return null;\r\n}\r\n\r\n/** Owner fragment ise sona ekleme referansını, değilse null döndürür. */\r\nfunction computeAppendReference(owner: ComponentBase): Node | null {\r\n const node = owner.element as any as Node;\r\n if (node && node.nodeType === Node.COMMENT_NODE) {\r\n return (owner as any).motif.options?.closeFragment || null;\r\n }\r\n return null;\r\n}\r\n\r\n/** Bir component'in kök DOM aralığını (tek element veya fragment aralığı) referenceNode öncesine taşır. */\r\nfunction moveComponentDomRange(control: ComponentBase, container: Node, referenceNode: Node | null) {\r\n const node = control.element as any as Node | null;\r\n if (!node) return;\r\n\r\n if (node.nodeType !== Node.COMMENT_NODE) {\r\n try { container.insertBefore(node, referenceNode); } catch { }\r\n return;\r\n }\r\n\r\n const open = node;\r\n const close = ((control as any).motif.options?.closeFragment as Node | undefined) || null;\r\n if (!close) { try { container.insertBefore(open, referenceNode); } catch { } return; }\r\n\r\n if (referenceNode && isNodeInRange(open, close, referenceNode)) {\r\n referenceNode = close.nextSibling;\r\n }\r\n\r\n const frag = (dom.createDocumentFragment && dom.createDocumentFragment()) || container.ownerDocument?.createDocumentFragment?.() || (function () { try { return document.createDocumentFragment(); } catch { return null as any; } })();\r\n if (!frag) {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { container.insertBefore(current, referenceNode); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n return;\r\n }\r\n\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { (frag as any).appendChild(current); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n try { container.insertBefore(frag as any, referenceNode); } catch { }\r\n}\r\n\r\nfunction isNodeInRange(open: Node, close: Node, test: Node): boolean {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n if (current === test) return true;\r\n if (current === close) break;\r\n current = current.nextSibling;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX120', undefined);\r\n }\r\n return false;\r\n}\r\n\r\nfunction detachComponentDom(control: ComponentBase): void {\r\n const node = control.element as unknown as Node | null;\r\n if (!node) return;\r\n const opts: any = (control as any).motif.options;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n if (!node.parentNode) return;\r\n const close = (opts?.closeFragment as Node | undefined) || null;\r\n const cache: DocumentFragment = opts.cache ?? (opts.cache = dom.createDocumentFragment());\r\n let current: Node | null = node;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n cache.appendChild(current);\r\n if (!close || current === close) break;\r\n current = after;\r\n }\r\n return;\r\n }\r\n if (node.parentNode) {\r\n node.parentNode.removeChild(node);\r\n return;\r\n }\r\n const placeholder = opts?.placeholder as Node | undefined;\r\n if (placeholder && placeholder.parentNode) placeholder.parentNode.removeChild(placeholder);\r\n}\r\n\r\ninterface PendingLeave {\r\n promise: Promise<void>;\r\n finish: () => void;\r\n}\r\n\r\nfunction runLeaveThenDetach(control: ComponentBase, notify: () => void): Promise<void> {\r\n let resolveDone: () => void = () => { };\r\n const promise = new Promise<void>(resolve => { resolveDone = resolve; });\r\n let pending = 1;\r\n let finished = false;\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n if ((control as any).__pendingLeave?.promise === promise) delete (control as any).__pendingLeave;\r\n if (!control.isDisposed) {\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n try {\r\n notify();\r\n } catch (error) {\r\n reportError('MJX118', error);\r\n }\r\n resolveDone();\r\n };\r\n const arrive = () => {\r\n pending--;\r\n if (pending === 0) finish();\r\n };\r\n const visit = (c: ComponentBase) => {\r\n if (!c || c.isDisposed || !c.element || !c.isVisible || c.isWait) return;\r\n const node = c.element as unknown as Node;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n c.controls.items.forEach(visit);\r\n return;\r\n }\r\n if (node.nodeType !== Node.ELEMENT_NODE) return;\r\n pending++;\r\n let arrived = false;\r\n const once = () => {\r\n if (arrived) return;\r\n arrived = true;\r\n arrive();\r\n };\r\n try {\r\n const opts: any = c.motif.options;\r\n if (!opts[TRANSITION_SLOT] && !opts.transitionOut) {\r\n once();\r\n return;\r\n }\r\n opts.transition.leaveTransition(once);\r\n } catch {\r\n once();\r\n }\r\n };\r\n (control as any).__pendingLeave = { promise, finish } as PendingLeave;\r\n visit(control);\r\n arrive();\r\n return promise;\r\n}\r\n","import { ComponentBase, IBaseProp } from \".\";\nimport { Component, assertLoadedComponent, resolveToComponent, unwrapModule } from \"./Component\";\nimport { Frame } from \"./Frame\";\nimport { disposableCore } from \"../disposable\";\nimport { motifError, reportError } from \"../common/diagnostics\";\n\nexport interface LazyOptions<T = any> { \n Loaderview?: ComponentBase; \n Placeholderview?: ComponentBase; \n Fallbackview?: ComponentBase;\n minDelayMs?: number;\n onError?: (error: unknown) => void;\n mapResult?: (result: T) => any; \n timeoutMs?: number;\n signal?: AbortSignal;\n retry?: number | LazyRetryOptions;\n onRetry?: (attempt: number, error: unknown) => void;\n}\n\nexport interface LazyRetryOptions {\n count: number;\n delayMs?: number;\n whenOnline?: boolean;\n}\n\nfunction normalizeRetry(retry: LazyOptions['retry']): Required<LazyRetryOptions> {\n if (typeof retry === 'number') return { count: Math.max(0, Math.floor(retry)), delayMs: 500, whenOnline: true };\n if (retry && typeof retry === 'object') {\n return {\n count: Math.max(0, Math.floor(retry.count || 0)),\n delayMs: Math.max(0, retry.delayMs ?? 500),\n whenOnline: retry.whenOnline !== false,\n };\n }\n return { count: 0, delayMs: 0, whenOnline: false };\n}\n\nfunction defaultMapper(result: any) {\n return unwrapModule(result);\n}\n\n\n\nexport function Lazy<T>(props: { caller: () => Promise<T>, options?: LazyOptions<T> }): Component;\nexport function Lazy(props: any): Component;\nexport function Lazy(props: any): Component {\n const opts: LazyOptions<any> = (props && props.options) || {};\n const frame = new Frame();\n const timers = new Set<ReturnType<typeof setTimeout>>();\n const trackTimer = (id: ReturnType<typeof setTimeout>) => { try { timers.add(id); } catch { } return id; };\n const clearAllTimers = () => {\n try { timers.forEach(id => { try { clearTimeout(id); } catch { } }); } catch { }\n try { timers.clear(); } catch { }\n };\n try { frame.motif.register(disposableCore.toDisposable(() => clearAllTimers())); } catch { }\n const initial = opts.Placeholderview ?? opts.Loaderview;\n if (initial != null) {\n frame.navigate(resolveToComponent(initial));\n }\n\n const attemptLoad = () => {\n if (!opts.timeoutMs && !opts.signal) {\n return props.caller();\n }\n const parts: Promise<any>[] = [props.caller()];\n if (opts.timeoutMs && opts.timeoutMs > 0) {\n parts.push(new Promise<any>((_, reject) => {\n const id = trackTimer(setTimeout(() => reject(motifError('MJX110', opts.timeoutMs!)), opts.timeoutMs));\n parts[0].finally(() => { try { clearTimeout(id); timers.delete(id); } catch { } }).catch(() => { /* noop */ });\n if (opts.signal) {\n const onAbortClear = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\n try { opts.signal.addEventListener(\"abort\", onAbortClear, { once: true }); } catch { }\n }\n }));\n }\n if (opts.signal) {\n parts.push(new Promise<any>((_, reject) => {\n if (opts.signal!.aborted) {\n reject(motifError('MJX111'));\n return;\n }\n const onAbort = () => {\n opts.signal!.removeEventListener(\"abort\", onAbort);\n clearAllTimers();\n reject(motifError('MJX111'));\n };\n opts.signal!.addEventListener(\"abort\", onAbort, { once: true });\n }));\n }\n return Promise.race(parts);\n };\n\n const retry = normalizeRetry(opts.retry);\n const cleanups = new Set<() => void>();\n try { frame.motif.register(disposableCore.toDisposable(() => { cleanups.forEach(c => { try { c(); } catch { } }); cleanups.clear(); })); } catch { }\n\n const waitBeforeRetry = (attempt: number): Promise<boolean> => new Promise<boolean>(resolve => {\n let settled = false;\n const finish = (go: boolean) => {\n if (settled) return;\n settled = true;\n cleanups.delete(cancel);\n try { if (onlineHandler) window.removeEventListener('online', onlineHandler); } catch { }\n try { if (id !== undefined) { clearTimeout(id); timers.delete(id); } } catch { }\n try { opts.signal?.removeEventListener('abort', onAbort); } catch { }\n resolve(go);\n };\n const cancel = () => finish(false);\n const onAbort = () => finish(false);\n let onlineHandler: (() => void) | null = null;\n let id: ReturnType<typeof setTimeout> | undefined = undefined;\n cleanups.add(cancel);\n try { opts.signal?.addEventListener('abort', onAbort, { once: true }); } catch { }\n const schedule = () => { id = trackTimer(setTimeout(() => finish(true), retry.delayMs * attempt)); };\n const offline = retry.whenOnline && typeof navigator !== 'undefined' && navigator.onLine === false && typeof window !== 'undefined';\n if (offline) {\n onlineHandler = () => {\n try { window.removeEventListener('online', onlineHandler!); } catch { }\n onlineHandler = null;\n schedule();\n };\n window.addEventListener('online', onlineHandler);\n } else {\n schedule();\n }\n });\n\n const loadWithRetry = async (): Promise<any> => {\n let attempt = 0;\n for (; ;) {\n try {\n return await attemptLoad();\n } catch (err) {\n if (opts.signal?.aborted || (frame as any).isDisposed || attempt >= retry.count) throw err;\n attempt++;\n try { opts.onRetry?.(attempt, err); } catch { }\n const go = await waitBeforeRetry(attempt);\n if (!go || opts.signal?.aborted || (frame as any).isDisposed) throw err;\n }\n }\n };\n\n const loadPromise = retry.count > 0 ? loadWithRetry() : attemptLoad();\n\n const startTs = Date.now();\n\n const fail = (err: any) => {\n try { opts.onError?.(err); } catch { /* swallow */ }\n if (opts.signal?.aborted) return;\n if (opts.Fallbackview != null) {\n frame.navigate(resolveToComponent(opts.Fallbackview));\n } else {\n reportError('MJX126', err);\n try { frame.motif.clear().catch(() => { }); } catch { }\n }\n };\n\n const place = (target: any) => {\n let component: any;\n try {\n component = resolveToComponent(target);\n assertLoadedComponent(component);\n } catch (err) {\n fail(err);\n return;\n }\n frame.navigate(component);\n };\n\n loadPromise\n .then((result: any) => {\n if (opts.signal?.aborted) { return; }\n const mapper = opts.mapResult ?? defaultMapper;\n const target = mapper(result);\n const elapsed = Date.now() - startTs;\n const minDelay = Math.max(0, (opts.minDelayMs ?? 0));\n const remaining = Math.max(0, minDelay - elapsed);\n if (remaining > 0) {\n const id = trackTimer(setTimeout(() => {\n if (!opts.signal?.aborted) {\n place(target);\n }\n }, remaining));\n if (opts.signal) {\n const onAbortClearDelay = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\n try { opts.signal.addEventListener(\"abort\", onAbortClearDelay, { once: true }); } catch { }\n }\n } else {\n place(target);\n }\n })\n .catch(fail);\n\n return frame;\n}\n","import { ComponentBase, IDisposeOptions } from \"./componentBase\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { Lazy } from \"./Lazy\";\nimport { reportError } from \"../common/diagnostics\";\n\nexport interface NavigationHost extends ComponentBase {\n current: ComponentBase | ComponentBase[] | null;\n previouspage: any;\n isBusy: boolean;\n _latestNavigateId: number;\n _navLock: Promise<void>;\n _navAbort?: AbortController;\n _navPending?: number;\n}\n\nexport function hasOwnTransition(component: ComponentBase | null | undefined, phase: 'enter' | 'leave'): boolean {\n const options: any = component?.motif?.options;\n if (!options) return false;\n const transition = options.transition;\n return !!((phase === 'enter' ? options.transitionIn : options.transitionOut) || (transition && (transition.classes || (transition.name && transition.name.length > 0))));\n}\n\nfunction playsLeave(target: ComponentBase | ComponentBase[] | null): boolean {\n if (!target) return false;\n if (Array.isArray(target)) return target.some(t => !!t && !t.isDisposed && hasOwnTransition(t, 'leave'));\n return !target.isDisposed && hasOwnTransition(target, 'leave');\n}\n\nexport function cancelAnimationsDeep(target: any): void {\n if (!target || target.isDisposed) return;\n if (Array.isArray(target)) {\n target.forEach(cancelAnimationsDeep);\n return;\n }\n try { target.motif.options?.transition?.activeCssCancel?.(); } catch { }\n try {\n const anims = target.motif.options?.transition?.activeAnimations;\n if (Array.isArray(anims)) {\n anims.forEach((anim: any) => {\n try {\n if (anim && typeof anim.cancel === 'function') {\n anim.cancel();\n }\n } catch { }\n });\n anims.length = 0;\n }\n } catch { }\n try {\n if (target.controls && target.controls.items) {\n for (const child of target.controls.items) {\n cancelAnimationsDeep(child);\n }\n }\n } catch { }\n}\n\nexport async function disposeNavigationTarget(target: ComponentBase | ComponentBase[] | null, options: IDisposeOptions = { deep: true }): Promise<void> {\n if (!target) return;\n const list = Array.isArray(target) ? target : [target];\n await Promise.all(list.map(async (xr) => {\n if (!xr || xr.isDisposed) return;\n try {\n await xr.dispose(options);\n } catch (err) {\n reportError('MJX115', err);\n }\n }));\n}\n\nexport async function navigateHost(host: NavigationHost, page: ComponentBase | ComponentBase[], keepOldControl: boolean = false): Promise<void> {\n if (host.isDisposed || page == null) return;\n if (host.current !== null && host.current === (page as any)) return;\n\n const navigateId = ++host._latestNavigateId;\n host.isBusy = true;\n\n const complete = (value: any) => {\n if (host.isDisposed) return;\n if (navigateId !== host._latestNavigateId) return;\n const xP = resolveComponent(value);\n host.current = xP;\n try {\n if (Array.isArray(xP)) {\n host.controls.add(...xP);\n } else {\n host.controls.add(xP);\n }\n } catch (error) {\n reportError('MJX114', error);\n }\n host.isBusy = false;\n host.previouspage = xP;\n };\n\n if (!(host._navPending ?? 0) && host.current === null && !(page instanceof Promise)) {\n try {\n complete(page);\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n return;\n }\n\n host._navPending = (host._navPending ?? 0) + 1;\n const prevLock = host._navLock ?? Promise.resolve();\n host._navLock = (async () => {\n try {\n await prevLock;\n\n try { host._navAbort?.abort(); } catch { }\n host._navAbort = new AbortController();\n\n const oldPage = host.current;\n if (oldPage && !keepOldControl) {\n cancelAnimationsDeep(oldPage);\n cancelAnimationsDeep(host);\n const animated = playsLeave(oldPage);\n const leaving = disposeNavigationTarget(oldPage);\n if (animated) {\n leaving.catch(() => { });\n } else {\n await leaving;\n }\n }\n\n try {\n if (page instanceof Promise) {\n const caller = () => page;\n const lazyFrame = Lazy({ caller, options: { signal: host._navAbort?.signal } as any });\n complete(lazyFrame);\n } else {\n complete(page);\n }\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n } finally {\n host._navPending = Math.max(0, (host._navPending ?? 1) - 1);\n }\n })();\n await host._navLock;\n}\n","import { dom } from \"../core\";\nimport { Component } from \"../\";\nimport { ComponentBase, IDisposeOptions } from \"../\";\nimport { Lazy, LazyOptions } from \"../\";\nimport { disposeNavigationTarget, navigateHost } from \"./navigation\";\n\n\nexport class Frame extends Component {\n public current: ComponentBase | ComponentBase[] | null = null;\n public _latestNavigateId = 0;\n public _navLock: Promise<void> = Promise.resolve();\n public _navAbort?: AbortController;\n isBusy: boolean = false;\n constructor(props?: any) {\n super(dom.createComment(''), props);\n if (props && props.childs && Array.isArray(props.childs) && props.childs.length > 0) {\n this.controls.add(props.childs);\n }\n }\n public async dispose(options: IDisposeOptions = { deep: true }) {\n await disposeNavigationTarget(this.current, options);\n await super.dispose(options);\n }\n public async flush() {\n await disposeNavigationTarget(this.current);\n }\n protected override async _clear() {\n await disposeNavigationTarget(this.current);\n }\n previouspage: any;\n public async navigate(page: ComponentBase | ComponentBase[], keepOldControl: boolean = false) {\n await navigateHost(this, page, keepOldControl);\n }\n\n public async navigateLazy<T>(caller: () => Promise<T>, options?: LazyOptions<T>, keepOldControl: boolean = false) {\n const lazyFrame = Lazy({ caller, options });\n await this.navigate(lazyFrame, keepOldControl);\n }\n}\n","const preprocessitem = new Set<Function>();\r\n\r\nexport function preProcessing(callback: () => any) {\r\n preprocessitem.add(callback);\r\n renderPreProcessing();\r\n}\r\n\r\nexport function renderPreProcessing() {\r\n preprocessitem.forEach(i => {\r\n i();\r\n })\r\n}","\r\nimport { Component, ComponentBase, EventArgs } from \"../\";\r\nimport { reportWarning } from \"../common/diagnostics\";\r\n\r\n\r\n// const ContentBodyCollection = new Map<string, ContentBody>();\r\nconst ContentBodyCollectionHandable = new Map<string, ContentBody>();\r\nconst changeBodyCollectionHandler = Symbol('changeBodyCollectionHandler')\r\n\r\n\r\ninterface ContentBlockProps {\r\n target: string\r\n}\r\nexport class ContentBlock extends Component<any, ContentBlockProps> {\r\n constructor(props: ContentBlockProps) {\r\n super(props);\r\n\r\n\r\n // var cb = ContentBodyCollectionHandable.get(props.target);\r\n // if (cb) {\r\n // } else {\r\n // var cb = ContentBodyCollectionHandable.get(props.target);\r\n // if (cb) {\r\n const forward = (control: ComponentBase) => {\r\n this.motif.trigger('controladded', { control });\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n control.motif.options[\"ownerContentBlock\"] = this;\r\n cb.controls.add(control);\r\n }\r\n };\r\n this.controls.onAdd = forward;\r\n this.controls.onAddBeforeBuild = forward;\r\n if (this.childs) {\r\n this.controls.add(...this.childs);\r\n }\r\n\r\n }\r\n public onConfigured(sender: ComponentBase, e: EventArgs): void {\r\n\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n this.controls.items.forEach(x => { x.motif.options[\"ownerContentBlock\"] = this; });\r\n cb.controls.add(...this.controls.items);\r\n } else {\r\n this.context.on(changeBodyCollectionHandler, () => {\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n this.controls.items.forEach(x => { x.motif.options[\"ownerContentBlock\"] = this; });\r\n cb.controls.add(...this.controls.items);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onDisposing(sender: ComponentBase, e: EventArgs): void {\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n for (const element of [...cb.controls.items]) {\r\n if (element.motif.options[\"ownerContentBlock\"] !== this) continue;\r\n cb.controls.remove(element);\r\n reportWarning('MJX109', [], element);\r\n }\r\n }\r\n\r\n }\r\n ondisposing(sender: Component<any, ContentBlockProps>) {\r\n // var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n // if (cb) {\r\n }\r\n\r\n}\r\ninterface ContentBodyProps {\r\n name: string,\r\n onconfig?: any\r\n}\r\nexport class ContentBody extends Component<any, ContentBodyProps> {\r\n constructor(props: ContentBodyProps) {\r\n super(props);\r\n ContentBodyCollectionHandable.set(this.props.name, this);\r\n this.context.fire(changeBodyCollectionHandler);\r\n }\r\n ondisposing(sender: Component<any, ContentBodyProps>) {\r\n if (ContentBodyCollectionHandable.get(this.props.name) === this) {\r\n ContentBodyCollectionHandable.delete(this.props.name);\r\n }\r\n }\r\n}\r","import { ComponentBase } from \"./componentBase\";\r\nimport { Application } from \"../\";\r\n\r\nexport const SLOT_REGISTERED_EVENT = Symbol('slotRegistered');\r\nexport const SLOT_UNREGISTERED_EVENT = Symbol('slotUnregistered');\r\n\r\nexport class TransportRegistry {\r\n private static slots: Map<string, ComponentBase> = new Map();\r\n\r\n static registerSlot(name: string, slot: ComponentBase) {\r\n this.slots.set(name, slot);\r\n Application.main.fire(SLOT_REGISTERED_EVENT, { name, slot });\r\n }\r\n static unregisterSlot(name: string, slot: ComponentBase) {\r\n if (this.slots.get(name) === slot) {\r\n this.slots.delete(name);\r\n Application.main.fire(SLOT_UNREGISTERED_EVENT, { name, slot });\r\n }\r\n }\r\n static getSlot(name: string): ComponentBase | undefined {\r\n return this.slots.get(name);\r\n }\r\n}\r","import { 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","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","\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","import { ReactiveEngine } from \"../ReactiveEngine\"\r\nimport { Flags, addArrayStack, closeSetup, hasOwn, isIntrinsicSymbol, isObject, pauseTracking, resetTracking, setupActive } from \"../common\"\r\nimport { track } from \"../reactivity-core\"\r\n\r\nconst ARRAY_MUTATORS = new Set(['push', 'pop', 'shift', 'unshift', 'splice', 'reverse', 'sort'])\r\n\r\nexport const NOT_META = Symbol('')\r\ntype MetaReader = (engine: ReactiveEngine, target: any, receiver: any) => unknown\r\n\r\nconst metaReaders = new Map<symbol, MetaReader>([\r\n [Flags.IS_REACTIVE, () => true],\r\n [Flags.IS_READONLY, engine => engine.isReadonly],\r\n [Flags.IS_SUPERFICIAL, engine => engine.superficial],\r\n [Flags.GET_SETUP, (_engine, target) => target],\r\n [Flags.RAW, (engine, target, receiver) => engine.ReactiveMap().get(target) === receiver ? target : NOT_META],\r\n])\r\n\r\nexport function readMeta(engine: ReactiveEngine, target: any, key: unknown, receiver: any): unknown {\r\n if (typeof key !== 'symbol') return NOT_META\r\n const reader = metaReaders.get(key)\r\n return reader === undefined ? NOT_META : reader(engine, target, receiver)\r\n}\r\n\r\nexport function createGetter(engine: ReactiveEngine) {\r\n return function (target: any, p: any, receiver: any) {\r\n const meta = readMeta(engine, target, p, receiver)\r\n if (meta !== NOT_META) return meta\r\n\r\n if (Array.isArray(target) && !engine.isReadonly) {\r\n const patched = engine.arrayMethods.get\r\n if (hasOwn(patched, p)) {\r\n const method = patched[p]\r\n if (ARRAY_MUTATORS.has(p)) addArrayStack(p)\r\n else track(target, p)\r\n return method\r\n }\r\n }\r\n if (setupActive) {\r\n pauseTracking();\r\n engine.track(target, p);\r\n closeSetup();\r\n resetTracking();\r\n }\r\n\r\n const value = Reflect.get(target, p, receiver)\r\n if (p === '__proto__' || isIntrinsicSymbol(p)) return value\r\n\r\n if (!engine.isReadonly) track(target, p)\r\n if (engine.superficial || !isObject(value)) return value\r\n return engine.reactive(value)\r\n }\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\";\nimport { ITERATE_KEY, getRaw, hasOwn, isNumericKey, isReadonly, removeArrayStack } from \"../common\";\nimport { trigger } from \"../reactivity-core\";\n\n\nexport function createSetter(engine: ReactiveEngine) {\n return function (target: any, p: any, newValue: any, receiver: any) {\n if (isReadonly(target)) {\n return false;\n }\n\n const isArray = Array.isArray(target);\n const oldValue = (target as any)[p];\n const oldLength = isArray ? target.length : 0;\n const numeric = isArray && isNumericKey(p);\n const hadKey = numeric ? Number(p) < oldLength : hasOwn(target, p);\n\n const res = Reflect.set(target, p, newValue, receiver);\n\n if (engine.onValueChanged) {\n try { engine.onValueChanged({ raw: target, proxy: receiver }, p); } catch { }\n }\n\n if (getRaw(target) !== getRaw(receiver)) {\n return res;\n }\n if (!isArray && hadKey && Object.is(newValue, oldValue)) {\n return res;\n }\n\n trigger(target, p);\n if (!isArray && !hadKey) {\n trigger(target, ITERATE_KEY);\n }\n if (numeric && !hadKey) {\n trigger(target, 'length');\n }\n if (isArray && p === 'length') {\n const newLength = Number(newValue);\n for (let i = newLength; i < oldLength; i++) {\n trigger(target, String(i));\n }\n }\n removeArrayStack();\n return res;\n }\n}\n","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { ITERATE_KEY, hasOwn, isIntrinsicSymbol, pauseTracking, resetTracking } from \"../common\";\r\nimport { track, trigger } from \"../reactivity-core\";\r\n\r\nexport function createOwn(engine: ReactiveEngine) {\r\n return function ownKeys(target: any) {\r\n const shapeKey = Array.isArray(target) ? 'length' : ITERATE_KEY;\r\n track(target, shapeKey);\r\n return Reflect.ownKeys(target);\r\n }\r\n}\r\n\r\nexport function createHas(engine: ReactiveEngine) {\r\n return function has(target: any, p: any) {\r\n const found = Reflect.has(target, p);\r\n if (isIntrinsicSymbol(p)) return found;\r\n track(target, p);\r\n return found;\r\n }\r\n}\r\n\r\nexport function createDelete(engine: ReactiveEngine) {\r\n return function deleteProperty(target: any, p: any) {\r\n pauseTracking()\r\n try {\r\n const isOwned = hasOwn(target, p);\r\n const result = Reflect.deleteProperty(target, p);\r\n if (isOwned) {\r\n if (Array.isArray(target)) {\r\n trigger(target, 'length');\r\n } else {\r\n trigger(target, p);\r\n trigger(target, ITERATE_KEY);\r\n }\r\n }\r\n return result\r\n } finally { \r\n resetTracking();\r\n }\r\n }\r\n}","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { getRaw, pauseTracking, resetTracking } from \"../common\";\r\n\r\ntype PatchKind = 'lookup' | 'order' | 'join' | 'structural';\r\n\r\nconst PATCHED_ARRAY_METHODS: ReadonlyArray<readonly [string, PatchKind]> = [\r\n ['includes', 'lookup'],\r\n ['indexOf', 'lookup'],\r\n ['lastIndexOf', 'lookup'],\r\n ['sort', 'order'],\r\n ['concat', 'join'],\r\n ['push', 'structural'],\r\n ['pop', 'structural'],\r\n ['shift', 'structural'],\r\n ['unshift', 'structural'],\r\n ['splice', 'structural'],\r\n ['reverse', 'structural'],\r\n];\r\n\r\nconst isLookupMiss = (outcome: unknown) => outcome === false || outcome === -1;\r\n\r\nexport class ArrayMethods {\r\n constructor(public engine: ReactiveEngine) { }\r\n get: Record<string, Function> = this.createArrayMethods();\r\n\r\n createArrayMethods(): Record<string, Function> {\r\n const table: Record<string, Function> = {};\r\n for (const [name, kind] of PATCHED_ARRAY_METHODS) {\r\n table[name] = this.patch(name, kind);\r\n }\r\n return table;\r\n }\r\n\r\n private patch(name: string, kind: PatchKind): Function {\r\n const owner = this;\r\n switch (kind) {\r\n case 'lookup':\r\n return function (this: unknown[], ...needles: any[]) {\r\n const source = getRaw(this) as any;\r\n owner.engine.track(source, 'length');\r\n const direct = source[name](...needles);\r\n if (!isLookupMiss(direct)) return direct;\r\n return source[name](...needles.map(needle => getRaw(needle)));\r\n };\r\n case 'order':\r\n return function (this: unknown[], ...args: any[]) {\r\n const source = getRaw(this) as any;\r\n const size = this.length;\r\n for (let index = 0; index < size; index++) {\r\n owner.engine.track(source, String(index));\r\n }\r\n const sorted = source[name].apply(this, args);\r\n owner.engine.track(source, name);\r\n return sorted;\r\n };\r\n case 'join':\r\n return function (this: unknown[], ...args: any[]) {\r\n return Array.prototype.concat.apply(this, args);\r\n };\r\n default:\r\n return function (this: unknown[], ...args: any[]) {\r\n pauseTracking();\r\n const source = getRaw(this) as any;\r\n try {\r\n return source[name].apply(this, args);\r\n } finally {\r\n resetTracking();\r\n }\r\n };\r\n }\r\n }\r\n\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\";\nimport { ITERATE_KEY, getRaw, hasOwn, isObject } from \"../common\";\nimport { track, trigger } from \"../reactivity-core\";\nimport { NOT_META, readMeta } from \"./getter\";\n\ntype AnyCollection = Map<any, any> | Set<any>;\n\nconst KEYS_KEY = Symbol('');\n\nfunction changed(target: object, key: unknown, keysChanged: boolean) {\n trigger(target, key as any);\n trigger(target, ITERATE_KEY);\n if (keysChanged) trigger(target, KEYS_KEY);\n}\n\nfunction lookupKey(target: AnyCollection, key: unknown) {\n return target.has(key) ? key : getRaw(key);\n}\n\nfunction wrapIterator(source: Iterator<any>, convert: (item: any) => any): IterableIterator<any> {\n return {\n next() {\n const step = source.next();\n return step.done ? step : { value: convert(step.value), done: false };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n}\n\nfunction createCollectionMethods(engine: ReactiveEngine): Record<PropertyKey, Function> {\n const wrap = (value: unknown) => isObject(value) ? engine.reactive(value) : value;\n const wrapEntry = (target: AnyCollection) =>\n target instanceof Map\n ? ([key, value]: [unknown, unknown]) => [key, wrap(value)]\n : ([value]: [unknown, unknown]) => { const item = wrap(value); return [item, item]; };\n\n return {\n get(this: Map<any, any>, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n track(target, found as any);\n return wrap(target.get(found));\n },\n has(this: AnyCollection, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n track(target, found as any);\n return target.has(found);\n },\n set(this: Map<any, any>, key: unknown, value: unknown) {\n const target = getRaw(this);\n const stored = lookupKey(target, key);\n const raw = getRaw(value);\n const existed = target.has(stored);\n const previous = target.get(stored);\n target.set(stored, raw);\n if (!existed) changed(target, stored, true);\n else if (!Object.is(previous, raw)) changed(target, stored, false);\n return this;\n },\n add(this: Set<any>, value: unknown) {\n const target = getRaw(this);\n const stored = lookupKey(target, value);\n if (!target.has(stored)) {\n target.add(stored);\n changed(target, stored, true);\n }\n return this;\n },\n delete(this: AnyCollection, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n const removed = target.delete(found);\n if (removed) changed(target, found, true);\n return removed;\n },\n clear(this: AnyCollection) {\n const target = getRaw(this);\n if (target.size === 0) return;\n const keys = Array.from(target.keys());\n target.clear();\n for (const key of keys) trigger(target, key);\n trigger(target, ITERATE_KEY);\n trigger(target, KEYS_KEY);\n },\n forEach(this: AnyCollection, callback: (value: any, key: any, collection: any) => void, thisArg?: unknown) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n const owner = this;\n const isMap = target instanceof Map;\n target.forEach((value: any, key: any) => {\n const item = wrap(value);\n callback.call(thisArg, item, isMap ? key : item, owner);\n });\n },\n keys(this: AnyCollection) {\n const target = getRaw(this);\n if (target instanceof Map) {\n track(target, KEYS_KEY);\n return target.keys();\n }\n track(target, ITERATE_KEY);\n return wrapIterator(target.keys(), wrap);\n },\n values(this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return wrapIterator(target.values(), wrap);\n },\n entries(this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return wrapIterator(target.entries(), wrapEntry(target));\n },\n [Symbol.iterator](this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return target instanceof Map\n ? wrapIterator(target.entries(), wrapEntry(target))\n : wrapIterator(target.values(), wrap);\n },\n };\n}\n\nexport function createCollectionHandler(engine: ReactiveEngine): ProxyHandler<AnyCollection> {\n const methods = createCollectionMethods(engine);\n return {\n get(target, key, receiver) {\n const meta = readMeta(engine, target, key, receiver);\n if (meta !== NOT_META) return meta;\n if (key === 'size') {\n track(target, ITERATE_KEY);\n return target.size;\n }\n if ((typeof key === 'string' || key === Symbol.iterator) && hasOwn(methods, key) && key in target) {\n return methods[key as any];\n }\n const value = Reflect.get(target, key, target);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n };\n}\n","\r\nimport { TargetType, UnwrapValueRefs, getRaw, getTargetType, isObject, pauseTracking, resetTracking, enableTracking } from \"./common\";\r\nimport { createGetter } from \"./handlers/getter\";\r\nimport { createSetter } from \"./handlers/setter\";\r\nimport { createDelete, createHas, createOwn } from \"./handlers/orhers\";\r\nimport { ArrayMethods } from \"./handlers/ArrayMethods\";\r\nimport { createCollectionHandler } from \"./handlers/collections\";\r\nimport { LinkedList } from \"../common/LinkedList\";\r\nimport { track, trigger } from \"./reactivity-core\";\r\nexport const ReactiveEngineMapper = new WeakSet<ReactiveEngine>();\r\n\r\nconst AllreactiveMap: WeakMap<any, any> = new WeakMap();\r\nfunction armgetter() { return AllreactiveMap; }\r\n\r\n\r\nexport class ReactiveEngine {\r\n _gci: any;\r\n public startGc(_intervalMs: number = 10000) { /* no-op */ }\r\n public stopGc() { if (this._gci) { try { clearInterval(this._gci); } catch { } this._gci = undefined; } }\r\n constructor() {\r\n ReactiveEngineMapper.add(this);\r\n this.startGc();\r\n }\r\n \r\n DisposeMapper = new LinkedList();\r\n arrayTriggerCache = new Map<any, { method: string, key: any, value: any }>();\r\n ReactiveMap: () => WeakMap<any, any> = () => armgetter();\r\n activeCallback: any;\r\n isReadonly: boolean = false;\r\n superficial: boolean = false;\r\n arrayMethods: ArrayMethods = new ArrayMethods(this);\r\n arrayHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n }\r\n deepHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n } as ProxyHandler<any>\r\n collectionHandler = createCollectionHandler(this) as ProxyHandler<any>\r\n reactive<T>(model: T): UnwrapValueRefs<T> {\r\n\r\n var self = this;\r\n if (!isObject(model)) {\r\n model = { value: model } as any;\r\n }\r\n const targetType = getTargetType(model);\r\n if (targetType === TargetType.SYSTEM || TargetType.INVALID) {\r\n return model as any\r\n }\r\n\r\n let existingProxy = AllreactiveMap.get(model)\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n existingProxy = AllreactiveMap.get(getRaw(model))\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n // if (targetType === TargetType.INVALID) {\r\n if (targetType === TargetType.COLLECTION) {\r\n var proxy = new Proxy(model, this.collectionHandler);\r\n AllreactiveMap.set(model, proxy);\r\n return proxy;\r\n } else if (Array.isArray(model)) {\r\n var proxy = new Proxy(model, this.arrayHandler);\r\n // var original = Object.getPrototypeOf(proxy);\r\n // original[\"copy\"] = () => { return model; }\r\n // return \"copied\";\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n } else {\r\n var proxy = new Proxy(model, this.deepHandler);\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n }\r\n }\r\n\r\n clearModel(model: any): void {\r\n if (model != null && model != undefined) {\r\n Object.keys(model).forEach((key) => {\r\n if (typeof model[key] === 'object') {\r\n if (AllreactiveMap.has(model[key]) || AllreactiveMap.has(getRaw(model[key]))) {\r\n this.clearModel(model[key])\r\n }\r\n }\r\n AllreactiveMap.delete(getRaw(model[key]));\r\n AllreactiveMap.delete(model[key]);\r\n })\r\n AllreactiveMap.delete(getRaw(model));\r\n AllreactiveMap.delete(model);\r\n }\r\n }\r\n\r\n track(model: any, key: any) {\r\n track(model, key);\r\n }\r\n trigger(model: any, key: any, value: any) {\r\n trigger(model, key);\r\n }\r\n ArrayTrigger(target: any, key: any, ...args: any) {\r\n this.trigger(target, key, args);\r\n }\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any;\r\n toRaw(item: any) {\r\n return JSON.parse(JSON.stringify(this.deepClone(item)));\r\n }\r\n deepClone(item: any) {\r\n var self = this;\r\n if (!item) { return item; }\r\n var types = [Number, String, Boolean],\r\n result;\r\n types.forEach(function (type) {\r\n if (item instanceof type) {\r\n result = type(item);\r\n }\r\n });\r\n\r\n if (typeof result == \"undefined\") {\r\n if (Object.prototype.toString.call(item) === \"[object Array]\") {\r\n result = [];\r\n item.forEach(function (child: any, index: any, array: any[]) {\r\n result[index] = self.deepClone(child);\r\n });\r\n } else if (typeof item == \"object\") {\r\n if (item.nodeType && typeof item.cloneNode == \"function\") {\r\n result = item.cloneNode(true);\r\n } else if (!item.prototype) {\r\n if (item instanceof Date) {\r\n result = new Date(item);\r\n } else {\r\n result = <any>{};\r\n for (var i in item) {\r\n result[i] = self.deepClone(item[i]);\r\n }\r\n }\r\n } else {\r\n if (false && item.constructor) {\r\n result = new item.constructor();\r\n } else {\r\n result = item;\r\n }\r\n }\r\n } else {\r\n result = item;\r\n }\r\n }\r\n return result;\r\n }\r\n pauseTracking() {\r\n pauseTracking();\r\n }\r\n enableTracking() {\r\n enableTracking();\r\n }\r\n resetTracking() {\r\n resetTracking();\r\n }\r\n dispose() {\r\n var cnt = true;\r\n this.stopGc();\r\n while (cnt == true) {\r\n if (this.DisposeMapper.size > 0) {\r\n const element = this.DisposeMapper.pop();\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n AllreactiveMap.delete(element);\r\n } else {\r\n cnt = false\r\n }\r\n }\r\n this.DisposeMapper.clear();\r\n ReactiveEngineMapper.delete(this);\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n }\r\n\r\n}","\r\nimport { ReactiveEngine } from \"./ReactiveEngine\";\r\nimport { UnwrapValueRefs } from \"./common\";\r\nimport { Signal, Computed, LazyComputed } from \"./Signal\";\r\nexport const engine = new ReactiveEngine();\r\n\r\n\r\n/* @DEV-ONLY */ const reactiveRegistry: Array<{ name: string; value: any; type: string }> = [];\r\nconst isDevRegistryEnabled = () => {\r\n try {\r\n const g = globalThis as any;\r\n if (!g.__MOTIF_DEV__) return false;\r\n if (g.__MOTIF_STORE_REGISTRY__ !== reactiveRegistry) g.__MOTIF_STORE_REGISTRY__ = reactiveRegistry;\r\n return true;\r\n } catch { return false; }\r\n};\r\n\r\nexport function reactiveConfig(config: {\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any\r\n onItemAdded?: (model: any, key: any, value: any) => any\r\n onItemRemoved?: (model: any, key: any, value: any) => any\r\n}) {\r\n engine.onValueChanged = config.onValueChanged;\r\n}\r\n\r\n// export * from \"./IStoreBinder\";\r\n\r\n// export function reactiveListeners(model?: any) {\r\n// if (model) {\r\n// /* @DEV-ONLY */return debugGetDeps(model) ?? new Map();\r\n// return debugGetDepMap();\r\n\r\n\r\nexport function reactive<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'reactive';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\nexport function useModel<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n\r\n\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'useModel';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */ }\r\n/* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\n\r\n\r\nexport function clearModel(model: any) {\r\n return engine.clearModel(model);\r\n}\r\n\r\n \r\n\r\nexport function deepClone(item: any) {\r\n return engine.deepClone(item);\r\n}\r\n\r\nexport function createSignal<T>(initialValue: T): Signal<T> {\r\n const sig = new Signal(initialValue);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `signal_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: sig.value, type: 'signal' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return sig;\r\n}\r\n\r\nexport function createComputed<T>(getter: () => T): Computed<T> {\r\n const comp = new Computed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `computed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: comp.value, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return comp;\r\n}\r\n\r\nexport function createLazyComputed<T>(getter: () => T): LazyComputed<T> {\r\n const comp = new LazyComputed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `lazyComputed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: undefined, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */} catch { }\r\n return comp;\r\n}\r\n\r\nexport { ReactiveEngine };\r\nexport { configureReactivityLeakMonitor, track, trigger, effect, createScheduledEffect, asyncTracking, untracked } from \"./reactivity-core\";\r\nexport type { EffectFn, ScheduledEffect, AsyncTrackingToken } from \"./reactivity-core\";\r\nexport * from \"./Signal\";\r\nimport { untracked } from \"./reactivity-core\";\r\n","\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","import type { ServiceLifetime } from \"./ServiceCollection\";\r\n\r\nexport const autoRegistry = new Map<any, { lifetime?: ServiceLifetime, deps?: any[] }>();\r\n","import { ServiceProvider } from \"./ServiceProvider\";\nimport { autoRegistry } from \"./autoRegistry\";\nimport { motifError, reportWarning } from \"../common/diagnostics\";\n\nexport type ServiceLifetime = 'transient' | 'singleton' | 'scoped';\n\nexport type ServiceImplementation<V> = V extends abstract new (...args: any[]) => any\n ? V\n : V extends (...args: any[]) => any\n ? 'Use { useValue: fn } or { useFactory: fn } to register a function'\n : V;\n\nfunction isConstructor(fn: Function): boolean {\n try {\n Reflect.construct(String, [], fn);\n return true;\n } catch {\n return false;\n }\n}\n\nexport interface ServiceDescriptor<T = any> {\n token: any;\n lifetime: ServiceLifetime;\n useClass?: new (...args: any[]) => T;\n useFactory?: (...args: any[]) => T | Promise<T>;\n useValue?: T;\n deps?: any[];\n}\n\nexport class ServiceCollection {\n private descriptors: Map<any, ServiceDescriptor> = new Map();\n\n public reset(): void {\n this.descriptors.clear();\n }\n public addTransient<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'transient');\n }\n public addSingleton<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'singleton');\n }\n public addScoped<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'scoped');\n }\n\n private _add(token: any, impl: any, lifetime: ServiceLifetime) {\n const desc: ServiceDescriptor = { token, lifetime };\n if (impl && typeof impl === 'object' && (impl.useClass || impl.useFactory || Object.prototype.hasOwnProperty.call(impl, 'useValue') || Array.isArray(impl.deps))) {\n desc.useClass = impl.useClass;\n desc.useFactory = impl.useFactory;\n desc.useValue = impl.useValue;\n desc.deps = Array.isArray(impl.deps) ? impl.deps : undefined;\n try {\n const sources = [\n desc.useClass ? 'useClass' : null,\n desc.useFactory ? 'useFactory' : null,\n (desc.useValue !== undefined) ? 'useValue' : null\n ].filter(Boolean);\n if ((sources as any).length > 1) {\n reportWarning('MJX410', [this._tokenName(token), sources.join(', ')], { token });\n }\n if (impl.deps && !Array.isArray(impl.deps)) {\n reportWarning('MJX411', [this._tokenName(token)], { token });\n }\n } catch { /* no-op */ }\n if (desc.useValue && typeof (desc.useValue as any).then === 'function') {\n const p = desc.useValue as any;\n desc.useFactory = async () => await p;\n desc.useValue = undefined;\n }\n } else if (typeof impl === 'function') {\n if (!isConstructor(impl)) throw motifError('MJX413', this._tokenName(token));\n desc.useClass = impl as any;\n } else {\n if (impl && typeof (impl as any).then === 'function') {\n const p = impl as any;\n desc.useFactory = async () => await p;\n } else {\n desc.useValue = impl;\n }\n }\n this.descriptors.set(token, desc);\n }\n\n private _tokenName(token: any): string {\n if (typeof token === 'string') return token;\n if (typeof token === 'symbol') return token.toString();\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n }\n\n public getDescriptor(token: any): ServiceDescriptor | null {\n const existing = this.descriptors.get(token);\n if (existing) return existing;\n const meta = autoRegistry.get(token);\n if (meta) {\n this._add(token, {\n useClass: token,\n deps: meta.deps,\n useValue: undefined,\n useFactory: undefined\n }, meta.lifetime || 'transient');\n return this.descriptors.get(token) || null;\n }\n return null;\n }\n\n /** `@Injectable` ile işaretlenmiş ama henüz kaydedilmemiş bir token var mı? */\n public canAutoRegister(token: any): boolean {\n return !this.descriptors.has(token) && autoRegistry.has(token);\n }\n\n public getService(token: any): ServiceDescriptor | null {\n return this.getDescriptor(token);\n }\n\n public buildServiceProvider(): ServiceProvider {\n return new ServiceProvider(this);\n }\n\n\n public has(token: any): boolean {\n return this.descriptors.has(token);\n }\n\n\n public remove(token: any): boolean {\n return this.descriptors.delete(token);\n }\n\n\n public replace<V>(token: any, impl: ServiceImplementation<V>, lifetime?: ServiceLifetime): void {\n const existing = this.descriptors.get(token);\n const lt: ServiceLifetime = lifetime ?? (existing?.lifetime ?? 'transient');\n this._add(token, impl, lt);\n }\n\n\n public tryAddTransient<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'transient');\n return true;\n }\n public tryAddSingleton<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'singleton');\n return true;\n }\n public tryAddScoped<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'scoped');\n return true;\n }\n\n public autoRegisterInjectables() {\n for (const [target, meta] of autoRegistry.entries()) {\n if (this.descriptors.has(target)) continue;\n this._add(target, {\n useClass: target,\n deps: meta.deps,\n useValue: undefined,\n useFactory: undefined\n }, meta.lifetime || \"transient\");\n }\n }\n}","import type { RouteItem } from \"../routing/RouteItem\";\r\nimport { reportWarning } from \"../common/diagnostics\";\r\n\r\ntype RouteNode = RouteItem & { childs?: RouteItem[] };\r\n\r\nfunction joinPaths(parent: string, child: string): string {\r\n const p = (parent || '').trim();\r\n const c = (child || '').trim();\r\n const base = p && p !== '/' && p.endsWith('/') ? p.slice(0, -1) : p;\r\n if (c === '/') {\r\n return base || '/';\r\n }\r\n const seg = c ? (c.startsWith('/') ? c : '/' + c) : '';\r\n if (!base || base === '/') {\r\n return seg || '/';\r\n }\r\n return base + seg;\r\n}\r\n\r\nexport function lintRoutes(routes: RouteNode[]): void {\r\n const seenFull: Map<string, number> = new Map();\r\n const seenAlias: Map<string, number> = new Map();\r\n\r\n function visit(node: RouteNode, parentPath: string, depth: number) {\r\n const rawPath = node.path ?? '';\r\n const path = String(rawPath);\r\n const full = parentPath === '' ? path : joinPaths(parentPath, path);\r\n const isDefaultSlash = depth > 0 && path.trim() === '/';\r\n const isEmptyPath = path.trim() === '';\r\n\r\n if (isEmptyPath) {\r\n reportWarning('MJX310', [parentPath || '/'], { parentPath, path });\r\n }\r\n\r\n if (depth > 0 && path.length > 0 && path !== '/' && !path.startsWith('/') && !path.startsWith('*')) {\r\n reportWarning('MJX311', [path, parentPath || '/'], { parentPath, path });\r\n }\r\n\r\n if (parentPath && full === parentPath) {\r\n if (!isDefaultSlash && !isEmptyPath) {\r\n reportWarning('MJX312', [full], { parentPath, childPath: path });\r\n }\r\n }\r\n\r\n const cnt = (seenFull.get(full) || 0) + 1;\r\n seenFull.set(full, cnt);\r\n if (cnt > 1) {\r\n if (!isDefaultSlash && !isEmptyPath) {\r\n reportWarning('MJX313', [full], { full });\r\n }\r\n }\r\n\r\n const aliases = node.alias == null ? [] : (Array.isArray(node.alias) ? node.alias : [node.alias]);\r\n for (const rawAlias of aliases) {\r\n const alias = String(rawAlias ?? '');\r\n if (depth > 0 && alias.length > 0 && alias !== '/' && !alias.startsWith('/') && !alias.startsWith('*')) {\r\n reportWarning('MJX314', [alias, parentPath || '/'], { parentPath, alias });\r\n }\r\n const aliasFull = parentPath === '' ? alias : joinPaths(parentPath, alias);\r\n if (aliasFull === full) {\r\n reportWarning('MJX315', [aliasFull], { full, alias });\r\n }\r\n const aliasCount = (seenAlias.get(aliasFull) || 0) + 1;\r\n seenAlias.set(aliasFull, aliasCount);\r\n if (aliasCount > 1) {\r\n reportWarning('MJX316', [aliasFull], { aliasFull });\r\n }\r\n }\r\n\r\n\r\n const children = (node as any).childs as RouteNode[] | undefined;\r\n if (Array.isArray(children)) {\r\n for (const ch of children) visit(ch, full, depth + 1);\r\n }\r\n }\r\n\r\n for (const r of routes) visit(r as RouteNode, '', 0);\r\n}\r","import { Application, Component } from '..';\r\nimport { getWarnings, on, ensureDevtoolsFlagInitialized, isRequestedByFlag, getRoutes } from './devbus';\r\nimport { lintRoutes } from './routeLinter';\r\nimport { reportWarning } from '../common/diagnostics';\r\nlet overlayHost: HTMLDivElement | null = null;\r\nlet visible = false;\r\n\r\nfunction render() {\r\n return;\r\n // if (!overlayHost) return;\r\n // const warnings = getWarnings();\r\n\r\n // const bar = document.createElement('div');\r\n // bar.style.cssText = 'display:flex; align-items:center; gap:8px; padding:6px 8px; background:#111; color:#fff; border-bottom:1px solid #333;';\r\n // const title = document.createElement('div');\r\n // title.style.fontWeight = '600';\r\n // const closeBtn = document.createElement('button');\r\n // closeBtn.style.cssText = 'margin-left:auto; background:#333; color:#fff; border:0; padding:2px 6px; cursor:pointer;';\r\n\r\n // const list = document.createElement('div');\r\n // list.style.cssText = 'max-height:40vh; overflow:auto; padding:8px; background:#181818; color:#ddd; font:12px/1.4 monospace;';\r\n // for (const w of warnings) {\r\n // const item = document.createElement('div');\r\n // item.style.cssText = 'padding:6px 8px; border:1px solid #333; border-radius:4px; margin-bottom:6px; background:#1f1f1f;';\r\n // const code = document.createElement('div');\r\n // code.style.cssText = 'color:#ffb86c; font-weight:700;';\r\n // const msg = document.createElement('div');\r\n // const det = document.createElement('pre');\r\n // det.textContent = w.details ? JSON.stringify(w.details, null, 2) : '';\r\n // det.style.cssText = 'white-space:pre-wrap; color:#aaa; margin:6px 0 0 0;';\r\n // if (w.details) item.appendChild(det);\r\n}\r\n\r\nexport function toggle(force?: boolean) {\r\n if (!overlayHost) return;\r\n visible = typeof force === 'boolean' ? force : !visible;\r\n overlayHost.style.display = visible ? 'block' : 'none';\r\n if (visible) render();\r\n}\r\n\r\nexport function initOverlayIfEnabled() {\r\n ensureDevtoolsFlagInitialized();\r\n if (!isRequestedByFlag()) return;\r\n try {\r\n if (!overlayHost) {\r\n overlayHost = document.createElement('div');\r\n overlayHost.style.cssText = 'position:fixed; left:12px; bottom:12px; right:12px; z-index:2147483647; background:#111; color:#fff; border:1px solid #333; border-radius:8px; box-shadow:0 4px 14px rgba(0,0,0,0.4); display:none;';\r\n document.body.appendChild(overlayHost);\r\n window.addEventListener('keydown', (e) => {\r\n try {\r\n if ((e.ctrlKey || e.metaKey) && e.key === '`') {\r\n e.preventDefault();\r\n toggle();\r\n }\r\n } catch { }\r\n });\r\n on((ev) => { if (ev.type === 'warning' && visible) render(); });\r\n }\r\n } catch { }\r\n}\r\n\r\nlet devBtn: HTMLButtonElement | null = null;\r\nlet inAppPanelMounted = false;\r\nfunction ensureInAppPanel() {\r\n if (inAppPanelMounted) return;\r\n try {\r\n (async () => {\r\n try {\r\n //var mod = await import(\"@motifjs/devtools-inapp\");\r\n\r\n //const mod = mountInAppPanel;//await (Function('return import(\"@motifjs/devtools-inapp\")')() as Promise<any>);\r\n\r\n //if (mod && typeof mod.mountInAppPanel === 'function') {\r\n } catch (err) {\r\n reportWarning('MJX611', [], err);\r\n }\r\n })();\r\n } catch { }\r\n}\r\nexport function initDevtoolsButton() {\r\n try {\r\n\r\n if (typeof document === 'undefined') return;\r\n if (devBtn) return;\r\n devBtn = document.createElement('button');\r\n devBtn.setAttribute('type', 'button');\r\n devBtn.setAttribute('aria-label', 'Open MotifJS DevTools');\r\n devBtn.textContent = 'Dev';\r\n devBtn.style.cssText = [\r\n 'position:fixed',\r\n 'right:12px',\r\n 'bottom:12px',\r\n 'z-index:2147483646',\r\n 'width:40px',\r\n 'height:40px',\r\n 'border-radius:20px',\r\n 'border:1px solid #333',\r\n 'background:#111',\r\n 'color:#fff',\r\n 'font-weight:700',\r\n 'cursor:pointer',\r\n 'box-shadow:0 4px 10px rgba(0,0,0,0.35)'\r\n ].join(';');\r\n devBtn.onclick = () => {\r\n try {\r\n (window as any).__motif_DEVTOOLS = true;\r\n } catch { }\r\n try {\r\n ensureDevtoolsFlagInitialized();\r\n initOverlayIfEnabled();\r\n toggle(true);\r\n ensureInAppPanel();\r\n try {\r\n const rs = getRoutes();\r\n if (rs) lintRoutes(rs);\r\n } catch { }\r\n } catch { }\r\n };\r\n document.body.appendChild(devBtn);\r\n try { const qs = location.search || ''; if (Application.main.isDevelopmentModeEnabled) ensureInAppPanel(); } catch { }\r\n } catch { }\r\n}\r","export class RouterViewRegistry {\r\n private static outlets: Map<string, Map<string, any>> = new Map();\r\n static register(name: string, scopeId: string, instance: any) {\r\n if (!this.outlets.has(name)) this.outlets.set(name, new Map());\r\n this.outlets.get(name)!.set(scopeId, instance);\r\n }\r\n static unregister(name: string, scopeId: string) {\r\n this.outlets.get(name)?.delete(scopeId);\r\n if (this.outlets.get(name)?.size === 0) this.outlets.delete(name);\r\n }\r\n static find(name: string, scopeId?: string): any | null {\r\n if (scopeId && this.outlets.get(name)?.has(scopeId)) {\r\n return this.outlets.get(name)!.get(scopeId);\r\n }\r\n const group = this.outlets.get(name);\r\n if (group && group.size > 0) return Array.from(group.values())[0];\r\n return null;\r\n }\r\n static findAll(name: string): any[] {\r\n return Array.from(this.outlets.get(name)?.values() ?? []);\r\n }\r\n}\r","import { Component } from \"..\";\r\nimport { ComponentBase, IBaseProp } from \"../\";\r\nimport { disposeNavigationTarget, navigateHost } from \"../component/navigation\";\r\nimport { RouterViewRegistry } from \"./RouterViewRegistry\";\r\n\r\nexport interface RouterViewProps extends IBaseProp<{ name?: string }> { }\r\nexport const RouterViewBuilt = Symbol.for(\"RouterView.built\");;\r\nexport class RouterView extends Component {\r\n constructor(props: IBaseProp<RouterViewProps>) {\r\n super(props);\r\n }\r\n public _navLock: Promise<void> = Promise.resolve();\r\n public _navAbort?: AbortController;\r\n public get __isRouterView(): boolean {\r\n return true;\r\n }\r\n public get scopeId(): string {\r\n let p: any = this.parent, ids: string[] = [];\r\n while (p) {\r\n ids.push(p.constructor?.name ?? '');\r\n p = p.parent;\r\n }\r\n return ids.join('>');\r\n }\r\n public disposingChilds = false;\r\n previouspage: any;\r\n current: ComponentBase | ComponentBase[] | null = null;\r\n _latestNavigateId = 0;\r\n isBusy: boolean = false;\r\n\r\n public async navigate(page: ComponentBase | ComponentBase[], keepOldControl: boolean = false) {\r\n await navigateHost(this, page, keepOldControl);\r\n }\r\n\r\n public async disposeTarget(target: ComponentBase | ComponentBase[] | null): Promise<void> {\r\n await disposeNavigationTarget(target);\r\n }\r\n public override onBuilt() {\r\n try {\r\n\r\n RouterViewRegistry.register(this.props.name ?? 'default', this.scopeId, this);\r\n let p: any = this.parent;\r\n while (p) {\r\n p.motif.trigger(RouterViewBuilt, this);\r\n p = p.parent;\r\n }\r\n } catch { /* ignore */ }\r\n }\r\n\r\n public override onDisposed() {\r\n try {\r\n RouterViewRegistry.unregister(this.props.name ?? 'default', this.scopeId);\r\n } catch { /* ignore */ }\r\n }\r\n\r\n}","\nimport type { ScrollMemoryOptions } from './common';\n\nexport interface ScrollViewport {\n scrollTop(): number;\n scrollTo(top: number): void;\n scrollToAnchor(id: string): boolean;\n}\n\nconst STORAGE_KEY = 'motifjs:scroll';\nconst DEFAULT_LIMIT = 60;\nconst DEFAULT_SETTLE_MS = 1200;\n\nconst USER_INPUT = ['wheel', 'touchstart', 'keydown', 'mousedown'] as const;\n\nexport class ScrollMemory {\n private readonly options: ScrollMemoryOptions;\n private readonly viewport: ScrollViewport;\n private readonly positions = new Map<string, number>();\n\n private currentKey = '';\n\n private visited = false;\n private restoring = false;\n private cancelFrame: (() => void) | null = null;\n private disarmAbort: (() => void) | null = null;\n private readonly offs: Array<() => void> = [];\n\n public locationAnchor = true;\n\n constructor(options: ScrollMemoryOptions = {}, viewport?: ScrollViewport) {\n this.options = options;\n this.viewport = viewport ?? (options.container ? containerViewport(options.container) : windowViewport());\n this.load();\n\n try {\n if (typeof history !== 'undefined' && 'scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n } catch { /* salt okunur bırakan gömülü tarayıcılar */ }\n\n if (typeof window !== 'undefined') {\n this.offs.push(listen(window, 'pagehide', () => this.persistNow()));\n this.offs.push(listen(document, 'visibilitychange', () => {\n if (document.visibilityState === 'hidden') this.persistNow();\n }));\n }\n }\n\n public leaving(): void {\n this.cancelRestore();\n if (!this.visited) return;\n this.remember(this.currentKey, this.viewport.scrollTop());\n this.persist();\n }\n\n public arrived(uri: string): void {\n this.visited = true;\n const { path, hash } = splitUri(uri);\n this.currentKey = this.keyOf(path);\n this.restore(this.currentKey, this.options.anchor === false ? '' : hash || (this.locationAnchor ? locationHash() : ''));\n }\n\n public saved(key: string): number {\n return this.positions.get(this.keyOf(splitUri(key).path)) ?? 0;\n }\n\n public dispose(): void {\n this.cancelRestore();\n this.persistNow();\n for (const off of this.offs.splice(0)) off();\n this.positions.clear();\n }\n\n\n private keyOf(path: string): string {\n const key = this.options.key ? this.options.key(path) : path;\n return key || '/';\n }\n\n private remember(key: string, top: number): void {\n const limit = this.options.limit ?? DEFAULT_LIMIT;\n this.positions.delete(key);\n this.positions.set(key, Math.max(0, Math.round(top)));\n while (this.positions.size > limit) {\n const oldest = this.positions.keys().next();\n if (oldest.done) break;\n this.positions.delete(oldest.value);\n }\n }\n\n private restore(key: string, anchor: string): void {\n this.cancelRestore();\n\n const target = this.positions.get(key) ?? 0;\n\n if (!anchor && target <= 0) {\n if (this.options.top !== false) this.viewport.scrollTo(0);\n return;\n }\n\n this.restoring = true;\n const settleMs = this.options.settleMs ?? DEFAULT_SETTLE_MS;\n const startedAt = Date.now();\n\n const attempt = (): void => {\n this.cancelFrame = null;\n const done = anchor ? this.viewport.scrollToAnchor(anchor) : this.reached(target);\n if (done || Date.now() - startedAt >= settleMs) {\n this.cancelRestore();\n this.remember(key, this.viewport.scrollTop());\n return;\n }\n this.armAbort();\n this.cancelFrame = frame(attempt);\n };\n attempt();\n }\n\n private reached(target: number): boolean {\n this.viewport.scrollTo(target);\n return this.viewport.scrollTop() >= target - 1;\n }\n\n private armAbort(): void {\n if (this.disarmAbort || typeof window === 'undefined') return;\n const abort = () => this.cancelRestore();\n const removers = USER_INPUT.map((type) => listen(window, type, abort, { passive: true }));\n this.disarmAbort = () => { for (const remove of removers) remove(); };\n }\n\n private cancelRestore(): void {\n this.cancelFrame?.();\n this.cancelFrame = null;\n this.disarmAbort?.();\n this.disarmAbort = null;\n this.restoring = false;\n }\n private persistNow(): void {\n if (this.visited && !this.restoring) {\n this.remember(this.currentKey, this.viewport.scrollTop());\n }\n this.persist();\n }\n\n private get storage(): Storage | null {\n if (this.options.persist === false) return null;\n try {\n return typeof sessionStorage === 'undefined' ? null : sessionStorage;\n } catch {\n return null;\n }\n }\n\n private persist(): void {\n const storage = this.storage;\n if (!storage) return;\n try {\n storage.setItem(STORAGE_KEY, JSON.stringify([...this.positions]));\n } catch {\n }\n }\n\n private load(): void {\n const storage = this.storage;\n if (!storage) return;\n try {\n const raw = storage.getItem(STORAGE_KEY);\n if (!raw) return;\n const parsed: unknown = JSON.parse(raw);\n if (!Array.isArray(parsed)) return;\n for (const pair of parsed) {\n if (!Array.isArray(pair) || typeof pair[0] !== 'string') continue;\n const top = Number(pair[1]);\n if (Number.isFinite(top) && top > 0) this.positions.set(pair[0], top);\n }\n } catch {\n }\n }\n}\n\n/** Gerçek pencere (`documentElement`). */\nfunction windowViewport(): ScrollViewport {\n return {\n scrollTop: () => {\n try { return window.scrollY || document.documentElement?.scrollTop || 0; } catch { return 0; }\n },\n scrollTo: (top) => {\n try { window.scrollTo(0, top); } catch { }\n },\n scrollToAnchor: (id) => {\n try {\n const node = document.getElementById(id);\n if (!node) return false;\n node.scrollIntoView();\n return true;\n } catch { return false; }\n },\n };\n}\n\nfunction containerViewport(container: NonNullable<ScrollMemoryOptions['container']>): ScrollViewport {\n const fallback = windowViewport();\n const resolve = (): HTMLElement | null => {\n try {\n if (typeof container === 'string') return document.querySelector(container) as HTMLElement | null;\n if (typeof container === 'function') return container() ?? null;\n return container;\n } catch { return null; }\n };\n return {\n scrollTop: () => {\n const el = resolve();\n if (!el) return fallback.scrollTop();\n return el.scrollTop || 0;\n },\n scrollTo: (top) => {\n const el = resolve();\n if (!el) { fallback.scrollTo(top); return; }\n try { el.scrollTop = top; } catch { }\n },\n scrollToAnchor: (id) => fallback.scrollToAnchor(id),\n };\n}\n\n/** `/docs/x#bolum` → `{ path: '/docs/x', hash: 'bolum' }`. */\nfunction splitUri(uri: string): { path: string; hash: string } {\n const index = uri.indexOf('#');\n if (index < 0) return { path: uri, hash: '' };\n return { path: uri.slice(0, index) || '/', hash: decodeHash(uri.slice(index + 1)) };\n}\n\nfunction locationHash(): string {\n try {\n const hash = location?.hash ?? '';\n return hash.length > 1 ? decodeHash(hash.slice(1)) : '';\n } catch { return ''; }\n}\n\nfunction decodeHash(value: string): string {\n try { return decodeURIComponent(value); } catch { return value; }\n}\n\nfunction frame(run: () => void): () => void {\n if (typeof requestAnimationFrame !== 'function') {\n const id = setTimeout(run, 16);\n return () => clearTimeout(id);\n }\n const id = requestAnimationFrame(run);\n return () => cancelAnimationFrame(id);\n}\n\nfunction listen(\n target: EventTarget,\n type: string,\n handler: () => void,\n options?: AddEventListenerOptions,\n): () => void {\n try {\n target.addEventListener(type, handler, options);\n return () => { try { target.removeEventListener(type, handler, options); } catch { } };\n } catch {\n return () => { };\n }\n}","import { ComponentBase, notifyDeactivated } from \"../\";\nimport { disposeNavigationTarget, hasOwnTransition } from \"../component/navigation\";\nimport { reportError } from \"../common/diagnostics\";\nimport type { NavigationDirection, RouteItem, StackEntryInfo, StackOptions, StackTransitionContext } from \"./\";\n\nexport type HistoryPoint = { index: number; session: string };\n\nexport type StackNavigation = {\n direction: NavigationDirection;\n from: HistoryPoint | null;\n to: HistoryPoint | null;\n uri: string;\n};\n\ntype SavedScroll = Array<[Element, number, number]>;\n\ntype SavedPresentation = {\n style: string | null;\n inert: boolean;\n ariaHidden: string | null;\n};\n\nexport type RetainedEntry = {\n point: HistoryPoint;\n uri: string;\n chain: RouteItem[];\n instances: ComponentBase[];\n top: ComponentBase;\n topIndex: number;\n outlet: any;\n attached: boolean;\n hidden: boolean;\n pendingDetach: boolean;\n saved: SavedPresentation | null;\n scroll: SavedScroll;\n};\n\ntype Gesture = {\n startX: number;\n startY: number;\n lastX: number;\n samples: Array<[number, number]>;\n dragging: boolean;\n width: number;\n top: HTMLElement;\n topSaved: string | null;\n under: RetainedEntry | null;\n underSaved: string | null;\n offs: Array<() => void>;\n};\n\nconst STORAGE_KEY = 'motifjs:stack';\nconst SLIDE_OFFSET = 30;\nconst EASING = 'cubic-bezier(0.2, 0.8, 0.2, 1)';\n\nconst isElement = (node: any): node is HTMLElement => !!node && node.nodeType === 1 && !!node.style;\n\nexport { hasOwnTransition };\n\nexport function markDirection(component: ComponentBase | null | undefined, direction: NavigationDirection): void {\n const el = component?.element as any;\n if (!component || component.isDisposed || !isElement(el)) return;\n try { el.setAttribute('data-nav-direction', direction); } catch { }\n (component.motif.options.transition as any)._markedDirection = true;\n}\n\nexport function unmarkDirection(component: ComponentBase | null | undefined): void {\n const transition: any = component?.motif?.options?.transition;\n if (!transition?._markedDirection) return;\n transition._markedDirection = false;\n try { (component!.element as any)?.removeAttribute?.('data-nav-direction'); } catch { }\n}\n\nexport function playLeave(component: ComponentBase): Promise<void> {\n return new Promise<void>((resolve) => {\n let settled = false;\n const done = () => { if (!settled) { settled = true; resolve(); } };\n try {\n const animation: any = component.motif.options.transition.leaveTransition(done);\n if (animation && typeof animation.addEventListener === 'function') animation.addEventListener('cancel', done);\n } catch {\n done();\n }\n });\n}\n\nfunction saveStyle(el: HTMLElement): string | null {\n return el.getAttribute('style');\n}\n\nfunction restoreStyle(el: HTMLElement, value: string | null): void {\n try {\n el.setAttribute('style', value ?? '');\n if (value === null) el.removeAttribute('style');\n } catch { }\n}\n\nfunction saveScroll(root: HTMLElement): SavedScroll {\n const saved: SavedScroll = [];\n try {\n const visit = (el: Element) => {\n const top = (el as HTMLElement).scrollTop || 0;\n const left = (el as HTMLElement).scrollLeft || 0;\n if (top || left) saved.push([el, top, left]);\n };\n visit(root);\n root.querySelectorAll('*').forEach(visit);\n } catch { }\n return saved;\n}\n\nfunction restoreScroll(saved: SavedScroll): void {\n for (const [el, top, left] of saved) {\n try {\n (el as HTMLElement).scrollTop = top;\n (el as HTMLElement).scrollLeft = left;\n } catch { }\n }\n}\n\nfunction prefersReducedMotion(): boolean {\n try {\n return typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n } catch { return false; }\n}\n\nfunction play(el: HTMLElement, keyframes: Keyframe[], duration: number, running: Animation[]): Promise<void> {\n if (typeof (el as any).animate !== 'function' || duration <= 0) return Promise.resolve();\n try {\n const animation = el.animate(keyframes, { duration, easing: EASING, fill: 'forwards' });\n running.push(animation);\n return animation.finished.then(() => undefined, () => undefined);\n } catch {\n return Promise.resolve();\n }\n}\n\nfunction overlay(floating: HTMLElement, anchor: HTMLElement, above: boolean): void {\n floating.style.position = 'absolute';\n floating.style.top = '0px';\n floating.style.left = '0px';\n floating.style.margin = '0px';\n floating.style.boxSizing = 'border-box';\n const a = anchor.getBoundingClientRect();\n const f = floating.getBoundingClientRect();\n floating.style.top = (a.top - f.top) + 'px';\n floating.style.left = (a.left - f.left) + 'px';\n floating.style.width = a.width + 'px';\n floating.style.height = a.height + 'px';\n floating.style.pointerEvents = 'none';\n floating.style.zIndex = above ? '2' : '0';\n if (!above) {\n let position = '';\n try { position = getComputedStyle(anchor).position; } catch { }\n if (!position || position === 'static') anchor.style.position = 'relative';\n anchor.style.zIndex = '1';\n }\n}\n\nexport class NavigationStack {\n readonly retainAttached: boolean;\n readonly depth: number;\n readonly persist: boolean;\n readonly animation: StackOptions['animation'];\n readonly duration: number;\n private readonly swipe: { edge: number; threshold: number } | null;\n\n private session: string | null = null;\n private readonly entries = new Map<number, RetainedEntry>();\n private readonly uris = new Map<number, string>();\n private loaded: { session: string; uris: Array<[number, string]> } | null = null;\n private current: HistoryPoint | null = null;\n private currentTop: ComponentBase | null = null;\n private readonly offs: Array<() => void> = [];\n private gesture: Gesture | null = null;\n private gestureCommitted = false;\n private awaitingGestureResult = false;\n private disposed = false;\n\n constructor(options: true | StackOptions) {\n const o: StackOptions = options === true ? {} : options;\n this.retainAttached = o.retain === true;\n this.depth = Math.max(0, Math.floor(o.depth ?? 5));\n this.persist = o.persist === true;\n this.animation = o.animation ?? 'none';\n this.duration = Math.max(0, o.duration ?? 300);\n const sb = o.swipeBack;\n this.swipe = sb\n ? {\n edge: (typeof sb === 'object' && typeof sb.edge === 'number' && sb.edge > 0) ? sb.edge : 24,\n threshold: (typeof sb === 'object' && typeof sb.threshold === 'number' && sb.threshold > 0) ? sb.threshold : 0.35,\n }\n : null;\n if (this.persist) this.load();\n if (this.swipe) this.installSwipe();\n }\n\n public get retainedCount(): number {\n return this.entries.size;\n }\n\n public isRetaining(nav: StackNavigation): boolean {\n return !!nav.from && !!nav.to && nav.from.session === nav.to.session && nav.to.index > nav.from.index;\n }\n\n public begin(nav: StackNavigation): void {\n const point = nav.to;\n if (!point) return;\n if (this.session !== point.session) {\n this.disposeAllEntries();\n this.uris.clear();\n this.session = point.session;\n if (this.loaded && this.loaded.session === point.session) {\n for (const [index, uri] of this.loaded.uris) this.uris.set(index, uri);\n }\n this.loaded = null;\n }\n if (nav.direction === 'push') {\n this.truncate(point.index);\n } else if (nav.direction === 'replace') {\n const stale = this.entries.get(point.index);\n if (stale) { this.entries.delete(point.index); void this.disposeEntry(stale); }\n }\n }\n\n public take(point: HistoryPoint | null): RetainedEntry | null {\n if (!point || point.session !== this.session) return null;\n const entry = this.entries.get(point.index);\n if (!entry) return null;\n this.entries.delete(point.index);\n entry.pendingDetach = false;\n return entry;\n }\n\n public retain(point: HistoryPoint, uri: string, chain: RouteItem[], instances: ComponentBase[], topIndex: number, outlet: any, deferHide: boolean): RetainedEntry {\n const top = instances[topIndex];\n const el = top.element as any;\n const entry: RetainedEntry = {\n point, uri, chain: chain.slice(), instances: instances.slice(), top, topIndex, outlet,\n attached: false, hidden: false, pendingDetach: false, saved: null,\n scroll: isElement(el) ? saveScroll(el) : [],\n };\n if (this.retainAttached && isElement(el)) {\n entry.attached = true;\n if (!deferHide) this.hide(entry);\n } else if (deferHide) {\n entry.pendingDetach = true;\n } else {\n try { top.parent?.controls.silentDetach(top); } catch { }\n }\n const previous = this.entries.get(point.index);\n if (previous && previous !== entry) void this.disposeEntry(previous);\n this.entries.set(point.index, entry);\n this.evict();\n return entry;\n }\n\n public settle(entry: RetainedEntry): void {\n if (entry.top.isDisposed || this.entries.get(entry.point.index) !== entry) return;\n if (entry.attached) {\n this.hide(entry);\n } else if (entry.pendingDetach) {\n entry.pendingDetach = false;\n try { entry.top.parent?.controls.silentDetach(entry.top); } catch { }\n }\n }\n\n public hide(entry: RetainedEntry): void {\n if (!entry.attached || entry.hidden) return;\n const el = entry.top.element as any;\n if (!isElement(el)) return;\n entry.saved = {\n style: saveStyle(el),\n inert: el.hasAttribute('inert'),\n ariaHidden: el.getAttribute('aria-hidden'),\n };\n try {\n el.style.setProperty('display', 'none', 'important');\n el.setAttribute('inert', '');\n el.setAttribute('aria-hidden', 'true');\n } catch { }\n entry.hidden = true;\n try { notifyDeactivated(entry.top); } catch { }\n }\n\n public reveal(entry: RetainedEntry): void {\n const el = entry.top.element as any;\n if (entry.hidden && entry.saved && isElement(el)) {\n restoreStyle(el, entry.saved.style);\n try {\n if (!entry.saved.inert) el.removeAttribute('inert');\n if (entry.saved.ariaHidden === null) el.removeAttribute('aria-hidden');\n else el.setAttribute('aria-hidden', entry.saved.ariaHidden);\n } catch { }\n }\n entry.hidden = false;\n entry.saved = null;\n }\n\n public restoreScroll(entry: RetainedEntry): void {\n restoreScroll(entry.scroll);\n }\n\n public record(nav: StackNavigation, top: ComponentBase | null): void {\n if (nav.to && nav.to.session === this.session) {\n this.uris.set(nav.to.index, nav.uri);\n if (nav.direction === 'push') {\n for (const index of Array.from(this.uris.keys())) {\n if (index > nav.to.index) this.uris.delete(index);\n }\n }\n this.current = nav.to;\n }\n this.currentTop = top;\n this.save();\n }\n\n public describe(): StackEntryInfo[] {\n const current = this.current?.index;\n return Array.from(this.uris.entries())\n .sort((a, b) => a[0] - b[0])\n .map(([index, uri]) => ({ index, uri, current: index === current, retained: this.entries.has(index) }));\n }\n\n public get gestureCommitPending(): boolean {\n return this.gestureCommitted;\n }\n\n public consumeGestureCommit(): boolean {\n const committed = this.gestureCommitted;\n this.gestureCommitted = false;\n return committed;\n }\n\n public traversalSettled(cancelled: boolean): void {\n if (!this.awaitingGestureResult) return;\n this.awaitingGestureResult = false;\n const g = this.gesture;\n if (!cancelled) {\n this.gesture = null;\n this.gestureCommitted = false;\n return;\n }\n this.gestureCommitted = false;\n if (g) void this.settleGesture(g, false);\n }\n\n public async transition(direction: NavigationDirection, entering: ComponentBase | null, leaving: ComponentBase | null): Promise<void> {\n if (this.consumeGestureCommit()) return;\n if (this.animation === 'none' || !this.animation) return;\n if (direction !== 'push' && direction !== 'back' && direction !== 'forward') return;\n const enteringEl = entering?.element as any;\n const leavingEl = leaving?.element as any;\n if (!isElement(enteringEl) || !isElement(leavingEl) || !enteringEl.isConnected || !leavingEl.isConnected) return;\n if (prefersReducedMotion()) return;\n\n const backwards = direction === 'back';\n const enteringStyle = saveStyle(enteringEl);\n const leavingStyle = saveStyle(leavingEl);\n const running: Animation[] = [];\n try {\n overlay(leavingEl, enteringEl, backwards);\n if (typeof this.animation === 'function') {\n const context: StackTransitionContext = { direction, entering: enteringEl, leaving: leavingEl };\n await this.animation(context);\n } else {\n const d = this.duration;\n if (backwards) {\n await Promise.all([\n play(leavingEl, [{ transform: 'translateX(0)' }, { transform: 'translateX(100%)' }], d, running),\n play(enteringEl, [{ transform: `translateX(-${SLIDE_OFFSET}%)` }, { transform: 'translateX(0)' }], d, running),\n ]);\n } else {\n await Promise.all([\n play(enteringEl, [{ transform: 'translateX(100%)' }, { transform: 'translateX(0)' }], d, running),\n play(leavingEl, [{ transform: 'translateX(0)' }, { transform: `translateX(-${SLIDE_OFFSET}%)` }], d, running),\n ]);\n }\n }\n } catch (error) {\n reportError('MJX308', error);\n } finally {\n for (const a of running) { try { a.cancel(); } catch { } }\n restoreStyle(enteringEl, enteringStyle);\n restoreStyle(leavingEl, leavingStyle);\n }\n }\n\n public async disposeEntry(entry: RetainedEntry): Promise<void> {\n const top = entry.top;\n if (!top || top.isDisposed) return;\n try { await disposeNavigationTarget(top, { deep: true, skipLeaveTransition: true }); } catch (error) { reportError('MJX307', error); }\n }\n\n public async dispose(): Promise<void> {\n if (this.disposed) return;\n this.disposed = true;\n for (const off of this.offs.splice(0)) { try { off(); } catch { } }\n if (this.gesture) { this.endGestureListeners(this.gesture); this.gesture = null; }\n await this.disposeAllEntries();\n this.uris.clear();\n this.current = null;\n this.currentTop = null;\n }\n\n private async disposeAllEntries(): Promise<void> {\n const all = Array.from(this.entries.values());\n this.entries.clear();\n for (const entry of all) await this.disposeEntry(entry);\n }\n\n private truncate(fromIndex: number): void {\n for (const [index, entry] of Array.from(this.entries)) {\n if (index >= fromIndex) {\n this.entries.delete(index);\n void this.disposeEntry(entry);\n }\n }\n }\n\n private evict(): void {\n while (this.entries.size > this.depth) {\n let oldest = Infinity;\n for (const index of this.entries.keys()) if (index < oldest) oldest = index;\n const entry = this.entries.get(oldest);\n this.entries.delete(oldest);\n if (entry) void this.disposeEntry(entry);\n }\n }\n\n private load(): void {\n try {\n if (typeof sessionStorage === 'undefined') return;\n const raw = sessionStorage.getItem(STORAGE_KEY);\n if (!raw) return;\n const parsed = JSON.parse(raw);\n if (!parsed || typeof parsed.session !== 'string' || !Array.isArray(parsed.uris)) return;\n const uris: Array<[number, string]> = [];\n for (const pair of parsed.uris) {\n if (Array.isArray(pair) && typeof pair[0] === 'number' && typeof pair[1] === 'string') uris.push([pair[0], pair[1]]);\n }\n this.loaded = { session: parsed.session, uris };\n } catch { }\n }\n\n private save(): void {\n if (!this.persist || !this.session) return;\n try {\n if (typeof sessionStorage === 'undefined') return;\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify({ session: this.session, uris: Array.from(this.uris.entries()) }));\n } catch { }\n }\n\n private installSwipe(): void {\n if (typeof document === 'undefined') return;\n const onStart = (e: TouchEvent) => this.onTouchStart(e);\n try {\n document.addEventListener('touchstart', onStart as any, { passive: true });\n this.offs.push(() => { try { document.removeEventListener('touchstart', onStart as any); } catch { } });\n } catch { }\n }\n\n private onTouchStart(e: TouchEvent): void {\n if (this.disposed || this.gesture || this.awaitingGestureResult || !this.swipe) return;\n if (!e.touches || e.touches.length !== 1) return;\n const t = e.touches[0];\n if (!t || t.clientX > this.swipe.edge) return;\n if (!this.current || this.current.index <= 0) return;\n const topEl = this.currentTop?.element as any;\n if (!isElement(topEl) || !topEl.isConnected) return;\n\n const g: Gesture = {\n startX: t.clientX, startY: t.clientY, lastX: t.clientX, samples: [[t.clientX, Date.now()]],\n dragging: false, width: 0, top: topEl, topSaved: null, under: null, underSaved: null, offs: [],\n };\n const onMove = (ev: TouchEvent) => this.onTouchMove(g, ev);\n const onEnd = () => this.onTouchEnd(g);\n try {\n document.addEventListener('touchmove', onMove as any, { passive: false });\n document.addEventListener('touchend', onEnd);\n document.addEventListener('touchcancel', onEnd);\n g.offs.push(() => {\n try { document.removeEventListener('touchmove', onMove as any); } catch { }\n try { document.removeEventListener('touchend', onEnd); } catch { }\n try { document.removeEventListener('touchcancel', onEnd); } catch { }\n });\n } catch { }\n this.gesture = g;\n }\n\n private endGestureListeners(g: Gesture): void {\n for (const off of g.offs.splice(0)) { try { off(); } catch { } }\n }\n\n private beginDrag(g: Gesture): void {\n g.dragging = true;\n g.width = g.top.getBoundingClientRect().width || (typeof window !== 'undefined' ? window.innerWidth : 0) || 1;\n g.topSaved = saveStyle(g.top);\n const current = this.current;\n const under = current ? this.entries.get(current.index - 1) ?? null : null;\n if (under && under.attached && isElement(under.top.element) && (under.top.element as any).isConnected) {\n const el = under.top.element as any as HTMLElement;\n g.under = under;\n g.underSaved = saveStyle(el);\n if (under.saved) restoreStyle(el, under.saved.style);\n overlay(el, g.top, false);\n el.style.transform = `translateX(-${SLIDE_OFFSET}%)`;\n restoreScroll(under.scroll);\n }\n g.top.style.willChange = 'transform';\n }\n\n private applyDrag(g: Gesture, dx: number): void {\n const progress = Math.min(1, Math.max(0, dx / g.width));\n g.top.style.transform = `translateX(${Math.max(0, dx)}px)`;\n if (g.under) {\n (g.under.top.element as any as HTMLElement).style.transform = `translateX(-${SLIDE_OFFSET * (1 - progress)}%)`;\n }\n }\n\n private onTouchMove(g: Gesture, e: TouchEvent): void {\n const t = e.touches && e.touches[0];\n if (!t) return;\n const dx = t.clientX - g.startX;\n const dy = t.clientY - g.startY;\n if (!g.dragging) {\n if (Math.abs(dx) < 8 && Math.abs(dy) < 8) return;\n if (dx <= 0 || Math.abs(dy) > Math.abs(dx)) {\n this.endGestureListeners(g);\n this.gesture = null;\n return;\n }\n this.beginDrag(g);\n }\n if (e.cancelable) { try { e.preventDefault(); } catch { } }\n const now = Date.now();\n g.lastX = t.clientX;\n g.samples.push([t.clientX, now]);\n while (g.samples.length > 2 && now - g.samples[0][1] > 100) g.samples.shift();\n this.applyDrag(g, dx);\n }\n\n private onTouchEnd(g: Gesture): void {\n this.endGestureListeners(g);\n if (!g.dragging) { this.gesture = null; return; }\n const dx = g.lastX - g.startX;\n const progress = dx / g.width;\n const first = g.samples[0];\n const last = g.samples[g.samples.length - 1];\n const span = last && first ? last[1] - first[1] : 0;\n const idle = last ? Date.now() - last[1] : Infinity;\n const velocity = span >= 16 && idle <= 50 ? (last[0] - first[0]) / span : 0;\n const commit = progress > this.swipe!.threshold || (velocity > 0.5 && dx > 0);\n void this.settleGesture(g, commit);\n }\n\n private async settleGesture(g: Gesture, commit: boolean): Promise<void> {\n const running: Animation[] = [];\n const topEl = g.top;\n const underEl = g.under ? g.under.top.element as any as HTMLElement : null;\n const duration = prefersReducedMotion() ? 0 : Math.max(0, Math.round(this.duration * 0.6));\n const currentTop = topEl.style.transform || 'translateX(0px)';\n const currentUnder = underEl?.style.transform || `translateX(-${SLIDE_OFFSET}%)`;\n if (commit) {\n await Promise.all([\n play(topEl, [{ transform: currentTop }, { transform: 'translateX(100%)' }], duration, running),\n underEl ? play(underEl, [{ transform: currentUnder }, { transform: 'translateX(0)' }], duration, running) : Promise.resolve(),\n ]);\n topEl.style.transform = 'translateX(100%)';\n if (underEl) underEl.style.transform = 'translateX(0px)';\n for (const a of running) { try { a.cancel(); } catch { } }\n this.gestureCommitted = true;\n this.awaitingGestureResult = true;\n try { window.history.back(); } catch { this.traversalSettled(true); }\n return;\n }\n await Promise.all([\n play(topEl, [{ transform: currentTop }, { transform: 'translateX(0)' }], duration, running),\n underEl ? play(underEl, [{ transform: currentUnder }, { transform: `translateX(-${SLIDE_OFFSET}%)` }], duration, running) : Promise.resolve(),\n ]);\n for (const a of running) { try { a.cancel(); } catch { } }\n restoreStyle(topEl, g.topSaved);\n if (underEl && g.under) {\n restoreStyle(underEl, g.underSaved);\n }\n if (this.gesture === g) this.gesture = null;\n }\n}\n","export const enum CharacterCodes {\n slash = 0x2F, // /\n question = 0x3F, // ?\n colon = 0x3A, // :\n openBrace = 0x7B, // {\n closeBrace = 0x7D, // }\n equals = 0x3D, // =\n $ = 0x24,\n backslash = 0x5C, // \\\n}\n\n\n\n\nexport interface IToken {\n type: 'static' | 'optional' | 'parameter';\n regexs: [];\n input: string;\n default: string | undefined;\n parameterName: string;\n isOptinal: boolean;\n parameterIndex: number;\n sectionIndex: number;\n hasLeadingSlash?: boolean;\n leadingSlashTokenIndex?: number;\n hasLeadingStatic?: boolean;\n leadingStaticTokenIndex?: number;\n consumed?: boolean;\n}\nexport class Scanner {\n\n constructor(public source: string) {\n this.tokens = [];\n }\n currentColumn = 0;\n tokens: IToken[] = [];\n addToken(token: IToken) {\n this.tokens.push(token);\n }\n\n public parse(): RegExp {\n if (!this.source.startsWith(\"/\")) {\n this.source = \"/\" + this.source;\n }\n // Sondaki '/' karakterlerini normalize et (kök '/' hariç): '/app/' deseni '/app' ile aynı\n while (this.source.length > 1 && this.source.endsWith('/')) {\n this.source = this.source.slice(0, -1);\n }\n\n var currentType: 'static' | 'optional' | 'parameter' | 'defaultValue' = 'static';\n var parentTokenIndex = -1;\n var parameterIndex = 0;\n var sectionIndex = -1;\n this.tokens = [];\n this.currentColumn = 0;\n while (this.currentColumn < this.source.length) {\n\n var cpa = this.codePointAt(this.source, this.currentColumn);\n\n var currentToken = this.tokens[parentTokenIndex];\n switch (cpa) {\n case CharacterCodes.slash:\n sectionIndex++;\n if (currentToken === undefined || currentToken.input.length > 1) {\n this.tokens.push({ default: '', input: '/', isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n break;\n case CharacterCodes.openBrace:\n parameterIndex++;\n let hasLeadingSlash = false;\n let leadingSlashTokenIndex: number | undefined = undefined;\n let hasLeadingStatic = false;\n let leadingStaticTokenIndex: number | undefined = undefined;\n if (this.tokens.length > 0) {\n const prev = this.tokens[this.tokens.length - 1];\n if (prev && prev.type === 'static' && prev.input === '/' && !prev.consumed) {\n hasLeadingSlash = true;\n leadingSlashTokenIndex = this.tokens.length - 1;\n } else if (prev && prev.type === 'static' && prev.input !== '/' && prev.sectionIndex === sectionIndex && !prev.consumed) {\n hasLeadingStatic = true;\n leadingStaticTokenIndex = this.tokens.length - 1;\n }\n }\n this.tokens.push({ default: undefined, input: '', isOptinal: false, regexs: [], type: 'parameter', parameterName: '', parameterIndex: parameterIndex, sectionIndex, hasLeadingSlash, leadingSlashTokenIndex, hasLeadingStatic, leadingStaticTokenIndex });\n parentTokenIndex = this.tokens.length - 1;\n currentType = 'parameter';\n break;\n case CharacterCodes.closeBrace:\n currentType = 'static';\n parentTokenIndex = -1;\n break;\n case CharacterCodes.colon:\n currentType = 'defaultValue';\n break;\n\n case CharacterCodes.question:\n if (currentToken) {\n currentToken.isOptinal = true;\n }\n break;\n default:\n const ch = this.source[this.currentColumn];\n if (currentToken) {\n if (currentType === 'parameter') {\n currentToken.parameterName = `${currentToken.parameterName + ch}`;\n } else if (currentType === 'defaultValue') {\n currentToken.default = `${(currentToken.default ?? '') + ch}`;\n } else {\n if (currentToken.type === 'static') {\n currentToken.input = `${currentToken.input + ch}`;\n } else {\n this.tokens.push({ default: undefined, input: ch, isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n }\n } else {\n this.tokens.push({ default: undefined, input: ch, isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n break;\n }\n this.currentColumn++;\n }\n\n const escapeRegex = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const charClass = \"[\\\\w\\\\d\\\\_\\\\-\\\\%\\\\&\\\\$\\\\+\\\\#\\\\,\\\\.\\\\{\\\\}\\\\(\\\\)\\\\[\\\\]\\\\?\\\\:\\\\=\\\\;\\\\'\\\\\\\"\\\\~\\\\\\\\]\";\n\n for (const t of this.tokens) {\n if (t.type === 'parameter' && t.isOptinal && t.hasLeadingSlash && typeof t.leadingSlashTokenIndex === 'number') {\n const prev = this.tokens[t.leadingSlashTokenIndex];\n if (prev && prev.type === 'static' && prev.input === '/') {\n prev.consumed = true;\n }\n }\n if (t.type === 'parameter' && t.isOptinal && t.hasLeadingStatic && typeof t.leadingStaticTokenIndex === 'number') {\n const prev = this.tokens[t.leadingStaticTokenIndex];\n if (prev && prev.type === 'static' && prev.input && prev.sectionIndex === t.sectionIndex) {\n prev.consumed = true;\n }\n }\n }\n\n const escapeClassChar = (c: string) => c.replace(/[\\\\\\]\\^\\-]/g, '\\\\$&');\n\n const getNextDelimChar = (idx: number): string | undefined => {\n const t = this.tokens[idx];\n for (let j = idx + 1; j < this.tokens.length; j++) {\n const nx = this.tokens[j];\n if (nx.type === 'static' && nx.sectionIndex === t.sectionIndex) {\n if (nx.input && nx.input !== '/') {\n return nx.input[0];\n }\n }\n if (nx.type === 'static' && nx.input === '/') break;\n }\n return undefined;\n };\n const buildCapture = (idx: number, isOptional: boolean) => {\n const delim = getNextDelimChar(idx);\n const innerClass = delim ? `[^${escapeClassChar(escapeRegex(delim))}]` : charClass;\n const quant = isOptional ? '{0,255}' : '{1,255}';\n return `(${innerClass}${quant})`;\n };\n\n let pattern = '^';\n for (let i = 0; i < this.tokens.length;) {\n const tok = this.tokens[i];\n if (tok.type === 'static' && tok.input === '/') {\n if (!tok.consumed) pattern += '/';\n i++;\n continue;\n }\n const segStart = i;\n let segEnd = i;\n while (segEnd < this.tokens.length) {\n const t = this.tokens[segEnd];\n if (t.type === 'static' && t.input === '/' && segEnd !== segStart) break;\n if (t.type === 'static' && t.input === '/' && segEnd === segStart) { segEnd++; break; }\n segEnd++;\n }\n const visited: Record<number, boolean> = {};\n let k = segStart;\n while (k < segEnd) {\n if (visited[k]) { k++; continue; }\n const t = this.tokens[k];\n if (t.type === 'static') {\n if (!t.consumed) pattern += escapeRegex(t.input);\n visited[k] = true;\n k++;\n continue;\n }\n if (t.isOptinal && !t.hasLeadingStatic) {\n\n const firstIdx = k;\n let hasDependent = false;\n for (let jj = firstIdx + 1; jj < segEnd; jj++) {\n const sj = this.tokens[jj];\n const pj = this.tokens[jj + 1] as IToken | undefined;\n if (sj && sj.type === 'static' && pj && pj.type === 'parameter' && pj.isOptinal && pj.hasLeadingStatic && typeof pj.leadingStaticTokenIndex === 'number' && pj.leadingStaticTokenIndex === jj) {\n hasDependent = true;\n break;\n }\n if (sj && sj.type === 'static' && sj.input === '/') break;\n }\n\n let groupInner = '';\n if (t.hasLeadingSlash) groupInner += '/';\n groupInner += buildCapture(firstIdx, !hasDependent);\n visited[firstIdx] = true;\n let j = firstIdx + 1;\n while (j < segEnd) {\n const sj = this.tokens[j];\n if (sj.type === 'static' && this.tokens[j + 1] && this.tokens[j + 1].type === 'parameter') {\n const prm = this.tokens[j + 1] as IToken;\n if (prm.isOptinal && prm.hasLeadingStatic && typeof prm.leadingStaticTokenIndex === 'number' && prm.leadingStaticTokenIndex === j) {\n const lit = escapeRegex(sj.input);\n const cap = buildCapture(j + 1, true);\n groupInner += `(?:${lit}${cap})?`;\n visited[j] = true;\n visited[j + 1] = true;\n j += 2;\n continue;\n }\n }\n break;\n }\n pattern += `(?:${groupInner})?`;\n k = j;\n continue;\n } else {\n const cap = buildCapture(k, t.isOptinal);\n if (t.isOptinal) {\n if (t.hasLeadingSlash) {\n pattern += `(?:/${cap})?`;\n } else if (t.hasLeadingStatic && typeof t.leadingStaticTokenIndex === 'number') {\n const prev = this.tokens[t.leadingStaticTokenIndex];\n const lit = prev && prev.type === 'static' ? escapeRegex(prev.input) : '';\n pattern += `(?:${lit}${cap})?`;\n } else {\n pattern += `(?:${cap})?`;\n }\n } else {\n pattern += cap;\n }\n visited[k] = true;\n k++;\n }\n }\n i = segEnd;\n }\n\n pattern += '$';\n return new RegExp(pattern, \"i\");\n }\n public parameters: Record<string, any> = {};\n public exist(input: string, pageSearch?: string): boolean {\n const hashIdx = input.indexOf('#');\n const withoutHash = hashIdx >= 0 ? input.substring(0, hashIdx) : input;\n let path = withoutHash;\n let query = '';\n const qIdx = withoutHash.indexOf('?');\n if (qIdx >= 0) {\n path = withoutHash.substring(0, qIdx);\n query = withoutHash.substring(qIdx + 1);\n }\n\n // İstek yolundaki sondaki '/' karakterlerini yok say (kök '/' hariç):\n // '/app/' → '/app'; desen ^...$ tam eşleşme olduğundan aksi halde not-found olur.\n while (path.length > 1 && path.endsWith('/')) {\n path = path.slice(0, -1);\n }\n\n var tx = this.parse();\n var rx = tx.exec(path);\n\n if (rx) {\n var i = rx ? rx.length : 0;\n var arr = <any>[];\n\n this.parameters = {};\n rx?.forEach((t, indx) => {\n arr.push(t);\n })\n if (query && query.length) {\n const urlSearchParams = new URLSearchParams(query);\n const queryMap = new Map<string, string[]>();\n urlSearchParams.forEach((val, key) => {\n const existing = queryMap.get(key) || [];\n existing.push(val);\n queryMap.set(key, existing);\n });\n queryMap.forEach((values, key) => {\n if (values.length === 1) {\n this.parameters[key] = values[0];\n } else {\n this.parameters[key] = values;\n }\n });\n } else if (pageSearch) {\n const urlSearchParams = new URLSearchParams(pageSearch);\n const queryMap = new Map<string, string[]>();\n urlSearchParams.forEach((val, key) => {\n const existing = queryMap.get(key) || [];\n existing.push(val);\n queryMap.set(key, existing);\n });\n queryMap.forEach((values, key) => {\n if (values.length === 1) {\n this.parameters[key] = values[0];\n } else {\n this.parameters[key] = values;\n }\n });\n }\n\n if (rx.input === arr[0]) {\n rx?.forEach((t, indx) => {\n\n if (indx !== 0) {\n var all = this.tokens.find(t => t.parameterIndex == indx);\n if (all) {\n let val: any = t;\n if ((val === undefined || val === '') && all.isOptinal) {\n const def = (all.default === undefined || all.default === '') ? undefined : all.default;\n val = def;\n }\n if (val === undefined) {\n this.parameters[all.parameterName] = undefined;\n } else {\n this.parameters[all.parameterName] = val;\n }\n }\n }\n })\n /* TODO: route detayları ile ilgili mesajı Geliştirici Araçları'na gönder */\n return true;\n }\n }\n\n return false;\n }\n codePointAt: (s: string, i: number) =>\n number = (String.prototype as any).codePointAt ?\n (s, i) => (s as any).codePointAt(i) : function codePointAt(str, i): number {\n const size = str.length;\n if (i < 0 || i >= size) {\n return undefined!;\n }\n const first = str.charCodeAt(i);\n if (first >= 0xD800 && first <= 0xDBFF && size > i + 1) {\n const second = str.charCodeAt(i + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n };\n\n}","import { RouteItem, RouteRecord } from \"./RouteItem\";\r\nimport { Scanner } from \"./scanner\";\r\n\r\n\r\n/** Bir fullPath'in statik (parametresiz) ve parametreli segment sayıları. */\r\nexport function routeSpecificity(fullPath: string): { statics: number; params: number } {\r\n let statics = 0, params = 0;\r\n for (const seg of (fullPath || '').split('/')) {\r\n if (!seg) continue;\r\n if (seg.startsWith('{') && seg.endsWith('}')) params++; else statics++;\r\n }\r\n return { statics, params };\r\n}\r\n\r\nexport function compareRouteRecords(a: RouteRecord, b: RouteRecord): number {\r\n const d = a.chain.length - b.chain.length;\r\n if (d !== 0) return d;\r\n const sa = routeSpecificity(a.fullPath), sb = routeSpecificity(b.fullPath);\r\n if (sa.statics !== sb.statics) return sb.statics - sa.statics;\r\n if (sa.params !== sb.params) return sa.params - sb.params;\r\n return b.fullPath.length - a.fullPath.length;\r\n}\r\n\r\nexport class RouteCollection {\r\n\r\n public records: RouteRecord[] = [];\r\n private routesMap: Map<any, RouteItem> = new Map();\r\n constructor(private routes: RouteItem[]) {\r\n this.build();\r\n }\r\n\r\n private build() {\r\n this.records = [];\r\n this.routesMap.clear();\r\n\r\n for (const r of this.routes) this.walk([], \"\", r);\r\n\r\n this.records.sort(compareRouteRecords);\r\n }\r\n\r\n walk = (chain: RouteItem[], parentPath: string, node: RouteItem, viaAlias: boolean = false) => {\r\n const fullPath = this.joinPaths(parentPath, node.path);\r\n if (!viaAlias) {\r\n const existing = (node as any).fullPath as string | null | undefined;\r\n if (existing == null || (typeof existing === 'string' && existing.trim() === '')) {\r\n (node as any).fullPath = fullPath;\r\n }\r\n if (node.name != null) {\r\n this.routesMap.set(node.name, node);\r\n }\r\n }\r\n const nextChain = [...chain, node];\r\n const aliases = node.alias == null ? [] : (Array.isArray(node.alias) ? node.alias : [node.alias]);\r\n const variants = [\r\n { path: fullPath, isAlias: viaAlias },\r\n ...aliases.map(a => ({ path: this.joinPaths(parentPath, a), isAlias: true }))\r\n ];\r\n for (const variant of variants) {\r\n this.records.push({\r\n fullPath: variant.path,\r\n chain: nextChain,\r\n leaf: node,\r\n scanner: new Scanner(variant.path),\r\n aliasOf: variant.isAlias ? ((node as any).fullPath ?? null) : null\r\n });\r\n if (node.childs && node.childs.length) {\r\n for (const child of node.childs) this.walk(nextChain, variant.path, child, variant.isAlias);\r\n }\r\n }\r\n }\r\n\r\n joinPaths(parent: string, child: string): string {\r\n parent = parent || \"\";\r\n child = child || \"\";\r\n\r\n const base = parent && parent !== \"/\" && parent.endsWith(\"/\") ? parent.slice(0, -1) : parent;\r\n\r\n if (child === \"/\") {\r\n return base || \"/\";\r\n }\r\n\r\n const seg = child ? (child.startsWith(\"/\") ? child : \"/\" + child) : \"\";\r\n\r\n if (!base || base === \"/\") {\r\n return seg || \"/\";\r\n }\r\n return base + seg;\r\n }\r\n}\r","import { Component, ComponentBase, assertLoadedComponent, resolveToComponent, unwrapModule, notifyActivated, notifyDeactivated } from \"../\";\nimport { cancelAnimationsDeep } from \"../component/navigation\";\nimport { errorHandler } from \"../common/ErrorHandler\";\nimport { callReported, reportError, reportWarning } from \"../common/diagnostics\";\nimport { NavigationDirection, NavigationOptions, ResolveResult } from \"./\";\nimport { RouterView, RouterViewBuilt } from \"./\";\nimport { UrlRoutingModule } from \"./\";\nimport { RouterViewRegistry } from \"./RouterViewRegistry\";\nimport { RouteItem } from \"./\";\nimport { Application } from \"../\";\nimport { pinServiceOwner, runInConstructionScope } from \"../dependencyInjection/ServiceProvider\";\nimport type { ServiceProvider } from \"../dependencyInjection/ServiceProvider\";\nimport { hasOwnTransition, markDirection, playLeave, unmarkDirection } from \"./NavigationStack\";\nimport type { NavigationStack, RetainedEntry, StackNavigation } from \"./NavigationStack\";\nimport type { RouteSnapshot } from \"./routerState\";\n\ntype StackLeave = { top: ComponentBase | null; retained: RetainedEntry | null; disposeAfter: ComponentBase[] };\ntype StackMotion = { animate: boolean; pages: boolean; direction: NavigationDirection };\ntype NavigationRun = { provider?: ServiceProvider; scope?: ServiceProvider; route: RouteSnapshot; committed: boolean; suppressed: ComponentBase[] };\n\nexport class RoutingEngine {\n\n public stack: NavigationStack | null = null;\n private _revealed: Set<ComponentBase> = new Set();\n\n private root!: ComponentBase;\n private application!: Application;\n private routingModule!: UrlRoutingModule;\n private _previousPath: ResolveResult | null = null;\n private _previousInstances: ComponentBase[] = [];\n\n public register(mainApp: ComponentBase, application: Application, routingModule: UrlRoutingModule) {\n this.root = mainApp;\n this.application = application;\n this.routingModule = routingModule;\n }\n\n private controlCache: Map<RouteItem, any> = new Map();\n\n public async evict(route?: RouteItem | null): Promise<void> {\n const targets: RouteItem[] = route ? [route] : Array.from(this.controlCache.keys());\n for (const r of targets) {\n const inst = this.controlCache.get(r);\n if (!inst || inst.isDisposed) { this.controlCache.delete(r); continue; }\n if (this._previousInstances.includes(inst)) continue;\n this.controlCache.delete(r);\n try { await inst.dispose(); } catch (error) { reportError('MJX307', error); }\n }\n }\n\n\n public async dispose(): Promise<void> {\n this._navVersion++;\n this._previousPath = null;\n this._previousInstances = [];\n this._revealed.clear();\n const stack = this.stack;\n this.stack = null;\n if (stack) { try { await stack.dispose(); } catch { } }\n await this.evict();\n }\n\n generatePathString(routeDefinition: string, params: Record<string, any>): string {\n const parts = routeDefinition.split('/');\n const result = parts.map(part => {\n if (part.startsWith('{') && part.endsWith('}')) {\n const paramDefinition = part.slice(1, -1);\n\n let [paramName, defaultValue] = paramDefinition.split(':');\n\n const isOptional = paramName.endsWith('?');\n if (isOptional) {\n paramName = paramName.slice(0, -1);\n }\n const value = params[paramName];\n if (value !== undefined && value !== null && value !== '') {\n return String(value);\n }\n return defaultValue ?? '';\n\n } else {\n return part;\n }\n })\n .filter(part => part !== '')\n .join('/');\n\n if (routeDefinition.startsWith('/')) {\n return '/' + (result ? result : '');\n }\n return result;\n }\n\n private _navVersion = 0;\n\n private _pendingActivate: Set<ComponentBase> = new Set();\n public async execute(path: ResolveResult, nav?: StackNavigation, route?: RouteSnapshot) {\n route ??= {\n target: path,\n chain: path.chain.map(r => this.generatePathString(r.path, path.params) || ''),\n direction: undefined,\n state: undefined,\n };\n const provider = this._rootProvider();\n const run: NavigationRun = { provider, scope: provider?._beginNavigation(), route, committed: false, suppressed: [] };\n try {\n await this._execute(path, nav, run);\n } finally {\n if (!run.committed && run.scope) provider!._abandonNavigation(run.scope);\n for (const inst of run.suppressed) if (!inst.isDisposed) inst.motif.options.transition._suppressEnter = false;\n }\n }\n\n private _commitNavigation(run: NavigationRun): void {\n if (run.committed) return;\n run.committed = true;\n if (run.scope) run.provider!._commitNavigation(run.scope);\n this.application?._routerState.commit(run.route);\n }\n\n private async _execute(path: ResolveResult, nav: StackNavigation | undefined, run: NavigationRun) {\n const navVersion = ++this._navVersion;\n const stack = this.stack && nav && nav.to ? this.stack : null;\n if (stack) stack.begin(nav!);\n const restored = stack ? stack.take(nav!.to) : null;\n const controlList: any[] = new Array(path.chain.length);\n\n const isSameRoute = !!(this._previousPath &&\n this._previousPath.route === path.route &&\n (this._previousPath.route != null || this._previousPath.fullPath === path.fullPath));\n\n var enableEnter = !!(this._previousPath && this._previousPath.uri === path.uri);\n let paramsChanged = false;\n\n\n if (isSameRoute && path.route) {\n\n const prevParams = this._previousPath!.params || {};\n const newParams = path.params || {};\n let changed = false;\n const allKeys = new Set([...Object.keys(prevParams), ...Object.keys(newParams)]);\n for (const k of allKeys) {\n if (prevParams[k] !== newParams[k]) { changed = true; break; }\n }\n if (changed) {\n paramsChanged = true;\n\n const leafRoute = path.route;\n if (leafRoute && !leafRoute.keepAlive && this.controlCache.has(leafRoute)) {\n if (stack) {\n this.controlCache.delete(leafRoute);\n } else {\n const oldInstance = this.controlCache.get(leafRoute);\n if (oldInstance && typeof oldInstance.dispose === 'function' && !oldInstance.isDisposed) {\n try { await oldInstance.dispose(); } catch { }\n }\n this.controlCache.delete(leafRoute);\n }\n }\n\n try {\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const updateHook = path.route.onUpdate || globalHooks?.onUpdate;\n if (updateHook) {\n const updateContext = {\n from: {\n path: this._previousPath!.uri || this._previousPath!.fullPath || '',\n params: prevParams\n },\n to: {\n path: path.uri || path.fullPath || '',\n params: newParams\n },\n meta: (path as any).meta ?? path.extend\n };\n await updateHook(updateContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onUpdate');\n }\n }\n }\n\n if ((!isSameRoute || paramsChanged) && path.route) {\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route.onEntering || globalHooks?.onEntering;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEntering');\n }\n }\n\n const prepTasks: Promise<void>[] = [];\n for (let i = 0; i < path.chain.length; i++) {\n const element = path.chain[i];\n const kept = restored && restored.chain[i] === element ? restored.instances[i] : undefined;\n if (kept && !kept.isDisposed && !element.keepAlive) {\n controlList[i] = kept;\n this.controlCache.set(element, kept);\n continue;\n }\n if (this.controlCache.has(element)) {\n let control = this.controlCache.get(element);\n if (!control || control.isDisposed) {\n this.controlCache.delete(element);\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n } else {\n controlList[i] = control;\n if (element.keepAlive && !this._previousInstances.includes(control)) {\n this._pendingActivate.add(control);\n }\n }\n } else {\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n }\n }\n if (prepTasks.length) {\n await Promise.all(prepTasks);\n }\n let leave: StackLeave | null = null;\n let motion: StackMotion | null = null;\n const previousInstances = this._previousInstances;\n if (stack) {\n const animate = !!stack.animation && stack.animation !== 'none'\n && (nav!.direction === 'push' || nav!.direction === 'back' || nav!.direction === 'forward');\n motion = { animate, pages: !animate && !stack.gestureCommitPending, direction: nav!.direction };\n leave = await this._stackLeave(path.chain, controlList, nav!, stack, motion);\n if (restored) {\n const top = restored.top;\n if (!top.isDisposed && restored.outlet && top.parent === restored.outlet) {\n stack.reveal(restored);\n restored.outlet.current = top;\n restored.outlet.previouspage = top;\n this._revealed.add(top);\n }\n if (!top.isDisposed) this._pendingActivate.add(top);\n }\n } else {\n await this.disposeFromDivergencePoint(path.chain, controlList);\n }\n const entering: ComponentBase[] = motion ? controlList.filter(c => c && !previousInstances.includes(c)) : [];\n if (motion) {\n for (const inst of previousInstances) unmarkDirection(inst);\n for (const inst of entering) {\n if (motion.pages) markDirection(inst, motion.direction);\n else {\n inst.motif.options.transition._suppressEnter = true;\n run.suppressed.push(inst);\n }\n }\n }\n if (navVersion === this._navVersion) this._commitNavigation(run);\n await this.mountChain(controlList, path.chain, this.root, navVersion);\n if (motion?.pages) {\n if (restored?.attached && !restored.top.isDisposed && hasOwnTransition(restored.top, 'enter')) {\n restored.top.motif.options.transition.enterTransition(() => { });\n }\n for (const inst of entering) if (inst.isBuilt && !hasOwnTransition(inst, 'enter')) unmarkDirection(inst);\n }\n let enteringTop: ComponentBase | null = null;\n if (stack) {\n if (restored) stack.restoreScroll(restored);\n for (let i = 0; i < controlList.length; i++) {\n if (controlList[i] && controlList[i] !== previousInstances[i]) { enteringTop = controlList[i]; break; }\n }\n if (!enteringTop) enteringTop = controlList.length ? controlList[controlList.length - 1] : null;\n stack.record(nav!, enteringTop);\n }\n\n\n\n if (!enableEnter && path.route) {\n\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route?.onEnter || globalHooks?.onEnter;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEnter');\n }\n }\n this._previousPath = path;\n this._previousInstances = controlList.slice();\n\n if (stack && leave) {\n if (leave.top && navVersion === this._navVersion && (leave.retained || leave.disposeAfter.length)) {\n await stack.transition(nav!.direction, enteringTop, leave.top);\n }\n if (leave.retained) stack.settle(leave.retained);\n for (const inst of leave.disposeAfter) {\n try { if (!inst.isDisposed) await inst.dispose({ deep: true, skipLeaveTransition: true }); } catch (error) { reportError('MJX307', error); }\n }\n }\n }\n\n private async _stackLeave(newChain: RouteItem[], newInstances: ComponentBase[], nav: StackNavigation, stack: NavigationStack, motion: StackMotion): Promise<StackLeave> {\n const result: StackLeave = { top: null, retained: null, disposeAfter: [] };\n const prevChain = this._previousPath?.chain ?? [];\n const prevInstances = this._previousInstances;\n if (!prevInstances.length) return result;\n\n let d = -1;\n for (let i = 0; i < prevInstances.length; i++) {\n const inst = prevInstances[i];\n if (inst && !newInstances.includes(inst)) { d = i; break; }\n }\n if (d < 0) return result;\n\n if (!prevInstances[d].isDisposed) pinServiceOwner(prevInstances[d]);\n\n const outletFor = (i: number): RouterView | null => {\n const container = i - 1 >= 0 ? prevInstances[i - 1] : this.root;\n const outletName = (prevChain[i]?.extend?.targetOutlet) || 'default';\n try { return container && !container.isDisposed ? this.findRouterView(container, outletName) : null; } catch { return null; }\n };\n\n const top = prevInstances[d];\n const topItem = prevChain[d];\n if (stack.isRetaining(nav) && top && !top.isDisposed && !topItem?.keepAlive) {\n const outlet = outletFor(d);\n if (outlet && outlet.current === top) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n cancelAnimationsDeep(top);\n if (motion.pages && hasOwnTransition(top, 'leave')) {\n markDirection(top, motion.direction);\n await playLeave(top);\n unmarkDirection(top);\n }\n for (let i = d; i < prevInstances.length; i++) {\n const item = prevChain[i];\n if (item && !item.keepAlive && this.controlCache.get(item) === prevInstances[i]) this.controlCache.delete(item);\n }\n result.top = top;\n result.retained = stack.retain(nav.from!, this._previousPath?.uri ?? '', prevChain, prevInstances, d, outlet, motion.animate);\n return result;\n }\n\n const deferTop = motion.animate && !!top && !top.isDisposed && !topItem?.keepAlive;\n for (let i = prevInstances.length - 1; i >= d; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || newInstances.includes(inst)) continue;\n if (inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n if (deferTop && i > d && !item?.keepAlive) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const outlet = outletFor(i);\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n if (deferTop && i === d) {\n result.top = inst;\n result.disposeAfter.push(inst);\n } else if (motion.pages) {\n markDirection(inst, motion.direction);\n await inst.dispose();\n } else {\n await inst.dispose({ deep: true, skipLeaveTransition: true });\n }\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n return result;\n }\n\n private async disposeFromDivergencePoint(newChain: RouteItem[], newInstances: ComponentBase[]): Promise<void> {\n if (!this._previousPath || !this._previousInstances.length) {\n return;\n }\n\n const prevChain = this._previousPath.chain;\n const prevInstances = this._previousInstances;\n\n let divergeIndex = 0;\n const minLength = Math.min(prevChain.length, newChain.length);\n\n for (let i = 0; i < minLength; i++) {\n if (prevChain[i] === newChain[i]) {\n divergeIndex = i + 1;\n } else {\n break;\n }\n }\n\n for (let i = prevInstances.length - 1; i >= divergeIndex; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const containerIndex = i - 1;\n const container = containerIndex >= 0 ? prevInstances[containerIndex] : this.root;\n const outletName = (item?.extend?.targetOutlet) || 'default';\n const outlet = this.findRouterView(container, outletName);\n\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (this.controlCache.get(item) === inst) this.controlCache.delete(item);\n await inst.dispose();\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n }\n\n private _construct<T>(scope: ServiceProvider | undefined, route: RouteSnapshot | undefined, create: () => T): T {\n const state = this.application?._routerState;\n return runInConstructionScope(scope, () => state ? state.constructWith(route, create) : create());\n }\n\n private async parseControl(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n var instance = this._construct(scope, route, () => this._resolveFrom(scope, control));\n if (instance) {\n return instance;\n }\n let val = control as any;\n if (val instanceof Promise) {\n val = unwrapModule(await val);\n }\n\n instance = this._construct(scope, route, () => this._resolveFrom(scope, val));\n if (instance) {\n return instance;\n }\n\n if (typeof val === 'function') {\n return this.parseControl(this._construct(scope, route, () => resolveToComponent(val, this.application)), scope, route);\n }\n return resolveToComponent(val);\n }\n\n private _resolveFrom(scope: ServiceProvider | undefined, token: any): any {\n const provider = scope ?? this._rootProvider();\n if (!provider || !provider.getAllServices().getDescriptor(token)) return null;\n return provider.get(token);\n }\n\n private _rootProvider(): ServiceProvider | undefined {\n try { return this.application?.provider ?? Application.main?.provider; } catch { return undefined; }\n }\n\n private async createInstance(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n return await this._instanceCreator(control, scope, route);\n }\n\n private async _instanceCreator(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n let val = await this.parseControl(control, scope, route) as any;\n assertLoadedComponent(val);\n // if (val instanceof Promise) {\n // return result.default ? result.default : result;\n\n // if (typeof val === 'function') {\n // try {\n // return val(this.application);\n // } catch {\n // // fallback: try as constructor\n // return new (val as any)(this.application);\n\n\n // if (val && typeof val.then === 'function') {\n // return await val;\n return val;\n }\n\n private async activator(container: ComponentBase) {\n try {\n //const reflect: any = (Reflect as any)?.getMetadata ? Reflect : null;\n //const paramTypes: any[] | undefined = reflect ? (Reflect as any).getMetadata('design:paramtypes', container) as any[] : undefined;\n // if (Array.isArray(paramTypes) && paramTypes.length) {\n // const args: any[] = [];\n // let anyResolved = false;\n // for (const t of paramTypes) {\n // try {\n // // try resolve token; if not registered, provider.getAsync will throw\n // const inst = await sp.getAsync(t);\n // } catch {\n // if (anyResolved) {\n // // If it looks like a constructor, try `new`, otherwise call as function\n // try { return new (container as any)(...args); } catch { return (container as any)(...args); }\n } catch { /* ignore */ }\n }\n pendingMount: WeakMap<any, Promise<void>> = new WeakMap();\n private pendingListeners = new WeakMap<ComponentBase, Function>(); \n private static readonly OUTLET_WARN_MS = 3000;\n \n private async mountChain(instances: any[], chain: any[], container: ComponentBase, navVersion: number): Promise<void> { \n for (let index = 0; index < instances.length;) { \n if (navVersion !== this._navVersion) return;\n\n let inst = instances[index] as ComponentBase; \n if (inst?.isDisposed) {\n inst = await this.createInstance(chain[index].control, this._rootProvider()?._currentScope());\n instances[index] = inst;\n }\n const outletName = (chain[index] && chain[index].extend && chain[index].extend.targetOutlet) || 'default';\n \n const outlet = this.findRouterView(container, outletName);\n \n if (!outlet || !container.isBuilt) {\n this._waitForOutlet(container, instances.slice(index), chain.slice(index), navVersion, outletName);\n return;\n }\n\n const revealed = this._revealed.delete(inst);\n const alreadyShown = outlet.current === inst && !revealed;\n await outlet.navigate(inst);\n if (this._pendingActivate.delete(inst)) {\n notifyActivated(inst);\n }\n const showHook = (chain[index] as RouteItem | undefined)?.onShow;\n if (showHook && !alreadyShown && outlet.current === inst && navVersion === this._navVersion) {\n callReported(() => showHook(inst), 'MJX306', 'onShow');\n }\n container = inst;\n index++;\n }\n }\n \n private _waitForOutlet(container: ComponentBase, instances: any[], chain: any[], navVersion: number, outletName: string): void {\n \n const oldCleanup = this.pendingListeners.get(container);\n if (oldCleanup) {\n try { oldCleanup(); } catch { }\n this.pendingListeners.delete(container);\n }\n\n let done = false;\n let warnTimer: any = undefined;\n\n const handler = async (_s: any, _e: any) => {\n if (done) return;\n cleanup(); \n if (navVersion !== this._navVersion) return;\n await this.mountChain(instances, chain, container, navVersion);\n };\n\n const cleanup = () => {\n if (done) return;\n done = true;\n this.pendingListeners.delete(container);\n try { (container as any).motif?.off?.(RouterViewBuilt as any, handler); } catch { }\n if (warnTimer !== undefined) {\n try { clearTimeout(warnTimer); } catch { }\n warnTimer = undefined;\n }\n };\n\n container.motif.on(RouterViewBuilt as any, handler);\n this.pendingListeners.set(container, cleanup);\n\n if (errorHandler.isDevelopment()) {\n warnTimer = setTimeout(() => {\n if (!done && navVersion === this._navVersion) {\n reportWarning('MJX301', [outletName, RoutingEngine.OUTLET_WARN_MS]);\n }\n }, RoutingEngine.OUTLET_WARN_MS);\n }\n }\n\n\n\n\n private findRouterView(root: ComponentBase, name: string = 'default'): RouterView | null {\n // 1) Önce mevcut container'ın ALT AĞACINDA ara (yakınlık öncelikli)\n const stack: ComponentBase[] = (root.controls?.items || []).slice();\n while (stack.length) {\n const c = stack.shift()!;\n if (!c || c.isDisposed) continue;\n if ((c as any).__isRouterView) {\n const rv = c as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if (c.controls && c.controls.items && c.controls.items.length) {\n for (const ch of c.controls.items) stack.push(ch);\n }\n }\n\n // 2) Alt ağaçta bulunamadıysa ve isim 'default' ise: üst/yan dallara BAKMA.\n if (!name || name === 'default') {\n return null;\n }\n\n const scopeId = typeof (root as any).scopeId === 'function' ? (root as any).scopeId() : (root as any).scopeId ?? '';\n var x = RouterViewRegistry.find(name, scopeId);\n if (x) return x;\n\n // 3) İsimli outlet için ÜST AĞAÇLARDA arama: her bir üst ata için, o atanının\n let current: any = root;\n let parent: any = current?.parent;\n while (parent) {\n const siblings: ComponentBase[] = (parent.controls?.items || []).filter((it: any) => it !== current);\n const q: ComponentBase[] = siblings.slice();\n while (q.length) {\n const node = q.shift()!;\n if (!node || (node as any).isDisposed) continue;\n if ((node as any).__isRouterView) {\n const rv = node as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if ((node as any).controls && (node as any).controls.items && (node as any).controls.items.length) {\n for (const ch of (node as any).controls.items) q.push(ch);\n }\n }\n current = parent;\n parent = parent.parent;\n }\n\n // 4) Hiçbir yerde bulunmadı\n return null;\n }\n\n}","import { Application, 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 { $, Application, dom, safeCallSilentAsync } from \"..\";\nimport { Component } from \"../\";\nimport { NavigationDirection, NavigationOptions, ResolveResult, RouteInfo, RouteResolveContext, RouterOptions, StackEntryInfo } from \"./\";\nimport type { RouteSnapshot } from \"./routerState\";\nimport { ScrollMemory } from \"./scrollMemory\";\nimport { NavigationStack, StackNavigation } from \"./NavigationStack\";\nimport { RouteCollection, compareRouteRecords } from \"./\";\nimport { RouteItem, RouteRecord, RouterValidateEventArgs } from \"./\";\nimport { RoutingEngine } from \"./\";\nimport { errorHandler } from \"../common/ErrorHandler\";\nimport { motifError, reportError, reportWarning } from \"../common/diagnostics\";\n\nconst pathOf = (uri: string): string => uri.split('#')[0].split('?')[0];\n\ntype HistoryStamp = { index: number; session: string; hasState?: boolean };\n\ntype TraversalInfo = { direction: NavigationDirection; state: any; from: HistoryStamp | null };\n\nconst newHistorySession = (): string => Math.random().toString(36).slice(2, 10) + Date.now().toString(36);\n\nexport class UrlRoutingModule {\n private static readonly MAX_REDIRECTS = 10;\n private _routerOptions: RouterOptions;\n private routingEngine: RoutingEngine;\n routeCollection!: RouteCollection\n private routesMap: Map<any, RouteItem> = new Map();\n private mainApp!: Component;\n private application: Application;\n private _suppressBeforeEachOnce: boolean = false;\n private _suppressMiddlewaresOnce: boolean = false;\n private _scroll: ScrollMemory | null = null;\n\n constructor(options: RouterOptions, application: Application) {\n this._routerOptions = options;\n this.routeCollection = new RouteCollection(options.RouteItems);\n this.routingEngine = new RoutingEngine();\n this.application = application;\n this._installLinkInterceptor();\n\n const scrollMemory = options.scrollMemory;\n if (scrollMemory) {\n this._scroll = new ScrollMemory(scrollMemory === true ? {} : scrollMemory);\n this._scroll.locationAnchor = this._addressMode() === 'history';\n }\n\n if (options.stack && options.mode !== 'shell') {\n this._stack = new NavigationStack(options.stack);\n this.routingEngine.stack = this._stack;\n }\n }\n\n private _stack: NavigationStack | null = null;\n public getHooks(): RouterOptions['hooks'] | undefined {\n return this._routerOptions.hooks;\n }\n\n private _windowNavListener: ((this: Window, ev: Event) => any) | null = null;\n public start(mainApp: Component, shellUri?: string) {\n this.mainApp = mainApp;\n this.routingEngine.register(this.mainApp, this.application, this);\n const path = this._routerOptions.mode === 'shell' ? (shellUri ?? '/') : this._getCurrentUri();\n this._seedHistoryIndex();\n this._suppressMiddlewaresOnce = true;\n this.navigate(path);\n if (this._routerOptions.mode === 'shell') return;\n this._windowNavListener = () => {\n void this._onHistoryTraversal();\n };\n window.addEventListener(\n this._routerOptions.mode === 'hash' || this._routerOptions.mode === 'file' ? 'hashchange' : 'popstate',\n this._windowNavListener\n );\n }\n\n public get shownUri(): string | undefined {\n return this._previousRoute ? this._currentUri : undefined;\n }\n\n private _getCurrentUri(): string {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'hash' || mode === 'file') {\n const h = w?.location?.hash || '';\n return h && h.startsWith('#') ? h.slice(1) || '/' : '/';\n }\n return (w?.location?.pathname || '/') + (w?.location?.search || '');\n } catch { return '/'; }\n }\n\n private static readonly HISTORY_STAMP_KEY = '__motifHistory';\n private _historyStamp: HistoryStamp | null = null;\n\n private _addressMode(): NonNullable<RouterOptions['mode']> {\n const w = window as any;\n return this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n }\n\n private _readHistoryStamp(): HistoryStamp | null {\n try {\n const state = (window as any)?.history?.state;\n const stamp = state && typeof state === 'object' ? state[UrlRoutingModule.HISTORY_STAMP_KEY] : null;\n if (stamp && typeof stamp === 'object' && typeof stamp.index === 'number' && Number.isFinite(stamp.index) && typeof stamp.session === 'string') {\n return { index: stamp.index, session: stamp.session };\n }\n } catch { }\n return null;\n }\n\n private static _isPlainObject(value: any): boolean {\n if (!value || typeof value !== 'object') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n }\n\n private _withHistoryStamp(state: any, stamp: HistoryStamp): any {\n if (state == null) return { [UrlRoutingModule.HISTORY_STAMP_KEY]: stamp };\n if (UrlRoutingModule._isPlainObject(state)) {\n return { ...state, [UrlRoutingModule.HISTORY_STAMP_KEY]: stamp };\n }\n return state;\n }\n\n private _routerState(userState: any, stamp: HistoryStamp): any {\n return userState\n ? this._withHistoryStamp(userState, { ...stamp, hasState: true })\n : this._withHistoryStamp(null, stamp);\n }\n\n private _userStateOf(historyState: any): any {\n if (historyState == null) return undefined;\n if (!UrlRoutingModule._isPlainObject(historyState)) return historyState;\n const key = UrlRoutingModule.HISTORY_STAMP_KEY;\n if (!(key in historyState)) return historyState;\n const stamp = historyState[key];\n if (!stamp || stamp.hasState !== true) return undefined;\n const { [key]: _omit, ...rest } = historyState;\n return rest;\n }\n\n private _currentHistoryUserState(): any {\n if (this._addressMode() === 'shell') return undefined;\n try { return this._userStateOf((window as any)?.history?.state); } catch { return undefined; }\n }\n\n private _nextHistoryStamp(push: boolean): HistoryStamp {\n const base = this._historyStamp;\n if (!base) return { index: 0, session: newHistorySession() };\n return { index: push ? base.index + 1 : base.index, session: base.session };\n }\n\n private _stampCurrentEntry(stamp: HistoryStamp, userState?: any): void {\n try {\n const w = window as any;\n if (!w?.history || typeof w.history.replaceState !== 'function') return;\n const current = w.history.state;\n let next: any;\n if (userState) {\n next = this._routerState(userState, stamp);\n } else {\n const hasState = UrlRoutingModule._isPlainObject(current) && Object.keys(current).length > 0;\n next = this._withHistoryStamp(current, hasState ? { ...stamp, hasState: true } : stamp);\n }\n if (next !== current) w.history.replaceState(next, '');\n } catch { }\n }\n\n private _seedHistoryIndex(): void {\n if (this._addressMode() === 'shell') return;\n const existing = this._readHistoryStamp();\n if (existing) {\n this._historyStamp = existing;\n return;\n }\n const stamp: HistoryStamp = { index: 0, session: newHistorySession() };\n this._stampCurrentEntry(stamp);\n this._historyStamp = stamp;\n }\n\n private _pendingTraversal: TraversalInfo | null = null;\n\n private async _onHistoryTraversal(): Promise<void> {\n const shown = this._historyStamp;\n const arrived = this._readHistoryStamp();\n this._historyStamp = arrived;\n let direction: NavigationDirection = 'traverse';\n if (shown && arrived && shown.session === arrived.session && shown.index !== arrived.index) {\n direction = arrived.index < shown.index ? 'back' : 'forward';\n }\n this._pendingTraversal = { direction, state: this._currentHistoryUserState(), from: shown };\n let result: any;\n try {\n result = await this.navigate(this._getCurrentUri());\n } finally {\n this._pendingTraversal = null;\n }\n const cancelled = !!result && result.cancelled === true;\n try { this._stack?.traversalSettled(cancelled); } catch { }\n if (!cancelled) return;\n const now = this._readHistoryStamp();\n this._historyStamp = now;\n if (!shown || !now || now.session !== shown.session) return;\n const delta = shown.index - now.index;\n if (delta === 0) return;\n try { (window as any).history.go(delta); } catch { }\n }\n\n private _currentUri: string = '___startup___';\n private _previousRoute: any = null;\n\n public get currentUri(): string {\n return this._currentUri;\n }\n\n public async navigate(uri: string, options?: NavigationOptions): Promise<any> {\n const traversal = this._pendingTraversal;\n this._pendingTraversal = null;\n\n return await safeCallSilentAsync(async () => {\n\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('route:navigation-start', { uri }); } catch { }\n const suppressBeforeEachThisCall = this._suppressBeforeEachOnce;\n if (suppressBeforeEachThisCall) {\n this._suppressBeforeEachOnce = false;\n }\n const suppressMiddlewaresThisCall = this._suppressMiddlewaresOnce;\n if (suppressMiddlewaresThisCall) {\n this._suppressMiddlewaresOnce = false;\n }\n const navOptions: NavigationOptions = options || {};\n const force = navOptions.force || false;\n\n if (uri === this._currentUri && !force) {\n return { ok: true, skipped: true, uri };\n }\n\n let gate: { proceed: boolean; uri: string };\n if (suppressMiddlewaresThisCall) {\n gate = { proceed: true, uri };\n } else {\n gate = await this._runMiddlewares(uri);\n }\n\n if (!gate.proceed) {\n return {\n ok: false,\n uri: gate.uri,\n cancelled: true,\n reason: 'middleware'\n };\n }\n uri = gate.uri;\n\n let target = this.resolve(uri);\n\n let redirectedFrom: string | undefined;\n let redirectError: Error | undefined;\n let redirectChain = '';\n if (target.ok && target.route?.redirect) {\n const requested = uri;\n const visited: string[] = [requested];\n while (target.ok && target.route?.redirect) {\n const next = this._resolveRedirect(target, uri);\n if (!next) break;\n if (visited.length > UrlRoutingModule.MAX_REDIRECTS || visited.some(v => pathOf(v) === pathOf(next))) {\n redirectChain = [...visited, next].join(' → ');\n redirectError = motifError('MJX303', redirectChain);\n break;\n }\n visited.push(next);\n uri = next;\n target = this.resolve(uri);\n }\n if (redirectError) {\n reportWarning('MJX303', [redirectChain]);\n uri = requested;\n target = this._buildFallbackResult(uri, 'error', { path: uri, error: redirectError });\n } else if (uri !== requested) {\n redirectedFrom = requested;\n if (uri === this._currentUri && !force) {\n return { ok: true, skipped: true, uri };\n }\n }\n }\n\n const wasInitialNavigation = !this._previousRoute;\n const direction: NavigationDirection = wasInitialNavigation\n ? 'initial'\n : traversal ? traversal.direction : (navOptions.replace ? 'replace' : 'push');\n const entryState = traversal\n ? traversal.state\n : (wasInitialNavigation && navOptions.state === undefined ? this._currentHistoryUserState() : (navOptions.state || undefined));\n\n const toRoute = {\n path: target.uri || uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n options: options,\n redirectedFrom,\n direction,\n state: entryState\n };\n\n const fromRoute = this._previousRoute ? {\n path: this._previousRoute.path,\n params: this._previousRoute.params,\n meta: this._previousRoute.meta,\n options: this._previousRoute.options\n } : null;\n\n if (this._previousRoute && this._previousRoute.routeItem) {\n const currentRouteItem = this._previousRoute.routeItem as RouteItem;\n const leaveHook = currentRouteItem.onLeave || this._routerOptions.hooks?.onLeave;\n if (leaveHook) {\n try {\n const leaveContext = {\n from: {\n path: this._previousRoute.path,\n params: this._previousRoute.params,\n meta: this._previousRoute.meta\n },\n to: toRoute\n };\n const leaveResult = await leaveHook(leaveContext);\n if (leaveResult === false) {\n return { ok: false, cancelled: true, reason: 'onLeave' };\n }\n if (leaveResult && typeof leaveResult === 'object' && (leaveResult as any).cancel === true) {\n const customReason = (leaveResult as any).reason || 'onLeave';\n return { ok: false, cancelled: true, reason: customReason };\n }\n } catch (error) {\n reportError('MJX306', error, 'onLeave');\n }\n }\n }\n\n let guardResult: string | false | true = true;\n if (!suppressBeforeEachThisCall) {\n guardResult = await this.application._runBeforeEachGuards(toRoute, fromRoute);\n }\n\n if (guardResult === false) {\n return { ok: false, cancelled: true, reason: 'guard' };\n }\n\n if (typeof guardResult === 'string') {\n const addressShowsBlocked = this._addressShows(uri, redirectedFrom);\n return await this.navigate(guardResult, addressShowsBlocked ? { ...navOptions, replace: true } : options);\n }\n\n const snapshotOf = (result: ResolveResult): RouteSnapshot => ({\n target: result,\n chain: result.chain.map(r => this.routingEngine.generatePathString(r.path, result.params) || ''),\n direction,\n state: entryState,\n });\n\n if (!target.ok && !redirectError) {\n target = this._buildFallbackResult(uri, 'notFound', { path: uri });\n }\n this._currentUri = uri;\n this._previousRoute = {\n path: target.uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n routeItem: target.route\n };\n\n let appliedPath = target.uri;\n\n this._scroll?.leaving();\n\n const leavingStamp = traversal ? traversal.from : this._historyStamp;\n try {\n const replaceSource = !!redirectedFrom && this._addressShows(redirectedFrom);\n this._applyUrl(appliedPath, replaceSource ? { ...navOptions, replace: true } : navOptions);\n } catch { }\n const stackNav: StackNavigation | undefined = this._stack\n ? { direction, from: leavingStamp, to: this._historyStamp, uri: appliedPath }\n : undefined;\n\n try {\n await this.routingEngine.execute(target, stackNav, snapshotOf(target));\n } catch (error) {\n reportError('MJX304', error);\n target = this._buildFallbackResult(uri, 'error', { path: uri, error });\n try { await this.routingEngine.execute(target, stackNav, snapshotOf(target)); } catch (e2) { reportError('MJX305', e2); }\n }\n if (this._stack) this.application._routerState.touch();\n if (navOptions.scroll) { \n this._handleScrollBehavior(navOptions.scroll);\n } else {\n this._scroll?.arrived(this._uriWithHash(appliedPath, uri));\n }\n this.application.fire?.('motifjs-router-navigated', {\n uri: appliedPath,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n route: target.ok ? target.route : null,\n ok: target.ok,\n initial: wasInitialNavigation,\n redirectedFrom,\n direction,\n state: entryState\n });\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('route:navigation-end', { uri: appliedPath, params: target.params }); } catch { }\n\n return target;\n\n }, 'UrlRoutingModule.navigate');\n\n }\n \n public describeStack(): StackEntryInfo[] | undefined {\n return this._stack ? this._stack.describe() : undefined;\n }\n\n public routeInfos(): RouteInfo[] {\n const out: RouteInfo[] = [];\n const visit = (node: RouteItem, chain: RouteItem[]) => {\n const nextChain = [...chain, node];\n out.push({\n fullPath: node.fullPath || node.path,\n name: node.name ?? null,\n meta: node.meta ?? node.extend ?? {},\n route: node,\n chain: nextChain,\n });\n for (const child of node.childs || []) visit(child, nextChain);\n };\n for (const node of this.routeCollection?.['routes'] || []) visit(node, []);\n return out;\n }\n\n public href(name: string, params?: Record<string, any>): string {\n const routeItem = this.routeCollection['routesMap']?.get(name);\n if (!routeItem) throw motifError('MJX302', name);\n const path = routeItem.fullPath || routeItem.path;\n return this.routingEngine.generatePathString(path, params || {}) || path;\n }\n\n public async evict(route?: RouteItem | string | null): Promise<void> {\n let item: RouteItem | null | undefined = null;\n if (typeof route === 'string') {\n item = this.routeCollection['routesMap']?.get(route);\n if (!item) throw motifError('MJX302', String(route));\n } else {\n item = route;\n }\n await this.routingEngine.evict(item);\n }\n\n private _fallbackRoutes: { notFound?: RouteItem; error?: RouteItem } = {};\n\n private _getFallbackRoute(kind: 'notFound' | 'error'): RouteItem {\n const existing = this._fallbackRoutes[kind];\n if (existing) return existing;\n const custom = this._routerOptions.fallbacks?.[kind];\n const control = custom ?? (kind === 'notFound' ? UrlRoutingModule._builtinNotFound : UrlRoutingModule._builtinError);\n const item: RouteItem = {\n path: '',\n fullPath: null,\n control,\n name: kind === 'notFound' ? 'not-found' : 'error',\n childs: [],\n extend: {},\n meta: {},\n validate: undefined,\n keepAlive: false,\n };\n this._fallbackRoutes[kind] = item;\n return item;\n }\n\n private _buildFallbackResult(uri: string, kind: 'notFound' | 'error', params: Record<string, any>): ResolveResult {\n const fallback = this._getFallbackRoute(kind);\n const prefix = this._findLayoutPrefix(uri);\n const chain = [...(prefix?.chain ?? []), fallback];\n const mergedExtend: Record<string, any> = {};\n const mergedMeta: Record<string, any> = {};\n for (const item of chain) {\n if (item?.extend && typeof item.extend === 'object') Object.assign(mergedExtend, item.extend);\n if (item?.meta && typeof item.meta === 'object') Object.assign(mergedMeta, item.meta);\n }\n return {\n ok: false,\n uri,\n fullPath: null,\n route: fallback,\n chain,\n params: { ...(prefix?.params ?? {}), ...params },\n extend: mergedExtend,\n meta: mergedMeta,\n };\n }\n\n private _findLayoutPrefix(uri: string): { chain: RouteItem[]; params: Record<string, any> } | null {\n const path = uri.split('?')[0].split('#')[0];\n const segs = path.split('/').filter(Boolean);\n let best: { rec: RouteRecord; params: Record<string, any>; depth: number } | null = null;\n for (const rec of this.routeCollection?.records || []) {\n if (!rec.leaf.childs || !rec.leaf.childs.length) continue;\n const depth = rec.fullPath.split('/').filter(Boolean).length;\n if (depth > segs.length) continue;\n const prefix = '/' + segs.slice(0, depth).join('/');\n let matched = false;\n try { matched = rec.scanner.exist(prefix, this._pageSearch()); } catch { matched = false; }\n if (!matched) continue;\n const params = { ...rec.scanner.parameters };\n if (!this.validateChain(prefix, rec, params)) continue;\n if (!best || rec.chain.length > best.rec.chain.length || (rec.chain.length === best.rec.chain.length && depth > best.depth)) {\n best = { rec, params, depth };\n }\n }\n return best ? { chain: best.rec.chain, params: best.params } : null;\n }\n\n private static _builtinNotFound = () => new Component('div', {\n initializeComponent(sender: Component) {\n sender.style({\n padding: '20px', fontFamily: 'Arial, sans-serif', display: 'flex', 'flex-direction': 'column', 'align-items': 'center'\n });\n (sender.element as HTMLElement).appendChild($('h2', {}, ...['404 - Not Found']));\n (sender.element as HTMLElement).appendChild($('p', {}, ...['The requested page was not found.']));\n },\n });\n\n private static _builtinError = () => new Component('div', {\n initializeComponent(sender: Component) {\n sender.style({\n padding: '20px', fontFamily: 'Arial, sans-serif', display: 'flex', 'flex-direction': 'column', 'align-items': 'center'\n });\n (sender.element as HTMLElement).appendChild($('h2', {}, ...['Error']));\n (sender.element as HTMLElement).appendChild($('p', {}, ...['The requested page could not be loaded.']));\n },\n });\n\n public async navigateByName(name: string, params?: Record<string, any>, options?: NavigationOptions): Promise<any> {\n\n return await this.navigate(this.href(name, params), options);\n }\n\n private async _runMiddlewares(initialUri: string): Promise<{ proceed: boolean, uri: string }> {\n let urix = initialUri;\n const ctx: RouteResolveContext = {\n uri: urix,\n rewritePath: (uri: string) => {\n urix = uri;\n (ctx as any).uri = uri;\n },\n context: this.application\n };\n let proceed = false;\n const stack = this._routerOptions.middlewareCollections ? this._routerOptions.middlewareCollections() || [] : [];\n const dispatch = async (i: number): Promise<void> => {\n if (i === stack.length) { proceed = true; return; }\n const fn = stack[i];\n await fn(ctx, async () => { await dispatch(i + 1); });\n };\n if (stack.length === 0) {\n proceed = true;\n } else {\n await dispatch(0);\n }\n return { proceed, uri: urix };\n }\n\n public resolve(uri: string): ResolveResult {\n const candidates: Array<{ rec: RouteRecord; params: Record<string, any> }> = [];\n const pageSearch = this._pageSearch();\n for (const rec of this.routeCollection?.records! || []) {\n if (!rec.scanner.exist(uri, pageSearch)) continue;\n const params = { ...rec.scanner.parameters };\n if (!this.validateChain(uri, rec, params)) continue;\n candidates.push({ rec, params });\n }\n\n if (candidates.length === 0) {\n const catchAll = (this.routeCollection?.records || []).find(r => r.scanner.exist('/*'));\n if (catchAll) {\n const mergedExtend: Record<string, any> = {};\n try {\n for (const item of catchAll.chain) {\n if (item && item.extend && typeof item.extend === 'object') {\n Object.assign(mergedExtend, item.extend);\n }\n }\n } catch { /* ignore */ }\n\n return {\n ok: true,\n uri,\n fullPath: catchAll.fullPath,\n route: catchAll.leaf,\n chain: catchAll.chain,\n params: {},\n extend: mergedExtend || {},\n meta: (catchAll as any).meta || {}\n };\n }\n\n return {\n ok: false,\n uri,\n fullPath: null,\n route: null,\n chain: [],\n params: {},\n extend: {}\n };\n }\n\n let best = candidates[0];\n const groups = new Map<string, Array<{ rec: RouteRecord; params: Record<string, any> }>>();\n for (const c of candidates) {\n // Aynı path grubunda en uzun zincirli olanı seç.\n const key = c.rec.fullPath;\n const arr = groups.get(key) || [];\n arr.push(c); groups.set(key, arr);\n }\n let pickedFromDuplicate = false;\n for (const [key, arr] of groups) {\n if (arr.length > 1) {\n // Legacy sıralamaya dön: sığ zincir önce, sonra uzun fullPath. \n const pool = arr.some(c => !c.rec.aliasOf) ? arr.filter(c => !c.rec.aliasOf) : arr;\n const deepest = pool.reduce((a, b) => a.rec.chain.length >= b.rec.chain.length ? a : b);\n best = deepest;\n pickedFromDuplicate = true;\n break;\n }\n }\n if (!pickedFromDuplicate) {\n // En iyi adayı ResolveResult'a dönüştür.\n // Ortak tercih kuralı (RouteCollection.compareRouteRecords): sığ zincir, statik segment, az parametre, uzun path\n best = candidates.reduce((a, b) => compareRouteRecords(a.rec, b.rec) <= 0 ? a : b, candidates[0]);\n }\n\n const rec = best.rec;\n const params = best.params;\n const mergedExtend: Record<string, any> = {};\n try {\n for (const item of rec.chain) {\n if (item && item.extend && typeof item.extend === 'object') {\n Object.assign(mergedExtend, item.extend);\n }\n }\n } catch { /* ignore */ }\n return {\n ok: true,\n uri,\n fullPath: rec.fullPath,\n aliasOf: rec.aliasOf ?? null,\n route: rec.leaf,\n chain: rec.chain,\n params,\n extend: mergedExtend,\n meta: (() => {\n const mergedMeta: Record<string, any> = {};\n try {\n for (const item of rec.chain) {\n if (item && (item as any).meta && typeof (item as any).meta === 'object') {\n Object.assign(mergedMeta, (item as any).meta);\n }\n }\n } catch { /* ignore */ }\n return mergedMeta;\n })()\n };\n }\n\n // Doğrulama başarısızsa zincir geçersiz.\n private validateChain(uri: string, rec: RouteRecord, params: Record<string, any>): boolean {\n for (const item of rec.chain) {\n if (typeof item.validate === 'function') {\n const e: RouterValidateEventArgs = {\n uri,\n key: item.name ?? rec.fullPath,\n // createInstance: control alanından gerçek component instance'ını üretir.\n routes: this.routesMap,\n params\n };\n // Fonksiyon ise: doğrudan çağırmayı dener (factory gibi).\n if (!item.validate(e)) return false;\n }\n }\n return true;\n }\n\n private _navHandler: ((e: Event) => void) | null = null;\n private _installLinkInterceptor() {\n try {\n if (this._navHandler) return;\n this._navHandler = (ev: Event) => {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n let el = ev.target as HTMLElement | null;\n while (el && el !== document.body) {\n if (el instanceof HTMLAnchorElement) break;\n el = el.parentElement;\n }\n if (!el || !(el instanceof HTMLAnchorElement)) return;\n // opt-in via data-router-link veya rel=\"router\"\n const rel = el.getAttribute('rel') || '';\n const optIn = el.getAttribute(\"x-command\") == 'router' || el.hasAttribute('data-router-link') || rel.toLowerCase() === 'router';\n if (!optIn) return;\n // modifier keys veya target=\"_blank\" => ignore\n const a = el as HTMLAnchorElement;\n if (a.target && a.target !== '_self') return;\n if ((ev as MouseEvent).metaKey || (ev as MouseEvent).ctrlKey || (ev as MouseEvent).shiftKey || (ev as MouseEvent).altKey) return;\n let href = a.getAttribute('href') || '';\n if (!href) {\n href = a.getAttribute('x-to') || '';\n };\n if (!href) return;\n // same-origin kontorlü (history mode için)\n if (mode === 'history') {\n const u = new URL(href, w.location.href);\n if (u.origin !== w.location.origin) return;\n ev.preventDefault();\n const path = u.pathname + u.search + u.hash;\n this.navigate(path);\n return;\n }\n ev.preventDefault();\n const path = href.startsWith('#') ? href.slice(1) : href;\n this.navigate(path);\n };\n document.addEventListener('click', this._navHandler);\n } catch { }\n }\n\n private _applyUrl(uri: string, options: NavigationOptions = {}) {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'shell') return; // shell mode'da URL değişikliğine izin verme\n\n if (mode === 'hash' || mode === 'file') {\n const target = uri.startsWith('#') ? uri : ('#' + uri);\n if (w?.location?.hash !== target) {\n if (options.replace && w?.history && typeof w.history.replaceState === 'function') {\n const stamp = this._nextHistoryStamp(false);\n w.history.replaceState(this._routerState(options.state, stamp), '', target);\n this._historyStamp = stamp;\n } else {\n w.location.hash = target;\n const stamp = this._nextHistoryStamp(true);\n this._stampCurrentEntry(stamp, options.state);\n this._historyStamp = stamp;\n }\n }\n return;\n }\n\n if (w?.history && typeof w.history.pushState === 'function') {\n const current = (w.location.pathname || '/') + (w.location.search || '');\n if (current !== uri) {\n if (options.replace) {\n const stamp = this._nextHistoryStamp(false);\n w.history.replaceState(this._routerState(options.state, stamp), '', uri);\n this._historyStamp = stamp;\n } else {\n const stamp = this._nextHistoryStamp(true);\n w.history.pushState(this._routerState(options.state, stamp), '', uri);\n this._historyStamp = stamp;\n }\n }\n }\n } catch { }\n }\n\n private _resolveRedirect(target: ResolveResult, uri: string): string | null {\n const redirect = target.route?.redirect;\n if (!redirect) return null;\n if (typeof redirect === 'function') {\n const result = redirect({\n path: target.uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend\n });\n return typeof result === 'string' && result.length > 0 ? result : null;\n }\n const path = this.routingEngine.generatePathString(redirect, target.params || {});\n const hashIndex = uri.indexOf('#');\n const hash = hashIndex >= 0 ? uri.slice(hashIndex) : '';\n const beforeHash = hashIndex >= 0 ? uri.slice(0, hashIndex) : uri;\n const queryIndex = beforeHash.indexOf('?');\n const query = queryIndex >= 0 ? beforeHash.slice(queryIndex) : '';\n const ownHashIndex = path.indexOf('#');\n const ownHash = ownHashIndex >= 0 ? path.slice(ownHashIndex) : '';\n let result = ownHashIndex >= 0 ? path.slice(0, ownHashIndex) : path;\n if (query && !result.includes('?')) result += query;\n return result + (ownHash || hash);\n }\n\n private _pageSearch(): string | undefined {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'history' || mode === 'shell') return undefined;\n return w?.location?.search || undefined;\n } catch { return undefined; }\n }\n\n private _addressShows(...uris: Array<string | undefined>): boolean {\n const current = this._getCurrentUri().split('#')[0];\n return uris.some(u => !!u && u.split('#')[0] === current);\n }\n\n private _uriWithHash(appliedPath: string, requestedUri: string): string {\n const index = requestedUri.indexOf('#');\n if (index < 0 || appliedPath.indexOf('#') >= 0) return appliedPath;\n return appliedPath + requestedUri.slice(index);\n }\n\n private _handleScrollBehavior(scrollOption?: NavigationOptions['scroll']) {\n if (!scrollOption) return;\n\n try {\n if (scrollOption === 'top') {\n window.scrollTo({ top: 0, behavior: 'auto' });\n } else if (scrollOption === 'smooth') {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n } else if (scrollOption === 'instant') {\n window.scrollTo({ top: 0, behavior: 'instant' });\n } else if (typeof scrollOption === 'object') {\n window.scrollTo({\n top: scrollOption.top || 0,\n left: scrollOption.left || 0,\n behavior: scrollOption.behavior || 'auto'\n });\n }\n } catch { }\n }\n\n public dispose(): Promise<void> {\n try { this._scroll?.dispose(); } catch { }\n this._scroll = null;\n this._historyStamp = null;\n let done: Promise<void> = Promise.resolve();\n try {\n // keepAlive önbelleğindeki örnekleri bırak\n try { done = this.routingEngine.dispose(); } catch { }\n if (this._navHandler) {\n try { document.removeEventListener('click', this._navHandler); } catch { }\n this._navHandler = null;\n }\n if (this._windowNavListener) {\n const evt = this._routerOptions.mode === 'hash' || this._routerOptions.mode === 'file' ? 'hashchange' : 'popstate';\n try { window.removeEventListener(evt, this._windowNavListener); } catch { }\n this._windowNavListener = null;\n }\n } catch { }\n return done;\n }\n\n}","import { Signal } from \"../store/Signal\";\nimport { motifError } from \"../common/diagnostics\";\nimport type { UrlRoutingModule } from \"./UrlRoutingModule\";\nimport type { NavigationDirection, NavigationOptions, ResolveResult, Router } from \"./common\";\nimport type { RouteItem } from \"./RouteItem\";\n\nexport type RouteSnapshot = {\n target: ResolveResult;\n chain: string[];\n direction: NavigationDirection | undefined;\n state: any;\n};\n\nexport class RouterState {\n readonly version = new Signal(0);\n private _current: RouteSnapshot | null = null;\n private _constructing: RouteSnapshot | null = null;\n\n read(): RouteSnapshot | null {\n this.version.value;\n return this._constructing ?? this._current;\n }\n\n commit(snapshot: RouteSnapshot): void {\n this._current = snapshot;\n this.touch();\n }\n\n reset(): void {\n this._current = null;\n this.touch();\n }\n\n touch(): void {\n this.version.value = this.version.peek() + 1;\n }\n\n constructWith<T>(snapshot: RouteSnapshot | undefined, create: () => T): T {\n if (!snapshot) return create();\n const previous = this._constructing;\n this._constructing = snapshot;\n try {\n return create();\n } finally {\n this._constructing = previous;\n }\n }\n}\n\nexport function createRouter(state: RouterState, module: () => UrlRoutingModule | undefined): Router {\n const required = (): UrlRoutingModule => {\n const current = module();\n if (!current) throw motifError('MJX309');\n return current;\n };\n const target = () => state.read()?.target;\n return {\n get params() { return target()?.params ?? {}; },\n get route() { return target()?.route ?? null; },\n get ok() { return target()?.ok ?? false; },\n get uri() { return target()?.uri ?? ''; },\n get fullPath() { return target()?.fullPath ?? null; },\n get aliasOf() { return target()?.aliasOf ?? null; },\n get extend() { return target()?.extend ?? {}; },\n get meta() {\n const current = target();\n return current ? ((current as any).meta ?? current.extend) : {};\n },\n get chain() { return state.read()?.chain ?? []; },\n get direction() { return state.read()?.direction; },\n get state() { return state.read()?.state; },\n get stack() {\n state.version.value;\n return module()?.describeStack();\n },\n get routes() {\n state.version.value;\n return module()?.routeInfos() ?? [];\n },\n navigate: async (uri: string, options?: NavigationOptions) => {\n await required().navigate(uri, options);\n },\n navigateByName: async (name: string, params?: Record<string, any>, options?: NavigationOptions) => {\n await required().navigateByName(name, params, options);\n },\n evict: async (route?: RouteItem | string | null) => {\n await required().evict(route);\n },\n resolve: (uri: string) => required().resolve(uri),\n href: (name: string, params?: Record<string, any>) => required().href(name, params),\n };\n}\n","import { ServiceCollection } from \"./dependencyInjection/ServiceCollection\";\nimport { ServiceProvider } from \"./dependencyInjection/ServiceProvider\";\nimport { Component } from \"./component/Component\";\nimport { RouteItem } from \"./routing/RouteItem\";\nimport { ensureDevtoolsFlagInitialized, setRoutes, setDevtoolsEnabled, isEnabled as isDevtoolsEnabled } from \"./devtools/devbus\";\nimport { lintRoutes } from \"./devtools/routeLinter\";\nimport { initOverlayIfEnabled, initDevtoolsButton } from \"./devtools/overlay\";\nimport { RouterView } from \"./routing/RouterView\";\nimport { UrlRoutingModule } from \"./routing/UrlRoutingModule\";\nimport { RouterState, createRouter } from \"./routing/routerState\";\nimport { NavigationDirection, NavigationOptions, Router, RouteResolveContext, RouterNavigatedEventArgs, RouterEvents, RouterOptions, ScrollMemoryOptions, StackOptions } from \"./routing\";\nimport { errorHandler, safeCall, safeCallSilent, setErrorConsoleLogging } from \"./common/ErrorHandler\";\nimport { engine, configureReactivityLeakMonitor } from \"./store\";\nimport { MotifError, callReported, formatMotifMessage, motifError, reportError } from \"./common/diagnostics\";\nimport { flushCompilerContractWarnings } from \"./common/compilerContract\";\nimport { isTransitionMode, transitionSettings, TransitionMode } from \"./common/transitionRegistry\";\nimport { ComponentBase } from \"./component\";\nexport interface IStartup {\n configuration?: (services: any) => void;\n\n}\n\nlet _globalApplication: Application | null = null;\n\nexport type ApplicationState = 'initializing' | 'running' | 'disposing' | 'disposed';\nlet _globalBuilder: ApplicationBuilder | null = null;\nlet startedApplicationBuilder = false;\nconst _applicationStack = new Map<string | symbol, { builder: ApplicationBuilder, app: Application }>();\n\nexport class ApplicationBuilder {\n\n public services: ServiceCollection = new ServiceCollection();\n\n constructor() {\n if ((_globalApplication && _globalApplication.state !== 'disposing') || startedApplicationBuilder) {\n throw new MotifError('MJX405', formatMotifMessage('MJX405'), { cause: _globalApplication });\n }\n startedApplicationBuilder = true;\n }\n\n build() {\n // if (_globalApplication) {\n // throw new Error(\"ApplicationBuilder: Only one instance of ApplicationBuilder is allowed.\");\n this.services.autoRegisterInjectables();\n const provider = this.services.buildServiceProvider();\n this.services.addSingleton(ServiceProvider, provider);\n var app = new Application(provider);\n this.services.addSingleton(Application, app);\n _globalApplication = app;\n return app;\n }\n\n rebuild() {\n if (_globalApplication) {\n _globalApplication.provider.dispose();\n _globalApplication.provider = this.services.buildServiceProvider();\n return _globalApplication;\n }\n return this.build();\n }\n}\n\ninterface ApplicationEvents {\n 'router-changed': 'motifjs-router-navigated';\n}\nexport type AppLifecycleState = 'visible' | 'hidden' | 'frozen' | 'resumed' | 'restored' | 'online' | 'offline';\n\nexport type AppLifecycleEventArgs = {\n state: AppLifecycleState;\n visible: boolean;\n online: boolean;\n};\n\nexport type NavigationGuardContext = {\n to: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions, redirectedFrom?: string, direction?: NavigationDirection, state?: any };\n from: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions } | null;\n};\n\nexport type NavigationGuard = (\n context: NavigationGuardContext,\n next: (redirect?: string | false) => void\n) => void | Promise<void>;\n\nexport type ContainerGroups = {\n [key: string]: {\n registry: () => any;\n initialize: () => any\n };\n}\n\nexport class Application {\n public static get main(): Application {\n return _globalApplication!;\n }\n\n constructor(public provider: ServiceProvider) { }\n public static _disposingCount = 0;\n private _state: ApplicationState = 'initializing';\n private _disposing?: Promise<void>;\n public get state(): ApplicationState {\n return this._state;\n }\n private _middlewares: Array<(ctx: RouteResolveContext, next: () => Promise<void>) => any> = [];\n private _beforeEachGuards: NavigationGuard[] = [];\n public readonly _routerState = new RouterState();\n public readonly router: Router = createRouter(this._routerState, () => this.urlRoutingModule);\n private events: Map<any, Set<any>> = new Map();\n\n public static CreateBuilder(): ApplicationBuilder {\n return new ApplicationBuilder();\n }\n private appShell!: Component;\n public getAppShell(): Component {\n return this.appShell;\n }\n public run(host: HTMLElement | string | Node, appRoot?: any): void {\n safeCallSilent(() => {\n engine.startGc();\n }, 'Application.run.engine.startGc');\n let target: HTMLElement | null;\n if (typeof host === 'string') {\n target = document.querySelector(host) as HTMLElement | null;\n if (!target) throw motifError('MJX406', host);\n } else {\n target = host as HTMLElement;\n }\n let rootInstance: any = appRoot;\n\n\n this._state = 'running';\n const AppShell = new Component(target);\n this.appShell = AppShell;\n safeCallSilent(() => {\n (AppShell as any)._keepElementOnDispose = true;\n (AppShell as any).application = this;\n (AppShell as any).provider = this.provider;\n\n }, 'Application.run.setupAppShell');\n\n if (!rootInstance) {\n rootInstance = AppShell;\n rootInstance.controls.add(new RouterView({ name: 'default' }));\n } else {\n rootInstance.parent = AppShell;\n AppShell.controls.add(rootInstance);\n }\n AppShell.build();\n this._routerRoot = rootInstance;\n if (this.urlRoutingModule) {\n this.urlRoutingModule.start(rootInstance);\n this._startedRouter = this.urlRoutingModule;\n } else {\n } \n try {\n } catch { }\n }\n\n public insert(component: Component): void {\n this.appShell.controls.add(component);\n }\n public remove(component: Component): void {\n this.appShell.controls.remove(component);\n }\n\n public attach(component: Component): void {\n this.appShell.controls.add(component);\n }\n\n public detach(component: Component): void {\n this.appShell.controls.detach(component);\n }\n\n public appendToMainHost(component: Node): void {\n this.appShell.element?.appendChild(component);\n }\n\n public dispose(): Promise<void> {\n if (this._disposing) return this._disposing;\n this._state = 'disposing';\n Application._disposingCount++;\n startedApplicationBuilder = false;\n let routerDone: Promise<void> | undefined;\n safeCallSilent(() => { this._removeLifecycleListeners(); }, 'Application.dispose.lifecycle');\n safeCallSilent(() => { routerDone = (this as any).urlRoutingModule?.dispose?.(); }, 'Application.dispose.router');\n safeCallSilent(() => { engine.stopGc(); }, 'Application.dispose.gcStop');\n safeCallSilent(() => {\n try {\n const w = window as any;\n if (w && w.history && typeof w.history.replaceState === 'function') {\n // Normalize to root path; for hash mode also clear the hash\n w.history.replaceState({}, '', '/');\n }\n } catch { /* ignore */ }\n }, 'Application.dispose.resetUrl');\n transitionSettings.mode = 'concurrent';\n const shell = this.appShell;\n return this._disposing = (async () => {\n try { await routerDone; } catch (error) { reportError('MJX307', error); }\n if (shell && !shell.isDisposed) {\n try { await shell.dispose(); } catch (error) { reportError('MJX307', error); }\n }\n try { await this.provider.dispose(); } catch { }\n if (_globalApplication === this) _globalApplication = null;\n this._state = 'disposed';\n Application._disposingCount--;\n })();\n }\n\n public useTransitions(options: { mode?: TransitionMode }): Application {\n if (isTransitionMode(options?.mode)) transitionSettings.mode = options.mode;\n return this;\n }\n\n public use(callback: (ctx: RouteResolveContext, next: () => Promise<void>) => any): Application {\n this._middlewares.push(callback);\n return this;\n }\n\n public useGuard(guard: NavigationGuard): Application {\n this._beforeEachGuards.push(guard);\n return this;\n }\n\n public async _runBeforeEachGuards(to: any, from: any): Promise<string | false | true> {\n const context: NavigationGuardContext = { to, from };\n\n for (const guard of this._beforeEachGuards) {\n let redirectPath: string | false | undefined;\n let guardResolved = false;\n\n const next = (redirect?: string | false) => {\n guardResolved = true;\n redirectPath = redirect;\n };\n\n try {\n await guard(context, next);\n } catch (error) {\n reportError('MJX306', error, 'guard');\n return false;\n }\n\n if (!guardResolved) {\n return false;\n }\n\n if (redirectPath === false) {\n return false;\n }\n\n if (typeof redirectPath === 'string') {\n return redirectPath;\n }\n }\n\n return true; \n }\n\n private urlRoutingModule!: UrlRoutingModule;\n private _routerConfig: RouterOptions | null = null;\n private _routerRoot: Component | null = null;\n private _startedRouter: UrlRoutingModule | null = null;\n public useRouter(options: RouteItem[] | {\n routes: RouteItem[],\n mode?: 'history' | 'hash' | 'file' | 'shell',\n fallbacks?: { notFound?: any, error?: any },\n hooks?: RouterEvents,\n scrollMemory?: boolean | ScrollMemoryOptions,\n stack?: boolean | StackOptions\n }): Application {\n let routes: RouteItem[];\n let mode: 'history' | 'hash' | 'file' | 'shell' | undefined;\n let fallbacks: { notFound?: any, error?: any } | undefined;\n let hooks: RouterEvents | undefined;\n let scrollMemory: boolean | ScrollMemoryOptions | undefined;\n let stack: boolean | StackOptions | undefined;\n if (Array.isArray(options)) {\n routes = options;\n } else {\n routes = options.routes;\n mode = options.mode;\n fallbacks = options.fallbacks;\n hooks = options.hooks;\n scrollMemory = options.scrollMemory;\n stack = options.stack;\n }\n\n if (this.urlRoutingModule) {\n this.urlRoutingModule.dispose();\n }\n\n this._routerConfig = {\n mode,\n fallbacks,\n middlewareCollections: () => this._middlewares,\n RouteItems: routes,\n hooks,\n scrollMemory,\n stack,\n };\n this.urlRoutingModule = new UrlRoutingModule(this._routerConfig, this);\n\n this._routerState.reset();\n\n\n\n safeCallSilent(() => {\n ensureDevtoolsFlagInitialized();\n initOverlayIfEnabled();\n setRoutes(routes as any);\n if (this._isDevelopment || (globalThis as any).__MOTIF_DEV__ === true || isDevtoolsEnabled()) {\n lintRoutes(routes as any);\n }\n }, 'Application.useRouter.devtools');\n\n return this;\n }\n\n public restartRouter() {\n const root = this._routerRoot;\n if (!root || !this._routerConfig) return this;\n const previous = this._startedRouter;\n const shownUri = previous?.shownUri;\n let fresh = this.urlRoutingModule;\n if (!fresh || fresh === previous) {\n previous?.dispose();\n fresh = new UrlRoutingModule(this._routerConfig, this);\n this.urlRoutingModule = fresh;\n }\n this._routerState.reset();\n this._startedRouter = fresh;\n fresh.start(root, shownUri);\n return this;\n }\n\n public async navigate(uri: string, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigate(uri, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public async navigateByName(name: string, params?: Record<string, any>, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigateByName(name, params, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public on<T>(event: ApplicationEvents[keyof ApplicationEvents & string] | any, handler: (args?: T) => void): any {\n var e = this.events.get(event);\n if (!e) {\n this.events.set(event, new Set());\n e = this.events.get(event);\n }\n if (e) {\n e.add(handler);\n }\n return () => this.off(event, handler);\n }\n public off<T>(event: any, handler: (args?: T) => void): void {\n var e = this.events.get(event);\n if (e) {\n e.delete(handler);\n }\n }\n\n public fire<T>(event: any, args?: T): void {\n var e = this.events.get(event);\n if (e) {\n e.forEach(handler => {\n callReported(() => handler(args), 'MJX123', String(event));\n });\n }\n }\n\n public onRouterChanged(handler: (args?: RouterNavigatedEventArgs) => unknown): any {\n return this.on<RouterNavigatedEventArgs>('motifjs-router-navigated', handler);\n }\n\n public get isVisible(): boolean {\n try { return typeof document === 'undefined' || document.visibilityState !== 'hidden'; } catch { return true; }\n }\n\n public get isOnline(): boolean {\n try { return typeof navigator === 'undefined' || navigator.onLine !== false; } catch { return true; }\n }\n\n private _lifecycleOff: Array<() => void> | null = null;\n\n public onLifecycle(handler: (args?: AppLifecycleEventArgs) => unknown): () => void {\n this._installLifecycleListeners();\n return this.on<AppLifecycleEventArgs>('motifjs-app-lifecycle', handler);\n }\n\n private _emitLifecycle(state: AppLifecycleState): void {\n this.fire<AppLifecycleEventArgs>('motifjs-app-lifecycle', { state, visible: this.isVisible, online: this.isOnline });\n }\n\n private _installLifecycleListeners(): void {\n if (this._lifecycleOff) return;\n const offs: Array<() => void> = [];\n const listen = (target: EventTarget | undefined, type: string, fn: (e: any) => void) => {\n if (!target) return;\n try {\n target.addEventListener(type, fn);\n offs.push(() => { try { target.removeEventListener(type, fn); } catch { } });\n } catch { }\n };\n const doc = typeof document !== 'undefined' ? document : undefined;\n const win = typeof window !== 'undefined' ? window : undefined;\n listen(doc, 'visibilitychange', () => this._emitLifecycle(this.isVisible ? 'visible' : 'hidden'));\n listen(doc, 'freeze', () => this._emitLifecycle('frozen'));\n listen(doc, 'resume', () => this._emitLifecycle('resumed'));\n listen(win, 'pageshow', (e: PageTransitionEvent) => { if (e && e.persisted) this._emitLifecycle('restored'); });\n listen(win, 'online', () => this._emitLifecycle('online'));\n listen(win, 'offline', () => this._emitLifecycle('offline'));\n this._lifecycleOff = offs;\n }\n\n private _removeLifecycleListeners(): void {\n const offs = this._lifecycleOff;\n this._lifecycleOff = null;\n if (offs) for (const off of offs) off();\n }\n\n\n private _isDevelopment: boolean = false;\n private _enableErrorLogging: boolean = true;\n public get isDevelopmentModeEnabled(): boolean {\n return this._isDevelopment;\n }\n\n /** Enable reactive leak monitoring (dev önerilir) */\n public useReactiveMonitor(opts: { enabled?: boolean; threshold?: number; name?: string } = {}): this {\n safeCallSilent(() => { configureReactivityLeakMonitor(opts); }, 'Application.useReactiveMonitor.core');\n return this;\n }\n\n public useDevelopment(isDev: boolean = true): this {\n this._isDevelopment = isDev;\n errorHandler.setDevelopmentMode(isDev);\n safeCallSilent(() => { (globalThis as any).__MOTIF_DEV__ = isDev; }, 'Application.useDevelopment.flag');\n safeCallSilent(() => { setDevtoolsEnabled(isDev); }, 'Application.useDevelopment.devtools');\n if (isDev) flushCompilerContractWarnings();\n return this;\n }\n\n public useLogging(enabled: boolean = true): this {\n this._enableErrorLogging = enabled;\n setErrorConsoleLogging(enabled);\n return this;\n }\n\n\n\n\n}\n\n\nexport class ApplicationService {\n public static get current(): Application {\n return Application.main;\n }\n public static initialized: boolean = false;\n public static addToMain(...components: ComponentBase[]) {\n this.current && this.current.getAppShell().controls.add(...components);\n }\n}\n\nexport function useNavigation(): Router {\n return Application.main.router;\n}\n\nexport function useApplication() {\n return {\n application: Application.main,\n services: Application.main.provider,\n router: Application.main.router,\n attach(...components: ComponentBase[]) {\n Application.main && Application.main.getAppShell().controls.add(...components);\n }\n }\n}","import { Application, ServiceLifetime } from \"..\";\nimport { autoRegistry } from \"./autoRegistry\";\nimport { reportWarning } from \"../common/diagnostics\";\n\n\n\nexport function Injectable(options?: {\n lifetime?: ServiceLifetime,\n deps?: any[]\n}): (target: any, context?: ClassDecoratorContext) => void {\n\n return (target: any) => {\n autoRegistry.set(target, {\n lifetime: options?.lifetime ?? \"transient\",\n deps: options?.deps\n });\n };\n}\n\n\n\nexport function FromService<T>(token: abstract new (...args: any[]) => T): T;\nexport function FromService<T = any>(token: string | symbol | object): T;\nexport function FromService(token: any): any {\n try {\n return Application.main.provider.get(token);\n } catch (error) {\n reportWarning('MJX414', [describeServiceToken(token), String((error as any)?.message ?? error)], { token, error });\n return null as any;\n }\n}\n\nfunction describeServiceToken(token: any): string {\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n}\n","import { MotifError, formatMotifMessage, motifError } from \"./diagnostics\";\r\n\r\ntype AsyncOrSync<T> = Promise<T> | T;\r\n\r\nexport interface ResilienceContext {\r\n [key: string]: any;\r\n}\r\n\r\ntype Context = ResilienceContext;\r\n\r\nexport type ResilienceAction<T> = (ctx?: ResilienceContext) => AsyncOrSync<T>;\r\n\r\ntype Action<T> = ResilienceAction<T>;\r\n\r\ntype ShouldHandlePredicate = (err: any) => boolean;\r\n\r\nexport interface ResiliencePolicy {\r\n execute<T>(action: ResilienceAction<T>, ctx?: ResilienceContext): Promise<T>;\r\n}\r\n\r\nfunction isTimeoutError(err: any) {\r\n return err && err.name === 'TimeoutError';\r\n}\r\n\r\nclass TimeoutError extends MotifError {\r\n constructor() {\r\n super('MJX605', formatMotifMessage('MJX605'));\r\n this.name = 'TimeoutError';\r\n }\r\n}\r\n\r\nfunction delay(ms: number) {\r\n return new Promise<void>(res => setTimeout(res, ms));\r\n}\r\n\r\nfunction addJitter(base: number, jitterFactor = 0.1) {\r\n const jitter = (Math.random() * 2 - 1) * jitterFactor * base;\r\n return Math.max(0, Math.floor(base + jitter));\r\n}\r\n\r\n\r\nabstract class Policy implements ResiliencePolicy {\r\n abstract execute<T>(action: Action<T>, ctx?: Context): Promise<T>;\r\n}\r\n\r\n\r\nexport interface RetryOptions {\r\n retries?: number;\r\n backoff?: 'fixed' | 'exponential' | 'none';\r\n delay?: number;\r\n jitter?: number;\r\n shouldHandle?: ShouldHandlePredicate;\r\n onRetry?: (attempt: number, err: any, delayMs: number, ctx?: Context) => void | Promise<void>;\r\n}\r\n\r\nclass RetryPolicy extends Policy {\r\n private retries: number;\r\n private backoff: 'fixed' | 'exponential' | 'none';\r\n private delayMs: number;\r\n private jitter: number;\r\n private shouldHandle: ShouldHandlePredicate;\r\n private onRetry?: (attempt: number, err: any, delayMs: number, ctx?: Context) => void | Promise<void>;\r\n\r\n constructor(options: RetryOptions = {}) {\r\n super();\r\n this.retries = options.retries ?? 3;\r\n this.backoff = options.backoff ?? 'exponential';\r\n this.delayMs = options.delay ?? 100;\r\n this.jitter = Math.min(Math.max(options.jitter ?? 0.1, 0), 1);\r\n this.shouldHandle = options.shouldHandle ?? ((err) => !!err && !isTimeoutError(err));\r\n this.onRetry = options.onRetry;\r\n }\r\n\r\n private calcDelay(attempt: number) {\r\n if (this.backoff === 'none') return 0;\r\n if (this.backoff === 'fixed') return addJitter(this.delayMs, this.jitter);\r\n const base = this.delayMs * Math.pow(2, attempt - 1);\r\n return addJitter(base, this.jitter);\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n let lastErr: any;\r\n\r\n for (let attempt = 1; attempt <= this.retries + 1; attempt++) {\r\n try {\r\n return await Promise.resolve(action(ctx));\r\n } catch (err) {\r\n lastErr = err;\r\n if (!this.shouldHandle(err) || attempt > this.retries) break;\r\n const wait = this.calcDelay(attempt);\r\n if (this.onRetry) await this.onRetry(attempt, err, wait, ctx);\r\n if (wait > 0) await delay(wait);\r\n }\r\n }\r\n\r\n throw lastErr;\r\n }\r\n}\r\n\r\n\r\nexport interface TimeoutOptions {\r\n timeoutMs: number;\r\n}\r\n\r\nclass TimeoutPolicy extends Policy {\r\n private timeoutMs: number;\r\n\r\n constructor(opts: TimeoutOptions) {\r\n super();\r\n this.timeoutMs = opts.timeoutMs;\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n let timer: any;\r\n const p = Promise.resolve(action(ctx));\r\n const t = new Promise<never>((_, rej) => {\r\n timer = setTimeout(() => rej(new TimeoutError()), this.timeoutMs);\r\n });\r\n\r\n try {\r\n return await Promise.race([p, t]);\r\n } finally {\r\n clearTimeout(timer);\r\n }\r\n }\r\n}\r\n\r\n\r\nexport type CircuitState = 'CLOSED' | 'OPEN' | 'HALF_OPEN';\r\n\r\nexport interface CircuitBreakerOptions {\r\n failureThreshold?: number;\r\n successThreshold?: number;\r\n durationOfBreakMs?: number;\r\n shouldHandle?: ShouldHandlePredicate;\r\n onStateChange?: (oldState: CircuitState, newState: CircuitState) => void | Promise<void>;\r\n}\r\n\r\nclass CircuitBreakerPolicy extends Policy {\r\n private failureThreshold: number;\r\n private successThreshold: number;\r\n private durationOfBreakMs: number;\r\n private shouldHandle: ShouldHandlePredicate;\r\n private onStateChange?: (oldState: CircuitState, newState: CircuitState) => void | Promise<void>;\r\n\r\n private state: CircuitState = 'CLOSED';\r\n private failureCount = 0;\r\n private successCount = 0;\r\n private nextAttemptTime = 0; \r\n\r\n constructor(opts: CircuitBreakerOptions = {}) {\r\n super();\r\n this.failureThreshold = opts.failureThreshold ?? 5;\r\n this.successThreshold = opts.successThreshold ?? 2;\r\n this.durationOfBreakMs = opts.durationOfBreakMs ?? 60000; \r\n this.shouldHandle = opts.shouldHandle ?? ((err) => !!err && !isTimeoutError(err));\r\n this.onStateChange = opts.onStateChange;\r\n }\r\n\r\n private async changeState(newState: CircuitState) {\r\n const old = this.state;\r\n this.state = newState;\r\n this.failureCount = 0;\r\n this.successCount = 0;\r\n if (newState === 'OPEN') this.nextAttemptTime = Date.now() + this.durationOfBreakMs;\r\n if (this.onStateChange) await this.onStateChange(old, newState);\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n if (this.state === 'OPEN') {\r\n if (Date.now() >= this.nextAttemptTime) {\r\n await this.changeState('HALF_OPEN');\r\n } else {\r\n throw motifError('MJX602');\r\n }\r\n }\r\n\r\n try {\r\n const result = await Promise.resolve(action(ctx));\r\n if (this.state === 'HALF_OPEN') {\r\n this.successCount++;\r\n if (this.successCount >= this.successThreshold) await this.changeState('CLOSED');\r\n } else if (this.state === 'CLOSED') {\r\n this.failureCount = 0;\r\n }\r\n return result;\r\n } catch (err) {\r\n if (this.shouldHandle(err)) {\r\n this.failureCount++;\r\n if (this.state === 'HALF_OPEN' || (this.state === 'CLOSED' && this.failureCount >= this.failureThreshold)) {\r\n await this.changeState('OPEN');\r\n }\r\n }\r\n throw err;\r\n }\r\n }\r\n\r\n getState() {\r\n return this.state;\r\n }\r\n}\r\n\r\n\r\nexport interface BulkheadOptions {\r\n maxConcurrent?: number;\r\n maxQueue?: number;\r\n}\r\n\r\nclass BulkheadPolicy extends Policy {\r\n private maxConcurrent: number;\r\n private maxQueue: number;\r\n private active = 0;\r\n private queue: Array<() => void> = [];\r\n\r\n constructor(opts: BulkheadOptions = {}) {\r\n super();\r\n this.maxConcurrent = opts.maxConcurrent ?? 10;\r\n this.maxQueue = opts.maxQueue ?? 50;\r\n }\r\n\r\n private dequeue() {\r\n if (this.queue.length === 0) return;\r\n if (this.active >= this.maxConcurrent) return;\r\n const resolver = this.queue.shift()!;\r\n resolver();\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n if (this.active >= this.maxConcurrent) {\r\n if (this.queue.length >= this.maxQueue) {\r\n throw motifError('MJX603');\r\n }\r\n await new Promise<void>((res) => {\r\n this.queue.push(res);\r\n });\r\n }\r\n\r\n this.active++;\r\n try {\r\n const result = await Promise.resolve(action(ctx));\r\n return result;\r\n } finally {\r\n this.active--;\r\n this.dequeue();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport interface RateLimiterOptions {\r\n tokensPerInterval?: number;\r\n intervalMs?: number;\r\n capacity?: number;\r\n}\r\n\r\nclass RateLimiterPolicy extends Policy {\r\n private tokensPerInterval: number;\r\n private intervalMs: number;\r\n private capacity: number;\r\n private tokens: number;\r\n private lastRefill: number;\r\n\r\n constructor(opts: RateLimiterOptions = {}) {\r\n super();\r\n this.tokensPerInterval = opts.tokensPerInterval ?? 1;\r\n this.intervalMs = opts.intervalMs ?? 1000;\r\n this.capacity = opts.capacity ?? this.tokensPerInterval;\r\n this.tokens = this.capacity;\r\n this.lastRefill = Date.now();\r\n }\r\n\r\n private refill() {\r\n const now = Date.now();\r\n const elapsed = now - this.lastRefill;\r\n if (elapsed <= 0) return;\r\n const tokensToAdd = Math.floor(elapsed / this.intervalMs) * this.tokensPerInterval;\r\n if (tokensToAdd > 0) {\r\n this.tokens = Math.min(this.capacity, this.tokens + tokensToAdd);\r\n this.lastRefill = now;\r\n }\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n this.refill();\r\n if (this.tokens <= 0) {\r\n throw motifError('MJX604');\r\n }\r\n this.tokens -= 1;\r\n return Promise.resolve(action(ctx));\r\n }\r\n}\r\n\r\n\r\nexport interface FallbackOptions<T> {\r\n fallback: (err: any, ctx?: Context) => AsyncOrSync<T>;\r\n shouldHandle?: ShouldHandlePredicate;\r\n}\r\n\r\nclass FallbackPolicy<T> extends Policy {\r\n private fallback: (err: any, ctx?: Context) => AsyncOrSync<T>;\r\n private shouldHandle: ShouldHandlePredicate;\r\n\r\n constructor(opts: FallbackOptions<T>) {\r\n super();\r\n this.fallback = opts.fallback;\r\n this.shouldHandle = opts.shouldHandle ?? (() => true);\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n\r\n try {\r\n return await Promise.resolve(action(ctx)) as T;\r\n } catch (err) {\r\n if (!this.shouldHandle(err)) throw err;\r\n return await Promise.resolve(this.fallback(err, ctx)) as unknown as T;\r\n }\r\n\r\n }\r\n}\r\n\r\nclass PolicyWrap extends Policy {\r\n private policies: Policy[];\r\n\r\n constructor(...policies: Policy[]) {\r\n super();\r\n this.policies = policies;\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n const wrapped = this.policies.reduceRight((next: Action<T>, p: Policy) => {\r\n return (c?: Context) => p.execute(() => next(c), c);\r\n }, action);\r\n\r\n return wrapped(ctx);\r\n }\r\n}\r\n\r\n\r\nconst resilience = {\r\n retry: (opts?: RetryOptions) => new RetryPolicy(opts),\r\n timeout: (opts: TimeoutOptions) => new TimeoutPolicy(opts),\r\n circuitBreaker: (opts?: CircuitBreakerOptions) => new CircuitBreakerPolicy(opts),\r\n bulkhead: (opts?: BulkheadOptions) => new BulkheadPolicy(opts),\r\n rateLimiter: (opts?: RateLimiterOptions) => new RateLimiterPolicy(opts),\r\n fallback: <T>(opts: FallbackOptions<T>) => new FallbackPolicy<T>(opts),\r\n wrap: (...policies: Policy[]) => new PolicyWrap(...policies),\r\n};\r\n\r\n\r\nexport function decorate<T>(policy: ResiliencePolicy, fn: ResilienceAction<T>) {\r\n return (ctx?: ResilienceContext) => policy.execute(fn, ctx);\r\n}\r\n\r\nexport class Resilience implements ResiliencePolicy {\r\n static get create(): Resilience {\r\n return new Resilience();\r\n }\r\n private resiliences: Policy[] = [];\r\n retry = (opts?: RetryOptions): Resilience => {\r\n this.resiliences.push(resilience.retry(opts));\r\n return this;\r\n }\r\n timeout = (opts: TimeoutOptions): Resilience => {\r\n this.resiliences.push(resilience.timeout(opts));\r\n return this;\r\n }\r\n\r\n circuitBreaker = (opts?: CircuitBreakerOptions): Resilience => {\r\n this.resiliences.push(resilience.circuitBreaker(opts));\r\n return this;\r\n }\r\n\r\n bulkhead = (opts?: BulkheadOptions): Resilience => {\r\n this.resiliences.push(resilience.bulkhead(opts));\r\n return this;\r\n }\r\n\r\n rateLimiter = (opts?: RateLimiterOptions): Resilience => {\r\n this.resiliences.push(resilience.rateLimiter(opts));\r\n return this;\r\n }\r\n fallback = <T>(opts: FallbackOptions<T>): Resilience => {\r\n this.resiliences.push(resilience.fallback<T>(opts));\r\n return this;\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n return resilience.wrap(...this.resiliences).execute(action, ctx);\r\n }\r\n}\r"],"names":["rethrowLater","error","setTimeout","ErrorHandler","unexpectedErrorHandler","listeners","_isDevelopment","_enableConsoleLogging","setDevelopmentMode","isDev","this","setConsoleLogging","enabled","isDevelopment","globalThis","__MOTIF_DEV__","reportSuppressed","context","logIfDev","report","undefined","cause","console","message","bus","__MOTIF_DEVTOOLS_BUS__","publish","code","name","serializeError","emit","Error","stack","JSON","parse","stringify","String","addListener","listener","push","index","indexOf","splice","slice","setUnexpectedErrorHandler","handler","getUnexpectedErrorHandler","onUnexpectedError","safeCall","fn","fallback","safeCallAsync","safeCallSilent","safeCallSilentAsync","wrapSafe","args","wrapSafeAsync","async","errorHandler","state","Set","warnings","routes","isDevLike","isRequestedByFlag","window","__motif_DEVTOOLS","__MOTIF_DEVTOOLS__","__MOTIF_DEVTOOLS_FLAG","exposeBus","visible","__motifDevBus","on","warn","getWarnings","isEnabled","setRoutes","getRoutes","ensureDevtoolsFlagInitialized","add","delete","type","payload","ev","l","details","w","motifMessages","MJX101","tag","MJX102","description","MJX103","MJX104","MJX105","MJX106","MJX107","MJX108","MJX109","MJX110","ms","MJX111","MJX112","depth","MJX113","MJX114","MJX115","MJX116","MJX117","MJX118","MJX119","MJX120","MJX121","compiled","runtime","MJX122","hook","MJX123","event","MJX124","key","MJX125","MJX126","MJX127","got","MJX128","cls","member","how","MJX201","MJX202","MJX203","max","MJX204","MJX205","MJX206","MJX207","MJX208","MJX301","outlet","MJX302","MJX303","chain","MJX304","MJX305","MJX306","MJX307","MJX308","MJX309","MJX310","parentPath","MJX311","path","MJX312","full","MJX313","MJX314","alias","MJX315","MJX316","MJX401","token","MJX402","MJX403","MJX404","MJX405","MJX406","selector","MJX407","MJX408","reason","MJX409","MJX410","sources","MJX411","MJX413","MJX414","MJX501","MJX502","MJX503","MJX504","MJX505","MJX507","limit","count","MJX601","MJX602","MJX603","MJX604","MJX605","MJX607","MJX608","MJX609","MJX610","MJX611","MotifError","constructor","options","super","formatMotifMessage","motifError","reportError","callReported","result","then","reportWarning","devWarn","disposableCore","disposableTracker","notifyCreated","target","trackDisposable","notifyDisposed","markAsDisposed","notifyOwner","owner","setParent","toDisposable","pending","handle","dispose","DisposableStore","_items","_closed","isDisposed","item","detach","clear","size","failures","length","AggregateError","Disposable","_disposables","owned","disposable","_register","Flags","IS_REACTIVE","Symbol","for","IS_READONLY","IS_SUPERFICIAL","RAW","GET_SETUP","ITERATE_KEY","followTracking","arrayScope","getRaw","value","current","hasOwn","Object","prototype","hasOwnProperty","call","isObject","intrinsicSymbols","values","getOwnPropertyDescriptors","map","descriptor","filter","isIntrinsicSymbol","has","proxyableTags","Map","canonicalIndex","savedTracking","trackingDepth","enterTracking","pauseTracking","resetTracking","arrayStack","ListBinding","component","itemsFn","renderFn","propertyName","dataSource","dataMember","formatString","converter","converterBack","updateMode","_isActive","_effectCleanup","_rendered","_identityMap","WeakMap","container","motifFragment","controls","activate","_setupBinding","deactivate","_disposeAll","reActivate","forEach","c","_toArray","src","Array","isArray","iterator","from","_getComponentKey","comp","p","props","indexkey","k","motif","__key","isPreCreated","element","parent","_render","idx","untracked","rendered","processRendered","resolveComponent","ComponentBase","_base","itemRef","__fromList","__listAdopted","olditems","_indexSensitive","_isPrimitive","v","update","source","rawSource","items","i","prevItems","prevComponents","currentRaws","old","raw","list","get","newComponents","usedComponents","seenKeys","claimed","positionalReuse","isReusable","shared","Math","min","it","is","set","valuePool","prev","queue","occurrences","occurrence","existing","reused","shift","userKey","_syncContainer","effect","appendOnly","oldIndex","oi","stable","predecessors","fill","tails","lo","hi","mid","u","reverse","longestIncreasingIndices","anchor","at","move","NameValuePair","Key","List","ItemAdded","ItemAddedBefore","ItemSplice","__list","_map","Dispose","Add","AddBefore","unshift","Insert","start","remove","FindFromKey","removeIndex","deleted","t","callbackfn","ReverseClone","normalizePath","replace","findAppendableComponent","nodeType","Node","COMMENT_NODE","DOCUMENT_FRAGMENT_NODE","TEXT_NODE","LeakMonitor","threshold","_origins","_quietChecks","check","origin","_busiestOrigin","busiest","entry","Dictionary","__values","Value","n","OnItemAdded","x","callback","find","predicate","thisArg","createRing","ring","linked","before","after","LinkedList","_ring","_count","isEmpty","_link","pop","_take","link","previous","_unlink","toGetter","read","compareKeys","a","b","Query","where","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","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","valueAsNumber","Number","isFinite","Binding","setter","formatInfo","_component","_memberPath","_memberPathSource","split","functional","getValue","prop","_applyFormat","updateTarget","_updateComponentProperty","isWaiting","isBuilt","isWait","setText","innerHTML","show","hide","style","format","locale","currency","includes","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","decimals","parseInt","match","Date","toLocaleDateString","toLocaleTimeString","toString","RAW_KEY","overridesBelow","instance","proto","getPrototypeOf","lazyBindMethods","names","defineProperty","configurable","enumerable","o","bound","bind","writable","resolveValue","isWritablePathKey","BindingCollection","_branchScope","_own","register","when","computeFn","frame","Frame","last","shown","navigate","text","cb","binding","wait","display","html","loop","method","host","place","next","insert","Component","dom","createTextNode","ternary","conditionFn","trueFn","falseFn","_ternaryCallTop","_ternarySchedule","condFn","onTrue","onFalse","defer","stopped","inner","stopInner","stopEffect","condition","outer","ternaryCall","queueMicrotask","watch","ef","activateAll","model","tn","lowerTag","writeBack","deactivateAll","reActivateAll","switchCase","discriminatorFn","cases","defaultFn","currentValue","defaultRunned","caseKey","Emitter","_subscriptions","_delivery","_subscribe","_disposed","thisArgs","disposables","subscription","_writable","_unsubscribe","fire","_resume","targets","delivery","ComponentEmiter","_emitters","_sourceDisposables","_listenerDisposables","hasListeners","eventName","createEvent","off","lower","d","getOrCreateEmitter","emitters","lowerFull","startsWith","invoke","res","disp","addSource","forward","srcs","agg","keys","METHOD_ATTRS","OPEN_METHODS","showModal","showPopover","WHEN_TRUTHY_METHODS","ARGUMENT_METHODS","PROPERTY_FIRST","controlAttribute","_parent","_attrMapStore","_watchersStore","_attrMap","_watchers","attributes","entries","attribute","bag","Reflect","ownKeys","stopper","bindings","_getElement","removeAttribute","HTMLElement","Element","hasAttribute","getAttribute","val","_applyValue","arg","apply","schedule","cacheValue","blur","inp","setSelectionRange","document","fullscreenElement","exitFullscreen","exitPointerLock","catch","pause","exitPictureInPicture","other","srcObject","setAttribute","isBool","input","isComponentLike","hasMethodState","getMethodState","activeElement","selectionStart","selectionEnd","controlClass","_countsStore","_staticSetStore","_watcherSeq","_counts","_staticSet","_addReactive","_addStaticFromArray","_addStaticFromObject","valueStr","trim","_addStaticFromString","classNames","cn","_splitClasses","_applySourceDiff","id","className","classList","contains","s","_normalizeToSet","obj","sourceId","now","prevCount","arr","rec","el2","shimAnimation","cancel","addEventListener","removeEventListener","oncancel","playState","cssTimeToMs","amount","substring","sampleTiming","styles","kind","listOf","aspect","delays","durations","longest","Infinity","total","tracks","transformTrack","computeTransitionInfo","Type","timeout","propCount","hasTransform","samples","transition","animation","winner","forced","test","transitionProperty","getTransitionInfo","isConnected","getComputedStyle","fxElement","createElement","body","appendChild","runCssTransition","phase","done","appear","css","classes","enter","enterFromClass","enterActiveClass","to","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","resolveTransitionClasses","addC","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","inject","describeInjectToken","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","dependencies","nextPath","concat","firstIndex","join","contentBlocks","OPTIONS_OWNER","TRANSITION_SLOT","transitionSettings","mode","noop","createTracker","node","via","parentNode","release","r","settled","except","waits","leaves","enters","trackLeave","pendingLeaves","trackEnter","pendingEnters","isTransitionMode","describeServiceToken","peekTransition","clearNavDirection","_markedDirection","enterModeOf","_leaveContainer","wantsEnterTransition","transitionIn","createTransitionApi","cur","transitionInfo","in","out","activeCssCancel","activeCssPhase","cssProps","skipNextLeave","_suppressEnter","op","transitionOut","enterTransition","base","_enterPlayed","_enterSeq","attempt","_enterRun","placeholder","keyframes","_runCss","leaveTransition","play","deferUntilEntered","activeAnimations","animate","cleanedUp","safeCleanup","g","Animation","ComponentOptionsImpl","enableRouterClassing","ins","onRouterChanged","ComponentHelper","routerClassing","getInstance","isVisible","hasEvent","_eventHandlers","fireLifecycle","emiters","hasLifecycleHook","listName","lowerName","legacyProp","RESERVED_METHODS","checkedComponentClasses","WeakSet","callsSuper","escaped","RegExp","Function","checkReservedMembers","ctor","problems","own","getOwnPropertyDescriptor","Boolean","anyC","ControlCollection","class","attr","reservedMemberProblems","callInitializeComponent","sender","initializeComponent","_initializeComponentHandlers","oninitializeComponent","_onInitializeComponentHandlers","callDisposing","onDisposing","_onDisposingHandlers","ondisposing","callActivated","onActivated","_onActivatedHandlers","callDeactivated","onDeactivated","_onDeactivatedHandlers","deactivateTree","deep","_inactive","activateTree","callDisposed","_disposedFired","onDisposed","_onDisposedHandlers","ondisposed","callBuilt","onBuilt","_onBuiltHandlers","onbuilt","scheduleMounted","_mountedScheduled","onMounted","_onMountedHandlers","onmounted","onElementAttached","callMounted","_mountedFired","callBuilding","onBuilding","_onBuildingHandlers","callConfig","isConfigured","_preconfig","onConfig","_onConfigHandlers","callConfigured","_postconfigdone","_configDeferred","onConfigured","_onConfiguredHandlers","callOnInitialized","isInitialized","onInitialized","_onInitializedHandlers","callOnInitializing","onInitializing","_onInitializingHandlers","callVisibilityChanged","onVisibilityChanged","_onVisibilityChangedHandlers","findFragmentContent","controlElement","childNodes","child","closeFragment","backgroundCallback","internalBuild","_activatePreBindings","cisBuilt","enterSeq","pendingLeave","__pendingLeave","build","ownItems","currentIndex","appendableElement","getContent","referenceNode","insertHost","domReferenceOf","candidate","siblings","cfg","hideStrategy","isFromListOrKeyed","createComment","insertBefore","router","requestPath","uri","targetPath","exact","strip","isExactMatch","prefix","rp","pp","startsWithPath","activeClass","offActive","onActive","exactClass","offExact","onExact","removeComponentDom","alsoPlaceholder","nextSibling","removeChild","detachDomWithAnimation","_keepElementOnDispose","_forceInstantDetach","DISPOSE_STARTED","subtreeDisposesSync","_disposing","disposeAsync","teardownApplications","disposePrefix","asChild","ctx","Application","_disposingCount","app","application","recorded","main","owningApplication","skipLeaveTransition","_offAll","_deactivateBindings","silentDetach","disposeFinish","_deepCleanup","disposeRemainderAsync","_detachDomWithAnimationAsync","liveContentBlocks","findContentBlocks","block","disposeContentBlocks","childOptions","ctrls","BASE_PROTO","evt","wrapped","cap","_activateBindings","_reactivateBindings","prebinding_Activated","registered","_detachDomWithAnimation","detachDomWithAnimationAsync","_disposeShallow","disposeShallow","childs","deepCleanup","fragmentCloseMarkers","LIFECYCLE_X_EVENTS","RAW_APPLICATION","SCOPED_SUBSCRIBERS","isPainting","isPainted","_isWait","_styleFx","useModel","modelCtor","reactive","_computeHideStrategy","_isInDom","onElementCreating","refs","extractRefs","takePendingRefs","ParseProps","applyComponentOptions","ctor0","applyPlainElementProps","applyFallthroughProps","onAdd","control","onAddBeforeBuild","onRemove","createBaseCtx","_scopedContext","parentCtx","_trackContextSubscription","createScopedContext","building","ph","createDocumentFragment","isFragment","textContent","view","templ","deferredSelectValue","nodeName","seq","appendData","append","setState","reState","_textBindingWarned","warnComponentInTextBinding","content","styleObj","_stopStyleEffect","prevKeys","prevWasString","so","cssText","assign","fx","_addHandler","_show","showHost","_showSeq","needAttach","placeholderParent","parentElement","expectedParent","replaceChild","_hide","skip","_toggle","_on","xName","sub","_mountedSubs","subs","mods","once","passive","isTrusted","prevent","preventDefault","stopPropagation","original","_trigger","eh","_off","_disposeCore","rootDetached","nodes","parents","j","heights","order","disposeRemainderSync","_clear","disableDisposal","clearAsync","using","waitable","onfulfilled","onrejected","doWork","_siblingsApi","_siblingsSet","_createSiblingsApi","nextAll","prevAll","serviceProvider","provider","getService","sp","err","$","fromDom","fromComponent","findingTarget","findContainer","querySelectorAll","findingComponent","found","walk","cmp","ELEMENT_NODE","matches","msMatchesSelector","webkitMatchesSelector","_stopAnimations","_appliedRefs","ref","fns","applied","isCallableRef","runover","rest","LIFECYCLE_HANDLER_LISTS","initializecomponent","oninitializecomponent","onbuilding","oninitializing","oninitialized","onconfig","onconfigured","onvisibilitychanged","onactivated","ondeactivated","collectLifecycleHandlers","lowerKey","flat","applyTransitionProp","componentMethods","eventKey","nkey","_transitionSources","setTransition","COMPONENT_OPTION_KEYS","PLAIN_ELEMENT_SKIP","SPREAD_HTML_KEYS","SPREAD_URL_ATTRIBUTES","JAVASCRIPT_URL","isJavascriptUrl","guardSpreadUrl","attrs","appliedDomProps","_appliedDomProps","FALLTHROUGH_KEYS","isFallthroughKey","subset","observer","MutationObserver","disconnect","observe","documentElement","childList","subtree","notifyActivated","unpinServiceOwner","notifyDeactivated","MAX_FACTORY_DEPTH","SVG_NAMESPACE","static","derivedCtor","elementOrParams","arguments","isOptionsObject","materializeOptionsObject","CreateFragment","ops","isSvg","__isSvgElement","createElementNS","fragmentProps","declaredTag","elementTag","trimmed","readElementTag","declaredNs","elementNamespace","createDeclaredElement","kids","kid","FNComponent","applyRefs","handlerCount","callAddedHandlers","motifComponent","__childExpr","resolved","probe","resolveChildExpression","handlers","configuredBefore","initializingBefore","initializedBefore","pre","applyJsxFrameworkProps","unwrapModule","default","assertLoadedComponent","__esModule","describeLoaded","resolveToComponent","spec","getOwnPropertyNames","FragmentNode","arg1","arg2","glblths","getCurrentDom","motifDom","_created","doc","cloneNode","cd","selectors","namepsaceUri","convertToSvgElement","newSvgElement","firstChild","SELECTOR_REGEX","Namespace","children","namespace","exec","HTML","_$","_insertOne","resolveDone","detachComponentDom","arrive","visit","arrived","runLeaveThenDetach","unlinkOnly","silentUnlink","beforeIndex","newBeforeIndex","insertAt","findAppendableElement","open","maxIterations","isNodeInRange","frag","ownerDocument","moveComponentDomRange","computeAppendReference","moveToIndex","defaultMapper","Lazy","timers","trackTimer","clearAllTimers","initial","Placeholderview","Loaderview","attemptLoad","timeoutMs","signal","caller","parts","reject","finally","onAbortClear","aborted","onAbort","race","retry","floor","delayMs","whenOnline","normalizeRetry","cleanups","waitBeforeRetry","go","onlineHandler","navigator","onLine","loadPromise","onRetry","loadWithRetry","startTs","fail","onError","Fallbackview","mapResult","elapsed","minDelay","minDelayMs","remaining","onAbortClearDelay","hasOwnTransition","cancelAnimationsDeep","anims","anim","disposeNavigationTarget","xr","navigateHost","page","keepOldControl","navigateId","_latestNavigateId","isBusy","complete","xP","previouspage","_navPending","prevLock","_navLock","_navAbort","abort","AbortController","oldPage","animated","leaving","lazyFrame","flush","navigateLazy","preprocessitem","preProcessing","ContentBodyCollectionHandable","changeBodyCollectionHandler","ContentBlock","ContentBody","SLOT_REGISTERED_EVENT","SLOT_UNREGISTERED_EVENT","TransportRegistry","registerSlot","slots","unregisterSlot","getSlot","Transport","clearSlot","Transporter","transport","newParent","ownerTransporter","keepState","transportMany","createSlot","mount","unmount","detachAll","TransportTo","_onAddRef","_onRemoveRef","_slotRegisteredListener","_slotUnregisteredListener","_transported","_countedLive","_handleSlotChange","eventArgs","_rememberTransported","kept","_clearChildrenFromSlot","currentSlot","ARRAY_MUTATORS","NOT_META","metaReaders","engine","isReadonly","superficial","_engine","receiver","ReactiveMap","readMeta","reader","createGetter","meta","patched","arrayMethods","createSetter","oldValue","oldLength","numeric","hadKey","proxy","removeArrayStack","createOwn","createHas","createDelete","isOwned","deleteProperty","PATCHED_ARRAY_METHODS","ArrayMethods","createArrayMethods","table","patch","needles","direct","outcome","needle","sorted","KEYS_KEY","keysChanged","lookupKey","wrapIterator","convert","step","createCollectionHandler","methods","wrap","wrapEntry","stored","existed","removed","isMap","createCollectionMethods","ReactiveEngineMapper","AllreactiveMap","_gci","startGc","_intervalMs","stopGc","clearInterval","DisposeMapper","arrayTriggerCache","activeCallback","arrayHandler","deepHandler","collectionHandler","targetType","cname","isExtensible","existingProxy","clearModel","ArrayTrigger","toRaw","deepClone","array","enableTracking","cnt","reactiveRegistry","isDevRegistryEnabled","__MOTIF_STORE_REGISTRY__","createSignal","sig","createComputed","createLazyComputed","Virtualization","_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","position","_handleScroll","_initialLoadStarted","_observeResize","_stopResizeObserver","_stopDataWatch","_clearContent","_offsets","_resizeObserver","_observed","_observedHeight","_fixedHeight","h","itemHeight","_computeOffsets","offsets","_layoutOffsets","_offsetOf","_indexAt","y","RO","ResizeObserver","clientHeight","_loadSeq","_dataWatchStop","_reloadScheduled","_reloadTimes","_request","request","dataRequest","autoRefresh","_scheduleReload","_reloadLoaded","pageSize","pages","response","scrollTop","top","_rebuildView","height","_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","getState","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","findAll","RouterViewBuilt","RouterView","__isRouterView","ids","disposingChilds","disposeTarget","STORAGE_KEY","USER_INPUT","ScrollMemory","viewport","positions","currentKey","visited","restoring","cancelFrame","disarmAbort","offs","locationAnchor","windowViewport","querySelector","scrollTo","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","margin","boxSizing","getBoundingClientRect","f","width","pointerEvents","zIndex","NavigationStack","retainAttached","swipe","session","uris","loaded","currentTop","gesture","gestureCommitted","awaitingGestureResult","disposed","retain","sb","swipeBack","edge","installSwipe","retainedCount","isRetaining","nav","begin","point","disposeAllEntries","truncate","stale","disposeEntry","take","pendingDetach","instances","topIndex","deferHide","attached","hidden","scroll","evict","settle","inert","ariaHidden","setProperty","reveal","record","save","describe","retained","gestureCommitPending","consumeGestureCommit","committed","traversalSettled","cancelled","settleGesture","entering","enteringEl","leavingEl","backwards","enteringStyle","leavingStyle","transform","endGestureListeners","fromIndex","onStart","onTouchStart","touches","clientX","topEl","startX","startY","clientY","lastX","dragging","topSaved","under","underSaved","onMove","onTouchMove","onEnd","onTouchEnd","beginDrag","innerWidth","willChange","applyDrag","dx","progress","dy","abs","cancelable","span","idle","velocity","commit","underEl","currentUnder","back","Scanner","tokens","currentColumn","addToken","currentType","parentTokenIndex","parameterIndex","sectionIndex","cpa","codePointAt","currentToken","isOptinal","regexs","parameterName","leadingSlashTokenIndex","leadingStaticTokenIndex","hasLeadingSlash","hasLeadingStatic","consumed","ch","escapeRegex","getNextDelimChar","nx","buildCapture","isOptional","delim","pattern","tok","segStart","segEnd","firstIdx","hasDependent","jj","sj","pj","groupInner","prm","parameters","exist","pageSearch","hashIdx","withoutHash","query","qIdx","rx","indx","urlSearchParams","URLSearchParams","queryMap","str","charCodeAt","second","routeSpecificity","fullPath","statics","params","compareRouteRecords","sa","RouteCollection","records","routesMap","viaAlias","nextChain","variants","isAlias","variant","leaf","scanner","aliasOf","RoutingEngine","_revealed","routingModule","_previousPath","_previousInstances","mainApp","controlCache","route","_navVersion","generatePathString","routeDefinition","part","paramDefinition","paramName","defaultValue","_pendingActivate","execute","_rootProvider","suppressed","_execute","_routerState","navVersion","restored","controlList","isSameRoute","enableEnter","paramsChanged","prevParams","newParams","allKeys","leafRoute","keepAlive","oldInstance","globalHooks","getHooks","updateHook","onUpdate","updateContext","extend","metaInfo","enterContext","enterHook","onEntering","prepTasks","task","createInstance","motion","previousInstances","_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","RouterLink","showHref","href","bypass","shiftKey","altKey","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","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","_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","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","routerDone","_removeLifecycleListeners","shell","useTransitions","use","useGuard","guard","redirectPath","guardResolved","_routerConfig","useRouter","isDevtoolsEnabled","seenFull","seenAlias","rawPath","isDefaultSlash","isEmptyPath","childPath","aliases","rawAlias","aliasFull","aliasCount","lintRoutes","restartRouter","fresh","isOnline","_lifecycleOff","onLifecycle","_installLifecycleListeners","_emitLifecycle","online","win","persisted","_enableErrorLogging","isDevelopmentModeEnabled","useReactiveMonitor","useDevelopment","flushCompilerContractWarnings","useLogging","setErrorConsoleLogging","useNavigation","useApplication","components","Injectable","FromService","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","BulkheadPolicy","maxConcurrent","maxQueue","dequeue","RateLimiterPolicy","tokensPerInterval","intervalMs","capacity","lastRefill","refill","tokensToAdd","FallbackPolicy","PolicyWrap","policies","reduceRight","resilience","decorate","policy","Resilience","resiliences","circuitBreaker","bulkhead","rateLimiter"],"mappings":"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"}
|