@motifx/core 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{core-DxINgP83.esm.js → core-BGdhUeHu.esm.js} +3175 -1138
- package/dist/chunks/core-BGdhUeHu.esm.js.map +1 -0
- package/dist/chunks/{core-DfzGo_Ti.cjs → core-BI6Lk585.cjs} +3366 -1299
- package/dist/chunks/core-BI6Lk585.cjs.map +1 -0
- package/dist/devtools.cjs +1 -1
- package/dist/devtools.cjs.map +1 -1
- package/dist/devtools.esm.js +1 -1
- package/dist/devtools.esm.js.map +1 -1
- package/dist/index.cjs +87 -74
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +38 -18
- package/dist/index.d.ts +38 -18
- package/dist/index.esm.js +42 -30
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.umd.js +1574 -1120
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/jsx-runtime.cjs.map +1 -1
- package/dist/jsx-runtime.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/core-BDvHkZLQ.esm.js +0 -1601
- package/dist/chunks/core-BDvHkZLQ.esm.js.map +0 -1
- package/dist/chunks/core-DXGu4dNE.cjs +0 -1642
- package/dist/chunks/core-DXGu4dNE.cjs.map +0 -1
- package/dist/chunks/core-DfzGo_Ti.cjs.map +0 -1
- package/dist/chunks/core-DxINgP83.esm.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.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/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: () => `A spread object on a DOM tag cannot set innerHTML; the key was ignored. Use x-html for trusted HTML.`,\n MJX125: (key: string) => `A spread object on a DOM tag cannot set a javascript: URL on '${key}'; the value was ignored. Write the attribute on the tag if it is intended.`,\n MJX126: () => `Lazy: loading the component failed and no Fallbackview is set; the host was cleared.`,\n\n MJX201: () => `ListBinding: renderFn must return a component instance, a component class, or a factory function.`,\n MJX202: (key: unknown, index: number) => `ListBinding: duplicate key \"${String(key)}\" at index ${index}. Rows are matched by the item object, not by key, so rendering is not affected; keep keys unique so they identify items.`,\n MJX203: (max: number) => `An effect ran ${max} times in one flush and keeps triggering itself; it is skipped for the rest of this flush. It probably writes a value it reads (for example state.n++). Wrap the write in untracked(...).`,\n MJX204: () => `A component reached a text binding and was not written to the DOM. For a template prop that can change later, write a getter: {() => props.tpl}. Templates that are ready at setup also work as {props.tpl}.`,\n MJX205: () => `Virtualization: the watch callback threw.`,\n MJX206: () => `Virtualization: autoRefresh stopped; dataRequest may be changing the reactive data it reads on every refresh.`,\n MJX207: () => `Virtualization: loading data failed.`,\n MJX208: () => `An effect threw.`,\n\n MJX301: (outlet: string, ms: number) => `RouterView outlet '${outlet}' was not built within ${ms} ms, so the route chain cannot be mounted. Does the layout component render a <RouterView>?`,\n MJX302: (name: string) => `Named route '${name}' was not found.`,\n MJX303: (chain: string) => `Redirect loop or too many redirects: ${chain}`,\n MJX304: () => `Route execution failed.`,\n MJX305: () => `The error fallback route failed.`,\n MJX306: (hook: string) => `The ${hook} hook threw.`,\n MJX307: () => `Disposing a route component failed.`,\n MJX308: () => `The stack navigation transition failed.`,\n MJX309: () => `Router is not initialized. Call useRouter() before navigating.`,\n MJX310: (parentPath: string) => `Route path cannot be empty; use '/' for the default child. Under parent \"${parentPath}\".`,\n MJX311: (path: string, parentPath: string) => `Child route path should start with '/': \"${path}\" under parent \"${parentPath}\".`,\n MJX312: (full: string) => `Child route path resolves to the same full path as its parent: \"${full}\".`,\n MJX313: (full: string) => `Multiple routes resolve to the same full path: \"${full}\".`,\n MJX314: (alias: string, parentPath: string) => `Child route alias should start with '/': \"${alias}\" under parent \"${parentPath}\".`,\n MJX315: (alias: string) => `Route alias resolves to the route's own path: \"${alias}\".`,\n MJX316: (alias: string) => `Multiple routes use the same alias: \"${alias}\".`,\n\n MJX401: (token: string) => `Service not registered for token: ${token}`,\n MJX402: (token: string) => `Async factory used with get() for token ${token}; use getAsync().`,\n MJX403: () => `Invalid service descriptor.`,\n MJX404: (chain: string) => `Cyclic dependency detected: ${chain}`,\n MJX405: () => `Only one ApplicationBuilder instance is allowed.`,\n MJX406: (selector: string) => `Application.run: host not found for selector: ${selector}`,\n MJX407: (token: string) => `getService: no ServiceProvider found for token '${token}'.`,\n MJX408: (token: string, reason: string) => `getService failed for token '${token}': ${reason}`,\n MJX409: (token: string) => `inject(${token}) was called outside a service construction; call it in a field initializer or constructor of a class the ServiceProvider creates.`,\n MJX410: (token: string, sources: string) => `Multiple sources provided for token '${token}': ${sources}. Resolution order is useValue > useFactory > useClass.`,\n MJX411: (token: string) => `'deps' must be an array for token '${token}'; the invalid deps are ignored.`,\n MJX413: (token: string) => `Service '${token}' is registered with a function that cannot be constructed. Use { useValue: fn } to provide the function itself or { useFactory: fn } to create the service.`,\n MJX414: (token: string, reason: string) => `FromService failed for token '${token}': ${reason}`,\n\n MJX501: () => `Disposable already disposed.`,\n MJX502: () => `Cannot register a disposable on itself.`,\n MJX503: () => `Errors were thrown while disposing a store.`,\n MJX504: () => `A disposable was added to a DisposableStore that is already disposed; the added object will leak.`,\n MJX505: () => `Cannot dispose a disposable on itself.`,\n MJX507: (name: string, limit: number, count: number) => `[${name}] potential listener LEAK: ${limit} listeners already; most frequent stack (${count}):`,\n\n MJX601: () => `Sequence contains no elements.`,\n MJX602: () => `Circuit is open.`,\n MJX603: () => `Bulkhead queue is full.`,\n MJX604: () => `Rate limit exceeded.`,\n MJX605: () => `Operation timed out.`,\n MJX607: () => `A history must be created with at least one entry.`,\n MJX608: () => `Method not implemented.`,\n MJX609: () => `OperationRunner: the operation threw.`,\n MJX610: () => `Matching the request path failed.`,\n MJX611: () => `The devtools panel failed to load.`,\n} satisfies Record<string, (...args: any[]) => string>;\n\nexport type MotifErrorCode = keyof typeof motifMessages;\ntype MessageArgs<C extends MotifErrorCode> = Parameters<(typeof motifMessages)[C]>;\n\nexport class MotifError extends Error {\n readonly code: MotifErrorCode;\n\n constructor(code: MotifErrorCode, message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'MotifError';\n this.code = code;\n }\n}\n\nexport function formatMotifMessage<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): string {\n return `[motifjs] ${code}: ${(motifMessages[code] as (...a: any[]) => string)(...args)}`;\n}\n\nexport function motifError<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): MotifError {\n return new MotifError(code, formatMotifMessage(code, ...args));\n}\n\nexport function reportError<C extends MotifErrorCode>(code: C, cause: unknown, ...args: MessageArgs<C>): void {\n errorHandler.report(new MotifError(code, formatMotifMessage(code, ...args), { cause }));\n}\n\nexport function callReported<C extends MotifErrorCode>(fn: () => unknown, code: C, ...args: MessageArgs<C>): void {\n try {\n const result: any = fn();\n if (result && typeof result.then === 'function') {\n result.then(undefined, (error: unknown) => reportError(code, error, ...args));\n }\n } catch (error) {\n reportError(code, error, ...args);\n }\n}\n\nexport function reportWarning<C extends MotifErrorCode>(code: C, args: MessageArgs<C>, details?: unknown): void {\n devWarn(code, (motifMessages[code] as (...a: any[]) => string)(...args), details);\n}\n","import { IDisposable } from \"./IDisposable\";\n\nexport interface IDisposableTracker {\n trackDisposable(disposable: IDisposable): void;\n setParent(child: IDisposable, parent: IDisposable | null): void;\n markAsDisposed(disposable: IDisposable): void;\n markAsSingleton(disposable: IDisposable): void;\n}\n\nclass DisposableCore {\n\n disposableTracker: IDisposableTracker | null = null;\n\n notifyCreated<T extends IDisposable>(target: T): T {\n this.disposableTracker?.trackDisposable(target);\n return target;\n }\n\n notifyDisposed(target: IDisposable): void {\n this.disposableTracker?.markAsDisposed(target);\n }\n\n notifyOwner(target: IDisposable, owner: IDisposable | null): void {\n this.disposableTracker?.setParent(target, owner);\n }\n\n toDisposable(fn: () => void): IDisposable {\n let pending = true;\n const handle: IDisposable = {\n dispose: () => {\n if (!pending) {\n return;\n }\n pending = false;\n this.notifyDisposed(handle);\n fn();\n }\n };\n return this.notifyCreated(handle);\n }\n}\n\nexport const disposableCore: DisposableCore = new DisposableCore();\n","import { IDisposable } from \"./IDisposable\";\r\nimport { disposableCore } from \"./DisposableCore\";\r\nimport { MotifError, formatMotifMessage, motifError, reportWarning } from \"../common/diagnostics\";\r\n\r\nexport class DisposableStore implements IDisposable {\r\n\r\n private readonly _items = new Set<IDisposable>();\r\n private _closed = false;\r\n\r\n constructor() {\r\n disposableCore.notifyCreated(this);\r\n }\r\n\r\n get isDisposed(): boolean {\r\n return this._closed;\r\n }\r\n\r\n add<T extends IDisposable>(item: T): T {\r\n if (!item) {\r\n return item;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX502');\r\n }\r\n disposableCore.notifyOwner(item, this);\r\n if (this._closed) {\r\n reportWarning('MJX504', [], new Error().stack);\r\n } else {\r\n this._items.add(item);\r\n }\r\n return item;\r\n }\r\n\r\n delete<T extends IDisposable>(item: T): void {\r\n if (!item) {\r\n return;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX505');\r\n }\r\n this._items.delete(item);\r\n item.dispose();\r\n }\r\n\r\n detach<T extends IDisposable>(item: T): void {\r\n if (item && this._items.delete(item)) {\r\n disposableCore.notifyOwner(item, null);\r\n }\r\n }\r\n\r\n clear(): void {\r\n if (this._items.size === 0) {\r\n return;\r\n }\r\n const failures: unknown[] = [];\r\n for (const item of this._items) {\r\n try {\r\n item?.dispose();\r\n } catch (error) {\r\n failures.push(error);\r\n }\r\n }\r\n this._items.clear();\r\n if (failures.length === 1) {\r\n throw failures[0];\r\n }\r\n if (failures.length > 1) {\r\n throw new MotifError('MJX503', formatMotifMessage('MJX503'), { cause: new AggregateError(failures) });\r\n }\r\n }\r\n\r\n dispose(): void {\r\n if (this._closed) {\r\n return;\r\n }\r\n disposableCore.notifyDisposed(this);\r\n this._closed = true;\r\n this.clear();\r\n }\r\n}\r\n","import { motifError, reportWarning } from \"../common/diagnostics\";\nimport { IDisposable } from \"./IDisposable\";\nimport { disposableCore } from \"./DisposableCore\";\nimport { DisposableStore } from \"./DisposableStore\";\n\nexport abstract class Disposable implements IDisposable {\n\n protected readonly _disposables = new DisposableStore();\n\n constructor() {\n disposableCore.notifyCreated(this);\n disposableCore.notifyOwner(this._disposables, this);\n }\n\n public dispose(): void {\n disposableCore.notifyDisposed(this);\n const owned = this._disposables;\n if (owned && typeof owned.dispose === 'function') {\n owned.dispose();\n } else {\n reportWarning('MJX501', [], { disposable: this });\n }\n }\n\n protected _register<T extends IDisposable>(item: T): T {\n if ((item as unknown) === this) {\n throw motifError('MJX502');\n }\n return this._disposables.add(item);\n }\n}\n","\r\n\r\nexport const Flags = {\r\n IS_REACTIVE: Symbol.for('motif.isReactive'),\r\n IS_READONLY: Symbol.for('motif.isReadonly'),\r\n IS_SUPERFICIAL: Symbol.for('motif.isSuperficial'),\r\n RAW: Symbol.for('motif.raw'),\r\n GET_SETUP: Symbol.for('motif.getSetup'),\r\n} as const;\r\n\r\nexport const enum TargetType {\r\n SYSTEM = 0,\r\n INVALID = SYSTEM,\r\n COMMON = 0b01,\r\n COLLECTION = 0b10\r\n}\r\n\r\nexport const ITERATE_KEY = Symbol('')\r\nexport let followTracking: boolean = true;\r\nexport let arrayScope: { enabled: boolean, key: string } = { enabled: false, key: '' };\r\n\r\n\r\nexport function getRaw<T>(value: T): T {\r\n let current = value;\r\n while (current && (current as any)[Flags.RAW]) {\r\n current = (current as any)[Flags.RAW];\r\n }\r\n return current;\r\n}\r\n\r\nexport function isReadonly(candidate: unknown): boolean {\r\n if (candidate == null) return false;\r\n return Boolean((candidate as any)[Flags.IS_READONLY]);\r\n}\r\n\r\nexport function hasOwn(target: object, key: PropertyKey): boolean {\r\n return Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nexport function isObject(value: unknown): value is Record<any, any> {\r\n return typeof value === 'object' && value !== null;\r\n}\r\n\r\nconst intrinsicSymbols: ReadonlySet<symbol> = new Set(\r\n Object.values(Object.getOwnPropertyDescriptors(Symbol))\r\n .map(descriptor => descriptor.value)\r\n .filter((value): value is symbol => typeof value === 'symbol')\r\n);\r\n\r\nexport function isIntrinsicSymbol(key: unknown): boolean {\r\n return typeof key === 'symbol' && intrinsicSymbols.has(key);\r\n}\r\n\r\nconst proxyableTags = new Map<string, TargetType>([\r\n ['[object Object]', TargetType.COMMON],\r\n ['[object Array]', TargetType.COMMON],\r\n ['[object Map]', TargetType.COLLECTION],\r\n ['[object Set]', TargetType.COLLECTION],\r\n ['[object WeakMap]', TargetType.COLLECTION],\r\n ['[object WeakSet]', TargetType.COLLECTION],\r\n]);\r\n\r\nexport function getTargetType(value: any): TargetType {\r\n var proto = Object.getPrototypeOf(value);\r\n var cname = \"\";\r\n if (proto && proto.constructor) {\r\n cname = proto.constructor.name;\r\n }\r\n if ((cname === \"Control\" || cname == \"RouteManager\" || cname == \"ServiceManager\")) {\r\n return TargetType.SYSTEM;\r\n }\r\n if (!Object.isExtensible(value)) {\r\n return TargetType.INVALID;\r\n }\r\n return proxyableTags.get(Object.prototype.toString.call(value)) ?? TargetType.INVALID;\r\n}\r\n\r\nconst canonicalIndex = /^(?:0|[1-9]\\d*)$/;\r\nexport const isNumericKey = (key: unknown): boolean =>\r\n typeof key === 'string' && canonicalIndex.test(key) && String(Number(key)) === key;\r\n\r\n\r\nconst savedTracking: boolean[] = [];\r\nlet trackingDepth = 0;\r\n\r\nfunction enterTracking(enabled: boolean) {\r\n savedTracking[trackingDepth++] = followTracking;\r\n followTracking = enabled;\r\n}\r\n\r\nexport function pauseTracking() {\r\n enterTracking(false);\r\n}\r\n\r\nexport function enableTracking() {\r\n enterTracking(true);\r\n}\r\n\r\nexport function resetTracking() {\r\n followTracking = trackingDepth > 0 ? savedTracking[--trackingDepth] : true;\r\n}\r\n\r\nconst arrayStack: { enabled: boolean, key: string }[] = []\r\n\r\n\r\nexport function addArrayStack(key: any) {\r\n arrayStack.push(arrayScope)\r\n arrayScope.enabled = true;\r\n arrayScope.key = key;\r\n}\r\nexport function removeArrayStack() {\r\n const last = arrayStack.pop();\r\n if (arrayStack.length > 0) {\r\n arrayScope = last === undefined ? { enabled: false, key: '' } : last;\r\n } else {\r\n arrayScope = { enabled: false, key: '' }\r\n }\r\n\r\n}\r\n\r\n\r\ndeclare const opaqueBrand: unique symbol\r\ndeclare const shallowBrand: unique symbol\r\n\r\ntype OpaqueState = Function | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | string | number | boolean | { [opaqueBrand]?: true }\r\n\r\ntype DeepState<T> = T extends OpaqueState ? T\r\n : T extends Array<any> ? { [Index in keyof T]: DeepState<T[Index]> }\r\n : T extends object & { [shallowBrand]?: never } ? { [Key in keyof T]: Key extends symbol ? T[Key] : DeepState<T[Key]> }\r\n : T\r\n\r\ninterface BoxedPrimitive<T> { value: T }\r\n\r\nexport type UnwrapValueRefs<T> = T extends number | string | boolean ? BoxedPrimitive<T> : DeepState<T>;\r\n\r\n\r\nexport var setupListener: any;\r\nexport var setupActive = false;\r\n\r\nexport function listenSetup(key: any) {\r\n setupListener = key;\r\n setupActive = true;\r\n}\r\n\r\nexport function closeSetup() {\r\n setupListener = null;\r\n setupActive = false;\r\n}","import { ComponentBase, motifFragment, resolveComponent } from \"../\";\r\nimport { effect, untracked } from \"../\";\r\nimport { getRaw } from \"../store/common\";\r\nimport { motifError, reportWarning } from \"../common/diagnostics\";\r\nimport { IBaseBinding } from \"./\";\r\n\r\n\r\nexport interface ListBindingOptions {\r\n reuse?: boolean;\r\n}\r\n\r\nexport class ListBinding implements IBaseBinding {\r\n propertyName: string = \"__list__\";\r\n dataSource: any;\r\n dataMember?: string | undefined;\r\n formatString?: string | undefined;\r\n converter?: ((value: any) => any) | undefined;\r\n converterBack?: ((value: any) => any) | undefined;\r\n updateMode?: \"onPropertyChanged\" | \"onValidation\" | \"never\" | undefined;\r\n private _isActive = false;\r\n private _effectCleanup?: () => void;\r\n private _rendered: ComponentBase[] = [];\r\n private _identityMap = new WeakMap<object, ComponentBase[]>();\r\n private container: ComponentBase = motifFragment('list-container');\r\n constructor(private component: ComponentBase,\r\n private itemsFn: () => any[] | Iterable<any>,\r\n private renderFn: (item: any, index: number) => ComponentBase,\r\n private options?: ListBindingOptions) {\r\n this.component.controls.add(this.container);\r\n\r\n }\r\n activate(): void { if (this._isActive) return; this._isActive = true; this._setupBinding(); }\r\n deactivate(): void {\r\n if (!this._isActive) return;\r\n this._isActive = false;\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n this._disposeAll();\r\n }\r\n reActivate(): void {\r\n\r\n this.deactivate();\r\n this.activate();\r\n }\r\n private _disposeAll() {\r\n this._rendered.forEach(c => { try { c.dispose && c.dispose(); } catch { } });\r\n this._rendered = [];\r\n this._identityMap = new WeakMap();\r\n }\r\n private _toArray(src: any): any[] {\r\n if (!src) return [];\r\n if (Array.isArray(src)) return src;\r\n if (typeof src === 'function') return this._toArray(src());\r\n if (src[Symbol.iterator]) return Array.from(src as Iterable<any>);\r\n return [];\r\n }\r\n private _getComponentKey(comp: ComponentBase): any {\r\n try {\r\n const p: any = (comp as any).props;\r\n if (p && typeof p.indexkey === 'function') {\r\n return p.indexkey();\r\n }\r\n if (p && typeof p.indexkey !== 'undefined' && p.indexkey !== null) {\r\n return p.indexkey;\r\n }\r\n } catch { }\r\n try {\r\n const k = (comp as any).motif.options?.__key;\r\n if (typeof k !== 'undefined') return k;\r\n } catch { }\r\n return undefined;\r\n }\r\n\r\n private isPreCreated(comp: ComponentBase): boolean {\r\n return comp.element !== null || comp.parent !== null;\r\n }\r\n\r\n private _render(item: any, idx: number): ComponentBase {\r\n return untracked(() => {\r\n const rendered = this.renderFn(item, idx);\r\n return this.processRendered(rendered, item);\r\n });\r\n }\r\n\r\n private processRendered(rendered: any, item: any): ComponentBase {\r\n const component: ComponentBase = resolveComponent(rendered);\r\n if (!(component instanceof ComponentBase)) {\r\n throw motifError('MJX201');\r\n }\r\n\r\n try { (component as any)._base.itemRef = item; } catch { }\r\n try { (component.motif.options as any).__fromList = true; } catch { }\r\n\r\n if (typeof (component as any).__listAdopted === 'undefined') {\r\n (component as any).__listAdopted = component.parent !== null && component.parent !== undefined;\r\n }\r\n\r\n return component;\r\n }\r\n private olditems: any[] = [];\r\n\r\n private get _indexSensitive(): boolean {\r\n try { return this.renderFn.length >= 2; } catch { return true; }\r\n }\r\n\r\n private static _isPrimitive(v: any): boolean {\r\n return v === null || typeof v !== 'object';\r\n }\r\n\r\n private _setupBinding() {\r\n const update = () => {\r\n const source = this._toArray(this.itemsFn());\r\n const rawSource = getRaw(source);\r\n const count = source.length;\r\n let items: any[];\r\n if (rawSource === source) {\r\n items = source;\r\n } else {\r\n items = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n if (i in rawSource) items[i] = source[i];\r\n else void source[i];\r\n }\r\n }\r\n const prevItems = this.olditems;\r\n const prevComponents = this._rendered;\r\n if (this.olditems.length > 0) {\r\n const currentRaws = new Set<any>();\r\n for (let i = 0; i < count; i++) currentRaws.add(getRaw(items[i]));\r\n for (const old of this.olditems) {\r\n const raw = getRaw(old);\r\n if (!currentRaws.has(raw)) {\r\n const list = this._identityMap.get(raw);\r\n if (list) {\r\n this._identityMap.delete(raw);\r\n for (const component of list) {\r\n try { component.dispose(); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const newComponents: ComponentBase[] = [];\r\n const usedComponents = new Set<ComponentBase>();\r\n const seenKeys = new Map<any, number>();\r\n\r\n const claimed = new Set<ComponentBase>();\r\n const positionalReuse = new Map<number, ComponentBase>();\r\n const isReusable = (c: ComponentBase | undefined): c is ComponentBase =>\r\n !!c && !c.isDisposed && !claimed.has(c) && !(c as any).__listAdopted;\r\n\r\n const shared = Math.min(items.length, prevItems.length);\r\n for (let i = 0; i < shared; i++) {\r\n const it = items[i];\r\n if (!ListBinding._isPrimitive(it)) continue;\r\n if (!Object.is(prevItems[i], it)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n positionalReuse.set(i, comp);\r\n claimed.add(comp);\r\n }\r\n\r\n let valuePool: Map<any, ComponentBase[]> | null = null;\r\n if (!this._indexSensitive) {\r\n valuePool = new Map<any, ComponentBase[]>();\r\n for (let i = 0; i < prevItems.length; i++) {\r\n const prev = prevItems[i];\r\n if (!ListBinding._isPrimitive(prev)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n const queue = valuePool.get(prev);\r\n if (queue) queue.push(comp); else valuePool.set(prev, [comp]);\r\n }\r\n }\r\n\r\n const occurrences = new Map<object, number>();\r\n items.forEach((item, idx) => {\r\n let component: ComponentBase;\r\n if (typeof item === 'object' && item !== null) {\r\n const raw = getRaw(item);\r\n const occurrence = occurrences.get(raw) ?? 0;\r\n occurrences.set(raw, occurrence + 1);\r\n let list = this._identityMap.get(raw);\r\n if (!list) {\r\n list = [];\r\n this._identityMap.set(raw, list);\r\n }\r\n const existing = list[occurrence];\r\n if (existing && !existing.isDisposed) {\r\n component = existing;\r\n } else {\r\n component = this._render(item, idx);\r\n list[occurrence] = component;\r\n }\r\n }\r\n else {\r\n let reused = positionalReuse.get(idx);\r\n if (!reused && valuePool) {\r\n const queue = valuePool.get(item);\r\n if (queue && queue.length) {\r\n reused = queue.shift()!;\r\n claimed.add(reused);\r\n }\r\n }\r\n if (reused) {\r\n component = reused;\r\n } else {\r\n component = this._render(item, idx);\r\n }\r\n }\r\n const userKey = this._getComponentKey(component);\r\n if (userKey !== undefined && userKey !== null) {\r\n if (seenKeys.has(userKey)) {\r\n reportWarning('MJX202', [userKey, idx]);\r\n } else {\r\n seenKeys.set(userKey, idx);\r\n }\r\n }\r\n\r\n newComponents.push(component);\r\n usedComponents.add(component);\r\n });\r\n\r\n occurrences.forEach((count, raw) => {\r\n const list = this._identityMap.get(raw);\r\n if (list && list.length > count) list.length = count;\r\n });\r\n\r\n this._rendered.forEach(comp => {\r\n if (!usedComponents.has(comp) && !(comp as any).__listAdopted) {\r\n try { comp.dispose(); } catch { }\r\n }\r\n });\r\n\r\n this._syncContainer(newComponents);\r\n\r\n this._rendered = newComponents;\r\n this.olditems = items === source ? source.slice() : items;\r\n return count;\r\n };\r\n this._effectCleanup = effect(() => update());\r\n }\r\n\r\n private _syncContainer(newComponents: ComponentBase[]) {\r\n const controls = this.container.controls;\r\n const items = controls.items;\r\n\r\n if (items.length === 0) {\r\n for (const comp of newComponents) {\r\n try { controls.add(comp); } catch { }\r\n }\r\n return;\r\n }\r\n\r\n if (newComponents.length >= items.length) {\r\n let appendOnly = true;\r\n for (let i = 0; i < items.length; i++) {\r\n if (newComponents[i] !== items[i]) {\r\n appendOnly = false;\r\n break;\r\n }\r\n }\r\n\r\n if (appendOnly && newComponents.length > items.length) {\r\n const existing = new Set(items);\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n if (existing.has(newComponents[i])) {\r\n appendOnly = false;\r\n break;\r\n }\r\n existing.add(newComponents[i]);\r\n }\r\n }\r\n\r\n if (appendOnly) {\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n try { controls.add(newComponents[i]); } catch { }\r\n }\r\n return;\r\n }\r\n }\r\n\r\n const oldIndex = new Map<ComponentBase, number>();\r\n items.forEach((c, i) => oldIndex.set(c, i));\r\n const sources = newComponents.map(c => {\r\n const oi = oldIndex.get(c);\r\n return oi === undefined ? -1 : oi;\r\n });\r\n\r\n const stable = new Set(longestIncreasingIndices(sources));\r\n\r\n let anchor: ComponentBase | null = null;\r\n for (let i = newComponents.length - 1; i >= 0; i--) {\r\n const comp = newComponents[i];\r\n try {\r\n if (sources[i] === -1) {\r\n if (anchor) {\r\n const at = items.indexOf(anchor);\r\n controls.add(at >= 0 ? at : items.length, comp);\r\n } else {\r\n controls.add(comp);\r\n }\r\n } else if (!stable.has(i)) {\r\n controls.move(comp, anchor);\r\n }\r\n } catch { }\r\n anchor = comp;\r\n }\r\n }\r\n}\r\n\r\nfunction longestIncreasingIndices(sources: number[]): number[] {\r\n const predecessors = new Array<number>(sources.length).fill(-1);\r\n const tails: number[] = [];\r\n\r\n for (let i = 0; i < sources.length; i++) {\r\n const v = sources[i];\r\n if (v === -1) continue;\r\n if (tails.length === 0 || sources[tails[tails.length - 1]] < v) {\r\n predecessors[i] = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n tails.push(i);\r\n continue;\r\n } \r\n let lo = 0, hi = tails.length - 1;\r\n while (lo < hi) {\r\n const mid = (lo + hi) >> 1;\r\n if (sources[tails[mid]] < v) lo = mid + 1; else hi = mid;\r\n }\r\n if (v < sources[tails[lo]]) {\r\n predecessors[i] = lo > 0 ? tails[lo - 1] : -1;\r\n tails[lo] = i;\r\n }\r\n }\r\n\r\n const result: number[] = [];\r\n let u = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n while (u !== -1) {\r\n result.push(u);\r\n u = predecessors[u];\r\n }\r\n return result.reverse();\r\n}"," \r\nexport class NameValuePair<KType, VType> {\r\n public Key!: KType;\r\n public value!: VType;\r\n}; ","export class List<T>{\r\n \r\n public ItemAdded!: (i: T) => void;\r\n public ItemAddedBefore!: (i: T) => void;\r\n public ItemSplice!: (start:any, i: T) => void;\r\n private __list: Array<T> = [];\r\n private _map = new Set<T>();\r\n public Dispose() {\r\n this.__list = [];\r\n\r\n }\r\n public Add(item: T): number {\r\n this._map.add(item);\r\n var i = this.__list.push(item) - 1;\r\n if (this.ItemAdded != undefined) { this.ItemAdded(item); };\r\n return i;\r\n }\r\n\r\n public AddBefore(item: T) {\r\n this._map.add(item);\r\n var i = this.__list.unshift(item) - 1;\r\n if (this.ItemAddedBefore != undefined) { this.ItemAddedBefore(item); };\r\n return i;\r\n\r\n }\r\n\r\n public Insert(start:any, item: T) {\r\n this._map.add(item);\r\n var i = this.__list.splice(start, 0, item);\r\n if (this.ItemSplice != undefined) { this.ItemSplice(start, item); };\r\n return i;\r\n }\r\n\r\n public get items(): Array<T> {\r\n return this.__list;\r\n }\r\n\r\n public clear(): T[] {\r\n this._map.clear();\r\n this.__list.splice(0);\r\n this.__list = [];\r\n return this.__list;\r\n };\r\n public get count(): number { \r\n return this.__list.length;\r\n };\r\n\r\n public remove(item: T): T[] {\r\n const index = this.__list.indexOf(item);\r\n if (index === -1) return [];\r\n this._map.delete(item);\r\n return this.__list.splice(index, 1);\r\n };\r\n\r\n public indexOf(item: T): number {\r\n return this.__list.indexOf(item)\r\n }\r\n\r\n public FindFromKey(key: any, value: any): T[] {\r\n return this.__list.filter(i => { return (i as any)[key] === value })\r\n }\r\n\r\n public removeIndex(index: number): T[] {\r\n var deleted = this.__list.splice(index, 1);\r\n deleted.forEach(t => {\r\n this._map.delete(t);\r\n })\r\n return deleted;\r\n };\r\n\r\n public has(item: T): boolean {\r\n return this._map.has(item);\r\n }\r\n\r\n public item(index: number): T {\r\n return this.__list[index];\r\n }\r\n\r\n public forEach(callbackfn: (value: T, index: number, array: T[]) => void) {\r\n\r\n this.__list?.forEach(callbackfn);\r\n }\r\n\r\n public ReverseClone(): Array<T> {\r\n return this.__list.slice().reverse();\r\n }\r\n\r\n public filter(callbackfn: (value: T, index: number, array: T[]) => boolean ): Array<T> {\r\n return this.__list.filter(callbackfn);\r\n }\r\n};","\r\n\r\nimport { NodeTypes } from \".\";\r\nimport { reportError } from \"./diagnostics\";\r\nimport { Component, ComponentBase } from \"../component\";\r\nimport { IDisposable } from \"../disposable\";\r\n\r\nexport const toKebab = (str: string) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? \"-\" : \"\") + $.toLowerCase());\r\n\r\n\r\nexport function toDisposable(fn: () => void): IDisposable {\r\n let pending = true;\r\n return {\r\n dispose() {\r\n if (!pending) {\r\n return;\r\n }\r\n pending = false;\r\n fn();\r\n }\r\n };\r\n}\r\n\r\n\r\n\r\nexport function advanceif(source: ComponentBase, ...targets: NodeTypes[]) {\r\n if (targets.indexOf(source.element.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function advelif(source: any, ...targets: NodeTypes[]) {\r\n if (source && targets.indexOf(source.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isAnchorElement(source: ComponentBase) {\r\n return source.element.nodeName == 'A';\r\n}\r\n\r\nexport function isElement(source: ComponentBase) {\r\n return source.element.nodeType == NodeTypes.ELEMENT_NODE;\r\n}\r\nexport function isview(source: ComponentBase) {\r\n return source.element.nodeName == 'view';\r\n}\r\n\r\n\r\n\r\nexport function isComponent(source: any) {\r\n return source instanceof ComponentBase\r\n}\r\nexport function createComponent(tag: any, options: any) {\r\n return new Component(tag, options)\r\n}\r\n\r\n\r\nexport function normalizePath(p: string): string {\r\n return '/' + p.replace(/^\\/+|\\/+$/g, '');\r\n}\r\nexport function startsWithPath(requestPath: string, prefix: string): boolean {\r\n const rp = normalizePath(requestPath);\r\n const pp = normalizePath(prefix);\r\n return rp === pp || rp.startsWith(pp + '/');\r\n}\r\n\r\nexport function isExactMatch(requestPath: string, target: string): boolean {\r\n try {\r\n const strip = (p: string) => {\r\n return p.trim()\r\n .split(/[?#]/)[0]\r\n .replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n }\r\n return strip(requestPath) === strip(target);\r\n } catch (error) {\r\n reportError('MJX610', error);\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport function findAppendableComponent(component: ComponentBase): ComponentBase | null {\r\n try {\r\n if (component.isDisposed) return null;\r\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\r\n return component;\r\n } else if (component.parent) {\r\n return findAppendableComponent(component.parent);\r\n }\r\n } catch (error) {\r\n throw error;\r\n }\r\n return null;\r\n}","import { reportWarning } from \"./diagnostics\";\n\nexport class LeakMonitor {\n\n private readonly _origins = new Map<string, number>();\n private _quietChecks = 0;\n\n constructor(readonly threshold: number, readonly name: string) { }\n\n check(size: number): (() => void) | undefined {\n if (this.threshold <= 0 || size < this.threshold) {\n return undefined;\n }\n const origin = new Error().stack ?? '';\n this._origins.set(origin, (this._origins.get(origin) ?? 0) + 1);\n\n this._quietChecks--;\n if (this._quietChecks <= 0) {\n this._quietChecks = this.threshold / 2;\n const [stack, count] = this._busiestOrigin();\n reportWarning('MJX507', [this.name, size, count], stack);\n }\n\n return () => {\n this._origins.set(origin, (this._origins.get(origin) ?? 0) - 1);\n };\n }\n\n private _busiestOrigin(): [string, number] {\n let busiest: [string, number] = ['', 0];\n for (const entry of this._origins) {\n if (entry[1] > busiest[1]) {\n busiest = entry;\n }\n }\n return busiest;\n }\n}\n","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 isWritablePathKey(target: object, key: string): boolean {\r\n if (key === '__proto__') return false;\r\n if (key === 'constructor' || key === 'prototype') return Object.prototype.hasOwnProperty.call(target, key);\r\n return true;\r\n}\r\n\r\nexport class BindingCollection implements IBindingCollection {\r\n private _items: IBaseBinding[] = [];\r\n private _component: ComponentBase;\r\n private _branchScope: Array<() => void> | null = null;\r\n\r\n constructor(component: ComponentBase) {\r\n this._component = component;\r\n }\r\n private _own(stop: () => void) {\r\n if (this._branchScope) {\r\n this._branchScope.push(stop);\r\n return;\r\n }\r\n this._component.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n when(computeFn: () => any, renderFn: (isTrue: boolean) => any) {\r\n\r\n var frame = new Frame();\r\n this._component.controls.add(frame);\r\n let shown = false;\r\n let last: any;\r\n const stop = effect(computeFn, (value) => {\r\n if (shown && (Object.is(last, value) || (!last && !value))) return;\r\n shown = true;\r\n last = value;\r\n untracked(() => {\r\n if (value) {\r\n frame.navigate(renderFn(value as any))\r\n } else {\r\n frame.navigate(motifFragment())\r\n }\r\n });\r\n });\r\n this._own(stop);\r\n\r\n return null as any;\r\n\r\n }\r\n\r\n get items(): IBaseBinding[] {\r\n return [...this._items];\r\n }\r\n\r\n text(cb: any) {\r\n this.add(\"textContent\", cb);\r\n };\r\n\r\n\r\n value(fn: () => any) {\r\n this.add(\"value\", fn);\r\n };\r\n\r\n add(propertyName: string, dataSource: any): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n add(binding: IBaseBinding): IBaseBinding;\r\n add(...args: any[]): IBaseBinding {\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object' && 'propertyName' in args[0]) {\r\n\r\n binding = args[0];\r\n } else {\r\n\r\n const [propertyName, dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n\r\n this._items.push(binding);\r\n\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n wait(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n display(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', () => !predicate());\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n html(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'innerHTML', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n method(cb: () => any) {\r\n const host = this._component;\r\n let text: ComponentBase | null = null;\r\n let frame: Frame | null = null;\r\n const place = (next: ComponentBase, previous: ComponentBase | null) => {\r\n if (!previous) {\r\n host.controls.add(next);\r\n return;\r\n }\r\n host.controls.insert(host.controls.items.indexOf(previous), next);\r\n host.controls.remove(previous);\r\n };\r\n const stop = effect(cb, (result) => {\r\n if (host.isDisposed) return;\r\n const isText = typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean' || typeof result === 'bigint';\r\n if (isText || (text && result == null)) {\r\n if (text) {\r\n text.setText(result as any);\r\n return;\r\n }\r\n text = new Component(dom.createTextNode(result as any));\r\n place(text, frame);\r\n frame = null;\r\n return;\r\n }\r\n if (!frame) {\r\n frame = new Frame();\r\n place(frame, text);\r\n text = null;\r\n }\r\n frame.navigate(result == null ? motifFragment() : result as any);\r\n });\r\n host.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n ternary(conditionFn: () => any, trueFn: (frame: Frame) => any, falseFn: (frame: Frame) => any) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n this._ternaryCallTop(\r\n conditionFn,\r\n () => { trueFn(frame); },\r\n () => { falseFn(frame); }\r\n );\r\n return null as any;\r\n }\r\n\r\n private _ternarySchedule(condFn: () => any, onTrue: () => void, onFalse: () => void, defer: (run: () => void) => void) {\r\n let first = true;\r\n let last: any;\r\n let stopped = false;\r\n let inner: Array<() => void> = [];\r\n const stopInner = () => {\r\n const list = inner;\r\n inner = [];\r\n for (const stop of list) {\r\n try { stop(); } catch { }\r\n }\r\n };\r\n const stopEffect = effect(condFn, (condition) => {\r\n if (!first && Object.is(last, condition)) return;\r\n last = condition;\r\n const run = () => {\r\n stopInner();\r\n const outer = this._branchScope;\r\n this._branchScope = inner;\r\n try {\r\n if (condition) { onTrue(); } else { onFalse(); }\r\n } finally {\r\n this._branchScope = outer;\r\n }\r\n };\r\n if (first) {\r\n first = false;\r\n untracked(run);\r\n return;\r\n }\r\n defer(() => { if (!stopped && !this._component.isDisposed) run(); });\r\n });\r\n this._own(() => {\r\n stopped = true;\r\n stopEffect();\r\n stopInner();\r\n });\r\n }\r\n private ternaryCall(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => queueMicrotask(run));\r\n }\r\n private _ternaryCallTop(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => setTimeout(run, 0));\r\n }\r\n\r\n watch(cb: () => any) {\r\n const ef = effect(() => {\r\n cb();\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n }\r\n remove(binding: IBaseBinding): void {\r\n const index = this._items.indexOf(binding);\r\n if (index > -1) {\r\n this._items.splice(index, 1);\r\n binding.deactivate();\r\n }\r\n }\r\n\r\n clear(): void {\r\n this._items.forEach(binding => (binding as Binding).deactivate());\r\n this._items = [];\r\n }\r\n\r\n activateAll(): void {\r\n this._items.forEach(binding => {\r\n binding.activate();\r\n });\r\n }\r\n\r\n model(dataSource: any): IBaseBinding;\r\n model(dataSource: any, dataMember: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n model(getter: () => any, setter: (value: any) => void): IBaseBinding;\r\n model(binding: IBaseBinding): IBaseBinding;\r\n model(...args: any[]): IBaseBinding {\r\n\r\n var tn = '';\r\n if (this._component.element) {\r\n tn = (this._component.element as HTMLElement).tagName;\r\n }\r\n var propertyName = 'value';\r\n switch (tn.toLowerCase()) {\r\n case 'input':\r\n\r\n propertyName = 'model';\r\n break;\r\n case 'select':\r\n propertyName = 'value';\r\n break;\r\n case 'textarea':\r\n propertyName = 'value';\r\n break;\r\n case 'img':\r\n propertyName = 'src';\r\n break;\r\n case 'audio':\r\n propertyName = 'src';\r\n break;\r\n case 'video':\r\n propertyName = 'src';\r\n break;\r\n default:\r\n\r\n }\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object') {\r\n binding = args[0];\r\n } else if (typeof args[0] === 'function' && typeof args[1] === 'function') {\r\n binding = new Binding(this._component, propertyName, args[0]);\r\n binding.setter = args[1];\r\n } else {\r\n const [dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n const lowerTag = tn.toLowerCase();\r\n if (lowerTag === 'input' || lowerTag === 'select' || lowerTag === 'textarea') {\r\n const writeBack = () => {\r\n try {\r\n const el: any = this._component.element;\r\n if (!el) return;\r\n\r\n let value: any = readModelValue(el);\r\n const b: any = binding;\r\n if (typeof b.converterBack === 'function') {\r\n value = b.converterBack(value);\r\n }\r\n if (typeof b.setter === 'function') {\r\n b.setter(value);\r\n return;\r\n }\r\n const member: string | undefined = b.dataMember;\r\n const source = b.dataSource;\r\n if (member && source != null) {\r\n\r\n const path = member.split('.');\r\n let target: any = source;\r\n for (let i = 0; i < path.length && target != null; i++) {\r\n const key = path[i];\r\n if (!isWritablePathKey(target, key)) return;\r\n if (i === path.length - 1) {\r\n target[key] = value;\r\n } else {\r\n target = target[key];\r\n }\r\n }\r\n } else if (source != null && typeof source === 'object' && 'value' in source) {\r\n\r\n source.value = value;\r\n }\r\n } catch { /* ignore */ }\r\n };\r\n\r\n this._component.motif.on('input' as any, writeBack as any);\r\n this._component.motif.on('change' as any, writeBack as any);\r\n }\r\n\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n\r\n deactivateAll(): void {\r\n this._items.forEach(binding => binding.deactivate());\r\n this._items = [];\r\n }\r\n\r\n reActivateAll(): void {\r\n for (const binding of [...this._items]) {\r\n if (typeof binding.reActivate !== 'function') continue;\r\n try {\r\n binding.reActivate();\r\n } catch (error) {\r\n reportError('MJX208', error);\r\n }\r\n }\r\n }\r\n\r\n switchCase(\r\n discriminatorFn: () => any,\r\n cases: Record<string | number, (frame: Frame) => any>,\r\n defaultFn?: (frame: Frame) => any\r\n ) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n var currentValue: any;\r\n var defaultRunned = false;\r\n const ef = effect(discriminatorFn, (value) => {\r\n if (currentValue == value) return;\r\n currentValue = value;\r\n const caseKey = String(value);\r\n if (Object.prototype.hasOwnProperty.call(cases, caseKey)) {\r\n cases[caseKey](frame);\r\n defaultRunned = false;\r\n } else if (defaultFn) {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n defaultFn(frame);\r\n } else {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n frame.navigate(motifFragment());\r\n }\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n\r\n return null as any;\r\n }\r\n}\r\n\r\nlazyBindMethods(BindingCollection.prototype, [\r\n 'add', 'remove', 'clear', 'activateAll', 'deactivateAll', 'reActivateAll',\r\n 'when', 'text', 'value', 'list', 'loop', 'method', 'watch', 'display', 'wait',\r\n 'ternaryCall', '_ternaryCallTop'\r\n]);","import { errorHandler } from \"../common/ErrorHandler\";\nimport { IDisposable } from \"../disposable/IDisposable\";\nimport { DisposableStore } from \"../disposable/DisposableStore\";\nimport { Event } from \"./Event\";\n\ninterface Subscription<T> {\n handler: (value: T) => unknown;\n active: boolean;\n}\n\ninterface Delivery<T> {\n targets: Subscription<T>[];\n value: T;\n next: number;\n}\n\nexport class Emitter<T> {\n\n private _subscriptions: Subscription<T>[] = [];\n private _delivery: Delivery<T> | undefined;\n private _subscribe: Event<T> | undefined;\n private _disposed = false;\n\n get event(): Event<T> {\n if (!this._subscribe) {\n this._subscribe = (listener, thisArgs, disposables) => {\n if (this._disposed) {\n return { dispose() { } };\n }\n const subscription: Subscription<T> = {\n handler: thisArgs ? listener.bind(thisArgs) : listener,\n active: true\n };\n this._writable().push(subscription);\n const handle: IDisposable = { dispose: () => this._unsubscribe(subscription) };\n if (disposables instanceof DisposableStore) {\n disposables.add(handle);\n } else if (Array.isArray(disposables)) {\n disposables.push(handle);\n }\n return handle;\n };\n }\n return this._subscribe;\n }\n\n fire(value: T): void {\n this._resume();\n if (this._subscriptions.length === 0) {\n return;\n }\n this._delivery = { targets: this._subscriptions, value, next: 0 };\n this._resume();\n }\n\n dispose(): void {\n if (this._disposed) {\n return;\n }\n this._disposed = true;\n for (const subscription of this._subscriptions) {\n subscription.active = false;\n }\n this._subscriptions = [];\n this._delivery = undefined;\n }\n\n private _writable(): Subscription<T>[] {\n if (this._delivery && this._delivery.targets === this._subscriptions) {\n this._subscriptions = this._subscriptions.slice();\n }\n return this._subscriptions;\n }\n\n private _unsubscribe(subscription: Subscription<T>): void {\n if (!subscription.active) {\n return;\n }\n subscription.active = false;\n const list = this._writable();\n const index = list.indexOf(subscription);\n if (index !== -1) {\n list.splice(index, 1);\n }\n }\n\n private _resume(): void {\n const delivery = this._delivery;\n if (!delivery) {\n return;\n }\n while (delivery.next < delivery.targets.length) {\n const target = delivery.targets[delivery.next++];\n if (!target.active) {\n continue;\n }\n try {\n target.handler(delivery.value);\n } catch (error) {\n errorHandler.onUnexpectedError(error);\n }\n }\n if (this._delivery === delivery) {\n this._delivery = undefined;\n }\n }\n}\n","import { Emitter, Event as DelegateEvent } from \"../delegate\";\r\nimport { disposableCore, IDisposable } from \"../disposable\";\r\nimport { ComponentBase } from \"../\";\r\nimport { EventArgs } from \"./types\";\r\nimport { callReported } from \"../common/diagnostics\";\r\nimport { lazyBindMethods } from \"../common/lazyBind\";\r\n\r\nexport class ComponentEmiter {\r\n\r\n private _emitters?: Map<string, Emitter<EventArgs>>;\r\n private _sourceDisposables?: Map<string, Set<IDisposable>>;\r\n private _listenerDisposables?: Map<string, Map<Function, IDisposable[]>>;\r\n\r\n constructor(private component: ComponentBase) {\r\n }\r\n\r\n public hasListeners(eventName: string): boolean {\r\n return this._emitters !== undefined && this._emitters.has(eventName);\r\n }\r\n\r\n public fire(eventName: string, args: EventArgs) {\r\n\r\n try {\r\n const e = this._emitters?.get(eventName.toLowerCase());\r\n if (e) {\r\n e.fire(args);\r\n }\r\n } catch { }\r\n }\r\n\r\n public on(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n\r\n try {\r\n this.createEvent(event, cb);\r\n } catch {\r\n }\r\n }\r\n public off(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const lower = String(event).toLowerCase();\r\n const map = this._listenerDisposables?.get(lower);\r\n if (!map) return this;\r\n const list = map.get(cb);\r\n map.delete(cb);\r\n list?.forEach(d => { try { d.dispose(); } catch { } });\r\n return this;\r\n }\r\n private getOrCreateEmitter(name: string): Emitter<EventArgs> {\r\n const emitters = this._emitters ??= new Map();\r\n let e = emitters.get(name);\r\n if (!e) {\r\n e = new Emitter<EventArgs>();\r\n emitters.set(name, e);\r\n }\r\n return e;\r\n }\r\n\r\n private createEvent(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const full = String(event);\r\n const lowerFull = full.toLowerCase();\r\n const hook = lowerFull.startsWith('on') ? 'x:' + lowerFull.slice(2) : lowerFull;\r\n const invoke = (e: EventArgs) => {\r\n let res: any;\r\n callReported(() => {\r\n res = (cb as any).length <= 1 ? (cb as any)(e as any) : cb(this.component, e as any);\r\n return res;\r\n }, 'MJX122', hook);\r\n return res;\r\n };\r\n\r\n const emitter = this.getOrCreateEmitter(lowerFull);\r\n const disp = emitter.event((e) => invoke(e));\r\n\r\n const listeners = this._listenerDisposables ??= new Map();\r\n let map = listeners.get(lowerFull);\r\n if (!map) { map = new Map(); listeners.set(lowerFull, map); }\r\n const list = map.get(cb);\r\n if (list) { list.push(disp); } else { map.set(cb, [disp]); }\r\n return this;\r\n }\r\n\r\n public addSource(event: string, source: Emitter<EventArgs> | DelegateEvent<EventArgs>) {\r\n const lower = String(event).toLowerCase();\r\n const target = this.getOrCreateEmitter(lower);\r\n const forward = (ev: DelegateEvent<EventArgs>) => ev(e => target.fire(e));\r\n let disp: IDisposable | undefined;\r\n try {\r\n if (source instanceof Emitter) {\r\n disp = forward(source.event);\r\n } else {\r\n disp = forward(source);\r\n }\r\n } catch { }\r\n if (disp) {\r\n const sources = this._sourceDisposables ??= new Map();\r\n let set = sources.get(lower);\r\n if (!set) { set = new Set(); sources.set(lower, set); }\r\n set.add(disp);\r\n this.component.motif.register(disposableCore.toDisposable(() => {\r\n try { disp?.dispose(); } catch { }\r\n try { set?.delete(disp!); } catch { }\r\n }));\r\n }\r\n return this;\r\n }\r\n\r\n public clear(event?: string) {\r\n if (event) {\r\n const lower = event.toLowerCase();\r\n const srcs = this._sourceDisposables?.get(lower);\r\n srcs?.forEach(d => { try { d.dispose(); } catch { } });\r\n this._sourceDisposables?.delete(lower);\r\n const agg = this._emitters?.get(lower);\r\n try { agg?.dispose(); } catch { }\r\n this._emitters?.delete(lower);\r\n this._listenerDisposables?.delete(lower);\r\n } else if (this._emitters) {\r\n for (const key of Array.from(this._emitters.keys())) { this.clear(key); }\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nlazyBindMethods(ComponentEmiter.prototype, ['fire', 'on', 'off', 'createEvent', 'getOrCreateEmitter', 'addSource', 'clear']);","import { IAttribute } from \"../\";\r\nimport { ComponentBase } from \"../\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { Binding, IBaseBinding } from \"../bindings\";\r\nimport { isComponentLike } from \"./componentBase\";\r\n\r\nexport type ElementTypes = Node | Element | HTMLElement | Text | DocumentFragment | Comment | HTMLDivElement;\r\n\r\nconst METHOD_ATTRS = new Set<string>([\r\n 'focus', 'blur', 'click', 'pause', 'submit', 'reset',\r\n 'scrollTo', 'scrollBy', 'select', 'scrollIntoView',\r\n 'requestFullscreen', 'exitFullscreen',\r\n 'requestPointerLock', 'exitPointerLock',\r\n 'play', 'requestPictureInPicture', 'exitPictureInPicture',\r\n 'show', 'showModal', 'close', 'showPopover', 'hidePopover', 'togglePopover',\r\n 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load',\r\n 'setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek'\r\n]);\r\n\r\nconst OPEN_METHODS: Record<string, string> = { show: 'close', showModal: 'close', showPopover: 'hidePopover' };\r\nconst WHEN_TRUTHY_METHODS = new Set<string>(['close', 'hidePopover', 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load']);\r\nconst ARGUMENT_METHODS = new Set<string>(['setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek']);\r\n\r\nconst PROPERTY_FIRST = new Set<string>(['checked', 'selected', 'muted', 'indeterminate', 'srcObject']);\r\n\r\nexport class controlAttribute<ElementType extends ElementTypes> implements IAttribute<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase<ElementType, any>;\r\n private _attrMapStore?: Map<string | symbol, any>;\r\n private _watchersStore?: Map<string | symbol, { stop: () => void, binding?: IBaseBinding }>;\r\n constructor(parent: ComponentBase<ElementType, any>) {\r\n this._parent = parent;\r\n }\r\n private get _attrMap(): Map<string | symbol, any> { return this._attrMapStore ??= new Map(); }\r\n private get _watchers(): Map<string | symbol, { stop: () => void, binding?: IBaseBinding }> { return this._watchersStore ??= new Map(); }\r\n\r\n /** @deprecated Tek kaynak `_attrMap`; geriye dönük okuma için türetilmiş görünüm. */\r\n get attributes(): { name: string, value: any }[] {\r\n return Array.from(this._attrMap.entries(), ([name, value]) => ({ name: String(name), value }));\r\n }\r\n add(attribute: object | string): ComponentBase<ElementType, any> {\r\n if (attribute !== null && typeof attribute === 'object' && !Array.isArray(attribute)) {\r\n const bag = attribute as Record<string | symbol, any>;\r\n Reflect.ownKeys(bag).forEach(key => {\r\n this.parse(bag[key], key);\r\n });\r\n }\r\n return this._parent;\r\n\r\n };\r\n remove(key: string): ComponentBase<ElementType, any> {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n this._attrMap.delete(key);\r\n const el = this._getElement();\r\n if (el) {\r\n try { el.removeAttribute(key); } catch { }\r\n }\r\n return this._parent;\r\n };\r\n has(key: string): boolean {\r\n\r\n if (this._parent.element instanceof HTMLElement ||\r\n this._parent.element instanceof Element) {\r\n return this._parent.element.hasAttribute(key)\r\n }\r\n return false;\r\n };\r\n get(key: string): string | null {\r\n const el = this._getElement();\r\n if (el) {\r\n const v = el.getAttribute(key);\r\n if (v != null) return v;\r\n }\r\n const val = this._attrMap.get(key);\r\n return val == null ? null : String(val);\r\n };\r\n\r\n parse(values: any, key: any) {\r\n\r\n if (typeof values === 'function') {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n const run = () => effect(() => {\r\n const v = values();\r\n this._applyValue(key, v);\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__attr:${String(key)}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate() { stop(); },\r\n reActivate() {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n this._watchers.set(key, { stop, binding });\r\n } else {\r\n this._applyValue(key, values);\r\n }\r\n }\r\n\r\n private _applyValue(key: string | symbol, raw: any) {\r\n if (!key) return;\r\n const el = this._getElement();\r\n\r\n try {\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n }\r\n }\r\n } catch {\r\n }\r\n\r\n if (el && typeof key === 'string' && METHOD_ATTRS.has(key)) {\r\n const k = key as string;\r\n const method = (el as any)[k];\r\n if (typeof method === 'function') {\r\n const invoke = (fn: Function, arg?: any) => {\r\n try {\r\n if (Array.isArray(arg)) {\r\n fn.apply(el, arg);\r\n } else if (arg === undefined) {\r\n fn.call(el);\r\n } else {\r\n fn.call(el, arg);\r\n }\r\n } catch { }\r\n };\r\n const schedule = (fn: () => void) => { try { queueMicrotask(fn); } catch { try { setTimeout(fn, 0); } catch { } } };\r\n const cacheValue = () => {\r\n this._attrMap.set(key, raw);\r\n };\r\n\r\n if (k === 'focus') {\r\n const action = () => {\r\n if (raw === false) {\r\n const blur = (el as any).blur; if (typeof blur === 'function') invoke(blur);\r\n } else if (raw === true) {\r\n invoke(method);\r\n } else if (typeof raw === 'object' && raw != null && raw !== true) {\r\n invoke(method, raw);\r\n } else if (Array.isArray(raw)) {\r\n invoke(method, raw);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'blur' || k === 'click' || k === 'pause' || k === 'submit' || k === 'reset') {\r\n const action = () => { if (raw) invoke(method); };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'scrollTo' || k === 'scrollBy') {\r\n const action = () => {\r\n if (Array.isArray(raw) || (raw && typeof raw === 'object')) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'select') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n const inp: any = el as any;\r\n if (typeof inp.setSelectionRange === 'function') {\r\n try { inp.setSelectionRange(0, 0); } catch { }\r\n }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'scrollIntoView') {\r\n const action = () => {\r\n if (raw === true || raw == null) {\r\n invoke(method);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'requestFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n\r\n try {\r\n const d: any = document;\r\n if (d && d.fullscreenElement === el && typeof d.exitFullscreen === 'function') {\r\n d.exitFullscreen();\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitFullscreen === 'function') d.exitFullscreen();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'play') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n } else {\r\n const pause = (el as any).pause; if (typeof pause === 'function') invoke(pause);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'exitPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document as any;\r\n if (d && typeof d.exitPictureInPicture === 'function') {\r\n const p = d.exitPictureInPicture(); if (p && typeof p.then === 'function') p.catch(() => { });\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k in OPEN_METHODS) {\r\n const action = () => {\r\n if (raw === false) {\r\n const other = (el as any)[OPEN_METHODS[k]]; if (typeof other === 'function') invoke(other);\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'togglePopover') {\r\n const action = () => {\r\n if (typeof raw === 'boolean') {\r\n try { method.call(el, raw); } catch { }\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (WHEN_TRUTHY_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw === true) {\r\n invoke(method);\r\n } else if (raw) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (ARGUMENT_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw !== undefined && raw !== null && raw !== false) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n cacheValue();\r\n return;\r\n }\r\n }\r\n\r\n if (typeof key === 'string' && PROPERTY_FIRST.has(key)) {\r\n const target = (this._parent.element as any) ?? el;\r\n if (target) {\r\n try {\r\n if (key === 'srcObject') {\r\n target.srcObject = raw ?? null;\r\n } else {\r\n target[key] = !!raw;\r\n }\r\n } catch { }\r\n }\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n } else {\r\n this._attrMap.set(key, raw);\r\n }\r\n return;\r\n }\r\n\r\n if (typeof raw === 'boolean' && typeof key === 'string' && (key.startsWith('aria-') || key.startsWith('data-'))) {\r\n if (el) { try { (el as Element).setAttribute(key, String(raw)); } catch { } }\r\n this._attrMap.set(key, raw);\r\n return;\r\n }\r\n\r\n const isUnset = raw === undefined || raw === null || raw === false;\r\n const isBool = typeof raw === 'boolean';\r\n\r\n if (isUnset) {\r\n if (el) { try { (el as Element).removeAttribute(String(key)); } catch { } }\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n\r\n if (key === 'value') {\r\n try {\r\n const input = (this._parent.element as any) as HTMLInputElement;\r\n const next = String(raw);\r\n if (input.value !== next) { input.value = next; }\r\n } catch { }\r\n } else if (key === 'textContent' || key === 'innerText' || key === 'innerHTML') {\r\n if (isComponentLike(raw)) { this._parent.setText(raw as any); return; }\r\n try { (this._parent.element as any)[key as any] = raw; } catch { }\r\n } else {\r\n if (el) {\r\n try {\r\n if (isBool && raw === true) {\r\n (el as Element).setAttribute(String(key), '');\r\n } else {\r\n (el as Element).setAttribute(String(key), raw);\r\n }\r\n } catch { }\r\n }\r\n }\r\n\r\n this._attrMap.set(key, raw);\r\n }\r\n\r\n private _getElement(): Element | null {\r\n const el = this._parent?.element as unknown;\r\n if (el instanceof HTMLElement || el instanceof Element) return el as Element;\r\n return null;\r\n }\r\n\r\n public hasMethodState(key: string): boolean {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n return !!this.getMethodState(key);\r\n }\r\n\r\n public getMethodState(key: string): any {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n const k = String(key);\r\n switch (k) {\r\n case 'focus':\r\n case 'blur':\r\n try { return (document && (document as any).activeElement) === el; } catch { return false; }\r\n case 'select': {\r\n const inp: any = el as any;\r\n if (typeof inp.selectionStart === 'number' && typeof inp.selectionEnd === 'number') {\r\n try { return (inp.selectionEnd - inp.selectionStart) > 0; } catch { return false; }\r\n }\r\n return false;\r\n }\r\n case 'scrollIntoView':\r\n return false;\r\n case 'click':\r\n return false;\r\n default:\r\n return false;\r\n }\r\n }\r\n}","import { IClass } from \"../\";\r\nimport { ComponentBase } from \"./\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { IBaseBinding } from \"../bindings\";\r\n\r\n\r\n\r\nexport class controlClass<ElementType extends Element | HTMLElement | Text | DocumentFragment | Comment> implements IClass<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase;\r\n constructor(parent: ComponentBase) {\r\n this._parent = parent;\r\n }\r\n private _countsStore?: Map<string, number>;\r\n private _staticSetStore?: Set<string>;\r\n private _watchersStore?: Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }>;\r\n private _watcherSeq = 0;\r\n private get _counts(): Map<string, number> { return this._countsStore ??= new Map(); }\r\n private get _staticSet(): Set<string> { return this._staticSetStore ??= new Set(); }\r\n private get _watchers(): Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }> { return this._watchersStore ??= new Map(); }\r\n\r\n add(...values: (string | any[] | {} | Function)[]): ComponentBase {\r\n for (const value of values) {\r\n if (typeof value === 'function') {\r\n this._addReactive(value);\r\n } else if (Array.isArray(value)) {\r\n this._addStaticFromArray(value);\r\n } else if (value && typeof value === 'object') {\r\n this._addStaticFromObject(value as Record<string, any>);\r\n } else {\r\n var valueStr = String(value ?? '').trim();\r\n if (valueStr.split(' ').length > 1) {\r\n this._addStaticFromArray(valueStr.split(' '));\r\n } else {\r\n this._addStaticFromString(valueStr);\r\n }\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n remove(classNames: string | string[]): ComponentBase {\r\n const el = this._getElement();\r\n if (Array.isArray(classNames)) {\r\n const prev = new Set(this._staticSet);\r\n for (const cn of classNames) {\r\n for (const cls of this._splitClasses(String(cn))) {\r\n this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n } else {\r\n if (classNames === '**') {\r\n for (const [id, w] of Array.from(this._watchers.entries())) {\r\n const prev = new Set(w.set);\r\n this._applySourceDiff(id, prev, new Set(), el);\r\n try { w.binding && this._parent.bindings.remove(w.binding); } catch { }\r\n try { w.stop(); } catch { }\r\n this._watchers.delete(id);\r\n }\r\n const prev = new Set(this._staticSet);\r\n this._staticSet.clear();\r\n this._applySourceDiff('static', prev, new Set(), el);\r\n if (el) {\r\n try { el.removeAttribute('class'); } catch { /* ignore */ }\r\n }\r\n this._counts.clear();\r\n } else {\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(String(classNames))) {\r\n this._staticSet.delete(cls);\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n has(className: string): boolean {\r\n const el = this._getElement();\r\n const name = String(className ?? '').trim();\r\n if (!name) return false;\r\n return !!(el && el.classList.contains(name));\r\n }\r\n\r\n private _getElement(): (Element & { classList: DOMTokenList, className: string }) | null {\r\n const el: unknown = this._parent?.element;\r\n if (el instanceof Element) return el as any;\r\n return null;\r\n }\r\n\r\n private _splitClasses(input: string): string[] {\r\n return (input || '')\r\n .split(/\\s+/)\r\n .map(s => s.trim())\r\n .filter(s => s.length > 0);\r\n }\r\n\r\n private _normalizeToSet(values: any, key?: any): Set<string> {\r\n const result = new Set<string>();\r\n if (values == null) return result;\r\n if (typeof values === 'string') {\r\n for (const cls of this._splitClasses(values)) result.add(cls);\r\n } else if (Array.isArray(values)) {\r\n for (const item of values) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) result.add(cls);\r\n } else if (Array.isArray(item)) {\r\n for (const cls of this._normalizeToSet(item)) result.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof item === 'boolean') {\r\n if (key && item) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'object') {\r\n const obj = values as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'boolean') {\r\n if (key && values) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(values))) result.add(cls);\r\n }\r\n return result;\r\n }\r\n\r\n private _applySourceDiff(sourceId: string, prev: Set<string>, next: Set<string>, el: Element | null) {\r\n\r\n for (const cls of prev) {\r\n if (!next.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount - 1;\r\n if (now <= 0) {\r\n this._counts.delete(cls);\r\n if (el) { try { (el as any).classList.remove(cls); } catch { } }\r\n } else {\r\n this._counts.set(cls, now);\r\n }\r\n }\r\n }\r\n for (const cls of next) {\r\n if (!prev.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount + 1;\r\n this._counts.set(cls, now);\r\n if (prevCount === 0 && el) {\r\n try { (el as any).classList.add(cls); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _addStaticFromString(s: string) {\r\n if (!s) return;\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(s)) this._staticSet.add(cls);\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromArray(arr: any[]) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const item of arr) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) this._staticSet.add(cls);\r\n } else if (Array.isArray(item)) {\r\n const set = this._normalizeToSet(item);\r\n for (const cls of set) this._staticSet.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (typeof v === 'function') {\r\n const keys = this._splitClasses(String(k));\r\n for (const cls of keys) this._addReactive(obj[k], cls);\r\n } else {\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n\r\n }\r\n } else if (typeof item === 'boolean') {\r\n continue;\r\n } else if (typeof item === \"function\") {\r\n this._addReactive(item);\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) this._staticSet.add(cls);\r\n }\r\n }\r\n\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromObject(obj: Record<string, any>) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addReactive(fn: Function, key?: any) {\r\n const id = `fx#${++this._watcherSeq}`;\r\n const rec = { stop: () => { }, binding: undefined as undefined | IBaseBinding, set: new Set<string>() };\r\n const el = this._getElement();\r\n const run = () => effect(() => {\r\n let next: Set<string>;\r\n try {\r\n const v = fn();\r\n next = this._normalizeToSet(v, key);\r\n } catch {\r\n next = new Set();\r\n }\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, next, el);\r\n rec.set = next;\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__class:${id}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate: () => {\r\n stop();\r\n const el2 = this._getElement();\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, new Set(), el2);\r\n rec.set.clear();\r\n },\r\n reActivate: () => {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n rec.stop = stop;\r\n rec.binding = binding;\r\n this._watchers.set(id, rec);\r\n }\r\n}","import { CSSTransitionInfo, TransitionProps } from \"../common/transition\";\r\nimport { TransitionMode } from \"../common/transitionRegistry\";\r\n\r\nexport interface IHtmlElement extends HTMLElement { }\r\nexport interface IElement extends Node { }\r\nexport type ElementType = IElement | IHtmlElement | DocumentFragment | Comment | Text;\r\nexport type CustomParameters<T extends any> = T extends (...args: infer P) => any ? P[0] : never;\r\n\r\n\r\nexport type IsOptional<T> = T extends {} ? { [K in keyof T]-?: {} extends Pick<T, K> ? true : false }[keyof T] : false;\r\n\r\nexport type OptionalParams<T> = T extends null ? { params?: undefined } : T extends undefined ? { params?: undefined } : IsOptional<T> extends true ? T : T;\r\n\r\n\r\nexport interface EventArgs {\r\n cancel: boolean;\r\n}\r\n\r\nexport type RouterClassingSettings = {\r\n to: 'all' | 'active' | 'exact' | 'none',\r\n path: string,\r\n activeClass?: string,\r\n exactClass?: string,\r\n onActive?: () => void,\r\n offActive?: () => void,\r\n onExact?: () => void,\r\n offExact?: () => void,\r\n}\r\n\r\nexport interface ComponentBaseOptions<TProps> {\r\n props?: TProps;\r\n [key: string]: any;\r\n cache?: DocumentFragment;\r\n closeFragment?: Comment;\r\n transition: {\r\n transitionInfo: () => {\r\n in: CSSTransitionInfo,\r\n out: CSSTransitionInfo\r\n },\r\n name: string,\r\n mode?: TransitionMode,\r\n classes?: TransitionProps,\r\n activeCssCancel: (() => void) | null,\r\n activeCssPhase: 'enter' | 'leave' | null,\r\n cssProps: () => TransitionProps | null,\r\n skipNextLeave: boolean\r\n _suppressEnter: boolean\r\n _markedDirection: boolean\r\n in: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n out: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n enterTransition: (resolve: () => void) => Animation,\r\n leaveTransition: (resolve: () => void) => Animation,\r\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear?: boolean) => Animation,\r\n activeAnimations: Animation[],\r\n run: (keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions, resolve?: () => void) => Animation\r\n },\r\n set enableRouterClassing(value: RouterClassingSettings);\r\n getInstance(): any;\r\n hasEvent: (name: string) => boolean;\r\n}\r\n\r\n\r\nexport const shimAnimation: any = {\r\n cancel() { },\r\n addEventListener() { },\r\n removeEventListener() { },\r\n oncancel: null,\r\n playState: 'finished'\r\n};\r\n\r\n\r\nexport type AnyEvents = {\r\n [key: string]: any\r\n}\r\n\r\nexport type HtmlElementEvents = {\r\n [K in keyof IHtmlElement as K extends `on${string}` ?\r\n | Uncapitalize<K extends `on${infer EventName}` ? EventName : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture:self` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:self` : never>\r\n : 'x:building' | 'x:built' | 'x:initializing' | 'x:initialized' | 'x:disposing' | 'x:disposed' | 'x:config' | 'x:configured' | 'x:visibilityChanged' | 'x:mounted']\r\n : CustomParameters<IHtmlElement[K]> extends Event ? CustomParameters<IHtmlElement[K]> : EventArgs;\r\n\r\n} & AnyEvents;\r","\r\nimport { dom } from \"../\";\r\n\r\ntype TransitionKind = 'transition' | 'animation'\r\n\r\nexport interface CSSTransitionInfo {\r\n type: TransitionKind | null\r\n timeout: number\r\n propCount: number\r\n hasTransform: boolean\r\n}\r\n\r\nexport interface TransitionProps {\r\n name?: string\r\n type?: TransitionKind\r\n css?: boolean\r\n duration?: number | { enter: number; leave: number }\r\n enterFromClass?: string\r\n enterActiveClass?: string\r\n enterToClass?: string\r\n appearFromClass?: string\r\n appearActiveClass?: string\r\n appearToClass?: string\r\n leaveFromClass?: string\r\n leaveActiveClass?: string\r\n leaveToClass?: string\r\n}\r\n\r\n\r\ninterface TimingSample {\r\n kind: TransitionKind\r\n longest: number\r\n tracks: number\r\n}\r\n\r\nfunction cssTimeToMs(text: string): number {\r\n const amount = text.substring(0, Math.max(0, text.length - 1)).replace(',', '.');\r\n return 1000 * Number(amount);\r\n}\r\n\r\nfunction sampleTiming(styles: any, kind: TransitionKind): TimingSample {\r\n const listOf = (aspect: 'delay' | 'duration'): string[] => {\r\n const declared: string = styles[`${kind}-${aspect}`] || '';\r\n return declared.split(', ');\r\n };\r\n const delays = listOf('delay');\r\n const durations = listOf('duration');\r\n let longest = -Infinity;\r\n for (let track = 0; track < durations.length; track++) {\r\n const total = cssTimeToMs(durations[track]) + cssTimeToMs(delays[track % delays.length]);\r\n longest = Math.max(longest, total);\r\n }\r\n return { kind, longest, tracks: durations.length };\r\n}\r\n\r\nconst transformTrack = /(?:^|\\W)(?:transform|all)(?:,|$)/;\r\n\r\nfunction computeTransitionInfo(styles: any, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (!styles) {\r\n return { type: 'animation', timeout: 0, propCount: 0, hasTransform: false };\r\n }\r\n\r\n const samples: Record<TransitionKind, TimingSample> = {\r\n transition: sampleTiming(styles, 'transition'),\r\n animation: sampleTiming(styles, 'animation'),\r\n };\r\n\r\n let winner: TimingSample | null;\r\n let timeout: number;\r\n if (Type === 'transition' || Type === 'animation') {\r\n const forced = samples[Type];\r\n winner = forced.longest > 0 ? forced : null;\r\n timeout = winner ? winner.longest : 0;\r\n } else {\r\n const { transition, animation } = samples;\r\n timeout = Math.max(transition.longest, animation.longest);\r\n winner = !(timeout > 0) ? null : transition.longest > animation.longest ? transition : animation;\r\n }\r\n\r\n const type = winner ? winner.kind : null;\r\n return {\r\n type,\r\n timeout,\r\n propCount: winner ? winner.tracks : 0,\r\n hasTransform: type === 'transition' && transformTrack.test(styles.transitionProperty),\r\n };\r\n}\r\n\r\nexport function getTransitionInfo(el: Element, name: string, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (el.isConnected && el.nodeType !== 8) {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n }\r\n const fxElement = dom.createElement('div');\r\n fxElement.setAttribute('style', 'width:0!important;height:0!important;display:none');\r\n dom.body.appendChild(fxElement);\r\n fxElement.setAttribute('class', name);\r\n try {\r\n return computeTransitionInfo(dom.window.getComputedStyle(fxElement), Type);\r\n } finally {\r\n fxElement.remove();\r\n }\r\n}\r\n\r\n\r\nexport function getTransitionInfoFromElement(el: Element, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n}\r\n\r\nexport type TransitionPhase = 'enter' | 'leave';\r\n\r\nexport function resolveTransitionClasses(props: TransitionProps, phase: TransitionPhase, appear: boolean = false): { from: string, active: string, to: string } {\r\n const name = props.name || 'motif';\r\n if (phase === 'enter') {\r\n const enter = {\r\n from: props.enterFromClass ?? `${name}-enter-from`,\r\n active: props.enterActiveClass ?? `${name}-enter-active`,\r\n to: props.enterToClass ?? `${name}-enter-to`,\r\n };\r\n if (!appear) return enter;\r\n return {\r\n from: props.appearFromClass ?? enter.from,\r\n active: props.appearActiveClass ?? enter.active,\r\n to: props.appearToClass ?? enter.to,\r\n };\r\n }\r\n return {\r\n from: props.leaveFromClass ?? `${name}-leave-from`,\r\n active: props.leaveActiveClass ?? `${name}-leave-active`,\r\n to: props.leaveToClass ?? `${name}-leave-to`,\r\n };\r\n}\r\n\r\nexport function runCssTransition(el: Element, props: TransitionProps, phase: TransitionPhase, done: () => void, appear: boolean = false): () => void {\r\n if (props.css === false) {\r\n done();\r\n return () => { };\r\n }\r\n const classes = resolveTransitionClasses(props, phase, appear);\r\n const addC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.add(x); } catch { } }); };\r\n const removeC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.remove(x); } catch { } }); };\r\n\r\n let finished = false;\r\n let guardTimer: any = undefined;\r\n let endEvent: string | null = null;\r\n let endHandler: ((e: any) => void) | null = null;\r\n\r\n const cleanup = () => {\r\n removeC(classes.from);\r\n removeC(classes.to);\r\n removeC(classes.active);\r\n if (guardTimer !== undefined) { try { clearTimeout(guardTimer); } catch { } guardTimer = undefined; }\r\n if (endEvent && endHandler) { try { el.removeEventListener(endEvent, endHandler); } catch { } endHandler = null; }\r\n };\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n cleanup();\r\n try { done(); } catch { }\r\n };\r\n\r\n addC(classes.from);\r\n addC(classes.active);\r\n try { void (el as HTMLElement).offsetHeight; } catch { }\r\n\r\n const nextFrame = (cb: () => void) => {\r\n const raf = (globalThis as any).requestAnimationFrame;\r\n if (typeof raf === 'function') { raf(() => cb()); } else { setTimeout(cb, 16); }\r\n };\r\n\r\n nextFrame(() => {\r\n if (finished) return;\r\n removeC(classes.from);\r\n addC(classes.to);\r\n\r\n let timeout = 0;\r\n let expectedEnds = 1;\r\n const dur = props.duration;\r\n if (typeof dur === 'number') {\r\n timeout = dur;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else if (dur && typeof dur === 'object') {\r\n timeout = (phase === 'enter' ? dur.enter : dur.leave) ?? 0;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else {\r\n const info = getTransitionInfoFromElement(el, props.type);\r\n timeout = info.timeout;\r\n expectedEnds = info.propCount || 1;\r\n endEvent = info.type === 'animation' ? 'animationend' : 'transitionend';\r\n }\r\n\r\n if (!timeout || timeout <= 0) {\r\n finish();\r\n return;\r\n }\r\n\r\n let ended = 0;\r\n endHandler = (e: any) => {\r\n if (e && e.target !== el) return;\r\n if (++ended >= expectedEnds) finish();\r\n };\r\n try { el.addEventListener(endEvent, endHandler); } catch { }\r\n guardTimer = setTimeout(finish, timeout + 60);\r\n });\r\n\r\n return finish;\r\n}\r","import type { ComponentBase } from \"./componentBase\";\nimport { disposableCore, IDisposable } from \"..\";\nimport type { ComponentBaseOptions, EventArgs, HtmlElementEvents } from \"./types\";\n\nexport class ComponentMotif<TSelf extends ComponentBase = ComponentBase, TProps extends object = any> {\n\n private readonly _component: TSelf;\n public options: ComponentBaseOptions<TProps> & { hideStrategy?: 'placeholder' | 'detach' | 'auto', __fromList?: boolean, __key?: any, placeholder?: Comment };\n\n constructor(component: TSelf, options: ComponentMotif<TSelf, TProps>['options']) {\n this._component = component;\n this.options = options;\n }\n\n public show(): Promise<any> {\n return this._component['_show']();\n }\n\n public hide(): Promise<any> {\n return this._component['_hide']();\n }\n\n public toggle(): void {\n this._component['_toggle']();\n }\n\n public on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<TSelf> {\n return this._component['_on'](event, cb as any, domEvent);\n }\n\n public off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any): Promise<TSelf> {\n return this._component['_off'](event, cb as any);\n }\n\n public trigger(event: any, ev: any): Promise<TSelf> {\n return this._component['_trigger'](event, ev);\n }\n\n public addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void): void {\n this._component['_addHandler'](event, handler);\n }\n\n public clear(): Promise<any> {\n return this._component['_clear']();\n }\n\n public register(c: IDisposable): void {\n this._component['_register'](c);\n }\n\n public setDisposable(c: () => void): void {\n this._component['_register'](disposableCore.toDisposable(c));\n }\n\n public stopAnimations(): Promise<void> {\n return this._component['_stopAnimations']();\n }\n}\n","import { track, trigger, effect, createScheduledEffect, untracked, ScheduledEffect } from \"../\";\r\nimport { pauseTracking, resetTracking } from \"./common\";\r\nconst SIGNAL_TARGET = Symbol('SignalTarget');\r\nconst SIGNAL_KEY = Symbol('SignalKey');\r\n\r\nexport class Signal<T> {\r\n private _value: T;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _equals: (a: T, b: T) => boolean;\r\n private _disposed = false;\r\n\r\n public static create<U>(initialValue: U, equals?: (a: U, b: U) => boolean): Signal<U> {\r\n return new Signal<U>(initialValue, equals);\r\n }\r\n\r\n constructor(initialValue: T, equals: (a: T, b: T) => boolean = Object.is) {\r\n this._value = initialValue;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n this._equals = equals;\r\n }\r\n\r\n get value(): T {\r\n if (!this._disposed) {\r\n track(this._target, this._key);\r\n }\r\n return this._value;\r\n }\r\n\r\n set value(newValue: T) {\r\n if (this._disposed) return;\r\n if (!this._equals(this._value as any, newValue as any)) {\r\n this._value = newValue;\r\n trigger(this._target, this._key);\r\n }\r\n }\r\n\r\n peek(): T {\r\n return this._value;\r\n }\r\n\r\n update(updater: (prev: T) => T): void {\r\n this.value = (updater(this._value));\r\n }\r\n\r\n mutate(mutator: (draft: T) => void): void {\r\n if (this._disposed) return;\r\n mutator(this._value);\r\n trigger(this._target, this._key);\r\n }\r\n\r\n notify(): void {\r\n if (this._disposed) return;\r\n trigger(this._target, this._key);\r\n }\r\n\r\n asReadonly(): ReadonlySignal<T> {\r\n const self = this;\r\n return {\r\n get value() { return self.value; },\r\n peek() { return self.peek(); },\r\n valueOf() { return self.valueOf(); },\r\n toString() { return self.toString(); }\r\n };\r\n }\r\n \r\n dispose(): void {\r\n this._disposed = true;\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\r\nexport interface ReadonlySignal<T> {\r\n readonly value: T;\r\n peek(): T;\r\n valueOf(): T;\r\n toString(): string;\r\n}\r\n\r\n\r\nexport class Computed<T> {\r\n private _value!: T;\r\n private _dirty: boolean = true;\r\n private _computing: boolean = false;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _getter: () => T;\r\n private _cleanup?: () => void;\r\n\r\n constructor(getter: () => T) {\r\n this._getter = getter;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n\r\n this._cleanup = effect(() => {\r\n if (this._computing) return; \r\n this._computing = true;\r\n try {\r\n const newVal = this._getter();\r\n const changed = this._dirty || !Object.is(this._value, newVal);\r\n this._value = newVal;\r\n this._dirty = false;\r\n if (changed) {\r\n trigger(this._target, this._key);\r\n }\r\n } finally {\r\n this._computing = false;\r\n }\r\n });\r\n }\r\n\r\n get value(): T {\r\n track(this._target, this._key);\r\n\r\n if (this._dirty) { \r\n this._computing = true;\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n this._computing = false;\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n peek(): T {\r\n if (this._dirty) {\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n dispose(): void {\r\n if (this._cleanup) {\r\n this._cleanup();\r\n this._cleanup = undefined;\r\n }\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\n\nexport class LazyComputed<T> {\n private _value!: T;\n private _dirty: boolean = true;\n private _disposed: boolean = false;\n private readonly _target: object;\n private readonly _key: symbol;\n private readonly _getter: () => T;\n private readonly _runner: ScheduledEffect;\n\n constructor(getter: () => T) {\n this._getter = getter;\n this._target = { [SIGNAL_TARGET]: true };\n this._key = SIGNAL_KEY;\n this._runner = createScheduledEffect(\n () => { this._value = this._getter(); },\n () => {\n if (this._dirty || this._disposed) return;\n this._dirty = true;\n trigger(this._target, this._key);\n }\n );\n }\n\n get value(): T {\n if (!this._disposed) {\n track(this._target, this._key);\n }\n this._refresh();\n return this._value;\n }\n\n peek(): T {\n this._refresh();\n return this._value;\n }\n\n get isDirty(): boolean {\n return this._dirty;\n }\n\n private _refresh(): void {\n if (!this._dirty) return;\n if (this._disposed) {\n this._value = untracked(this._getter);\n } else {\n this._runner.run();\n }\n this._dirty = false;\n }\n\n dispose(): void {\n if (this._disposed) return;\n this._disposed = true;\n this._runner.stop();\n }\n\n valueOf(): T {\n return this.value;\n }\n\n toString(): string {\n return String(this.value);\n }\n}\n","import { ServiceCollection, ServiceDescriptor } from \"./ServiceCollection\";\r\nimport { motifError } from \"../common/diagnostics\";\r\nimport { Signal } from \"../store/Signal\";\r\n\r\ntype ScopeKind = 'root' | 'navigation' | 'user';\r\ntype OwnerSlot = { owner: object | null; ownerless?: boolean };\r\ntype OwnerPin = { scope: ServiceProvider; live: boolean };\r\ntype NavigationState = { current: ServiceProvider; version: Signal<number>; scopes: Set<ServiceProvider> };\r\n\r\nlet activeResolver: ((token: any) => any) | null = null;\r\nlet activeSlot: OwnerSlot | null = null;\r\nlet rawScopedIn: ServiceProvider | null = null;\r\nlet constructionScope: ServiceProvider | null = null;\r\nlet navigatingRoot: ServiceProvider | null = null;\r\n\r\nconst slotsByOwner = new WeakMap<object, OwnerSlot>();\r\nconst handlesBySlot = new WeakMap<OwnerSlot, Map<any, any>>();\r\nconst pins = new WeakMap<object, OwnerPin>();\r\nconst builtIn = new WeakMap<object, ServiceProvider>();\r\nconst boundMethods = new WeakMap<object, Map<PropertyKey, { fn: Function; bound: Function }>>();\r\n\r\nfunction runWithResolver<T>(resolver: (token: any) => any, create: () => T): T {\r\n const previous = activeResolver;\r\n activeResolver = resolver;\r\n try {\r\n return create();\r\n } finally {\r\n activeResolver = previous;\r\n }\r\n}\r\n\r\nfunction runWith<T>(slot: OwnerSlot | null, raw: ServiceProvider | null, create: () => T): T {\r\n const previousSlot = activeSlot;\r\n const previousRaw = rawScopedIn;\r\n activeSlot = slot;\r\n rawScopedIn = raw;\r\n try {\r\n return create();\r\n } finally {\r\n activeSlot = previousSlot;\r\n rawScopedIn = previousRaw;\r\n }\r\n}\r\n\r\nfunction bindTo(target: object, key: PropertyKey, fn: Function): Function {\r\n let cache = boundMethods.get(target);\r\n if (!cache) boundMethods.set(target, cache = new Map());\r\n const hit = cache.get(key);\r\n if (hit && hit.fn === fn) return hit.bound;\r\n const bound = fn.bind(target);\r\n cache.set(key, { fn, bound });\r\n return bound;\r\n}\r\n\r\nfunction pinnedScopeOf(owner: object | null): ServiceProvider | null {\r\n let current: any = owner;\r\n while (current) {\r\n const pin = pins.get(current);\r\n if (pin) return pin.scope;\r\n const built = builtIn.get(current);\r\n if (built && built._pending) return built;\r\n current = current.parent;\r\n }\r\n return null;\r\n}\r\n\r\nexport function inject<T>(token: abstract new (...args: any[]) => T): T;\r\nexport function inject<T = any>(token: string | symbol | object): T;\r\nexport function inject(token: any): any {\r\n if (!activeResolver) throw motifError('MJX409', describeInjectToken(token));\r\n return activeResolver(token);\r\n}\r\n\r\nfunction describeInjectToken(token: any): string {\r\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\r\n return String(token);\r\n}\r\n\r\nexport function runInConstructionScope<T>(scope: ServiceProvider | undefined, create: () => T): T {\r\n const previous = constructionScope;\r\n constructionScope = scope ?? null;\r\n try {\r\n return create();\r\n } finally {\r\n constructionScope = previous;\r\n }\r\n}\r\n\r\nexport function recordServiceOwner(owner: object): void {\r\n if (constructionScope && constructionScope._pending) builtIn.set(owner, constructionScope);\r\n}\r\n\r\nexport function pinServiceOwner(owner: object): void {\r\n const root = navigatingRoot;\r\n if (!root) return;\r\n if (pins.get(owner)?.live) return;\r\n const target = pinnedScopeOf(owner) ?? root._currentScope();\r\n pins.set(owner, { scope: target, live: true });\r\n target._livePins++;\r\n}\r\n\r\nexport function unpinServiceOwner(owner: object): void {\r\n const pin = pins.get(owner);\r\n if (!pin) return;\r\n pins.delete(owner);\r\n if (pin.live) pin.scope._releaseLivePin();\r\n navigatingRoot?._touch();\r\n}\r\n\r\nexport function retireServiceOwner(owner: object): void {\r\n const pin = pins.get(owner);\r\n if (pin) {\r\n if (pin.live) {\r\n pin.live = false;\r\n pin.scope._releaseLivePin();\r\n }\r\n return;\r\n }\r\n if (!navigatingRoot || !slotsByOwner.has(owner)) return;\r\n pins.set(owner, { scope: pinnedScopeOf(owner) ?? navigatingRoot._currentScope(), live: false });\r\n}\r\n\r\nexport class ServiceProvider {\r\n private parent?: ServiceProvider;\r\n private root: ServiceProvider;\r\n private scopeName?: string;\r\n private kind: ScopeKind;\r\n private singletonCache: Map<any, any>;\r\n private scopedCache: Map<any, any> = new Map();\r\n private transientSet: Set<any> = new Set();\r\n private _autoDisposeTransients = false;\r\n private pendingSingleton: Map<any, Promise<any>>;\r\n private pendingScoped: Map<any, Promise<any>> = new Map();\r\n private _navigation?: NavigationState;\r\n private _ownerlessSlot: OwnerSlot = { owner: null, ownerless: true };\r\n private _navigationDisposed = false;\r\n public _livePins = 0;\r\n public _pending = false;\r\n\r\n constructor(private services: ServiceCollection, parent?: ServiceProvider, root?: ServiceProvider) {\r\n this.parent = parent;\r\n this.root = root ?? this;\r\n this.kind = this.root === this ? 'root' : 'user';\r\n this.singletonCache = this.root === this ? new Map() : (this.root as any).singletonCache;\r\n this.pendingSingleton = this.root === this ? new Map() : (this.root as any).pendingSingleton;\r\n }\r\n\r\n public createScope(name?: string): ServiceProvider {\r\n const scoped = new ServiceProvider(this.services, this, this.root);\r\n scoped.scopeName = name ?? this.scopeName;\r\n (scoped as any)._autoDisposeTransients = this._autoDisposeTransients;\r\n return scoped;\r\n }\r\n\r\n public enableAutoDisposeTransients(enable = true): this { this._autoDisposeTransients = enable; return this; }\r\n\r\n\r\n public get<T = any>(token: any): T {\r\n const desc = this.services.getDescriptor(token);\r\n if (!desc) throw motifError('MJX401', this.describeToken(token));\r\n const value = this.resolveDescriptorSync(desc, [token]);\r\n return value as T;\r\n }\r\n\r\n public async getAsync<T = any>(token: any): Promise<T> {\r\n const desc = this.services.getDescriptor(token);\r\n if (!desc) throw motifError('MJX401', this.describeToken(token));\r\n const value = await this.resolveDescriptorAsync(desc, [token]);\r\n return value as T;\r\n }\r\n\r\n public _getFor<T = any>(owner: object, token: any): T {\r\n let slot = slotsByOwner.get(owner);\r\n if (!slot) {\r\n slot = { owner };\r\n slotsByOwner.set(owner, slot);\r\n }\r\n return runWith(slot, rawScopedIn, () => this.get<T>(token));\r\n }\r\n\r\n public getAllServices(): ServiceCollection { return this.services; }\r\n\r\n public _beginNavigation(): ServiceProvider {\r\n const root = this.root;\r\n const navigation = root._navigation ??= { current: root, version: new Signal(0), scopes: new Set() };\r\n navigatingRoot = root;\r\n const scope = new ServiceProvider(this.services, root, root);\r\n scope.kind = 'navigation';\r\n scope.scopeName = 'navigation';\r\n scope._pending = true;\r\n scope._autoDisposeTransients = root._autoDisposeTransients;\r\n navigation.scopes.add(scope);\r\n return scope;\r\n }\r\n\r\n public _commitNavigation(scope: ServiceProvider): void {\r\n const navigation = this.root._navigation;\r\n if (!navigation || navigation.current === scope) return;\r\n scope._pending = false;\r\n const previous = navigation.current;\r\n navigation.current = scope;\r\n this._touch();\r\n if (previous !== this.root) previous._releaseIfUnused();\r\n }\r\n\r\n public _abandonNavigation(scope: ServiceProvider): void {\r\n scope._pending = false;\r\n scope._releaseIfUnused();\r\n }\r\n\r\n public _currentScope(): ServiceProvider {\r\n return this.root._navigation?.current ?? this.root;\r\n }\r\n\r\n public _touch(): void {\r\n const navigation = this.root._navigation;\r\n if (navigation) navigation.version.value = navigation.version.peek() + 1;\r\n }\r\n\r\n public _releaseLivePin(): void {\r\n this._livePins--;\r\n this._releaseIfUnused();\r\n }\r\n\r\n private _releaseIfUnused(): void {\r\n const navigation = this.root._navigation;\r\n if (this.kind !== 'navigation' || this._navigationDisposed || this._livePins > 0) return;\r\n if (navigation && navigation.current === this) return;\r\n this._navigationDisposed = true;\r\n navigation?.scopes.delete(this);\r\n this.dispose().catch(() => { });\r\n }\r\n\r\n private _scopeFor(slot: OwnerSlot): ServiceProvider {\r\n const navigation = this._navigation;\r\n if (navigation) navigation.version.value;\r\n if (!slot.ownerless) {\r\n const pinned = pinnedScopeOf(slot.owner);\r\n if (pinned) return pinned;\r\n if (constructionScope && constructionScope.root === this) return constructionScope;\r\n }\r\n return navigation ? navigation.current : this;\r\n }\r\n\r\n private _handle(desc: ServiceDescriptor, path: any[]): any {\r\n const slot = activeSlot ?? this._ownerlessSlot;\r\n let handles = handlesBySlot.get(slot);\r\n if (!handles) handlesBySlot.set(slot, handles = new Map());\r\n let handle = handles.get(desc.token);\r\n if (!handle) {\r\n handle = this._createHandle(desc, slot);\r\n handles.set(desc.token, handle);\r\n }\r\n this._scopeFor(slot)._scopedInstanceSync(desc, path);\r\n return handle;\r\n }\r\n\r\n private async _handleAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n const slot = activeSlot ?? this._ownerlessSlot;\r\n await this._scopeFor(slot)._scopedInstanceAsync(desc, path);\r\n return runWith(slot, null, () => this._handle(desc, path));\r\n }\r\n\r\n private _createHandle(desc: ServiceDescriptor, slot: OwnerSlot): any {\r\n const root = this;\r\n const target = () => root._scopeFor(slot)._scopedInstanceSync(desc, [desc.token]);\r\n return new Proxy(Object.create(null), {\r\n get(_, key) {\r\n const instance = target();\r\n const value = Reflect.get(instance, key, instance);\r\n return typeof value === 'function' ? bindTo(instance, key, value) : value;\r\n },\r\n set(_, key, value) {\r\n const instance = target();\r\n return Reflect.set(instance, key, value, instance);\r\n },\r\n has(_, key) {\r\n return key in target();\r\n },\r\n getPrototypeOf() {\r\n return Object.getPrototypeOf(target());\r\n },\r\n });\r\n }\r\n\r\n private _isSystemScope(): boolean {\r\n return this.kind !== 'user';\r\n }\r\n\r\n private _scopedInstanceSync(desc: ServiceDescriptor, path: any[]): any {\r\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\r\n const inst = runWith(null, this, () => this.instantiateSync(desc, path));\r\n this.scopedCache.set(desc.token, inst);\r\n return inst;\r\n }\r\n\r\n private async _scopedInstanceAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\r\n if (this.pendingScoped.has(desc.token)) return await this.pendingScoped.get(desc.token)!;\r\n const promise = (async () => {\r\n const inst = await this.instantiateAsyncIn(null, this, desc, path);\r\n this.scopedCache.set(desc.token, inst);\r\n this.pendingScoped.delete(desc.token);\r\n return inst;\r\n })();\r\n this.pendingScoped.set(desc.token, promise);\r\n return await promise;\r\n }\r\n\r\n private resolveDescriptorSync(desc: ServiceDescriptor, path: any[]): any {\r\n this.checkCycle(desc.token, path);\r\n switch (desc.lifetime) {\r\n case 'singleton': {\r\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\r\n const inst = runWith(null, null, () => this.instantiateSync(desc, path));\r\n this.singletonCache.set(desc.token, inst);\r\n return inst;\r\n }\r\n case 'scoped': {\r\n if (this._isSystemScope() && rawScopedIn !== this) return this.root._handle(desc, path);\r\n return this._scopedInstanceSync(desc, path);\r\n }\r\n case 'transient':\r\n default: {\r\n const inst = this.instantiateSync(desc, path);\r\n if (this._autoDisposeTransients && this.parent) {\r\n this.transientSet.add(inst);\r\n }\r\n return inst;\r\n }\r\n }\r\n }\r\n\r\n private async resolveDescriptorAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n this.checkCycle(desc.token, path);\r\n switch (desc.lifetime) {\r\n case 'singleton': {\r\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\r\n if (this.pendingSingleton.has(desc.token)) return await this.pendingSingleton.get(desc.token)!;\r\n const promise = (async () => {\r\n const inst = await this.instantiateAsyncIn(null, null, desc, path);\r\n this.singletonCache.set(desc.token, inst);\r\n this.pendingSingleton.delete(desc.token);\r\n return inst;\r\n })();\r\n this.pendingSingleton.set(desc.token, promise);\r\n return await promise;\r\n }\r\n case 'scoped': {\r\n if (this._isSystemScope() && rawScopedIn !== this) return await this.root._handleAsync(desc, path);\r\n return await this._scopedInstanceAsync(desc, path);\r\n }\r\n case 'transient':\r\n default: {\r\n const inst = await this.instantiateAsync(desc, path);\r\n if (this._autoDisposeTransients && this.parent) {\r\n this.transientSet.add(inst);\r\n }\r\n return inst;\r\n }\r\n }\r\n }\r\n\r\n private construct<T>(create: () => T): T {\r\n if (activeSlot) return create();\r\n const slot: OwnerSlot = { owner: null };\r\n const inst = runWith(slot, rawScopedIn, create);\r\n if (inst && (typeof inst === 'object' || typeof inst === 'function') && typeof (inst as any).then !== 'function') {\r\n recordServiceOwner(inst as any);\r\n slot.owner = inst as any;\r\n if (!slotsByOwner.has(inst as any)) slotsByOwner.set(inst as any, slot);\r\n }\r\n return inst;\r\n }\r\n\r\n private instantiateSync(desc: ServiceDescriptor, path: any[]): any {\r\n if (desc.useValue !== undefined) {\r\n return desc.useValue;\r\n }\r\n if (desc.useFactory) {\r\n return this.construct(() => {\r\n const args = this.resolveDepsSync(desc, path);\r\n const result = runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this));\r\n if (result && typeof (result as any).then === 'function') {\r\n const name = this.describeTokenWithSource(desc.token);\r\n throw motifError('MJX402', name);\r\n }\r\n return result;\r\n });\r\n }\r\n if (desc.useClass) {\r\n return this.construct(() => {\r\n const args = this.resolveDepsSync(desc, path);\r\n return runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args));\r\n });\r\n }\r\n throw motifError('MJX403');\r\n }\r\n\r\n private async instantiateAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n return await runWith(slot, raw, () => this.instantiateAsync(desc, path));\r\n }\r\n\r\n private async instantiateAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\r\n if (desc.useValue !== undefined) {\r\n return desc.useValue;\r\n }\r\n const slot = activeSlot;\r\n const raw = rawScopedIn;\r\n if (desc.useFactory) {\r\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\r\n return await runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this))));\r\n }\r\n if (desc.useClass) {\r\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\r\n return runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args))));\r\n }\r\n throw motifError('MJX403');\r\n }\r\n\r\n public async dispose(): Promise<void> {\r\n const seen = new Set<any>();\r\n const callDispose = async (obj: any) => {\r\n if (!obj || seen.has(obj)) return;\r\n seen.add(obj);\r\n try { if (typeof obj.dispose === 'function') await obj.dispose(); }\r\n catch { /* ignore */ }\r\n try { if (typeof obj.close === 'function') await obj.close(); }\r\n catch { /* ignore */ }\r\n try {\r\n const d = (obj as any)[Symbol.dispose];\r\n if (typeof d === 'function') await d.call(obj);\r\n } catch { }\r\n try {\r\n const ad = (obj as any)[Symbol.asyncDispose];\r\n if (typeof ad === 'function') await ad.call(obj);\r\n } catch { }\r\n };\r\n if (this.root === this) {\r\n const navigation = this._navigation;\r\n if (navigation) {\r\n const scopes = [...navigation.scopes];\r\n navigation.scopes.clear();\r\n navigation.current = this;\r\n if (navigatingRoot === this) navigatingRoot = null;\r\n this._navigation = undefined;\r\n for (const scope of scopes) {\r\n scope._navigationDisposed = true;\r\n await scope.dispose();\r\n }\r\n }\r\n for (const v of this.singletonCache.values()) await callDispose(v);\r\n this.singletonCache.clear();\r\n this.pendingSingleton.clear();\r\n }\r\n for (const v of this.scopedCache.values()) await callDispose(v);\r\n if (this.kind !== 'navigation') this.scopedCache.clear();\r\n this.pendingScoped.clear();\r\n for (const v of this.transientSet.values()) await callDispose(v);\r\n this.transientSet.clear();\r\n }\r\n\r\n private resolveDepsSync(desc: ServiceDescriptor, path: any[]): any[] {\r\n const deps = this.getDeps(desc);\r\n if (!deps || deps.length === 0) return [];\r\n return deps.map(dep => this.resolveTokenSync(dep, path));\r\n }\r\n private async resolveDepsAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any[]> {\r\n const deps = this.getDeps(desc);\r\n if (!deps || deps.length === 0) return [];\r\n const results: any[] = [];\r\n for (const dep of deps) {\r\n results.push(await runWith(slot, raw, () => this.resolveTokenAsync(dep, path)));\r\n }\r\n return results;\r\n }\r\n private injectionResolver(path: any[]): (token: any) => any {\r\n return (token: any) => this.resolveTokenSync(token, path);\r\n }\r\n private getDeps(desc: ServiceDescriptor): any[] | undefined {\r\n if (Array.isArray(desc.deps)) return desc.deps;\r\n const source: any = desc.useClass ?? desc.useFactory;\r\n if (source) {\r\n if (Array.isArray(source.inject)) return source.inject;\r\n if (Array.isArray(source.dependencies)) return source.dependencies;\r\n }\r\n return undefined;\r\n }\r\n private resolveTokenSync(token: any, path: any[]): any {\r\n const d = this.services.getDescriptor(token);\r\n if (!d) throw motifError('MJX401', this.describeToken(token));\r\n const nextPath = path.concat(token);\r\n return this.resolveDescriptorSync(d, nextPath);\r\n }\r\n private async resolveTokenAsync(token: any, path: any[]): Promise<any> {\r\n const d = this.services.getDescriptor(token);\r\n if (!d) throw motifError('MJX401', this.describeToken(token));\r\n const nextPath = path.concat(token);\r\n return await this.resolveDescriptorAsync(d, nextPath);\r\n }\r\n private checkCycle(token: any, path: any[]) {\r\n const firstIndex = path.indexOf(token);\r\n if (firstIndex !== -1 && firstIndex !== path.length - 1) {\r\n const chainTokens = path.slice(firstIndex).concat([token]);\r\n const chain = chainTokens.map((t) => this.describeTokenWithSource(t)).join(' -> ');\r\n throw motifError('MJX404', chain);\r\n }\r\n }\r\n private describeToken = (t: any) => {\r\n if (typeof t === 'string') return t;\r\n if (typeof t === 'symbol') return t.toString();\r\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\r\n return String(t);\r\n };\r\n private describeTokenWithSource(t: any) {\r\n const name = this.describeToken(t);\r\n const d = this.services.getDescriptor(t);\r\n if (!d) return name;\r\n const src = d.useClass ? 'useClass' : d.useFactory ? 'useFactory' : (d.useValue !== undefined) ? 'useValue' : 'unknown';\r\n return `${name}[${src}]`;\r\n }\r\n}\r\n","export const contentBlocks = { live: 0 };\r\n","export const OPTIONS_OWNER: unique symbol = Symbol('motif.optionsOwner');\nexport const TRANSITION_SLOT: unique symbol = Symbol('motif.transition');\n","export type TransitionMode = 'concurrent' | 'out-in' | 'in-out';\n\nexport const transitionSettings: { mode: TransitionMode } = { mode: 'concurrent' };\n\ntype Entry = { node: Node; via: Node | null; done: Promise<void> };\n\nexport type TrackedRun = { done: () => void; release: () => void; finished?: Promise<void> };\n\nconst noop = () => { };\n\nfunction createTracker() {\n const running = new WeakMap<Node, Set<Entry>>();\n\n function track(node: Node | null | undefined, resolve: () => void, via?: Node | null): TrackedRun {\n const host = node?.parentNode ?? via?.parentNode;\n if (!host) return { done: resolve, release: noop };\n let set = running.get(host);\n if (!set) running.set(host, (set = new Set()));\n let finish: () => void = noop;\n const entry: Entry = { node: node!, via: via ?? null, done: new Promise<void>(r => { finish = r; }) };\n set.add(entry);\n let settled = false;\n const release = () => {\n if (settled) return;\n settled = true;\n set!.delete(entry);\n finish();\n };\n return {\n done: () => {\n const first = !settled;\n release();\n if (first && resolve) resolve();\n },\n release,\n finished: entry.done,\n };\n }\n\n function pending(host: Node | null | undefined, except?: Node | null): Promise<void> | null {\n if (!host) return null;\n const set = running.get(host);\n if (!set || set.size === 0) return null;\n let waits: Promise<void>[] | null = null;\n for (const entry of set) {\n if (entry.node === except) continue;\n if (entry.node.parentNode !== host && entry.via?.parentNode !== host) {\n set.delete(entry);\n continue;\n }\n (waits ??= []).push(entry.done);\n }\n return waits ? Promise.all(waits).then(noop) : null;\n }\n\n return { track, pending };\n}\n\nconst leaves = createTracker();\nconst enters = createTracker();\n\nexport const trackLeave = leaves.track;\nexport const pendingLeaves = leaves.pending;\nexport const trackEnter = enters.track;\nexport const pendingEnters = enters.pending;\n\nexport function deferUntilEntered(node: Node, run: TrackedRun, play: () => unknown): Animation {\n const host = node.parentNode;\n const handle: any = {\n finished: run.finished ?? Promise.resolve(),\n playState: 'pending',\n addEventListener: noop,\n removeEventListener: noop,\n cancel: noop,\n };\n queueMicrotask(() => {\n const wait = pendingEnters(host, node);\n if (wait) wait.then(() => { play(); });\n else play();\n });\n return handle as Animation;\n}\n\nexport function isTransitionMode(value: any): value is TransitionMode {\n return value === 'concurrent' || value === 'out-in' || value === 'in-out';\n}\n","import { ControlCollection, dom, Disposable, disposableCore, IClass, IDisposable, Application, isExactMatch, startsWithPath, reactive, safeCallSilent, safeCallSilentAsync, safeCall, safeCallAsync } from \"..\";\nimport { ServiceProvider } from \"..\";\nimport { BindingCollection, IBaseBinding } from \"../bindings\";\nimport { effect } from \"../store/reactivity-core\";\nimport { ComponentEmiter } from \"./ComponentEmiter\";\nimport { controlAttribute } from \"./controlAttribute\";\nimport { controlClass } from \"./controlClass\";\nimport { ComponentBaseOptions, ElementType, EventArgs, HtmlElementEvents, OptionalParams, RouterClassingSettings, shimAnimation } from \"./types\";\nimport { UnwrapValueRefs } from \"../store/common\";\nimport { getTransitionInfo, runCssTransition, TransitionProps } from \"../common/transition\";\nimport { callReported, motifError, reportError, reportWarning } from \"../common/diagnostics\";\nimport { ComponentMotif } from \"./ComponentMotif\";\nimport { pinServiceOwner, recordServiceOwner, retireServiceOwner, unpinServiceOwner } from \"../dependencyInjection/ServiceProvider\";\nimport { contentBlocks as liveContentBlocks } from \"./contentBlockRegistry\";\nimport { OPTIONS_OWNER, TRANSITION_SLOT } from \"./optionsSlots\";\nimport { deferUntilEntered, isTransitionMode, pendingLeaves, trackEnter, trackLeave, transitionSettings, TransitionMode } from \"../common/transitionRegistry\";\nimport { lazyBindMethods } from \"../common/lazyBind\";\n\n/** DI token'ını okunur biçime çevirir (dev uyarıları için). */\nfunction describeServiceToken(t: any): string {\n if (typeof t === 'string') return t;\n if (typeof t === 'symbol') return t.toString();\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\n return String(t);\n}\n\ntype TransitionApi = ComponentBaseOptions<any>['transition'];\n\nfunction peekTransition(c: any): TransitionApi | undefined {\n return c?.motif?.options?.[TRANSITION_SLOT];\n}\n\n/**WAAPI keyframe (transitionIn) YA DA CSS class transition (name/classes) tanımlı olarak enter animasyonu varmı */\nfunction clearNavDirection(c: any): void {\n const t = peekTransition(c);\n if (!t?._markedDirection) return;\n t._markedDirection = false;\n try { (c.element as any)?.removeAttribute?.('data-nav-direction'); } catch { }\n}\n\nfunction enterModeOf(container: any): TransitionMode {\n let c = container;\n while (c) {\n const mode = peekTransition(c)?.mode;\n if (mode) return mode;\n const node = c.element as Node | null;\n if (!node || node.nodeType !== Node.COMMENT_NODE) break;\n c = c.parent ?? c._base?._leaveContainer;\n }\n return transitionSettings.mode;\n}\n\nfunction leaveModeOf(c: any): TransitionMode {\n return enterModeOf(c.parent ?? c._base?._leaveContainer);\n}\n\nfunction wantsEnterTransition(c: any): boolean {\n const o = c?.motif?.options;\n const t = o?.[TRANSITION_SLOT];\n return !!(o?.transitionIn || (t && (t.classes || (t.name && t.name.length > 0))));\n}\n\nfunction createTransitionApi(owner: ComponentBase): TransitionApi {\n const cur = (): TransitionApi => (owner.motif.options as any)?.[TRANSITION_SLOT] ?? t;\n const t: TransitionApi = {\n transitionInfo: () => {\n const s = cur();\n return {\n in: getTransitionInfo(owner.element as Element, `${s.name}-enter ${s.name}-enter-start`),\n out: getTransitionInfo(owner.element as Element, `${s.name}-leave ${s.name}-leave-start`),\n }\n },\n name: '',\n mode: undefined as TransitionMode | undefined,\n classes: undefined as TransitionProps | undefined,\n activeCssCancel: null as (() => void) | null,\n activeCssPhase: null as ('enter' | 'leave' | null),\n cssProps: (): TransitionProps | null => {\n const s = cur();\n if (s.classes) {\n return { name: s.classes.name || s.name || '', ...s.classes };\n }\n if (s.name && s.name.length > 0) {\n return { name: s.name };\n }\n return null;\n },\n skipNextLeave: false,\n _suppressEnter: false,\n _markedDirection: false,\n in: (op) => {\n owner.motif.options.transitionIn = op;\n },\n out: (op) => {\n owner.motif.options.transitionOut = op;\n },\n enterTransition: (resolve: () => void): Animation => {\n const s = cur();\n const base = (owner as any)._base;\n const appear = !base._enterPlayed;\n base._enterPlayed = true;\n base._enterSeq = (base._enterSeq ?? 0) + 1;\n if (s._suppressEnter) {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const attempt = {};\n base._enterRun = attempt;\n const enter = trackEnter(owner.element as unknown as Node, () => {\n if ((owner as any)._base?._enterRun === attempt) {\n (owner as any)._base._enterRun = null;\n clearNavDirection(owner);\n }\n resolve && resolve();\n }, owner.motif.options.placeholder as Node | undefined);\n const transitionIn = owner.motif.options.transitionIn;\n const animation = transitionIn\n ? s.run(transitionIn.keyframes, transitionIn.options, enter.done)\n : s._runCss('enter', enter.done, appear);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', enter.release);\n }\n return animation;\n },\n leaveTransition: (resolve: () => void): Animation => {\n const s = cur();\n const node = owner.element as unknown as Node;\n const leave = trackLeave(node, resolve);\n const play = (): Animation => {\n const transitionOut = owner.motif.options?.transitionOut;\n const animation = transitionOut\n ? s.run(transitionOut.keyframes, transitionOut.options, leave.done)\n : s._runCss('leave', leave.done);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', leave.release);\n }\n return animation;\n };\n if (leave.finished && leaveModeOf(owner) === 'in-out') {\n return deferUntilEntered(node, leave, play);\n }\n return play();\n },\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear: boolean = false): Animation => {\n const s = cur();\n if (phase === 'enter' && s.activeCssPhase === 'leave') {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const cssProps = s.cssProps();\n const el = owner.element as unknown as Element | null;\n if (cssProps && el && (el as any).nodeType === 1 && (el as any).classList) {\n try { s.activeCssCancel?.(); } catch { }\n const cancel = runCssTransition(el, cssProps, phase, () => {\n s.activeCssCancel = null;\n s.activeCssPhase = null;\n resolve && resolve();\n }, appear);\n s.activeCssCancel = cancel;\n s.activeCssPhase = phase;\n return shimAnimation as Animation;\n }\n resolve && resolve();\n return shimAnimation as Animation;\n },\n activeAnimations: [] as Animation[],\n run: (keyframes, options, resolve) => {\n const s = cur();\n owner.motif.stopAnimations();\n\n const element = owner.element as unknown as HTMLElement;\n\n if (element.animate) {\n var x = element.animate(keyframes, options);\n s.activeAnimations.push(x);\n\n let cleanedUp = false;\n const safeCleanup = () => {\n if (cleanedUp) return;\n cleanedUp = true;\n try {\n if (s.activeAnimations) {\n s.activeAnimations = s.activeAnimations.filter(a => a !== x);\n }\n } catch { }\n };\n\n x.addEventListener('finish', () => {\n resolve && resolve();\n safeCleanup();\n });\n\n x.oncancel = () => {\n safeCleanup();\n };\n return x;\n }\n else {\n resolve && resolve();\n const g: any = (globalThis as any);\n if (typeof g.Animation === 'function') {\n try { return new g.Animation(); } catch { /* ignore */ }\n }\n\n return shimAnimation as Animation;\n }\n }\n };\n return t;\n}\n\nclass ComponentOptionsImpl {\n [OPTIONS_OWNER]: ComponentBase;\n [TRANSITION_SLOT]?: TransitionApi;\n\n constructor(owner: ComponentBase) {\n this[OPTIONS_OWNER] = owner;\n }\n\n get transition(): TransitionApi {\n return this[TRANSITION_SLOT] ??= createTransitionApi(this[OPTIONS_OWNER]);\n }\n\n set transition(value: TransitionApi) {\n this[TRANSITION_SLOT] = value;\n }\n\n set enableRouterClassing(value: RouterClassingSettings) {\n try {\n const ins = this[OPTIONS_OWNER];\n const callback = ins.context.onRouterChanged(() => {\n ComponentHelper.routerClassing.call(ins, value);\n });\n ins.motif.register(disposableCore.toDisposable(() => {\n callback();\n }));\n ComponentHelper.routerClassing.call(ins, value);\n } catch (error) {\n reportError('MJX105', error);\n }\n }\n\n getInstance(): ComponentBase {\n return this[OPTIONS_OWNER];\n }\n\n get display(): boolean {\n return this[OPTIONS_OWNER].isVisible;\n }\n\n set display(value: boolean) {\n if (value) {\n this[OPTIONS_OWNER].motif.show();\n } else {\n this[OPTIONS_OWNER].motif.hide();\n }\n }\n\n hasEvent(name: string): boolean {\n return !!(this[OPTIONS_OWNER] as any)._eventHandlers?.has(name);\n }\n}\nlazyBindMethods(ComponentOptionsImpl.prototype, ['getInstance', 'hasEvent']);\n\n\n\n\nexport type IBaseProp<T extends any> = OptionalParams<T> & {\n childs?: any[];\n options?: any;\n onElementCreating?(): any;\n initializeComponent?(sender: ComponentBase): void;\n onBuilding?(sender: ComponentBase, e: EventArgs): void;\n onBuilt?(sender: ComponentBase, e: EventArgs): void;\n onMounted?(sender: ComponentBase, e: EventArgs): void;\n onInitializing?(sender: ComponentBase, e: EventArgs): void;\n onInitialized?(sender: ComponentBase, e: EventArgs): void;\n onDisposing?(sender: ComponentBase, e: EventArgs): void;\n onDisposed?(sender: ComponentBase, e: EventArgs): void;\n onConfig?(sender: ComponentBase, e: EventArgs): void;\n onConfigured?(sender: ComponentBase, e: EventArgs): void;\n onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n onActivated?(sender: ComponentBase, e: EventArgs): void;\n onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n runover?: {\n initializeComponent?: (sender: ComponentBase) => void;\n }\n [key: string]: any;\n};\n\ntype LifecycleHandler = (sender: ComponentBase, e: EventArgs) => void;\ninterface LifecycleStorage {\n _initializeComponentHandlers?: LifecycleHandler[];\n _onInitializeComponentHandlers?: LifecycleHandler[];\n _onBuildingHandlers?: LifecycleHandler[];\n _onBuiltHandlers?: LifecycleHandler[];\n _onMountedHandlers?: LifecycleHandler[];\n _onInitializingHandlers?: LifecycleHandler[];\n _onInitializedHandlers?: LifecycleHandler[];\n _onConfigHandlers?: LifecycleHandler[];\n _onConfiguredHandlers?: LifecycleHandler[];\n _onVisibilityChangedHandlers?: LifecycleHandler[];\n _onActivatedHandlers?: LifecycleHandler[];\n _onDeactivatedHandlers?: LifecycleHandler[];\n _onDisposingHandlers?: LifecycleHandler[];\n _onDisposedHandlers?: LifecycleHandler[];\n}\ninterface BaseCtx extends LifecycleStorage {\n owner: ComponentBase;\n prebinding_Activated: boolean;\n _offAll: () => void;\n _deactivateBindings: () => void;\n _activateBindings: () => void;\n _activatePreBindings: () => void;\n _reactivateBindings: () => void;\n _detachDomWithAnimation: () => void;\n _detachDomWithAnimationAsync: () => Promise<void>;\n _disposeShallow: () => void;\n _deepCleanup: () => void;\n emiters: ComponentEmiter;\n itemRef?: any;\n [key: string]: any;\n}\n\nfunction fireLifecycle(component: any, name: string, ev: EventArgs): void {\n const base = component._base;\n if (base) base.emiters.fire(name, ev);\n}\n\nfunction hasLifecycleHook(component: any, hook: string, listName: keyof LifecycleStorage, lowerName: string, legacyProp?: string): boolean {\n if (component[hook]) return true;\n const list = component._base[listName];\n if (Array.isArray(list) && list.length > 0) return true;\n if (legacyProp && component[legacyProp]) return true;\n return component._base.emiters.hasListeners(lowerName);\n}\n\nconst ComponentHelper = {\n callInitializeComponent(component: ComponentBase | any) {\n const sender = component;\n const ev = { cancel: false } as EventArgs;\n if (!component || component.isDisposed) { return; }\n // 1) class method initializeComponent\n if (typeof component.initializeComponent === 'function') {\n callReported(() => component.initializeComponent(sender, ev), 'MJX122', 'initializeComponent');\n }\n // 2) aggregated extra initializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._initializeComponentHandlers) && component._base._initializeComponentHandlers.length) {\n for (const fn of component._base._initializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'initializeComponent');\n }\n }\n // 3) class method oninitializeComponent \n if (typeof component.oninitializeComponent === 'function') {\n callReported(() => component.oninitializeComponent(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n // 4) aggregated extra oninitializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._onInitializeComponentHandlers) && component._base._onInitializeComponentHandlers.length) {\n for (const fn of component._base._onInitializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n }\n },\n callDisposing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onDisposing', '_onDisposingHandlers', 'ondisposing', 'ondisposing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposing) {\n callReported(() => component.onDisposing(sender, ev), 'MJX122', 'onDisposing');\n }\n if (Array.isArray(component._base._onDisposingHandlers)) {\n for (const fn of component._base._onDisposingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposing');\n }\n }\n if (component.ondisposing) {\n callReported(() => component.ondisposing(sender, ev), 'MJX122', 'ondisposing');\n }\n fireLifecycle(component,'ondisposing', ev);\n },\n callActivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onActivated) { callReported(() => component.onActivated(sender, ev), 'MJX122', 'onActivated'); }\n if (Array.isArray(component._base._onActivatedHandlers)) {\n for (const fn of component._base._onActivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onActivated');\n }\n }\n fireLifecycle(component,'onactivated', ev);\n },\n callDeactivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDeactivated) { callReported(() => component.onDeactivated(sender, ev), 'MJX122', 'onDeactivated'); }\n if (Array.isArray(component._base._onDeactivatedHandlers)) {\n for (const fn of component._base._onDeactivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDeactivated');\n }\n }\n fireLifecycle(component,'ondeactivated', ev);\n },\n deactivateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component.isBuilt || !component._base || component._base._inactive) { return; }\n component._base._inactive = true;\n ComponentHelper.callDeactivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.deactivateTree(c, true);\n }\n }\n },\n activateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component._base || !component._base._inactive) { return; }\n component._base._inactive = false;\n ComponentHelper.callActivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.activateTree(c, true);\n }\n }\n },\n callDisposed(component: ComponentBase | any) {\n if (!component || !component._base || component._base._disposedFired) { return; }\n component._base._disposedFired = true;\n if (hasLifecycleHook(component, 'onDisposed', '_onDisposedHandlers', 'ondisposed', 'ondisposed')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposed) { callReported(() => component.onDisposed(sender, ev), 'MJX122', 'onDisposed'); }\n if (Array.isArray(component._base._onDisposedHandlers)) {\n for (const fn of component._base._onDisposedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposed');\n }\n }\n if (component.ondisposed) { callReported(() => component.ondisposed(sender, ev), 'MJX122', 'ondisposed'); }\n fireLifecycle(component,'ondisposed', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:disposed', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n callBuilt(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (hasLifecycleHook(component, 'onBuilt', '_onBuiltHandlers', 'onbuilt', 'onbuilt')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilt) { callReported(() => component.onBuilt(sender, ev), 'MJX122', 'onBuilt'); }\n if (Array.isArray(component._base._onBuiltHandlers)) {\n for (const fn of component._base._onBuiltHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilt');\n }\n }\n if (component.onbuilt) { callReported(() => component.onbuilt(sender, ev), 'MJX122', 'onbuilt'); }\n fireLifecycle(component,'onbuilt', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:mounted', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n scheduleMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedScheduled) { return; }\n const hasHook = typeof component.onMounted === 'function'\n || (Array.isArray(component._base._onMountedHandlers) && component._base._onMountedHandlers.length > 0)\n || typeof component.onmounted === 'function';\n if (!hasHook) { return; }\n component._base._mountedScheduled = true;\n const el = component.element as Element | null;\n if (!el || typeof (el as any).nodeType !== 'number') { return; }\n const stop = onElementAttached(el, () => {\n if (component.isDisposed) { return; }\n ComponentHelper.callMounted(component);\n });\n if (stop) {\n component._register(disposableCore.toDisposable(stop));\n }\n },\n callMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedFired) { return; }\n component._base._mountedFired = true;\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onMounted) { callReported(() => component.onMounted(sender, ev), 'MJX122', 'onMounted'); }\n if (Array.isArray(component._base._onMountedHandlers)) {\n for (const fn of component._base._onMountedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onMounted');\n }\n }\n if (component.onmounted) { callReported(() => component.onmounted(sender, ev), 'MJX122', 'onmounted'); }\n fireLifecycle(component,'onmounted', ev);\n },\n callBuilding(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onBuilding', '_onBuildingHandlers', 'onbuilding')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilding) { callReported(() => component.onBuilding(sender, ev), 'MJX122', 'onBuilding'); }\n if (Array.isArray(component._base._onBuildingHandlers)) {\n for (const fn of component._base._onBuildingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilding');\n }\n }\n fireLifecycle(component,'onbuilding', ev);\n },\n callConfig(component: ComponentBase | any) {\n if (!component || component.isDisposed || component.isConfigured) { return; }\n component.isConfigured = true;\n\n if (component.motif.options._preconfig) {\n safeCallSilent(() => component.motif.options._preconfig(component), 'Component._preconfig');\n }\n\n if (!hasLifecycleHook(component, 'onConfig', '_onConfigHandlers', 'onconfig')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfig) { callReported(() => component.onConfig(sender, ev), 'MJX122', 'onConfig'); }\n if (Array.isArray(component._base._onConfigHandlers)) {\n for (const fn of component._base._onConfigHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfig');\n }\n }\n fireLifecycle(component,'onconfig', ev);\n },\n callConfigured(component: ComponentBase | any) {\n if (component.motif.options && component.motif.options._postconfigdone) {\n return;\n }\n if (component?._base?._configDeferred && !component.isConfigured) {\n ComponentHelper.callConfig(component);\n }\n component.motif.options._postconfigdone = true;\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onConfigured', '_onConfiguredHandlers', 'onconfigured')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfigured) { callReported(() => component.onConfigured(sender, ev), 'MJX122', 'onConfigured'); }\n if (Array.isArray(component._base._onConfiguredHandlers)) {\n for (const fn of component._base._onConfiguredHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfigured');\n }\n }\n fireLifecycle(component,'onconfigured', ev);\n },\n callOnInitialized(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n component.isInitialized = true;\n if (!hasLifecycleHook(component, 'onInitialized', '_onInitializedHandlers', 'oninitialized')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitialized) { callReported(() => component.onInitialized(sender, ev), 'MJX122', 'onInitialized'); }\n if (Array.isArray(component._base._onInitializedHandlers)) {\n for (const fn of component._base._onInitializedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitialized');\n }\n }\n fireLifecycle(component,'oninitialized', ev);\n },\n callOnInitializing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onInitializing', '_onInitializingHandlers', 'oninitializing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitializing) { callReported(() => component.onInitializing(sender, ev), 'MJX122', 'onInitializing'); }\n if (Array.isArray(component._base._onInitializingHandlers)) {\n for (const fn of component._base._onInitializingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitializing');\n }\n }\n fireLifecycle(component,'oninitializing', ev);\n },\n callVisibilityChanged(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onVisibilityChanged', '_onVisibilityChangedHandlers', 'onvisibilitychanged')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onVisibilityChanged) { callReported(() => component.onVisibilityChanged(sender, ev), 'MJX122', 'onVisibilityChanged'); }\n if (Array.isArray(component._base._onVisibilityChangedHandlers)) {\n for (const fn of component._base._onVisibilityChangedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onVisibilityChanged');\n }\n }\n fireLifecycle(component,'onvisibilitychanged', ev);\n },\n findFragmentContent(c: ComponentBase) {\n const controlElement = c.element.nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n if (c.element.nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n c.motif.options.cache?.appendChild(c.element);\n c.controls.forEach(child => {\n c.motif.options.cache?.appendChild(child.element as unknown as Node);\n });\n c.motif.options.cache?.appendChild(c.motif.options.closeFragment!);\n }\n },\n backgroundCallback(callback: () => any) {\n callback();\n // if (!requestIdleCallback) {\n // if (!requestAnimationFrame) {\n // } else {\n\n // } else {\n },\n internalBuild(this: ComponentBase, c: ComponentBase) {\n if (this.isDisposed || c?.isDisposed) { return; }\n ComponentHelper.callConfigured(c);\n if (c.isDisposed) return;\n c._base._activatePreBindings();\n if (c.isWait) return;\n const cisBuilt = c.isBuilt;\n if (!this.isBuilt) {\n return;\n }\n if (c.isWait) {\n return;\n }\n const enterSeq = c._base._enterSeq;\n if (!c.isBuilt) {\n c.build();\n } else if (c.parent != this) {\n c.parent?.controls.detach(c);\n c.parent = this;\n const pendingLeave = (c as any).__pendingLeave;\n if (pendingLeave) {\n pendingLeave.promise.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n\n if (c.isDisposed || this.isDisposed) return;\n c.parent = this;\n\n const ownItems = this.controls.items;\n const currentIndex = ownItems.length > 0 && ownItems[ownItems.length - 1] === c ? ownItems.length - 1 : ownItems.indexOf(c);\n\n const appendableElement = findAppendableComponent(this);\n var controlElement = (c.element as Node).nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n\n if (cisBuilt && (c.element as Node).nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n\n controlElement = ComponentHelper.getContent.call(c) as Node;\n }\n\n let referenceNode: Node | null = null;\n\n const insertHost = appendableElement?.element as Node | undefined;\n const domReferenceOf = (n: ComponentBase | undefined): Node | null => {\n if (!n || !n.isBuilt) return null;\n const candidate: Node | null = n.isVisible\n ? (n.element as unknown as Node)\n : (((n.motif.options as any)?.placeholder as Node | undefined) ?? null);\n if (!candidate) return null;\n return (insertHost && candidate.parentNode === insertHost) ? candidate : null;\n };\n\n const siblings = this.controls.items;\n for (let i = currentIndex + 1; i < siblings.length; i++) {\n const candidate = domReferenceOf(siblings[i]);\n if (candidate) {\n referenceNode = candidate;\n break;\n }\n }\n if (!referenceNode) {\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n const close = this.motif.options.closeFragment as unknown as Node | undefined;\n referenceNode = (close && insertHost && close.parentNode === insertHost) ? close : null;\n } else {\n referenceNode = null;\n }\n }\n\n if (!c.isVisible) {\n const cfg = (c as any).motif.options?.hideStrategy ?? 'auto';\n const isFromListOrKeyed = !!((c as any).motif.options?.__fromList || typeof ((c as any).motif.options as any)?.indexkey !== 'undefined' || typeof (c as any).motif.options?.__key !== 'undefined');\n const strategy: 'placeholder' | 'detach' = cfg === 'placeholder' ? 'placeholder' : (cfg === 'detach' ? 'detach' : (isFromListOrKeyed ? 'detach' : 'placeholder'));\n if (strategy === 'placeholder') {\n if (!(c as any).motif.options.placeholder) {\n (c as any).motif.options.placeholder = dom.createComment(\"h\");\n }\n controlElement = ((c as any).motif.options.placeholder as unknown as Node);\n } else {\n return;\n }\n }\n\n if (insertHost && enterModeOf(this) === 'out-in') {\n const wait = pendingLeaves(insertHost, controlElement);\n if (wait) {\n c._base._enterSeq = (c._base._enterSeq ?? 0) + 1;\n wait.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n const parentNode = appendableElement?.element as Node | undefined;\n if (controlElement && parentNode && (controlElement === parentNode || controlElement.contains(parentNode))) {\n reportWarning('MJX104', []);\n\n } else {\n if (referenceNode) {\n try {\n appendableElement?.element.insertBefore(controlElement!, referenceNode);\n } catch {\n\n appendableElement?.element.appendChild(controlElement!);\n }\n } else {\n appendableElement?.element.appendChild(controlElement!);\n }\n }\n if (c.isVisible) {\n const enteredInBuild = !cisBuilt && c._base._enterSeq !== enterSeq;\n !enteredInBuild && wantsEnterTransition(c) && c.motif.options.transition.enterTransition(() => { });\n if (cisBuilt) {\n ComponentHelper.activateTree(c);\n }\n }\n },\n getContent(this: ComponentBase): any {\n if (this.isDisposed || !this.element) { return null; }\n if ((this.element as Node).nodeType == Node.COMMENT_NODE) {\n this.motif.options.cache?.appendChild(this.element as Node);\n this.controls.forEach(child => {\n this.motif.options.cache?.appendChild(ComponentHelper.getContent.call(child) as Node);\n });\n this.motif.options.cache?.appendChild(this.motif.options.closeFragment!);\n return this.motif.options.cache;\n } else {\n return this.element;\n }\n },\n routerClassing(this: ComponentBase, value: RouterClassingSettings) {\n try {\n const type = value.to;\n const path = value.path;\n if (this.isDisposed) return;\n\n const router = this.context?.router;\n if (!router) return;\n\n const requestPath = router.uri.startsWith('/') ? router.uri : '/' + router.uri;\n const targetPath = path ?? '';\n\n const exact = isExactMatch(requestPath, targetPath);\n\n /* ---------- Active (segment‑eşleşme, tam eşleşme dahil) ---------- */\n const active = exact || startsWithPath(requestPath, targetPath);\n\n if (value.activeClass && (type === 'all' || type === 'active')) {\n const clsList = value.activeClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, active));\n }\n\n if (active && (type === 'all' || type === 'active')) {\n value.onActive?.();\n } else if ((type === 'all' || type === 'active')) {\n value.offActive?.();\n }\n\n /* ---------- Exact (tam eşleşme) ---------- */\n if (value.exactClass && (type === 'all' || type === 'exact')) {\n const clsList = value.exactClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, exact));\n }\n\n if (exact && (type === 'all' || type === 'exact')) {\n value.onExact?.();\n } else if ((type === 'all' || type === 'exact')) {\n value.offExact?.();\n }\n } catch (error) {\n\n }\n\n }\n}\n\nfunction removeComponentDom(c: any, node: Node, alsoPlaceholder: boolean): void {\n const opts = c.motif?.options;\n const parent = node.parentNode;\n if (node.nodeType === Node.COMMENT_NODE) {\n if (!parent) return;\n const close = (opts?.closeFragment as unknown as Node | undefined) || null;\n if (close) {\n let current: Node | null = node;\n while (current) {\n const after: Node | null = current.nextSibling;\n try { parent.removeChild(current); } catch { }\n if (current === close) break;\n current = after;\n }\n } else {\n try { parent.removeChild(node); } catch { }\n }\n if (!alsoPlaceholder) return;\n } else if (parent) {\n try { parent.removeChild(node); } catch { }\n if (!alsoPlaceholder) return;\n }\n const placeholder = opts?.placeholder as Node | undefined;\n if (placeholder && placeholder.parentNode) {\n try { placeholder.parentNode.removeChild(placeholder); } catch { }\n }\n}\n\nfunction detachDomWithAnimation(c: any): void {\n const node = c.element as unknown as Node | null;\n if (!node) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n });\n } catch {\n removeComponentDom(c, node, false);\n }\n}\n\nasync function detachDomWithAnimationAsync(c: any): Promise<void> {\n const node = c.element as unknown as Node | null;\n if (!node) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n return new Promise<void>((resolve) => {\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n resolve();\n });\n } catch {\n removeComponentDom(c, node, false);\n resolve();\n }\n });\n}\n\nfunction disposeShallow(c: any): void {\n if (c.isDisposed) return;\n ComponentHelper.callDisposing.call(c, c);\n try {\n c._base._offAll();\n } catch {\n\n }\n c.motif.stopAnimations();\n\n c._base._deactivateBindings();\n if (c.controls?.items?.length) {\n for (const child of c.controls.items) {\n try {\n (child as any)._base._disposeShallow();\n } catch {\n\n }\n }\n }\n ComponentHelper.callDisposed.call(c, c);\n safeCall(() => { c._base.emiters.clear(); }, 'disposeShallow.emiters');\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n}\n\nfunction deepCleanup(c: any): void {\n try { c.parent = null; } catch { }\n\n try {\n c._eventHandlers?.clear();\n } catch {\n\n }\n c._eventHandlers = undefined;\n\n try { c.class?._countsStore?.clear(); } catch { }\n try { c.class?._watchersStore?.clear(); } catch { }\n try { c.attr?._attrMapStore?.clear(); } catch { }\n try { c.attr?._watchersStore?.clear(); } catch { }\n try {\n if (c.motif.options) {\n c.motif.options.cache = undefined;\n c.motif.options.closeFragment = undefined;\n c.motif.options.placeholder = undefined;\n }\n } catch {\n\n }\n try { c.element = null; } catch { }\n try { c.props = undefined; } catch { }\n try { c.childs = undefined; } catch { }\n try { c.class = undefined; } catch { }\n try { c.attr = undefined; } catch { }\n try { c.parent = null; } catch { }\n\n try { c.motif.options = undefined; } catch { }\n const keys = Object.keys(c);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'motif') continue;\n try { c[key] = undefined; } catch { }\n }\n c.isDisposed = true;\n}\n\nconst DISPOSE_STARTED = Promise.resolve();\n\nfunction subtreeDisposesSync(c: any, root: boolean): boolean {\n if (!root && c._disposing && !c.isDisposed) return false;\n if (c.disposeAsync !== ComponentBase.prototype.disposeAsync) return false;\n const opts = c.motif?.options;\n if (opts) {\n if (opts.transitionOut) return false;\n const t = opts[TRANSITION_SLOT] as TransitionApi | undefined;\n if (t) {\n if (t.activeAnimations && t.activeAnimations.length > 0) return false;\n if (t.activeCssCancel) return false;\n if (t.classes || (t.name && t.name.length > 0)) return false;\n }\n }\n const items = c.controls?.items;\n if (items) {\n for (let i = 0; i < items.length; i++) {\n const child = items[i];\n if (child && !child.isDisposed && !subtreeDisposesSync(child, false)) return false;\n }\n }\n return true;\n}\n\nfunction disposePrefix(c: any, options: IDisposeOptions, asChild: boolean): void {\n const ctx = asChild ? 'disposeAsync' : 'dispose';\n if (!asChild && options?.skipLeaveTransition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n safeCall(() => { ComponentHelper.callDisposing.call(c, c); }, ctx + '.callDisposing');\n c._base._offAll();\n c._base._deactivateBindings();\n safeCall(() => { c.parent?.controls?.silentDetach?.(c, true); }, ctx + '.silentDetach');\n}\n\nfunction disposeFinish(c: any, options: IDisposeOptions, asChild: boolean): void {\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n if (asChild) {\n c.controls.items = [];\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'disposeAsync.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'disposeAsync.emiters');\n if (options?.deep) {\n c._base._deepCleanup();\n }\n return;\n }\n c.element = null;\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'dispose.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'dispose.emiters');\n c._base._offAll();\n c._base._deepCleanup();\n}\n\nasync function disposeRemainderAsync(c: any, options: IDisposeOptions, asChild: boolean, leave: Promise<void> | undefined): Promise<void> {\n if (leave) {\n await leave;\n } else {\n if (asChild) {\n await c.motif.stopAnimations();\n } else if (peekTransition(c)?.skipNextLeave) {\n await c.motif.stopAnimations();\n }\n await c._base._detachDomWithAnimationAsync();\n }\n if (!asChild && c.constructor.name !== 'TransportTo') {\n await disposeContentBlocks(c);\n }\n const childOptions: IDisposeOptions = { deep: options?.deep };\n await safeCallAsync(async () => {\n if (c.isDisposed) { return; }\n const ctrls = Array.from(c.controls.items) as any[];\n if (ctrls.length) {\n await Promise.all(ctrls.map(child => asChild\n ? safeCallAsync(async () => { await child.disposeAsync(childOptions); }, 'disposeAsync.disposeAsyncChildren.handler')\n : (async () => {\n try {\n await child.disposeAsync(childOptions);\n } catch (error) {\n reportError('MJX107', error);\n }\n })()));\n }\n }, asChild ? 'disposeAsync.disposeAsyncChildren' : 'dispose.disposeAsync');\n if (!asChild && c.isDisposed) { return; }\n disposeFinish(c, options, asChild);\n}\n\nfunction disposeRemainderSync(root: any, options: IDisposeOptions, asChild: boolean, rootDetached: boolean): Promise<void>[] | null {\n const childOptions: IDisposeOptions = { deep: options?.deep };\n const nodes: any[] = [root];\n const parents: number[] = [-1];\n let pending: Promise<void>[] | null = null;\n if (!rootDetached) detachDomWithAnimation(root);\n for (let n = 0; n < nodes.length; n++) {\n const node = nodes[n];\n if (node.isDisposed) continue;\n const items = node.controls?.items;\n if (!items || items.length === 0) continue;\n const ctrls = Array.from(items) as any[];\n for (let j = 0; j < ctrls.length; j++) {\n const child = ctrls[j];\n if (child.isDisposed) continue;\n if (child._disposing) {\n (pending ??= []).push(child._disposing);\n continue;\n }\n try {\n retireServiceOwner(child);\n child._disposing = root._disposing;\n disposePrefix(child, childOptions, true);\n detachDomWithAnimation(child);\n nodes.push(child);\n parents.push(n);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n const count = nodes.length;\n if (count > 1) {\n const heights = new Array<number>(count).fill(0);\n for (let i = count - 1; i >= 1; i--) {\n const p = parents[i];\n if (heights[i] + 1 > heights[p]) heights[p] = heights[i] + 1;\n }\n const order: number[] = [];\n for (let i = 1; i < count; i++) order.push(i);\n order.sort((a, b) => heights[a] - heights[b] || a - b);\n for (let k = 0; k < order.length; k++) {\n try {\n disposeFinish(nodes[order[k]], childOptions, true);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n if (pending) return pending;\n if (!asChild && root.isDisposed) { return null; }\n disposeFinish(root, options, asChild);\n return null;\n}\n\nconst BASE_PROTO = {\n _offAll(this: BaseCtx): void {\n const c: any = this.owner;\n if (!c._eventHandlers) return;\n for (const [full, set] of c._eventHandlers) {\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n for (const rec of set) {\n if (!rec || !rec.wrapped) { continue; }\n\n if ((rec as any).domEvent === false) { continue; }\n const cap = (rec as any).capture === true;\n try {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap);\n } catch { }\n\n try {\n if ((rec as any).capture === undefined) {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n } catch { }\n }\n }\n c._eventHandlers.clear();\n c._eventHandlers = undefined;\n },\n _deactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.deactivateAll(); } catch { }\n },\n _activateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.activateAll(); } catch { }\n },\n _reactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.reActivateAll(); } catch { }\n },\n _activatePreBindings(this: BaseCtx): void {\n if (this.prebinding_Activated) return;\n const c: any = this.owner;\n const registered = c.bindings?._items as IBaseBinding[] | undefined;\n if (registered && registered.length > 0) {\n c.bindings.items.filter((x: IBaseBinding) => x.propertyName == \"isWait\" || x.propertyName == \"display\").forEach((b: IBaseBinding) => {\n b.activate();\n }\n );\n }\n this.prebinding_Activated = true;\n },\n _detachDomWithAnimation(this: BaseCtx): void {\n detachDomWithAnimation(this.owner);\n },\n _detachDomWithAnimationAsync(this: BaseCtx): Promise<void> {\n return detachDomWithAnimationAsync(this.owner);\n },\n _disposeShallow(this: BaseCtx): void {\n disposeShallow(this.owner);\n },\n _deepCleanup(this: BaseCtx): void {\n deepCleanup(this.owner);\n },\n};\n\nfunction createBaseCtx(owner: ComponentBase): BaseCtx {\n const base: BaseCtx = Object.create(BASE_PROTO);\n base.owner = owner;\n base.prebinding_Activated = false;\n base.emiters = new ComponentEmiter(owner);\n return base;\n}\n\nconst fragmentCloseMarkers = new WeakMap<Comment, Comment>();\n\nvar globalId = 0;\n\nconst LIFECYCLE_X_EVENTS = new Set([\n 'building', 'built', 'initializing', 'initialized', 'disposing', 'disposed',\n 'config', 'configured', 'visibilitychanged', 'activated', 'deactivated'\n]);\n\nexport interface IDisposeOptions {\n deep?: boolean;\n skipLeaveTransition?: boolean;\n}\n\nexport interface SiblingsApi {\n all: () => ComponentBase[] | undefined;\n next: () => ComponentBase | undefined;\n prev: () => ComponentBase | undefined;\n nextAll: () => any;\n prevAll: () => any;\n}\n\nconst RAW_APPLICATION = Symbol('motif.rawApplication');\nconst SCOPED_SUBSCRIBERS = new Set<PropertyKey>(['on', 'onRouterChanged']);\n\n/**\n * Uygulamanın bileşene bağlı görünümü. `on`/`onRouterChanged` aboneliklerini sahibin ömrüne\n * kaydeder; diğer tüm üyeler (alanlar, metotlar, atamalar) uygulamanın kendisine yönlenir.\n */\nfunction createScopedContext(app: Application, owner: ComponentBase): Application {\n const cache = new Map<PropertyKey, { fn: Function; bound: Function }>();\n return new Proxy(app, {\n get(target, prop) {\n if (prop === RAW_APPLICATION) { return target; }\n const value = Reflect.get(target, prop, target);\n if (typeof value !== 'function') { return value; }\n const hit = cache.get(prop);\n if (hit && hit.fn === value) { return hit.bound; }\n const bound = SCOPED_SUBSCRIBERS.has(prop)\n ? (...args: any[]) => owner._trackContextSubscription(value.apply(target, args))\n : value.bind(target);\n cache.set(prop, { fn: value, bound });\n return bound;\n },\n set(target, prop, value) {\n return Reflect.set(target, prop, value, target);\n },\n });\n}\n\nexport abstract class ComponentBase<TElement extends ElementType = any, TProps extends object = any> extends Disposable {\n\n public readonly motif: ComponentMotif<this, TProps> = new ComponentMotif<this, TProps>(this, new ComponentOptionsImpl(this) as unknown as ComponentMotif<this, TProps>['options']);\n\n public element: TElement;\n public props: TProps;\n public isBuilt: boolean = false;\n public isInitialized: boolean = false;\n public isDisposed: boolean = false;\n public isConfigured: boolean = false;\n public isPainting: boolean = false;\n public isPainted: boolean = false;\n public isVisible: boolean = true;\n public controls: ControlCollection = new ControlCollection(this);\n\n private _eventHandlers?: Map<string, Set<{\n original: (sender: ComponentBase, e: EventArgs) => any,\n wrapped?: (e: Event) => void,\n dom?: boolean,\n domEvent?: boolean,\n capture?: boolean,\n type?: string\n }>>;\n private _isWait: boolean = false;\n public class: IClass<TElement> = new controlClass(this as any) as any as IClass<TElement>;\n public attr: controlAttribute<TElement> = new controlAttribute(this as any);\n public bindings = new BindingCollection(this);\n /** style(fn) izleyicisi: tek tek tutulur, yeniden çağrıda önceki durdurulur. */\n private _styleFx?: { stop: () => void; binding: IBaseBinding };\n\n public useModel<TModel>(modelCtor: TModel): UnwrapValueRefs<TModel> {\n return reactive<TModel>(modelCtor);\n }\n\n private _computeHideStrategy(): 'placeholder' | 'detach' {\n const cfg = this.motif.options?.hideStrategy ?? 'auto';\n if (cfg === 'placeholder') return 'placeholder';\n if (cfg === 'detach') return 'detach';\n if (this.motif.options?.__fromList || typeof (this.motif.options as any)?.indexkey !== 'undefined' || typeof this.motif.options?.__key !== 'undefined') {\n return 'detach';\n }\n return 'placeholder';\n }\n\n private _isInDom(): boolean {\n try {\n if (!this.element) return false;\n const node = this.element as unknown as Node;\n if (node.nodeType === Node.COMMENT_NODE) {\n return !!node.parentNode;\n }\n return !!node.parentNode;\n } catch { return false; }\n }\n public set isWait(value: boolean) {\n this._isWait = value;\n if (this.isBuilt) {\n if (value) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n return;\n }\n if (value === false && this.parent && this.parent.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n\n }\n public get isWait(): boolean {\n return this._isWait;\n }\n\n constructor(element: TElement, props: TProps = {} as TProps) {\n super();\n recordServiceOwner(this);\n if (this.onElementCreating) {\n this.element = this.onElementCreating.call(this);\n } else if ((props as any)?.onElementCreating) {\n this.element = (props as any).onElementCreating.call(this);\n } else {\n this.element = element;\n }\n\n if (props) {\n const refs = extractRefs(props, this);\n if (refs.length > 0) {\n for (const fn of takePendingRefs(this, refs)) {\n callReported(() => fn(this), 'MJX122', 'ref');\n }\n }\n }\n\n props && ParseProps(props, this);\n applyComponentOptions((props as any)?.options, this);\n this.props = props;\n\n // (class/style/id/tabindex/role/aria-*/data-*) kök düğüme (root node) düşer, prop'lar this.props'ta kalır.\n if (props) {\n const ctor0 = new.target as any;\n const plain = ctor0 === ComponentBase || Object.getPrototypeOf(ctor0) === ComponentBase;\n if (plain) applyPlainElementProps(props, this);\n else applyFallthroughProps(props, this);\n }\n\n\n ComponentHelper.callOnInitializing(this);\n if (this.isDisposed) return;\n this.controls.onAdd = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n if (this.isWait || this.parent?.isWait) return;\n ComponentHelper.internalBuild.call(this, c);\n\n }\n\n this.controls.onAddBeforeBuild = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n }\n\n\n this.controls.onRemove = (c) => {\n if (this._eventHandlers?.has('controlremoved')) this.motif.trigger('controlremoved', { control: c });\n }\n ComponentHelper.callOnInitialized(this);\n\n const ctor = new.target as any;\n const isBaseCtor = ctor === ComponentBase || Object.getPrototypeOf(ctor) === ComponentBase;\n if (isBaseCtor) {\n ComponentHelper.callConfig(this);\n } else {\n this._base._configDeferred = true;\n }\n\n }\n\n\n\n\n\n\n public childs?: any[];\n protected _base: BaseCtx = createBaseCtx(this);\n public parent: ComponentBase | null = null;\n public onElementCreating?(): TElement;\n public initializeComponent?(sender: ComponentBase): void;\n public onBuilding?(sender: ComponentBase, e: EventArgs): void;\n public onBuilt?(sender: ComponentBase, e: EventArgs): void;\n public onMounted?(sender: ComponentBase, e: EventArgs): void;\n public onInitializing?(sender: ComponentBase, e: EventArgs): void;\n public onInitialized?(sender: ComponentBase, e: EventArgs): void;\n public onDisposing?(sender: ComponentBase, e: EventArgs): void;\n public onDisposed?(sender: ComponentBase, e: EventArgs): void;\n public onConfig?(sender: ComponentBase, e: EventArgs): void;\n public onConfigured?(sender: ComponentBase, e: EventArgs): void;\n public onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni outlet'ten ayrılıp önbelleğe alındığında (RoutingEngine) tetiklenir. */\n public onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni önbellekten outlet'e yeniden bağlandığında (RoutingEngine) tetiklenir. */\n public onActivated?(sender: ComponentBase, e: EventArgs): void;\n public view?(): ComponentBase;\n private _scopedContext?: Application;\n\n public get context(): Application {\n const parentCtx: any = this.parent?.context;\n const app: Application = parentCtx?.[RAW_APPLICATION] ?? parentCtx ?? Application.main;\n if (!app) { return app; }\n if ((this._scopedContext as any)?.[RAW_APPLICATION] !== app) {\n this._scopedContext = createScopedContext(app, this);\n }\n return this._scopedContext!;\n }\n /** @internal context üzerinden açılan aboneliği bileşenin ömrüne bağlar; iptal fonksiyonunu döndürür. */\n public _trackContextSubscription(off: () => void): () => void {\n if (typeof off !== 'function') { return off; }\n if (this.isDisposed) { off(); return off; }\n const d = this._register(disposableCore.toDisposable(off));\n return () => { this._disposables.detach(d); off(); };\n }\n\n public build(building: boolean = true) {\n ComponentHelper.callConfigured(this);\n this._base._activatePreBindings();\n if (this.isDisposed || !this.element || this.isWait) { return; }\n if (this.isBuilt || this.isWait) {\n return;\n }\n\n ComponentHelper.callBuilding(this);\n if (this.isDisposed) { return; }\n var ph: any = this.element;\n if (building) {\n ph = dom.createDocumentFragment();\n }\n const isFragment = (typeof this.element !== 'string' && (this.element as unknown as Node).nodeType === Node.COMMENT_NODE);\n if (isFragment) {\n this.motif.options.cache = dom.createDocumentFragment();\n (this.element as any).textContent = \"[\";\n this.motif.options.cache!.appendChild(this.element as unknown as Node);\n }\n if (this.isBuilt) {\n return;\n }\n\n\n ComponentHelper.callInitializeComponent(this);\n if (this.isDisposed) { return; }\n\n if (this.view) {\n const templ = this.view();\n this.controls.add(templ);\n if (this.isDisposed) { return; }\n }\n\n const deferredSelectValue = (this.element as any)?.nodeName === 'SELECT'\n ? this.bindings.items.filter(b => b.propertyName === 'value')\n : [];\n if (deferredSelectValue.length) {\n try {\n this.bindings.items.filter(b => !deferredSelectValue.includes(b)).forEach(b => b.activate());\n } catch { }\n } else {\n this._base._activateBindings();\n }\n\n for (const element of this.controls.items.filter(c => !c.isWait)) {\n element.parent = this;\n element.build(false);\n if (element.isWait) {\n continue;\n }\n var target = isFragment ? this.motif.options.cache : this.element;\n if (building) {\n if (element.motif.options.cache) {\n ph.appendChild(element.motif.options.cache);\n } else {\n ph.appendChild(element.element);\n }\n } else {\n if (element.motif.options.cache) {\n (target as any).appendChild(element.motif.options.cache);\n } else {\n (target as any).appendChild(element.element);\n }\n }\n if (element._base?._inactive && element.isVisible) {\n ComponentHelper.activateTree(element);\n }\n\n }\n\n if (this.isDisposed) { return; }\n if (wantsEnterTransition(this)) {\n const node = this.element as unknown as Node | null;\n if (node && (node as any).isConnected) {\n this.motif.options.transition.enterTransition(() => { });\n } else {\n const seq = this._base._enterSeq;\n queueMicrotask(() => {\n if (!this.isDisposed && this.isVisible && this.motif.options?.transition && this._base._enterSeq === seq) {\n this.motif.options.transition.enterTransition(() => { });\n }\n });\n }\n } else {\n clearNavDirection(this);\n }\n if (building) {\n try {\n var target = isFragment ? this.motif.options.cache : this.element;\n if ((target as any).nodeType === Node.TEXT_NODE) {\n (target as Text).appendData(ph.textContent);\n } else {\n if ((target as any).appendChild) {\n (target as any).appendChild(ph);\n } else {\n (target as any).append(ph);\n }\n }\n } catch (error) {\n }\n\n }\n if (deferredSelectValue.length) {\n try { deferredSelectValue.forEach(b => b.activate()); } catch { }\n }\n if (isFragment) {\n this.motif.options.closeFragment = dom.createComment(\"]\");\n this.motif.options.cache!.appendChild(this.motif.options.closeFragment!);\n if ((this.element as Node).nodeType === Node.COMMENT_NODE && this.motif.options.closeFragment) {\n fragmentCloseMarkers.set(this.element as Comment, this.motif.options.closeFragment);\n }\n }\n\n this.isBuilt = true;\n ComponentHelper.callBuilt(this);\n ComponentHelper.scheduleMounted(this);\n\n }\n\n public setState() {\n this.controls.forEach(c => {\n c.setState();\n });\n this._base._reactivateBindings();\n }\n\n public reState() {\n this._base._reactivateBindings();\n this.controls.forEach(c => {\n c.reState();\n });\n }\n\n public setText(value: string) {\n if (this.isDisposed || !this.element) { return; }\n if (isComponentLike(value)) { warnComponentInTextBinding(this, value); return; }\n if (this.element) {\n (this.element as any).textContent = value;\n }\n }\n\n public style(content: CSSStyleDeclaration | string | Array<any> | Object | (() => any)) {\n if (this.isDisposed) { return this as any }\n const styleObj = (this.element as any)?.style as CSSStyleDeclaration | undefined;\n if (!styleObj) return this;\n if (typeof content === 'function') {\n this._stopStyleEffect();\n let prevKeys: string[] = [];\n let prevWasString = false;\n const run = () => effect(() => {\n const v = (content as () => any)();\n if (this.isDisposed) return;\n const so: any = (this.element as any)?.style;\n if (!so) return;\n if (typeof v === 'string') {\n so.cssText = v;\n prevKeys = [];\n prevWasString = true;\n } else if (v && typeof v === 'object') {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) {\n if (!(k in v)) { try { so[k] = ''; } catch { } }\n }\n Object.assign(so, v);\n prevKeys = Object.keys(v);\n } else {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) { try { so[k] = ''; } catch { } }\n prevKeys = [];\n }\n });\n let current = run();\n const stop = () => { try { current(); } catch { } };\n const binding: IBaseBinding = {\n propertyName: '__style',\n dataSource: null,\n activate() { /* no-op */ },\n reActivate() {\n stop();\n current = run();\n },\n deactivate() { stop(); }\n } as any;\n try { this.bindings.add(binding); } catch { }\n this._styleFx = { stop, binding };\n return this;\n }\n if (typeof content === 'string') {\n (styleObj as any).cssText = content;\n } else if (content && typeof content === 'object') {\n Object.assign(styleObj as any, content);\n }\n return this;\n }\n\n private _stopStyleEffect() {\n const fx = this._styleFx;\n if (!fx) return;\n this._styleFx = undefined;\n try { fx.stop(); } catch { }\n try { this.bindings.remove(fx.binding); } catch { }\n }\n\n private _addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void) {\n this.motif.on(event as any, handler as any);\n }\n private async _show(): Promise<any> {\n\n\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) { return; }/* A*/\n\n if (this.parent && enterModeOf(this.parent) === 'out-in') {\n const showHost = ((this.motif.options.placeholder as Node | undefined)?.parentNode)\n ?? (findAppendableComponent(this.parent)?.element as Node | undefined);\n const wait = pendingLeaves(showHost, this.element as unknown as Node);\n if (wait) {\n const seq = this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n return wait.then(() => {\n if (this.isDisposed || this._base._showSeq !== seq) return;\n return this._show();\n });\n }\n }\n\n if (peekTransition(this)?.activeAnimations?.length) {\n safeCall(async () => {\n await Promise.all(this.motif.options.transition.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n }, 'show.waitForLeaveAnimations');\n }\n /** A*/\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n const needAttach = !this._isInDom() && this.parent && this.parent.isBuilt && !this.isWait;\n this.isVisible = true;\n if (needAttach) {\n ComponentHelper.internalBuild.call(this.parent!, this);\n }\n return;\n } else {\n /** A*/\n const placeholderParent = (this.motif.options.placeholder as Node)?.parentElement;\n const expectedParent = findAppendableComponent(this.parent!)?.element;\n\n if (this.motif.options.placeholder && placeholderParent && placeholderParent !== expectedParent) {\n reportWarning('MJX106', []);\n this.isVisible = true;\n if (this.parent?.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n return;\n }\n\n /** A*/\n wantsEnterTransition(this) && this.motif.options.transition.enterTransition(() => { });\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n c.motif.show();\n });\n this.isVisible = true;\n ComponentHelper.activateTree(this, false);\n return;\n }\n var parent = (this.motif.options.placeholder as Node)?.parentElement;\n if (parent) {\n parent.replaceChild(this.element as Node, this.motif.options.placeholder!);\n this.isVisible = true;\n ComponentHelper.activateTree(this);\n }\n }\n }\n private async _hide(): Promise<any> {\n\n if (this.isDisposed || !this.element) { return; }\n this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n if (!this.isVisible) { return; }\n\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n await this._base._detachDomWithAnimationAsync();\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n return;\n } else {\n const transition = this.motif.options.transition;\n const skip = transition.skipNextLeave === true;\n if (skip) transition.skipNextLeave = false;\n const finish = () => {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n if (skip && c.isVisible && c.element && !c.isDisposed && c.motif.options?.transition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n c.motif.hide();\n });\n this.isVisible = false;\n ComponentHelper.deactivateTree(this, false);\n return;\n }\n var parent = (this.element as Node).parentElement;\n // if (!parent) {\n // var parentComp = findAppendableComponent(this.parent!);\n // if (parentComp && parentComp.isBuilt) {\n // } else {\n if (parent) {\n if (!this.motif.options.placeholder) this.motif.options.placeholder = dom.createComment(\"h\");\n parent.replaceChild(this.motif.options.placeholder!, this.element as Node);\n\n }\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n };\n if (skip) {\n finish();\n return;\n }\n return transition.leaveTransition(finish).finished;\n }\n\n }\n private _toggle() {\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n }\n\n private async _on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event);\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2).toLowerCase();\n if (xName === \"mounted\") {\n let sub: IDisposable | undefined;\n const stop = onElementAttached(this.element as Element, () => {\n if (sub) {\n this._base._mountedSubs?.get(cb)?.delete(sub);\n this._disposables.detach(sub);\n }\n if (this.isDisposed) { return; }\n const ev = { cancel: false } as EventArgs;\n callReported(() => (cb as any).length <= 1 ? (cb as any)(ev) : cb(this, ev as any), 'MJX122', 'x:mounted');\n });\n if (stop) {\n sub = this._register(disposableCore.toDisposable(stop));\n const subs: Map<Function, Set<IDisposable>> = this._base._mountedSubs ??= new Map();\n let set = subs.get(cb);\n if (!set) { set = new Set(); subs.set(cb, set); }\n set.add(sub);\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.on(\"on\" + xName, cb as any);\n return this;\n }\n }\n\n const [name, ...mods] = full.split(\":\");\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n const options: AddEventListenerOptions = {};\n if (mods.includes(\"once\")) options.once = true;\n if (mods.includes(\"passive\")) options.passive = true;\n if (mods.includes(\"capture\")) options.capture = true;\n\n const wrapped = (ev: Event) => {\n if (mods.includes(\"self\") && ev.target !== this.element) return;\n if (mods.includes(\"trusted\") && !ev.isTrusted) return;\n let res: any;\n try {\n if (cb && (cb as any).length <= 1) {\n res = (cb as any)(ev as any);\n } else if (cb) {\n res = cb(this, ev as any);\n }\n } catch (error) {\n reportError('MJX123', error, evt);\n }\n if (res && typeof res.then === 'function') {\n res.then(undefined, (error: unknown) => reportError('MJX123', error, evt));\n }\n const prevent = () => { if (typeof (ev as any)?.preventDefault === 'function') ev.preventDefault(); };\n const stop = () => { if (typeof (ev as any)?.stopPropagation === 'function') ev.stopPropagation(); };\n if (mods.includes(\"prevent\")) { prevent(); }\n if (mods.includes(\"stop\")) { stop(); }\n if (res === false || (res && (res as any).cancel === true)) {\n prevent();\n stop();\n }\n };\n if (domEvent) {\n (this.element as any).addEventListener(evt, wrapped as EventListener, options);\n }\n\n\n this._eventHandlers ??= new Map();\n const key = full.toLowerCase();\n const set = this._eventHandlers.get(key) ?? new Set();\n set.add({ original: cb as any, wrapped, capture: !!options.capture, domEvent: !!domEvent, type: evt });\n this._eventHandlers.set(key, set);\n this._register(disposableCore.toDisposable(() => {\n this.motif.off(event, cb);\n }));\n return this;\n }\n\n private async _trigger(event: any, ev: any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n const name = String(event).toLowerCase();\n safeCall(() => {\n var eh = this._eventHandlers?.get(name);\n if (eh) {\n eh.forEach(rec => {\n try {\n (rec.wrapped as any)(ev);\n } catch {\n\n }\n });\n }\n }, 'trigger');\n return this;\n }\n private async _off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event).toLowerCase();\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2);\n if (xName === \"mounted\") {\n const set = this._base._mountedSubs?.get(cb);\n if (set) {\n this._base._mountedSubs.delete(cb);\n for (const sub of set) {\n this._disposables.delete(sub);\n }\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.off(\"on\" + xName, cb as any);\n }\n return this;\n }\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n if (!this._eventHandlers) return this;\n const set = this._eventHandlers.get(full);\n if (!set) return this;\n for (const rec of Array.from(set)) {\n if (rec.original === (cb as any)) {\n if ((rec as any).domEvent !== false) {\n const cap = (rec as any).capture === true;\n safeCall(() => { (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap); }, 'off.removeEventListener');\n safeCall(() => {\n if ((rec as any).capture === undefined) {\n (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n }, 'off.removeEventListener.fallback');\n }\n set.delete(rec);\n break;\n }\n }\n if (set.size === 0) this._eventHandlers.delete(full);\n return this;\n }\n /** Süren bertaraf: ikinci bir dispose/disposeAsync çağrısı yenisini başlatmaz, bunu bekler. */\n private _disposing?: Promise<void>;\n\n public override dispose(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, false);\n }\n\n private async _disposeCore(options: IDisposeOptions, asChild: boolean): Promise<void> {\n disposePrefix(this, options, asChild);\n let leave: Promise<void> | undefined;\n if (!asChild && !peekTransition(this)?.skipNextLeave) {\n leave = this._base._detachDomWithAnimationAsync();\n }\n await undefined;\n if (liveContentBlocks.live === 0 && subtreeDisposesSync(this, true)) {\n const pending = disposeRemainderSync(this, options, asChild, leave !== undefined);\n if (pending) {\n await Promise.all(pending);\n if (!asChild && this.isDisposed) { return; }\n disposeFinish(this, options, asChild);\n }\n return;\n }\n await disposeRemainderAsync(this, options, asChild, leave);\n }\n\n public disposeAsync(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, true);\n }\n\n\n protected async _clear(): Promise<any> {\n if (this.isDisposed == true) { return; }\n if (this.motif.options && this.motif.options.disableDisposal) { return; };\n await this.controls.clearAsync();\n //if (this.onupdated) this.onupdated(this as any, { data: this.model, field: '', source: 'clear' })\n // return new Promise((resolveOuter: any) => {\n // this.controls.forEach(async (control, index) => {\n // if (index === this.controls.length - 1) {\n // dom.window.setTimeout(resolveOuter, 0);\n // await control.dispose();\n }\n\n using<T>(waitable: Promise<any>, onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected?: ((reason: any) => never | PromiseLike<never>) | undefined | null) {\n waitable.then(\n (value: T) => { this && !this.isDisposed && onfulfilled ? onfulfilled(value) : ''; },\n (reason: any) => { this && !this.isDisposed && onrejected ? onrejected(reason) : '' });\n }\n doWork<T>(waitable: Promise<T> | PromiseLike<T>): Promise<T> {\n return Promise.resolve(waitable).then((value: T) => {\n if (this && !this.isDisposed) {\n return value\n } else {\n return motifError('MJX108');\n };\n }) as Promise<T>;\n }\n\n private _siblingsApi?: SiblingsApi;\n private _siblingsSet?: boolean;\n\n get siblings(): SiblingsApi {\n if (this._siblingsSet) { return this._siblingsApi as SiblingsApi; }\n if (this.isDisposed && !this.motif?.options) { return this._siblingsApi as SiblingsApi; }\n return this._siblingsApi ??= this._createSiblingsApi();\n }\n\n set siblings(value: SiblingsApi) {\n this._siblingsApi = value;\n this._siblingsSet = true;\n }\n\n private _createSiblingsApi(): SiblingsApi {\n return {\n all: () => { return this.parent?.controls.items },\n next: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx + 1];\n },\n prev: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx - 1];\n },\n nextAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(idx + 1);\n },\n prevAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(0, idx);\n }\n };\n }\n\n public get serviceProvider(): ServiceProvider | null {\n let c: ComponentBase | null = this as unknown as ComponentBase;\n while (c) {\n const p = (c as any).provider as ServiceProvider | undefined;\n if (p) return p;\n c = c.parent;\n }\n try { return Application.main?.provider ?? null; } catch { return null; }\n }\n\n public getService<T = any>(token: any): T | null {\n try {\n\n const sp = this.serviceProvider;\n if (sp) {\n return sp._getFor<T>(this, token);\n }\n reportWarning('MJX407', [describeServiceToken(token)], { token });\n } catch (err) {\n reportWarning('MJX408', [describeServiceToken(token), String((err as any)?.message ?? err)], { token, error: err });\n }\n return null;\n }\n $(selector: string) {\n if (this.isDisposed || !this.element) {\n return {\n fromDom: () => null,\n fromComponent: () => [] as ComponentBase[]\n };\n }\n var result = {\n fromDom: () => {\n var findContainer = findAppendableComponent(this)?.element;\n var findingTarget;\n if (!findContainer) {\n findingTarget = document;\n } else {\n findingTarget = findContainer;\n }\n if (findingTarget) {\n var elements = findingTarget.querySelectorAll(selector);\n return elements;\n }\n return null;\n },\n fromComponent: () => {\n const findingComponent = findAppendableComponent(this);\n const root = findingComponent ?? this;\n const found: ComponentBase[] = [];\n const walk = (cmp: ComponentBase) => {\n const el = cmp.element as any;\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n const matches: ((sel: string) => boolean) | undefined = (el.matches || el.msMatchesSelector || el.webkitMatchesSelector);\n if (typeof matches === 'function') {\n try { if (matches.call(el, selector)) { found.push(cmp); } } catch { }\n }\n }\n if (cmp.controls && cmp.controls.items && cmp.controls.items.length) {\n for (const child of cmp.controls.items) { walk(child); }\n }\n };\n\n walk(root);\n return found;\n }\n }\n return result;\n }\n\n private async _stopAnimations() {\n const t = peekTransition(this);\n try { t?.activeCssCancel?.(); } catch { }\n try {\n if (t?.activeAnimations?.length) {\n try {\n await Promise.all(t.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n } catch { /* ignore */ }\n }\n\n } catch (error) {\n\n }\n if (this.isDisposed) return;\n if (t) t.activeAnimations = [];\n }\n // return this;\n\n}\n\n\nfunction findContentBlocks(root: ComponentBase, results: ComponentBase[] = []): ComponentBase[] {\n if (!root || root.isDisposed) return results;\n\n if (root.constructor.name === 'TransportTo') {\n results.push(root);\n }\n if (root.controls && root.controls.items) {\n root.controls.items.forEach(child => findContentBlocks(child, results));\n }\n\n return results;\n}\n\nasync function disposeContentBlocks(root: ComponentBase): Promise<any> {\n if (liveContentBlocks.live === 0) return;\n const contentBlocks = findContentBlocks(root);\n return await Promise.all(contentBlocks.map(async (block) => {\n block.motif.options.transition.skipNextLeave = root.motif.options.transition.skipNextLeave;\n for (const element of block.controls.items) {\n element.motif.options.transition.skipNextLeave = block.motif.options.transition.skipNextLeave;\n element.dispose({ skipLeaveTransition: true });\n element.isDisposed = true;\n }\n await block.dispose()\n }));\n}\n\nconst _appliedRefs = new WeakMap<object, Set<Function>>();\n\nexport function takePendingRefs(component: ComponentBase, ref: any): Function[] {\n const fns: Function[] = (Array.isArray(ref) ? ref : [ref]).filter((fn: any) => typeof fn === 'function');\n if (fns.length === 0) return fns;\n let applied = _appliedRefs.get(component);\n if (!applied) {\n applied = new Set();\n _appliedRefs.set(component, applied);\n }\n const pending: Function[] = [];\n for (const fn of fns) {\n if (applied.has(fn)) continue;\n applied.add(fn);\n pending.push(fn);\n }\n return pending;\n}\n\nconst isCallableRef = (ref: any): boolean => typeof ref === 'function' || Array.isArray(ref);\n\nexport function extractRefs(props: any, component?: ComponentBase): any[] {\n const refs: any[] = [];\n if (!props || typeof props !== 'object') return refs;\n if (Object.prototype.hasOwnProperty.call(props, 'ref')) {\n if (isCallableRef(props.ref)) {\n refs.push(props.ref);\n delete props.ref;\n } else if (component && props.ref && typeof props.ref === 'object') {\n props.ref = component;\n }\n }\n const runover = props.runover;\n if (runover && typeof runover === 'object' && Object.prototype.hasOwnProperty.call(runover, 'ref')) {\n if (isCallableRef(runover.ref)) {\n refs.push(runover.ref);\n const rest = { ...runover };\n delete rest.ref;\n props.runover = rest;\n } else if (component && runover.ref && typeof runover.ref === 'object') {\n runover.ref = component;\n }\n }\n return refs.length === 0 ? refs : ([] as any[]).concat(...refs);\n}\n\nconst LIFECYCLE_HANDLER_LISTS: Record<string, keyof LifecycleStorage> = {\n 'initializecomponent': '_initializeComponentHandlers',\n 'oninitializecomponent': '_onInitializeComponentHandlers',\n 'onbuilding': '_onBuildingHandlers',\n 'onbuilt': '_onBuiltHandlers',\n 'onmounted': '_onMountedHandlers',\n 'oninitializing': '_onInitializingHandlers',\n 'oninitialized': '_onInitializedHandlers',\n 'onconfig': '_onConfigHandlers',\n 'onconfigured': '_onConfiguredHandlers',\n 'onvisibilitychanged': '_onVisibilityChangedHandlers',\n 'onactivated': '_onActivatedHandlers',\n 'ondeactivated': '_onDeactivatedHandlers',\n 'ondisposing': '_onDisposingHandlers',\n 'ondisposed': '_onDisposedHandlers',\n};\n\nfunction collectLifecycleHandlers(component: ComponentBase, lowerKey: string, value: any): boolean {\n const listName = Object.prototype.hasOwnProperty.call(LIFECYCLE_HANDLER_LISTS, lowerKey) ? LIFECYCLE_HANDLER_LISTS[lowerKey] : undefined;\n if (!listName) return false;\n const fns: any[] = Array.isArray(value) ? value : [value];\n if (fns.length === 0 || !fns.every(fn => typeof fn === 'function')) return false;\n (component as any)._base[listName] ??= [];\n const list = (component as any)._base[listName] as Function[];\n for (const fn of fns) {\n if (!list.includes(fn)) list.push(fn);\n }\n return true;\n}\n\nexport function ParseProps(props: any, component: ComponentBase): any {\n if (props) {\n if (component.motif.options.props) {\n Object.assign(component.motif.options.props, props);\n } else {\n component.motif.options.props = {};\n Object.assign(component.motif.options.props, props);\n }\n var keys = Object.keys(props);\n if (keys.length === 0) return;\n keys.forEach(key => {\n if (key == 'initializeComponent' || key == 'oninitializeComponent' || key.startsWith('on')) {\n if (collectLifecycleHandlers(component, key.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n } else if (key == 'childs') {\n const flat: ComponentBase[] = ([] as any[]).concat(...props[key] as any);\n component.childs = flat;\n delete props[key];\n } else if (key === 'transition') {\n applyTransitionProp(props[key], component);\n delete props[key];\n } else if (componentMethods.hasOwnProperty(key.toLowerCase()) || componentMethods.hasOwnProperty(\"on\" + key.toLowerCase())) {\n var eventKey;\n if (!key.toLowerCase().startsWith(\"on\") && key.toLowerCase() !== \"initializecomponent\") {\n eventKey = \"on\" + key;\n } else {\n eventKey = key;\n }\n (component as any)[eventKey] = props[key];\n delete props[key];\n } else if (key.startsWith(\"on\")) {\n\n component.motif.on(key as any, props[key]);\n } else if (key.startsWith(\"x-\")) {\n\n var nkey = key.replace(\"x-\", \"on\");\n if (key.toLowerCase() == \"x-wait\") {\n component.bindings.wait(props[key]);\n\n } else if (key.toLowerCase() == \"x-display\") {\n component.bindings.display(props[key]);\n } else {\n if (collectLifecycleHandlers(component, nkey.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n }\n\n\n delete props[key];\n } else if (key.startsWith(\"runover\")) {\n\n ParseProps(props[key], component);\n delete props[key];\n } else if (key.startsWith(\"preconfig\")) {\n component.motif.options._preconfig = props[key];\n delete props[key];\n } else {\n // var callback = props[key];\n // if (typeof callback === \"function\") {\n // } else {\n }\n });\n }\n}\n\nconst _transitionSources = new WeakMap<ComponentBase, any>();\n\nfunction setTransition(component: ComponentBase, value: any, live: boolean): void {\n const transition = component.motif.options.transition;\n if (typeof value === 'string' && value.length > 0) {\n transition.name = value;\n if (live) transition.classes = undefined;\n } else if (value && typeof value === 'object') {\n if (typeof value.name === 'string' && value.name.length > 0) {\n transition.name = value.name;\n }\n if (!('mode' in value)) {\n transition.classes = value;\n } else {\n const { mode, ...classes } = value;\n if (isTransitionMode(mode)) {\n transition.mode = mode;\n }\n if (Object.keys(classes).length > 0) {\n transition.classes = classes;\n }\n }\n } else if (live) {\n transition.name = '';\n transition.classes = undefined;\n }\n}\n\nexport function applyTransitionProp(value: any, component: ComponentBase): void {\n if (!component || component.isDisposed) return;\n if (value === undefined || value === null) return;\n if (_transitionSources.get(component) === value) return;\n _transitionSources.set(component, value);\n if (typeof value === 'function') {\n component.bindings.watch(() => {\n const current = value();\n if (component.isDisposed) return;\n setTransition(component, current, true);\n });\n return;\n }\n setTransition(component, value, false);\n}\n\nexport function isComponentLike(value: any): boolean {\n if (value instanceof ComponentBase) return true;\n return Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase);\n}\n\nconst _textBindingWarned = new WeakSet<object>();\n\nfunction warnComponentInTextBinding(component: ComponentBase, value: any): void {\n if (_textBindingWarned.has(component)) return;\n _textBindingWarned.add(component);\n reportWarning('MJX204', [], { value: Array.isArray(value) ? `ComponentBase[${value.length}]` : 'ComponentBase' });\n}\n\nconst COMPONENT_OPTION_KEYS = ['hideStrategy', 'disableDisposal'] as const;\n\nexport function applyComponentOptions(source: any, component: ComponentBase): void {\n if (!source || typeof source !== 'object' || !component || component.isDisposed) return;\n for (const key of COMPONENT_OPTION_KEYS) {\n if (source[key] !== undefined) (component.motif.options as any)[key] = source[key];\n }\n}\n\n/** `applyPlainElementProps`'un DOM'a yazmayacağı çerçeve anahtarları. */\nconst PLAIN_ELEMENT_SKIP = new Set([\n 'ref', 'key', 'indexkey', 'inject', 'options', 'props', 'settings', 'isSvg',\n 'childs', 'initializeComponent', 'runover', 'transition', 'preconfig', 'nodes', 'onElementCreating'\n]);\n\nconst SPREAD_URL_ATTRIBUTES = new Set(['href', 'src', 'action', 'formaction', 'xlink:href']);\nconst JAVASCRIPT_URL = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\n\nfunction isJavascriptUrl(value: unknown): boolean {\n if (value === undefined || value === null || typeof value === 'boolean') return false;\n try { return JAVASCRIPT_URL.test(String(value)); } catch { return false; }\n}\n\nfunction guardSpreadUrl(key: string, read: () => any): () => any {\n return () => {\n let value = read();\n if (typeof value === 'function') value = value();\n if (typeof value === 'function') value = value();\n if (!isJavascriptUrl(value)) return value;\n reportWarning('MJX125', [key]);\n return null;\n };\n}\n\nexport function applyPlainElementProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const keys = Object.keys(props);\n if (keys.length === 0) return;\n let attrs: Record<string, any> | null = null;\n let applied: Map<string, any> | null = null;\n for (const key of keys) {\n if (PLAIN_ELEMENT_SKIP.has(key)) continue;\n if (key.startsWith('x-') || key.startsWith('x:') || key.startsWith('__')) continue;\n let v = props[key];\n if (v === undefined) continue;\n if (/^on/i.test(key)) {\n if (typeof v === 'function') component.motif.on(key as any, v as any);\n continue;\n }\n if (typeof v === 'function' && v.length > 0) continue;\n if (key === 'innerHTML') {\n reportWarning('MJX124', []);\n continue;\n }\n if (SPREAD_URL_ATTRIBUTES.has(key.toLowerCase())) {\n if (typeof v === 'function') {\n v = guardSpreadUrl(key, v);\n } else if (isJavascriptUrl(v)) {\n reportWarning('MJX125', [key]);\n continue;\n }\n }\n (applied ??= appliedDomProps(component)).set(key, v);\n if (key === 'class' || key === 'className') {\n component.class.add(v && typeof v === 'object' && !Array.isArray(v) ? [v] : v);\n } else if (key === 'style') {\n component.style(v);\n } else if (key === 'value' || key === 'checked' || key === 'selected') {\n component.bindings.add(key, v);\n } else {\n (attrs ??= {})[key] = v;\n }\n }\n if (attrs) component.attr.add(attrs);\n}\n\nconst _appliedDomProps = new WeakMap<ComponentBase, Map<string, any>>();\nfunction appliedDomProps(component: ComponentBase): Map<string, any> {\n let m = _appliedDomProps.get(component);\n if (!m) { m = new Map(); _appliedDomProps.set(component, m); }\n return m;\n}\n\n/** Bileşen etiketinden köke düşen ortak öznitelikler. */\nconst FALLTHROUGH_KEYS = new Set(['class', 'className', 'style', 'id', 'tabindex', 'role']);\nfunction isFallthroughKey(key: string): boolean {\n return FALLTHROUGH_KEYS.has(key) || key.startsWith('aria-') || key.startsWith('data-');\n}\n\nexport function applyFallthroughProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const applied = _appliedDomProps.get(component);\n let subset: Record<string, any> | null = null;\n for (const key of Object.keys(props)) {\n if (!isFallthroughKey(key)) continue;\n const v = props[key];\n if (v === undefined || v === null) continue;\n if (typeof v === 'function' && v.length > 0) continue;\n if (applied && applied.has(key) && Object.is(applied.get(key), v)) continue;\n (subset ??= {})[key] = v;\n }\n if (subset) applyPlainElementProps(subset, component);\n}\n\nconst componentMethods: Record<string, unknown> = {\n \"oninitializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"initializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfigured\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfig\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilding\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilt\": (sender: ComponentBase, e: EventArgs) => { },\n \"onmounted\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitializing\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitialized\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposing\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposed\": (sender: ComponentBase, e: EventArgs) => { },\n \"onvisibilitychanged\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondeactivated\": (sender: ComponentBase, e: EventArgs) => { },\n \"onactivated\": (sender: ComponentBase, e: EventArgs) => { },\n};\n\n\nfunction findAppendableComponent(component: ComponentBase): ComponentBase | null | undefined {\n\n return safeCall<ComponentBase | null | undefined>(() => {\n if (!component || component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findAppendableComponent(component.parent);\n }\n return null;\n }, 'findAppendableComponent', null);\n\n}\n\n\nfunction findParentElement(component: ComponentBase): ComponentBase | null {\n\n try {\n if (component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findParentElement(component.parent);\n }\n } catch (error) {\n throw error;\n }\n return null;\n}\n\n\nfunction onElementAttached(element: Element, callback: () => any): (() => void) | null {\n if (document.contains(element)) {\n callback();\n return null;\n }\n\n let done = false;\n const observer = new MutationObserver(() => {\n if (done) { return; }\n if (document.contains(element)) {\n done = true;\n observer.disconnect();\n callback();\n }\n });\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n });\n\n return () => {\n if (done) { return; }\n done = true;\n try { observer.disconnect(); } catch { /* ignore */ }\n };\n}\n\nexport function notifyActivated(component: ComponentBase): void {\n unpinServiceOwner(component);\n ComponentHelper.activateTree(component);\n}\nexport function notifyDeactivated(component: ComponentBase): void {\n pinServiceOwner(component);\n ComponentHelper.deactivateTree(component);\n}","import { ComponentBase } from \"./componentBase\";\nimport { reportError } from \"../common/diagnostics\";\n\nconst MAX_FACTORY_DEPTH = 100;\n\nexport function resolveComponent(input: unknown, props?: any): any {\n let current: any = input;\n let depth = 0;\n while (typeof current === \"function\") {\n if (current.prototype instanceof ComponentBase) {\n return new current(props);\n }\n if (++depth > MAX_FACTORY_DEPTH) {\n reportError('MJX112', undefined, MAX_FACTORY_DEPTH);\n return current;\n }\n current = current(props);\n }\n return current;\n}","import { dom } from \"../\";\nimport { ComponentBase, IBaseProp, ParseProps, applyComponentOptions, applyFallthroughProps, applyTransitionProp, extractRefs, safeCallSilent, takePendingRefs, untracked } from \"../\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { ElementType, EventArgs } from \"./types\";\nimport { callReported } from \"../common/diagnostics\";\n\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nfunction readElementTag(ctor: any): string | undefined {\n try {\n const tag = ctor?.elementTag;\n if (typeof tag === 'string') {\n const trimmed = tag.trim();\n if (trimmed) return trimmed;\n }\n } catch { /* ignore */ }\n return undefined;\n}\n\nfunction createDeclaredElement(tag: string, ctor: any, props: any): any {\n const declaredNs = typeof ctor?.elementNamespace === 'string' && ctor.elementNamespace\n ? ctor.elementNamespace as string\n : undefined;\n const isSvg = declaredNs === SVG_NAMESPACE || props?.options?.isSvg === true || props?.__isSvgElement === true;\n if (isSvg) {\n if (props && typeof props === 'object') { (props as any).isSvg = true; }\n return dom.createElementNS(declaredNs || SVG_NAMESPACE, tag, props);\n }\n return dom.createElement(tag, props);\n}\n\nexport class Component<TElement extends ElementType = any, TProps extends object = any> extends ComponentBase<TElement, TProps> {\n\n public static elementTag?: string;\n public static elementNamespace?: string;\n\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>);\n constructor(element: TElement | string, options: IBaseProp<TProps>);\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor(elementOrParams?: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor() {\n const derivedCtor: any = new.target;\n var args = arguments;\n var elementOrParams;\n var options;\n if (args.length === 1) {\n elementOrParams = args[0];\n } else if (args.length === 2) {\n elementOrParams = args[0];\n options = args[1];\n }\n\n if (elementOrParams instanceof Function) {\n elementOrParams = resolveComponent(elementOrParams, options);\n }\n if (Array.isArray(elementOrParams)) {\n const letter = CreateFragment();\n super(letter, {} as TProps);\n var ops = Object.create(options || {});\n for (const key in elementOrParams) {\n const element = elementOrParams[key];\n this.controls.add(new Component(element, ops as any));\n }\n } else\n if (typeof elementOrParams === 'string' && elementOrParams.trim().length > 0) {\n // İlk parametre element ise\n if (!options) { options = {} as any; }\n\n if (options?.options && options.options.isSvg || options?.__isSvgElement) {\n const el = dom.createElementNS('http://www.w3.org/2000/svg', elementOrParams, options);\n (options as any)['isSvg'] = true;\n super(el as TElement, options as TProps);\n } else {\n const el = dom.createElement(elementOrParams, options);\n\n super(el as TElement, options as TProps);\n }\n // DOM prop'ları (spread/attr) ComponentBase ctor'ında uygulanır: düz Component'ta tümü,\n // alt sınıflarda yalnızca ortak öznitelikler (applyFallthroughProps).\n } else if (elementOrParams instanceof Node) {\n super(elementOrParams as any, options as TProps);\n } else if (elementOrParams instanceof ComponentBase) {\n // Hazır instance geldi; olduğu gibi kullan\n return elementOrParams as any;\n }\n else {\n // Constructor'a element verilmedi (undefined/null/boş) ya da element olarak\n // tanınmayan bir değer geldi. bu iki olasılığa neden olur :\n // a) Sınıf bir element türü bildirmiş → o türde gerçek element üretilir\n // b) Bildirmemiş → FRAGMENT: kök yorum düğümü (yer tutucu),\n // çocuklar açılış/kapanış işaretçileri arasına render edilir\n // Her bileşenin bir elementi olmak zorunda olduğundan, fragment kök olarak yorum düğümü kullanılır.\n // props hangi argümanda olduğu çağrı biçimine göre değişir:\n // new Component({ ...props }) → props İLK argüman\n // super(void 0, props) / super(null, props) → props İKİNCİ argüman\n const fragmentProps = (elementOrParams && typeof elementOrParams === 'object')\n ? elementOrParams\n : options;\n\n // Sınıf bir element türü bildirdiyse (statik elementTag — derleyici\n // Component<HTMLDivElement> generic'inden üretir fragment yerine\n // O TÜRDE gerçek element oluşturulur.\n const declaredTag = readElementTag(derivedCtor);\n if (declaredTag) {\n const declaredEl = createDeclaredElement(declaredTag, derivedCtor, fragmentProps);\n super(declaredEl as TElement, (fragmentProps ?? {}) as TProps);\n } else {\n super(CreateFragment(), (fragmentProps ?? {}) as TProps);\n }\n\n // Her iki durumda da JSX çocukları (props.childs) içeriğe eklenir.\n // Alt sınıflar initializeComponent'i ezdiği için FragmentNode.initializeComponent'e güvenilemez.\n const kids = this.childs;\n if (Array.isArray(kids) && kids.length) {\n for (const kid of kids) {\n if (kid) this.controls.add(kid);\n }\n }\n }\n }\n\n\n}\n\n\ntype viewFn<P extends object> = (props: P) => any;\n\nexport function FNComponent<P extends object>(view: viewFn<P>) {\n\n return (props: P) => {\n //debugger; \n var comp = motifFragment({\n ...props as any,\n });\n comp.controls.add(view(props) as any);\n return comp;\n };\n}\n\nfunction applyJsxFrameworkProps(target: any, props: any, refs: any[]): any {\n if (!props || typeof props !== 'object') return target;\n if (!(target instanceof ComponentBase)) return target;\n\n applyRefs(target, refs.concat(extractRefs(props)));\n\n // Fonksiyon bileşeni etiketindeki ortak öznitelikler (class/id/aria-*…) döndürülen köke düşer.\n // Kök `<div {...props}/>` ise aynı değerler zaten uygulanmıştır; ikinci kez uygulanmaz.\n applyFallthroughProps(props, target as ComponentBase);\n applyComponentOptions((props as any).options, target as ComponentBase);\n if (Object.prototype.hasOwnProperty.call(props, 'transition')) {\n applyTransitionProp((props as any).transition, target as ComponentBase);\n }\n\n const runover = (props as any).runover;\n if (!runover || typeof runover !== 'object') return target;\n\n const handlers: any[] = (target as any)._base?._onConfigHandlers;\n const configuredBefore = Array.isArray(handlers) ? handlers.length : 0;\n const initializingBefore = handlerCount(target, '_onInitializingHandlers');\n const initializedBefore = handlerCount(target, '_onInitializedHandlers');\n ParseProps(runover, target as ComponentBase);\n\n callAddedHandlers(target, '_onInitializingHandlers', initializingBefore, 'onInitializing');\n callAddedHandlers(target, '_onInitializedHandlers', initializedBefore, 'onInitialized');\n\n // Fonksiyon bileşeninin kökü düz bir `Component` olduğunda config aşaması yapıcıda\n // ÇOKTAN çalışmıştır (`isConfigured`); sonradan kaydedilen preconfig/onConfig bir daha\n // çağrılmayacağı için burada elle koşulur. Yalnızca yeni eklenenler çalıştırılır.\n if ((target as any).isConfigured) {\n const pre = (target as any).motif.options?._preconfig;\n if (typeof pre === 'function') {\n safeCallSilent(() => pre(target), 'motifComponent.preconfig');\n }\n const after: any[] = (target as any)._base?._onConfigHandlers;\n if (Array.isArray(after)) {\n for (let i = configuredBefore; i < after.length; i++) {\n const fn = after[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', 'onConfig');\n }\n }\n }\n return target;\n}\n\nfunction applyRefs(target: any, refs: any[]): any {\n if (target instanceof ComponentBase) {\n for (const fn of takePendingRefs(target, refs)) {\n callReported(() => fn(target), 'MJX122', 'ref');\n }\n }\n return target;\n}\n\nfunction handlerCount(target: any, listName: string): number {\n const list: any[] = target._base?.[listName];\n return Array.isArray(list) ? list.length : 0;\n}\n\nfunction callAddedHandlers(target: any, listName: string, from: number, hook: string): void {\n const list: any[] = target._base?.[listName];\n if (!Array.isArray(list)) return;\n for (let i = from; i < list.length; i++) {\n if (target.isDisposed) return;\n const fn = list[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', hook);\n }\n}\n\nfunction resolveChildExpression(probe: any): any {\n if (typeof probe !== 'function') return undefined;\n let value: any;\n try { value = untracked(probe); } catch { return undefined; }\n if (value instanceof ComponentBase) return value;\n if (Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase)) return value;\n return undefined;\n}\n\nexport function motifComponent(element: unknown, props?: any) {\n\n // Etiket adı: element yaratımı (HTML/SVG) ve spread prop uygulaması Component ctor'ının string parametresinde\n if (typeof element === \"string\") {\n if (element === \"text\" && props && props.__childExpr) {\n const resolved = resolveChildExpression(props.__childExpr);\n if (resolved !== undefined) return resolved;\n }\n return new Component(element, props);\n }\n\n if (element instanceof ComponentBase || element instanceof Component) {\n return element;\n }\n\n // Class component → new, function component/factory → çağır (try/catch tespiti yok)\n if (typeof element === \"function\") {\n const refs = element.prototype instanceof ComponentBase ? [] : extractRefs(props);\n const el = resolveComponent(element, props);\n if (typeof el == \"object\" && el !== null && 'el' in el) {\n return applyRefs(materializeOptionsObject(el, props), refs);\n }\n // Sınıf bileşeninde props yapıcıda işlendi; fonksiyon bileşeninde ise dış etiketin\n // çerçeve prop'ları (direktifler, initializeComponent, yaşam döngüsü) hiçbir yere uygulanmamıştı.\n return applyJsxFrameworkProps(el, props, refs);\n }\n\n if (typeof element == \"object\" && element !== null && 'el' in element) {\n return materializeOptionsObject(element, props);\n }\n return new Component(element, props);\n}\n\nfunction materializeOptionsObject(spec: any, props: any): any {\n const result: any = motifComponent(spec.el, props);\n Object.getOwnPropertyNames(spec).forEach(key => {\n if (key !== 'el' && key !== 'ctor') {\n result[key] = spec[key];\n }\n });\n if (typeof spec.ctor === 'function') {\n callReported(() => spec.ctor.call(result, props), 'MJX122', 'ctor');\n }\n return result;\n}\nexport function motifFragment(props?: any) {\n return new FragmentNode(props);\n}\n\nfunction CreateFragment() {\n const fragment = dom.createComment(\"\");\n return fragment;\n}\n\nexport class FragmentNode<TProps extends object = any> extends Component<Comment, TProps> {\n\n constructor(options?: IBaseProp<TProps>);\n constructor(element: any, props: any);\n constructor(arg1?: any, arg2?: any) {\n if (arguments.length <= 1) {\n super(CreateFragment() as any, arg1 as any);\n } else {\n super(CreateFragment() as any, arg2 as any);\n }\n }\n\n public override initializeComponent(sender: ComponentBase): void {\n const s = (this as any).childs as ComponentBase[] | undefined;\n if (Array.isArray(s) && s.length) {\n for (const child of s) {\n if (child) this.controls.add(child);\n }\n }\n safeCallSilent(() => {\n const nodes = (this.motif.options as any)?.props?.nodes as any[] | undefined;\n if (Array.isArray(nodes) && nodes.length) {\n for (const n of nodes) {\n if (n) this.controls.add(n);\n }\n }\n }, 'Fragment.initializeComponent.props.nodes');\n }\n}\n\n\nexport class motifDocument {\n public router: any = {};\n public context: any = {};\n public run(appElement: Node, app: Component): Component {\n const MainApp = new Component(appElement, {});\n app.parent = MainApp;\n MainApp.controls.add(app);\n //const renderer = new motifRenderer();\n //renderer.render(MainApp);\n MainApp.build();\n return MainApp;\n //console.warn(\"MainApp:\", MainApp);\n }\n}\n","import { IDisposable } from \"../\";\r\nimport { errorHandler } from \"../common/ErrorHandler\";\r\nimport { motifError, reportError } from \"../common/diagnostics\";\r\n\r\nconst glblths = globalThis as any;\r\nfunction getCurrentDom() {\r\n if (glblths && glblths.motifDom) {\r\n return glblths.motifDom.window.document;\r\n }\r\n return glblths.document;\r\n}\r\n\r\nexport function setDom(dom: any) {\r\n if (glblths) {\r\n glblths.motifDom = dom;\r\n }\r\n}\r\n\r\nexport const dom = {\r\n get window() {\r\n if (glblths && glblths.window) {\r\n return glblths.window;\r\n } else if (glblths && glblths) {\r\n return glblths.motifDom.window;\r\n } else {\r\n return glblths;\r\n }\r\n },\r\n _created: new Map<any, any>(),\r\n document: getCurrentDom(),\r\n createElement(tagName: string, options?: any): any {\r\n const doc = getCurrentDom();\r\n if (!doc) {\r\n throw motifError('MJX101', tagName);\r\n }\r\n if (tagName === \"text\") {\r\n return doc.createTextNode('');\r\n }\r\n if (!this._created.has(tagName)) {\r\n const view = doc.createElement(tagName, options);\r\n this._created.set(tagName, view);\r\n }\r\n const tpl = this._created.get(tagName);\r\n return tpl.cloneNode(false);\r\n },\r\n\r\n createDocumentFragment(): any {\r\n try {\r\n var cd = getCurrentDom();\r\n if (cd) {\r\n return cd.createDocumentFragment();\r\n }\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createDocumentFragment', error);\r\n }\r\n\r\n },\r\n createComment(content: any) {\r\n try {\r\n return getCurrentDom()?.createComment(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createComment', error);\r\n }\r\n\r\n },\r\n createTextNode(content: any) {\r\n try {\r\n return getCurrentDom()?.createTextNode(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createTextNode', error);\r\n }\r\n\r\n },\r\n querySelectorAll(selectors: string) {\r\n try {\r\n return getCurrentDom()?.querySelectorAll(selectors)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.querySelectorAll', error);\r\n }\r\n\r\n },\r\n createElementNS(namepsaceUri: string, tagName: string, options?: any): any {\r\n try {\r\n return getCurrentDom()?.createElementNS(namepsaceUri, tagName, options)\r\n } catch (error) {\r\n reportError('MJX103', error, tagName);\r\n }\r\n\r\n },\r\n convertToSvgElement(element: Element): Element {\r\n\r\n const SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\r\n const tagName = element.tagName.toLowerCase();\r\n const newSvgElement = document.createElementNS(SVG_NAMESPACE, tagName);\r\n\r\n for (const attr of element.attributes) {\r\n newSvgElement.setAttribute(attr.name, attr.value);\r\n }\r\n\r\n while (element.firstChild) {\r\n newSvgElement.appendChild(element.firstChild);\r\n }\r\n\r\n const parent = element.parentNode;\r\n if (parent) {\r\n parent.replaceChild(newSvgElement, element);\r\n }\r\n\r\n return newSvgElement;\r\n },\r\n\r\n get body() {\r\n return getCurrentDom()?.body;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nconst SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\r\nexport enum Namespace {\r\n HTML = 'http://www.w3.org/1999/xhtml',\r\n SVG = 'http://www.w3.org/2000/svg'\r\n}\r\n\r\n\r\nfunction _$<T extends Element>(namespace: Namespace, description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n const match = SELECTOR_REGEX.exec(description);\r\n\r\n if (!match) {\r\n throw motifError('MJX102', description);\r\n }\r\n\r\n const tagName = match[1] || 'div';\r\n let result: T;\r\n\r\n if (namespace !== Namespace.HTML) {\r\n result = dom.createElementNS(namespace as string, tagName) as T;\r\n } else {\r\n result = dom.createElement(tagName) as unknown as T;\r\n }\r\n\r\n if (match[3]) {\r\n result.id = match[3];\r\n }\r\n if (match[4]) {\r\n result.className = match[4].replace(/\\./g, ' ').trim();\r\n }\r\n if (attrs) {\r\n Object.entries(attrs).forEach(([name, value]) => {\r\n if (typeof value === 'undefined') {\r\n return;\r\n }\r\n\r\n if (/^on\\w+$/.test(name)) {\r\n (<any>result)[name] = value;\r\n } else if (name === 'selected') {\r\n if (value) {\r\n result.setAttribute(name, 'true');\r\n }\r\n\r\n } else {\r\n result.setAttribute(name, value);\r\n }\r\n });\r\n }\r\n result.append(...children);\r\n return result as T;\r\n}\r\n\r\nexport function $<T extends HTMLElement>(description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n return _$(Namespace.HTML, description, attrs, ...children);\r\n}\r\n\r\n\r\n\r\nclass DomListener implements IDisposable {\r\n\r\n private _handler: (e: any) => void;\r\n private _node: EventTarget;\r\n private readonly _type: string;\r\n private readonly _options: boolean | AddEventListenerOptions;\r\n\r\n constructor(node: EventTarget, type: string, handler: (e: any) => void, options?: boolean | AddEventListenerOptions) {\r\n this._node = node;\r\n this._type = type;\r\n this._handler = handler;\r\n this._options = (options || false);\r\n this._node.addEventListener(this._type, this._handler, this._options);\r\n }\r\n\r\n dispose(): void {\r\n if (!this._handler) {\r\n // Already disposed\r\n return;\r\n }\r\n\r\n this._node.removeEventListener(this._type, this._handler, this._options);\r\n\r\n // Prevent leakers from holding on to the dom or handler func\r\n this._node = null!;\r\n this._handler = null!;\r\n }\r\n}\r\n\r\nexport function addDisposableListener<K extends keyof GlobalEventHandlersEventMap>(node: EventTarget, type: K, handler: (event: GlobalEventHandlersEventMap[K]) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, options: AddEventListenerOptions): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCaptureOrOptions?: boolean | AddEventListenerOptions): IDisposable {\r\n return new DomListener(node, type, handler, useCaptureOrOptions);\r\n}\r\n\r\n\r\n\r\n","// import { dom } from \"../browser\";\r\nimport { TRANSITION_SLOT } from \"../component/optionsSlots\";\r\n// import { effect } from \"../store\";\r\nimport { dom } from \"../\";\r\nimport { Component, ComponentBase, resolveComponent, notifyDeactivated } from \"../\";\r\nimport { reportError } from \"../common/diagnostics\";\r\n\r\nexport class ControlCollection {\r\n constructor(private owner: ComponentBase) {\r\n\r\n }\r\n items: ComponentBase[] = [];\r\n\r\n add(...control: ComponentBase[]): ComponentBase[]\r\n add(index?: number, ...control: ComponentBase[]): ComponentBase[]\r\n add(): ComponentBase[] {\r\n const count = arguments.length;\r\n if (count === 0) return [] as ComponentBase[];\r\n const first = arguments[0];\r\n if (count === 1 && first instanceof ComponentBase) {\r\n if (first.isDisposed) return [] as ComponentBase[];\r\n return [this._insertOne(undefined, first)];\r\n }\r\n const args = Array.from(arguments) as any[];\r\n if (typeof args[0] === 'number' && args.length > 1) {\r\n const index = args[0] as number;\r\n const children = ([] as ComponentBase[]).concat(...args.slice(1));\r\n return this.insert(index, ...children);\r\n } else {\r\n const children = ([] as ComponentBase[]).concat(...args);\r\n return this.insert(undefined, ...children);\r\n }\r\n }\r\n insert(index?: number, ...controls: ComponentBase[]): ComponentBase[] {\r\n const flat: ComponentBase[] = ([] as any[]).concat(...controls as any);\r\n return flat.filter(x => x != undefined && !x.isDisposed).map(control => this._insertOne(index, control));\r\n }\r\n private _insertOne(index: number | undefined, control: ComponentBase): ComponentBase {\r\n control = resolveComponent(control);\r\n if (typeof control == 'string' || typeof control == 'number' || typeof control == 'boolean' || typeof control == 'bigint') {\r\n control = new Component(dom.createTextNode(control), null as any);\r\n }\r\n if (control.parent) { control.parent.controls.detach(control); }\r\n\r\n if (index != undefined && index >= 0) {\r\n this.items.splice(index, 0, control);\r\n } else {\r\n this.items.push(control);\r\n }\r\n control.parent = this.owner;\r\n\r\n const pendingLeave = (control as any).__pendingLeave as PendingLeave | undefined;\r\n if (pendingLeave) {\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n pendingLeave.promise.then(() => {\r\n if (control.isDisposed || this.owner.isDisposed || control.parent !== this.owner) return;\r\n if (this.onAdd && this.owner.isBuilt) this.onAdd(control);\r\n });\r\n return control;\r\n }\r\n\r\n if (this.onAdd && this.owner.isBuilt) {\r\n this.onAdd(control);\r\n }\r\n\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n return control;\r\n }\r\n remove(control: ComponentBase) {\r\n var index = this.items.indexOf(control);\r\n if (index > -1) {\r\n this.items.splice(index, 1);\r\n try { control.dispose(); } catch { /* ignore */ }\r\n }\r\n }\r\n detach(control: ComponentBase): Promise<void> {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return Promise.resolve();\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return Promise.resolve();\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n return runLeaveThenDetach(control, () => { if (this.onRemove) this.onRemove(control); });\r\n }\r\n\r\n silentDetach(control: ComponentBase, unlinkOnly: boolean = false) {\r\n if (unlinkOnly) { this.silentUnlink(control); return; }\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return;\r\n control.parent = null;\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n\r\n silentUnlink(control: ComponentBase) {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n }\r\n\r\n async clearAsync(): Promise<void> {\r\n const items = this.items.splice(0, this.items.length); \r\n await Promise.all(items.map(c => c.dispose())); \r\n }\r\n\r\n\r\n clear() {\r\n var items = this.items.splice(0, this.items.length);\r\n items.forEach(c => {\r\n try { c.dispose(); } catch { /* ignore */ }\r\n });\r\n }\r\n get length() {\r\n return this.items.length;\r\n }\r\n forEach(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n this.items.forEach(callbackfn);\r\n }\r\n map(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n return this.items.map(callbackfn);\r\n }\r\n onAdd?: (control: ComponentBase) => void;\r\n onRemove?: (control: ComponentBase) => void;\r\n onAddBeforeBuild?: (control: ComponentBase) => void;\r\n move(control: ComponentBase, before?: ComponentBase | null): void {\r\n if (!control || control.isDisposed) return;\r\n if (before === control) return;\r\n if (control.parent !== this.owner) return;\r\n if (before && before.parent !== this.owner) return;\r\n\r\n const oldIndex = this.items.indexOf(control);\r\n if (oldIndex === -1) return;\r\n const beforeIndex = before ? this.items.indexOf(before) : -1;\r\n if (before && beforeIndex === -1) return;\r\n\r\n const alreadyInPlace = before ? beforeIndex === oldIndex + 1 : oldIndex === this.items.length - 1;\r\n if (alreadyInPlace) return;\r\n\r\n\r\n this.items.splice(oldIndex, 1);\r\n\r\n if (!before) {\r\n this.items.push(control);\r\n } else {\r\n const newBeforeIndex = this.items.indexOf(before);\r\n const insertAt = newBeforeIndex >= 0 ? newBeforeIndex : this.items.length;\r\n this.items.splice(insertAt, 0, control);\r\n }\r\n\r\n if ((control as any).isWait) {\r\n return;\r\n }\r\n const container = findAppendableElement(this.owner);\r\n if (!container) return;\r\n\r\n const referenceNode: Node | null = before ? (before.element as unknown as Node) : computeAppendReference(this.owner);\r\n\r\n moveComponentDomRange(control, container, referenceNode);\r\n }\r\n\r\n moveToIndex(control: ComponentBase, index: number): void {\r\n if (!control || control.isDisposed) return;\r\n if (!Number.isFinite(index as any)) return;\r\n if (index < 0) index = 0;\r\n if (index > this.items.length) index = this.items.length;\r\n if (this.items.indexOf(control) === -1) return;\r\n const before = index >= this.items.length ? null : this.items[index];\r\n this.move(control, before);\r\n }\r\n}\r\n\r\n/** Owner için DOM'a eklenebilir gerçek element'i bulur. */\r\nfunction findAppendableElement(owner: ComponentBase): HTMLElement | Node | null {\r\n let c: ComponentBase | null = owner;\r\n while (c) {\r\n const node = c.element as any as Node;\r\n if (node && node.nodeType !== Node.COMMENT_NODE && node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && node.nodeType !== Node.TEXT_NODE) {\r\n return node as any;\r\n }\r\n c = c.parent;\r\n }\r\n return null;\r\n}\r\n\r\n/** Owner fragment ise sona ekleme referansını, değilse null döndürür. */\r\nfunction computeAppendReference(owner: ComponentBase): Node | null {\r\n const node = owner.element as any as Node;\r\n if (node && node.nodeType === Node.COMMENT_NODE) {\r\n return (owner as any).motif.options?.closeFragment || null;\r\n }\r\n return null;\r\n}\r\n\r\n/** Bir component'in kök DOM aralığını (tek element veya fragment aralığı) referenceNode öncesine taşır. */\r\nfunction moveComponentDomRange(control: ComponentBase, container: Node, referenceNode: Node | null) {\r\n const node = control.element as any as Node | null;\r\n if (!node) return;\r\n\r\n if (node.nodeType !== Node.COMMENT_NODE) {\r\n try { container.insertBefore(node, referenceNode); } catch { }\r\n return;\r\n }\r\n\r\n const open = node;\r\n const close = ((control as any).motif.options?.closeFragment as Node | undefined) || null;\r\n if (!close) { try { container.insertBefore(open, referenceNode); } catch { } return; }\r\n\r\n if (referenceNode && isNodeInRange(open, close, referenceNode)) {\r\n referenceNode = close.nextSibling;\r\n }\r\n\r\n const frag = (dom.createDocumentFragment && dom.createDocumentFragment()) || container.ownerDocument?.createDocumentFragment?.() || (function () { try { return document.createDocumentFragment(); } catch { return null as any; } })();\r\n if (!frag) {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { container.insertBefore(current, referenceNode); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n return;\r\n }\r\n\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { (frag as any).appendChild(current); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n try { container.insertBefore(frag as any, referenceNode); } catch { }\r\n}\r\n\r\nfunction isNodeInRange(open: Node, close: Node, test: Node): boolean {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n if (current === test) return true;\r\n if (current === close) break;\r\n current = current.nextSibling;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX120', undefined);\r\n }\r\n return false;\r\n}\r\n\r\nfunction detachComponentDom(control: ComponentBase): void {\r\n const node = control.element as unknown as Node | null;\r\n if (!node) return;\r\n const opts: any = (control as any).motif.options;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n if (!node.parentNode) return;\r\n const close = (opts?.closeFragment as Node | undefined) || null;\r\n const cache: DocumentFragment = opts.cache ?? (opts.cache = dom.createDocumentFragment());\r\n let current: Node | null = node;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n cache.appendChild(current);\r\n if (!close || current === close) break;\r\n current = after;\r\n }\r\n return;\r\n }\r\n if (node.parentNode) {\r\n node.parentNode.removeChild(node);\r\n return;\r\n }\r\n const placeholder = opts?.placeholder as Node | undefined;\r\n if (placeholder && placeholder.parentNode) placeholder.parentNode.removeChild(placeholder);\r\n}\r\n\r\ninterface PendingLeave {\r\n promise: Promise<void>;\r\n finish: () => void;\r\n}\r\n\r\nfunction runLeaveThenDetach(control: ComponentBase, notify: () => void): Promise<void> {\r\n let resolveDone: () => void = () => { };\r\n const promise = new Promise<void>(resolve => { resolveDone = resolve; });\r\n let pending = 1;\r\n let finished = false;\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n if ((control as any).__pendingLeave?.promise === promise) delete (control as any).__pendingLeave;\r\n if (!control.isDisposed) {\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n try {\r\n notify();\r\n } catch (error) {\r\n reportError('MJX118', error);\r\n }\r\n resolveDone();\r\n };\r\n const arrive = () => {\r\n pending--;\r\n if (pending === 0) finish();\r\n };\r\n const visit = (c: ComponentBase) => {\r\n if (!c || c.isDisposed || !c.element || !c.isVisible || c.isWait) return;\r\n const node = c.element as unknown as Node;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n c.controls.items.forEach(visit);\r\n return;\r\n }\r\n if (node.nodeType !== Node.ELEMENT_NODE) return;\r\n pending++;\r\n let arrived = false;\r\n const once = () => {\r\n if (arrived) return;\r\n arrived = true;\r\n arrive();\r\n };\r\n try {\r\n const opts: any = c.motif.options;\r\n if (!opts[TRANSITION_SLOT] && !opts.transitionOut) {\r\n once();\r\n return;\r\n }\r\n opts.transition.leaveTransition(once);\r\n } catch {\r\n once();\r\n }\r\n };\r\n (control as any).__pendingLeave = { promise, finish } as PendingLeave;\r\n visit(control);\r\n arrive();\r\n return promise;\r\n}\r\n","import { ComponentBase, IBaseProp } from \".\";\r\nimport { Component } from \"./Component\";\r\nimport { Frame } from \"./Frame\";\r\nimport { resolveComponent } from \"./resolveComponent\";\r\nimport { disposableCore } from \"../disposable\";\r\nimport { motifError, reportError } from \"../common/diagnostics\";\r\n\r\nexport interface LazyOptions<T = any> { \r\n Loaderview?: ComponentBase; \r\n Placeholderview?: ComponentBase; \r\n Fallbackview?: ComponentBase;\r\n minDelayMs?: number;\r\n onError?: (error: unknown) => void;\r\n mapResult?: (result: T) => any; \r\n timeoutMs?: number;\r\n signal?: AbortSignal;\r\n retry?: number | LazyRetryOptions;\r\n onRetry?: (attempt: number, error: unknown) => void;\r\n}\r\n\r\nexport interface LazyRetryOptions {\r\n count: number;\r\n delayMs?: number;\r\n whenOnline?: boolean;\r\n}\r\n\r\nfunction normalizeRetry(retry: LazyOptions['retry']): Required<LazyRetryOptions> {\r\n if (typeof retry === 'number') return { count: Math.max(0, Math.floor(retry)), delayMs: 500, whenOnline: true };\r\n if (retry && typeof retry === 'object') {\r\n return {\r\n count: Math.max(0, Math.floor(retry.count || 0)),\r\n delayMs: Math.max(0, retry.delayMs ?? 500),\r\n whenOnline: retry.whenOnline !== false,\r\n };\r\n }\r\n return { count: 0, delayMs: 0, whenOnline: false };\r\n}\r\n\r\nfunction defaultMapper(result: any) {\r\n if (result && typeof result === \"object\" && typeof (result as any).default === \"function\") {\r\n return (result as any).default;\r\n }\r\n return result;\r\n}\r\n\r\n\r\n\r\nexport function Lazy<T>(props: { caller: () => Promise<T>, options?: LazyOptions<T> }): Component;\r\nexport function Lazy(props: any): Component;\r\nexport function Lazy(props: any): Component {\r\n const opts: LazyOptions<any> = (props && props.options) || {};\r\n const frame = new Frame();\r\n const timers = new Set<ReturnType<typeof setTimeout>>();\r\n const trackTimer = (id: ReturnType<typeof setTimeout>) => { try { timers.add(id); } catch { } return id; };\r\n const clearAllTimers = () => {\r\n try { timers.forEach(id => { try { clearTimeout(id); } catch { } }); } catch { }\r\n try { timers.clear(); } catch { }\r\n };\r\n try { frame.motif.register(disposableCore.toDisposable(() => clearAllTimers())); } catch { }\r\n const initial = opts.Placeholderview ?? opts.Loaderview;\r\n if (initial != null) {\r\n frame.navigate(resolveComponent(initial));\r\n }\r\n\r\n const attemptLoad = () => {\r\n if (!opts.timeoutMs && !opts.signal) {\r\n return props.caller();\r\n }\r\n const parts: Promise<any>[] = [props.caller()];\r\n if (opts.timeoutMs && opts.timeoutMs > 0) {\r\n parts.push(new Promise<any>((_, reject) => {\r\n const id = trackTimer(setTimeout(() => reject(motifError('MJX110', opts.timeoutMs!)), opts.timeoutMs));\r\n parts[0].finally(() => { try { clearTimeout(id); timers.delete(id); } catch { } }).catch(() => { /* noop */ });\r\n if (opts.signal) {\r\n const onAbortClear = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\r\n try { opts.signal.addEventListener(\"abort\", onAbortClear, { once: true }); } catch { }\r\n }\r\n }));\r\n }\r\n if (opts.signal) {\r\n parts.push(new Promise<any>((_, reject) => {\r\n if (opts.signal!.aborted) {\r\n reject(motifError('MJX111'));\r\n return;\r\n }\r\n const onAbort = () => {\r\n opts.signal!.removeEventListener(\"abort\", onAbort);\r\n clearAllTimers();\r\n reject(motifError('MJX111'));\r\n };\r\n opts.signal!.addEventListener(\"abort\", onAbort, { once: true });\r\n }));\r\n }\r\n return Promise.race(parts);\r\n };\r\n\r\n const retry = normalizeRetry(opts.retry);\r\n const cleanups = new Set<() => void>();\r\n try { frame.motif.register(disposableCore.toDisposable(() => { cleanups.forEach(c => { try { c(); } catch { } }); cleanups.clear(); })); } catch { }\r\n\r\n const waitBeforeRetry = (attempt: number): Promise<boolean> => new Promise<boolean>(resolve => {\r\n let settled = false;\r\n const finish = (go: boolean) => {\r\n if (settled) return;\r\n settled = true;\r\n cleanups.delete(cancel);\r\n try { if (onlineHandler) window.removeEventListener('online', onlineHandler); } catch { }\r\n try { if (id !== undefined) { clearTimeout(id); timers.delete(id); } } catch { }\r\n try { opts.signal?.removeEventListener('abort', onAbort); } catch { }\r\n resolve(go);\r\n };\r\n const cancel = () => finish(false);\r\n const onAbort = () => finish(false);\r\n let onlineHandler: (() => void) | null = null;\r\n let id: ReturnType<typeof setTimeout> | undefined = undefined;\r\n cleanups.add(cancel);\r\n try { opts.signal?.addEventListener('abort', onAbort, { once: true }); } catch { }\r\n const schedule = () => { id = trackTimer(setTimeout(() => finish(true), retry.delayMs * attempt)); };\r\n const offline = retry.whenOnline && typeof navigator !== 'undefined' && navigator.onLine === false && typeof window !== 'undefined';\r\n if (offline) {\r\n onlineHandler = () => {\r\n try { window.removeEventListener('online', onlineHandler!); } catch { }\r\n onlineHandler = null;\r\n schedule();\r\n };\r\n window.addEventListener('online', onlineHandler);\r\n } else {\r\n schedule();\r\n }\r\n });\r\n\r\n const loadWithRetry = async (): Promise<any> => {\r\n let attempt = 0;\r\n for (; ;) {\r\n try {\r\n return await attemptLoad();\r\n } catch (err) {\r\n if (opts.signal?.aborted || (frame as any).isDisposed || attempt >= retry.count) throw err;\r\n attempt++;\r\n try { opts.onRetry?.(attempt, err); } catch { }\r\n const go = await waitBeforeRetry(attempt);\r\n if (!go || opts.signal?.aborted || (frame as any).isDisposed) throw err;\r\n }\r\n }\r\n };\r\n\r\n const loadPromise = retry.count > 0 ? loadWithRetry() : attemptLoad();\r\n\r\n const startTs = Date.now();\r\n\r\n loadPromise\r\n .then((result: any) => {\r\n if (opts.signal?.aborted) { return; }\r\n const mapper = opts.mapResult ?? defaultMapper;\r\n const target = mapper(result);\r\n const elapsed = Date.now() - startTs;\r\n const minDelay = Math.max(0, (opts.minDelayMs ?? 0));\r\n const remaining = Math.max(0, minDelay - elapsed);\r\n if (remaining > 0) {\r\n const id = trackTimer(setTimeout(() => {\r\n if (!opts.signal?.aborted) {\r\n frame.navigate(resolveComponent(target));\r\n }\r\n }, remaining));\r\n if (opts.signal) {\r\n const onAbortClearDelay = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\r\n try { opts.signal.addEventListener(\"abort\", onAbortClearDelay, { once: true }); } catch { }\r\n }\r\n } else {\r\n frame.navigate(resolveComponent(target));\r\n }\r\n })\r\n .catch((err: any) => {\r\n try { opts.onError?.(err); } catch { /* swallow */ }\r\n if (opts.signal?.aborted) return;\r\n if (opts.Fallbackview != null) {\r\n frame.navigate(resolveComponent(opts.Fallbackview));\r\n } else {\r\n reportError('MJX126', err);\r\n try { frame.motif.clear().catch(() => { }); } catch { }\r\n }\r\n });\r\n\r\n return frame;\r\n}\r\n","import { ComponentBase, IDisposeOptions } from \"./componentBase\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { Lazy } from \"./Lazy\";\nimport { reportError } from \"../common/diagnostics\";\n\nexport interface NavigationHost extends ComponentBase {\n current: ComponentBase | ComponentBase[] | null;\n previouspage: any;\n isBusy: boolean;\n _latestNavigateId: number;\n _navLock: Promise<void>;\n _navAbort?: AbortController;\n _navPending?: number;\n}\n\nexport function hasOwnTransition(component: ComponentBase | null | undefined, phase: 'enter' | 'leave'): boolean {\n const options: any = component?.motif?.options;\n if (!options) return false;\n const transition = options.transition;\n return !!((phase === 'enter' ? options.transitionIn : options.transitionOut) || (transition && (transition.classes || (transition.name && transition.name.length > 0))));\n}\n\nfunction playsLeave(target: ComponentBase | ComponentBase[] | null): boolean {\n if (!target) return false;\n if (Array.isArray(target)) return target.some(t => !!t && !t.isDisposed && hasOwnTransition(t, 'leave'));\n return !target.isDisposed && hasOwnTransition(target, 'leave');\n}\n\nexport function cancelAnimationsDeep(target: any): void {\n if (!target || target.isDisposed) return;\n if (Array.isArray(target)) {\n target.forEach(cancelAnimationsDeep);\n return;\n }\n try { target.motif.options?.transition?.activeCssCancel?.(); } catch { }\n try {\n const anims = target.motif.options?.transition?.activeAnimations;\n if (Array.isArray(anims)) {\n anims.forEach((anim: any) => {\n try {\n if (anim && typeof anim.cancel === 'function') {\n anim.cancel();\n }\n } catch { }\n });\n anims.length = 0;\n }\n } catch { }\n try {\n if (target.controls && target.controls.items) {\n for (const child of target.controls.items) {\n cancelAnimationsDeep(child);\n }\n }\n } catch { }\n}\n\nexport async function disposeNavigationTarget(target: ComponentBase | ComponentBase[] | null, options: IDisposeOptions = { deep: true }): Promise<void> {\n if (!target) return;\n const list = Array.isArray(target) ? target : [target];\n await Promise.all(list.map(async (xr) => {\n if (!xr || xr.isDisposed) return;\n try {\n await xr.dispose(options);\n } catch (err) {\n reportError('MJX115', err);\n }\n }));\n}\n\nexport async function navigateHost(host: NavigationHost, page: ComponentBase | ComponentBase[], keepOldControl: boolean = false): Promise<void> {\n if (host.isDisposed || page == null) return;\n if (host.current !== null && host.current === (page as any)) return;\n\n const navigateId = ++host._latestNavigateId;\n host.isBusy = true;\n\n const complete = (value: any) => {\n if (host.isDisposed) return;\n if (navigateId !== host._latestNavigateId) return;\n const xP = resolveComponent(value);\n host.current = xP;\n try {\n if (Array.isArray(xP)) {\n host.controls.add(...xP);\n } else {\n host.controls.add(xP);\n }\n } catch (error) {\n reportError('MJX114', error);\n }\n host.isBusy = false;\n host.previouspage = xP;\n };\n\n if (!(host._navPending ?? 0) && host.current === null && !(page instanceof Promise)) {\n try {\n complete(page);\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n return;\n }\n\n host._navPending = (host._navPending ?? 0) + 1;\n const prevLock = host._navLock ?? Promise.resolve();\n host._navLock = (async () => {\n try {\n await prevLock;\n\n try { host._navAbort?.abort(); } catch { }\n host._navAbort = new AbortController();\n\n const oldPage = host.current;\n if (oldPage && !keepOldControl) {\n cancelAnimationsDeep(oldPage);\n cancelAnimationsDeep(host);\n const animated = playsLeave(oldPage);\n const leaving = disposeNavigationTarget(oldPage);\n if (animated) {\n leaving.catch(() => { });\n } else {\n await leaving;\n }\n }\n\n try {\n if (page instanceof Promise) {\n const caller = () => page;\n const lazyFrame = Lazy({ caller, options: { signal: host._navAbort?.signal } as any });\n complete(lazyFrame);\n } else {\n complete(page);\n }\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n } finally {\n host._navPending = Math.max(0, (host._navPending ?? 1) - 1);\n }\n })();\n await host._navLock;\n}\n","import { dom } from \"../core\";\nimport { Component } from \"../\";\nimport { ComponentBase, IDisposeOptions } from \"../\";\nimport { Lazy, LazyOptions } from \"../\";\nimport { disposeNavigationTarget, navigateHost } from \"./navigation\";\n\n\nexport class Frame extends Component {\n public current: ComponentBase | ComponentBase[] | null = null;\n public _latestNavigateId = 0;\n public _navLock: Promise<void> = Promise.resolve();\n public _navAbort?: AbortController;\n isBusy: boolean = false;\n constructor(props?: any) {\n super(dom.createComment(''), props);\n if (props && props.childs && Array.isArray(props.childs) && props.childs.length > 0) {\n this.controls.add(props.childs);\n }\n }\n public async dispose(options: IDisposeOptions = { deep: true }) {\n await disposeNavigationTarget(this.current, options);\n await super.dispose(options);\n }\n public async flush() {\n await disposeNavigationTarget(this.current);\n }\n protected override async _clear() {\n await disposeNavigationTarget(this.current);\n }\n previouspage: any;\n public async navigate(page: ComponentBase | ComponentBase[], keepOldControl: boolean = false) {\n await navigateHost(this, page, keepOldControl);\n }\n\n public async navigateLazy<T>(caller: () => Promise<T>, options?: LazyOptions<T>, keepOldControl: boolean = false) {\n const lazyFrame = Lazy({ caller, options });\n await this.navigate(lazyFrame, keepOldControl);\n }\n}\n","const preprocessitem = new Set<Function>();\r\n\r\nexport function preProcessing(callback: () => any) {\r\n preprocessitem.add(callback);\r\n renderPreProcessing();\r\n}\r\n\r\nexport function renderPreProcessing() {\r\n preprocessitem.forEach(i => {\r\n i();\r\n })\r\n}","\r\nimport { Component, ComponentBase, EventArgs } from \"../\";\r\nimport { reportWarning } from \"../common/diagnostics\";\r\n\r\n\r\n// const ContentBodyCollection = new Map<string, ContentBody>();\r\nconst ContentBodyCollectionHandable = new Map<string, ContentBody>();\r\nconst changeBodyCollectionHandler = Symbol('changeBodyCollectionHandler')\r\n\r\n\r\ninterface ContentBlockProps {\r\n target: string\r\n}\r\nexport class ContentBlock extends Component<any, ContentBlockProps> {\r\n constructor(props: ContentBlockProps) {\r\n super(props);\r\n\r\n\r\n // var cb = ContentBodyCollectionHandable.get(props.target);\r\n // if (cb) {\r\n // } else {\r\n // var cb = ContentBodyCollectionHandable.get(props.target);\r\n // if (cb) {\r\n const forward = (control: ComponentBase) => {\r\n this.motif.trigger('controladded', { control });\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n control.motif.options[\"ownerContentBlock\"] = this;\r\n cb.controls.add(control);\r\n }\r\n };\r\n this.controls.onAdd = forward;\r\n this.controls.onAddBeforeBuild = forward;\r\n if (this.childs) {\r\n this.controls.add(...this.childs);\r\n }\r\n\r\n }\r\n public onConfigured(sender: ComponentBase, e: EventArgs): void {\r\n\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n this.controls.items.forEach(x => { x.motif.options[\"ownerContentBlock\"] = this; });\r\n cb.controls.add(...this.controls.items);\r\n } else {\r\n this.context.on(changeBodyCollectionHandler, () => {\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n this.controls.items.forEach(x => { x.motif.options[\"ownerContentBlock\"] = this; });\r\n cb.controls.add(...this.controls.items);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onDisposing(sender: ComponentBase, e: EventArgs): void {\r\n var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n if (cb) {\r\n for (const element of [...cb.controls.items]) {\r\n if (element.motif.options[\"ownerContentBlock\"] !== this) continue;\r\n cb.controls.remove(element);\r\n reportWarning('MJX109', [], element);\r\n }\r\n }\r\n\r\n }\r\n ondisposing(sender: Component<any, ContentBlockProps>) {\r\n // var cb = ContentBodyCollectionHandable.get(this.props.target);\r\n // if (cb) {\r\n }\r\n\r\n}\r\ninterface ContentBodyProps {\r\n name: string,\r\n onconfig?: any\r\n}\r\nexport class ContentBody extends Component<any, ContentBodyProps> {\r\n constructor(props: ContentBodyProps) {\r\n super(props);\r\n ContentBodyCollectionHandable.set(this.props.name, this);\r\n this.context.fire(changeBodyCollectionHandler);\r\n }\r\n ondisposing(sender: Component<any, ContentBodyProps>) {\r\n if (ContentBodyCollectionHandable.get(this.props.name) === this) {\r\n ContentBodyCollectionHandable.delete(this.props.name);\r\n }\r\n }\r\n}\r","import { ComponentBase } from \"./componentBase\";\r\nimport { Application } from \"../\";\r\n\r\nexport const SLOT_REGISTERED_EVENT = Symbol('slotRegistered');\r\nexport const SLOT_UNREGISTERED_EVENT = Symbol('slotUnregistered');\r\n\r\nexport class TransportRegistry {\r\n private static slots: Map<string, ComponentBase> = new Map();\r\n\r\n static registerSlot(name: string, slot: ComponentBase) {\r\n this.slots.set(name, slot);\r\n Application.main.fire(SLOT_REGISTERED_EVENT, { name, slot });\r\n }\r\n static unregisterSlot(name: string, slot: ComponentBase) {\r\n if (this.slots.get(name) === slot) {\r\n this.slots.delete(name);\r\n Application.main.fire(SLOT_UNREGISTERED_EVENT, { name, slot });\r\n }\r\n }\r\n static getSlot(name: string): ComponentBase | undefined {\r\n return this.slots.get(name);\r\n }\r\n}\r","import { 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\nconst NOT_META = Symbol('')\r\ntype MetaReader = (engine: ReactiveEngine, target: any, receiver: any) => unknown\r\n\r\nconst metaReaders = new Map<symbol, MetaReader>([\r\n [Flags.IS_REACTIVE, () => true],\r\n [Flags.IS_READONLY, engine => engine.isReadonly],\r\n [Flags.IS_SUPERFICIAL, engine => engine.superficial],\r\n [Flags.GET_SETUP, (_engine, target) => target],\r\n [Flags.RAW, (engine, target, receiver) => engine.ReactiveMap().get(target) === receiver ? target : NOT_META],\r\n])\r\n\r\nfunction readMeta(engine: ReactiveEngine, target: any, key: unknown, receiver: any): unknown {\r\n if (typeof key !== 'symbol') return NOT_META\r\n const reader = metaReaders.get(key)\r\n return reader === undefined ? NOT_META : reader(engine, target, receiver)\r\n}\r\n\r\nexport function createGetter(engine: ReactiveEngine) {\r\n return function (target: any, p: any, receiver: any) {\r\n const meta = readMeta(engine, target, p, receiver)\r\n if (meta !== NOT_META) return meta\r\n\r\n if (Array.isArray(target) && !engine.isReadonly) {\r\n const patched = engine.arrayMethods.get\r\n if (hasOwn(patched, p)) {\r\n const method = patched[p]\r\n if (ARRAY_MUTATORS.has(p)) addArrayStack(p)\r\n else track(target, p)\r\n return method\r\n }\r\n }\r\n if (setupActive) {\r\n pauseTracking();\r\n engine.track(target, p);\r\n closeSetup();\r\n resetTracking();\r\n }\r\n\r\n const value = Reflect.get(target, p, receiver)\r\n if (p === '__proto__' || isIntrinsicSymbol(p)) return value\r\n\r\n if (!engine.isReadonly) track(target, p)\r\n if (engine.superficial || !isObject(value)) return value\r\n return engine.reactive(value)\r\n }\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\";\nimport { ITERATE_KEY, getRaw, hasOwn, isNumericKey, isReadonly, removeArrayStack } from \"../common\";\nimport { trigger } from \"../reactivity-core\";\n\n\nexport function createSetter(engine: ReactiveEngine) {\n return function (target: any, p: any, newValue: any, receiver: any) {\n if (isReadonly(target)) {\n return false;\n }\n\n const isArray = Array.isArray(target);\n const oldValue = (target as any)[p];\n const oldLength = isArray ? target.length : 0;\n const numeric = isArray && isNumericKey(p);\n const hadKey = numeric ? Number(p) < oldLength : hasOwn(target, p);\n\n const res = Reflect.set(target, p, newValue, receiver);\n\n if (engine.onValueChanged) {\n try { engine.onValueChanged({ raw: target, proxy: receiver }, p); } catch { }\n }\n\n if (getRaw(target) !== getRaw(receiver)) {\n return res;\n }\n if (!isArray && hadKey && Object.is(newValue, oldValue)) {\n return res;\n }\n\n trigger(target, p);\n if (!isArray && !hadKey) {\n trigger(target, ITERATE_KEY);\n }\n if (numeric && !hadKey) {\n trigger(target, 'length');\n }\n if (isArray && p === 'length') {\n const newLength = Number(newValue);\n for (let i = newLength; i < oldLength; i++) {\n trigger(target, String(i));\n }\n }\n removeArrayStack();\n return res;\n }\n}\n","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { ITERATE_KEY, hasOwn, isIntrinsicSymbol, pauseTracking, resetTracking } from \"../common\";\r\nimport { track, trigger } from \"../reactivity-core\";\r\n\r\nexport function createOwn(engine: ReactiveEngine) {\r\n return function ownKeys(target: any) {\r\n const shapeKey = Array.isArray(target) ? 'length' : ITERATE_KEY;\r\n track(target, shapeKey);\r\n return Reflect.ownKeys(target);\r\n }\r\n}\r\n\r\nexport function createHas(engine: ReactiveEngine) {\r\n return function has(target: any, p: any) {\r\n const found = Reflect.has(target, p);\r\n if (isIntrinsicSymbol(p)) return found;\r\n track(target, p);\r\n return found;\r\n }\r\n}\r\n\r\nexport function createDelete(engine: ReactiveEngine) {\r\n return function deleteProperty(target: any, p: any) {\r\n pauseTracking()\r\n try {\r\n const isOwned = hasOwn(target, p);\r\n const result = Reflect.deleteProperty(target, p);\r\n if (isOwned) {\r\n if (Array.isArray(target)) {\r\n trigger(target, 'length');\r\n } else {\r\n trigger(target, p);\r\n trigger(target, ITERATE_KEY);\r\n }\r\n }\r\n return result\r\n } finally { \r\n resetTracking();\r\n }\r\n }\r\n}","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { getRaw, pauseTracking, resetTracking } from \"../common\";\r\n\r\ntype PatchKind = 'lookup' | 'order' | 'join' | 'structural';\r\n\r\nconst PATCHED_ARRAY_METHODS: ReadonlyArray<readonly [string, PatchKind]> = [\r\n ['includes', 'lookup'],\r\n ['indexOf', 'lookup'],\r\n ['lastIndexOf', 'lookup'],\r\n ['sort', 'order'],\r\n ['concat', 'join'],\r\n ['push', 'structural'],\r\n ['pop', 'structural'],\r\n ['shift', 'structural'],\r\n ['unshift', 'structural'],\r\n ['splice', 'structural'],\r\n ['reverse', 'structural'],\r\n];\r\n\r\nconst isLookupMiss = (outcome: unknown) => outcome === false || outcome === -1;\r\n\r\nexport class ArrayMethods {\r\n constructor(public engine: ReactiveEngine) { }\r\n get: Record<string, Function> = this.createArrayMethods();\r\n\r\n createArrayMethods(): Record<string, Function> {\r\n const table: Record<string, Function> = {};\r\n for (const [name, kind] of PATCHED_ARRAY_METHODS) {\r\n table[name] = this.patch(name, kind);\r\n }\r\n return table;\r\n }\r\n\r\n private patch(name: string, kind: PatchKind): Function {\r\n const owner = this;\r\n switch (kind) {\r\n case 'lookup':\r\n return function (this: unknown[], ...needles: any[]) {\r\n const source = getRaw(this) as any;\r\n owner.engine.track(source, 'length');\r\n const direct = source[name](...needles);\r\n if (!isLookupMiss(direct)) return direct;\r\n return source[name](...needles.map(needle => getRaw(needle)));\r\n };\r\n case 'order':\r\n return function (this: unknown[], ...args: any[]) {\r\n const source = getRaw(this) as any;\r\n const size = this.length;\r\n for (let index = 0; index < size; index++) {\r\n owner.engine.track(source, String(index));\r\n }\r\n const sorted = source[name].apply(this, args);\r\n owner.engine.track(source, name);\r\n return sorted;\r\n };\r\n case 'join':\r\n return function (this: unknown[], ...args: any[]) {\r\n return Array.prototype.concat.apply(this, args);\r\n };\r\n default:\r\n return function (this: unknown[], ...args: any[]) {\r\n pauseTracking();\r\n const source = getRaw(this) as any;\r\n try {\r\n return source[name].apply(this, args);\r\n } finally {\r\n resetTracking();\r\n }\r\n };\r\n }\r\n }\r\n\r\n}\r\n","\r\nimport { TargetType, UnwrapValueRefs, getRaw, getTargetType, isObject, pauseTracking, resetTracking, enableTracking } from \"./common\";\r\nimport { createGetter } from \"./handlers/getter\";\r\nimport { createSetter } from \"./handlers/setter\";\r\nimport { createDelete, createHas, createOwn } from \"./handlers/orhers\";\r\nimport { ArrayMethods } from \"./handlers/ArrayMethods\";\r\nimport { LinkedList } from \"../common/LinkedList\";\r\nimport { track, trigger } from \"./reactivity-core\";\r\nexport const ReactiveEngineMapper = new WeakSet<ReactiveEngine>();\r\n\r\nconst AllreactiveMap: WeakMap<any, any> = new WeakMap();\r\nfunction armgetter() { return AllreactiveMap; }\r\n\r\n\r\nexport class ReactiveEngine {\r\n _gci: any;\r\n public startGc(_intervalMs: number = 10000) { /* no-op */ }\r\n public stopGc() { if (this._gci) { try { clearInterval(this._gci); } catch { } this._gci = undefined; } }\r\n constructor() {\r\n ReactiveEngineMapper.add(this);\r\n this.startGc();\r\n }\r\n \r\n DisposeMapper = new LinkedList();\r\n arrayTriggerCache = new Map<any, { method: string, key: any, value: any }>();\r\n ReactiveMap: () => WeakMap<any, any> = () => armgetter();\r\n activeCallback: any;\r\n isReadonly: boolean = false;\r\n superficial: boolean = false;\r\n arrayMethods: ArrayMethods = new ArrayMethods(this);\r\n arrayHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n }\r\n deepHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n } as ProxyHandler<any>\r\n reactive<T>(model: T): UnwrapValueRefs<T> {\r\n\r\n var self = this;\r\n if (!isObject(model)) {\r\n model = { value: model } as any;\r\n }\r\n const targetType = getTargetType(model);\r\n if (targetType === TargetType.SYSTEM || targetType === TargetType.COLLECTION || TargetType.INVALID) {\r\n return model as any\r\n }\r\n\r\n let existingProxy = AllreactiveMap.get(model)\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n existingProxy = AllreactiveMap.get(getRaw(model))\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n // if (targetType === TargetType.INVALID) {\r\n if (Array.isArray(model)) {\r\n var proxy = new Proxy(model, this.arrayHandler);\r\n // var original = Object.getPrototypeOf(proxy);\r\n // original[\"copy\"] = () => { return model; }\r\n // return \"copied\";\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n } else {\r\n var proxy = new Proxy(model, this.deepHandler);\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n }\r\n }\r\n\r\n clearModel(model: any): void {\r\n if (model != null && model != undefined) {\r\n Object.keys(model).forEach((key) => {\r\n if (typeof model[key] === 'object') {\r\n if (AllreactiveMap.has(model[key]) || AllreactiveMap.has(getRaw(model[key]))) {\r\n this.clearModel(model[key])\r\n }\r\n }\r\n AllreactiveMap.delete(getRaw(model[key]));\r\n AllreactiveMap.delete(model[key]);\r\n })\r\n AllreactiveMap.delete(getRaw(model));\r\n AllreactiveMap.delete(model);\r\n }\r\n }\r\n\r\n track(model: any, key: any) {\r\n track(model, key);\r\n }\r\n trigger(model: any, key: any, value: any) {\r\n trigger(model, key);\r\n }\r\n ArrayTrigger(target: any, key: any, ...args: any) {\r\n this.trigger(target, key, args);\r\n }\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any;\r\n toRaw(item: any) {\r\n return JSON.parse(JSON.stringify(this.deepClone(item)));\r\n }\r\n deepClone(item: any) {\r\n var self = this;\r\n if (!item) { return item; }\r\n var types = [Number, String, Boolean],\r\n result;\r\n types.forEach(function (type) {\r\n if (item instanceof type) {\r\n result = type(item);\r\n }\r\n });\r\n\r\n if (typeof result == \"undefined\") {\r\n if (Object.prototype.toString.call(item) === \"[object Array]\") {\r\n result = [];\r\n item.forEach(function (child: any, index: any, array: any[]) {\r\n result[index] = self.deepClone(child);\r\n });\r\n } else if (typeof item == \"object\") {\r\n if (item.nodeType && typeof item.cloneNode == \"function\") {\r\n result = item.cloneNode(true);\r\n } else if (!item.prototype) {\r\n if (item instanceof Date) {\r\n result = new Date(item);\r\n } else {\r\n result = <any>{};\r\n for (var i in item) {\r\n result[i] = self.deepClone(item[i]);\r\n }\r\n }\r\n } else {\r\n if (false && item.constructor) {\r\n result = new item.constructor();\r\n } else {\r\n result = item;\r\n }\r\n }\r\n } else {\r\n result = item;\r\n }\r\n }\r\n return result;\r\n }\r\n pauseTracking() {\r\n pauseTracking();\r\n }\r\n enableTracking() {\r\n enableTracking();\r\n }\r\n resetTracking() {\r\n resetTracking();\r\n }\r\n dispose() {\r\n var cnt = true;\r\n this.stopGc();\r\n while (cnt == true) {\r\n if (this.DisposeMapper.size > 0) {\r\n const element = this.DisposeMapper.pop();\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n AllreactiveMap.delete(element);\r\n } else {\r\n cnt = false\r\n }\r\n }\r\n this.DisposeMapper.clear();\r\n ReactiveEngineMapper.delete(this);\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n }\r\n\r\n}","\r\nimport { ReactiveEngine } from \"./ReactiveEngine\";\r\nimport { UnwrapValueRefs } from \"./common\";\r\nimport { Signal, Computed, LazyComputed } from \"./Signal\";\r\nexport const engine = new ReactiveEngine();\r\n\r\n\r\n/* @DEV-ONLY */ const reactiveRegistry: Array<{ name: string; value: any; type: string }> = [];\r\nconst isDevRegistryEnabled = () => {\r\n try {\r\n const g = globalThis as any;\r\n if (!g.__MOTIF_DEV__) return false;\r\n if (g.__MOTIF_STORE_REGISTRY__ !== reactiveRegistry) g.__MOTIF_STORE_REGISTRY__ = reactiveRegistry;\r\n return true;\r\n } catch { return false; }\r\n};\r\n\r\nexport function reactiveConfig(config: {\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any\r\n onItemAdded?: (model: any, key: any, value: any) => any\r\n onItemRemoved?: (model: any, key: any, value: any) => any\r\n}) {\r\n engine.onValueChanged = config.onValueChanged;\r\n}\r\n\r\n// export * from \"./IStoreBinder\";\r\n\r\n// export function reactiveListeners(model?: any) {\r\n// if (model) {\r\n// /* @DEV-ONLY */return debugGetDeps(model) ?? new Map();\r\n// return debugGetDepMap();\r\n\r\n\r\nexport function reactive<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'reactive';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\nexport function useModel<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n\r\n\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'useModel';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */ }\r\n/* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\n\r\n\r\nexport function clearModel(model: any) {\r\n return engine.clearModel(model);\r\n}\r\n\r\n \r\n\r\nexport function deepClone(item: any) {\r\n return engine.deepClone(item);\r\n}\r\n\r\nexport function createSignal<T>(initialValue: T): Signal<T> {\r\n const sig = new Signal(initialValue);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `signal_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: sig.value, type: 'signal' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return sig;\r\n}\r\n\r\nexport function createComputed<T>(getter: () => T): Computed<T> {\r\n const comp = new Computed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `computed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: comp.value, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return comp;\r\n}\r\n\r\nexport function createLazyComputed<T>(getter: () => T): LazyComputed<T> {\r\n const comp = new LazyComputed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `lazyComputed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: undefined, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */} catch { }\r\n return comp;\r\n}\r\n\r\nexport { ReactiveEngine };\r\nexport { configureReactivityLeakMonitor, track, trigger, effect, createScheduledEffect, asyncTracking, untracked } from \"./reactivity-core\";\r\nexport type { EffectFn, ScheduledEffect, AsyncTrackingToken } from \"./reactivity-core\";\r\nexport * from \"./Signal\";\r\nimport { untracked } from \"./reactivity-core\";\r\n","\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, resolveComponent, notifyActivated, notifyDeactivated } from \"../\";\nimport { cancelAnimationsDeep } from \"../component/navigation\";\nimport { errorHandler } from \"../common/ErrorHandler\";\nimport { callReported, reportError, reportWarning } from \"../common/diagnostics\";\nimport { NavigationDirection, NavigationOptions, ResolveResult } from \"./\";\nimport { RouterView, RouterViewBuilt } from \"./\";\nimport { UrlRoutingModule } from \"./\";\nimport { RouterViewRegistry } from \"./RouterViewRegistry\";\nimport { RouteItem } from \"./\";\nimport { Application } from \"../\";\nimport { pinServiceOwner, runInConstructionScope } from \"../dependencyInjection/ServiceProvider\";\nimport type { ServiceProvider } from \"../dependencyInjection/ServiceProvider\";\nimport { hasOwnTransition, markDirection, playLeave, unmarkDirection } from \"./NavigationStack\";\nimport type { NavigationStack, RetainedEntry, StackNavigation } from \"./NavigationStack\";\nimport type { RouteSnapshot } from \"./routerState\";\n\ntype StackLeave = { top: ComponentBase | null; retained: RetainedEntry | null; disposeAfter: ComponentBase[] };\ntype StackMotion = { animate: boolean; pages: boolean; direction: NavigationDirection };\ntype NavigationRun = { provider?: ServiceProvider; scope?: ServiceProvider; route: RouteSnapshot; committed: boolean; suppressed: ComponentBase[] };\n\nexport class RoutingEngine {\n\n public stack: NavigationStack | null = null;\n private _revealed: Set<ComponentBase> = new Set();\n\n private root!: ComponentBase;\n private application!: Application;\n private routingModule!: UrlRoutingModule;\n private _previousPath: ResolveResult | null = null;\n private _previousInstances: ComponentBase[] = [];\n\n public register(mainApp: ComponentBase, application: Application, routingModule: UrlRoutingModule) {\n this.root = mainApp;\n this.application = application;\n this.routingModule = routingModule;\n }\n\n private controlCache: Map<RouteItem, any> = new Map();\n\n public async evict(route?: RouteItem | null): Promise<void> {\n const targets: RouteItem[] = route ? [route] : Array.from(this.controlCache.keys());\n for (const r of targets) {\n const inst = this.controlCache.get(r);\n if (!inst || inst.isDisposed) { this.controlCache.delete(r); continue; }\n if (this._previousInstances.includes(inst)) continue;\n this.controlCache.delete(r);\n try { await inst.dispose(); } catch (error) { reportError('MJX307', error); }\n }\n }\n\n\n public async dispose(): Promise<void> {\n this._navVersion++;\n this._previousPath = null;\n this._previousInstances = [];\n this._revealed.clear();\n const stack = this.stack;\n this.stack = null;\n if (stack) { try { await stack.dispose(); } catch { } }\n await this.evict();\n }\n\n generatePathString(routeDefinition: string, params: Record<string, any>): string {\n const parts = routeDefinition.split('/');\n const result = parts.map(part => {\n if (part.startsWith('{') && part.endsWith('}')) {\n const paramDefinition = part.slice(1, -1);\n\n let [paramName, defaultValue] = paramDefinition.split(':');\n\n const isOptional = paramName.endsWith('?');\n if (isOptional) {\n paramName = paramName.slice(0, -1);\n }\n const value = params[paramName];\n if (value !== undefined && value !== null && value !== '') {\n return String(value);\n }\n return defaultValue ?? '';\n\n } else {\n return part;\n }\n })\n .filter(part => part !== '')\n .join('/');\n\n if (routeDefinition.startsWith('/')) {\n return '/' + (result ? result : '');\n }\n return result;\n }\n\n private _navVersion = 0;\n\n private _pendingActivate: Set<ComponentBase> = new Set();\n public async execute(path: ResolveResult, nav?: StackNavigation, route?: RouteSnapshot) {\n route ??= {\n target: path,\n chain: path.chain.map(r => this.generatePathString(r.path, path.params) || ''),\n direction: undefined,\n state: undefined,\n };\n const provider = this._rootProvider();\n const run: NavigationRun = { provider, scope: provider?._beginNavigation(), route, committed: false, suppressed: [] };\n try {\n await this._execute(path, nav, run);\n } finally {\n if (!run.committed && run.scope) provider!._abandonNavigation(run.scope);\n for (const inst of run.suppressed) if (!inst.isDisposed) inst.motif.options.transition._suppressEnter = false;\n }\n }\n\n private _commitNavigation(run: NavigationRun): void {\n if (run.committed) return;\n run.committed = true;\n if (run.scope) run.provider!._commitNavigation(run.scope);\n this.application?._routerState.commit(run.route);\n }\n\n private async _execute(path: ResolveResult, nav: StackNavigation | undefined, run: NavigationRun) {\n const navVersion = ++this._navVersion;\n const stack = this.stack && nav && nav.to ? this.stack : null;\n if (stack) stack.begin(nav!);\n const restored = stack ? stack.take(nav!.to) : null;\n const controlList: any[] = new Array(path.chain.length);\n\n const isSameRoute = !!(this._previousPath &&\n this._previousPath.route === path.route &&\n (this._previousPath.route != null || this._previousPath.fullPath === path.fullPath));\n\n var enableEnter = !!(this._previousPath && this._previousPath.uri === path.uri);\n let paramsChanged = false;\n\n\n if (isSameRoute && path.route) {\n\n const prevParams = this._previousPath!.params || {};\n const newParams = path.params || {};\n let changed = false;\n const allKeys = new Set([...Object.keys(prevParams), ...Object.keys(newParams)]);\n for (const k of allKeys) {\n if (prevParams[k] !== newParams[k]) { changed = true; break; }\n }\n if (changed) {\n paramsChanged = true;\n\n const leafRoute = path.route;\n if (leafRoute && !leafRoute.keepAlive && this.controlCache.has(leafRoute)) {\n if (stack) {\n this.controlCache.delete(leafRoute);\n } else {\n const oldInstance = this.controlCache.get(leafRoute);\n if (oldInstance && typeof oldInstance.dispose === 'function' && !oldInstance.isDisposed) {\n try { await oldInstance.dispose(); } catch { }\n }\n this.controlCache.delete(leafRoute);\n }\n }\n\n try {\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const updateHook = path.route.onUpdate || globalHooks?.onUpdate;\n if (updateHook) {\n const updateContext = {\n from: {\n path: this._previousPath!.uri || this._previousPath!.fullPath || '',\n params: prevParams\n },\n to: {\n path: path.uri || path.fullPath || '',\n params: newParams\n },\n meta: (path as any).meta ?? path.extend\n };\n await updateHook(updateContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onUpdate');\n }\n }\n }\n\n if ((!isSameRoute || paramsChanged) && path.route) {\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route.onEntering || globalHooks?.onEntering;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEntering');\n }\n }\n\n const prepTasks: Promise<void>[] = [];\n for (let i = 0; i < path.chain.length; i++) {\n const element = path.chain[i];\n const kept = restored && restored.chain[i] === element ? restored.instances[i] : undefined;\n if (kept && !kept.isDisposed && !element.keepAlive) {\n controlList[i] = kept;\n this.controlCache.set(element, kept);\n continue;\n }\n if (this.controlCache.has(element)) {\n let control = this.controlCache.get(element);\n if (!control || control.isDisposed) {\n this.controlCache.delete(element);\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n } else {\n controlList[i] = control;\n if (element.keepAlive && !this._previousInstances.includes(control)) {\n this._pendingActivate.add(control);\n }\n }\n } else {\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n }\n }\n if (prepTasks.length) {\n await Promise.all(prepTasks);\n }\n let leave: StackLeave | null = null;\n let motion: StackMotion | null = null;\n const previousInstances = this._previousInstances;\n if (stack) {\n const animate = !!stack.animation && stack.animation !== 'none'\n && (nav!.direction === 'push' || nav!.direction === 'back' || nav!.direction === 'forward');\n motion = { animate, pages: !animate && !stack.gestureCommitPending, direction: nav!.direction };\n leave = await this._stackLeave(path.chain, controlList, nav!, stack, motion);\n if (restored) {\n const top = restored.top;\n if (!top.isDisposed && restored.outlet && top.parent === restored.outlet) {\n stack.reveal(restored);\n restored.outlet.current = top;\n restored.outlet.previouspage = top;\n this._revealed.add(top);\n }\n if (!top.isDisposed) this._pendingActivate.add(top);\n }\n } else {\n await this.disposeFromDivergencePoint(path.chain, controlList);\n }\n const entering: ComponentBase[] = motion ? controlList.filter(c => c && !previousInstances.includes(c)) : [];\n if (motion) {\n for (const inst of previousInstances) unmarkDirection(inst);\n for (const inst of entering) {\n if (motion.pages) markDirection(inst, motion.direction);\n else {\n inst.motif.options.transition._suppressEnter = true;\n run.suppressed.push(inst);\n }\n }\n }\n if (navVersion === this._navVersion) this._commitNavigation(run);\n await this.mountChain(controlList, path.chain, this.root, navVersion);\n if (motion?.pages) {\n if (restored?.attached && !restored.top.isDisposed && hasOwnTransition(restored.top, 'enter')) {\n restored.top.motif.options.transition.enterTransition(() => { });\n }\n for (const inst of entering) if (inst.isBuilt && !hasOwnTransition(inst, 'enter')) unmarkDirection(inst);\n }\n let enteringTop: ComponentBase | null = null;\n if (stack) {\n if (restored) stack.restoreScroll(restored);\n for (let i = 0; i < controlList.length; i++) {\n if (controlList[i] && controlList[i] !== previousInstances[i]) { enteringTop = controlList[i]; break; }\n }\n if (!enteringTop) enteringTop = controlList.length ? controlList[controlList.length - 1] : null;\n stack.record(nav!, enteringTop);\n }\n\n\n\n if (!enableEnter && path.route) {\n\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route?.onEnter || globalHooks?.onEnter;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEnter');\n }\n }\n this._previousPath = path;\n this._previousInstances = controlList.slice();\n\n if (stack && leave) {\n if (leave.top && navVersion === this._navVersion && (leave.retained || leave.disposeAfter.length)) {\n await stack.transition(nav!.direction, enteringTop, leave.top);\n }\n if (leave.retained) stack.settle(leave.retained);\n for (const inst of leave.disposeAfter) {\n try { if (!inst.isDisposed) await inst.dispose({ deep: true, skipLeaveTransition: true }); } catch (error) { reportError('MJX307', error); }\n }\n }\n }\n\n private async _stackLeave(newChain: RouteItem[], newInstances: ComponentBase[], nav: StackNavigation, stack: NavigationStack, motion: StackMotion): Promise<StackLeave> {\n const result: StackLeave = { top: null, retained: null, disposeAfter: [] };\n const prevChain = this._previousPath?.chain ?? [];\n const prevInstances = this._previousInstances;\n if (!prevInstances.length) return result;\n\n let d = -1;\n for (let i = 0; i < prevInstances.length; i++) {\n const inst = prevInstances[i];\n if (inst && !newInstances.includes(inst)) { d = i; break; }\n }\n if (d < 0) return result;\n\n if (!prevInstances[d].isDisposed) pinServiceOwner(prevInstances[d]);\n\n const outletFor = (i: number): RouterView | null => {\n const container = i - 1 >= 0 ? prevInstances[i - 1] : this.root;\n const outletName = (prevChain[i]?.extend?.targetOutlet) || 'default';\n try { return container && !container.isDisposed ? this.findRouterView(container, outletName) : null; } catch { return null; }\n };\n\n const top = prevInstances[d];\n const topItem = prevChain[d];\n if (stack.isRetaining(nav) && top && !top.isDisposed && !topItem?.keepAlive) {\n const outlet = outletFor(d);\n if (outlet && outlet.current === top) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n cancelAnimationsDeep(top);\n if (motion.pages && hasOwnTransition(top, 'leave')) {\n markDirection(top, motion.direction);\n await playLeave(top);\n unmarkDirection(top);\n }\n for (let i = d; i < prevInstances.length; i++) {\n const item = prevChain[i];\n if (item && !item.keepAlive && this.controlCache.get(item) === prevInstances[i]) this.controlCache.delete(item);\n }\n result.top = top;\n result.retained = stack.retain(nav.from!, this._previousPath?.uri ?? '', prevChain, prevInstances, d, outlet, motion.animate);\n return result;\n }\n\n const deferTop = motion.animate && !!top && !top.isDisposed && !topItem?.keepAlive;\n for (let i = prevInstances.length - 1; i >= d; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || newInstances.includes(inst)) continue;\n if (inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n if (deferTop && i > d && !item?.keepAlive) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const outlet = outletFor(i);\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n if (deferTop && i === d) {\n result.top = inst;\n result.disposeAfter.push(inst);\n } else if (motion.pages) {\n markDirection(inst, motion.direction);\n await inst.dispose();\n } else {\n await inst.dispose({ deep: true, skipLeaveTransition: true });\n }\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n return result;\n }\n\n private async disposeFromDivergencePoint(newChain: RouteItem[], newInstances: ComponentBase[]): Promise<void> {\n if (!this._previousPath || !this._previousInstances.length) {\n return;\n }\n\n const prevChain = this._previousPath.chain;\n const prevInstances = this._previousInstances;\n\n let divergeIndex = 0;\n const minLength = Math.min(prevChain.length, newChain.length);\n\n for (let i = 0; i < minLength; i++) {\n if (prevChain[i] === newChain[i]) {\n divergeIndex = i + 1;\n } else {\n break;\n }\n }\n\n for (let i = prevInstances.length - 1; i >= divergeIndex; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const containerIndex = i - 1;\n const container = containerIndex >= 0 ? prevInstances[containerIndex] : this.root;\n const outletName = (item?.extend?.targetOutlet) || 'default';\n const outlet = this.findRouterView(container, outletName);\n\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (this.controlCache.get(item) === inst) this.controlCache.delete(item);\n await inst.dispose();\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n }\n\n private _construct<T>(scope: ServiceProvider | undefined, route: RouteSnapshot | undefined, create: () => T): T {\n const state = this.application?._routerState;\n return runInConstructionScope(scope, () => state ? state.constructWith(route, create) : create());\n }\n\n private async parseControl(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n var instance = this._construct(scope, route, () => this._resolveFrom(scope, control));\n if (instance) {\n return instance;\n }\n let val = control as any;\n if (val instanceof Promise) {\n val = await val.then((result: any) => {\n return result.default ? result.default : result;\n });\n }\n\n instance = this._construct(scope, route, () => this._resolveFrom(scope, val));\n if (instance) {\n return instance;\n }\n\n if (typeof val === 'function') {\n return this.parseControl(this._construct(scope, route, () => resolveComponent(val, this.application)), scope, route);\n }\n return val;\n }\n\n private _resolveFrom(scope: ServiceProvider | undefined, token: any): any {\n const provider = scope ?? this._rootProvider();\n if (!provider || !provider.getAllServices().getDescriptor(token)) return null;\n return provider.get(token);\n }\n\n private _rootProvider(): ServiceProvider | undefined {\n try { return this.application?.provider ?? Application.main?.provider; } catch { return undefined; }\n }\n\n private async createInstance(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n return await this._instanceCreator(control, scope, route);\n }\n\n private async _instanceCreator(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n let val = await this.parseControl(control, scope, route) as any;\n // if (val instanceof Promise) {\n // return result.default ? result.default : result;\n\n // if (typeof val === 'function') {\n // try {\n // return val(this.application);\n // } catch {\n // // fallback: try as constructor\n // return new (val as any)(this.application);\n\n\n // if (val && typeof val.then === 'function') {\n // return await val;\n return val;\n }\n\n private async activator(container: ComponentBase) {\n try {\n //const reflect: any = (Reflect as any)?.getMetadata ? Reflect : null;\n //const paramTypes: any[] | undefined = reflect ? (Reflect as any).getMetadata('design:paramtypes', container) as any[] : undefined;\n // if (Array.isArray(paramTypes) && paramTypes.length) {\n // const args: any[] = [];\n // let anyResolved = false;\n // for (const t of paramTypes) {\n // try {\n // // try resolve token; if not registered, provider.getAsync will throw\n // const inst = await sp.getAsync(t);\n // } catch {\n // if (anyResolved) {\n // // If it looks like a constructor, try `new`, otherwise call as function\n // try { return new (container as any)(...args); } catch { return (container as any)(...args); }\n } catch { /* ignore */ }\n }\n pendingMount: WeakMap<any, Promise<void>> = new WeakMap();\n private pendingListeners = new WeakMap<ComponentBase, Function>(); \n private static readonly OUTLET_WARN_MS = 3000;\n \n private async mountChain(instances: any[], chain: any[], container: ComponentBase, navVersion: number): Promise<void> { \n for (let index = 0; index < instances.length;) { \n if (navVersion !== this._navVersion) return;\n\n let inst = instances[index] as ComponentBase; \n if (inst?.isDisposed) {\n inst = await this.createInstance(chain[index].control, this._rootProvider()?._currentScope());\n instances[index] = inst;\n }\n const outletName = (chain[index] && chain[index].extend && chain[index].extend.targetOutlet) || 'default';\n \n const outlet = this.findRouterView(container, outletName);\n \n if (!outlet || !container.isBuilt) {\n this._waitForOutlet(container, instances.slice(index), chain.slice(index), navVersion, outletName);\n return;\n }\n\n const revealed = this._revealed.delete(inst);\n const alreadyShown = outlet.current === inst && !revealed;\n await outlet.navigate(inst);\n if (this._pendingActivate.delete(inst)) {\n notifyActivated(inst);\n }\n const showHook = (chain[index] as RouteItem | undefined)?.onShow;\n if (showHook && !alreadyShown && outlet.current === inst && navVersion === this._navVersion) {\n callReported(() => showHook(inst), 'MJX306', 'onShow');\n }\n container = inst;\n index++;\n }\n }\n \n private _waitForOutlet(container: ComponentBase, instances: any[], chain: any[], navVersion: number, outletName: string): void {\n \n const oldCleanup = this.pendingListeners.get(container);\n if (oldCleanup) {\n try { oldCleanup(); } catch { }\n this.pendingListeners.delete(container);\n }\n\n let done = false;\n let warnTimer: any = undefined;\n\n const handler = async (_s: any, _e: any) => {\n if (done) return;\n cleanup(); \n if (navVersion !== this._navVersion) return;\n await this.mountChain(instances, chain, container, navVersion);\n };\n\n const cleanup = () => {\n if (done) return;\n done = true;\n this.pendingListeners.delete(container);\n try { (container as any).motif?.off?.(RouterViewBuilt as any, handler); } catch { }\n if (warnTimer !== undefined) {\n try { clearTimeout(warnTimer); } catch { }\n warnTimer = undefined;\n }\n };\n\n container.motif.on(RouterViewBuilt as any, handler);\n this.pendingListeners.set(container, cleanup);\n\n if (errorHandler.isDevelopment()) {\n warnTimer = setTimeout(() => {\n if (!done && navVersion === this._navVersion) {\n reportWarning('MJX301', [outletName, RoutingEngine.OUTLET_WARN_MS]);\n }\n }, RoutingEngine.OUTLET_WARN_MS);\n }\n }\n\n\n\n\n private findRouterView(root: ComponentBase, name: string = 'default'): RouterView | null {\n // 1) Önce mevcut container'ın ALT AĞACINDA ara (yakınlık öncelikli)\n const stack: ComponentBase[] = (root.controls?.items || []).slice();\n while (stack.length) {\n const c = stack.shift()!;\n if (!c || c.isDisposed) continue;\n if ((c as any).__isRouterView) {\n const rv = c as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if (c.controls && c.controls.items && c.controls.items.length) {\n for (const ch of c.controls.items) stack.push(ch);\n }\n }\n\n // 2) Alt ağaçta bulunamadıysa ve isim 'default' ise: üst/yan dallara BAKMA.\n if (!name || name === 'default') {\n return null;\n }\n\n const scopeId = typeof (root as any).scopeId === 'function' ? (root as any).scopeId() : (root as any).scopeId ?? '';\n var x = RouterViewRegistry.find(name, scopeId);\n if (x) return x;\n\n // 3) İsimli outlet için ÜST AĞAÇLARDA arama: her bir üst ata için, o atanının\n let current: any = root;\n let parent: any = current?.parent;\n while (parent) {\n const siblings: ComponentBase[] = (parent.controls?.items || []).filter((it: any) => it !== current);\n const q: ComponentBase[] = siblings.slice();\n while (q.length) {\n const node = q.shift()!;\n if (!node || (node as any).isDisposed) continue;\n if ((node as any).__isRouterView) {\n const rv = node as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if ((node as any).controls && (node as any).controls.items && (node as any).controls.items.length) {\n for (const ch of (node as any).controls.items) q.push(ch);\n }\n }\n current = parent;\n parent = parent.parent;\n }\n\n // 4) Hiçbir yerde bulunmadı\n return null;\n }\n\n}","import { Application, 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(): void {\n try { this._scroll?.dispose(); } catch { }\n this._scroll = null;\n this._historyStamp = null;\n try {\n // keepAlive önbelleğindeki örnekleri bırak\n try { void this.routingEngine.dispose(); } catch { }\n if (this._navHandler) {\n try { document.removeEventListener('click', this._navHandler); } catch { }\n this._navHandler = null;\n }\n if (this._windowNavListener) {\n const evt = this._routerOptions.mode === 'hash' || this._routerOptions.mode === 'file' ? 'hashchange' : 'popstate';\n try { window.removeEventListener(evt, this._windowNavListener); } catch { }\n this._windowNavListener = null;\n }\n } catch { }\n }\n\n}","import { Signal } from \"../store/Signal\";\nimport { motifError } from \"../common/diagnostics\";\nimport type { UrlRoutingModule } from \"./UrlRoutingModule\";\nimport type { NavigationDirection, NavigationOptions, ResolveResult, Router } from \"./common\";\nimport type { RouteItem } from \"./RouteItem\";\n\nexport type RouteSnapshot = {\n target: ResolveResult;\n chain: string[];\n direction: NavigationDirection | undefined;\n state: any;\n};\n\nexport class RouterState {\n readonly version = new Signal(0);\n private _current: RouteSnapshot | null = null;\n private _constructing: RouteSnapshot | null = null;\n\n read(): RouteSnapshot | null {\n this.version.value;\n return this._constructing ?? this._current;\n }\n\n commit(snapshot: RouteSnapshot): void {\n this._current = snapshot;\n this.touch();\n }\n\n reset(): void {\n this._current = null;\n this.touch();\n }\n\n touch(): void {\n this.version.value = this.version.peek() + 1;\n }\n\n constructWith<T>(snapshot: RouteSnapshot | undefined, create: () => T): T {\n if (!snapshot) return create();\n const previous = this._constructing;\n this._constructing = snapshot;\n try {\n return create();\n } finally {\n this._constructing = previous;\n }\n }\n}\n\nexport function createRouter(state: RouterState, module: () => UrlRoutingModule | undefined): Router {\n const required = (): UrlRoutingModule => {\n const current = module();\n if (!current) throw motifError('MJX309');\n return current;\n };\n const target = () => state.read()?.target;\n return {\n get params() { return target()?.params ?? {}; },\n get route() { return target()?.route ?? null; },\n get ok() { return target()?.ok ?? false; },\n get uri() { return target()?.uri ?? ''; },\n get fullPath() { return target()?.fullPath ?? null; },\n get aliasOf() { return target()?.aliasOf ?? null; },\n get extend() { return target()?.extend ?? {}; },\n get meta() {\n const current = target();\n return current ? ((current as any).meta ?? current.extend) : {};\n },\n get chain() { return state.read()?.chain ?? []; },\n get direction() { return state.read()?.direction; },\n get state() { return state.read()?.state; },\n get stack() {\n state.version.value;\n return module()?.describeStack();\n },\n get routes() {\n state.version.value;\n return module()?.routeInfos() ?? [];\n },\n navigate: async (uri: string, options?: NavigationOptions) => {\n await required().navigate(uri, options);\n },\n navigateByName: async (name: string, params?: Record<string, any>, options?: NavigationOptions) => {\n await required().navigateByName(name, params, options);\n },\n evict: async (route?: RouteItem | string | null) => {\n await required().evict(route);\n },\n resolve: (uri: string) => required().resolve(uri),\n href: (name: string, params?: Record<string, any>) => required().href(name, params),\n };\n}\n","import { ServiceCollection } from \"./dependencyInjection/ServiceCollection\";\nimport { ServiceProvider } from \"./dependencyInjection/ServiceProvider\";\nimport { Component } from \"./component/Component\";\nimport { RouteItem } from \"./routing/RouteItem\";\nimport { ensureDevtoolsFlagInitialized, setRoutes, setDevtoolsEnabled, isEnabled as isDevtoolsEnabled } from \"./devtools/devbus\";\nimport { lintRoutes } from \"./devtools/routeLinter\";\nimport { initOverlayIfEnabled, initDevtoolsButton } from \"./devtools/overlay\";\nimport { RouterView } from \"./routing/RouterView\";\nimport { UrlRoutingModule } from \"./routing/UrlRoutingModule\";\nimport { RouterState, createRouter } from \"./routing/routerState\";\nimport { NavigationDirection, NavigationOptions, Router, RouteResolveContext, RouterNavigatedEventArgs, RouterEvents, RouterOptions, ScrollMemoryOptions, StackOptions } from \"./routing\";\nimport { errorHandler, safeCall, safeCallSilent, setErrorConsoleLogging } from \"./common/ErrorHandler\";\nimport { engine, configureReactivityLeakMonitor } from \"./store\";\nimport { MotifError, callReported, formatMotifMessage, motifError, reportError } from \"./common/diagnostics\";\nimport { flushCompilerContractWarnings } from \"./common/compilerContract\";\nimport { isTransitionMode, transitionSettings, TransitionMode } from \"./common/transitionRegistry\";\nimport { ComponentBase } from \"./component\";\nexport interface IStartup {\n configuration?: (services: any) => void;\n\n}\n\nlet _globalApplication: Application | null = null;\nlet _globalBuilder: ApplicationBuilder | null = null;\nlet startedApplicationBuilder = false;\nconst _applicationStack = new Map<string | symbol, { builder: ApplicationBuilder, app: Application }>();\n\nexport class ApplicationBuilder {\n\n public services: ServiceCollection = new ServiceCollection();\n\n constructor() {\n if (_globalApplication || startedApplicationBuilder) {\n throw new MotifError('MJX405', formatMotifMessage('MJX405'), { cause: _globalApplication });\n }\n startedApplicationBuilder = true;\n }\n\n build() {\n // if (_globalApplication) {\n // throw new Error(\"ApplicationBuilder: Only one instance of ApplicationBuilder is allowed.\");\n this.services.autoRegisterInjectables();\n const provider = this.services.buildServiceProvider();\n this.services.addSingleton(ServiceProvider, provider);\n var app = new Application(provider);\n this.services.addSingleton(Application, app);\n _globalApplication = app;\n return app;\n }\n\n rebuild() {\n if (_globalApplication) {\n _globalApplication.provider.dispose();\n _globalApplication.provider = this.services.buildServiceProvider();\n return _globalApplication;\n }\n return this.build();\n }\n}\n\ninterface ApplicationEvents {\n 'router-changed': 'motifjs-router-navigated';\n}\nexport type AppLifecycleState = 'visible' | 'hidden' | 'frozen' | 'resumed' | 'restored' | 'online' | 'offline';\n\nexport type AppLifecycleEventArgs = {\n state: AppLifecycleState;\n visible: boolean;\n online: boolean;\n};\n\nexport type NavigationGuardContext = {\n to: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions, redirectedFrom?: string, direction?: NavigationDirection, state?: any };\n from: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions } | null;\n};\n\nexport type NavigationGuard = (\n context: NavigationGuardContext,\n next: (redirect?: string | false) => void\n) => void | Promise<void>;\n\nexport type ContainerGroups = {\n [key: string]: {\n registry: () => any;\n initialize: () => any\n };\n}\n\nexport class Application {\n public static get main(): Application {\n return _globalApplication!;\n }\n\n constructor(public provider: ServiceProvider) { }\n private _middlewares: Array<(ctx: RouteResolveContext, next: () => Promise<void>) => any> = [];\n private _beforeEachGuards: NavigationGuard[] = [];\n public readonly _routerState = new RouterState();\n public readonly router: Router = createRouter(this._routerState, () => this.urlRoutingModule);\n private events: Map<any, Set<any>> = new Map();\n\n public static CreateBuilder(): ApplicationBuilder {\n return new ApplicationBuilder();\n }\n private appShell!: Component;\n public getAppShell(): Component {\n return this.appShell;\n }\n public run(host: HTMLElement | string | Node, appRoot?: any): void {\n safeCallSilent(() => {\n engine.startGc();\n }, 'Application.run.engine.startGc');\n let target: HTMLElement | null;\n if (typeof host === 'string') {\n target = document.querySelector(host) as HTMLElement | null;\n if (!target) throw motifError('MJX406', host);\n } else {\n target = host as HTMLElement;\n }\n let rootInstance: any = appRoot;\n\n\n const AppShell = new Component(target);\n this.appShell = AppShell;\n safeCallSilent(() => {\n (AppShell as any).application = this;\n (AppShell as any).provider = this.provider;\n\n }, 'Application.run.setupAppShell');\n\n if (!rootInstance) {\n rootInstance = AppShell;\n rootInstance.controls.add(new RouterView({ name: 'default' }));\n } else {\n rootInstance.parent = AppShell;\n AppShell.controls.add(rootInstance);\n }\n AppShell.build();\n this._routerRoot = rootInstance;\n if (this.urlRoutingModule) {\n this.urlRoutingModule.start(rootInstance);\n this._startedRouter = this.urlRoutingModule;\n } else {\n } \n try {\n } catch { }\n }\n\n public insert(component: Component): void {\n this.appShell.controls.add(component);\n }\n public remove(component: Component): void {\n this.appShell.controls.remove(component);\n }\n\n public attach(component: Component): void {\n this.appShell.controls.add(component);\n }\n\n public detach(component: Component): void {\n this.appShell.controls.detach(component);\n }\n\n public appendToMainHost(component: Node): void {\n this.appShell.element?.appendChild(component);\n }\n\n public dispose(): void {\n startedApplicationBuilder = false;\n safeCallSilent(() => { this._removeLifecycleListeners(); }, 'Application.dispose.lifecycle');\n safeCallSilent(() => { (this as any).urlRoutingModule?.dispose?.(); }, 'Application.dispose.router');\n safeCallSilent(() => { this.provider.dispose(); }, 'Application.dispose.preDispose');\n safeCallSilent(() => { engine.stopGc(); }, 'Application.dispose.gcStop');\n safeCallSilent(() => {\n try {\n const w = window as any;\n if (w && w.history && typeof w.history.replaceState === 'function') {\n // Normalize to root path; for hash mode also clear the hash\n w.history.replaceState({}, '', '/');\n }\n } catch { /* ignore */ }\n }, 'Application.dispose.resetUrl');\n transitionSettings.mode = 'concurrent';\n _globalApplication = null;\n }\n\n public useTransitions(options: { mode?: TransitionMode }): Application {\n if (isTransitionMode(options?.mode)) transitionSettings.mode = options.mode;\n return this;\n }\n\n public use(callback: (ctx: RouteResolveContext, next: () => Promise<void>) => any): Application {\n this._middlewares.push(callback);\n return this;\n }\n\n public useGuard(guard: NavigationGuard): Application {\n this._beforeEachGuards.push(guard);\n return this;\n }\n\n public async _runBeforeEachGuards(to: any, from: any): Promise<string | false | true> {\n const context: NavigationGuardContext = { to, from };\n\n for (const guard of this._beforeEachGuards) {\n let redirectPath: string | false | undefined;\n let guardResolved = false;\n\n const next = (redirect?: string | false) => {\n guardResolved = true;\n redirectPath = redirect;\n };\n\n try {\n await guard(context, next);\n } catch (error) {\n reportError('MJX306', error, 'guard');\n return false;\n }\n\n if (!guardResolved) {\n return false;\n }\n\n if (redirectPath === false) {\n return false;\n }\n\n if (typeof redirectPath === 'string') {\n return redirectPath;\n }\n }\n\n return true; \n }\n\n private urlRoutingModule!: UrlRoutingModule;\n private _routerConfig: RouterOptions | null = null;\n private _routerRoot: Component | null = null;\n private _startedRouter: UrlRoutingModule | null = null;\n public useRouter(options: RouteItem[] | {\n routes: RouteItem[],\n mode?: 'history' | 'hash' | 'file' | 'shell',\n fallbacks?: { notFound?: any, error?: any },\n hooks?: RouterEvents,\n scrollMemory?: boolean | ScrollMemoryOptions,\n stack?: boolean | StackOptions\n }): Application {\n let routes: RouteItem[];\n let mode: 'history' | 'hash' | 'file' | 'shell' | undefined;\n let fallbacks: { notFound?: any, error?: any } | undefined;\n let hooks: RouterEvents | undefined;\n let scrollMemory: boolean | ScrollMemoryOptions | undefined;\n let stack: boolean | StackOptions | undefined;\n if (Array.isArray(options)) {\n routes = options;\n } else {\n routes = options.routes;\n mode = options.mode;\n fallbacks = options.fallbacks;\n hooks = options.hooks;\n scrollMemory = options.scrollMemory;\n stack = options.stack;\n }\n\n if (this.urlRoutingModule) {\n this.urlRoutingModule.dispose();\n }\n\n this._routerConfig = {\n mode,\n fallbacks,\n middlewareCollections: () => this._middlewares,\n RouteItems: routes,\n hooks,\n scrollMemory,\n stack,\n };\n this.urlRoutingModule = new UrlRoutingModule(this._routerConfig, this);\n\n this._routerState.reset();\n\n\n\n safeCallSilent(() => {\n ensureDevtoolsFlagInitialized();\n initOverlayIfEnabled();\n setRoutes(routes as any);\n if (this._isDevelopment || (globalThis as any).__MOTIF_DEV__ === true || isDevtoolsEnabled()) {\n lintRoutes(routes as any);\n }\n }, 'Application.useRouter.devtools');\n\n return this;\n }\n\n public restartRouter() {\n const root = this._routerRoot;\n if (!root || !this._routerConfig) return this;\n const previous = this._startedRouter;\n const shownUri = previous?.shownUri;\n let fresh = this.urlRoutingModule;\n if (!fresh || fresh === previous) {\n previous?.dispose();\n fresh = new UrlRoutingModule(this._routerConfig, this);\n this.urlRoutingModule = fresh;\n }\n this._routerState.reset();\n this._startedRouter = fresh;\n fresh.start(root, shownUri);\n return this;\n }\n\n public async navigate(uri: string, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigate(uri, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public async navigateByName(name: string, params?: Record<string, any>, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigateByName(name, params, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public on<T>(event: ApplicationEvents[keyof ApplicationEvents & string] | any, handler: (args?: T) => void): any {\n var e = this.events.get(event);\n if (!e) {\n this.events.set(event, new Set());\n e = this.events.get(event);\n }\n if (e) {\n e.add(handler);\n }\n return () => this.off(event, handler);\n }\n public off<T>(event: any, handler: (args?: T) => void): void {\n var e = this.events.get(event);\n if (e) {\n e.delete(handler);\n }\n }\n\n public fire<T>(event: any, args?: T): void {\n var e = this.events.get(event);\n if (e) {\n e.forEach(handler => {\n callReported(() => handler(args), 'MJX123', String(event));\n });\n }\n }\n\n public onRouterChanged(handler: (args?: RouterNavigatedEventArgs) => unknown): any {\n return this.on<RouterNavigatedEventArgs>('motifjs-router-navigated', handler);\n }\n\n public get isVisible(): boolean {\n try { return typeof document === 'undefined' || document.visibilityState !== 'hidden'; } catch { return true; }\n }\n\n public get isOnline(): boolean {\n try { return typeof navigator === 'undefined' || navigator.onLine !== false; } catch { return true; }\n }\n\n private _lifecycleOff: Array<() => void> | null = null;\n\n public onLifecycle(handler: (args?: AppLifecycleEventArgs) => unknown): () => void {\n this._installLifecycleListeners();\n return this.on<AppLifecycleEventArgs>('motifjs-app-lifecycle', handler);\n }\n\n private _emitLifecycle(state: AppLifecycleState): void {\n this.fire<AppLifecycleEventArgs>('motifjs-app-lifecycle', { state, visible: this.isVisible, online: this.isOnline });\n }\n\n private _installLifecycleListeners(): void {\n if (this._lifecycleOff) return;\n const offs: Array<() => void> = [];\n const listen = (target: EventTarget | undefined, type: string, fn: (e: any) => void) => {\n if (!target) return;\n try {\n target.addEventListener(type, fn);\n offs.push(() => { try { target.removeEventListener(type, fn); } catch { } });\n } catch { }\n };\n const doc = typeof document !== 'undefined' ? document : undefined;\n const win = typeof window !== 'undefined' ? window : undefined;\n listen(doc, 'visibilitychange', () => this._emitLifecycle(this.isVisible ? 'visible' : 'hidden'));\n listen(doc, 'freeze', () => this._emitLifecycle('frozen'));\n listen(doc, 'resume', () => this._emitLifecycle('resumed'));\n listen(win, 'pageshow', (e: PageTransitionEvent) => { if (e && e.persisted) this._emitLifecycle('restored'); });\n listen(win, 'online', () => this._emitLifecycle('online'));\n listen(win, 'offline', () => this._emitLifecycle('offline'));\n this._lifecycleOff = offs;\n }\n\n private _removeLifecycleListeners(): void {\n const offs = this._lifecycleOff;\n this._lifecycleOff = null;\n if (offs) for (const off of offs) off();\n }\n\n\n private _isDevelopment: boolean = false;\n private _enableErrorLogging: boolean = true;\n public get isDevelopmentModeEnabled(): boolean {\n return this._isDevelopment;\n }\n\n /** Enable reactive leak monitoring (dev önerilir) */\n public useReactiveMonitor(opts: { enabled?: boolean; threshold?: number; name?: string } = {}): this {\n safeCallSilent(() => { configureReactivityLeakMonitor(opts); }, 'Application.useReactiveMonitor.core');\n return this;\n }\n\n public useDevelopment(isDev: boolean = true): this {\n this._isDevelopment = isDev;\n errorHandler.setDevelopmentMode(isDev);\n safeCallSilent(() => { (globalThis as any).__MOTIF_DEV__ = isDev; }, 'Application.useDevelopment.flag');\n safeCallSilent(() => { setDevtoolsEnabled(isDev); }, 'Application.useDevelopment.devtools');\n if (isDev) flushCompilerContractWarnings();\n return this;\n }\n\n public useLogging(enabled: boolean = true): this {\n this._enableErrorLogging = enabled;\n setErrorConsoleLogging(enabled);\n return this;\n }\n\n\n\n\n}\n\n\nexport class ApplicationService {\n public static get current(): Application {\n return Application.main;\n }\n public static initialized: boolean = false;\n public static addToMain(...components: ComponentBase[]) {\n this.current && this.current.getAppShell().controls.add(...components);\n }\n}\n\nexport function useNavigation(): Router {\n return Application.main.router;\n}\n\nexport function useApplication() {\n return {\n application: Application.main,\n services: Application.main.provider,\n router: Application.main.router,\n attach(...components: ComponentBase[]) {\n Application.main && Application.main.getAppShell().controls.add(...components);\n }\n }\n}","import { Application, ServiceLifetime } from \"..\";\nimport { autoRegistry } from \"./autoRegistry\";\nimport { reportWarning } from \"../common/diagnostics\";\n\n\n\nexport function Injectable(options?: {\n lifetime?: ServiceLifetime,\n deps?: any[]\n}): (target: any, context?: ClassDecoratorContext) => void {\n\n return (target: any) => {\n autoRegistry.set(target, {\n lifetime: options?.lifetime ?? \"transient\",\n deps: options?.deps\n });\n };\n}\n\n\n\nexport function FromService<T = any>(token: any): T {\n try {\n return Application.main.provider.get(token);\n } catch (error) {\n reportWarning('MJX414', [describeServiceToken(token), String((error as any)?.message ?? error)], { token, error });\n return null as any;\n }\n}\n\nfunction describeServiceToken(token: any): string {\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n}\n","import { MotifError, formatMotifMessage, motifError } from \"./diagnostics\";\r\n\r\ntype AsyncOrSync<T> = Promise<T> | T;\r\n\r\nexport interface ResilienceContext {\r\n [key: string]: any;\r\n}\r\n\r\ntype Context = ResilienceContext;\r\n\r\nexport type ResilienceAction<T> = (ctx?: ResilienceContext) => AsyncOrSync<T>;\r\n\r\ntype Action<T> = ResilienceAction<T>;\r\n\r\ntype ShouldHandlePredicate = (err: any) => boolean;\r\n\r\nexport interface ResiliencePolicy {\r\n execute<T>(action: ResilienceAction<T>, ctx?: ResilienceContext): Promise<T>;\r\n}\r\n\r\nfunction isTimeoutError(err: any) {\r\n return err && err.name === 'TimeoutError';\r\n}\r\n\r\nclass TimeoutError extends MotifError {\r\n constructor() {\r\n super('MJX605', formatMotifMessage('MJX605'));\r\n this.name = 'TimeoutError';\r\n }\r\n}\r\n\r\nfunction delay(ms: number) {\r\n return new Promise<void>(res => setTimeout(res, ms));\r\n}\r\n\r\nfunction addJitter(base: number, jitterFactor = 0.1) {\r\n const jitter = (Math.random() * 2 - 1) * jitterFactor * base;\r\n return Math.max(0, Math.floor(base + jitter));\r\n}\r\n\r\n\r\nabstract class Policy implements ResiliencePolicy {\r\n abstract execute<T>(action: Action<T>, ctx?: Context): Promise<T>;\r\n}\r\n\r\n\r\nexport interface RetryOptions {\r\n retries?: number;\r\n backoff?: 'fixed' | 'exponential' | 'none';\r\n delay?: number;\r\n jitter?: number;\r\n shouldHandle?: ShouldHandlePredicate;\r\n onRetry?: (attempt: number, err: any, delayMs: number, ctx?: Context) => void | Promise<void>;\r\n}\r\n\r\nclass RetryPolicy extends Policy {\r\n private retries: number;\r\n private backoff: 'fixed' | 'exponential' | 'none';\r\n private delayMs: number;\r\n private jitter: number;\r\n private shouldHandle: ShouldHandlePredicate;\r\n private onRetry?: (attempt: number, err: any, delayMs: number, ctx?: Context) => void | Promise<void>;\r\n\r\n constructor(options: RetryOptions = {}) {\r\n super();\r\n this.retries = options.retries ?? 3;\r\n this.backoff = options.backoff ?? 'exponential';\r\n this.delayMs = options.delay ?? 100;\r\n this.jitter = Math.min(Math.max(options.jitter ?? 0.1, 0), 1);\r\n this.shouldHandle = options.shouldHandle ?? ((err) => !!err && !isTimeoutError(err));\r\n this.onRetry = options.onRetry;\r\n }\r\n\r\n private calcDelay(attempt: number) {\r\n if (this.backoff === 'none') return 0;\r\n if (this.backoff === 'fixed') return addJitter(this.delayMs, this.jitter);\r\n const base = this.delayMs * Math.pow(2, attempt - 1);\r\n return addJitter(base, this.jitter);\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n let lastErr: any;\r\n\r\n for (let attempt = 1; attempt <= this.retries + 1; attempt++) {\r\n try {\r\n return await Promise.resolve(action(ctx));\r\n } catch (err) {\r\n lastErr = err;\r\n if (!this.shouldHandle(err) || attempt > this.retries) break;\r\n const wait = this.calcDelay(attempt);\r\n if (this.onRetry) await this.onRetry(attempt, err, wait, ctx);\r\n if (wait > 0) await delay(wait);\r\n }\r\n }\r\n\r\n throw lastErr;\r\n }\r\n}\r\n\r\n\r\nexport interface TimeoutOptions {\r\n timeoutMs: number;\r\n}\r\n\r\nclass TimeoutPolicy extends Policy {\r\n private timeoutMs: number;\r\n\r\n constructor(opts: TimeoutOptions) {\r\n super();\r\n this.timeoutMs = opts.timeoutMs;\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n let timer: any;\r\n const p = Promise.resolve(action(ctx));\r\n const t = new Promise<never>((_, rej) => {\r\n timer = setTimeout(() => rej(new TimeoutError()), this.timeoutMs);\r\n });\r\n\r\n try {\r\n return await Promise.race([p, t]);\r\n } finally {\r\n clearTimeout(timer);\r\n }\r\n }\r\n}\r\n\r\n\r\nexport type CircuitState = 'CLOSED' | 'OPEN' | 'HALF_OPEN';\r\n\r\nexport interface CircuitBreakerOptions {\r\n failureThreshold?: number;\r\n successThreshold?: number;\r\n durationOfBreakMs?: number;\r\n shouldHandle?: ShouldHandlePredicate;\r\n onStateChange?: (oldState: CircuitState, newState: CircuitState) => void | Promise<void>;\r\n}\r\n\r\nclass CircuitBreakerPolicy extends Policy {\r\n private failureThreshold: number;\r\n private successThreshold: number;\r\n private durationOfBreakMs: number;\r\n private shouldHandle: ShouldHandlePredicate;\r\n private onStateChange?: (oldState: CircuitState, newState: CircuitState) => void | Promise<void>;\r\n\r\n private state: CircuitState = 'CLOSED';\r\n private failureCount = 0;\r\n private successCount = 0;\r\n private nextAttemptTime = 0; \r\n\r\n constructor(opts: CircuitBreakerOptions = {}) {\r\n super();\r\n this.failureThreshold = opts.failureThreshold ?? 5;\r\n this.successThreshold = opts.successThreshold ?? 2;\r\n this.durationOfBreakMs = opts.durationOfBreakMs ?? 60000; \r\n this.shouldHandle = opts.shouldHandle ?? ((err) => !!err && !isTimeoutError(err));\r\n this.onStateChange = opts.onStateChange;\r\n }\r\n\r\n private async changeState(newState: CircuitState) {\r\n const old = this.state;\r\n this.state = newState;\r\n this.failureCount = 0;\r\n this.successCount = 0;\r\n if (newState === 'OPEN') this.nextAttemptTime = Date.now() + this.durationOfBreakMs;\r\n if (this.onStateChange) await this.onStateChange(old, newState);\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n if (this.state === 'OPEN') {\r\n if (Date.now() >= this.nextAttemptTime) {\r\n await this.changeState('HALF_OPEN');\r\n } else {\r\n throw motifError('MJX602');\r\n }\r\n }\r\n\r\n try {\r\n const result = await Promise.resolve(action(ctx));\r\n if (this.state === 'HALF_OPEN') {\r\n this.successCount++;\r\n if (this.successCount >= this.successThreshold) await this.changeState('CLOSED');\r\n } else if (this.state === 'CLOSED') {\r\n this.failureCount = 0;\r\n }\r\n return result;\r\n } catch (err) {\r\n if (this.shouldHandle(err)) {\r\n this.failureCount++;\r\n if (this.state === 'HALF_OPEN' || (this.state === 'CLOSED' && this.failureCount >= this.failureThreshold)) {\r\n await this.changeState('OPEN');\r\n }\r\n }\r\n throw err;\r\n }\r\n }\r\n\r\n getState() {\r\n return this.state;\r\n }\r\n}\r\n\r\n\r\nexport interface BulkheadOptions {\r\n maxConcurrent?: number;\r\n maxQueue?: number;\r\n}\r\n\r\nclass BulkheadPolicy extends Policy {\r\n private maxConcurrent: number;\r\n private maxQueue: number;\r\n private active = 0;\r\n private queue: Array<() => void> = [];\r\n\r\n constructor(opts: BulkheadOptions = {}) {\r\n super();\r\n this.maxConcurrent = opts.maxConcurrent ?? 10;\r\n this.maxQueue = opts.maxQueue ?? 50;\r\n }\r\n\r\n private dequeue() {\r\n if (this.queue.length === 0) return;\r\n if (this.active >= this.maxConcurrent) return;\r\n const resolver = this.queue.shift()!;\r\n resolver();\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n if (this.active >= this.maxConcurrent) {\r\n if (this.queue.length >= this.maxQueue) {\r\n throw motifError('MJX603');\r\n }\r\n await new Promise<void>((res) => {\r\n this.queue.push(res);\r\n });\r\n }\r\n\r\n this.active++;\r\n try {\r\n const result = await Promise.resolve(action(ctx));\r\n return result;\r\n } finally {\r\n this.active--;\r\n this.dequeue();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport interface RateLimiterOptions {\r\n tokensPerInterval?: number;\r\n intervalMs?: number;\r\n capacity?: number;\r\n}\r\n\r\nclass RateLimiterPolicy extends Policy {\r\n private tokensPerInterval: number;\r\n private intervalMs: number;\r\n private capacity: number;\r\n private tokens: number;\r\n private lastRefill: number;\r\n\r\n constructor(opts: RateLimiterOptions = {}) {\r\n super();\r\n this.tokensPerInterval = opts.tokensPerInterval ?? 1;\r\n this.intervalMs = opts.intervalMs ?? 1000;\r\n this.capacity = opts.capacity ?? this.tokensPerInterval;\r\n this.tokens = this.capacity;\r\n this.lastRefill = Date.now();\r\n }\r\n\r\n private refill() {\r\n const now = Date.now();\r\n const elapsed = now - this.lastRefill;\r\n if (elapsed <= 0) return;\r\n const tokensToAdd = Math.floor(elapsed / this.intervalMs) * this.tokensPerInterval;\r\n if (tokensToAdd > 0) {\r\n this.tokens = Math.min(this.capacity, this.tokens + tokensToAdd);\r\n this.lastRefill = now;\r\n }\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n this.refill();\r\n if (this.tokens <= 0) {\r\n throw motifError('MJX604');\r\n }\r\n this.tokens -= 1;\r\n return Promise.resolve(action(ctx));\r\n }\r\n}\r\n\r\n\r\nexport interface FallbackOptions<T> {\r\n fallback: (err: any, ctx?: Context) => AsyncOrSync<T>;\r\n shouldHandle?: ShouldHandlePredicate;\r\n}\r\n\r\nclass FallbackPolicy<T> extends Policy {\r\n private fallback: (err: any, ctx?: Context) => AsyncOrSync<T>;\r\n private shouldHandle: ShouldHandlePredicate;\r\n\r\n constructor(opts: FallbackOptions<T>) {\r\n super();\r\n this.fallback = opts.fallback;\r\n this.shouldHandle = opts.shouldHandle ?? (() => true);\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n\r\n try {\r\n return await Promise.resolve(action(ctx)) as T;\r\n } catch (err) {\r\n if (!this.shouldHandle(err)) throw err;\r\n return await Promise.resolve(this.fallback(err, ctx)) as unknown as T;\r\n }\r\n\r\n }\r\n}\r\n\r\nclass PolicyWrap extends Policy {\r\n private policies: Policy[];\r\n\r\n constructor(...policies: Policy[]) {\r\n super();\r\n this.policies = policies;\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n const wrapped = this.policies.reduceRight((next: Action<T>, p: Policy) => {\r\n return (c?: Context) => p.execute(() => next(c), c);\r\n }, action);\r\n\r\n return wrapped(ctx);\r\n }\r\n}\r\n\r\n\r\nconst resilience = {\r\n retry: (opts?: RetryOptions) => new RetryPolicy(opts),\r\n timeout: (opts: TimeoutOptions) => new TimeoutPolicy(opts),\r\n circuitBreaker: (opts?: CircuitBreakerOptions) => new CircuitBreakerPolicy(opts),\r\n bulkhead: (opts?: BulkheadOptions) => new BulkheadPolicy(opts),\r\n rateLimiter: (opts?: RateLimiterOptions) => new RateLimiterPolicy(opts),\r\n fallback: <T>(opts: FallbackOptions<T>) => new FallbackPolicy<T>(opts),\r\n wrap: (...policies: Policy[]) => new PolicyWrap(...policies),\r\n};\r\n\r\n\r\nexport function decorate<T>(policy: ResiliencePolicy, fn: ResilienceAction<T>) {\r\n return (ctx?: ResilienceContext) => policy.execute(fn, ctx);\r\n}\r\n\r\nexport class Resilience implements ResiliencePolicy {\r\n static get create(): Resilience {\r\n return new Resilience();\r\n }\r\n private resiliences: Policy[] = [];\r\n retry = (opts?: RetryOptions): Resilience => {\r\n this.resiliences.push(resilience.retry(opts));\r\n return this;\r\n }\r\n timeout = (opts: TimeoutOptions): Resilience => {\r\n this.resiliences.push(resilience.timeout(opts));\r\n return this;\r\n }\r\n\r\n circuitBreaker = (opts?: CircuitBreakerOptions): Resilience => {\r\n this.resiliences.push(resilience.circuitBreaker(opts));\r\n return this;\r\n }\r\n\r\n bulkhead = (opts?: BulkheadOptions): Resilience => {\r\n this.resiliences.push(resilience.bulkhead(opts));\r\n return this;\r\n }\r\n\r\n rateLimiter = (opts?: RateLimiterOptions): Resilience => {\r\n this.resiliences.push(resilience.rateLimiter(opts));\r\n return this;\r\n }\r\n fallback = <T>(opts: FallbackOptions<T>): Resilience => {\r\n this.resiliences.push(resilience.fallback<T>(opts));\r\n return this;\r\n }\r\n\r\n async execute<T>(action: Action<T>, ctx?: Context): Promise<T> {\r\n return resilience.wrap(...this.resiliences).execute(action, ctx);\r\n }\r\n}\r"],"names":["rethrowLater","error","setTimeout","ErrorHandler","unexpectedErrorHandler","listeners","_isDevelopment","_enableConsoleLogging","setDevelopmentMode","isDev","this","setConsoleLogging","enabled","isDevelopment","globalThis","__MOTIF_DEV__","reportSuppressed","context","logIfDev","report","undefined","cause","console","message","bus","__MOTIF_DEVTOOLS_BUS__","publish","code","name","serializeError","emit","Error","stack","JSON","parse","stringify","String","addListener","listener","push","index","indexOf","splice","slice","setUnexpectedErrorHandler","handler","getUnexpectedErrorHandler","onUnexpectedError","safeCall","fn","fallback","safeCallAsync","safeCallSilent","safeCallSilentAsync","wrapSafe","args","wrapSafeAsync","async","errorHandler","state","Set","warnings","routes","isDevLike","isRequestedByFlag","window","__motif_DEVTOOLS","__MOTIF_DEVTOOLS__","__MOTIF_DEVTOOLS_FLAG","exposeBus","visible","__motifDevBus","on","warn","getWarnings","isEnabled","setRoutes","getRoutes","ensureDevtoolsFlagInitialized","add","delete","type","payload","ev","l","details","w","motifMessages","MJX101","tag","MJX102","description","MJX103","MJX104","MJX105","MJX106","MJX107","MJX108","MJX109","MJX110","ms","MJX111","MJX112","depth","MJX113","MJX114","MJX115","MJX116","MJX117","MJX118","MJX119","MJX120","MJX121","compiled","runtime","MJX122","hook","MJX123","event","MJX124","MJX125","key","MJX126","MJX201","MJX202","MJX203","max","MJX204","MJX205","MJX206","MJX207","MJX208","MJX301","outlet","MJX302","MJX303","chain","MJX304","MJX305","MJX306","MJX307","MJX308","MJX309","MJX310","parentPath","MJX311","path","MJX312","full","MJX313","MJX314","alias","MJX315","MJX316","MJX401","token","MJX402","MJX403","MJX404","MJX405","MJX406","selector","MJX407","MJX408","reason","MJX409","MJX410","sources","MJX411","MJX413","MJX414","MJX501","MJX502","MJX503","MJX504","MJX505","MJX507","limit","count","MJX601","MJX602","MJX603","MJX604","MJX605","MJX607","MJX608","MJX609","MJX610","MJX611","MotifError","constructor","options","super","formatMotifMessage","motifError","reportError","callReported","result","then","reportWarning","devWarn","disposableCore","disposableTracker","notifyCreated","target","trackDisposable","notifyDisposed","markAsDisposed","notifyOwner","owner","setParent","toDisposable","pending","handle","dispose","DisposableStore","_items","_closed","isDisposed","item","detach","clear","size","failures","length","AggregateError","Disposable","_disposables","owned","disposable","_register","Flags","IS_REACTIVE","Symbol","for","IS_READONLY","IS_SUPERFICIAL","RAW","GET_SETUP","ITERATE_KEY","followTracking","arrayScope","getRaw","value","current","hasOwn","Object","prototype","hasOwnProperty","call","isObject","intrinsicSymbols","values","getOwnPropertyDescriptors","map","descriptor","filter","isIntrinsicSymbol","has","proxyableTags","Map","canonicalIndex","savedTracking","trackingDepth","enterTracking","pauseTracking","resetTracking","arrayStack","ListBinding","component","itemsFn","renderFn","propertyName","dataSource","dataMember","formatString","converter","converterBack","updateMode","_isActive","_effectCleanup","_rendered","_identityMap","WeakMap","container","motifFragment","controls","activate","_setupBinding","deactivate","_disposeAll","reActivate","forEach","c","_toArray","src","Array","isArray","iterator","from","_getComponentKey","comp","p","props","indexkey","k","motif","__key","isPreCreated","element","parent","_render","idx","untracked","rendered","processRendered","resolveComponent","ComponentBase","_base","itemRef","__fromList","__listAdopted","olditems","_indexSensitive","_isPrimitive","v","update","source","rawSource","items","i","prevItems","prevComponents","currentRaws","old","raw","list","get","newComponents","usedComponents","seenKeys","claimed","positionalReuse","isReusable","shared","Math","min","it","is","set","valuePool","prev","queue","occurrences","occurrence","existing","reused","shift","userKey","_syncContainer","effect","appendOnly","oldIndex","oi","stable","predecessors","fill","tails","lo","hi","mid","u","reverse","longestIncreasingIndices","anchor","at","move","NameValuePair","Key","List","ItemAdded","ItemAddedBefore","ItemSplice","__list","_map","Dispose","Add","AddBefore","unshift","Insert","start","remove","FindFromKey","removeIndex","deleted","t","callbackfn","ReverseClone","normalizePath","replace","findAppendableComponent","nodeType","Node","COMMENT_NODE","DOCUMENT_FRAGMENT_NODE","TEXT_NODE","LeakMonitor","threshold","_origins","_quietChecks","check","origin","_busiestOrigin","busiest","entry","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","isWritablePathKey","BindingCollection","_branchScope","_own","register","when","computeFn","frame","Frame","last","shown","navigate","text","cb","binding","wait","display","html","loop","method","host","place","next","insert","Component","dom","createTextNode","ternary","conditionFn","trueFn","falseFn","_ternaryCallTop","_ternarySchedule","condFn","onTrue","onFalse","defer","stopped","inner","stopInner","stopEffect","condition","outer","ternaryCall","queueMicrotask","watch","ef","activateAll","model","tn","lowerTag","writeBack","member","deactivateAll","reActivateAll","switchCase","discriminatorFn","cases","defaultFn","currentValue","defaultRunned","caseKey","Emitter","_subscriptions","_delivery","_subscribe","_disposed","thisArgs","disposables","subscription","_writable","_unsubscribe","fire","_resume","targets","delivery","ComponentEmiter","_emitters","_sourceDisposables","_listenerDisposables","hasListeners","eventName","createEvent","off","lower","d","getOrCreateEmitter","emitters","lowerFull","startsWith","invoke","res","disp","addSource","forward","srcs","agg","keys","METHOD_ATTRS","OPEN_METHODS","showModal","showPopover","WHEN_TRUTHY_METHODS","ARGUMENT_METHODS","PROPERTY_FIRST","controlAttribute","_parent","_attrMapStore","_watchersStore","_attrMap","_watchers","attributes","entries","attribute","bag","Reflect","ownKeys","stopper","bindings","_getElement","removeAttribute","HTMLElement","Element","hasAttribute","getAttribute","val","_applyValue","arg","apply","schedule","cacheValue","blur","inp","setSelectionRange","document","fullscreenElement","exitFullscreen","exitPointerLock","catch","pause","exitPictureInPicture","other","srcObject","setAttribute","isBool","input","isComponentLike","hasMethodState","getMethodState","activeElement","selectionStart","selectionEnd","controlClass","_countsStore","_staticSetStore","_watcherSeq","_counts","_staticSet","_addReactive","_addStaticFromArray","_addStaticFromObject","valueStr","trim","_addStaticFromString","classNames","cn","cls","_splitClasses","_applySourceDiff","id","className","classList","contains","s","_normalizeToSet","obj","sourceId","now","prevCount","arr","rec","el2","shimAnimation","cancel","addEventListener","removeEventListener","oncancel","playState","cssTimeToMs","amount","substring","sampleTiming","styles","kind","listOf","aspect","delays","durations","longest","Infinity","total","tracks","transformTrack","computeTransitionInfo","Type","timeout","propCount","hasTransform","samples","transition","animation","winner","forced","test","transitionProperty","getTransitionInfo","isConnected","getComputedStyle","fxElement","createElement","body","appendChild","runCssTransition","phase","done","appear","css","classes","enter","enterFromClass","enterActiveClass","to","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","resolveTransitionClasses","addC","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","callInitializeComponent","sender","initializeComponent","_initializeComponentHandlers","oninitializeComponent","_onInitializeComponentHandlers","callDisposing","onDisposing","_onDisposingHandlers","ondisposing","callActivated","onActivated","_onActivatedHandlers","callDeactivated","onDeactivated","_onDeactivatedHandlers","deactivateTree","deep","_inactive","activateTree","callDisposed","_disposedFired","onDisposed","_onDisposedHandlers","ondisposed","callBuilt","onBuilt","_onBuiltHandlers","onbuilt","scheduleMounted","_mountedScheduled","onMounted","_onMountedHandlers","onmounted","onElementAttached","callMounted","_mountedFired","callBuilding","onBuilding","_onBuildingHandlers","callConfig","isConfigured","_preconfig","onConfig","_onConfigHandlers","callConfigured","_postconfigdone","_configDeferred","onConfigured","_onConfiguredHandlers","callOnInitialized","isInitialized","onInitialized","_onInitializedHandlers","callOnInitializing","onInitializing","_onInitializingHandlers","callVisibilityChanged","onVisibilityChanged","_onVisibilityChangedHandlers","findFragmentContent","controlElement","childNodes","child","closeFragment","backgroundCallback","internalBuild","_activatePreBindings","cisBuilt","enterSeq","pendingLeave","__pendingLeave","build","ownItems","currentIndex","appendableElement","getContent","referenceNode","insertHost","domReferenceOf","candidate","siblings","cfg","hideStrategy","isFromListOrKeyed","createComment","insertBefore","router","requestPath","uri","targetPath","exact","strip","isExactMatch","prefix","rp","pp","startsWithPath","activeClass","offActive","onActive","exactClass","offExact","onExact","removeComponentDom","alsoPlaceholder","nextSibling","removeChild","detachDomWithAnimation","_forceInstantDetach","DISPOSE_STARTED","subtreeDisposesSync","_disposing","disposeAsync","disposePrefix","asChild","ctx","skipLeaveTransition","_offAll","_deactivateBindings","silentDetach","disposeFinish","_deepCleanup","disposeRemainderAsync","_detachDomWithAnimationAsync","liveContentBlocks","findContentBlocks","block","disposeContentBlocks","childOptions","ctrls","BASE_PROTO","evt","wrapped","cap","_activateBindings","_reactivateBindings","prebinding_Activated","registered","_detachDomWithAnimation","detachDomWithAnimationAsync","_disposeShallow","disposeShallow","class","attr","childs","deepCleanup","fragmentCloseMarkers","LIFECYCLE_X_EVENTS","RAW_APPLICATION","SCOPED_SUBSCRIBERS","isPainting","isPainted","ControlCollection","_isWait","_styleFx","useModel","modelCtor","reactive","_computeHideStrategy","_isInDom","onElementCreating","refs","extractRefs","takePendingRefs","ParseProps","applyComponentOptions","ctor0","applyPlainElementProps","applyFallthroughProps","onAdd","control","onAddBeforeBuild","onRemove","ctor","createBaseCtx","_scopedContext","parentCtx","app","Application","main","_trackContextSubscription","createScopedContext","building","ph","createDocumentFragment","isFragment","textContent","view","templ","deferredSelectValue","nodeName","seq","appendData","append","setState","reState","_textBindingWarned","warnComponentInTextBinding","content","styleObj","_stopStyleEffect","prevKeys","prevWasString","so","cssText","assign","fx","_addHandler","_show","showHost","_showSeq","needAttach","placeholderParent","parentElement","expectedParent","replaceChild","_hide","skip","_toggle","_on","xName","sub","_mountedSubs","subs","mods","once","passive","isTrusted","prevent","preventDefault","stopPropagation","original","_trigger","eh","_off","_disposeCore","rootDetached","nodes","parents","j","heights","order","disposeRemainderSync","_clear","disableDisposal","clearAsync","using","waitable","onfulfilled","onrejected","doWork","_siblingsApi","_siblingsSet","_createSiblingsApi","nextAll","prevAll","serviceProvider","provider","getService","sp","err","$","fromDom","fromComponent","findingTarget","findContainer","querySelectorAll","findingComponent","found","walk","cmp","ELEMENT_NODE","matches","msMatchesSelector","webkitMatchesSelector","_stopAnimations","_appliedRefs","ref","fns","applied","isCallableRef","runover","rest","LIFECYCLE_HANDLER_LISTS","initializecomponent","oninitializecomponent","onbuilding","oninitializing","oninitialized","onconfig","onconfigured","onvisibilitychanged","onactivated","ondeactivated","collectLifecycleHandlers","lowerKey","flat","applyTransitionProp","componentMethods","eventKey","nkey","_transitionSources","setTransition","WeakSet","COMPONENT_OPTION_KEYS","PLAIN_ELEMENT_SKIP","SPREAD_URL_ATTRIBUTES","JAVASCRIPT_URL","isJavascriptUrl","guardSpreadUrl","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","glblths","getCurrentDom","motifDom","_created","doc","cloneNode","cd","selectors","namepsaceUri","convertToSvgElement","newSvgElement","firstChild","SELECTOR_REGEX","Namespace","children","namespace","exec","HTML","_$","_insertOne","resolveDone","detachComponentDom","arrive","visit","arrived","runLeaveThenDetach","unlinkOnly","silentUnlink","beforeIndex","newBeforeIndex","insertAt","findAppendableElement","open","maxIterations","isNodeInRange","frag","ownerDocument","moveComponentDomRange","computeAppendReference","moveToIndex","defaultMapper","default","Lazy","timers","trackTimer","clearAllTimers","initial","Placeholderview","Loaderview","attemptLoad","timeoutMs","signal","caller","parts","reject","finally","onAbortClear","aborted","onAbort","race","retry","floor","delayMs","whenOnline","normalizeRetry","cleanups","waitBeforeRetry","go","onlineHandler","navigator","onLine","loadPromise","onRetry","loadWithRetry","startTs","mapResult","elapsed","minDelay","minDelayMs","remaining","onAbortClearDelay","onError","Fallbackview","hasOwnTransition","cancelAnimationsDeep","anims","anim","disposeNavigationTarget","xr","navigateHost","page","keepOldControl","navigateId","_latestNavigateId","isBusy","complete","xP","previouspage","_navPending","prevLock","_navLock","_navAbort","abort","AbortController","oldPage","animated","leaving","lazyFrame","flush","navigateLazy","preprocessitem","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","createGetter","meta","reader","readMeta","patched","arrayMethods","createSetter","Boolean","oldValue","oldLength","numeric","hadKey","proxy","removeArrayStack","createOwn","createHas","createDelete","isOwned","deleteProperty","PATCHED_ARRAY_METHODS","ArrayMethods","createArrayMethods","table","patch","needles","direct","outcome","needle","sorted","ReactiveEngineMapper","AllreactiveMap","_gci","startGc","_intervalMs","stopGc","clearInterval","DisposeMapper","arrayTriggerCache","activeCallback","arrayHandler","deepHandler","targetType","cname","isExtensible","existingProxy","clearModel","ArrayTrigger","toRaw","deepClone","array","enableTracking","cnt","reactiveRegistry","isDevRegistryEnabled","__MOTIF_STORE_REGISTRY__","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","RegExp","parameters","exist","pageSearch","hashIdx","withoutHash","query","qIdx","rx","indx","urlSearchParams","URLSearchParams","queryMap","str","charCodeAt","second","routeSpecificity","fullPath","statics","params","compareRouteRecords","sa","RouteCollection","records","routesMap","viaAlias","nextChain","variants","isAlias","variant","leaf","scanner","aliasOf","RoutingEngine","_revealed","application","routingModule","_previousPath","_previousInstances","mainApp","controlCache","route","_navVersion","generatePathString","routeDefinition","part","paramDefinition","paramName","defaultValue","_pendingActivate","execute","_rootProvider","suppressed","_execute","_routerState","navVersion","restored","controlList","isSameRoute","enableEnter","paramsChanged","prevParams","newParams","allKeys","leafRoute","keepAlive","oldInstance","globalHooks","getHooks","updateHook","onUpdate","updateContext","extend","metaInfo","enterContext","enterHook","onEntering","prepTasks","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","_removeLifecycleListeners","useTransitions","use","useGuard","guard","redirectPath","guardResolved","_routerConfig","useRouter","isDevtoolsEnabled","seenFull","seenAlias","rawPath","isDefaultSlash","isEmptyPath","childPath","aliases","rawAlias","aliasFull","aliasCount","lintRoutes","restartRouter","fresh","isOnline","_lifecycleOff","onLifecycle","_installLifecycleListeners","_emitLifecycle","online","win","persisted","_enableErrorLogging","isDevelopmentModeEnabled","useReactiveMonitor","useDevelopment","flushCompilerContractWarnings","useLogging","setErrorConsoleLogging","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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"}
|