@motifx/core 1.2.0-rc.0 → 1.2.0-rc.1
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-SS-LXi1V.cjs.map +1 -1
- package/dist/chunks/core-vVL0WG0n.esm.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -5
- package/dist/index.d.ts +15 -5
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-SS-LXi1V.cjs","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/functions.ts","../../src/common/LeakMonitor.ts","../../src/common/LinkedList.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/store/handlers/getter.ts","../../src/store/handlers/setter.ts","../../src/store/handlers/orhers.ts","../../src/store/handlers/ArrayMethods.ts","../../src/store/handlers/collections.ts","../../src/store/ReactiveEngine.ts","../../src/store/index.ts","../../src/dependencyInjection/autoRegistry.ts","../../src/dependencyInjection/ServiceCollection.ts","../../src/devtools/routeLinter.ts","../../src/devtools/overlay.ts","../../src/routing/RouterViewRegistry.ts","../../src/routing/RouterView.ts","../../src/routing/scrollMemory.ts","../../src/routing/NavigationStack.ts","../../src/routing/scanner.ts","../../src/routing/RouteCollection.ts","../../src/routing/RoutingEngine.ts","../../src/routing/UrlRoutingModule.ts","../../src/routing/routerState.ts","../../src/application.ts"],"sourcesContent":["function rethrowLater(error: any): void {\r\n\tsetTimeout(() => { throw error; }, 0);\r\n}\r\n\r\nexport class ErrorHandler {\r\n\tprivate unexpectedErrorHandler: (e: any) => void = rethrowLater;\r\n\tprivate listeners: Array<(error: any) => void> = [];\r\n\tprivate _isDevelopment: boolean = false;\r\n\tprivate _enableConsoleLogging: boolean = true;\r\n\r\n\tpublic setDevelopmentMode(isDev: boolean): void {\r\n\t\tthis._isDevelopment = isDev;\r\n\t}\r\n\r\n\tpublic setConsoleLogging(enabled: boolean): void {\r\n\t\tthis._enableConsoleLogging = enabled;\r\n\t}\r\n\r\n\tpublic isDevelopment(): boolean {\r\n\t\treturn this._isDevelopment || (globalThis as any).__MOTIF_DEV__ === true;\r\n\t}\r\n\r\n\tpublic reportSuppressed(context: string, error: any): void {\r\n\t\tthis.logIfDev(context, error);\r\n\t}\r\n\r\n\tpublic report(error: Error): void {\r\n\t\tif (this._enableConsoleLogging) {\r\n\t\t\tif (error.cause !== undefined) console.error(error.message, error.cause);\r\n\t\t\telse console.error(error.message);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n\t\t\tif (bus && typeof bus.publish === 'function') {\r\n\t\t\t\tbus.publish('error:caught', { context: (error as any).code ?? error.name, error: this.serializeError(error) });\r\n\t\t\t}\r\n\t\t} catch { /* ignore */ }\r\n\r\n\t\tthis.emit(error);\r\n\t}\r\n\r\n\tprivate logIfDev(context: string, error: any): void {\r\n\t\tif (this.isDevelopment() && this._enableConsoleLogging) {\r\n\t\t\tconsole.error(`[motifjs Error - ${context}]`, error);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n\t\t\tif (bus && typeof bus.publish === 'function') {\r\n\t\t\t\tbus.publish('error:caught', { context, error: this.serializeError(error) });\r\n\t\t\t}\r\n\t\t} catch { /* ignore */ }\r\n\t}\r\n\r\n\r\n\tprivate serializeError(error: any): any {\r\n\t\tif (!error) return { message: 'Unknown error' };\r\n\t\tif (error instanceof Error) {\r\n\t\t\treturn {\r\n\t\t\t\tname: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstack: error.stack,\r\n\t\t\t\tcause: error.cause ? this.serializeError(error.cause) : undefined\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (typeof error === 'object') {\r\n\t\t\ttry { return JSON.parse(JSON.stringify(error)); } catch { return String(error); }\r\n\t\t}\r\n\t\treturn String(error);\r\n\t}\r\n\r\n\taddListener(listener: (error: any) => void): () => void {\r\n\t\tthis.listeners.push(listener);\r\n\t\treturn () => {\r\n\t\t\tconst index = this.listeners.indexOf(listener);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tthis.listeners.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tprivate emit(error: any): void {\r\n\t\tfor (const listener of this.listeners.slice()) {\r\n\t\t\tlistener(error);\r\n\t\t}\r\n\t}\r\n\r\n\tsetUnexpectedErrorHandler(handler: (e: any) => void): void {\r\n\t\tthis.unexpectedErrorHandler = handler;\r\n\t}\r\n\r\n\tgetUnexpectedErrorHandler(): (e: any) => void {\r\n\t\treturn this.unexpectedErrorHandler;\r\n\t}\r\n\r\n\tonUnexpectedError(error: any): void {\r\n\t\tthis.unexpectedErrorHandler(error);\r\n\t\tthis.emit(error);\r\n\t}\r\n\r\n\tpublic safeCall<T>(fn: () => T, context: string, fallback?: T): T | undefined {\r\n\t\ttry {\r\n\t\t\treturn fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t\tthis.onUnexpectedError(error);\r\n\t\t\treturn fallback;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async safeCallAsync<T>(fn: () => Promise<T>, context: string, fallback?: T): Promise<T | undefined> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t\tthis.onUnexpectedError(error);\r\n\t\t\treturn fallback;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic safeCallSilent(fn: () => void, context: string): void {\r\n\t\ttry {\r\n\t\t\tfn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async safeCallSilentAsync<T>(fn: () => Promise<T>, context: string): Promise<T | undefined> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tpublic wrapSafe<TArgs extends any[], TReturn>(\r\n\t\tfn: (...args: TArgs) => TReturn,\r\n\t\tcontext: string\r\n\t): (...args: TArgs) => TReturn | undefined {\r\n\t\treturn (...args: TArgs) => {\r\n\t\t\ttry {\r\n\t\t\t\treturn fn(...args);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tthis.logIfDev(context, error);\r\n\t\t\t\tthis.onUnexpectedError(error);\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic wrapSafeAsync<TArgs extends any[], TReturn>(\r\n\t\tfn: (...args: TArgs) => Promise<TReturn>,\r\n\t\tcontext: string\r\n\t): (...args: TArgs) => Promise<TReturn | undefined> {\r\n\t\treturn async (...args: TArgs) => {\r\n\t\t\ttry {\r\n\t\t\t\treturn await fn(...args);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tthis.logIfDev(context, error);\r\n\t\t\t\tthis.onUnexpectedError(error);\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport const errorHandler = new ErrorHandler();\r\n\r\n\r\nexport function setErrorConsoleLogging(enabled: boolean): void {\r\n\terrorHandler.setConsoleLogging(enabled);\r\n}\r\n\r\nexport function safeCall<T>(fn: () => T, context: string, fallback?: T): T | undefined {\r\n\treturn errorHandler.safeCall(fn, context, fallback);\r\n}\r\n\r\nexport function safeCallAsync<T>(fn: () => Promise<T>, context: string, fallback?: T): Promise<T | undefined> {\r\n\treturn errorHandler.safeCallAsync(fn, context, fallback);\r\n}\r\n\r\n\r\nexport function safeCallSilent<T>(fn: () => T, context: string): void {\r\n\terrorHandler.safeCallSilent(fn, context);\r\n}\r\n\r\n\r\nexport function safeCallSilentAsync<T>(fn: () => Promise<T>, context: string): Promise<T | undefined> {\r\n\treturn errorHandler.safeCallSilentAsync(fn, context);\r\n}\r\n\r\nexport function wrapSafe<TArgs extends any[], TReturn>(\r\n\tfn: (...args: TArgs) => TReturn,\r\n\tcontext: string\r\n): (...args: TArgs) => TReturn | undefined {\r\n\treturn errorHandler.wrapSafe(fn, context);\r\n}\r\n\r\nexport function wrapSafeAsync<TArgs extends any[], TReturn>(\r\n\tfn: (...args: TArgs) => Promise<TReturn>,\r\n\tcontext: string\r\n): (...args: TArgs) => Promise<TReturn | undefined> {\r\n\treturn errorHandler.wrapSafeAsync(fn, context);\r\n}\r\n\r\nexport function setUnexpectedErrorHandler(handler: (e: any) => void): void {\r\n\terrorHandler.setUnexpectedErrorHandler(handler);\r\n}\r\n","export type DevEvent = { type: string; payload?: any };\r\nexport type DevWarning = { code: string; message: string; details?: any };\r\n\r\nconst state = {\r\n enabled: false as boolean,\r\n listeners: new Set<(ev: DevEvent) => void>(),\r\n warnings: [] as DevWarning[],\r\n routes: null as any,\r\n};\r\n\r\n/** Dev modu: devtools açık ya da `globalThis.__MOTIF_DEV__ === true`. */\r\nexport function isDevLike(): boolean {\r\n return state.enabled || (globalThis as any).__MOTIF_DEV__ === true;\r\n}\r\n\r\nexport function isRequestedByFlag(): boolean {\r\n try {\r\n if (typeof window === 'undefined') return false;\r\n const w = window as any;\r\n if (w.__motif_DEVTOOLS === true) return true;\r\n if ((globalThis as any).__MOTIF_DEVTOOLS__ === true) return true;\r\n if ((globalThis as any).__MOTIF_DEVTOOLS_FLAG === true) return true;\r\n return false;\r\n } catch { return false; }\r\n}\r\n\r\nfunction exposeBus(visible: boolean) {\r\n try {\r\n if (visible) (window as any).__motifDevBus = { on, emit, warn, getWarnings, isEnabled, setRoutes, getRoutes };\r\n else delete (window as any).__motifDevBus;\r\n } catch { }\r\n}\r\n\r\nexport function ensureDevtoolsFlagInitialized() {\r\n if (state.enabled) return;\r\n state.enabled = isRequestedByFlag();\r\n if (state.enabled) exposeBus(true);\r\n}\r\n\r\nexport function setDevtoolsEnabled(enabled: boolean) {\r\n state.enabled = enabled || isRequestedByFlag();\r\n exposeBus(state.enabled);\r\n}\r\n\r\nexport function isEnabled(): boolean { return state.enabled; }\r\n\r\nexport function on(listener: (ev: DevEvent) => void): () => void {\r\n state.listeners.add(listener);\r\n return () => { state.listeners.delete(listener); };\r\n}\r\n\r\nexport function emit(type: string, payload?: any) {\r\n const ev: DevEvent = { type, payload };\r\n for (const l of state.listeners) {\r\n try { l(ev); } catch { }\r\n }\r\n try {\r\n const bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n if (bus && typeof bus.publish === 'function') {\r\n bus.publish('devtools:' + type, payload);\r\n }\r\n } catch { }\r\n}\r\n\r\nexport function warn(code: string, message: string, details?: any) {\r\n if (!isDevLike()) return;\r\n const w: DevWarning = { code, message, details };\r\n state.warnings.push(w);\r\n try { if (typeof console !== 'undefined') details === undefined ? console.warn(`[motifjs] ${code}: ${message}`) : console.warn(`[motifjs] ${code}: ${message}`, details); } catch { }\r\n emit('warning', w);\r\n}\r\n\r\nexport function getWarnings(): DevWarning[] { return state.warnings.slice(); }\r\n\r\nexport function setRoutes(routes: any) { state.routes = routes; }\r\nexport function getRoutes(): any { return state.routes; }\r","import { errorHandler } from \"./ErrorHandler\";\nimport { warn as devWarn } from \"../devtools/devbus\";\n\nexport const motifMessages = {\n MJX101: (tag: string) => `dom.createElement('${tag}'): no document is available (no DOM environment).`,\n MJX102: (description: string) => `Invalid element selector \"${description}\".`,\n MJX103: (tag: string) => `dom.createElementNS('${tag}') failed.`,\n MJX104: () => `Skipped inserting a component into the DOM because it contains its own parent.`,\n MJX105: () => `Applying router link classes failed.`,\n MJX106: () => `The placeholder parent changed; rebuilding the component.`,\n MJX107: () => `Disposing a child component failed.`,\n MJX108: () => `Component is disposed; the result of doWork was discarded.`,\n MJX109: () => `A content block child was removed because its content body is being disposed.`,\n MJX110: (ms: number) => `Lazy timeout: the component did not load within ${ms} ms.`,\n MJX111: () => `Lazy aborted: loading the component was cancelled.`,\n MJX112: (depth: number) => `resolveComponent: the factory chain exceeded ${depth} levels; a factory may be returning itself.`,\n MJX113: () => `The transport slot has no parent; mount the slot before transporting into it.`,\n MJX114: () => `Placing the navigation target into its host failed.`,\n MJX115: () => `Disposing the previous navigation target failed.`,\n MJX116: (ms: number) => `Timeout: the listener guard did not settle within ${ms} ms.`,\n MJX117: () => `Detaching a control failed.`,\n MJX118: () => `The onRemove callback failed while detaching a control.`,\n MJX119: () => `Moving a fragment's DOM range stopped: its end marker was not found (possible infinite loop).`,\n MJX120: () => `Scanning a fragment's DOM range stopped: its end marker was not found (possible infinite loop).`,\n MJX121: (compiled: number, runtime: number) => `This code was compiled for compiler contract ${compiled}, but the @motifx/core runtime implements contract ${runtime}. Install matching versions of @motifx/compiler and @motifx/core, and rebuild packages that ship compiled JSX.`,\n MJX122: (hook: string) => `The component ${hook} hook threw.`,\n MJX123: (event: string) => `The '${event}' event handler threw.`,\n MJX124: (key: string) => `A spread object on a DOM tag cannot set ${key}; the key was ignored. Write it on the tag, or use x-html, for HTML you trust.`,\n MJX125: (key: string) => `A spread object on a DOM tag cannot set a javascript: URL on '${key}'; the value was ignored. Write the attribute on the tag if it is intended.`,\n MJX126: () => `Lazy: loading the component failed and no Fallbackview is set; the host was cleared.`,\n MJX127: (got: string) => got === 'module'\n ? `The loaded module has no default export. Export the component as default, or map it: () => import('./X').then(m => m.X).`\n : `The loaded value is not a component (got ${got}). Return a component class, a function component, an Options API factory or a component instance.`,\n MJX128: (cls: string, member: string, how: 'method' | 'field' | 'replaced') => how === 'method'\n ? `${cls} overrides ${member} without calling super.${member}; MotifJS relies on this ComponentBase member. Rename your member, or call super.${member} in the override.`\n : how === 'field'\n ? `${cls} defines '${member}' as an instance field, which hides the ComponentBase member MotifJS relies on. Rename your field.`\n : `${cls} replaces '${member}', which MotifJS created for the component (a class field or an assignment with that name). Rename your member.`,\n\n MJX201: () => `ListBinding: renderFn must return a component instance, a component class, or a factory function.`,\n MJX202: (key: unknown, index: number) => `ListBinding: duplicate key \"${String(key)}\" at index ${index}. Rows are matched by the item object, not by key, so rendering is not affected; keep keys unique so they identify items.`,\n MJX203: (max: number) => `An effect ran ${max} times in one flush and keeps triggering itself; it is skipped for the rest of this flush. It probably writes a value it reads (for example state.n++). Wrap the write in untracked(...).`,\n MJX204: () => `A component reached a text binding and was not written to the DOM. For a template prop that can change later, write a getter: {() => props.tpl}. Templates that are ready at setup also work as {props.tpl}.`,\n MJX205: () => `Virtualization: the watch callback threw.`,\n MJX206: () => `Virtualization: autoRefresh stopped; dataRequest may be changing the reactive data it reads on every refresh.`,\n MJX207: () => `Virtualization: loading data failed.`,\n MJX208: () => `An effect threw.`,\n\n MJX301: (outlet: string, ms: number) => `RouterView outlet '${outlet}' was not built within ${ms} ms, so the route chain cannot be mounted. Does the layout component render a <RouterView>?`,\n MJX302: (name: string) => `Named route '${name}' was not found.`,\n MJX303: (chain: string) => `Redirect loop or too many redirects: ${chain}`,\n MJX304: () => `Route execution failed.`,\n MJX305: () => `The error fallback route failed.`,\n MJX306: (hook: string) => `The ${hook} hook threw.`,\n MJX307: () => `Disposing a route component failed.`,\n MJX308: () => `The stack navigation transition failed.`,\n MJX309: () => `Router is not initialized. Call useRouter() before navigating.`,\n MJX310: (parentPath: string) => `Route path cannot be empty; use '/' for the default child. Under parent \"${parentPath}\".`,\n MJX311: (path: string, parentPath: string) => `Child route path should start with '/': \"${path}\" under parent \"${parentPath}\".`,\n MJX312: (full: string) => `Child route path resolves to the same full path as its parent: \"${full}\".`,\n MJX313: (full: string) => `Multiple routes resolve to the same full path: \"${full}\".`,\n MJX314: (alias: string, parentPath: string) => `Child route alias should start with '/': \"${alias}\" under parent \"${parentPath}\".`,\n MJX315: (alias: string) => `Route alias resolves to the route's own path: \"${alias}\".`,\n MJX316: (alias: string) => `Multiple routes use the same alias: \"${alias}\".`,\n\n MJX401: (token: string) => `Service not registered for token: ${token}`,\n MJX402: (token: string) => `Async factory used with get() for token ${token}; use getAsync().`,\n MJX403: () => `Invalid service descriptor.`,\n MJX404: (chain: string) => `Cyclic dependency detected: ${chain}`,\n MJX405: () => `Only one ApplicationBuilder instance is allowed.`,\n MJX406: (selector: string) => `Application.run: host not found for selector: ${selector}`,\n MJX407: (token: string) => `getService: no ServiceProvider found for token '${token}'.`,\n MJX408: (token: string, reason: string) => `getService failed for token '${token}': ${reason}`,\n MJX409: (token: string) => `inject(${token}) was called outside a service construction; call it in a field initializer or constructor of a class the ServiceProvider creates.`,\n MJX410: (token: string, sources: string) => `Multiple sources provided for token '${token}': ${sources}. Resolution order is useValue > useFactory > useClass.`,\n MJX411: (token: string) => `'deps' must be an array for token '${token}'; the invalid deps are ignored.`,\n MJX413: (token: string) => `Service '${token}' is registered with a function that cannot be constructed. Use { useValue: fn } to provide the function itself or { useFactory: fn } to create the service.`,\n MJX414: (token: string, reason: string) => `FromService failed for token '${token}': ${reason}`,\n\n MJX501: () => `Disposable already disposed.`,\n MJX502: () => `Cannot register a disposable on itself.`,\n MJX503: () => `Errors were thrown while disposing a store.`,\n MJX504: () => `A disposable was added to a DisposableStore that is already disposed; the added object will leak.`,\n MJX505: () => `Cannot dispose a disposable on itself.`,\n MJX507: (name: string, limit: number, count: number) => `[${name}] potential listener LEAK: ${limit} listeners already; most frequent stack (${count}):`,\n\n MJX601: () => `Sequence contains no elements.`,\n MJX602: () => `Circuit is open.`,\n MJX603: () => `Bulkhead queue is full.`,\n MJX604: () => `Rate limit exceeded.`,\n MJX605: () => `Operation timed out.`,\n MJX607: () => `A history must be created with at least one entry.`,\n MJX608: () => `Method not implemented.`,\n MJX609: () => `OperationRunner: the operation threw.`,\n MJX610: () => `Matching the request path failed.`,\n MJX611: () => `The devtools panel failed to load.`,\n} satisfies Record<string, (...args: any[]) => string>;\n\nexport type MotifErrorCode = keyof typeof motifMessages;\ntype MessageArgs<C extends MotifErrorCode> = Parameters<(typeof motifMessages)[C]>;\n\nexport class MotifError extends Error {\n readonly code: MotifErrorCode;\n\n constructor(code: MotifErrorCode, message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'MotifError';\n this.code = code;\n }\n}\n\nexport function formatMotifMessage<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): string {\n return `[motifjs] ${code}: ${(motifMessages[code] as (...a: any[]) => string)(...args)}`;\n}\n\nexport function motifError<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): MotifError {\n return new MotifError(code, formatMotifMessage(code, ...args));\n}\n\nexport function reportError<C extends MotifErrorCode>(code: C, cause: unknown, ...args: MessageArgs<C>): void {\n errorHandler.report(new MotifError(code, formatMotifMessage(code, ...args), { cause }));\n}\n\nexport function callReported<C extends MotifErrorCode>(fn: () => unknown, code: C, ...args: MessageArgs<C>): void {\n try {\n const result: any = fn();\n if (result && typeof result.then === 'function') {\n result.then(undefined, (error: unknown) => reportError(code, error, ...args));\n }\n } catch (error) {\n reportError(code, error, ...args);\n }\n}\n\nexport function reportWarning<C extends MotifErrorCode>(code: C, args: MessageArgs<C>, details?: unknown): void {\n devWarn(code, (motifMessages[code] as (...a: any[]) => string)(...args), details);\n}\n","import { IDisposable } from \"./IDisposable\";\n\nexport interface IDisposableTracker {\n trackDisposable(disposable: IDisposable): void;\n setParent(child: IDisposable, parent: IDisposable | null): void;\n markAsDisposed(disposable: IDisposable): void;\n markAsSingleton(disposable: IDisposable): void;\n}\n\nclass DisposableCore {\n\n disposableTracker: IDisposableTracker | null = null;\n\n notifyCreated<T extends IDisposable>(target: T): T {\n this.disposableTracker?.trackDisposable(target);\n return target;\n }\n\n notifyDisposed(target: IDisposable): void {\n this.disposableTracker?.markAsDisposed(target);\n }\n\n notifyOwner(target: IDisposable, owner: IDisposable | null): void {\n this.disposableTracker?.setParent(target, owner);\n }\n\n toDisposable(fn: () => void): IDisposable {\n let pending = true;\n const handle: IDisposable = {\n dispose: () => {\n if (!pending) {\n return;\n }\n pending = false;\n this.notifyDisposed(handle);\n fn();\n }\n };\n return this.notifyCreated(handle);\n }\n}\n\nexport const disposableCore: DisposableCore = new DisposableCore();\n","import { IDisposable } from \"./IDisposable\";\r\nimport { disposableCore } from \"./DisposableCore\";\r\nimport { MotifError, formatMotifMessage, motifError, reportWarning } from \"../common/diagnostics\";\r\n\r\nexport class DisposableStore implements IDisposable {\r\n\r\n private readonly _items = new Set<IDisposable>();\r\n private _closed = false;\r\n\r\n constructor() {\r\n disposableCore.notifyCreated(this);\r\n }\r\n\r\n get isDisposed(): boolean {\r\n return this._closed;\r\n }\r\n\r\n add<T extends IDisposable>(item: T): T {\r\n if (!item) {\r\n return item;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX502');\r\n }\r\n disposableCore.notifyOwner(item, this);\r\n if (this._closed) {\r\n reportWarning('MJX504', [], new Error().stack);\r\n } else {\r\n this._items.add(item);\r\n }\r\n return item;\r\n }\r\n\r\n delete<T extends IDisposable>(item: T): void {\r\n if (!item) {\r\n return;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX505');\r\n }\r\n this._items.delete(item);\r\n item.dispose();\r\n }\r\n\r\n detach<T extends IDisposable>(item: T): void {\r\n if (item && this._items.delete(item)) {\r\n disposableCore.notifyOwner(item, null);\r\n }\r\n }\r\n\r\n clear(): void {\r\n if (this._items.size === 0) {\r\n return;\r\n }\r\n const failures: unknown[] = [];\r\n for (const item of this._items) {\r\n try {\r\n item?.dispose();\r\n } catch (error) {\r\n failures.push(error);\r\n }\r\n }\r\n this._items.clear();\r\n if (failures.length === 1) {\r\n throw failures[0];\r\n }\r\n if (failures.length > 1) {\r\n throw new MotifError('MJX503', formatMotifMessage('MJX503'), { cause: new AggregateError(failures) });\r\n }\r\n }\r\n\r\n dispose(): void {\r\n if (this._closed) {\r\n return;\r\n }\r\n disposableCore.notifyDisposed(this);\r\n this._closed = true;\r\n this.clear();\r\n }\r\n}\r\n","import { motifError, reportWarning } from \"../common/diagnostics\";\nimport { IDisposable } from \"./IDisposable\";\nimport { disposableCore } from \"./DisposableCore\";\nimport { DisposableStore } from \"./DisposableStore\";\n\nexport abstract class Disposable implements IDisposable {\n\n protected readonly _disposables = new DisposableStore();\n\n constructor() {\n disposableCore.notifyCreated(this);\n disposableCore.notifyOwner(this._disposables, this);\n }\n\n public dispose(): void {\n disposableCore.notifyDisposed(this);\n const owned = this._disposables;\n if (owned && typeof owned.dispose === 'function') {\n owned.dispose();\n } else {\n reportWarning('MJX501', [], { disposable: this });\n }\n }\n\n protected _register<T extends IDisposable>(item: T): T {\n if ((item as unknown) === this) {\n throw motifError('MJX502');\n }\n return this._disposables.add(item);\n }\n}\n","\r\n\r\nexport const Flags = {\r\n IS_REACTIVE: Symbol.for('motif.isReactive'),\r\n IS_READONLY: Symbol.for('motif.isReadonly'),\r\n IS_SUPERFICIAL: Symbol.for('motif.isSuperficial'),\r\n RAW: Symbol.for('motif.raw'),\r\n GET_SETUP: Symbol.for('motif.getSetup'),\r\n} as const;\r\n\r\nexport const enum TargetType {\r\n SYSTEM = 0,\r\n INVALID = SYSTEM,\r\n COMMON = 0b01,\r\n COLLECTION = 0b10\r\n}\r\n\r\nexport const ITERATE_KEY = Symbol('')\r\nexport let followTracking: boolean = true;\r\nexport let arrayScope: { enabled: boolean, key: string } = { enabled: false, key: '' };\r\n\r\n\r\nexport function getRaw<T>(value: T): T {\r\n let current = value;\r\n while (current && (current as any)[Flags.RAW]) {\r\n current = (current as any)[Flags.RAW];\r\n }\r\n return current;\r\n}\r\n\r\nexport function isReadonly(candidate: unknown): boolean {\r\n if (candidate == null) return false;\r\n return Boolean((candidate as any)[Flags.IS_READONLY]);\r\n}\r\n\r\nexport function hasOwn(target: object, key: PropertyKey): boolean {\r\n return Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nexport function isObject(value: unknown): value is Record<any, any> {\r\n return typeof value === 'object' && value !== null;\r\n}\r\n\r\nconst intrinsicSymbols: ReadonlySet<symbol> = new Set(\r\n Object.values(Object.getOwnPropertyDescriptors(Symbol))\r\n .map(descriptor => descriptor.value)\r\n .filter((value): value is symbol => typeof value === 'symbol')\r\n);\r\n\r\nexport function isIntrinsicSymbol(key: unknown): boolean {\r\n return typeof key === 'symbol' && intrinsicSymbols.has(key);\r\n}\r\n\r\nconst proxyableTags = new Map<string, TargetType>([\r\n ['[object Object]', TargetType.COMMON],\r\n ['[object Array]', TargetType.COMMON],\r\n ['[object Map]', TargetType.COLLECTION],\r\n ['[object Set]', TargetType.COLLECTION],\r\n ['[object WeakMap]', TargetType.COLLECTION],\r\n ['[object WeakSet]', TargetType.COLLECTION],\r\n]);\r\n\r\nexport function getTargetType(value: any): TargetType {\r\n var proto = Object.getPrototypeOf(value);\r\n var cname = \"\";\r\n if (proto && proto.constructor) {\r\n cname = proto.constructor.name;\r\n }\r\n if ((cname === \"Control\" || cname == \"RouteManager\" || cname == \"ServiceManager\")) {\r\n return TargetType.SYSTEM;\r\n }\r\n if (!Object.isExtensible(value)) {\r\n return TargetType.INVALID;\r\n }\r\n return proxyableTags.get(Object.prototype.toString.call(value)) ?? TargetType.INVALID;\r\n}\r\n\r\nconst canonicalIndex = /^(?:0|[1-9]\\d*)$/;\r\nexport const isNumericKey = (key: unknown): boolean =>\r\n typeof key === 'string' && canonicalIndex.test(key) && String(Number(key)) === key;\r\n\r\n\r\nconst savedTracking: boolean[] = [];\r\nlet trackingDepth = 0;\r\n\r\nfunction enterTracking(enabled: boolean) {\r\n savedTracking[trackingDepth++] = followTracking;\r\n followTracking = enabled;\r\n}\r\n\r\nexport function pauseTracking() {\r\n enterTracking(false);\r\n}\r\n\r\nexport function enableTracking() {\r\n enterTracking(true);\r\n}\r\n\r\nexport function resetTracking() {\r\n followTracking = trackingDepth > 0 ? savedTracking[--trackingDepth] : true;\r\n}\r\n\r\nconst arrayStack: { enabled: boolean, key: string }[] = []\r\n\r\n\r\nexport function addArrayStack(key: any) {\r\n arrayStack.push(arrayScope)\r\n arrayScope.enabled = true;\r\n arrayScope.key = key;\r\n}\r\nexport function removeArrayStack() {\r\n const last = arrayStack.pop();\r\n if (arrayStack.length > 0) {\r\n arrayScope = last === undefined ? { enabled: false, key: '' } : last;\r\n } else {\r\n arrayScope = { enabled: false, key: '' }\r\n }\r\n\r\n}\r\n\r\n\r\ndeclare const opaqueBrand: unique symbol\r\ndeclare const shallowBrand: unique symbol\r\n\r\ntype OpaqueState = Function | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | string | number | boolean | { [opaqueBrand]?: true }\r\n\r\ntype DeepState<T> = T extends OpaqueState ? T\r\n : T extends Array<any> ? { [Index in keyof T]: DeepState<T[Index]> }\r\n : T extends object & { [shallowBrand]?: never } ? { [Key in keyof T]: Key extends symbol ? T[Key] : DeepState<T[Key]> }\r\n : T\r\n\r\ninterface BoxedPrimitive<T> { value: T }\r\n\r\nexport type UnwrapValueRefs<T> = T extends number | string | boolean ? BoxedPrimitive<T> : DeepState<T>;\r\n\r\n\r\nexport var setupListener: any;\r\nexport var setupActive = false;\r\n\r\nexport function listenSetup(key: any) {\r\n setupListener = key;\r\n setupActive = true;\r\n}\r\n\r\nexport function closeSetup() {\r\n setupListener = null;\r\n setupActive = false;\r\n}","import { ComponentBase, motifFragment, resolveComponent } from \"../\";\r\nimport { effect, untracked } from \"../\";\r\nimport { getRaw } from \"../store/common\";\r\nimport { motifError, reportWarning } from \"../common/diagnostics\";\r\nimport { IBaseBinding } from \"./\";\r\n\r\n\r\nexport interface ListBindingOptions {\r\n reuse?: boolean;\r\n}\r\n\r\nexport class ListBinding implements IBaseBinding {\r\n propertyName: string = \"__list__\";\r\n dataSource: any;\r\n dataMember?: string | undefined;\r\n formatString?: string | undefined;\r\n converter?: ((value: any) => any) | undefined;\r\n converterBack?: ((value: any) => any) | undefined;\r\n updateMode?: \"onPropertyChanged\" | \"onValidation\" | \"never\" | undefined;\r\n private _isActive = false;\r\n private _effectCleanup?: () => void;\r\n private _rendered: ComponentBase[] = [];\r\n private _identityMap = new WeakMap<object, ComponentBase[]>();\r\n private container: ComponentBase = motifFragment('list-container');\r\n constructor(private component: ComponentBase,\r\n private itemsFn: () => any[] | Iterable<any>,\r\n private renderFn: (item: any, index: number) => ComponentBase,\r\n private options?: ListBindingOptions) {\r\n this.component.controls.add(this.container);\r\n\r\n }\r\n activate(): void { if (this._isActive) return; this._isActive = true; this._setupBinding(); }\r\n deactivate(): void {\r\n if (!this._isActive) return;\r\n this._isActive = false;\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n this._disposeAll();\r\n }\r\n reActivate(): void {\r\n\r\n this.deactivate();\r\n this.activate();\r\n }\r\n private _disposeAll() {\r\n this._rendered.forEach(c => { try { c.dispose && c.dispose(); } catch { } });\r\n this._rendered = [];\r\n this._identityMap = new WeakMap();\r\n }\r\n private _toArray(src: any): any[] {\r\n if (!src) return [];\r\n if (Array.isArray(src)) return src;\r\n if (typeof src === 'function') return this._toArray(src());\r\n if (src[Symbol.iterator]) return Array.from(src as Iterable<any>);\r\n return [];\r\n }\r\n private _getComponentKey(comp: ComponentBase): any {\r\n try {\r\n const p: any = (comp as any).props;\r\n if (p && typeof p.indexkey === 'function') {\r\n return p.indexkey();\r\n }\r\n if (p && typeof p.indexkey !== 'undefined' && p.indexkey !== null) {\r\n return p.indexkey;\r\n }\r\n } catch { }\r\n try {\r\n const k = (comp as any).motif.options?.__key;\r\n if (typeof k !== 'undefined') return k;\r\n } catch { }\r\n return undefined;\r\n }\r\n\r\n private isPreCreated(comp: ComponentBase): boolean {\r\n return comp.element !== null || comp.parent !== null;\r\n }\r\n\r\n private _render(item: any, idx: number): ComponentBase {\r\n return untracked(() => {\r\n const rendered = this.renderFn(item, idx);\r\n return this.processRendered(rendered, item);\r\n });\r\n }\r\n\r\n private processRendered(rendered: any, item: any): ComponentBase {\r\n const component: ComponentBase = resolveComponent(rendered);\r\n if (!(component instanceof ComponentBase)) {\r\n throw motifError('MJX201');\r\n }\r\n\r\n try { (component as any)._base.itemRef = item; } catch { }\r\n try { (component.motif.options as any).__fromList = true; } catch { }\r\n\r\n if (typeof (component as any).__listAdopted === 'undefined') {\r\n (component as any).__listAdopted = component.parent !== null && component.parent !== undefined;\r\n }\r\n\r\n return component;\r\n }\r\n private olditems: any[] = [];\r\n\r\n private get _indexSensitive(): boolean {\r\n try { return this.renderFn.length >= 2; } catch { return true; }\r\n }\r\n\r\n private static _isPrimitive(v: any): boolean {\r\n return v === null || typeof v !== 'object';\r\n }\r\n\r\n private _setupBinding() {\r\n const update = () => {\r\n const source = this._toArray(this.itemsFn());\r\n const rawSource = getRaw(source);\r\n const count = source.length;\r\n let items: any[];\r\n if (rawSource === source) {\r\n items = source;\r\n } else {\r\n items = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n if (i in rawSource) items[i] = source[i];\r\n else void source[i];\r\n }\r\n }\r\n const prevItems = this.olditems;\r\n const prevComponents = this._rendered;\r\n if (this.olditems.length > 0) {\r\n const currentRaws = new Set<any>();\r\n for (let i = 0; i < count; i++) currentRaws.add(getRaw(items[i]));\r\n for (const old of this.olditems) {\r\n const raw = getRaw(old);\r\n if (!currentRaws.has(raw)) {\r\n const list = this._identityMap.get(raw);\r\n if (list) {\r\n this._identityMap.delete(raw);\r\n for (const component of list) {\r\n try { component.dispose(); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const newComponents: ComponentBase[] = [];\r\n const usedComponents = new Set<ComponentBase>();\r\n const seenKeys = new Map<any, number>();\r\n\r\n const claimed = new Set<ComponentBase>();\r\n const positionalReuse = new Map<number, ComponentBase>();\r\n const isReusable = (c: ComponentBase | undefined): c is ComponentBase =>\r\n !!c && !c.isDisposed && !claimed.has(c) && !(c as any).__listAdopted;\r\n\r\n const shared = Math.min(items.length, prevItems.length);\r\n for (let i = 0; i < shared; i++) {\r\n const it = items[i];\r\n if (!ListBinding._isPrimitive(it)) continue;\r\n if (!Object.is(prevItems[i], it)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n positionalReuse.set(i, comp);\r\n claimed.add(comp);\r\n }\r\n\r\n let valuePool: Map<any, ComponentBase[]> | null = null;\r\n if (!this._indexSensitive) {\r\n valuePool = new Map<any, ComponentBase[]>();\r\n for (let i = 0; i < prevItems.length; i++) {\r\n const prev = prevItems[i];\r\n if (!ListBinding._isPrimitive(prev)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n const queue = valuePool.get(prev);\r\n if (queue) queue.push(comp); else valuePool.set(prev, [comp]);\r\n }\r\n }\r\n\r\n const occurrences = new Map<object, number>();\r\n items.forEach((item, idx) => {\r\n let component: ComponentBase;\r\n if (typeof item === 'object' && item !== null) {\r\n const raw = getRaw(item);\r\n const occurrence = occurrences.get(raw) ?? 0;\r\n occurrences.set(raw, occurrence + 1);\r\n let list = this._identityMap.get(raw);\r\n if (!list) {\r\n list = [];\r\n this._identityMap.set(raw, list);\r\n }\r\n const existing = list[occurrence];\r\n if (existing && !existing.isDisposed) {\r\n component = existing;\r\n } else {\r\n component = this._render(item, idx);\r\n list[occurrence] = component;\r\n }\r\n }\r\n else {\r\n let reused = positionalReuse.get(idx);\r\n if (!reused && valuePool) {\r\n const queue = valuePool.get(item);\r\n if (queue && queue.length) {\r\n reused = queue.shift()!;\r\n claimed.add(reused);\r\n }\r\n }\r\n if (reused) {\r\n component = reused;\r\n } else {\r\n component = this._render(item, idx);\r\n }\r\n }\r\n const userKey = this._getComponentKey(component);\r\n if (userKey !== undefined && userKey !== null) {\r\n if (seenKeys.has(userKey)) {\r\n reportWarning('MJX202', [userKey, idx]);\r\n } else {\r\n seenKeys.set(userKey, idx);\r\n }\r\n }\r\n\r\n newComponents.push(component);\r\n usedComponents.add(component);\r\n });\r\n\r\n occurrences.forEach((count, raw) => {\r\n const list = this._identityMap.get(raw);\r\n if (list && list.length > count) list.length = count;\r\n });\r\n\r\n this._rendered.forEach(comp => {\r\n if (!usedComponents.has(comp) && !(comp as any).__listAdopted) {\r\n try { comp.dispose(); } catch { }\r\n }\r\n });\r\n\r\n this._syncContainer(newComponents);\r\n\r\n this._rendered = newComponents;\r\n this.olditems = items === source ? source.slice() : items;\r\n return count;\r\n };\r\n this._effectCleanup = effect(() => update());\r\n }\r\n\r\n private _syncContainer(newComponents: ComponentBase[]) {\r\n const controls = this.container.controls;\r\n const items = controls.items;\r\n\r\n if (items.length === 0) {\r\n for (const comp of newComponents) {\r\n try { controls.add(comp); } catch { }\r\n }\r\n return;\r\n }\r\n\r\n if (newComponents.length >= items.length) {\r\n let appendOnly = true;\r\n for (let i = 0; i < items.length; i++) {\r\n if (newComponents[i] !== items[i]) {\r\n appendOnly = false;\r\n break;\r\n }\r\n }\r\n\r\n if (appendOnly && newComponents.length > items.length) {\r\n const existing = new Set(items);\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n if (existing.has(newComponents[i])) {\r\n appendOnly = false;\r\n break;\r\n }\r\n existing.add(newComponents[i]);\r\n }\r\n }\r\n\r\n if (appendOnly) {\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n try { controls.add(newComponents[i]); } catch { }\r\n }\r\n return;\r\n }\r\n }\r\n\r\n const oldIndex = new Map<ComponentBase, number>();\r\n items.forEach((c, i) => oldIndex.set(c, i));\r\n const sources = newComponents.map(c => {\r\n const oi = oldIndex.get(c);\r\n return oi === undefined ? -1 : oi;\r\n });\r\n\r\n const stable = new Set(longestIncreasingIndices(sources));\r\n\r\n let anchor: ComponentBase | null = null;\r\n for (let i = newComponents.length - 1; i >= 0; i--) {\r\n const comp = newComponents[i];\r\n try {\r\n if (sources[i] === -1) {\r\n if (anchor) {\r\n const at = items.indexOf(anchor);\r\n controls.add(at >= 0 ? at : items.length, comp);\r\n } else {\r\n controls.add(comp);\r\n }\r\n } else if (!stable.has(i)) {\r\n controls.move(comp, anchor);\r\n }\r\n } catch { }\r\n anchor = comp;\r\n }\r\n }\r\n}\r\n\r\nfunction longestIncreasingIndices(sources: number[]): number[] {\r\n const predecessors = new Array<number>(sources.length).fill(-1);\r\n const tails: number[] = [];\r\n\r\n for (let i = 0; i < sources.length; i++) {\r\n const v = sources[i];\r\n if (v === -1) continue;\r\n if (tails.length === 0 || sources[tails[tails.length - 1]] < v) {\r\n predecessors[i] = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n tails.push(i);\r\n continue;\r\n } \r\n let lo = 0, hi = tails.length - 1;\r\n while (lo < hi) {\r\n const mid = (lo + hi) >> 1;\r\n if (sources[tails[mid]] < v) lo = mid + 1; else hi = mid;\r\n }\r\n if (v < sources[tails[lo]]) {\r\n predecessors[i] = lo > 0 ? tails[lo - 1] : -1;\r\n tails[lo] = i;\r\n }\r\n }\r\n\r\n const result: number[] = [];\r\n let u = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n while (u !== -1) {\r\n result.push(u);\r\n u = predecessors[u];\r\n }\r\n return result.reverse();\r\n}","\r\n\r\nimport { NodeTypes } from \".\";\r\nimport { reportError } from \"./diagnostics\";\r\nimport { Component, ComponentBase } from \"../component\";\r\nimport { IDisposable } from \"../disposable\";\r\n\r\nexport const toKebab = (str: string) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? \"-\" : \"\") + $.toLowerCase());\r\n\r\n\r\nexport function toDisposable(fn: () => void): IDisposable {\r\n let pending = true;\r\n return {\r\n dispose() {\r\n if (!pending) {\r\n return;\r\n }\r\n pending = false;\r\n fn();\r\n }\r\n };\r\n}\r\n\r\n\r\n\r\nexport function advanceif(source: ComponentBase, ...targets: NodeTypes[]) {\r\n if (targets.indexOf(source.element.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function advelif(source: any, ...targets: NodeTypes[]) {\r\n if (source && targets.indexOf(source.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isAnchorElement(source: ComponentBase) {\r\n return source.element.nodeName == 'A';\r\n}\r\n\r\nexport function isElement(source: ComponentBase) {\r\n return source.element.nodeType == NodeTypes.ELEMENT_NODE;\r\n}\r\nexport function isview(source: ComponentBase) {\r\n return source.element.nodeName == 'view';\r\n}\r\n\r\n\r\n\r\nexport function isComponent(source: any) {\r\n return source instanceof ComponentBase\r\n}\r\nexport function createComponent(tag: any, options: any) {\r\n return new Component(tag, options)\r\n}\r\n\r\n\r\nexport function normalizePath(p: string): string {\r\n return '/' + p.replace(/^\\/+|\\/+$/g, '');\r\n}\r\nexport function startsWithPath(requestPath: string, prefix: string): boolean {\r\n const rp = normalizePath(requestPath);\r\n const pp = normalizePath(prefix);\r\n return rp === pp || rp.startsWith(pp + '/');\r\n}\r\n\r\nexport function isExactMatch(requestPath: string, target: string): boolean {\r\n try {\r\n const strip = (p: string) => {\r\n return p.trim()\r\n .split(/[?#]/)[0]\r\n .replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n }\r\n return strip(requestPath) === strip(target);\r\n } catch (error) {\r\n reportError('MJX610', error);\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport function findAppendableComponent(component: ComponentBase): ComponentBase | null {\r\n try {\r\n if (component.isDisposed) return null;\r\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\r\n return component;\r\n } else if (component.parent) {\r\n return findAppendableComponent(component.parent);\r\n }\r\n } catch (error) {\r\n throw error;\r\n }\r\n return null;\r\n}","import { reportWarning } from \"./diagnostics\";\n\nexport class LeakMonitor {\n\n private readonly _origins = new Map<string, number>();\n private _quietChecks = 0;\n\n constructor(readonly threshold: number, readonly name: string) { }\n\n check(size: number): (() => void) | undefined {\n if (this.threshold <= 0 || size < this.threshold) {\n return undefined;\n }\n const origin = new Error().stack ?? '';\n this._origins.set(origin, (this._origins.get(origin) ?? 0) + 1);\n\n this._quietChecks--;\n if (this._quietChecks <= 0) {\n this._quietChecks = this.threshold / 2;\n const [stack, count] = this._busiestOrigin();\n reportWarning('MJX507', [this.name, size, count], stack);\n }\n\n return () => {\n this._origins.set(origin, (this._origins.get(origin) ?? 0) - 1);\n };\n }\n\n private _busiestOrigin(): [string, number] {\n let busiest: [string, number] = ['', 0];\n for (const entry of this._origins) {\n if (entry[1] > busiest[1]) {\n busiest = entry;\n }\n }\n return busiest;\n }\n}\n","interface Link<T> {\n value: T | undefined;\n before: Link<T>;\n after: Link<T>;\n linked: boolean;\n}\n\nfunction createRing<T>(): Link<T> {\n const ring = { value: undefined, linked: false } as Link<T>;\n ring.before = ring;\n ring.after = ring;\n return ring;\n}\n\nexport class LinkedList<T> {\n\n private _ring: Link<T> = createRing<T>();\n private _count = 0;\n\n get size(): number {\n return this._count;\n }\n\n isEmpty(): boolean {\n return this._count === 0;\n }\n\n push(value: T): () => void {\n return this._link(value, this._ring.before);\n }\n\n unshift(value: T): () => void {\n return this._link(value, this._ring);\n }\n\n pop(): T | undefined {\n return this._take(this._ring.before);\n }\n\n shift(): T | undefined {\n return this._take(this._ring.after);\n }\n\n clear(): void {\n for (let link = this._ring.after; link !== this._ring; link = link.after) {\n link.linked = false;\n }\n this._ring = createRing<T>();\n this._count = 0;\n }\n\n *[Symbol.iterator](): Iterator<T> {\n const ring = this._ring;\n for (let link = ring.after; link !== ring; link = link.after) {\n yield link.value as T;\n }\n }\n\n private _link(value: T, previous: Link<T>): () => void {\n const link: Link<T> = { value, before: previous, after: previous.after, linked: true };\n previous.after.before = link;\n previous.after = link;\n this._count++;\n return () => this._unlink(link);\n }\n\n private _take(link: Link<T>): T | undefined {\n if (link === this._ring) {\n return undefined;\n }\n const value = link.value;\n this._unlink(link);\n return value;\n }\n\n private _unlink(link: Link<T>): void {\n if (!link.linked) {\n return;\n }\n link.linked = false;\n link.before.after = link.after;\n link.after.before = link.before;\n this._count--;\n }\n}\n","import { reportWarning } from \"./diagnostics\";\nimport { isDevLike } from \"../devtools/devbus\";\n\nexport const COMPILER_CONTRACT = 1;\n\nconst reported = new Set<number>();\nconst pending = new Set<number>();\n\nexport function motifCompiled(contract: number): void {\n if (contract === COMPILER_CONTRACT || reported.has(contract)) return;\n if (!isDevLike()) {\n pending.add(contract);\n return;\n }\n pending.delete(contract);\n reported.add(contract);\n reportWarning('MJX121', [contract, COMPILER_CONTRACT]);\n}\n\nexport function flushCompilerContractWarnings(): void {\n for (const contract of Array.from(pending)) motifCompiled(contract);\n}\n","\nexport * from \"./NameValuePair\";\nexport * from \"./List\";\nexport * from \"./functions\";\nexport * from \"./ErrorHandler\";\nexport * from \"./LeakMonitor\";\nexport * from \"./Dictionary\";\nexport * from \"./IAttribute\";\nexport * from \"./LinkedList\";\nexport type { TransitionProps, CSSTransitionInfo, TransitionPhase } from \"./transition\";\nexport type { TransitionMode } from \"./transitionRegistry\";\nexport * from \"./bind\";\nexport * from \"./Query\";\nexport { MotifError } from \"./diagnostics\";\nexport { motifCompiled } from \"./compilerContract\";\nexport type { MotifErrorCode } from \"./diagnostics\";\n\n\nexport enum NodeTypes {\n ELEMENT_NODE = 1,\n ATTRIBUTE_NODE = 2,\n TEXT_NODE = 3,\n CDATA_SECTION_NODE = 4,\n ENTITY_REFERENCE_NODE = 5,\n /**deprecated */\n ENTITY_NODE = 6,\n /**deprecated */\n PROCESSING_INSTRUCTION_NODE = 7,\n COMMENT_NODE = 8,\n DOCUMENT_NODE = 9,\n DOCUMENT_TYPE_NODE = 10,\n DOCUMENT_FRAGMENT_NODE = 11,\n /**deprecated */\n NOTATION_NODE = 12\n}\n","\r\nimport { LeakMonitor } from \"../common\";\r\nimport { reportError, reportWarning } from \"../common/diagnostics\";\r\nimport { getRaw, followTracking } from \"./common\";\r\n\r\nexport type EffectFn = () => void;\r\n\r\nclass Effect {\r\n deps: [object, string | symbol][] = [];\r\n active = true;\r\n running = false;\r\n scheduler?: () => void;\r\n constructor(public fn: EffectFn, private callback?: (value: unknown) => void) { }\r\n run() {\r\n let value: unknown;\r\n if (!this.active || this.running) return;\r\n cleanup(this);\r\n effectStack.push(this);\r\n this.running = true;\r\n try {\r\n value = this.fn();\r\n } finally {\r\n effectStack.pop();\r\n this.running = false;\r\n if (this.callback) {\r\n this.callback(value);\r\n }\r\n }\r\n }\r\n stop() {\r\n this.active = false;\r\n cleanup(this);\r\n }\r\n}\r\n\r\nconst depMap = new WeakMap<object, Map<string | symbol, Set<Effect>>>();\r\nconst effectStack: Effect[] = [];\r\nconst effectQueue = new Set<Effect>();\r\nlet isFlushing = false;\r\n\r\nlet leakEnabled = false;\r\nlet leakThreshold = -1;\r\nlet leakMonitor: LeakMonitor | undefined;\r\nconst leakCleanups = new WeakMap<Set<Effect>, Map<Effect, () => void>>();\r\nexport function configureReactivityLeakMonitor(opts: { enabled?: boolean; threshold?: number; name?: string } = {}) {\r\n leakEnabled = !!opts.enabled;\r\n leakThreshold = typeof opts.threshold === 'number' ? opts.threshold : (leakEnabled ? 200 : -1);\r\n leakMonitor = leakEnabled && leakThreshold > 0 ? new LeakMonitor(leakThreshold, opts.name ?? 'reactivity-core') : undefined;\r\n}\r\n\r\nexport function track(target: object, key: string | symbol) {\r\n if (!followTracking) return;\r\n const rawTarget = getRaw(target as any);\r\n const effect = effectStack[effectStack.length - 1];\r\n if (!effect || !effect.active) return;\r\n let deps = depMap.get(rawTarget);\r\n if (!deps) depMap.set(rawTarget, (deps = new Map()));\r\n let dep = deps.get(key);\r\n if (!dep) deps.set(key, (dep = new Set()));\r\n if (!dep.has(effect)) {\r\n dep.add(effect);\r\n effect.deps.push([rawTarget, key]);\r\n if (leakEnabled && leakMonitor && leakThreshold > 0) {\r\n try {\r\n const cleanup = leakMonitor.check(dep.size);\r\n if (cleanup) {\r\n let m = leakCleanups.get(dep);\r\n if (!m) { m = new Map(); leakCleanups.set(dep, m); }\r\n m.set(effect, cleanup);\r\n }\r\n } catch { }\r\n }\r\n }\r\n}\r\n\r\nexport function trigger(target: object, key: string | symbol) {\r\n const rawTarget = getRaw(target as any);\r\n const deps = depMap.get(rawTarget);\r\n if (!deps) return;\r\n const effects = deps.get(key);\r\n if (!effects) return;\r\n let queued = false;\r\n effects.forEach(effect => {\r\n if (!effect.active) return;\r\n if (effect.scheduler) {\r\n runReported(effect.scheduler);\r\n return;\r\n }\r\n effectQueue.add(effect);\r\n queued = true;\r\n });\r\n if (queued) flushEffects();\r\n}\r\n\r\nfunction runReported(fn: () => unknown) {\r\n try {\r\n fn();\r\n } catch (error) {\r\n reportError('MJX208', error);\r\n }\r\n}\r\n\r\nconst MAX_EFFECT_RUNS_PER_FLUSH = 50;\r\n\r\nfunction flushEffects() {\r\n if (isFlushing) return;\r\n isFlushing = true;\r\n Promise.resolve().then(() => {\r\n const runCounts = new Map<Effect, number>();\r\n try {\r\n while (effectQueue.size > 0) {\r\n const batch = Array.from(effectQueue);\r\n effectQueue.clear();\r\n for (const e of batch) {\r\n const runs = (runCounts.get(e) ?? 0) + 1;\r\n runCounts.set(e, runs);\r\n if (runs > MAX_EFFECT_RUNS_PER_FLUSH) {\r\n if (runs === MAX_EFFECT_RUNS_PER_FLUSH + 1) {\r\n reportWarning('MJX203', [MAX_EFFECT_RUNS_PER_FLUSH], { fn: String((e as any).fn).slice(0, 200) });\r\n }\r\n continue;\r\n }\r\n runReported(() => e.run());\r\n }\r\n }\r\n } finally {\r\n effectQueue.clear();\r\n isFlushing = false;\r\n }\r\n });\r\n}\r\n\r\nfunction cleanup(effect: Effect) {\r\n for (const [target, key] of effect.deps) {\r\n const keyMap = depMap.get(target);\r\n if (!keyMap) continue;\r\n const depSet = keyMap.get(key);\r\n if (!depSet) continue;\r\n depSet.delete(effect);\r\n try {\r\n const map = leakCleanups.get(depSet);\r\n const fn = map?.get(effect);\r\n if (fn) { try { fn(); } catch { } map!.delete(effect); }\r\n } catch { }\r\n if (depSet.size === 0) {\r\n keyMap.delete(key);\r\n }\r\n if (keyMap.size === 0) {\r\n depMap.delete(target);\r\n }\r\n }\r\n effect.deps = [];\r\n}\r\n\r\n\r\nexport function effect(fn: EffectFn, onValueChanged?: <T>(value: T) => void) {\r\n const e = new Effect(fn, onValueChanged);\r\n runReported(() => e.run());\r\n return () => e.stop();\r\n}\r\n\r\nexport interface ScheduledEffect {\r\n run(): void;\r\n stop(): void;\r\n}\r\n\r\nexport function createScheduledEffect(fn: EffectFn, scheduler: () => void): ScheduledEffect {\r\n const e = new Effect(fn);\r\n e.scheduler = scheduler;\r\n return {\r\n run: () => { runReported(() => e.run()); },\r\n stop: () => e.stop(),\r\n };\r\n}\r\n\r\nexport interface AsyncTrackingToken { effect: Effect | undefined; pushed: boolean }\r\nfunction popAsyncTracking(t: AsyncTrackingToken) {\r\n if (!t.pushed) return;\r\n t.pushed = false;\r\n const i = effectStack.lastIndexOf(t.effect!);\r\n if (i >= 0) effectStack.splice(i, 1);\r\n}\r\nexport const asyncTracking = {\r\n capture(): AsyncTrackingToken {\r\n return { effect: effectStack[effectStack.length - 1], pushed: false };\r\n },\r\n suspend<T>(t: AsyncTrackingToken, value: T): T {\r\n popAsyncTracking(t);\r\n return value;\r\n },\r\n resume<T>(t: AsyncTrackingToken, value: T): T {\r\n if (t.effect && t.effect.active && !t.pushed) {\r\n effectStack.push(t.effect);\r\n t.pushed = true;\r\n }\r\n return value;\r\n },\r\n end(t: AsyncTrackingToken): void {\r\n popAsyncTracking(t);\r\n },\r\n};\r\n\r\nconst UNTRACKED_SENTINEL = new Effect(() => { });\r\nUNTRACKED_SENTINEL.active = false;\r\nexport function untracked<T>(fn: () => T): T {\r\n effectStack.push(UNTRACKED_SENTINEL);\r\n try {\r\n return fn();\r\n } finally {\r\n effectStack.pop();\r\n }\r\n}\r\n\r\n\r\n\r\nexport function debugGetDeps(target: object): Map<string | symbol, Set<Effect>> | undefined {\r\n const rawTarget = getRaw(target as any);\r\n return depMap.get(rawTarget);\r\n}\r\nexport function debugGetDepMap(): WeakMap<object, Map<string | symbol, Set<Effect>>> {\r\n return depMap;\r\n}\r\n","\r\nimport { ComponentBase } from \"../\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { BindingFormatInfo, IBaseBinding } from \"./\";\r\n\r\n\r\nexport function isCheckedInput(el: any): boolean {\r\n if (!el || el.tagName !== 'INPUT') return false;\r\n const t = String(el.type || '').toLowerCase();\r\n return t === 'checkbox' || t === 'radio';\r\n}\r\n\r\nexport function isNumericInput(el: any): boolean {\r\n if (!el || el.tagName !== 'INPUT') return false;\r\n const t = String(el.type || '').toLowerCase();\r\n return t === 'number' || t === 'range';\r\n}\r\n\r\nexport function readModelValue(el: any): any {\r\n if (!el) return undefined;\r\n if (isCheckedInput(el)) return !!el.checked;\r\n if (isNumericInput(el)) {\r\n const raw = el.value;\r\n if (raw === '' || raw == null) return null;\r\n const n = typeof el.valueAsNumber === 'number' ? el.valueAsNumber : Number(raw);\r\n return Number.isFinite(n) ? n : null;\r\n }\r\n return el.value;\r\n}\r\n\r\nexport class Binding implements IBaseBinding {\r\n propertyName: string;\r\n dataSource: any;\r\n dataMember?: string;\r\n formatString?: string;\r\n converter?: (value: any) => any;\r\n converterBack?: (value: any) => any;\r\n setter?: (value: any) => void;\r\n formatInfo?: BindingFormatInfo;\r\n updateMode: 'onPropertyChanged' | 'onValidation' | 'never' = 'onPropertyChanged';\r\n\r\n private _isActive: boolean = false;\r\n private _component: ComponentBase;\r\n private _effectCleanup?: () => void;\r\n private _memberPath: string[] | null = null;\r\n private _memberPathSource?: string;\r\n\r\n constructor(\r\n component: ComponentBase,\r\n propertyName: string,\r\n dataSource: any,\r\n dataMember?: string,\r\n formatString?: string,\r\n formatInfo?: BindingFormatInfo\r\n ) {\r\n this._component = component;\r\n this.propertyName = propertyName;\r\n this.dataSource = dataSource;\r\n this.dataMember = dataMember;\r\n this.formatString = formatString;\r\n this.formatInfo = formatInfo;\r\n this._memberPath = dataMember ? dataMember.split('.') : null;\r\n this._memberPathSource = dataMember;\r\n }\r\n\r\n activate(): void {\r\n if (this._isActive) return;\r\n\r\n this._isActive = true;\r\n this._setupBinding();\r\n }\r\n\r\n deactivate(): void {\r\n\r\n if (!this._isActive) return;\r\n\r\n this._isActive = false;\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n }\r\n\r\n reActivate(): void {\r\n\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n this._setupBinding();\r\n }\r\n\r\n private functional(value: any) {\r\n if (typeof value === 'function') {\r\n value = this.functional(value());\r\n }\r\n return value;\r\n }\r\n private _setupBinding(): void {\r\n const getValue = () => {\r\n\r\n let value: any = this.dataSource;\r\n if (this.dataMember) {\r\n if (this._memberPathSource !== this.dataMember) {\r\n this._memberPath = this.dataMember.split('.');\r\n this._memberPathSource = this.dataMember;\r\n }\r\n for (const prop of this._memberPath!) {\r\n if (value != null) {\r\n value = value[prop];\r\n }\r\n }\r\n }\r\n value = this.functional(value);\r\n if (this.formatString && value != null) {\r\n value = this._applyFormat(value, this.formatString);\r\n }\r\n\r\n if (this.converter) {\r\n value = this.converter(value);\r\n }\r\n\r\n return value;\r\n };\r\n\r\n const updateTarget = () => {\r\n const value = getValue();\r\n this._updateComponentProperty(value);\r\n return value;\r\n };\r\n\r\n this._effectCleanup = effect(() => {\r\n return updateTarget();\r\n });\r\n\r\n }\r\n\r\n private _updateComponentProperty(value: any): void {\r\n\r\n switch (this.propertyName.toLowerCase()) {\r\n case 'wait': {\r\n const comp = this._component;\r\n if (!comp || comp.isDisposed) return;\r\n const isWaiting = !!value;\r\n if (!comp.isBuilt) {\r\n comp.isWait = isWaiting;\r\n } else {\r\n if (isWaiting) {\r\n comp.isWait = true;\r\n } else {\r\n comp.isWait = false;\r\n }\r\n }\r\n break;\r\n }\r\n case 'display': {\r\n const comp = this._component;\r\n if (!comp || comp.isDisposed) return;\r\n const isWaiting = value;\r\n if (!comp.isBuilt) {\r\n comp.isWait = !isWaiting;\r\n } else {\r\n if (isWaiting) {\r\n comp.isWait = false;\r\n } else {\r\n comp.isWait = true;\r\n }\r\n }\r\n break;\r\n }\r\n case 'text':\r\n case 'textcontent':\r\n this._component.setText(value);\r\n break;\r\n case 'innerhtml':\r\n case 'html':\r\n this._component.element.innerHTML = (value);\r\n this._component.motif.trigger('htmlChanged', { value: value });\r\n break;\r\n case 'visible':\r\n case 'visibility':\r\n if (value) {\r\n this._component.motif.show();\r\n } else {\r\n this._component.motif.hide();\r\n }\r\n break;\r\n case 'style':\r\n if (typeof value === 'object') {\r\n this._component.style(value);\r\n }\r\n break;\r\n case 'model': {\r\n\r\n const el: any = this._component.element;\r\n if (!el) break;\r\n if (isCheckedInput(el)) {\r\n el.checked = !!value;\r\n } else {\r\n el.value = value == null ? '' : value;\r\n }\r\n break;\r\n }\r\n case 'when':\r\n\r\n break;\r\n default:\r\n if (this._component.element && this.propertyName in this._component.element) {\r\n (this._component.element as any)[this.propertyName] = value;\r\n } else if (this.propertyName in this._component) {\r\n (this._component as any)[this.propertyName] = value;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private _applyFormat(value: any, format: string): string {\r\n const locale = this.formatInfo?.locale;\r\n const currency = this.formatInfo?.currency;\r\n if (typeof value === 'number') {\r\n if (format.includes('C') || format.includes('c')) {\r\n if (currency) {\r\n return new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currency\r\n }).format(value);\r\n }\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2\r\n }).format(value);\r\n }\r\n if (format.includes('P') || format.includes('p')) {\r\n return new Intl.NumberFormat(locale, {\r\n style: 'percent'\r\n }).format(value);\r\n }\r\n if (format.includes('N') || format.includes('n')) {\r\n const decimals = parseInt(format.match(/\\d+/)?.[0] || '2');\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: decimals,\r\n maximumFractionDigits: decimals\r\n }).format(value);\r\n }\r\n }\r\n\r\n if (value instanceof Date) {\r\n if (format.includes('d')) {\r\n return value.toLocaleDateString(locale);\r\n }\r\n if (format.includes('t')) {\r\n return value.toLocaleTimeString(locale);\r\n }\r\n }\r\n\r\n return value?.toString() || '';\r\n }\r\n}","import { Flags } from \"../store/common\";\r\n\r\nconst RAW_KEY = Flags.RAW;\r\n\r\nfunction isPrototypeObject(o: any): boolean {\r\n return Object.prototype.hasOwnProperty.call(o, 'constructor') && typeof o.constructor === 'function' && o.constructor.prototype === o;\r\n}\r\n\r\nfunction overridesBelow(instance: any, proto: any, name: string): boolean {\r\n let p = Object.getPrototypeOf(instance);\r\n while (p && p !== proto) {\r\n if (Object.prototype.hasOwnProperty.call(p, name)) return true;\r\n p = Object.getPrototypeOf(p);\r\n }\r\n return false;\r\n}\r\n\r\nexport function lazyBindMethods(proto: any, names: readonly string[]): void {\r\n for (const name of names) {\r\n let fn = proto[name];\r\n if (typeof fn !== 'function') continue;\r\n Object.defineProperty(proto, name, {\r\n configurable: true,\r\n enumerable: false,\r\n get() {\r\n if (this === proto || isPrototypeObject(this)) return fn;\r\n const target = this[RAW_KEY] ?? this;\r\n const bound = fn.bind(target);\r\n if (!overridesBelow(target, proto, name)) {\r\n try {\r\n Object.defineProperty(target, name, { value: bound, writable: true, configurable: true, enumerable: true });\r\n } catch { }\r\n }\r\n return bound;\r\n },\r\n set(value: unknown) {\r\n if (this === proto && typeof value === 'function') { fn = value; return; }\r\n Object.defineProperty(this, name, { value, writable: true, configurable: true, enumerable: true });\r\n },\r\n });\r\n }\r\n}\r\n","\r\n\r\nimport { Component, ComponentBase, Frame, motifFragment, toDisposable } from \"../\";\r\nimport { dom } from \"../\";\r\nimport { effect, untracked } from \"../\";\r\nimport { Binding, BindingFormatInfo, IBaseBinding, IBindingCollection, ListBinding, ListBindingOptions, readModelValue } from \"./\";\r\nimport { reportError } from \"../common/diagnostics\";\r\nimport { lazyBindMethods } from \"../common/lazyBind\";\r\n\r\nfunction resolveValue(value: any): any {\r\n return typeof value === 'function' ? resolveValue(value()) : value;\r\n}\r\n\r\nfunction isWritablePathKey(target: object, key: string): boolean {\r\n if (key === '__proto__') return false;\r\n if (key === 'constructor' || key === 'prototype') return Object.prototype.hasOwnProperty.call(target, key);\r\n return true;\r\n}\r\n\r\nexport class BindingCollection implements IBindingCollection {\r\n private _items: IBaseBinding[] = [];\r\n private _component: ComponentBase;\r\n private _branchScope: Array<() => void> | null = null;\r\n\r\n constructor(component: ComponentBase) {\r\n this._component = component;\r\n }\r\n private _own(stop: () => void) {\r\n if (this._branchScope) {\r\n this._branchScope.push(stop);\r\n return;\r\n }\r\n this._component.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n when(computeFn: () => any, renderFn: (isTrue: boolean) => any) {\r\n\r\n var frame = new Frame();\r\n this._component.controls.add(frame);\r\n let shown = false;\r\n let last: any;\r\n const stop = effect(computeFn, (value) => {\r\n if (shown && (Object.is(last, value) || (!last && !value))) return;\r\n shown = true;\r\n last = value;\r\n untracked(() => {\r\n if (value) {\r\n frame.navigate(renderFn(value as any))\r\n } else {\r\n frame.navigate(motifFragment())\r\n }\r\n });\r\n });\r\n this._own(stop);\r\n\r\n return null as any;\r\n\r\n }\r\n\r\n get items(): IBaseBinding[] {\r\n return [...this._items];\r\n }\r\n\r\n text(cb: any) {\r\n this.add(\"textContent\", cb);\r\n };\r\n\r\n\r\n value(fn: () => any) {\r\n this.add(\"value\", fn);\r\n };\r\n\r\n add(propertyName: string, dataSource: any): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n add(binding: IBaseBinding): IBaseBinding;\r\n add(...args: any[]): IBaseBinding {\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object' && 'propertyName' in args[0]) {\r\n\r\n binding = args[0];\r\n } else {\r\n\r\n const [propertyName, dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n\r\n this._items.push(binding);\r\n\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n wait(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n display(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', () => !resolveValue(predicate()));\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n html(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'innerHTML', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n method(cb: () => any) {\r\n const host = this._component;\r\n let text: ComponentBase | null = null;\r\n let frame: Frame | null = null;\r\n const place = (next: ComponentBase, previous: ComponentBase | null) => {\r\n if (!previous) {\r\n host.controls.add(next);\r\n return;\r\n }\r\n host.controls.insert(host.controls.items.indexOf(previous), next);\r\n host.controls.remove(previous);\r\n };\r\n const stop = effect(cb, (result) => {\r\n if (host.isDisposed) return;\r\n const isText = typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean' || typeof result === 'bigint';\r\n if (isText || (text && result == null)) {\r\n if (text) {\r\n text.setText(result as any);\r\n return;\r\n }\r\n text = new Component(dom.createTextNode(result as any));\r\n place(text, frame);\r\n frame = null;\r\n return;\r\n }\r\n if (!frame) {\r\n frame = new Frame();\r\n place(frame, text);\r\n text = null;\r\n }\r\n frame.navigate(result == null ? motifFragment() : result as any);\r\n });\r\n host.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n ternary(conditionFn: () => any, trueFn: (frame: Frame) => any, falseFn: (frame: Frame) => any) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n this._ternaryCallTop(\r\n conditionFn,\r\n () => { trueFn(frame); },\r\n () => { falseFn(frame); }\r\n );\r\n return null as any;\r\n }\r\n\r\n private _ternarySchedule(condFn: () => any, onTrue: () => void, onFalse: () => void, defer: (run: () => void) => void) {\r\n let first = true;\r\n let last: any;\r\n let stopped = false;\r\n let inner: Array<() => void> = [];\r\n const stopInner = () => {\r\n const list = inner;\r\n inner = [];\r\n for (const stop of list) {\r\n try { stop(); } catch { }\r\n }\r\n };\r\n const stopEffect = effect(condFn, (condition) => {\r\n if (!first && Object.is(last, condition)) return;\r\n last = condition;\r\n const run = () => {\r\n stopInner();\r\n const outer = this._branchScope;\r\n this._branchScope = inner;\r\n try {\r\n if (condition) { onTrue(); } else { onFalse(); }\r\n } finally {\r\n this._branchScope = outer;\r\n }\r\n };\r\n if (first) {\r\n first = false;\r\n untracked(run);\r\n return;\r\n }\r\n defer(() => { if (!stopped && !this._component.isDisposed) run(); });\r\n });\r\n this._own(() => {\r\n stopped = true;\r\n stopEffect();\r\n stopInner();\r\n });\r\n }\r\n private ternaryCall(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => queueMicrotask(run));\r\n }\r\n private _ternaryCallTop(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => setTimeout(run, 0));\r\n }\r\n\r\n watch(cb: () => any) {\r\n const ef = effect(() => {\r\n cb();\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n }\r\n remove(binding: IBaseBinding): void {\r\n const index = this._items.indexOf(binding);\r\n if (index > -1) {\r\n this._items.splice(index, 1);\r\n binding.deactivate();\r\n }\r\n }\r\n\r\n clear(): void {\r\n this._items.forEach(binding => (binding as Binding).deactivate());\r\n this._items = [];\r\n }\r\n\r\n activateAll(): void {\r\n this._items.forEach(binding => {\r\n binding.activate();\r\n });\r\n }\r\n\r\n model(dataSource: any): IBaseBinding;\r\n model(dataSource: any, dataMember: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n model(getter: () => any, setter: (value: any) => void): IBaseBinding;\r\n model(binding: IBaseBinding): IBaseBinding;\r\n model(...args: any[]): IBaseBinding {\r\n\r\n var tn = '';\r\n if (this._component.element) {\r\n tn = (this._component.element as HTMLElement).tagName;\r\n }\r\n var propertyName = 'value';\r\n switch (tn.toLowerCase()) {\r\n case 'input':\r\n\r\n propertyName = 'model';\r\n break;\r\n case 'select':\r\n propertyName = 'value';\r\n break;\r\n case 'textarea':\r\n propertyName = 'value';\r\n break;\r\n case 'img':\r\n propertyName = 'src';\r\n break;\r\n case 'audio':\r\n propertyName = 'src';\r\n break;\r\n case 'video':\r\n propertyName = 'src';\r\n break;\r\n default:\r\n\r\n }\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object') {\r\n binding = args[0];\r\n } else if (typeof args[0] === 'function' && typeof args[1] === 'function') {\r\n binding = new Binding(this._component, propertyName, args[0]);\r\n binding.setter = args[1];\r\n } else {\r\n const [dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n const lowerTag = tn.toLowerCase();\r\n if (lowerTag === 'input' || lowerTag === 'select' || lowerTag === 'textarea') {\r\n const writeBack = () => {\r\n try {\r\n const el: any = this._component.element;\r\n if (!el) return;\r\n\r\n let value: any = readModelValue(el);\r\n const b: any = binding;\r\n if (typeof b.converterBack === 'function') {\r\n value = b.converterBack(value);\r\n }\r\n if (typeof b.setter === 'function') {\r\n b.setter(value);\r\n return;\r\n }\r\n const member: string | undefined = b.dataMember;\r\n const source = b.dataSource;\r\n if (member && source != null) {\r\n\r\n const path = member.split('.');\r\n let target: any = source;\r\n for (let i = 0; i < path.length && target != null; i++) {\r\n const key = path[i];\r\n if (!isWritablePathKey(target, key)) return;\r\n if (i === path.length - 1) {\r\n target[key] = value;\r\n } else {\r\n target = target[key];\r\n }\r\n }\r\n } else if (source != null && typeof source === 'object' && 'value' in source) {\r\n\r\n source.value = value;\r\n }\r\n } catch { /* ignore */ }\r\n };\r\n\r\n this._component.motif.on('input' as any, writeBack as any);\r\n this._component.motif.on('change' as any, writeBack as any);\r\n }\r\n\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n\r\n deactivateAll(): void {\r\n this._items.forEach(binding => binding.deactivate());\r\n this._items = [];\r\n }\r\n\r\n reActivateAll(): void {\r\n for (const binding of [...this._items]) {\r\n if (typeof binding.reActivate !== 'function') continue;\r\n try {\r\n binding.reActivate();\r\n } catch (error) {\r\n reportError('MJX208', error);\r\n }\r\n }\r\n }\r\n\r\n switchCase(\r\n discriminatorFn: () => any,\r\n cases: Record<string | number, (frame: Frame) => any>,\r\n defaultFn?: (frame: Frame) => any\r\n ) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n var currentValue: any;\r\n var defaultRunned = false;\r\n const ef = effect(discriminatorFn, (value) => {\r\n if (currentValue == value) return;\r\n currentValue = value;\r\n const caseKey = String(value);\r\n if (Object.prototype.hasOwnProperty.call(cases, caseKey)) {\r\n cases[caseKey](frame);\r\n defaultRunned = false;\r\n } else if (defaultFn) {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n defaultFn(frame);\r\n } else {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n frame.navigate(motifFragment());\r\n }\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n\r\n return null as any;\r\n }\r\n}\r\n\r\nlazyBindMethods(BindingCollection.prototype, [\r\n 'add', 'remove', 'clear', 'activateAll', 'deactivateAll', 'reActivateAll',\r\n 'when', 'text', 'value', 'list', 'loop', 'method', 'watch', 'display', 'wait',\r\n 'ternaryCall', '_ternaryCallTop'\r\n]);","import { errorHandler } from \"../common/ErrorHandler\";\nimport { IDisposable } from \"../disposable/IDisposable\";\nimport { DisposableStore } from \"../disposable/DisposableStore\";\nimport { Event } from \"./Event\";\n\ninterface Subscription<T> {\n handler: (value: T) => unknown;\n active: boolean;\n}\n\ninterface Delivery<T> {\n targets: Subscription<T>[];\n value: T;\n next: number;\n}\n\nexport class Emitter<T> {\n\n private _subscriptions: Subscription<T>[] = [];\n private _delivery: Delivery<T> | undefined;\n private _subscribe: Event<T> | undefined;\n private _disposed = false;\n\n get event(): Event<T> {\n if (!this._subscribe) {\n this._subscribe = (listener, thisArgs, disposables) => {\n if (this._disposed) {\n return { dispose() { } };\n }\n const subscription: Subscription<T> = {\n handler: thisArgs ? listener.bind(thisArgs) : listener,\n active: true\n };\n this._writable().push(subscription);\n const handle: IDisposable = { dispose: () => this._unsubscribe(subscription) };\n if (disposables instanceof DisposableStore) {\n disposables.add(handle);\n } else if (Array.isArray(disposables)) {\n disposables.push(handle);\n }\n return handle;\n };\n }\n return this._subscribe;\n }\n\n fire(value: T): void {\n this._resume();\n if (this._subscriptions.length === 0) {\n return;\n }\n this._delivery = { targets: this._subscriptions, value, next: 0 };\n this._resume();\n }\n\n dispose(): void {\n if (this._disposed) {\n return;\n }\n this._disposed = true;\n for (const subscription of this._subscriptions) {\n subscription.active = false;\n }\n this._subscriptions = [];\n this._delivery = undefined;\n }\n\n private _writable(): Subscription<T>[] {\n if (this._delivery && this._delivery.targets === this._subscriptions) {\n this._subscriptions = this._subscriptions.slice();\n }\n return this._subscriptions;\n }\n\n private _unsubscribe(subscription: Subscription<T>): void {\n if (!subscription.active) {\n return;\n }\n subscription.active = false;\n const list = this._writable();\n const index = list.indexOf(subscription);\n if (index !== -1) {\n list.splice(index, 1);\n }\n }\n\n private _resume(): void {\n const delivery = this._delivery;\n if (!delivery) {\n return;\n }\n while (delivery.next < delivery.targets.length) {\n const target = delivery.targets[delivery.next++];\n if (!target.active) {\n continue;\n }\n try {\n target.handler(delivery.value);\n } catch (error) {\n errorHandler.onUnexpectedError(error);\n }\n }\n if (this._delivery === delivery) {\n this._delivery = undefined;\n }\n }\n}\n","import { Emitter, Event as DelegateEvent } from \"../delegate\";\r\nimport { disposableCore, IDisposable } from \"../disposable\";\r\nimport { ComponentBase } from \"../\";\r\nimport { EventArgs } from \"./types\";\r\nimport { callReported } from \"../common/diagnostics\";\r\nimport { lazyBindMethods } from \"../common/lazyBind\";\r\n\r\nexport class ComponentEmiter {\r\n\r\n private _emitters?: Map<string, Emitter<EventArgs>>;\r\n private _sourceDisposables?: Map<string, Set<IDisposable>>;\r\n private _listenerDisposables?: Map<string, Map<Function, IDisposable[]>>;\r\n\r\n constructor(private component: ComponentBase) {\r\n }\r\n\r\n public hasListeners(eventName: string): boolean {\r\n return this._emitters !== undefined && this._emitters.has(eventName);\r\n }\r\n\r\n public fire(eventName: string, args: EventArgs) {\r\n\r\n try {\r\n const e = this._emitters?.get(eventName.toLowerCase());\r\n if (e) {\r\n e.fire(args);\r\n }\r\n } catch { }\r\n }\r\n\r\n public on(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n\r\n try {\r\n this.createEvent(event, cb);\r\n } catch {\r\n }\r\n }\r\n public off(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const lower = String(event).toLowerCase();\r\n const map = this._listenerDisposables?.get(lower);\r\n if (!map) return this;\r\n const list = map.get(cb);\r\n map.delete(cb);\r\n list?.forEach(d => { try { d.dispose(); } catch { } });\r\n return this;\r\n }\r\n private getOrCreateEmitter(name: string): Emitter<EventArgs> {\r\n const emitters = this._emitters ??= new Map();\r\n let e = emitters.get(name);\r\n if (!e) {\r\n e = new Emitter<EventArgs>();\r\n emitters.set(name, e);\r\n }\r\n return e;\r\n }\r\n\r\n private createEvent(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const full = String(event);\r\n const lowerFull = full.toLowerCase();\r\n const hook = lowerFull.startsWith('on') ? 'x:' + lowerFull.slice(2) : lowerFull;\r\n const invoke = (e: EventArgs) => {\r\n let res: any;\r\n callReported(() => {\r\n res = (cb as any).length <= 1 ? (cb as any)(e as any) : cb(this.component, e as any);\r\n return res;\r\n }, 'MJX122', hook);\r\n return res;\r\n };\r\n\r\n const emitter = this.getOrCreateEmitter(lowerFull);\r\n const disp = emitter.event((e) => invoke(e));\r\n\r\n const listeners = this._listenerDisposables ??= new Map();\r\n let map = listeners.get(lowerFull);\r\n if (!map) { map = new Map(); listeners.set(lowerFull, map); }\r\n const list = map.get(cb);\r\n if (list) { list.push(disp); } else { map.set(cb, [disp]); }\r\n return this;\r\n }\r\n\r\n public addSource(event: string, source: Emitter<EventArgs> | DelegateEvent<EventArgs>) {\r\n const lower = String(event).toLowerCase();\r\n const target = this.getOrCreateEmitter(lower);\r\n const forward = (ev: DelegateEvent<EventArgs>) => ev(e => target.fire(e));\r\n let disp: IDisposable | undefined;\r\n try {\r\n if (source instanceof Emitter) {\r\n disp = forward(source.event);\r\n } else {\r\n disp = forward(source);\r\n }\r\n } catch { }\r\n if (disp) {\r\n const sources = this._sourceDisposables ??= new Map();\r\n let set = sources.get(lower);\r\n if (!set) { set = new Set(); sources.set(lower, set); }\r\n set.add(disp);\r\n this.component.motif.register(disposableCore.toDisposable(() => {\r\n try { disp?.dispose(); } catch { }\r\n try { set?.delete(disp!); } catch { }\r\n }));\r\n }\r\n return this;\r\n }\r\n\r\n public clear(event?: string) {\r\n if (event) {\r\n const lower = event.toLowerCase();\r\n const srcs = this._sourceDisposables?.get(lower);\r\n srcs?.forEach(d => { try { d.dispose(); } catch { } });\r\n this._sourceDisposables?.delete(lower);\r\n const agg = this._emitters?.get(lower);\r\n try { agg?.dispose(); } catch { }\r\n this._emitters?.delete(lower);\r\n this._listenerDisposables?.delete(lower);\r\n } else if (this._emitters) {\r\n for (const key of Array.from(this._emitters.keys())) { this.clear(key); }\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nlazyBindMethods(ComponentEmiter.prototype, ['fire', 'on', 'off', 'createEvent', 'getOrCreateEmitter', 'addSource', 'clear']);","import { IAttribute } from \"../\";\r\nimport { ComponentBase } from \"../\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { Binding, IBaseBinding } from \"../bindings\";\r\nimport { isComponentLike } from \"./componentBase\";\r\n\r\nexport type ElementTypes = Node | Element | HTMLElement | Text | DocumentFragment | Comment | HTMLDivElement;\r\n\r\nconst METHOD_ATTRS = new Set<string>([\r\n 'focus', 'blur', 'click', 'pause', 'submit', 'reset',\r\n 'scrollTo', 'scrollBy', 'select', 'scrollIntoView',\r\n 'requestFullscreen', 'exitFullscreen',\r\n 'requestPointerLock', 'exitPointerLock',\r\n 'play', 'requestPictureInPicture', 'exitPictureInPicture',\r\n 'show', 'showModal', 'close', 'showPopover', 'hidePopover', 'togglePopover',\r\n 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load',\r\n 'setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek'\r\n]);\r\n\r\nconst OPEN_METHODS: Record<string, string> = { show: 'close', showModal: 'close', showPopover: 'hidePopover' };\r\nconst WHEN_TRUTHY_METHODS = new Set<string>(['close', 'hidePopover', 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load']);\r\nconst ARGUMENT_METHODS = new Set<string>(['setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek']);\r\n\r\nconst PROPERTY_FIRST = new Set<string>(['checked', 'selected', 'muted', 'indeterminate', 'srcObject']);\r\n\r\nexport class controlAttribute<ElementType extends ElementTypes> implements IAttribute<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase<ElementType, any>;\r\n private _attrMapStore?: Map<string | symbol, any>;\r\n private _watchersStore?: Map<string | symbol, { stop: () => void, binding?: IBaseBinding }>;\r\n constructor(parent: ComponentBase<ElementType, any>) {\r\n this._parent = parent;\r\n }\r\n private get _attrMap(): Map<string | symbol, any> { return this._attrMapStore ??= new Map(); }\r\n private get _watchers(): Map<string | symbol, { stop: () => void, binding?: IBaseBinding }> { return this._watchersStore ??= new Map(); }\r\n\r\n /** @deprecated Tek kaynak `_attrMap`; geriye dönük okuma için türetilmiş görünüm. */\r\n get attributes(): { name: string, value: any }[] {\r\n return Array.from(this._attrMap.entries(), ([name, value]) => ({ name: String(name), value }));\r\n }\r\n add(attribute: object | string): ComponentBase<ElementType, any> {\r\n if (attribute !== null && typeof attribute === 'object' && !Array.isArray(attribute)) {\r\n const bag = attribute as Record<string | symbol, any>;\r\n Reflect.ownKeys(bag).forEach(key => {\r\n this.parse(bag[key], key);\r\n });\r\n }\r\n return this._parent;\r\n\r\n };\r\n remove(key: string): ComponentBase<ElementType, any> {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n this._attrMap.delete(key);\r\n const el = this._getElement();\r\n if (el) {\r\n try { el.removeAttribute(key); } catch { }\r\n }\r\n return this._parent;\r\n };\r\n has(key: string): boolean {\r\n\r\n if (this._parent.element instanceof HTMLElement ||\r\n this._parent.element instanceof Element) {\r\n return this._parent.element.hasAttribute(key)\r\n }\r\n return false;\r\n };\r\n get(key: string): string | null {\r\n const el = this._getElement();\r\n if (el) {\r\n const v = el.getAttribute(key);\r\n if (v != null) return v;\r\n }\r\n const val = this._attrMap.get(key);\r\n return val == null ? null : String(val);\r\n };\r\n\r\n parse(values: any, key: any) {\r\n\r\n if (typeof values === 'function') {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n const run = () => effect(() => {\r\n const v = values();\r\n this._applyValue(key, v);\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__attr:${String(key)}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate() { stop(); },\r\n reActivate() {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n this._watchers.set(key, { stop, binding });\r\n } else {\r\n this._applyValue(key, values);\r\n }\r\n }\r\n\r\n private _applyValue(key: string | symbol, raw: any) {\r\n if (!key) return;\r\n const el = this._getElement();\r\n\r\n try {\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n }\r\n }\r\n } catch {\r\n }\r\n\r\n if (el && typeof key === 'string' && METHOD_ATTRS.has(key)) {\r\n const k = key as string;\r\n const method = (el as any)[k];\r\n if (typeof method === 'function') {\r\n const invoke = (fn: Function, arg?: any) => {\r\n try {\r\n if (Array.isArray(arg)) {\r\n fn.apply(el, arg);\r\n } else if (arg === undefined) {\r\n fn.call(el);\r\n } else {\r\n fn.call(el, arg);\r\n }\r\n } catch { }\r\n };\r\n const schedule = (fn: () => void) => { try { queueMicrotask(fn); } catch { try { setTimeout(fn, 0); } catch { } } };\r\n const cacheValue = () => {\r\n this._attrMap.set(key, raw);\r\n };\r\n\r\n if (k === 'focus') {\r\n const action = () => {\r\n if (raw === false) {\r\n const blur = (el as any).blur; if (typeof blur === 'function') invoke(blur);\r\n } else if (raw === true) {\r\n invoke(method);\r\n } else if (typeof raw === 'object' && raw != null && raw !== true) {\r\n invoke(method, raw);\r\n } else if (Array.isArray(raw)) {\r\n invoke(method, raw);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'blur' || k === 'click' || k === 'pause' || k === 'submit' || k === 'reset') {\r\n const action = () => { if (raw) invoke(method); };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'scrollTo' || k === 'scrollBy') {\r\n const action = () => {\r\n if (Array.isArray(raw) || (raw && typeof raw === 'object')) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'select') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n const inp: any = el as any;\r\n if (typeof inp.setSelectionRange === 'function') {\r\n try { inp.setSelectionRange(0, 0); } catch { }\r\n }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'scrollIntoView') {\r\n const action = () => {\r\n if (raw === true || raw == null) {\r\n invoke(method);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'requestFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n\r\n try {\r\n const d: any = document;\r\n if (d && d.fullscreenElement === el && typeof d.exitFullscreen === 'function') {\r\n d.exitFullscreen();\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitFullscreen === 'function') d.exitFullscreen();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'play') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n } else {\r\n const pause = (el as any).pause; if (typeof pause === 'function') invoke(pause);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'exitPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document as any;\r\n if (d && typeof d.exitPictureInPicture === 'function') {\r\n const p = d.exitPictureInPicture(); if (p && typeof p.then === 'function') p.catch(() => { });\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k in OPEN_METHODS) {\r\n const action = () => {\r\n if (raw === false) {\r\n const other = (el as any)[OPEN_METHODS[k]]; if (typeof other === 'function') invoke(other);\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'togglePopover') {\r\n const action = () => {\r\n if (typeof raw === 'boolean') {\r\n try { method.call(el, raw); } catch { }\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (WHEN_TRUTHY_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw === true) {\r\n invoke(method);\r\n } else if (raw) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (ARGUMENT_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw !== undefined && raw !== null && raw !== false) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n cacheValue();\r\n return;\r\n }\r\n }\r\n\r\n if (typeof key === 'string' && PROPERTY_FIRST.has(key)) {\r\n const target = (this._parent.element as any) ?? el;\r\n if (target) {\r\n try {\r\n if (key === 'srcObject') {\r\n target.srcObject = raw ?? null;\r\n } else {\r\n target[key] = !!raw;\r\n }\r\n } catch { }\r\n }\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n } else {\r\n this._attrMap.set(key, raw);\r\n }\r\n return;\r\n }\r\n\r\n if (typeof raw === 'boolean' && typeof key === 'string' && (key.startsWith('aria-') || key.startsWith('data-'))) {\r\n if (el) { try { (el as Element).setAttribute(key, String(raw)); } catch { } }\r\n this._attrMap.set(key, raw);\r\n return;\r\n }\r\n\r\n const isUnset = raw === undefined || raw === null || raw === false;\r\n const isBool = typeof raw === 'boolean';\r\n\r\n if (isUnset) {\r\n if (el) { try { (el as Element).removeAttribute(String(key)); } catch { } }\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n\r\n if (key === 'value') {\r\n try {\r\n const input = (this._parent.element as any) as HTMLInputElement;\r\n const next = String(raw);\r\n if (input.value !== next) { input.value = next; }\r\n } catch { }\r\n } else if (key === 'textContent' || key === 'innerText' || key === 'innerHTML') {\r\n if (isComponentLike(raw)) { this._parent.setText(raw as any); return; }\r\n try { (this._parent.element as any)[key as any] = raw; } catch { }\r\n } else {\r\n if (el) {\r\n try {\r\n if (isBool && raw === true) {\r\n (el as Element).setAttribute(String(key), '');\r\n } else {\r\n (el as Element).setAttribute(String(key), raw);\r\n }\r\n } catch { }\r\n }\r\n }\r\n\r\n this._attrMap.set(key, raw);\r\n }\r\n\r\n private _getElement(): Element | null {\r\n const el = this._parent?.element as unknown;\r\n if (el instanceof HTMLElement || el instanceof Element) return el as Element;\r\n return null;\r\n }\r\n\r\n public hasMethodState(key: string): boolean {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n return !!this.getMethodState(key);\r\n }\r\n\r\n public getMethodState(key: string): any {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n const k = String(key);\r\n switch (k) {\r\n case 'focus':\r\n case 'blur':\r\n try { return (document && (document as any).activeElement) === el; } catch { return false; }\r\n case 'select': {\r\n const inp: any = el as any;\r\n if (typeof inp.selectionStart === 'number' && typeof inp.selectionEnd === 'number') {\r\n try { return (inp.selectionEnd - inp.selectionStart) > 0; } catch { return false; }\r\n }\r\n return false;\r\n }\r\n case 'scrollIntoView':\r\n return false;\r\n case 'click':\r\n return false;\r\n default:\r\n return false;\r\n }\r\n }\r\n}","import { IClass } from \"../\";\r\nimport { ComponentBase } from \"./\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { IBaseBinding } from \"../bindings\";\r\n\r\n\r\n\r\nexport class controlClass<ElementType extends Element | HTMLElement | Text | DocumentFragment | Comment> implements IClass<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase;\r\n constructor(parent: ComponentBase) {\r\n this._parent = parent;\r\n }\r\n private _countsStore?: Map<string, number>;\r\n private _staticSetStore?: Set<string>;\r\n private _watchersStore?: Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }>;\r\n private _watcherSeq = 0;\r\n private get _counts(): Map<string, number> { return this._countsStore ??= new Map(); }\r\n private get _staticSet(): Set<string> { return this._staticSetStore ??= new Set(); }\r\n private get _watchers(): Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }> { return this._watchersStore ??= new Map(); }\r\n\r\n add(...values: (string | any[] | {} | Function)[]): ComponentBase {\r\n for (const value of values) {\r\n if (typeof value === 'function') {\r\n this._addReactive(value);\r\n } else if (Array.isArray(value)) {\r\n this._addStaticFromArray(value);\r\n } else if (value && typeof value === 'object') {\r\n this._addStaticFromObject(value as Record<string, any>);\r\n } else {\r\n var valueStr = String(value ?? '').trim();\r\n if (valueStr.split(' ').length > 1) {\r\n this._addStaticFromArray(valueStr.split(' '));\r\n } else {\r\n this._addStaticFromString(valueStr);\r\n }\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n remove(classNames: string | string[]): ComponentBase {\r\n const el = this._getElement();\r\n if (Array.isArray(classNames)) {\r\n const prev = new Set(this._staticSet);\r\n for (const cn of classNames) {\r\n for (const cls of this._splitClasses(String(cn))) {\r\n this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n } else {\r\n if (classNames === '**') {\r\n for (const [id, w] of Array.from(this._watchers.entries())) {\r\n const prev = new Set(w.set);\r\n this._applySourceDiff(id, prev, new Set(), el);\r\n try { w.binding && this._parent.bindings.remove(w.binding); } catch { }\r\n try { w.stop(); } catch { }\r\n this._watchers.delete(id);\r\n }\r\n const prev = new Set(this._staticSet);\r\n this._staticSet.clear();\r\n this._applySourceDiff('static', prev, new Set(), el);\r\n if (el) {\r\n try { el.removeAttribute('class'); } catch { /* ignore */ }\r\n }\r\n this._counts.clear();\r\n } else {\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(String(classNames))) {\r\n this._staticSet.delete(cls);\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n has(className: string): boolean {\r\n const el = this._getElement();\r\n const name = String(className ?? '').trim();\r\n if (!name) return false;\r\n return !!(el && el.classList.contains(name));\r\n }\r\n\r\n private _getElement(): (Element & { classList: DOMTokenList, className: string }) | null {\r\n const el: unknown = this._parent?.element;\r\n if (el instanceof Element) return el as any;\r\n return null;\r\n }\r\n\r\n private _splitClasses(input: string): string[] {\r\n return (input || '')\r\n .split(/\\s+/)\r\n .map(s => s.trim())\r\n .filter(s => s.length > 0);\r\n }\r\n\r\n private _normalizeToSet(values: any, key?: any): Set<string> {\r\n const result = new Set<string>();\r\n if (values == null) return result;\r\n if (typeof values === 'string') {\r\n for (const cls of this._splitClasses(values)) result.add(cls);\r\n } else if (Array.isArray(values)) {\r\n for (const item of values) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) result.add(cls);\r\n } else if (Array.isArray(item)) {\r\n for (const cls of this._normalizeToSet(item)) result.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof item === 'boolean') {\r\n if (key && item) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'object') {\r\n const obj = values as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'boolean') {\r\n if (key && values) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(values))) result.add(cls);\r\n }\r\n return result;\r\n }\r\n\r\n private _applySourceDiff(sourceId: string, prev: Set<string>, next: Set<string>, el: Element | null) {\r\n\r\n for (const cls of prev) {\r\n if (!next.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount - 1;\r\n if (now <= 0) {\r\n this._counts.delete(cls);\r\n if (el) { try { (el as any).classList.remove(cls); } catch { } }\r\n } else {\r\n this._counts.set(cls, now);\r\n }\r\n }\r\n }\r\n for (const cls of next) {\r\n if (!prev.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount + 1;\r\n this._counts.set(cls, now);\r\n if (prevCount === 0 && el) {\r\n try { (el as any).classList.add(cls); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _addStaticFromString(s: string) {\r\n if (!s) return;\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(s)) this._staticSet.add(cls);\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromArray(arr: any[]) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const item of arr) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) this._staticSet.add(cls);\r\n } else if (Array.isArray(item)) {\r\n const set = this._normalizeToSet(item);\r\n for (const cls of set) this._staticSet.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (typeof v === 'function') {\r\n const keys = this._splitClasses(String(k));\r\n for (const cls of keys) this._addReactive(obj[k], cls);\r\n } else {\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n\r\n }\r\n } else if (typeof item === 'boolean') {\r\n continue;\r\n } else if (typeof item === \"function\") {\r\n this._addReactive(item);\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) this._staticSet.add(cls);\r\n }\r\n }\r\n\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromObject(obj: Record<string, any>) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addReactive(fn: Function, key?: any) {\r\n const id = `fx#${++this._watcherSeq}`;\r\n const rec = { stop: () => { }, binding: undefined as undefined | IBaseBinding, set: new Set<string>() };\r\n const el = this._getElement();\r\n const run = () => effect(() => {\r\n let next: Set<string>;\r\n try {\r\n const v = fn();\r\n next = this._normalizeToSet(v, key);\r\n } catch {\r\n next = new Set();\r\n }\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, next, el);\r\n rec.set = next;\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__class:${id}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate: () => {\r\n stop();\r\n const el2 = this._getElement();\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, new Set(), el2);\r\n rec.set.clear();\r\n },\r\n reActivate: () => {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n rec.stop = stop;\r\n rec.binding = binding;\r\n this._watchers.set(id, rec);\r\n }\r\n}","import { CSSTransitionInfo, TransitionProps } from \"../common/transition\";\r\nimport { TransitionMode } from \"../common/transitionRegistry\";\r\n\r\nexport interface IHtmlElement extends HTMLElement { }\r\nexport interface IElement extends Node { }\r\nexport type ElementType = IElement | IHtmlElement | DocumentFragment | Comment | Text;\r\nexport type CustomParameters<T extends any> = T extends (...args: infer P) => any ? P[0] : never;\r\n\r\n\r\nexport type IsOptional<T> = T extends {} ? { [K in keyof T]-?: {} extends Pick<T, K> ? true : false }[keyof T] : false;\r\n\r\nexport type OptionalParams<T> = T extends null ? { params?: undefined } : T extends undefined ? { params?: undefined } : IsOptional<T> extends true ? T : T;\r\n\r\n\r\nexport interface EventArgs {\r\n cancel: boolean;\r\n}\r\n\r\nexport type RouterClassingSettings = {\r\n to: 'all' | 'active' | 'exact' | 'none',\r\n path: string,\r\n activeClass?: string,\r\n exactClass?: string,\r\n onActive?: () => void,\r\n offActive?: () => void,\r\n onExact?: () => void,\r\n offExact?: () => void,\r\n}\r\n\r\nexport interface ComponentBaseOptions<TProps> {\r\n props?: TProps;\r\n [key: string]: any;\r\n cache?: DocumentFragment;\r\n closeFragment?: Comment;\r\n transition: {\r\n transitionInfo: () => {\r\n in: CSSTransitionInfo,\r\n out: CSSTransitionInfo\r\n },\r\n name: string,\r\n mode?: TransitionMode,\r\n classes?: TransitionProps,\r\n activeCssCancel: (() => void) | null,\r\n activeCssPhase: 'enter' | 'leave' | null,\r\n cssProps: () => TransitionProps | null,\r\n skipNextLeave: boolean\r\n _suppressEnter: boolean\r\n _markedDirection: boolean\r\n in: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n out: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n enterTransition: (resolve: () => void) => Animation,\r\n leaveTransition: (resolve: () => void) => Animation,\r\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear?: boolean) => Animation,\r\n activeAnimations: Animation[],\r\n run: (keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions, resolve?: () => void) => Animation\r\n },\r\n set enableRouterClassing(value: RouterClassingSettings);\r\n getInstance(): any;\r\n hasEvent: (name: string) => boolean;\r\n}\r\n\r\n\r\nexport const shimAnimation: any = {\r\n cancel() { },\r\n addEventListener() { },\r\n removeEventListener() { },\r\n oncancel: null,\r\n playState: 'finished'\r\n};\r\n\r\n\r\nexport type AnyEvents = {\r\n [key: string]: any\r\n}\r\n\r\nexport type HtmlElementEvents = {\r\n [K in keyof IHtmlElement as K extends `on${string}` ?\r\n | Uncapitalize<K extends `on${infer EventName}` ? EventName : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture:self` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:self` : never>\r\n : 'x:building' | 'x:built' | 'x:initializing' | 'x:initialized' | 'x:disposing' | 'x:disposed' | 'x:config' | 'x:configured' | 'x:visibilityChanged' | 'x:mounted']\r\n : CustomParameters<IHtmlElement[K]> extends Event ? CustomParameters<IHtmlElement[K]> : EventArgs;\r\n\r\n} & AnyEvents;\r","\r\nimport { dom } from \"../\";\r\n\r\ntype TransitionKind = 'transition' | 'animation'\r\n\r\nexport interface CSSTransitionInfo {\r\n type: TransitionKind | null\r\n timeout: number\r\n propCount: number\r\n hasTransform: boolean\r\n}\r\n\r\nexport interface TransitionProps {\r\n name?: string\r\n type?: TransitionKind\r\n css?: boolean\r\n duration?: number | { enter: number; leave: number }\r\n enterFromClass?: string\r\n enterActiveClass?: string\r\n enterToClass?: string\r\n appearFromClass?: string\r\n appearActiveClass?: string\r\n appearToClass?: string\r\n leaveFromClass?: string\r\n leaveActiveClass?: string\r\n leaveToClass?: string\r\n}\r\n\r\n\r\ninterface TimingSample {\r\n kind: TransitionKind\r\n longest: number\r\n tracks: number\r\n}\r\n\r\nfunction cssTimeToMs(text: string): number {\r\n const amount = text.substring(0, Math.max(0, text.length - 1)).replace(',', '.');\r\n return 1000 * Number(amount);\r\n}\r\n\r\nfunction sampleTiming(styles: any, kind: TransitionKind): TimingSample {\r\n const listOf = (aspect: 'delay' | 'duration'): string[] => {\r\n const declared: string = styles[`${kind}-${aspect}`] || '';\r\n return declared.split(', ');\r\n };\r\n const delays = listOf('delay');\r\n const durations = listOf('duration');\r\n let longest = -Infinity;\r\n for (let track = 0; track < durations.length; track++) {\r\n const total = cssTimeToMs(durations[track]) + cssTimeToMs(delays[track % delays.length]);\r\n longest = Math.max(longest, total);\r\n }\r\n return { kind, longest, tracks: durations.length };\r\n}\r\n\r\nconst transformTrack = /(?:^|\\W)(?:transform|all)(?:,|$)/;\r\n\r\nfunction computeTransitionInfo(styles: any, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (!styles) {\r\n return { type: 'animation', timeout: 0, propCount: 0, hasTransform: false };\r\n }\r\n\r\n const samples: Record<TransitionKind, TimingSample> = {\r\n transition: sampleTiming(styles, 'transition'),\r\n animation: sampleTiming(styles, 'animation'),\r\n };\r\n\r\n let winner: TimingSample | null;\r\n let timeout: number;\r\n if (Type === 'transition' || Type === 'animation') {\r\n const forced = samples[Type];\r\n winner = forced.longest > 0 ? forced : null;\r\n timeout = winner ? winner.longest : 0;\r\n } else {\r\n const { transition, animation } = samples;\r\n timeout = Math.max(transition.longest, animation.longest);\r\n winner = !(timeout > 0) ? null : transition.longest > animation.longest ? transition : animation;\r\n }\r\n\r\n const type = winner ? winner.kind : null;\r\n return {\r\n type,\r\n timeout,\r\n propCount: winner ? winner.tracks : 0,\r\n hasTransform: type === 'transition' && transformTrack.test(styles.transitionProperty),\r\n };\r\n}\r\n\r\nexport function getTransitionInfo(el: Element, name: string, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (el.isConnected && el.nodeType !== 8) {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n }\r\n const fxElement = dom.createElement('div');\r\n fxElement.setAttribute('style', 'width:0!important;height:0!important;display:none');\r\n dom.body.appendChild(fxElement);\r\n fxElement.setAttribute('class', name);\r\n try {\r\n return computeTransitionInfo(dom.window.getComputedStyle(fxElement), Type);\r\n } finally {\r\n fxElement.remove();\r\n }\r\n}\r\n\r\n\r\nexport function getTransitionInfoFromElement(el: Element, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n}\r\n\r\nexport type TransitionPhase = 'enter' | 'leave';\r\n\r\nexport function resolveTransitionClasses(props: TransitionProps, phase: TransitionPhase, appear: boolean = false): { from: string, active: string, to: string } {\r\n const name = props.name || 'motif';\r\n if (phase === 'enter') {\r\n const enter = {\r\n from: props.enterFromClass ?? `${name}-enter-from`,\r\n active: props.enterActiveClass ?? `${name}-enter-active`,\r\n to: props.enterToClass ?? `${name}-enter-to`,\r\n };\r\n if (!appear) return enter;\r\n return {\r\n from: props.appearFromClass ?? enter.from,\r\n active: props.appearActiveClass ?? enter.active,\r\n to: props.appearToClass ?? enter.to,\r\n };\r\n }\r\n return {\r\n from: props.leaveFromClass ?? `${name}-leave-from`,\r\n active: props.leaveActiveClass ?? `${name}-leave-active`,\r\n to: props.leaveToClass ?? `${name}-leave-to`,\r\n };\r\n}\r\n\r\nexport function runCssTransition(el: Element, props: TransitionProps, phase: TransitionPhase, done: () => void, appear: boolean = false): () => void {\r\n if (props.css === false) {\r\n done();\r\n return () => { };\r\n }\r\n const classes = resolveTransitionClasses(props, phase, appear);\r\n const addC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.add(x); } catch { } }); };\r\n const removeC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.remove(x); } catch { } }); };\r\n\r\n let finished = false;\r\n let guardTimer: any = undefined;\r\n let endEvent: string | null = null;\r\n let endHandler: ((e: any) => void) | null = null;\r\n\r\n const cleanup = () => {\r\n removeC(classes.from);\r\n removeC(classes.to);\r\n removeC(classes.active);\r\n if (guardTimer !== undefined) { try { clearTimeout(guardTimer); } catch { } guardTimer = undefined; }\r\n if (endEvent && endHandler) { try { el.removeEventListener(endEvent, endHandler); } catch { } endHandler = null; }\r\n };\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n cleanup();\r\n try { done(); } catch { }\r\n };\r\n\r\n addC(classes.from);\r\n addC(classes.active);\r\n try { void (el as HTMLElement).offsetHeight; } catch { }\r\n\r\n const nextFrame = (cb: () => void) => {\r\n const raf = (globalThis as any).requestAnimationFrame;\r\n if (typeof raf === 'function') { raf(() => cb()); } else { setTimeout(cb, 16); }\r\n };\r\n\r\n nextFrame(() => {\r\n if (finished) return;\r\n removeC(classes.from);\r\n addC(classes.to);\r\n\r\n let timeout = 0;\r\n let expectedEnds = 1;\r\n const dur = props.duration;\r\n if (typeof dur === 'number') {\r\n timeout = dur;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else if (dur && typeof dur === 'object') {\r\n timeout = (phase === 'enter' ? dur.enter : dur.leave) ?? 0;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else {\r\n const info = getTransitionInfoFromElement(el, props.type);\r\n timeout = info.timeout;\r\n expectedEnds = info.propCount || 1;\r\n endEvent = info.type === 'animation' ? 'animationend' : 'transitionend';\r\n }\r\n\r\n if (!timeout || timeout <= 0) {\r\n finish();\r\n return;\r\n }\r\n\r\n let ended = 0;\r\n endHandler = (e: any) => {\r\n if (e && e.target !== el) return;\r\n if (++ended >= expectedEnds) finish();\r\n };\r\n try { el.addEventListener(endEvent, endHandler); } catch { }\r\n guardTimer = setTimeout(finish, timeout + 60);\r\n });\r\n\r\n return finish;\r\n}\r","import type { ComponentBase } from \"./componentBase\";\nimport { disposableCore, IDisposable } from \"..\";\nimport type { ComponentBaseOptions, EventArgs, HtmlElementEvents } from \"./types\";\n\nexport class ComponentMotif<TSelf extends ComponentBase = ComponentBase, TProps extends object = any> {\n\n private readonly _component: TSelf;\n public options: ComponentBaseOptions<TProps> & { hideStrategy?: 'placeholder' | 'detach' | 'auto', __fromList?: boolean, __key?: any, placeholder?: Comment };\n\n constructor(component: TSelf, options: ComponentMotif<TSelf, TProps>['options']) {\n this._component = component;\n this.options = options;\n }\n\n public show(): Promise<any> {\n return this._component['_show']();\n }\n\n public hide(): Promise<any> {\n return this._component['_hide']();\n }\n\n public toggle(): void {\n this._component['_toggle']();\n }\n\n public on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<TSelf> {\n return this._component['_on'](event, cb as any, domEvent);\n }\n\n public off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any): Promise<TSelf> {\n return this._component['_off'](event, cb as any);\n }\n\n public trigger(event: any, ev: any): Promise<TSelf> {\n return this._component['_trigger'](event, ev);\n }\n\n public addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void): void {\n this._component['_addHandler'](event, handler);\n }\n\n public clear(): Promise<any> {\n return this._component['_clear']();\n }\n\n public register(c: IDisposable): void {\n this._component['_register'](c);\n }\n\n public setDisposable(c: () => void): void {\n this._component['_register'](disposableCore.toDisposable(c));\n }\n\n public stopAnimations(): Promise<void> {\n return this._component['_stopAnimations']();\n }\n}\n","import { track, trigger, effect, createScheduledEffect, untracked, ScheduledEffect } from \"../\";\r\nimport { pauseTracking, resetTracking } from \"./common\";\r\nconst SIGNAL_TARGET = Symbol('SignalTarget');\r\nconst SIGNAL_KEY = Symbol('SignalKey');\r\n\r\nexport class Signal<T> {\r\n private _value: T;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _equals: (a: T, b: T) => boolean;\r\n private _disposed = false;\r\n\r\n public static create<U>(initialValue: U, equals?: (a: U, b: U) => boolean): Signal<U> {\r\n return new Signal<U>(initialValue, equals);\r\n }\r\n\r\n constructor(initialValue: T, equals: (a: T, b: T) => boolean = Object.is) {\r\n this._value = initialValue;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n this._equals = equals;\r\n }\r\n\r\n get value(): T {\r\n if (!this._disposed) {\r\n track(this._target, this._key);\r\n }\r\n return this._value;\r\n }\r\n\r\n set value(newValue: T) {\r\n if (this._disposed) return;\r\n if (!this._equals(this._value as any, newValue as any)) {\r\n this._value = newValue;\r\n trigger(this._target, this._key);\r\n }\r\n }\r\n\r\n peek(): T {\r\n return this._value;\r\n }\r\n\r\n update(updater: (prev: T) => T): void {\r\n this.value = (updater(this._value));\r\n }\r\n\r\n mutate(mutator: (draft: T) => void): void {\r\n if (this._disposed) return;\r\n mutator(this._value);\r\n trigger(this._target, this._key);\r\n }\r\n\r\n notify(): void {\r\n if (this._disposed) return;\r\n trigger(this._target, this._key);\r\n }\r\n\r\n asReadonly(): ReadonlySignal<T> {\r\n const self = this;\r\n return {\r\n get value() { return self.value; },\r\n peek() { return self.peek(); },\r\n valueOf() { return self.valueOf(); },\r\n toString() { return self.toString(); }\r\n };\r\n }\r\n \r\n dispose(): void {\r\n this._disposed = true;\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\r\nexport interface ReadonlySignal<T> {\r\n readonly value: T;\r\n peek(): T;\r\n valueOf(): T;\r\n toString(): string;\r\n}\r\n\r\n\r\nexport class Computed<T> {\r\n private _value!: T;\r\n private _dirty: boolean = true;\r\n private _computing: boolean = false;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _getter: () => T;\r\n private _cleanup?: () => void;\r\n\r\n constructor(getter: () => T) {\r\n this._getter = getter;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n\r\n this._cleanup = effect(() => {\r\n if (this._computing) return; \r\n this._computing = true;\r\n try {\r\n const newVal = this._getter();\r\n const changed = this._dirty || !Object.is(this._value, newVal);\r\n this._value = newVal;\r\n this._dirty = false;\r\n if (changed) {\r\n trigger(this._target, this._key);\r\n }\r\n } finally {\r\n this._computing = false;\r\n }\r\n });\r\n }\r\n\r\n get value(): T {\r\n track(this._target, this._key);\r\n\r\n if (this._dirty) { \r\n this._computing = true;\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n this._computing = false;\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n peek(): T {\r\n if (this._dirty) {\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n dispose(): void {\r\n if (this._cleanup) {\r\n this._cleanup();\r\n this._cleanup = undefined;\r\n }\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\n\nexport class LazyComputed<T> {\n private _value!: T;\n private _dirty: boolean = true;\n private _disposed: boolean = false;\n private readonly _target: object;\n private readonly _key: symbol;\n private readonly _getter: () => T;\n private readonly _runner: ScheduledEffect;\n\n constructor(getter: () => T) {\n this._getter = getter;\n this._target = { [SIGNAL_TARGET]: true };\n this._key = SIGNAL_KEY;\n this._runner = createScheduledEffect(\n () => { this._value = this._getter(); },\n () => {\n if (this._dirty || this._disposed) return;\n this._dirty = true;\n trigger(this._target, this._key);\n }\n );\n }\n\n get value(): T {\n if (!this._disposed) {\n track(this._target, this._key);\n }\n this._refresh();\n return this._value;\n }\n\n peek(): T {\n this._refresh();\n return this._value;\n }\n\n get isDirty(): boolean {\n return this._dirty;\n }\n\n private _refresh(): void {\n if (!this._dirty) return;\n if (this._disposed) {\n this._value = untracked(this._getter);\n } else {\n this._runner.run();\n }\n this._dirty = false;\n }\n\n dispose(): void {\n if (this._disposed) return;\n this._disposed = true;\n this._runner.stop();\n }\n\n valueOf(): T {\n return this.value;\n }\n\n toString(): string {\n return String(this.value);\n }\n}\n","import { ServiceCollection, ServiceDescriptor } from \"./ServiceCollection\";\nimport { motifError } from \"../common/diagnostics\";\nimport { Signal } from \"../store/Signal\";\n\ntype ScopeKind = 'root' | 'navigation' | 'user';\ntype OwnerSlot = { owner: object | null; ownerless?: boolean };\ntype OwnerPin = { scope: ServiceProvider; live: boolean };\ntype NavigationState = { current: ServiceProvider; version: Signal<number>; scopes: Set<ServiceProvider> };\n\nlet activeResolver: ((token: any) => any) | null = null;\nlet activeSlot: OwnerSlot | null = null;\nlet rawScopedIn: ServiceProvider | null = null;\nlet constructionScope: ServiceProvider | null = null;\nlet navigatingRoot: ServiceProvider | null = null;\n\nconst slotsByOwner = new WeakMap<object, OwnerSlot>();\nconst handlesBySlot = new WeakMap<OwnerSlot, Map<any, any>>();\nconst pins = new WeakMap<object, OwnerPin>();\nconst builtIn = new WeakMap<object, ServiceProvider>();\nconst boundMethods = new WeakMap<object, Map<PropertyKey, { fn: Function; bound: Function }>>();\n\nfunction runWithResolver<T>(resolver: (token: any) => any, create: () => T): T {\n const previous = activeResolver;\n activeResolver = resolver;\n try {\n return create();\n } finally {\n activeResolver = previous;\n }\n}\n\nfunction runWith<T>(slot: OwnerSlot | null, raw: ServiceProvider | null, create: () => T): T {\n const previousSlot = activeSlot;\n const previousRaw = rawScopedIn;\n activeSlot = slot;\n rawScopedIn = raw;\n try {\n return create();\n } finally {\n activeSlot = previousSlot;\n rawScopedIn = previousRaw;\n }\n}\n\nfunction bindTo(target: object, key: PropertyKey, fn: Function): Function {\n let cache = boundMethods.get(target);\n if (!cache) boundMethods.set(target, cache = new Map());\n const hit = cache.get(key);\n if (hit && hit.fn === fn) return hit.bound;\n const bound = fn.bind(target);\n cache.set(key, { fn, bound });\n return bound;\n}\n\nfunction pinnedScopeOf(owner: object | null): ServiceProvider | null {\n let current: any = owner;\n while (current) {\n const pin = pins.get(current);\n if (pin) return pin.scope;\n const built = builtIn.get(current);\n if (built && built._pending) return built;\n current = current.parent;\n }\n return null;\n}\n\nexport function inject<T>(token: abstract new (...args: any[]) => T): T;\nexport function inject<T = any>(token: string | symbol | object): T;\nexport function inject(token: any): any {\n if (!activeResolver) throw motifError('MJX409', describeInjectToken(token));\n return activeResolver(token);\n}\n\nfunction describeInjectToken(token: any): string {\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n}\n\nexport function runInConstructionScope<T>(scope: ServiceProvider | undefined, create: () => T): T {\n const previous = constructionScope;\n constructionScope = scope ?? null;\n try {\n return create();\n } finally {\n constructionScope = previous;\n }\n}\n\nexport function recordServiceOwner(owner: object): void {\n if (constructionScope && constructionScope._pending) builtIn.set(owner, constructionScope);\n}\n\nexport function pinServiceOwner(owner: object): void {\n const root = navigatingRoot;\n if (!root) return;\n if (pins.get(owner)?.live) return;\n const target = pinnedScopeOf(owner) ?? root._currentScope();\n pins.set(owner, { scope: target, live: true });\n target._livePins++;\n}\n\nexport function unpinServiceOwner(owner: object): void {\n const pin = pins.get(owner);\n if (!pin) return;\n pins.delete(owner);\n if (pin.live) pin.scope._releaseLivePin();\n navigatingRoot?._touch();\n}\n\nexport function retireServiceOwner(owner: object): void {\n const pin = pins.get(owner);\n if (pin) {\n if (pin.live) {\n pin.live = false;\n pin.scope._releaseLivePin();\n }\n return;\n }\n if (!navigatingRoot || !slotsByOwner.has(owner)) return;\n pins.set(owner, { scope: pinnedScopeOf(owner) ?? navigatingRoot._currentScope(), live: false });\n}\n\nexport class ServiceProvider {\n private parent?: ServiceProvider;\n private root: ServiceProvider;\n private scopeName?: string;\n private kind: ScopeKind;\n private singletonCache: Map<any, any>;\n private scopedCache: Map<any, any> = new Map();\n private transientSet: Set<any> = new Set();\n private _autoDisposeTransients = false;\n private pendingSingleton: Map<any, Promise<any>>;\n private pendingScoped: Map<any, Promise<any>> = new Map();\n private _navigation?: NavigationState;\n private _ownerlessSlot: OwnerSlot = { owner: null, ownerless: true };\n private _navigationDisposed = false;\n public _livePins = 0;\n public _pending = false;\n\n constructor(private services: ServiceCollection, parent?: ServiceProvider, root?: ServiceProvider) {\n this.parent = parent;\n this.root = root ?? this;\n this.kind = this.root === this ? 'root' : 'user';\n this.singletonCache = this.root === this ? new Map() : (this.root as any).singletonCache;\n this.pendingSingleton = this.root === this ? new Map() : (this.root as any).pendingSingleton;\n }\n\n public createScope(name?: string): ServiceProvider {\n const scoped = new ServiceProvider(this.services, this, this.root);\n scoped.scopeName = name ?? this.scopeName;\n (scoped as any)._autoDisposeTransients = this._autoDisposeTransients;\n return scoped;\n }\n\n public enableAutoDisposeTransients(enable = true): this { this._autoDisposeTransients = enable; return this; }\n\n\n public get<T>(token: abstract new (...args: any[]) => T): T;\n public get<T = any>(token: string | symbol | object): T;\n public get(token: any): any {\n const desc = this.services.getDescriptor(token);\n if (!desc) throw motifError('MJX401', this.describeToken(token));\n const value = this.resolveDescriptorSync(desc, [token]);\n return value;\n }\n\n public getAsync<T>(token: abstract new (...args: any[]) => T): Promise<T>;\n public getAsync<T = any>(token: string | symbol | object): Promise<T>;\n public async getAsync(token: any): Promise<any> {\n const desc = this.services.getDescriptor(token);\n if (!desc) throw motifError('MJX401', this.describeToken(token));\n const value = await this.resolveDescriptorAsync(desc, [token]);\n return value;\n }\n\n public _getFor<T = any>(owner: object, token: any): T {\n let slot = slotsByOwner.get(owner);\n if (!slot) {\n slot = { owner };\n slotsByOwner.set(owner, slot);\n }\n return runWith(slot, rawScopedIn, () => this.get<T>(token));\n }\n\n public getAllServices(): ServiceCollection { return this.services; }\n\n public _beginNavigation(): ServiceProvider {\n const root = this.root;\n const navigation = root._navigation ??= { current: root, version: new Signal(0), scopes: new Set() };\n navigatingRoot = root;\n const scope = new ServiceProvider(this.services, root, root);\n scope.kind = 'navigation';\n scope.scopeName = 'navigation';\n scope._pending = true;\n scope._autoDisposeTransients = root._autoDisposeTransients;\n navigation.scopes.add(scope);\n return scope;\n }\n\n public _commitNavigation(scope: ServiceProvider): void {\n const navigation = this.root._navigation;\n if (!navigation || navigation.current === scope) return;\n scope._pending = false;\n const previous = navigation.current;\n navigation.current = scope;\n this._touch();\n if (previous !== this.root) previous._releaseIfUnused();\n }\n\n public _abandonNavigation(scope: ServiceProvider): void {\n scope._pending = false;\n scope._releaseIfUnused();\n }\n\n public _currentScope(): ServiceProvider {\n return this.root._navigation?.current ?? this.root;\n }\n\n public _touch(): void {\n const navigation = this.root._navigation;\n if (navigation) navigation.version.value = navigation.version.peek() + 1;\n }\n\n public _releaseLivePin(): void {\n this._livePins--;\n this._releaseIfUnused();\n }\n\n private _releaseIfUnused(): void {\n const navigation = this.root._navigation;\n if (this.kind !== 'navigation' || this._navigationDisposed || this._livePins > 0) return;\n if (navigation && navigation.current === this) return;\n this._navigationDisposed = true;\n navigation?.scopes.delete(this);\n this.dispose().catch(() => { });\n }\n\n private _scopeFor(slot: OwnerSlot): ServiceProvider {\n const navigation = this._navigation;\n if (navigation) navigation.version.value;\n if (!slot.ownerless) {\n const pinned = pinnedScopeOf(slot.owner);\n if (pinned) return pinned;\n if (constructionScope && constructionScope.root === this) return constructionScope;\n }\n return navigation ? navigation.current : this;\n }\n\n private _handle(desc: ServiceDescriptor, path: any[]): any {\n const slot = activeSlot ?? this._ownerlessSlot;\n let handles = handlesBySlot.get(slot);\n if (!handles) handlesBySlot.set(slot, handles = new Map());\n let handle = handles.get(desc.token);\n if (!handle) {\n handle = this._createHandle(desc, slot);\n handles.set(desc.token, handle);\n }\n this._scopeFor(slot)._scopedInstanceSync(desc, path);\n return handle;\n }\n\n private async _handleAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n const slot = activeSlot ?? this._ownerlessSlot;\n await this._scopeFor(slot)._scopedInstanceAsync(desc, path);\n return runWith(slot, null, () => this._handle(desc, path));\n }\n\n private _createHandle(desc: ServiceDescriptor, slot: OwnerSlot): any {\n const root = this;\n const target = () => root._scopeFor(slot)._scopedInstanceSync(desc, [desc.token]);\n return new Proxy(Object.create(null), {\n get(_, key) {\n const instance = target();\n const value = Reflect.get(instance, key, instance);\n return typeof value === 'function' ? bindTo(instance, key, value) : value;\n },\n set(_, key, value) {\n const instance = target();\n return Reflect.set(instance, key, value, instance);\n },\n has(_, key) {\n return key in target();\n },\n getPrototypeOf() {\n return Object.getPrototypeOf(target());\n },\n });\n }\n\n private _isSystemScope(): boolean {\n return this.kind !== 'user';\n }\n\n private _scopedInstanceSync(desc: ServiceDescriptor, path: any[]): any {\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\n const inst = runWith(null, this, () => this.instantiateSync(desc, path));\n this.scopedCache.set(desc.token, inst);\n return inst;\n }\n\n private async _scopedInstanceAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\n if (this.pendingScoped.has(desc.token)) return await this.pendingScoped.get(desc.token)!;\n const promise = (async () => {\n const inst = await this.instantiateAsyncIn(null, this, desc, path);\n this.scopedCache.set(desc.token, inst);\n this.pendingScoped.delete(desc.token);\n return inst;\n })();\n this.pendingScoped.set(desc.token, promise);\n return await promise;\n }\n\n private resolveDescriptorSync(desc: ServiceDescriptor, path: any[]): any {\n this.checkCycle(desc.token, path);\n switch (desc.lifetime) {\n case 'singleton': {\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\n const inst = runWith(null, null, () => this.instantiateSync(desc, path));\n this.singletonCache.set(desc.token, inst);\n return inst;\n }\n case 'scoped': {\n if (this._isSystemScope() && rawScopedIn !== this) return this.root._handle(desc, path);\n return this._scopedInstanceSync(desc, path);\n }\n case 'transient':\n default: {\n const inst = this.instantiateSync(desc, path);\n if (this._autoDisposeTransients && this.parent) {\n this.transientSet.add(inst);\n }\n return inst;\n }\n }\n }\n\n private async resolveDescriptorAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n this.checkCycle(desc.token, path);\n switch (desc.lifetime) {\n case 'singleton': {\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\n if (this.pendingSingleton.has(desc.token)) return await this.pendingSingleton.get(desc.token)!;\n const promise = (async () => {\n const inst = await this.instantiateAsyncIn(null, null, desc, path);\n this.singletonCache.set(desc.token, inst);\n this.pendingSingleton.delete(desc.token);\n return inst;\n })();\n this.pendingSingleton.set(desc.token, promise);\n return await promise;\n }\n case 'scoped': {\n if (this._isSystemScope() && rawScopedIn !== this) return await this.root._handleAsync(desc, path);\n return await this._scopedInstanceAsync(desc, path);\n }\n case 'transient':\n default: {\n const inst = await this.instantiateAsync(desc, path);\n if (this._autoDisposeTransients && this.parent) {\n this.transientSet.add(inst);\n }\n return inst;\n }\n }\n }\n\n private construct<T>(create: () => T): T {\n if (activeSlot) return create();\n const slot: OwnerSlot = { owner: null };\n const inst = runWith(slot, rawScopedIn, create);\n if (inst && (typeof inst === 'object' || typeof inst === 'function') && typeof (inst as any).then !== 'function') {\n recordServiceOwner(inst as any);\n slot.owner = inst as any;\n if (!slotsByOwner.has(inst as any)) slotsByOwner.set(inst as any, slot);\n }\n return inst;\n }\n\n private instantiateSync(desc: ServiceDescriptor, path: any[]): any {\n if (desc.useValue !== undefined) {\n return desc.useValue;\n }\n if (desc.useFactory) {\n return this.construct(() => {\n const args = this.resolveDepsSync(desc, path);\n const result = runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this));\n if (result && typeof (result as any).then === 'function') {\n const name = this.describeTokenWithSource(desc.token);\n throw motifError('MJX402', name);\n }\n return result;\n });\n }\n if (desc.useClass) {\n return this.construct(() => {\n const args = this.resolveDepsSync(desc, path);\n return runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args));\n });\n }\n throw motifError('MJX403');\n }\n\n private async instantiateAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any> {\n return await runWith(slot, raw, () => this.instantiateAsync(desc, path));\n }\n\n private async instantiateAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n if (desc.useValue !== undefined) {\n return desc.useValue;\n }\n const slot = activeSlot;\n const raw = rawScopedIn;\n if (desc.useFactory) {\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\n return await runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this))));\n }\n if (desc.useClass) {\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\n return runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args))));\n }\n throw motifError('MJX403');\n }\n\n public async dispose(): Promise<void> {\n const seen = new Set<any>();\n const callDispose = async (obj: any) => {\n if (!obj || seen.has(obj)) return;\n seen.add(obj);\n try { if (typeof obj.dispose === 'function') await obj.dispose(); }\n catch { /* ignore */ }\n try { if (typeof obj.close === 'function') await obj.close(); }\n catch { /* ignore */ }\n try {\n const d = (obj as any)[Symbol.dispose];\n if (typeof d === 'function') await d.call(obj);\n } catch { }\n try {\n const ad = (obj as any)[Symbol.asyncDispose];\n if (typeof ad === 'function') await ad.call(obj);\n } catch { }\n };\n if (this.root === this) {\n const navigation = this._navigation;\n if (navigation) {\n const scopes = [...navigation.scopes];\n navigation.scopes.clear();\n navigation.current = this;\n if (navigatingRoot === this) navigatingRoot = null;\n this._navigation = undefined;\n for (const scope of scopes) {\n scope._navigationDisposed = true;\n await scope.dispose();\n }\n }\n for (const v of this.singletonCache.values()) await callDispose(v);\n this.singletonCache.clear();\n this.pendingSingleton.clear();\n }\n for (const v of this.scopedCache.values()) await callDispose(v);\n if (this.kind !== 'navigation') this.scopedCache.clear();\n this.pendingScoped.clear();\n for (const v of this.transientSet.values()) await callDispose(v);\n this.transientSet.clear();\n }\n\n private resolveDepsSync(desc: ServiceDescriptor, path: any[]): any[] {\n const deps = this.getDeps(desc);\n if (!deps || deps.length === 0) return [];\n return deps.map(dep => this.resolveTokenSync(dep, path));\n }\n private async resolveDepsAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any[]> {\n const deps = this.getDeps(desc);\n if (!deps || deps.length === 0) return [];\n const results: any[] = [];\n for (const dep of deps) {\n results.push(await runWith(slot, raw, () => this.resolveTokenAsync(dep, path)));\n }\n return results;\n }\n private injectionResolver(path: any[]): (token: any) => any {\n return (token: any) => this.resolveTokenSync(token, path);\n }\n private getDeps(desc: ServiceDescriptor): any[] | undefined {\n if (Array.isArray(desc.deps)) return desc.deps;\n const source: any = desc.useClass ?? desc.useFactory;\n if (source) {\n if (Array.isArray(source.inject)) return source.inject;\n if (Array.isArray(source.dependencies)) return source.dependencies;\n }\n return undefined;\n }\n private resolveTokenSync(token: any, path: any[]): any {\n const d = this.services.getDescriptor(token);\n if (!d) throw motifError('MJX401', this.describeToken(token));\n const nextPath = path.concat(token);\n return this.resolveDescriptorSync(d, nextPath);\n }\n private async resolveTokenAsync(token: any, path: any[]): Promise<any> {\n const d = this.services.getDescriptor(token);\n if (!d) throw motifError('MJX401', this.describeToken(token));\n const nextPath = path.concat(token);\n return await this.resolveDescriptorAsync(d, nextPath);\n }\n private checkCycle(token: any, path: any[]) {\n const firstIndex = path.indexOf(token);\n if (firstIndex !== -1 && firstIndex !== path.length - 1) {\n const chainTokens = path.slice(firstIndex).concat([token]);\n const chain = chainTokens.map((t) => this.describeTokenWithSource(t)).join(' -> ');\n throw motifError('MJX404', chain);\n }\n }\n private describeToken = (t: any) => {\n if (typeof t === 'string') return t;\n if (typeof t === 'symbol') return t.toString();\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\n return String(t);\n };\n private describeTokenWithSource(t: any) {\n const name = this.describeToken(t);\n const d = this.services.getDescriptor(t);\n if (!d) return name;\n const src = d.useClass ? 'useClass' : d.useFactory ? 'useFactory' : (d.useValue !== undefined) ? 'useValue' : 'unknown';\n return `${name}[${src}]`;\n }\n}\n","export const contentBlocks = { live: 0 };\r\n","export const OPTIONS_OWNER: unique symbol = Symbol('motif.optionsOwner');\nexport const TRANSITION_SLOT: unique symbol = Symbol('motif.transition');\n","export type TransitionMode = 'concurrent' | 'out-in' | 'in-out';\n\nexport const transitionSettings: { mode: TransitionMode } = { mode: 'concurrent' };\n\ntype Entry = { node: Node; via: Node | null; done: Promise<void> };\n\nexport type TrackedRun = { done: () => void; release: () => void; finished?: Promise<void> };\n\nconst noop = () => { };\n\nfunction createTracker() {\n const running = new WeakMap<Node, Set<Entry>>();\n\n function track(node: Node | null | undefined, resolve: () => void, via?: Node | null): TrackedRun {\n const host = node?.parentNode ?? via?.parentNode;\n if (!host) return { done: resolve, release: noop };\n let set = running.get(host);\n if (!set) running.set(host, (set = new Set()));\n let finish: () => void = noop;\n const entry: Entry = { node: node!, via: via ?? null, done: new Promise<void>(r => { finish = r; }) };\n set.add(entry);\n let settled = false;\n const release = () => {\n if (settled) return;\n settled = true;\n set!.delete(entry);\n finish();\n };\n return {\n done: () => {\n const first = !settled;\n release();\n if (first && resolve) resolve();\n },\n release,\n finished: entry.done,\n };\n }\n\n function pending(host: Node | null | undefined, except?: Node | null): Promise<void> | null {\n if (!host) return null;\n const set = running.get(host);\n if (!set || set.size === 0) return null;\n let waits: Promise<void>[] | null = null;\n for (const entry of set) {\n if (entry.node === except) continue;\n if (entry.node.parentNode !== host && entry.via?.parentNode !== host) {\n set.delete(entry);\n continue;\n }\n (waits ??= []).push(entry.done);\n }\n return waits ? Promise.all(waits).then(noop) : null;\n }\n\n return { track, pending };\n}\n\nconst leaves = createTracker();\nconst enters = createTracker();\n\nexport const trackLeave = leaves.track;\nexport const pendingLeaves = leaves.pending;\nexport const trackEnter = enters.track;\nexport const pendingEnters = enters.pending;\n\nexport function deferUntilEntered(node: Node, run: TrackedRun, play: () => unknown): Animation {\n const host = node.parentNode;\n const handle: any = {\n finished: run.finished ?? Promise.resolve(),\n playState: 'pending',\n addEventListener: noop,\n removeEventListener: noop,\n cancel: noop,\n };\n queueMicrotask(() => {\n const wait = pendingEnters(host, node);\n if (wait) wait.then(() => { play(); });\n else play();\n });\n return handle as Animation;\n}\n\nexport function isTransitionMode(value: any): value is TransitionMode {\n return value === 'concurrent' || value === 'out-in' || value === 'in-out';\n}\n","import { ControlCollection, dom, Disposable, disposableCore, IClass, IDisposable, Application, isExactMatch, startsWithPath, reactive, safeCallSilent, safeCallSilentAsync, safeCall, safeCallAsync } from \"..\";\nimport { ServiceProvider } from \"..\";\nimport { BindingCollection, IBaseBinding } from \"../bindings\";\nimport { effect } from \"../store/reactivity-core\";\nimport { ComponentEmiter } from \"./ComponentEmiter\";\nimport { controlAttribute } from \"./controlAttribute\";\nimport { controlClass } from \"./controlClass\";\nimport { ComponentBaseOptions, ElementType, EventArgs, HtmlElementEvents, OptionalParams, RouterClassingSettings, shimAnimation } from \"./types\";\nimport { UnwrapValueRefs } from \"../store/common\";\nimport { getTransitionInfo, runCssTransition, TransitionProps } from \"../common/transition\";\nimport { callReported, motifError, reportError, reportWarning } from \"../common/diagnostics\";\nimport { ComponentMotif } from \"./ComponentMotif\";\nimport { pinServiceOwner, recordServiceOwner, retireServiceOwner, unpinServiceOwner } from \"../dependencyInjection/ServiceProvider\";\nimport { contentBlocks as liveContentBlocks } from \"./contentBlockRegistry\";\nimport { OPTIONS_OWNER, TRANSITION_SLOT } from \"./optionsSlots\";\nimport { deferUntilEntered, isTransitionMode, pendingLeaves, trackEnter, trackLeave, transitionSettings, TransitionMode } from \"../common/transitionRegistry\";\nimport { lazyBindMethods } from \"../common/lazyBind\";\nimport type { MotifDomEventProps } from \"../jsx-runtime\";\nimport { isDevLike } from \"../devtools/devbus\";\n\n/** DI token'ını okunur biçime çevirir (dev uyarıları için). */\nfunction describeServiceToken(t: any): string {\n if (typeof t === 'string') return t;\n if (typeof t === 'symbol') return t.toString();\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\n return String(t);\n}\n\ntype TransitionApi = ComponentBaseOptions<any>['transition'];\n\nfunction peekTransition(c: any): TransitionApi | undefined {\n return c?.motif?.options?.[TRANSITION_SLOT];\n}\n\n/**WAAPI keyframe (transitionIn) YA DA CSS class transition (name/classes) tanımlı olarak enter animasyonu varmı */\nfunction clearNavDirection(c: any): void {\n const t = peekTransition(c);\n if (!t?._markedDirection) return;\n t._markedDirection = false;\n try { (c.element as any)?.removeAttribute?.('data-nav-direction'); } catch { }\n}\n\nfunction enterModeOf(container: any): TransitionMode {\n let c = container;\n while (c) {\n const mode = peekTransition(c)?.mode;\n if (mode) return mode;\n const node = c.element as Node | null;\n if (!node || node.nodeType !== Node.COMMENT_NODE) break;\n c = c.parent ?? c._base?._leaveContainer;\n }\n return transitionSettings.mode;\n}\n\nfunction leaveModeOf(c: any): TransitionMode {\n return enterModeOf(c.parent ?? c._base?._leaveContainer);\n}\n\nfunction wantsEnterTransition(c: any): boolean {\n const o = c?.motif?.options;\n const t = o?.[TRANSITION_SLOT];\n return !!(o?.transitionIn || (t && (t.classes || (t.name && t.name.length > 0))));\n}\n\nfunction createTransitionApi(owner: ComponentBase): TransitionApi {\n const cur = (): TransitionApi => (owner.motif.options as any)?.[TRANSITION_SLOT] ?? t;\n const t: TransitionApi = {\n transitionInfo: () => {\n const s = cur();\n return {\n in: getTransitionInfo(owner.element as Element, `${s.name}-enter ${s.name}-enter-start`),\n out: getTransitionInfo(owner.element as Element, `${s.name}-leave ${s.name}-leave-start`),\n }\n },\n name: '',\n mode: undefined as TransitionMode | undefined,\n classes: undefined as TransitionProps | undefined,\n activeCssCancel: null as (() => void) | null,\n activeCssPhase: null as ('enter' | 'leave' | null),\n cssProps: (): TransitionProps | null => {\n const s = cur();\n if (s.classes) {\n return { name: s.classes.name || s.name || '', ...s.classes };\n }\n if (s.name && s.name.length > 0) {\n return { name: s.name };\n }\n return null;\n },\n skipNextLeave: false,\n _suppressEnter: false,\n _markedDirection: false,\n in: (op) => {\n owner.motif.options.transitionIn = op;\n },\n out: (op) => {\n owner.motif.options.transitionOut = op;\n },\n enterTransition: (resolve: () => void): Animation => {\n const s = cur();\n const base = (owner as any)._base;\n const appear = !base._enterPlayed;\n base._enterPlayed = true;\n base._enterSeq = (base._enterSeq ?? 0) + 1;\n if (s._suppressEnter) {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const attempt = {};\n base._enterRun = attempt;\n const enter = trackEnter(owner.element as unknown as Node, () => {\n if ((owner as any)._base?._enterRun === attempt) {\n (owner as any)._base._enterRun = null;\n clearNavDirection(owner);\n }\n resolve && resolve();\n }, owner.motif.options.placeholder as Node | undefined);\n const transitionIn = owner.motif.options.transitionIn;\n const animation = transitionIn\n ? s.run(transitionIn.keyframes, transitionIn.options, enter.done)\n : s._runCss('enter', enter.done, appear);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', enter.release);\n }\n return animation;\n },\n leaveTransition: (resolve: () => void): Animation => {\n const s = cur();\n const node = owner.element as unknown as Node;\n const leave = trackLeave(node, resolve);\n const play = (): Animation => {\n const transitionOut = owner.motif.options?.transitionOut;\n const animation = transitionOut\n ? s.run(transitionOut.keyframes, transitionOut.options, leave.done)\n : s._runCss('leave', leave.done);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', leave.release);\n }\n return animation;\n };\n if (leave.finished && leaveModeOf(owner) === 'in-out') {\n return deferUntilEntered(node, leave, play);\n }\n return play();\n },\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear: boolean = false): Animation => {\n const s = cur();\n if (phase === 'enter' && s.activeCssPhase === 'leave') {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const cssProps = s.cssProps();\n const el = owner.element as unknown as Element | null;\n if (cssProps && el && (el as any).nodeType === 1 && (el as any).classList) {\n try { s.activeCssCancel?.(); } catch { }\n const cancel = runCssTransition(el, cssProps, phase, () => {\n s.activeCssCancel = null;\n s.activeCssPhase = null;\n resolve && resolve();\n }, appear);\n s.activeCssCancel = cancel;\n s.activeCssPhase = phase;\n return shimAnimation as Animation;\n }\n resolve && resolve();\n return shimAnimation as Animation;\n },\n activeAnimations: [] as Animation[],\n run: (keyframes, options, resolve) => {\n const s = cur();\n owner.motif.stopAnimations();\n\n const element = owner.element as unknown as HTMLElement;\n\n if (element.animate) {\n var x = element.animate(keyframes, options);\n s.activeAnimations.push(x);\n\n let cleanedUp = false;\n const safeCleanup = () => {\n if (cleanedUp) return;\n cleanedUp = true;\n try {\n if (s.activeAnimations) {\n s.activeAnimations = s.activeAnimations.filter(a => a !== x);\n }\n } catch { }\n };\n\n x.addEventListener('finish', () => {\n resolve && resolve();\n safeCleanup();\n });\n\n x.oncancel = () => {\n safeCleanup();\n };\n return x;\n }\n else {\n resolve && resolve();\n const g: any = (globalThis as any);\n if (typeof g.Animation === 'function') {\n try { return new g.Animation(); } catch { /* ignore */ }\n }\n\n return shimAnimation as Animation;\n }\n }\n };\n return t;\n}\n\nclass ComponentOptionsImpl {\n [OPTIONS_OWNER]: ComponentBase;\n [TRANSITION_SLOT]?: TransitionApi;\n\n constructor(owner: ComponentBase) {\n this[OPTIONS_OWNER] = owner;\n }\n\n get transition(): TransitionApi {\n return this[TRANSITION_SLOT] ??= createTransitionApi(this[OPTIONS_OWNER]);\n }\n\n set transition(value: TransitionApi) {\n this[TRANSITION_SLOT] = value;\n }\n\n set enableRouterClassing(value: RouterClassingSettings) {\n try {\n const ins = this[OPTIONS_OWNER];\n const callback = ins.context.onRouterChanged(() => {\n ComponentHelper.routerClassing.call(ins, value);\n });\n ins.motif.register(disposableCore.toDisposable(() => {\n callback();\n }));\n ComponentHelper.routerClassing.call(ins, value);\n } catch (error) {\n reportError('MJX105', error);\n }\n }\n\n getInstance(): ComponentBase {\n return this[OPTIONS_OWNER];\n }\n\n get display(): boolean {\n return this[OPTIONS_OWNER].isVisible;\n }\n\n set display(value: boolean) {\n if (value) {\n this[OPTIONS_OWNER].motif.show();\n } else {\n this[OPTIONS_OWNER].motif.hide();\n }\n }\n\n hasEvent(name: string): boolean {\n return !!(this[OPTIONS_OWNER] as any)._eventHandlers?.has(name);\n }\n}\nlazyBindMethods(ComponentOptionsImpl.prototype, ['getInstance', 'hasEvent']);\n\n\n\n\nexport type IBaseProp<T extends any> = OptionalParams<T> & MotifDomEventProps & {\n childs?: any[];\n options?: any;\n onElementCreating?(): any;\n initializeComponent?(sender: ComponentBase): void;\n onBuilding?(sender: ComponentBase, e: EventArgs): void;\n onBuilt?(sender: ComponentBase, e: EventArgs): void;\n onMounted?(sender: ComponentBase, e: EventArgs): void;\n onInitializing?(sender: ComponentBase, e: EventArgs): void;\n onInitialized?(sender: ComponentBase, e: EventArgs): void;\n onDisposing?(sender: ComponentBase, e: EventArgs): void;\n onDisposed?(sender: ComponentBase, e: EventArgs): void;\n onConfig?(sender: ComponentBase, e: EventArgs): void;\n onConfigured?(sender: ComponentBase, e: EventArgs): void;\n onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n onActivated?(sender: ComponentBase, e: EventArgs): void;\n onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n runover?: {\n initializeComponent?: (sender: ComponentBase) => void;\n }\n [key: string]: any;\n};\n\ntype LifecycleHandler = (sender: ComponentBase, e: EventArgs) => void;\ninterface LifecycleStorage {\n _initializeComponentHandlers?: LifecycleHandler[];\n _onInitializeComponentHandlers?: LifecycleHandler[];\n _onBuildingHandlers?: LifecycleHandler[];\n _onBuiltHandlers?: LifecycleHandler[];\n _onMountedHandlers?: LifecycleHandler[];\n _onInitializingHandlers?: LifecycleHandler[];\n _onInitializedHandlers?: LifecycleHandler[];\n _onConfigHandlers?: LifecycleHandler[];\n _onConfiguredHandlers?: LifecycleHandler[];\n _onVisibilityChangedHandlers?: LifecycleHandler[];\n _onActivatedHandlers?: LifecycleHandler[];\n _onDeactivatedHandlers?: LifecycleHandler[];\n _onDisposingHandlers?: LifecycleHandler[];\n _onDisposedHandlers?: LifecycleHandler[];\n}\ninterface BaseCtx extends LifecycleStorage {\n owner: ComponentBase;\n prebinding_Activated: boolean;\n _offAll: () => void;\n _deactivateBindings: () => void;\n _activateBindings: () => void;\n _activatePreBindings: () => void;\n _reactivateBindings: () => void;\n _detachDomWithAnimation: () => void;\n _detachDomWithAnimationAsync: () => Promise<void>;\n _disposeShallow: () => void;\n _deepCleanup: () => void;\n emiters: ComponentEmiter;\n itemRef?: any;\n [key: string]: any;\n}\n\nfunction fireLifecycle(component: any, name: string, ev: EventArgs): void {\n const base = component._base;\n if (base) base.emiters.fire(name, ev);\n}\n\nfunction hasLifecycleHook(component: any, hook: string, listName: keyof LifecycleStorage, lowerName: string, legacyProp?: string): boolean {\n if (component[hook]) return true;\n const list = component._base[listName];\n if (Array.isArray(list) && list.length > 0) return true;\n if (legacyProp && component[legacyProp]) return true;\n return component._base.emiters.hasListeners(lowerName);\n}\n\nconst RESERVED_METHODS = ['build', 'setState', 'reState', 'setText', 'style', 'dispose', 'disposeAsync', 'using', 'doWork', 'getService', '$', 'useModel', 'context', 'siblings', 'serviceProvider', 'isWait'];\nconst checkedComponentClasses = new WeakSet<Function>();\n\nfunction callsSuper(fn: unknown, name: string): boolean {\n if (typeof fn !== 'function') return false;\n const escaped = name.replace(/\\$/g, '\\\\$');\n return new RegExp(`\\\\bsuper\\\\s*(\\\\.\\\\s*${escaped}(?![\\\\w$])|\\\\[)`).test(Function.prototype.toString.call(fn));\n}\n\nfunction reservedMemberProblems(c: ComponentBase): Array<[string, 'method' | 'field' | 'replaced']> {\n const problems: Array<[string, 'method' | 'field' | 'replaced']> = [];\n const own = (o: object, k: string) => Object.prototype.hasOwnProperty.call(o, k);\n for (const name of RESERVED_METHODS) {\n if (own(c, name)) { problems.push([name, 'field']); continue; }\n for (let p = Object.getPrototypeOf(c); p && p !== ComponentBase.prototype; p = Object.getPrototypeOf(p)) {\n const d = Object.getOwnPropertyDescriptor(p, name);\n if (!d) continue;\n const fns = 'value' in d ? [d.value] : [d.get, d.set].filter(Boolean);\n if (!fns.some(fn => callsSuper(fn, name))) problems.push([name, 'method']);\n break;\n }\n }\n const anyC = c as any;\n if (!(anyC.motif instanceof ComponentMotif)) problems.push(['motif', 'replaced']);\n if (!(anyC.controls instanceof ControlCollection)) problems.push(['controls', 'replaced']);\n if (!(anyC.class instanceof controlClass)) problems.push(['class', 'replaced']);\n if (!(anyC.attr instanceof controlAttribute)) problems.push(['attr', 'replaced']);\n if (!(anyC.bindings instanceof BindingCollection)) problems.push(['bindings', 'replaced']);\n if (anyC.element != null && typeof Node !== 'undefined' && !(anyC.element instanceof Node)) problems.push(['element', 'replaced']);\n if (anyC.parent != null && !(anyC.parent instanceof ComponentBase)) problems.push(['parent', 'replaced']);\n return problems;\n}\n\nexport function checkReservedMembers(c: ComponentBase): void {\n if (!isDevLike()) return;\n const ctor = (c as any)?.constructor;\n if (typeof ctor !== 'function' || checkedComponentClasses.has(ctor)) return;\n checkedComponentClasses.add(ctor);\n const name = ctor.name || 'An anonymous component class';\n for (const [member, how] of reservedMemberProblems(c)) {\n reportWarning('MJX128', [name, member, how]);\n }\n}\n\nconst ComponentHelper = {\n callInitializeComponent(component: ComponentBase | any) {\n const sender = component;\n const ev = { cancel: false } as EventArgs;\n if (!component || component.isDisposed) { return; }\n // 1) class method initializeComponent\n if (typeof component.initializeComponent === 'function') {\n callReported(() => component.initializeComponent(sender, ev), 'MJX122', 'initializeComponent');\n }\n // 2) aggregated extra initializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._initializeComponentHandlers) && component._base._initializeComponentHandlers.length) {\n for (const fn of component._base._initializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'initializeComponent');\n }\n }\n // 3) class method oninitializeComponent \n if (typeof component.oninitializeComponent === 'function') {\n callReported(() => component.oninitializeComponent(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n // 4) aggregated extra oninitializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._onInitializeComponentHandlers) && component._base._onInitializeComponentHandlers.length) {\n for (const fn of component._base._onInitializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n }\n },\n callDisposing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onDisposing', '_onDisposingHandlers', 'ondisposing', 'ondisposing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposing) {\n callReported(() => component.onDisposing(sender, ev), 'MJX122', 'onDisposing');\n }\n if (Array.isArray(component._base._onDisposingHandlers)) {\n for (const fn of component._base._onDisposingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposing');\n }\n }\n if (component.ondisposing) {\n callReported(() => component.ondisposing(sender, ev), 'MJX122', 'ondisposing');\n }\n fireLifecycle(component,'ondisposing', ev);\n },\n callActivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onActivated) { callReported(() => component.onActivated(sender, ev), 'MJX122', 'onActivated'); }\n if (Array.isArray(component._base._onActivatedHandlers)) {\n for (const fn of component._base._onActivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onActivated');\n }\n }\n fireLifecycle(component,'onactivated', ev);\n },\n callDeactivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDeactivated) { callReported(() => component.onDeactivated(sender, ev), 'MJX122', 'onDeactivated'); }\n if (Array.isArray(component._base._onDeactivatedHandlers)) {\n for (const fn of component._base._onDeactivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDeactivated');\n }\n }\n fireLifecycle(component,'ondeactivated', ev);\n },\n deactivateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component.isBuilt || !component._base || component._base._inactive) { return; }\n component._base._inactive = true;\n ComponentHelper.callDeactivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.deactivateTree(c, true);\n }\n }\n },\n activateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component._base || !component._base._inactive) { return; }\n component._base._inactive = false;\n ComponentHelper.callActivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.activateTree(c, true);\n }\n }\n },\n callDisposed(component: ComponentBase | any) {\n if (!component || !component._base || component._base._disposedFired) { return; }\n component._base._disposedFired = true;\n if (hasLifecycleHook(component, 'onDisposed', '_onDisposedHandlers', 'ondisposed', 'ondisposed')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposed) { callReported(() => component.onDisposed(sender, ev), 'MJX122', 'onDisposed'); }\n if (Array.isArray(component._base._onDisposedHandlers)) {\n for (const fn of component._base._onDisposedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposed');\n }\n }\n if (component.ondisposed) { callReported(() => component.ondisposed(sender, ev), 'MJX122', 'ondisposed'); }\n fireLifecycle(component,'ondisposed', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:disposed', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n callBuilt(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (hasLifecycleHook(component, 'onBuilt', '_onBuiltHandlers', 'onbuilt', 'onbuilt')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilt) { callReported(() => component.onBuilt(sender, ev), 'MJX122', 'onBuilt'); }\n if (Array.isArray(component._base._onBuiltHandlers)) {\n for (const fn of component._base._onBuiltHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilt');\n }\n }\n if (component.onbuilt) { callReported(() => component.onbuilt(sender, ev), 'MJX122', 'onbuilt'); }\n fireLifecycle(component,'onbuilt', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:mounted', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n scheduleMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedScheduled) { return; }\n const hasHook = typeof component.onMounted === 'function'\n || (Array.isArray(component._base._onMountedHandlers) && component._base._onMountedHandlers.length > 0)\n || typeof component.onmounted === 'function';\n if (!hasHook) { return; }\n component._base._mountedScheduled = true;\n const el = component.element as Element | null;\n if (!el || typeof (el as any).nodeType !== 'number') { return; }\n const stop = onElementAttached(el, () => {\n if (component.isDisposed) { return; }\n ComponentHelper.callMounted(component);\n });\n if (stop) {\n component._register(disposableCore.toDisposable(stop));\n }\n },\n callMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedFired) { return; }\n component._base._mountedFired = true;\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onMounted) { callReported(() => component.onMounted(sender, ev), 'MJX122', 'onMounted'); }\n if (Array.isArray(component._base._onMountedHandlers)) {\n for (const fn of component._base._onMountedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onMounted');\n }\n }\n if (component.onmounted) { callReported(() => component.onmounted(sender, ev), 'MJX122', 'onmounted'); }\n fireLifecycle(component,'onmounted', ev);\n },\n callBuilding(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onBuilding', '_onBuildingHandlers', 'onbuilding')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilding) { callReported(() => component.onBuilding(sender, ev), 'MJX122', 'onBuilding'); }\n if (Array.isArray(component._base._onBuildingHandlers)) {\n for (const fn of component._base._onBuildingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilding');\n }\n }\n fireLifecycle(component,'onbuilding', ev);\n },\n callConfig(component: ComponentBase | any) {\n if (!component || component.isDisposed || component.isConfigured) { return; }\n component.isConfigured = true;\n\n if (component.motif.options._preconfig) {\n safeCallSilent(() => component.motif.options._preconfig(component), 'Component._preconfig');\n }\n\n if (!hasLifecycleHook(component, 'onConfig', '_onConfigHandlers', 'onconfig')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfig) { callReported(() => component.onConfig(sender, ev), 'MJX122', 'onConfig'); }\n if (Array.isArray(component._base._onConfigHandlers)) {\n for (const fn of component._base._onConfigHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfig');\n }\n }\n fireLifecycle(component,'onconfig', ev);\n },\n callConfigured(component: ComponentBase | any) {\n if (component.motif.options && component.motif.options._postconfigdone) {\n return;\n }\n if (component?._base?._configDeferred && !component.isConfigured) {\n ComponentHelper.callConfig(component);\n }\n component.motif.options._postconfigdone = true;\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onConfigured', '_onConfiguredHandlers', 'onconfigured')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfigured) { callReported(() => component.onConfigured(sender, ev), 'MJX122', 'onConfigured'); }\n if (Array.isArray(component._base._onConfiguredHandlers)) {\n for (const fn of component._base._onConfiguredHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfigured');\n }\n }\n fireLifecycle(component,'onconfigured', ev);\n },\n callOnInitialized(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n component.isInitialized = true;\n if (!hasLifecycleHook(component, 'onInitialized', '_onInitializedHandlers', 'oninitialized')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitialized) { callReported(() => component.onInitialized(sender, ev), 'MJX122', 'onInitialized'); }\n if (Array.isArray(component._base._onInitializedHandlers)) {\n for (const fn of component._base._onInitializedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitialized');\n }\n }\n fireLifecycle(component,'oninitialized', ev);\n },\n callOnInitializing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onInitializing', '_onInitializingHandlers', 'oninitializing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitializing) { callReported(() => component.onInitializing(sender, ev), 'MJX122', 'onInitializing'); }\n if (Array.isArray(component._base._onInitializingHandlers)) {\n for (const fn of component._base._onInitializingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitializing');\n }\n }\n fireLifecycle(component,'oninitializing', ev);\n },\n callVisibilityChanged(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onVisibilityChanged', '_onVisibilityChangedHandlers', 'onvisibilitychanged')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onVisibilityChanged) { callReported(() => component.onVisibilityChanged(sender, ev), 'MJX122', 'onVisibilityChanged'); }\n if (Array.isArray(component._base._onVisibilityChangedHandlers)) {\n for (const fn of component._base._onVisibilityChangedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onVisibilityChanged');\n }\n }\n fireLifecycle(component,'onvisibilitychanged', ev);\n },\n findFragmentContent(c: ComponentBase) {\n const controlElement = c.element.nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n if (c.element.nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n c.motif.options.cache?.appendChild(c.element);\n c.controls.forEach(child => {\n c.motif.options.cache?.appendChild(child.element as unknown as Node);\n });\n c.motif.options.cache?.appendChild(c.motif.options.closeFragment!);\n }\n },\n backgroundCallback(callback: () => any) {\n callback();\n // if (!requestIdleCallback) {\n // if (!requestAnimationFrame) {\n // } else {\n\n // } else {\n },\n internalBuild(this: ComponentBase, c: ComponentBase) {\n if (this.isDisposed || c?.isDisposed) { return; }\n ComponentHelper.callConfigured(c);\n if (c.isDisposed) return;\n c._base._activatePreBindings();\n if (c.isWait) return;\n const cisBuilt = c.isBuilt;\n if (!this.isBuilt) {\n return;\n }\n if (c.isWait) {\n return;\n }\n const enterSeq = c._base._enterSeq;\n if (!c.isBuilt) {\n c.build();\n } else if (c.parent != this) {\n c.parent?.controls.detach(c);\n c.parent = this;\n const pendingLeave = (c as any).__pendingLeave;\n if (pendingLeave) {\n pendingLeave.promise.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n\n if (c.isDisposed || this.isDisposed) return;\n c.parent = this;\n\n const ownItems = this.controls.items;\n const currentIndex = ownItems.length > 0 && ownItems[ownItems.length - 1] === c ? ownItems.length - 1 : ownItems.indexOf(c);\n\n const appendableElement = findAppendableComponent(this);\n var controlElement = (c.element as Node).nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n\n if (cisBuilt && (c.element as Node).nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n\n controlElement = ComponentHelper.getContent.call(c) as Node;\n }\n\n let referenceNode: Node | null = null;\n\n const insertHost = appendableElement?.element as Node | undefined;\n const domReferenceOf = (n: ComponentBase | undefined): Node | null => {\n if (!n || !n.isBuilt) return null;\n const candidate: Node | null = n.isVisible\n ? (n.element as unknown as Node)\n : (((n.motif.options as any)?.placeholder as Node | undefined) ?? null);\n if (!candidate) return null;\n return (insertHost && candidate.parentNode === insertHost) ? candidate : null;\n };\n\n const siblings = this.controls.items;\n for (let i = currentIndex + 1; i < siblings.length; i++) {\n const candidate = domReferenceOf(siblings[i]);\n if (candidate) {\n referenceNode = candidate;\n break;\n }\n }\n if (!referenceNode) {\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n const close = this.motif.options.closeFragment as unknown as Node | undefined;\n referenceNode = (close && insertHost && close.parentNode === insertHost) ? close : null;\n } else {\n referenceNode = null;\n }\n }\n\n if (!c.isVisible) {\n const cfg = (c as any).motif.options?.hideStrategy ?? 'auto';\n const isFromListOrKeyed = !!((c as any).motif.options?.__fromList || typeof ((c as any).motif.options as any)?.indexkey !== 'undefined' || typeof (c as any).motif.options?.__key !== 'undefined');\n const strategy: 'placeholder' | 'detach' = cfg === 'placeholder' ? 'placeholder' : (cfg === 'detach' ? 'detach' : (isFromListOrKeyed ? 'detach' : 'placeholder'));\n if (strategy === 'placeholder') {\n if (!(c as any).motif.options.placeholder) {\n (c as any).motif.options.placeholder = dom.createComment(\"h\");\n }\n controlElement = ((c as any).motif.options.placeholder as unknown as Node);\n } else {\n return;\n }\n }\n\n if (insertHost && enterModeOf(this) === 'out-in') {\n const wait = pendingLeaves(insertHost, controlElement);\n if (wait) {\n c._base._enterSeq = (c._base._enterSeq ?? 0) + 1;\n wait.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n const parentNode = appendableElement?.element as Node | undefined;\n if (controlElement && parentNode && (controlElement === parentNode || controlElement.contains(parentNode))) {\n reportWarning('MJX104', []);\n\n } else {\n if (referenceNode) {\n try {\n appendableElement?.element.insertBefore(controlElement!, referenceNode);\n } catch {\n\n appendableElement?.element.appendChild(controlElement!);\n }\n } else {\n appendableElement?.element.appendChild(controlElement!);\n }\n }\n if (c.isVisible) {\n const enteredInBuild = !cisBuilt && c._base._enterSeq !== enterSeq;\n !enteredInBuild && wantsEnterTransition(c) && c.motif.options.transition.enterTransition(() => { });\n if (cisBuilt) {\n ComponentHelper.activateTree(c);\n }\n }\n },\n getContent(this: ComponentBase): any {\n if (this.isDisposed || !this.element) { return null; }\n if ((this.element as Node).nodeType == Node.COMMENT_NODE) {\n this.motif.options.cache?.appendChild(this.element as Node);\n this.controls.forEach(child => {\n this.motif.options.cache?.appendChild(ComponentHelper.getContent.call(child) as Node);\n });\n this.motif.options.cache?.appendChild(this.motif.options.closeFragment!);\n return this.motif.options.cache;\n } else {\n return this.element;\n }\n },\n routerClassing(this: ComponentBase, value: RouterClassingSettings) {\n try {\n const type = value.to;\n const path = value.path;\n if (this.isDisposed) return;\n\n const router = this.context?.router;\n if (!router) return;\n\n const requestPath = router.uri.startsWith('/') ? router.uri : '/' + router.uri;\n const targetPath = path ?? '';\n\n const exact = isExactMatch(requestPath, targetPath);\n\n /* ---------- Active (segment‑eşleşme, tam eşleşme dahil) ---------- */\n const active = exact || startsWithPath(requestPath, targetPath);\n\n if (value.activeClass && (type === 'all' || type === 'active')) {\n const clsList = value.activeClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, active));\n }\n\n if (active && (type === 'all' || type === 'active')) {\n value.onActive?.();\n } else if ((type === 'all' || type === 'active')) {\n value.offActive?.();\n }\n\n /* ---------- Exact (tam eşleşme) ---------- */\n if (value.exactClass && (type === 'all' || type === 'exact')) {\n const clsList = value.exactClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, exact));\n }\n\n if (exact && (type === 'all' || type === 'exact')) {\n value.onExact?.();\n } else if ((type === 'all' || type === 'exact')) {\n value.offExact?.();\n }\n } catch (error) {\n\n }\n\n }\n}\n\nfunction removeComponentDom(c: any, node: Node, alsoPlaceholder: boolean): void {\n const opts = c.motif?.options;\n const parent = node.parentNode;\n if (node.nodeType === Node.COMMENT_NODE) {\n if (!parent) return;\n const close = (opts?.closeFragment as unknown as Node | undefined) || null;\n if (close) {\n let current: Node | null = node;\n while (current) {\n const after: Node | null = current.nextSibling;\n try { parent.removeChild(current); } catch { }\n if (current === close) break;\n current = after;\n }\n } else {\n try { parent.removeChild(node); } catch { }\n }\n if (!alsoPlaceholder) return;\n } else if (parent) {\n try { parent.removeChild(node); } catch { }\n if (!alsoPlaceholder) return;\n }\n const placeholder = opts?.placeholder as Node | undefined;\n if (placeholder && placeholder.parentNode) {\n try { placeholder.parentNode.removeChild(placeholder); } catch { }\n }\n}\n\nfunction detachDomWithAnimation(c: any): void {\n const node = c.element as unknown as Node | null;\n if (!node || c._keepElementOnDispose === true) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n });\n } catch {\n removeComponentDom(c, node, false);\n }\n}\n\nasync function detachDomWithAnimationAsync(c: any): Promise<void> {\n const node = c.element as unknown as Node | null;\n if (!node || c._keepElementOnDispose === true) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n return new Promise<void>((resolve) => {\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n resolve();\n });\n } catch {\n removeComponentDom(c, node, false);\n resolve();\n }\n });\n}\n\nfunction disposeShallow(c: any): void {\n if (c.isDisposed) return;\n ComponentHelper.callDisposing.call(c, c);\n try {\n c._base._offAll();\n } catch {\n\n }\n c.motif.stopAnimations();\n\n c._base._deactivateBindings();\n if (c.controls?.items?.length) {\n for (const child of c.controls.items) {\n try {\n (child as any)._base._disposeShallow();\n } catch {\n\n }\n }\n }\n ComponentHelper.callDisposed.call(c, c);\n safeCall(() => { c._base.emiters.clear(); }, 'disposeShallow.emiters');\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n}\n\nfunction deepCleanup(c: any): void {\n try { c.parent = null; } catch { }\n\n try {\n c._eventHandlers?.clear();\n } catch {\n\n }\n c._eventHandlers = undefined;\n\n try { c.class?._countsStore?.clear(); } catch { }\n try { c.class?._watchersStore?.clear(); } catch { }\n try { c.attr?._attrMapStore?.clear(); } catch { }\n try { c.attr?._watchersStore?.clear(); } catch { }\n try {\n if (c.motif.options) {\n c.motif.options.cache = undefined;\n c.motif.options.closeFragment = undefined;\n c.motif.options.placeholder = undefined;\n }\n } catch {\n\n }\n try { c.element = null; } catch { }\n try { c.props = undefined; } catch { }\n try { c.childs = undefined; } catch { }\n try { c.class = undefined; } catch { }\n try { c.attr = undefined; } catch { }\n try { c.parent = null; } catch { }\n\n try { c.motif.options = undefined; } catch { }\n const keys = Object.keys(c);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'motif') continue;\n try { c[key] = undefined; } catch { }\n }\n c.isDisposed = true;\n}\n\nconst DISPOSE_STARTED = Promise.resolve();\n\nfunction subtreeDisposesSync(c: any, root: boolean): boolean {\n if (!root && c._disposing && !c.isDisposed) return false;\n if (c.disposeAsync !== ComponentBase.prototype.disposeAsync) return false;\n const opts = c.motif?.options;\n if (opts) {\n if (opts.transitionOut) return false;\n const t = opts[TRANSITION_SLOT] as TransitionApi | undefined;\n if (t) {\n if (t.activeAnimations && t.activeAnimations.length > 0) return false;\n if (t.activeCssCancel) return false;\n if (t.classes || (t.name && t.name.length > 0)) return false;\n }\n }\n const items = c.controls?.items;\n if (items) {\n for (let i = 0; i < items.length; i++) {\n const child = items[i];\n if (child && !child.isDisposed && !subtreeDisposesSync(child, false)) return false;\n }\n }\n return true;\n}\n\nconst teardownApplications = new WeakMap<object, Application>();\n\nfunction owningApplication(c: any): Application | null {\n for (let p = c; p; p = p.parent) {\n if (p.application) return p.application;\n const recorded = teardownApplications.get(p);\n if (recorded) return recorded;\n }\n return Application.main ?? null;\n}\n\nfunction disposePrefix(c: any, options: IDisposeOptions, asChild: boolean): void {\n const ctx = asChild ? 'disposeAsync' : 'dispose';\n if (Application._disposingCount > 0) {\n const app = owningApplication(c);\n if (app && app.state === 'disposing') teardownApplications.set(c, app);\n }\n if (!asChild && options?.skipLeaveTransition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n safeCall(() => { ComponentHelper.callDisposing.call(c, c); }, ctx + '.callDisposing');\n c._base._offAll();\n c._base._deactivateBindings();\n safeCall(() => { c.parent?.controls?.silentDetach?.(c, true); }, ctx + '.silentDetach');\n}\n\nfunction disposeFinish(c: any, options: IDisposeOptions, asChild: boolean): void {\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n if (asChild) {\n c.controls.items = [];\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'disposeAsync.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'disposeAsync.emiters');\n if (options?.deep) {\n c._base._deepCleanup();\n }\n return;\n }\n c.element = null;\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'dispose.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'dispose.emiters');\n c._base._offAll();\n c._base._deepCleanup();\n}\n\nasync function disposeRemainderAsync(c: any, options: IDisposeOptions, asChild: boolean, leave: Promise<void> | undefined): Promise<void> {\n if (leave) {\n await leave;\n } else {\n if (asChild) {\n await c.motif.stopAnimations();\n } else if (peekTransition(c)?.skipNextLeave) {\n await c.motif.stopAnimations();\n }\n await c._base._detachDomWithAnimationAsync();\n }\n if (!asChild && c.constructor.name !== 'TransportTo') {\n await disposeContentBlocks(c);\n }\n const childOptions: IDisposeOptions = { deep: options?.deep };\n await safeCallAsync(async () => {\n if (c.isDisposed) { return; }\n const ctrls = Array.from(c.controls.items) as any[];\n if (ctrls.length) {\n await Promise.all(ctrls.map(child => asChild\n ? safeCallAsync(async () => { await child.disposeAsync(childOptions); }, 'disposeAsync.disposeAsyncChildren.handler')\n : (async () => {\n try {\n await child.disposeAsync(childOptions);\n } catch (error) {\n reportError('MJX107', error);\n }\n })()));\n }\n }, asChild ? 'disposeAsync.disposeAsyncChildren' : 'dispose.disposeAsync');\n if (!asChild && c.isDisposed) { return; }\n disposeFinish(c, options, asChild);\n}\n\nfunction disposeRemainderSync(root: any, options: IDisposeOptions, asChild: boolean, rootDetached: boolean): Promise<void>[] | null {\n const childOptions: IDisposeOptions = { deep: options?.deep };\n const nodes: any[] = [root];\n const parents: number[] = [-1];\n let pending: Promise<void>[] | null = null;\n if (!rootDetached) detachDomWithAnimation(root);\n for (let n = 0; n < nodes.length; n++) {\n const node = nodes[n];\n if (node.isDisposed) continue;\n const items = node.controls?.items;\n if (!items || items.length === 0) continue;\n const ctrls = Array.from(items) as any[];\n for (let j = 0; j < ctrls.length; j++) {\n const child = ctrls[j];\n if (child.isDisposed) continue;\n if (child._disposing) {\n (pending ??= []).push(child._disposing);\n continue;\n }\n try {\n retireServiceOwner(child);\n child._disposing = root._disposing;\n disposePrefix(child, childOptions, true);\n detachDomWithAnimation(child);\n nodes.push(child);\n parents.push(n);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n const count = nodes.length;\n if (count > 1) {\n const heights = new Array<number>(count).fill(0);\n for (let i = count - 1; i >= 1; i--) {\n const p = parents[i];\n if (heights[i] + 1 > heights[p]) heights[p] = heights[i] + 1;\n }\n const order: number[] = [];\n for (let i = 1; i < count; i++) order.push(i);\n order.sort((a, b) => heights[a] - heights[b] || a - b);\n for (let k = 0; k < order.length; k++) {\n try {\n disposeFinish(nodes[order[k]], childOptions, true);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n if (pending) return pending;\n if (!asChild && root.isDisposed) { return null; }\n disposeFinish(root, options, asChild);\n return null;\n}\n\nconst BASE_PROTO = {\n _offAll(this: BaseCtx): void {\n const c: any = this.owner;\n if (!c._eventHandlers) return;\n for (const [full, set] of c._eventHandlers) {\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n for (const rec of set) {\n if (!rec || !rec.wrapped) { continue; }\n\n if ((rec as any).domEvent === false) { continue; }\n const cap = (rec as any).capture === true;\n try {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap);\n } catch { }\n\n try {\n if ((rec as any).capture === undefined) {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n } catch { }\n }\n }\n c._eventHandlers.clear();\n c._eventHandlers = undefined;\n },\n _deactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.deactivateAll(); } catch { }\n },\n _activateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.activateAll(); } catch { }\n },\n _reactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.reActivateAll(); } catch { }\n },\n _activatePreBindings(this: BaseCtx): void {\n if (this.prebinding_Activated) return;\n const c: any = this.owner;\n const registered = c.bindings?._items as IBaseBinding[] | undefined;\n if (registered && registered.length > 0) {\n c.bindings.items.filter((x: IBaseBinding) => x.propertyName == \"isWait\" || x.propertyName == \"display\").forEach((b: IBaseBinding) => {\n b.activate();\n }\n );\n }\n this.prebinding_Activated = true;\n },\n _detachDomWithAnimation(this: BaseCtx): void {\n detachDomWithAnimation(this.owner);\n },\n _detachDomWithAnimationAsync(this: BaseCtx): Promise<void> {\n return detachDomWithAnimationAsync(this.owner);\n },\n _disposeShallow(this: BaseCtx): void {\n disposeShallow(this.owner);\n },\n _deepCleanup(this: BaseCtx): void {\n deepCleanup(this.owner);\n },\n};\n\nfunction createBaseCtx(owner: ComponentBase): BaseCtx {\n const base: BaseCtx = Object.create(BASE_PROTO);\n base.owner = owner;\n base.prebinding_Activated = false;\n base.emiters = new ComponentEmiter(owner);\n return base;\n}\n\nconst fragmentCloseMarkers = new WeakMap<Comment, Comment>();\n\nvar globalId = 0;\n\nconst LIFECYCLE_X_EVENTS = new Set([\n 'building', 'built', 'initializing', 'initialized', 'disposing', 'disposed',\n 'config', 'configured', 'visibilitychanged', 'activated', 'deactivated'\n]);\n\nexport interface IDisposeOptions {\n deep?: boolean;\n skipLeaveTransition?: boolean;\n}\n\nexport interface SiblingsApi {\n all: () => ComponentBase[] | undefined;\n next: () => ComponentBase | undefined;\n prev: () => ComponentBase | undefined;\n nextAll: () => any;\n prevAll: () => any;\n}\n\nconst RAW_APPLICATION = Symbol('motif.rawApplication');\nconst SCOPED_SUBSCRIBERS = new Set<PropertyKey>(['on', 'onRouterChanged']);\n\n/**\n * Uygulamanın bileşene bağlı görünümü. `on`/`onRouterChanged` aboneliklerini sahibin ömrüne\n * kaydeder; diğer tüm üyeler (alanlar, metotlar, atamalar) uygulamanın kendisine yönlenir.\n */\nfunction createScopedContext(app: Application, owner: ComponentBase): Application {\n const cache = new Map<PropertyKey, { fn: Function; bound: Function }>();\n return new Proxy(app, {\n get(target, prop) {\n if (prop === RAW_APPLICATION) { return target; }\n const value = Reflect.get(target, prop, target);\n if (typeof value !== 'function') { return value; }\n const hit = cache.get(prop);\n if (hit && hit.fn === value) { return hit.bound; }\n const bound = SCOPED_SUBSCRIBERS.has(prop)\n ? (...args: any[]) => owner._trackContextSubscription(value.apply(target, args))\n : value.bind(target);\n cache.set(prop, { fn: value, bound });\n return bound;\n },\n set(target, prop, value) {\n return Reflect.set(target, prop, value, target);\n },\n });\n}\n\nexport abstract class ComponentBase<TElement extends ElementType = any, TProps extends object = any> extends Disposable {\n\n public readonly motif: ComponentMotif<this, TProps> = new ComponentMotif<this, TProps>(this, new ComponentOptionsImpl(this) as unknown as ComponentMotif<this, TProps>['options']);\n\n public element: TElement;\n public props: TProps;\n public isBuilt: boolean = false;\n public isInitialized: boolean = false;\n public isDisposed: boolean = false;\n public isConfigured: boolean = false;\n public isPainting: boolean = false;\n public isPainted: boolean = false;\n public isVisible: boolean = true;\n public controls: ControlCollection = new ControlCollection(this);\n\n private _eventHandlers?: Map<string, Set<{\n original: (sender: ComponentBase, e: EventArgs) => any,\n wrapped?: (e: Event) => void,\n dom?: boolean,\n domEvent?: boolean,\n capture?: boolean,\n type?: string\n }>>;\n private _isWait: boolean = false;\n public class: IClass<TElement> = new controlClass(this as any) as any as IClass<TElement>;\n public attr: controlAttribute<TElement> = new controlAttribute(this as any);\n public bindings = new BindingCollection(this);\n /** style(fn) izleyicisi: tek tek tutulur, yeniden çağrıda önceki durdurulur. */\n private _styleFx?: { stop: () => void; binding: IBaseBinding };\n\n public useModel<TModel>(modelCtor: TModel): UnwrapValueRefs<TModel> {\n return reactive<TModel>(modelCtor);\n }\n\n private _computeHideStrategy(): 'placeholder' | 'detach' {\n const cfg = this.motif.options?.hideStrategy ?? 'auto';\n if (cfg === 'placeholder') return 'placeholder';\n if (cfg === 'detach') return 'detach';\n if (this.motif.options?.__fromList || typeof (this.motif.options as any)?.indexkey !== 'undefined' || typeof this.motif.options?.__key !== 'undefined') {\n return 'detach';\n }\n return 'placeholder';\n }\n\n private _isInDom(): boolean {\n try {\n if (!this.element) return false;\n const node = this.element as unknown as Node;\n if (node.nodeType === Node.COMMENT_NODE) {\n return !!node.parentNode;\n }\n return !!node.parentNode;\n } catch { return false; }\n }\n public set isWait(value: boolean) {\n this._isWait = value;\n if (this.isBuilt) {\n if (value) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n return;\n }\n if (value === false && this.parent && this.parent.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n\n }\n public get isWait(): boolean {\n return this._isWait;\n }\n\n constructor(element: TElement, props: TProps = {} as TProps) {\n super();\n recordServiceOwner(this);\n if (this.onElementCreating) {\n this.element = this.onElementCreating.call(this);\n } else if ((props as any)?.onElementCreating) {\n this.element = (props as any).onElementCreating.call(this);\n } else {\n this.element = element;\n }\n\n if (props) {\n const refs = extractRefs(props, this);\n if (refs.length > 0) {\n for (const fn of takePendingRefs(this, refs)) {\n callReported(() => fn(this), 'MJX122', 'ref');\n }\n }\n }\n\n props && ParseProps(props, this);\n applyComponentOptions((props as any)?.options, this);\n this.props = props;\n\n // (class/style/id/tabindex/role/aria-*/data-*) kök düğüme (root node) düşer, prop'lar this.props'ta kalır.\n if (props) {\n const ctor0 = new.target as any;\n const plain = ctor0 === ComponentBase || Object.getPrototypeOf(ctor0) === ComponentBase;\n if (plain) applyPlainElementProps(props, this);\n else applyFallthroughProps(props, this);\n }\n\n\n ComponentHelper.callOnInitializing(this);\n if (this.isDisposed) return;\n this.controls.onAdd = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n if (this.isWait || this.parent?.isWait) return;\n ComponentHelper.internalBuild.call(this, c);\n\n }\n\n this.controls.onAddBeforeBuild = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n }\n\n\n this.controls.onRemove = (c) => {\n if (this._eventHandlers?.has('controlremoved')) this.motif.trigger('controlremoved', { control: c });\n }\n ComponentHelper.callOnInitialized(this);\n\n const ctor = new.target as any;\n const isBaseCtor = ctor === ComponentBase || Object.getPrototypeOf(ctor) === ComponentBase;\n if (isBaseCtor) {\n ComponentHelper.callConfig(this);\n } else {\n this._base._configDeferred = true;\n }\n\n }\n\n\n\n\n\n\n public childs?: any[];\n protected _base: BaseCtx = createBaseCtx(this);\n public parent: ComponentBase | null = null;\n public onElementCreating?(): TElement;\n public initializeComponent?(sender: ComponentBase): void;\n public onBuilding?(sender: ComponentBase, e: EventArgs): void;\n public onBuilt?(sender: ComponentBase, e: EventArgs): void;\n public onMounted?(sender: ComponentBase, e: EventArgs): void;\n public onInitializing?(sender: ComponentBase, e: EventArgs): void;\n public onInitialized?(sender: ComponentBase, e: EventArgs): void;\n public onDisposing?(sender: ComponentBase, e: EventArgs): void;\n public onDisposed?(sender: ComponentBase, e: EventArgs): void;\n public onConfig?(sender: ComponentBase, e: EventArgs): void;\n public onConfigured?(sender: ComponentBase, e: EventArgs): void;\n public onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni outlet'ten ayrılıp önbelleğe alındığında (RoutingEngine) tetiklenir. */\n public onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni önbellekten outlet'e yeniden bağlandığında (RoutingEngine) tetiklenir. */\n public onActivated?(sender: ComponentBase, e: EventArgs): void;\n public view?(): ComponentBase;\n private _scopedContext?: Application;\n\n public get context(): Application {\n const parentCtx: any = this.parent?.context;\n const app: Application = parentCtx?.[RAW_APPLICATION] ?? parentCtx ?? teardownApplications.get(this) ?? Application.main;\n if (!app) { return app; }\n if ((this._scopedContext as any)?.[RAW_APPLICATION] !== app) {\n this._scopedContext = createScopedContext(app, this);\n }\n return this._scopedContext!;\n }\n /** @internal context üzerinden açılan aboneliği bileşenin ömrüne bağlar; iptal fonksiyonunu döndürür. */\n public _trackContextSubscription(off: () => void): () => void {\n if (typeof off !== 'function') { return off; }\n if (this.isDisposed) { off(); return off; }\n const d = this._register(disposableCore.toDisposable(off));\n return () => { this._disposables.detach(d); off(); };\n }\n\n public build(building: boolean = true) {\n checkReservedMembers(this);\n ComponentHelper.callConfigured(this);\n this._base._activatePreBindings();\n if (this.isDisposed || !this.element || this.isWait) { return; }\n if (this.isBuilt || this.isWait) {\n return;\n }\n\n ComponentHelper.callBuilding(this);\n if (this.isDisposed) { return; }\n var ph: any = this.element;\n if (building) {\n ph = dom.createDocumentFragment();\n }\n const isFragment = (typeof this.element !== 'string' && (this.element as unknown as Node).nodeType === Node.COMMENT_NODE);\n if (isFragment) {\n this.motif.options.cache = dom.createDocumentFragment();\n (this.element as any).textContent = \"[\";\n this.motif.options.cache!.appendChild(this.element as unknown as Node);\n }\n if (this.isBuilt) {\n return;\n }\n\n\n ComponentHelper.callInitializeComponent(this);\n if (this.isDisposed) { return; }\n\n if (this.view) {\n const templ = this.view();\n this.controls.add(templ);\n if (this.isDisposed) { return; }\n }\n\n const deferredSelectValue = (this.element as any)?.nodeName === 'SELECT'\n ? this.bindings.items.filter(b => b.propertyName === 'value')\n : [];\n if (deferredSelectValue.length) {\n try {\n this.bindings.items.filter(b => !deferredSelectValue.includes(b)).forEach(b => b.activate());\n } catch { }\n } else {\n this._base._activateBindings();\n }\n\n for (const element of this.controls.items.filter(c => !c.isWait)) {\n element.parent = this;\n element.build(false);\n if (element.isWait) {\n continue;\n }\n var target = isFragment ? this.motif.options.cache : this.element;\n if (building) {\n if (element.motif.options.cache) {\n ph.appendChild(element.motif.options.cache);\n } else {\n ph.appendChild(element.element);\n }\n } else {\n if (element.motif.options.cache) {\n (target as any).appendChild(element.motif.options.cache);\n } else {\n (target as any).appendChild(element.element);\n }\n }\n if (element._base?._inactive && element.isVisible) {\n ComponentHelper.activateTree(element);\n }\n\n }\n\n if (this.isDisposed) { return; }\n if (wantsEnterTransition(this)) {\n const node = this.element as unknown as Node | null;\n if (node && (node as any).isConnected) {\n this.motif.options.transition.enterTransition(() => { });\n } else {\n const seq = this._base._enterSeq;\n queueMicrotask(() => {\n if (!this.isDisposed && this.isVisible && this.motif.options?.transition && this._base._enterSeq === seq) {\n this.motif.options.transition.enterTransition(() => { });\n }\n });\n }\n } else {\n clearNavDirection(this);\n }\n if (building) {\n try {\n var target = isFragment ? this.motif.options.cache : this.element;\n if ((target as any).nodeType === Node.TEXT_NODE) {\n (target as Text).appendData(ph.textContent);\n } else {\n if ((target as any).appendChild) {\n (target as any).appendChild(ph);\n } else {\n (target as any).append(ph);\n }\n }\n } catch (error) {\n }\n\n }\n if (deferredSelectValue.length) {\n try { deferredSelectValue.forEach(b => b.activate()); } catch { }\n }\n if (isFragment) {\n this.motif.options.closeFragment = dom.createComment(\"]\");\n this.motif.options.cache!.appendChild(this.motif.options.closeFragment!);\n if ((this.element as Node).nodeType === Node.COMMENT_NODE && this.motif.options.closeFragment) {\n fragmentCloseMarkers.set(this.element as Comment, this.motif.options.closeFragment);\n }\n }\n\n this.isBuilt = true;\n ComponentHelper.callBuilt(this);\n ComponentHelper.scheduleMounted(this);\n\n }\n\n public setState() {\n this.controls.forEach(c => {\n c.setState();\n });\n this._base._reactivateBindings();\n }\n\n public reState() {\n this._base._reactivateBindings();\n this.controls.forEach(c => {\n c.reState();\n });\n }\n\n public setText(value: string) {\n if (this.isDisposed || !this.element) { return; }\n if (isComponentLike(value)) { warnComponentInTextBinding(this, value); return; }\n if (this.element) {\n (this.element as any).textContent = value;\n }\n }\n\n public style(content: CSSStyleDeclaration | string | Array<any> | Object | (() => any)) {\n if (this.isDisposed) { return this as any }\n const styleObj = (this.element as any)?.style as CSSStyleDeclaration | undefined;\n if (!styleObj) return this;\n if (typeof content === 'function') {\n this._stopStyleEffect();\n let prevKeys: string[] = [];\n let prevWasString = false;\n const run = () => effect(() => {\n const v = (content as () => any)();\n if (this.isDisposed) return;\n const so: any = (this.element as any)?.style;\n if (!so) return;\n if (typeof v === 'string') {\n so.cssText = v;\n prevKeys = [];\n prevWasString = true;\n } else if (v && typeof v === 'object') {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) {\n if (!(k in v)) { try { so[k] = ''; } catch { } }\n }\n Object.assign(so, v);\n prevKeys = Object.keys(v);\n } else {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) { try { so[k] = ''; } catch { } }\n prevKeys = [];\n }\n });\n let current = run();\n const stop = () => { try { current(); } catch { } };\n const binding: IBaseBinding = {\n propertyName: '__style',\n dataSource: null,\n activate() { /* no-op */ },\n reActivate() {\n stop();\n current = run();\n },\n deactivate() { stop(); }\n } as any;\n try { this.bindings.add(binding); } catch { }\n this._styleFx = { stop, binding };\n return this;\n }\n if (typeof content === 'string') {\n (styleObj as any).cssText = content;\n } else if (content && typeof content === 'object') {\n Object.assign(styleObj as any, content);\n }\n return this;\n }\n\n private _stopStyleEffect() {\n const fx = this._styleFx;\n if (!fx) return;\n this._styleFx = undefined;\n try { fx.stop(); } catch { }\n try { this.bindings.remove(fx.binding); } catch { }\n }\n\n private _addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void) {\n this.motif.on(event as any, handler as any);\n }\n private async _show(): Promise<any> {\n\n\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) { return; }/* A*/\n\n if (this.parent && enterModeOf(this.parent) === 'out-in') {\n const showHost = ((this.motif.options.placeholder as Node | undefined)?.parentNode)\n ?? (findAppendableComponent(this.parent)?.element as Node | undefined);\n const wait = pendingLeaves(showHost, this.element as unknown as Node);\n if (wait) {\n const seq = this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n return wait.then(() => {\n if (this.isDisposed || this._base._showSeq !== seq) return;\n return this._show();\n });\n }\n }\n\n if (peekTransition(this)?.activeAnimations?.length) {\n safeCall(async () => {\n await Promise.all(this.motif.options.transition.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n }, 'show.waitForLeaveAnimations');\n }\n /** A*/\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n const needAttach = !this._isInDom() && this.parent && this.parent.isBuilt && !this.isWait;\n this.isVisible = true;\n if (needAttach) {\n ComponentHelper.internalBuild.call(this.parent!, this);\n }\n return;\n } else {\n /** A*/\n const placeholderParent = (this.motif.options.placeholder as Node)?.parentElement;\n const expectedParent = findAppendableComponent(this.parent!)?.element;\n\n if (this.motif.options.placeholder && placeholderParent && placeholderParent !== expectedParent) {\n reportWarning('MJX106', []);\n this.isVisible = true;\n if (this.parent?.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n return;\n }\n\n /** A*/\n wantsEnterTransition(this) && this.motif.options.transition.enterTransition(() => { });\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n c.motif.show();\n });\n this.isVisible = true;\n ComponentHelper.activateTree(this, false);\n return;\n }\n var parent = (this.motif.options.placeholder as Node)?.parentElement;\n if (parent) {\n parent.replaceChild(this.element as Node, this.motif.options.placeholder!);\n this.isVisible = true;\n ComponentHelper.activateTree(this);\n }\n }\n }\n private async _hide(): Promise<any> {\n\n if (this.isDisposed || !this.element) { return; }\n this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n if (!this.isVisible) { return; }\n\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n await this._base._detachDomWithAnimationAsync();\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n return;\n } else {\n const transition = this.motif.options.transition;\n const skip = transition.skipNextLeave === true;\n if (skip) transition.skipNextLeave = false;\n const finish = () => {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n if (skip && c.isVisible && c.element && !c.isDisposed && c.motif.options?.transition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n c.motif.hide();\n });\n this.isVisible = false;\n ComponentHelper.deactivateTree(this, false);\n return;\n }\n var parent = (this.element as Node).parentElement;\n // if (!parent) {\n // var parentComp = findAppendableComponent(this.parent!);\n // if (parentComp && parentComp.isBuilt) {\n // } else {\n if (parent) {\n if (!this.motif.options.placeholder) this.motif.options.placeholder = dom.createComment(\"h\");\n parent.replaceChild(this.motif.options.placeholder!, this.element as Node);\n\n }\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n };\n if (skip) {\n finish();\n return;\n }\n return transition.leaveTransition(finish).finished;\n }\n\n }\n private _toggle() {\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n }\n\n private async _on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event);\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2).toLowerCase();\n if (xName === \"mounted\") {\n let sub: IDisposable | undefined;\n const stop = onElementAttached(this.element as Element, () => {\n if (sub) {\n this._base._mountedSubs?.get(cb)?.delete(sub);\n this._disposables.detach(sub);\n }\n if (this.isDisposed) { return; }\n const ev = { cancel: false } as EventArgs;\n callReported(() => (cb as any).length <= 1 ? (cb as any)(ev) : cb(this, ev as any), 'MJX122', 'x:mounted');\n });\n if (stop) {\n sub = this._register(disposableCore.toDisposable(stop));\n const subs: Map<Function, Set<IDisposable>> = this._base._mountedSubs ??= new Map();\n let set = subs.get(cb);\n if (!set) { set = new Set(); subs.set(cb, set); }\n set.add(sub);\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.on(\"on\" + xName, cb as any);\n return this;\n }\n }\n\n const [name, ...mods] = full.split(\":\");\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n const options: AddEventListenerOptions = {};\n if (mods.includes(\"once\")) options.once = true;\n if (mods.includes(\"passive\")) options.passive = true;\n if (mods.includes(\"capture\")) options.capture = true;\n\n const wrapped = (ev: Event) => {\n if (mods.includes(\"self\") && ev.target !== this.element) return;\n if (mods.includes(\"trusted\") && !ev.isTrusted) return;\n let res: any;\n try {\n if (cb && (cb as any).length <= 1) {\n res = (cb as any)(ev as any);\n } else if (cb) {\n res = cb(this, ev as any);\n }\n } catch (error) {\n reportError('MJX123', error, evt);\n }\n if (res && typeof res.then === 'function') {\n res.then(undefined, (error: unknown) => reportError('MJX123', error, evt));\n }\n const prevent = () => { if (typeof (ev as any)?.preventDefault === 'function') ev.preventDefault(); };\n const stop = () => { if (typeof (ev as any)?.stopPropagation === 'function') ev.stopPropagation(); };\n if (mods.includes(\"prevent\")) { prevent(); }\n if (mods.includes(\"stop\")) { stop(); }\n if (res && (res as any).cancel === true) {\n prevent();\n stop();\n }\n };\n if (domEvent) {\n (this.element as any).addEventListener(evt, wrapped as EventListener, options);\n }\n\n\n this._eventHandlers ??= new Map();\n const key = full.toLowerCase();\n const set = this._eventHandlers.get(key) ?? new Set();\n set.add({ original: cb as any, wrapped, capture: !!options.capture, domEvent: !!domEvent, type: evt });\n this._eventHandlers.set(key, set);\n this._register(disposableCore.toDisposable(() => {\n this.motif.off(event, cb);\n }));\n return this;\n }\n\n private async _trigger(event: any, ev: any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n const name = String(event).toLowerCase();\n safeCall(() => {\n var eh = this._eventHandlers?.get(name);\n if (eh) {\n eh.forEach(rec => {\n try {\n (rec.wrapped as any)(ev);\n } catch {\n\n }\n });\n }\n }, 'trigger');\n return this;\n }\n private async _off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event).toLowerCase();\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2);\n if (xName === \"mounted\") {\n const set = this._base._mountedSubs?.get(cb);\n if (set) {\n this._base._mountedSubs.delete(cb);\n for (const sub of set) {\n this._disposables.delete(sub);\n }\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.off(\"on\" + xName, cb as any);\n }\n return this;\n }\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n if (!this._eventHandlers) return this;\n const set = this._eventHandlers.get(full);\n if (!set) return this;\n for (const rec of Array.from(set)) {\n if (rec.original === (cb as any)) {\n if ((rec as any).domEvent !== false) {\n const cap = (rec as any).capture === true;\n safeCall(() => { (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap); }, 'off.removeEventListener');\n safeCall(() => {\n if ((rec as any).capture === undefined) {\n (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n }, 'off.removeEventListener.fallback');\n }\n set.delete(rec);\n break;\n }\n }\n if (set.size === 0) this._eventHandlers.delete(full);\n return this;\n }\n /** Süren bertaraf: ikinci bir dispose/disposeAsync çağrısı yenisini başlatmaz, bunu bekler. */\n private _disposing?: Promise<void>;\n\n public override dispose(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, false);\n }\n\n private async _disposeCore(options: IDisposeOptions, asChild: boolean): Promise<void> {\n disposePrefix(this, options, asChild);\n let leave: Promise<void> | undefined;\n if (!asChild && !peekTransition(this)?.skipNextLeave) {\n leave = this._base._detachDomWithAnimationAsync();\n }\n await undefined;\n if (liveContentBlocks.live === 0 && subtreeDisposesSync(this, true)) {\n const pending = disposeRemainderSync(this, options, asChild, leave !== undefined);\n if (pending) {\n await Promise.all(pending);\n if (!asChild && this.isDisposed) { return; }\n disposeFinish(this, options, asChild);\n }\n return;\n }\n await disposeRemainderAsync(this, options, asChild, leave);\n }\n\n public disposeAsync(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, true);\n }\n\n\n protected async _clear(): Promise<any> {\n if (this.isDisposed == true) { return; }\n if (this.motif.options && this.motif.options.disableDisposal) { return; };\n await this.controls.clearAsync();\n //if (this.onupdated) this.onupdated(this as any, { data: this.model, field: '', source: 'clear' })\n // return new Promise((resolveOuter: any) => {\n // this.controls.forEach(async (control, index) => {\n // if (index === this.controls.length - 1) {\n // dom.window.setTimeout(resolveOuter, 0);\n // await control.dispose();\n }\n\n using<T>(waitable: Promise<any>, onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected?: ((reason: any) => never | PromiseLike<never>) | undefined | null) {\n waitable.then(\n (value: T) => { this && !this.isDisposed && onfulfilled ? onfulfilled(value) : ''; },\n (reason: any) => { this && !this.isDisposed && onrejected ? onrejected(reason) : '' });\n }\n doWork<T>(waitable: Promise<T> | PromiseLike<T>): Promise<T> {\n return Promise.resolve(waitable).then((value: T) => {\n if (this && !this.isDisposed) {\n return value\n } else {\n return motifError('MJX108');\n };\n }) as Promise<T>;\n }\n\n private _siblingsApi?: SiblingsApi;\n private _siblingsSet?: boolean;\n\n get siblings(): SiblingsApi {\n if (this._siblingsSet) { return this._siblingsApi as SiblingsApi; }\n if (this.isDisposed && !this.motif?.options) { return this._siblingsApi as SiblingsApi; }\n return this._siblingsApi ??= this._createSiblingsApi();\n }\n\n set siblings(value: SiblingsApi) {\n this._siblingsApi = value;\n this._siblingsSet = true;\n }\n\n private _createSiblingsApi(): SiblingsApi {\n return {\n all: () => { return this.parent?.controls.items },\n next: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx + 1];\n },\n prev: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx - 1];\n },\n nextAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(idx + 1);\n },\n prevAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(0, idx);\n }\n };\n }\n\n public get serviceProvider(): ServiceProvider | null {\n let c: ComponentBase | null = this as unknown as ComponentBase;\n while (c) {\n const p = (c as any).provider as ServiceProvider | undefined;\n if (p) return p;\n const recorded = teardownApplications.get(c);\n if (recorded) return recorded.state === 'disposed' ? null : recorded.provider;\n c = c.parent;\n }\n try { return Application.main?.provider ?? null; } catch { return null; }\n }\n\n public getService<T>(token: abstract new (...args: any[]) => T): T | null;\n public getService<T = any>(token: string | symbol | object): T | null;\n public getService(token: any): any {\n try {\n\n const sp = this.serviceProvider;\n if (sp) {\n return sp._getFor(this, token);\n }\n reportWarning('MJX407', [describeServiceToken(token)], { token });\n } catch (err) {\n reportWarning('MJX408', [describeServiceToken(token), String((err as any)?.message ?? err)], { token, error: err });\n }\n return null;\n }\n $(selector: string) {\n if (this.isDisposed || !this.element) {\n return {\n fromDom: () => null,\n fromComponent: () => [] as ComponentBase[]\n };\n }\n var result = {\n fromDom: () => {\n var findContainer = findAppendableComponent(this)?.element;\n var findingTarget;\n if (!findContainer) {\n findingTarget = document;\n } else {\n findingTarget = findContainer;\n }\n if (findingTarget) {\n var elements = findingTarget.querySelectorAll(selector);\n return elements;\n }\n return null;\n },\n fromComponent: () => {\n const findingComponent = findAppendableComponent(this);\n const root = findingComponent ?? this;\n const found: ComponentBase[] = [];\n const walk = (cmp: ComponentBase) => {\n const el = cmp.element as any;\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n const matches: ((sel: string) => boolean) | undefined = (el.matches || el.msMatchesSelector || el.webkitMatchesSelector);\n if (typeof matches === 'function') {\n try { if (matches.call(el, selector)) { found.push(cmp); } } catch { }\n }\n }\n if (cmp.controls && cmp.controls.items && cmp.controls.items.length) {\n for (const child of cmp.controls.items) { walk(child); }\n }\n };\n\n walk(root);\n return found;\n }\n }\n return result;\n }\n\n private async _stopAnimations() {\n const t = peekTransition(this);\n try { t?.activeCssCancel?.(); } catch { }\n try {\n if (t?.activeAnimations?.length) {\n try {\n await Promise.all(t.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n } catch { /* ignore */ }\n }\n\n } catch (error) {\n\n }\n if (this.isDisposed) return;\n if (t) t.activeAnimations = [];\n }\n // return this;\n\n}\n\n\nfunction findContentBlocks(root: ComponentBase, results: ComponentBase[] = []): ComponentBase[] {\n if (!root || root.isDisposed) return results;\n\n if (root.constructor.name === 'TransportTo') {\n results.push(root);\n }\n if (root.controls && root.controls.items) {\n root.controls.items.forEach(child => findContentBlocks(child, results));\n }\n\n return results;\n}\n\nasync function disposeContentBlocks(root: ComponentBase): Promise<any> {\n if (liveContentBlocks.live === 0) return;\n const contentBlocks = findContentBlocks(root);\n return await Promise.all(contentBlocks.map(async (block) => {\n block.motif.options.transition.skipNextLeave = root.motif.options.transition.skipNextLeave;\n for (const element of block.controls.items) {\n element.motif.options.transition.skipNextLeave = block.motif.options.transition.skipNextLeave;\n element.dispose({ skipLeaveTransition: true });\n element.isDisposed = true;\n }\n await block.dispose()\n }));\n}\n\nconst _appliedRefs = new WeakMap<object, Set<Function>>();\n\nexport function takePendingRefs(component: ComponentBase, ref: any): Function[] {\n const fns: Function[] = (Array.isArray(ref) ? ref : [ref]).filter((fn: any) => typeof fn === 'function');\n if (fns.length === 0) return fns;\n let applied = _appliedRefs.get(component);\n if (!applied) {\n applied = new Set();\n _appliedRefs.set(component, applied);\n }\n const pending: Function[] = [];\n for (const fn of fns) {\n if (applied.has(fn)) continue;\n applied.add(fn);\n pending.push(fn);\n }\n return pending;\n}\n\nconst isCallableRef = (ref: any): boolean => typeof ref === 'function' || Array.isArray(ref);\n\nexport function extractRefs(props: any, component?: ComponentBase): any[] {\n const refs: any[] = [];\n if (!props || typeof props !== 'object') return refs;\n if (Object.prototype.hasOwnProperty.call(props, 'ref')) {\n if (isCallableRef(props.ref)) {\n refs.push(props.ref);\n delete props.ref;\n } else if (component && props.ref && typeof props.ref === 'object') {\n props.ref = component;\n }\n }\n const runover = props.runover;\n if (runover && typeof runover === 'object' && Object.prototype.hasOwnProperty.call(runover, 'ref')) {\n if (isCallableRef(runover.ref)) {\n refs.push(runover.ref);\n const rest = { ...runover };\n delete rest.ref;\n props.runover = rest;\n } else if (component && runover.ref && typeof runover.ref === 'object') {\n runover.ref = component;\n }\n }\n return refs.length === 0 ? refs : ([] as any[]).concat(...refs);\n}\n\nconst LIFECYCLE_HANDLER_LISTS: Record<string, keyof LifecycleStorage> = {\n 'initializecomponent': '_initializeComponentHandlers',\n 'oninitializecomponent': '_onInitializeComponentHandlers',\n 'onbuilding': '_onBuildingHandlers',\n 'onbuilt': '_onBuiltHandlers',\n 'onmounted': '_onMountedHandlers',\n 'oninitializing': '_onInitializingHandlers',\n 'oninitialized': '_onInitializedHandlers',\n 'onconfig': '_onConfigHandlers',\n 'onconfigured': '_onConfiguredHandlers',\n 'onvisibilitychanged': '_onVisibilityChangedHandlers',\n 'onactivated': '_onActivatedHandlers',\n 'ondeactivated': '_onDeactivatedHandlers',\n 'ondisposing': '_onDisposingHandlers',\n 'ondisposed': '_onDisposedHandlers',\n};\n\nfunction collectLifecycleHandlers(component: ComponentBase, lowerKey: string, value: any): boolean {\n const listName = Object.prototype.hasOwnProperty.call(LIFECYCLE_HANDLER_LISTS, lowerKey) ? LIFECYCLE_HANDLER_LISTS[lowerKey] : undefined;\n if (!listName) return false;\n const fns: any[] = Array.isArray(value) ? value : [value];\n if (fns.length === 0 || !fns.every(fn => typeof fn === 'function')) return false;\n (component as any)._base[listName] ??= [];\n const list = (component as any)._base[listName] as Function[];\n for (const fn of fns) {\n if (!list.includes(fn)) list.push(fn);\n }\n return true;\n}\n\nexport function ParseProps(props: any, component: ComponentBase): any {\n if (props) {\n if (component.motif.options.props) {\n Object.assign(component.motif.options.props, props);\n } else {\n component.motif.options.props = {};\n Object.assign(component.motif.options.props, props);\n }\n var keys = Object.keys(props);\n if (keys.length === 0) return;\n keys.forEach(key => {\n if (key == 'initializeComponent' || key == 'oninitializeComponent' || key.startsWith('on')) {\n if (collectLifecycleHandlers(component, key.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n } else if (key == 'childs') {\n const flat: ComponentBase[] = ([] as any[]).concat(...props[key] as any);\n component.childs = flat;\n delete props[key];\n } else if (key === 'transition') {\n applyTransitionProp(props[key], component);\n delete props[key];\n } else if (componentMethods.hasOwnProperty(key.toLowerCase()) || componentMethods.hasOwnProperty(\"on\" + key.toLowerCase())) {\n var eventKey;\n if (!key.toLowerCase().startsWith(\"on\") && key.toLowerCase() !== \"initializecomponent\") {\n eventKey = \"on\" + key;\n } else {\n eventKey = key;\n }\n (component as any)[eventKey] = props[key];\n delete props[key];\n } else if (key.startsWith(\"on\")) {\n\n component.motif.on(key as any, props[key]);\n } else if (key.startsWith(\"x-\")) {\n\n var nkey = key.replace(\"x-\", \"on\");\n if (key.toLowerCase() == \"x-wait\") {\n component.bindings.wait(props[key]);\n\n } else if (key.toLowerCase() == \"x-display\") {\n component.bindings.display(props[key]);\n } else {\n if (collectLifecycleHandlers(component, nkey.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n }\n\n\n delete props[key];\n } else if (key.startsWith(\"runover\")) {\n\n ParseProps(props[key], component);\n delete props[key];\n } else if (key.startsWith(\"preconfig\")) {\n component.motif.options._preconfig = props[key];\n delete props[key];\n } else {\n // var callback = props[key];\n // if (typeof callback === \"function\") {\n // } else {\n }\n });\n }\n}\n\nconst _transitionSources = new WeakMap<ComponentBase, any>();\n\nfunction setTransition(component: ComponentBase, value: any, live: boolean): void {\n const transition = component.motif.options.transition;\n if (typeof value === 'string' && value.length > 0) {\n transition.name = value;\n if (live) transition.classes = undefined;\n } else if (value && typeof value === 'object') {\n if (typeof value.name === 'string' && value.name.length > 0) {\n transition.name = value.name;\n }\n if (!('mode' in value)) {\n transition.classes = value;\n } else {\n const { mode, ...classes } = value;\n if (isTransitionMode(mode)) {\n transition.mode = mode;\n }\n if (Object.keys(classes).length > 0) {\n transition.classes = classes;\n }\n }\n } else if (live) {\n transition.name = '';\n transition.classes = undefined;\n }\n}\n\nexport function applyTransitionProp(value: any, component: ComponentBase): void {\n if (!component || component.isDisposed) return;\n if (value === undefined || value === null) return;\n if (_transitionSources.get(component) === value) return;\n _transitionSources.set(component, value);\n if (typeof value === 'function') {\n component.bindings.watch(() => {\n const current = value();\n if (component.isDisposed) return;\n setTransition(component, current, true);\n });\n return;\n }\n setTransition(component, value, false);\n}\n\nexport function isComponentLike(value: any): boolean {\n if (value instanceof ComponentBase) return true;\n return Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase);\n}\n\nconst _textBindingWarned = new WeakSet<object>();\n\nfunction warnComponentInTextBinding(component: ComponentBase, value: any): void {\n if (_textBindingWarned.has(component)) return;\n _textBindingWarned.add(component);\n reportWarning('MJX204', [], { value: Array.isArray(value) ? `ComponentBase[${value.length}]` : 'ComponentBase' });\n}\n\nconst COMPONENT_OPTION_KEYS = ['hideStrategy', 'disableDisposal'] as const;\n\nexport function applyComponentOptions(source: any, component: ComponentBase): void {\n if (!source || typeof source !== 'object' || !component || component.isDisposed) return;\n for (const key of COMPONENT_OPTION_KEYS) {\n if (source[key] !== undefined) (component.motif.options as any)[key] = source[key];\n }\n}\n\n/** `applyPlainElementProps`'un DOM'a yazmayacağı çerçeve anahtarları. */\nconst PLAIN_ELEMENT_SKIP = new Set([\n 'ref', 'key', 'indexkey', 'inject', 'options', 'props', 'settings', 'isSvg',\n 'childs', 'initializeComponent', 'runover', 'transition', 'preconfig', 'nodes', 'onElementCreating'\n]);\n\nconst SPREAD_HTML_KEYS = new Set(['innerhtml', 'srcdoc']);\nconst SPREAD_URL_ATTRIBUTES = new Set(['href', 'src', 'action', 'formaction', 'xlink:href']);\nconst JAVASCRIPT_URL = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\n\nfunction isJavascriptUrl(value: unknown): boolean {\n if (value === undefined || value === null || typeof value === 'boolean') return false;\n try { return JAVASCRIPT_URL.test(String(value)); } catch { return false; }\n}\n\nfunction guardSpreadUrl(key: string, read: () => any): () => any {\n return () => {\n let value = read();\n if (typeof value === 'function') value = value();\n if (typeof value === 'function') value = value();\n if (!isJavascriptUrl(value)) return value;\n reportWarning('MJX125', [key]);\n return null;\n };\n}\n\nexport function applyPlainElementProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const keys = Object.keys(props);\n if (keys.length === 0) return;\n let attrs: Record<string, any> | null = null;\n let applied: Map<string, any> | null = null;\n for (const key of keys) {\n if (PLAIN_ELEMENT_SKIP.has(key)) continue;\n if (key.startsWith('x-') || key.startsWith('x:') || key.startsWith('__')) continue;\n let v = props[key];\n if (v === undefined) continue;\n if (/^on/i.test(key)) {\n if (typeof v === 'function') component.motif.on(key as any, v as any);\n continue;\n }\n if (typeof v === 'function' && v.length > 0) continue;\n const lowerKey = key.toLowerCase();\n if (SPREAD_HTML_KEYS.has(lowerKey)) {\n reportWarning('MJX124', [key]);\n continue;\n }\n if (SPREAD_URL_ATTRIBUTES.has(lowerKey)) {\n if (typeof v === 'function') {\n v = guardSpreadUrl(key, v);\n } else if (isJavascriptUrl(v)) {\n reportWarning('MJX125', [key]);\n continue;\n }\n }\n (applied ??= appliedDomProps(component)).set(key, v);\n if (key === 'class' || key === 'className') {\n component.class.add(v && typeof v === 'object' && !Array.isArray(v) ? [v] : v);\n } else if (key === 'style') {\n component.style(v);\n } else if (key === 'value' || key === 'checked' || key === 'selected') {\n component.bindings.add(key, v);\n } else {\n (attrs ??= {})[key] = v;\n }\n }\n if (attrs) component.attr.add(attrs);\n}\n\nconst _appliedDomProps = new WeakMap<ComponentBase, Map<string, any>>();\nfunction appliedDomProps(component: ComponentBase): Map<string, any> {\n let m = _appliedDomProps.get(component);\n if (!m) { m = new Map(); _appliedDomProps.set(component, m); }\n return m;\n}\n\n/** Bileşen etiketinden köke düşen ortak öznitelikler. */\nconst FALLTHROUGH_KEYS = new Set(['class', 'className', 'style', 'id', 'tabindex', 'role']);\nfunction isFallthroughKey(key: string): boolean {\n return FALLTHROUGH_KEYS.has(key) || key.startsWith('aria-') || key.startsWith('data-');\n}\n\nexport function applyFallthroughProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const applied = _appliedDomProps.get(component);\n let subset: Record<string, any> | null = null;\n for (const key of Object.keys(props)) {\n if (!isFallthroughKey(key)) continue;\n const v = props[key];\n if (v === undefined || v === null) continue;\n if (typeof v === 'function' && v.length > 0) continue;\n if (applied && applied.has(key) && Object.is(applied.get(key), v)) continue;\n (subset ??= {})[key] = v;\n }\n if (subset) applyPlainElementProps(subset, component);\n}\n\nconst componentMethods: Record<string, unknown> = {\n \"oninitializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"initializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfigured\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfig\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilding\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilt\": (sender: ComponentBase, e: EventArgs) => { },\n \"onmounted\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitializing\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitialized\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposing\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposed\": (sender: ComponentBase, e: EventArgs) => { },\n \"onvisibilitychanged\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondeactivated\": (sender: ComponentBase, e: EventArgs) => { },\n \"onactivated\": (sender: ComponentBase, e: EventArgs) => { },\n};\n\n\nfunction findAppendableComponent(component: ComponentBase): ComponentBase | null | undefined {\n\n return safeCall<ComponentBase | null | undefined>(() => {\n if (!component || component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findAppendableComponent(component.parent);\n }\n return null;\n }, 'findAppendableComponent', null);\n\n}\n\n\nfunction findParentElement(component: ComponentBase): ComponentBase | null {\n\n try {\n if (component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findParentElement(component.parent);\n }\n } catch (error) {\n throw error;\n }\n return null;\n}\n\n\nfunction onElementAttached(element: Element, callback: () => any): (() => void) | null {\n if (document.contains(element)) {\n callback();\n return null;\n }\n\n let done = false;\n const observer = new MutationObserver(() => {\n if (done) { return; }\n if (document.contains(element)) {\n done = true;\n observer.disconnect();\n callback();\n }\n });\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n });\n\n return () => {\n if (done) { return; }\n done = true;\n try { observer.disconnect(); } catch { /* ignore */ }\n };\n}\n\nexport function notifyActivated(component: ComponentBase): void {\n unpinServiceOwner(component);\n ComponentHelper.activateTree(component);\n}\nexport function notifyDeactivated(component: ComponentBase): void {\n pinServiceOwner(component);\n ComponentHelper.deactivateTree(component);\n}","import { ComponentBase } from \"./componentBase\";\nimport { reportError } from \"../common/diagnostics\";\n\nconst MAX_FACTORY_DEPTH = 100;\n\nexport function resolveComponent(input: unknown, props?: any): any {\n let current: any = input;\n let depth = 0;\n while (typeof current === \"function\") {\n if (current.prototype instanceof ComponentBase) {\n return new current(props);\n }\n if (++depth > MAX_FACTORY_DEPTH) {\n reportError('MJX112', undefined, MAX_FACTORY_DEPTH);\n return current;\n }\n current = current(props);\n }\n return current;\n}","import { dom } from \"../\";\nimport { ComponentBase, IBaseProp, ParseProps, applyComponentOptions, applyFallthroughProps, applyTransitionProp, extractRefs, safeCallSilent, takePendingRefs, untracked } from \"../\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { ElementType, EventArgs } from \"./types\";\nimport { callReported, motifError } from \"../common/diagnostics\";\n\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nfunction readElementTag(ctor: any): string | undefined {\n try {\n const tag = ctor?.elementTag;\n if (typeof tag === 'string') {\n const trimmed = tag.trim();\n if (trimmed) return trimmed;\n }\n } catch { /* ignore */ }\n return undefined;\n}\n\nfunction createDeclaredElement(tag: string, ctor: any, props: any): any {\n const declaredNs = typeof ctor?.elementNamespace === 'string' && ctor.elementNamespace\n ? ctor.elementNamespace as string\n : undefined;\n const isSvg = declaredNs === SVG_NAMESPACE || props?.options?.isSvg === true || props?.__isSvgElement === true;\n if (isSvg) {\n if (props && typeof props === 'object') { (props as any).isSvg = true; }\n return dom.createElementNS(declaredNs || SVG_NAMESPACE, tag, props);\n }\n return dom.createElement(tag, props);\n}\n\nexport class Component<TElement extends ElementType = any, TProps extends object = any> extends ComponentBase<TElement, TProps> {\n\n public static elementTag?: string;\n public static elementNamespace?: string;\n\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>);\n constructor(element: TElement | string, options: IBaseProp<TProps>);\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor(elementOrParams?: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor() {\n const derivedCtor: any = new.target;\n var args = arguments;\n var elementOrParams;\n var options;\n if (args.length === 1) {\n elementOrParams = args[0];\n } else if (args.length === 2) {\n elementOrParams = args[0];\n options = args[1];\n }\n\n if (elementOrParams instanceof Function) {\n elementOrParams = resolveComponent(elementOrParams, options);\n if (isOptionsObject(elementOrParams)) {\n return materializeOptionsObject(elementOrParams, options);\n }\n }\n if (Array.isArray(elementOrParams)) {\n const letter = CreateFragment();\n super(letter, {} as TProps);\n var ops = Object.create(options || {});\n for (const key in elementOrParams) {\n const element = elementOrParams[key];\n this.controls.add(new Component(element, ops as any));\n }\n } else\n if (typeof elementOrParams === 'string' && elementOrParams.trim().length > 0) {\n // İlk parametre element ise\n if (!options) { options = {} as any; }\n\n if (options?.options && options.options.isSvg || options?.__isSvgElement) {\n const el = dom.createElementNS('http://www.w3.org/2000/svg', elementOrParams, options);\n (options as any)['isSvg'] = true;\n super(el as TElement, options as TProps);\n } else {\n const el = dom.createElement(elementOrParams, options);\n\n super(el as TElement, options as TProps);\n }\n // DOM prop'ları (spread/attr) ComponentBase ctor'ında uygulanır: düz Component'ta tümü,\n // alt sınıflarda yalnızca ortak öznitelikler (applyFallthroughProps).\n } else if (elementOrParams instanceof Node) {\n super(elementOrParams as any, options as TProps);\n } else if (elementOrParams instanceof ComponentBase) {\n // Hazır instance geldi; olduğu gibi kullan\n return elementOrParams as any;\n }\n else {\n // Constructor'a element verilmedi (undefined/null/boş) ya da element olarak\n // tanınmayan bir değer geldi. bu iki olasılığa neden olur :\n // a) Sınıf bir element türü bildirmiş → o türde gerçek element üretilir\n // b) Bildirmemiş → FRAGMENT: kök yorum düğümü (yer tutucu),\n // çocuklar açılış/kapanış işaretçileri arasına render edilir\n // Her bileşenin bir elementi olmak zorunda olduğundan, fragment kök olarak yorum düğümü kullanılır.\n // props hangi argümanda olduğu çağrı biçimine göre değişir:\n // new Component({ ...props }) → props İLK argüman\n // super(void 0, props) / super(null, props) → props İKİNCİ argüman\n const fragmentProps = (elementOrParams && typeof elementOrParams === 'object')\n ? elementOrParams\n : options;\n\n // Sınıf bir element türü bildirdiyse (statik elementTag — derleyici\n // Component<HTMLDivElement> generic'inden üretir fragment yerine\n // O TÜRDE gerçek element oluşturulur.\n const declaredTag = readElementTag(derivedCtor);\n if (declaredTag) {\n const declaredEl = createDeclaredElement(declaredTag, derivedCtor, fragmentProps);\n super(declaredEl as TElement, (fragmentProps ?? {}) as TProps);\n } else {\n super(CreateFragment(), (fragmentProps ?? {}) as TProps);\n }\n\n // Her iki durumda da JSX çocukları (props.childs) içeriğe eklenir.\n // Alt sınıflar initializeComponent'i ezdiği için FragmentNode.initializeComponent'e güvenilemez.\n const kids = this.childs;\n if (Array.isArray(kids) && kids.length) {\n for (const kid of kids) {\n if (kid) this.controls.add(kid);\n }\n }\n }\n }\n\n\n}\n\n\ntype viewFn<P extends object> = (props: P) => any;\n\nexport function FNComponent<P extends object>(view: viewFn<P>) {\n\n return (props: P) => {\n //debugger; \n var comp = motifFragment({\n ...props as any,\n });\n comp.controls.add(view(props) as any);\n return comp;\n };\n}\n\nfunction applyJsxFrameworkProps(target: any, props: any, refs: any[]): any {\n if (!props || typeof props !== 'object') return target;\n if (!(target instanceof ComponentBase)) return target;\n\n applyRefs(target, refs.concat(extractRefs(props)));\n\n // Fonksiyon bileşeni etiketindeki ortak öznitelikler (class/id/aria-*…) döndürülen köke düşer.\n // Kök `<div {...props}/>` ise aynı değerler zaten uygulanmıştır; ikinci kez uygulanmaz.\n applyFallthroughProps(props, target as ComponentBase);\n applyComponentOptions((props as any).options, target as ComponentBase);\n if (Object.prototype.hasOwnProperty.call(props, 'transition')) {\n applyTransitionProp((props as any).transition, target as ComponentBase);\n }\n\n const runover = (props as any).runover;\n if (!runover || typeof runover !== 'object') return target;\n\n const handlers: any[] = (target as any)._base?._onConfigHandlers;\n const configuredBefore = Array.isArray(handlers) ? handlers.length : 0;\n const initializingBefore = handlerCount(target, '_onInitializingHandlers');\n const initializedBefore = handlerCount(target, '_onInitializedHandlers');\n ParseProps(runover, target as ComponentBase);\n\n callAddedHandlers(target, '_onInitializingHandlers', initializingBefore, 'onInitializing');\n callAddedHandlers(target, '_onInitializedHandlers', initializedBefore, 'onInitialized');\n\n // Fonksiyon bileşeninin kökü düz bir `Component` olduğunda config aşaması yapıcıda\n // ÇOKTAN çalışmıştır (`isConfigured`); sonradan kaydedilen preconfig/onConfig bir daha\n // çağrılmayacağı için burada elle koşulur. Yalnızca yeni eklenenler çalıştırılır.\n if ((target as any).isConfigured) {\n const pre = (target as any).motif.options?._preconfig;\n if (typeof pre === 'function') {\n safeCallSilent(() => pre(target), 'motifComponent.preconfig');\n }\n const after: any[] = (target as any)._base?._onConfigHandlers;\n if (Array.isArray(after)) {\n for (let i = configuredBefore; i < after.length; i++) {\n const fn = after[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', 'onConfig');\n }\n }\n }\n return target;\n}\n\nfunction applyRefs(target: any, refs: any[]): any {\n if (target instanceof ComponentBase) {\n for (const fn of takePendingRefs(target, refs)) {\n callReported(() => fn(target), 'MJX122', 'ref');\n }\n }\n return target;\n}\n\nfunction handlerCount(target: any, listName: string): number {\n const list: any[] = target._base?.[listName];\n return Array.isArray(list) ? list.length : 0;\n}\n\nfunction callAddedHandlers(target: any, listName: string, from: number, hook: string): void {\n const list: any[] = target._base?.[listName];\n if (!Array.isArray(list)) return;\n for (let i = from; i < list.length; i++) {\n if (target.isDisposed) return;\n const fn = list[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', hook);\n }\n}\n\nfunction resolveChildExpression(probe: any): any {\n if (typeof probe !== 'function') return undefined;\n let value: any;\n try { value = untracked(probe); } catch { return undefined; }\n if (value instanceof ComponentBase) return value;\n if (Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase)) return value;\n return undefined;\n}\n\nexport function motifComponent(element: unknown, props?: any) {\n\n // Etiket adı: element yaratımı (HTML/SVG) ve spread prop uygulaması Component ctor'ının string parametresinde\n if (typeof element === \"string\") {\n if (element === \"text\" && props && props.__childExpr) {\n const resolved = resolveChildExpression(props.__childExpr);\n if (resolved !== undefined) return resolved;\n }\n return new Component(element, props);\n }\n\n if (element instanceof ComponentBase || element instanceof Component) {\n return element;\n }\n\n // Class component → new, function component/factory → çağır (try/catch tespiti yok)\n if (typeof element === \"function\") {\n const refs = element.prototype instanceof ComponentBase ? [] : extractRefs(props);\n const el = resolveComponent(element, props);\n if (typeof el == \"object\" && el !== null && 'el' in el) {\n return applyRefs(materializeOptionsObject(el, props), refs);\n }\n // Sınıf bileşeninde props yapıcıda işlendi; fonksiyon bileşeninde ise dış etiketin\n // çerçeve prop'ları (direktifler, initializeComponent, yaşam döngüsü) hiçbir yere uygulanmamıştı.\n return applyJsxFrameworkProps(el, props, refs);\n }\n\n if (typeof element == \"object\" && element !== null && 'el' in element) {\n return materializeOptionsObject(element, props);\n }\n return new Component(element, props);\n}\n\nfunction isOptionsObject(value: unknown): boolean {\n return typeof value == \"object\" && value !== null && !(value instanceof ComponentBase) && 'el' in value;\n}\n\nexport function unwrapModule(result: any): any {\n if (result && typeof result === \"object\" && !(result instanceof ComponentBase) && result.default != null) {\n return result.default;\n }\n return result;\n}\n\nfunction describeLoaded(value: any): string {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'array';\n if (typeof value === \"object\" && (Object.prototype.toString.call(value) === '[object Module]' || value.__esModule)) return 'module';\n return typeof value;\n}\n\nexport function assertLoadedComponent(value: unknown): void {\n if (value === null || typeof value !== \"object\") return;\n if (value instanceof ComponentBase || Array.isArray(value) || value instanceof Node) return;\n if (typeof (value as any).then === \"function\") return;\n throw motifError('MJX127', describeLoaded(value));\n}\n\nexport function resolveToComponent(input: unknown, props?: any): any {\n const resolved = resolveComponent(input, props);\n if (isOptionsObject(resolved)) {\n return materializeOptionsObject(resolved, undefined);\n }\n return resolved;\n}\n\nfunction materializeOptionsObject(spec: any, props: any): any {\n const result: any = motifComponent(spec.el, props);\n Object.getOwnPropertyNames(spec).forEach(key => {\n if (key !== 'el' && key !== 'ctor') {\n result[key] = spec[key];\n }\n });\n if (typeof spec.ctor === 'function') {\n callReported(() => spec.ctor.call(result, props), 'MJX122', 'ctor');\n }\n return result;\n}\nexport function motifFragment(props?: any) {\n return new FragmentNode(props);\n}\n\nfunction CreateFragment() {\n const fragment = dom.createComment(\"\");\n return fragment;\n}\n\nexport class FragmentNode<TProps extends object = any> extends Component<Comment, TProps> {\n\n constructor(options?: IBaseProp<TProps>);\n constructor(element: any, props: any);\n constructor(arg1?: any, arg2?: any) {\n if (arguments.length <= 1) {\n super(CreateFragment() as any, arg1 as any);\n } else {\n super(CreateFragment() as any, arg2 as any);\n }\n }\n\n public override initializeComponent(sender: ComponentBase): void {\n const s = (this as any).childs as ComponentBase[] | undefined;\n if (Array.isArray(s) && s.length) {\n for (const child of s) {\n if (child) this.controls.add(child);\n }\n }\n safeCallSilent(() => {\n const nodes = (this.motif.options as any)?.props?.nodes as any[] | undefined;\n if (Array.isArray(nodes) && nodes.length) {\n for (const n of nodes) {\n if (n) this.controls.add(n);\n }\n }\n }, 'Fragment.initializeComponent.props.nodes');\n }\n}\n\n\nexport class motifDocument {\n public router: any = {};\n public context: any = {};\n public run(appElement: Node, app: Component): Component {\n const MainApp = new Component(appElement, {});\n app.parent = MainApp;\n MainApp.controls.add(app);\n //const renderer = new motifRenderer();\n //renderer.render(MainApp);\n MainApp.build();\n return MainApp;\n //console.warn(\"MainApp:\", MainApp);\n }\n}\n","import { IDisposable } from \"../\";\r\nimport { errorHandler } from \"../common/ErrorHandler\";\r\nimport { motifError, reportError } from \"../common/diagnostics\";\r\n\r\nconst glblths = globalThis as any;\r\nfunction getCurrentDom() {\r\n if (glblths && glblths.motifDom) {\r\n return glblths.motifDom.window.document;\r\n }\r\n return glblths.document;\r\n}\r\n\r\nexport function setDom(dom: any) {\r\n if (glblths) {\r\n glblths.motifDom = dom;\r\n }\r\n}\r\n\r\nexport const dom = {\r\n get window() {\r\n if (glblths && glblths.window) {\r\n return glblths.window;\r\n } else if (glblths && glblths) {\r\n return glblths.motifDom.window;\r\n } else {\r\n return glblths;\r\n }\r\n },\r\n _created: new Map<any, any>(),\r\n document: getCurrentDom(),\r\n createElement(tagName: string, options?: any): any {\r\n const doc = getCurrentDom();\r\n if (!doc) {\r\n throw motifError('MJX101', tagName);\r\n }\r\n if (tagName === \"text\") {\r\n return doc.createTextNode('');\r\n }\r\n if (!this._created.has(tagName)) {\r\n const view = doc.createElement(tagName, options);\r\n this._created.set(tagName, view);\r\n }\r\n const tpl = this._created.get(tagName);\r\n return tpl.cloneNode(false);\r\n },\r\n\r\n createDocumentFragment(): any {\r\n try {\r\n var cd = getCurrentDom();\r\n if (cd) {\r\n return cd.createDocumentFragment();\r\n }\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createDocumentFragment', error);\r\n }\r\n\r\n },\r\n createComment(content: any) {\r\n try {\r\n return getCurrentDom()?.createComment(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createComment', error);\r\n }\r\n\r\n },\r\n createTextNode(content: any) {\r\n try {\r\n return getCurrentDom()?.createTextNode(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createTextNode', error);\r\n }\r\n\r\n },\r\n querySelectorAll(selectors: string) {\r\n try {\r\n return getCurrentDom()?.querySelectorAll(selectors)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.querySelectorAll', error);\r\n }\r\n\r\n },\r\n createElementNS(namepsaceUri: string, tagName: string, options?: any): any {\r\n try {\r\n return getCurrentDom()?.createElementNS(namepsaceUri, tagName, options)\r\n } catch (error) {\r\n reportError('MJX103', error, tagName);\r\n }\r\n\r\n },\r\n convertToSvgElement(element: Element): Element {\r\n\r\n const SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\r\n const tagName = element.tagName.toLowerCase();\r\n const newSvgElement = document.createElementNS(SVG_NAMESPACE, tagName);\r\n\r\n for (const attr of element.attributes) {\r\n newSvgElement.setAttribute(attr.name, attr.value);\r\n }\r\n\r\n while (element.firstChild) {\r\n newSvgElement.appendChild(element.firstChild);\r\n }\r\n\r\n const parent = element.parentNode;\r\n if (parent) {\r\n parent.replaceChild(newSvgElement, element);\r\n }\r\n\r\n return newSvgElement;\r\n },\r\n\r\n get body() {\r\n return getCurrentDom()?.body;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nconst SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\r\nexport enum Namespace {\r\n HTML = 'http://www.w3.org/1999/xhtml',\r\n SVG = 'http://www.w3.org/2000/svg'\r\n}\r\n\r\n\r\nfunction _$<T extends Element>(namespace: Namespace, description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n const match = SELECTOR_REGEX.exec(description);\r\n\r\n if (!match) {\r\n throw motifError('MJX102', description);\r\n }\r\n\r\n const tagName = match[1] || 'div';\r\n let result: T;\r\n\r\n if (namespace !== Namespace.HTML) {\r\n result = dom.createElementNS(namespace as string, tagName) as T;\r\n } else {\r\n result = dom.createElement(tagName) as unknown as T;\r\n }\r\n\r\n if (match[3]) {\r\n result.id = match[3];\r\n }\r\n if (match[4]) {\r\n result.className = match[4].replace(/\\./g, ' ').trim();\r\n }\r\n if (attrs) {\r\n Object.entries(attrs).forEach(([name, value]) => {\r\n if (typeof value === 'undefined') {\r\n return;\r\n }\r\n\r\n if (/^on\\w+$/.test(name)) {\r\n (<any>result)[name] = value;\r\n } else if (name === 'selected') {\r\n if (value) {\r\n result.setAttribute(name, 'true');\r\n }\r\n\r\n } else {\r\n result.setAttribute(name, value);\r\n }\r\n });\r\n }\r\n result.append(...children);\r\n return result as T;\r\n}\r\n\r\nexport function $<T extends HTMLElement>(description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n return _$(Namespace.HTML, description, attrs, ...children);\r\n}\r\n\r\n\r\n\r\nclass DomListener implements IDisposable {\r\n\r\n private _handler: (e: any) => void;\r\n private _node: EventTarget;\r\n private readonly _type: string;\r\n private readonly _options: boolean | AddEventListenerOptions;\r\n\r\n constructor(node: EventTarget, type: string, handler: (e: any) => void, options?: boolean | AddEventListenerOptions) {\r\n this._node = node;\r\n this._type = type;\r\n this._handler = handler;\r\n this._options = (options || false);\r\n this._node.addEventListener(this._type, this._handler, this._options);\r\n }\r\n\r\n dispose(): void {\r\n if (!this._handler) {\r\n // Already disposed\r\n return;\r\n }\r\n\r\n this._node.removeEventListener(this._type, this._handler, this._options);\r\n\r\n // Prevent leakers from holding on to the dom or handler func\r\n this._node = null!;\r\n this._handler = null!;\r\n }\r\n}\r\n\r\nexport function addDisposableListener<K extends keyof GlobalEventHandlersEventMap>(node: EventTarget, type: K, handler: (event: GlobalEventHandlersEventMap[K]) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, options: AddEventListenerOptions): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCaptureOrOptions?: boolean | AddEventListenerOptions): IDisposable {\r\n return new DomListener(node, type, handler, useCaptureOrOptions);\r\n}\r\n\r\n\r\n\r\n","// import { dom } from \"../browser\";\r\nimport { TRANSITION_SLOT } from \"../component/optionsSlots\";\r\n// import { effect } from \"../store\";\r\nimport { dom } from \"../\";\r\nimport { Component, ComponentBase, resolveComponent, notifyDeactivated } from \"../\";\r\nimport { reportError } from \"../common/diagnostics\";\r\nimport { checkReservedMembers } from \"../component/componentBase\";\r\n\r\nexport class ControlCollection {\r\n constructor(private owner: ComponentBase) {\r\n\r\n }\r\n items: ComponentBase[] = [];\r\n\r\n add(...control: ComponentBase[]): ComponentBase[]\r\n add(index?: number, ...control: ComponentBase[]): ComponentBase[]\r\n add(): ComponentBase[] {\r\n const count = arguments.length;\r\n if (count === 0) return [] as ComponentBase[];\r\n const first = arguments[0];\r\n if (count === 1 && first instanceof ComponentBase) {\r\n if (first.isDisposed) return [] as ComponentBase[];\r\n return [this._insertOne(undefined, first)];\r\n }\r\n const args = Array.from(arguments) as any[];\r\n if (typeof args[0] === 'number' && args.length > 1) {\r\n const index = args[0] as number;\r\n const children = ([] as ComponentBase[]).concat(...args.slice(1));\r\n return this.insert(index, ...children);\r\n } else {\r\n const children = ([] as ComponentBase[]).concat(...args);\r\n return this.insert(undefined, ...children);\r\n }\r\n }\r\n insert(index?: number, ...controls: ComponentBase[]): ComponentBase[] {\r\n const flat: ComponentBase[] = ([] as any[]).concat(...controls as any);\r\n return flat.filter(x => x != undefined && !x.isDisposed).map(control => this._insertOne(index, control));\r\n }\r\n private _insertOne(index: number | undefined, control: ComponentBase): ComponentBase {\r\n control = resolveComponent(control);\r\n if (typeof control == 'string' || typeof control == 'number' || typeof control == 'boolean' || typeof control == 'bigint') {\r\n control = new Component(dom.createTextNode(control), null as any);\r\n }\r\n checkReservedMembers(control);\r\n if (control.parent) { control.parent.controls.detach(control); }\r\n\r\n if (index != undefined && index >= 0) {\r\n this.items.splice(index, 0, control);\r\n } else {\r\n this.items.push(control);\r\n }\r\n control.parent = this.owner;\r\n\r\n const pendingLeave = (control as any).__pendingLeave as PendingLeave | undefined;\r\n if (pendingLeave) {\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n pendingLeave.promise.then(() => {\r\n if (control.isDisposed || this.owner.isDisposed || control.parent !== this.owner) return;\r\n if (this.onAdd && this.owner.isBuilt) this.onAdd(control);\r\n });\r\n return control;\r\n }\r\n\r\n if (this.onAdd && this.owner.isBuilt) {\r\n this.onAdd(control);\r\n }\r\n\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n return control;\r\n }\r\n remove(control: ComponentBase) {\r\n var index = this.items.indexOf(control);\r\n if (index > -1) {\r\n this.items.splice(index, 1);\r\n try { control.dispose(); } catch { /* ignore */ }\r\n }\r\n }\r\n detach(control: ComponentBase): Promise<void> {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return Promise.resolve();\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return Promise.resolve();\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n return runLeaveThenDetach(control, () => { if (this.onRemove) this.onRemove(control); });\r\n }\r\n\r\n silentDetach(control: ComponentBase, unlinkOnly: boolean = false) {\r\n if (unlinkOnly) { this.silentUnlink(control); return; }\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return;\r\n control.parent = null;\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n\r\n silentUnlink(control: ComponentBase) {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n }\r\n\r\n async clearAsync(): Promise<void> {\r\n const items = this.items.splice(0, this.items.length); \r\n await Promise.all(items.map(c => c.dispose())); \r\n }\r\n\r\n\r\n clear() {\r\n var items = this.items.splice(0, this.items.length);\r\n items.forEach(c => {\r\n try { c.dispose(); } catch { /* ignore */ }\r\n });\r\n }\r\n get length() {\r\n return this.items.length;\r\n }\r\n forEach(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n this.items.forEach(callbackfn);\r\n }\r\n map(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n return this.items.map(callbackfn);\r\n }\r\n onAdd?: (control: ComponentBase) => void;\r\n onRemove?: (control: ComponentBase) => void;\r\n onAddBeforeBuild?: (control: ComponentBase) => void;\r\n move(control: ComponentBase, before?: ComponentBase | null): void {\r\n if (!control || control.isDisposed) return;\r\n if (before === control) return;\r\n if (control.parent !== this.owner) return;\r\n if (before && before.parent !== this.owner) return;\r\n\r\n const oldIndex = this.items.indexOf(control);\r\n if (oldIndex === -1) return;\r\n const beforeIndex = before ? this.items.indexOf(before) : -1;\r\n if (before && beforeIndex === -1) return;\r\n\r\n const alreadyInPlace = before ? beforeIndex === oldIndex + 1 : oldIndex === this.items.length - 1;\r\n if (alreadyInPlace) return;\r\n\r\n\r\n this.items.splice(oldIndex, 1);\r\n\r\n if (!before) {\r\n this.items.push(control);\r\n } else {\r\n const newBeforeIndex = this.items.indexOf(before);\r\n const insertAt = newBeforeIndex >= 0 ? newBeforeIndex : this.items.length;\r\n this.items.splice(insertAt, 0, control);\r\n }\r\n\r\n if ((control as any).isWait) {\r\n return;\r\n }\r\n const container = findAppendableElement(this.owner);\r\n if (!container) return;\r\n\r\n const referenceNode: Node | null = before ? (before.element as unknown as Node) : computeAppendReference(this.owner);\r\n\r\n moveComponentDomRange(control, container, referenceNode);\r\n }\r\n\r\n moveToIndex(control: ComponentBase, index: number): void {\r\n if (!control || control.isDisposed) return;\r\n if (!Number.isFinite(index as any)) return;\r\n if (index < 0) index = 0;\r\n if (index > this.items.length) index = this.items.length;\r\n if (this.items.indexOf(control) === -1) return;\r\n const before = index >= this.items.length ? null : this.items[index];\r\n this.move(control, before);\r\n }\r\n}\r\n\r\n/** Owner için DOM'a eklenebilir gerçek element'i bulur. */\r\nfunction findAppendableElement(owner: ComponentBase): HTMLElement | Node | null {\r\n let c: ComponentBase | null = owner;\r\n while (c) {\r\n const node = c.element as any as Node;\r\n if (node && node.nodeType !== Node.COMMENT_NODE && node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && node.nodeType !== Node.TEXT_NODE) {\r\n return node as any;\r\n }\r\n c = c.parent;\r\n }\r\n return null;\r\n}\r\n\r\n/** Owner fragment ise sona ekleme referansını, değilse null döndürür. */\r\nfunction computeAppendReference(owner: ComponentBase): Node | null {\r\n const node = owner.element as any as Node;\r\n if (node && node.nodeType === Node.COMMENT_NODE) {\r\n return (owner as any).motif.options?.closeFragment || null;\r\n }\r\n return null;\r\n}\r\n\r\n/** Bir component'in kök DOM aralığını (tek element veya fragment aralığı) referenceNode öncesine taşır. */\r\nfunction moveComponentDomRange(control: ComponentBase, container: Node, referenceNode: Node | null) {\r\n const node = control.element as any as Node | null;\r\n if (!node) return;\r\n\r\n if (node.nodeType !== Node.COMMENT_NODE) {\r\n try { container.insertBefore(node, referenceNode); } catch { }\r\n return;\r\n }\r\n\r\n const open = node;\r\n const close = ((control as any).motif.options?.closeFragment as Node | undefined) || null;\r\n if (!close) { try { container.insertBefore(open, referenceNode); } catch { } return; }\r\n\r\n if (referenceNode && isNodeInRange(open, close, referenceNode)) {\r\n referenceNode = close.nextSibling;\r\n }\r\n\r\n const frag = (dom.createDocumentFragment && dom.createDocumentFragment()) || container.ownerDocument?.createDocumentFragment?.() || (function () { try { return document.createDocumentFragment(); } catch { return null as any; } })();\r\n if (!frag) {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { container.insertBefore(current, referenceNode); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n return;\r\n }\r\n\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { (frag as any).appendChild(current); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n try { container.insertBefore(frag as any, referenceNode); } catch { }\r\n}\r\n\r\nfunction isNodeInRange(open: Node, close: Node, test: Node): boolean {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n if (current === test) return true;\r\n if (current === close) break;\r\n current = current.nextSibling;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX120', undefined);\r\n }\r\n return false;\r\n}\r\n\r\nfunction detachComponentDom(control: ComponentBase): void {\r\n const node = control.element as unknown as Node | null;\r\n if (!node) return;\r\n const opts: any = (control as any).motif.options;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n if (!node.parentNode) return;\r\n const close = (opts?.closeFragment as Node | undefined) || null;\r\n const cache: DocumentFragment = opts.cache ?? (opts.cache = dom.createDocumentFragment());\r\n let current: Node | null = node;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n cache.appendChild(current);\r\n if (!close || current === close) break;\r\n current = after;\r\n }\r\n return;\r\n }\r\n if (node.parentNode) {\r\n node.parentNode.removeChild(node);\r\n return;\r\n }\r\n const placeholder = opts?.placeholder as Node | undefined;\r\n if (placeholder && placeholder.parentNode) placeholder.parentNode.removeChild(placeholder);\r\n}\r\n\r\ninterface PendingLeave {\r\n promise: Promise<void>;\r\n finish: () => void;\r\n}\r\n\r\nfunction runLeaveThenDetach(control: ComponentBase, notify: () => void): Promise<void> {\r\n let resolveDone: () => void = () => { };\r\n const promise = new Promise<void>(resolve => { resolveDone = resolve; });\r\n let pending = 1;\r\n let finished = false;\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n if ((control as any).__pendingLeave?.promise === promise) delete (control as any).__pendingLeave;\r\n if (!control.isDisposed) {\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n try {\r\n notify();\r\n } catch (error) {\r\n reportError('MJX118', error);\r\n }\r\n resolveDone();\r\n };\r\n const arrive = () => {\r\n pending--;\r\n if (pending === 0) finish();\r\n };\r\n const visit = (c: ComponentBase) => {\r\n if (!c || c.isDisposed || !c.element || !c.isVisible || c.isWait) return;\r\n const node = c.element as unknown as Node;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n c.controls.items.forEach(visit);\r\n return;\r\n }\r\n if (node.nodeType !== Node.ELEMENT_NODE) return;\r\n pending++;\r\n let arrived = false;\r\n const once = () => {\r\n if (arrived) return;\r\n arrived = true;\r\n arrive();\r\n };\r\n try {\r\n const opts: any = c.motif.options;\r\n if (!opts[TRANSITION_SLOT] && !opts.transitionOut) {\r\n once();\r\n return;\r\n }\r\n opts.transition.leaveTransition(once);\r\n } catch {\r\n once();\r\n }\r\n };\r\n (control as any).__pendingLeave = { promise, finish } as PendingLeave;\r\n visit(control);\r\n arrive();\r\n return promise;\r\n}\r\n","import { ComponentBase, IBaseProp } from \".\";\nimport { Component, assertLoadedComponent, resolveToComponent, unwrapModule } from \"./Component\";\nimport { Frame } from \"./Frame\";\nimport { disposableCore } from \"../disposable\";\nimport { motifError, reportError } from \"../common/diagnostics\";\n\nexport interface LazyOptions<T = any> { \n Loaderview?: ComponentBase; \n Placeholderview?: ComponentBase; \n Fallbackview?: ComponentBase;\n minDelayMs?: number;\n onError?: (error: unknown) => void;\n mapResult?: (result: T) => any; \n timeoutMs?: number;\n signal?: AbortSignal;\n retry?: number | LazyRetryOptions;\n onRetry?: (attempt: number, error: unknown) => void;\n}\n\nexport interface LazyRetryOptions {\n count: number;\n delayMs?: number;\n whenOnline?: boolean;\n}\n\nfunction normalizeRetry(retry: LazyOptions['retry']): Required<LazyRetryOptions> {\n if (typeof retry === 'number') return { count: Math.max(0, Math.floor(retry)), delayMs: 500, whenOnline: true };\n if (retry && typeof retry === 'object') {\n return {\n count: Math.max(0, Math.floor(retry.count || 0)),\n delayMs: Math.max(0, retry.delayMs ?? 500),\n whenOnline: retry.whenOnline !== false,\n };\n }\n return { count: 0, delayMs: 0, whenOnline: false };\n}\n\nfunction defaultMapper(result: any) {\n return unwrapModule(result);\n}\n\n\n\nexport function Lazy<T>(props: { caller: () => Promise<T>, options?: LazyOptions<T> }): Component;\nexport function Lazy(props: any): Component;\nexport function Lazy(props: any): Component {\n const opts: LazyOptions<any> = (props && props.options) || {};\n const frame = new Frame();\n const timers = new Set<ReturnType<typeof setTimeout>>();\n const trackTimer = (id: ReturnType<typeof setTimeout>) => { try { timers.add(id); } catch { } return id; };\n const clearAllTimers = () => {\n try { timers.forEach(id => { try { clearTimeout(id); } catch { } }); } catch { }\n try { timers.clear(); } catch { }\n };\n try { frame.motif.register(disposableCore.toDisposable(() => clearAllTimers())); } catch { }\n const initial = opts.Placeholderview ?? opts.Loaderview;\n if (initial != null) {\n frame.navigate(resolveToComponent(initial));\n }\n\n const attemptLoad = () => {\n if (!opts.timeoutMs && !opts.signal) {\n return props.caller();\n }\n const parts: Promise<any>[] = [props.caller()];\n if (opts.timeoutMs && opts.timeoutMs > 0) {\n parts.push(new Promise<any>((_, reject) => {\n const id = trackTimer(setTimeout(() => reject(motifError('MJX110', opts.timeoutMs!)), opts.timeoutMs));\n parts[0].finally(() => { try { clearTimeout(id); timers.delete(id); } catch { } }).catch(() => { /* noop */ });\n if (opts.signal) {\n const onAbortClear = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\n try { opts.signal.addEventListener(\"abort\", onAbortClear, { once: true }); } catch { }\n }\n }));\n }\n if (opts.signal) {\n parts.push(new Promise<any>((_, reject) => {\n if (opts.signal!.aborted) {\n reject(motifError('MJX111'));\n return;\n }\n const onAbort = () => {\n opts.signal!.removeEventListener(\"abort\", onAbort);\n clearAllTimers();\n reject(motifError('MJX111'));\n };\n opts.signal!.addEventListener(\"abort\", onAbort, { once: true });\n }));\n }\n return Promise.race(parts);\n };\n\n const retry = normalizeRetry(opts.retry);\n const cleanups = new Set<() => void>();\n try { frame.motif.register(disposableCore.toDisposable(() => { cleanups.forEach(c => { try { c(); } catch { } }); cleanups.clear(); })); } catch { }\n\n const waitBeforeRetry = (attempt: number): Promise<boolean> => new Promise<boolean>(resolve => {\n let settled = false;\n const finish = (go: boolean) => {\n if (settled) return;\n settled = true;\n cleanups.delete(cancel);\n try { if (onlineHandler) window.removeEventListener('online', onlineHandler); } catch { }\n try { if (id !== undefined) { clearTimeout(id); timers.delete(id); } } catch { }\n try { opts.signal?.removeEventListener('abort', onAbort); } catch { }\n resolve(go);\n };\n const cancel = () => finish(false);\n const onAbort = () => finish(false);\n let onlineHandler: (() => void) | null = null;\n let id: ReturnType<typeof setTimeout> | undefined = undefined;\n cleanups.add(cancel);\n try { opts.signal?.addEventListener('abort', onAbort, { once: true }); } catch { }\n const schedule = () => { id = trackTimer(setTimeout(() => finish(true), retry.delayMs * attempt)); };\n const offline = retry.whenOnline && typeof navigator !== 'undefined' && navigator.onLine === false && typeof window !== 'undefined';\n if (offline) {\n onlineHandler = () => {\n try { window.removeEventListener('online', onlineHandler!); } catch { }\n onlineHandler = null;\n schedule();\n };\n window.addEventListener('online', onlineHandler);\n } else {\n schedule();\n }\n });\n\n const loadWithRetry = async (): Promise<any> => {\n let attempt = 0;\n for (; ;) {\n try {\n return await attemptLoad();\n } catch (err) {\n if (opts.signal?.aborted || (frame as any).isDisposed || attempt >= retry.count) throw err;\n attempt++;\n try { opts.onRetry?.(attempt, err); } catch { }\n const go = await waitBeforeRetry(attempt);\n if (!go || opts.signal?.aborted || (frame as any).isDisposed) throw err;\n }\n }\n };\n\n const loadPromise = retry.count > 0 ? loadWithRetry() : attemptLoad();\n\n const startTs = Date.now();\n\n const fail = (err: any) => {\n try { opts.onError?.(err); } catch { /* swallow */ }\n if (opts.signal?.aborted) return;\n if (opts.Fallbackview != null) {\n frame.navigate(resolveToComponent(opts.Fallbackview));\n } else {\n reportError('MJX126', err);\n try { frame.motif.clear().catch(() => { }); } catch { }\n }\n };\n\n const place = (target: any) => {\n let component: any;\n try {\n component = resolveToComponent(target);\n assertLoadedComponent(component);\n } catch (err) {\n fail(err);\n return;\n }\n frame.navigate(component);\n };\n\n loadPromise\n .then((result: any) => {\n if (opts.signal?.aborted) { return; }\n const mapper = opts.mapResult ?? defaultMapper;\n const target = mapper(result);\n const elapsed = Date.now() - startTs;\n const minDelay = Math.max(0, (opts.minDelayMs ?? 0));\n const remaining = Math.max(0, minDelay - elapsed);\n if (remaining > 0) {\n const id = trackTimer(setTimeout(() => {\n if (!opts.signal?.aborted) {\n place(target);\n }\n }, remaining));\n if (opts.signal) {\n const onAbortClearDelay = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\n try { opts.signal.addEventListener(\"abort\", onAbortClearDelay, { once: true }); } catch { }\n }\n } else {\n place(target);\n }\n })\n .catch(fail);\n\n return frame;\n}\n","import { ComponentBase, IDisposeOptions } from \"./componentBase\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { Lazy } from \"./Lazy\";\nimport { reportError } from \"../common/diagnostics\";\n\nexport interface NavigationHost extends ComponentBase {\n current: ComponentBase | ComponentBase[] | null;\n previouspage: any;\n isBusy: boolean;\n _latestNavigateId: number;\n _navLock: Promise<void>;\n _navAbort?: AbortController;\n _navPending?: number;\n}\n\nexport function hasOwnTransition(component: ComponentBase | null | undefined, phase: 'enter' | 'leave'): boolean {\n const options: any = component?.motif?.options;\n if (!options) return false;\n const transition = options.transition;\n return !!((phase === 'enter' ? options.transitionIn : options.transitionOut) || (transition && (transition.classes || (transition.name && transition.name.length > 0))));\n}\n\nfunction playsLeave(target: ComponentBase | ComponentBase[] | null): boolean {\n if (!target) return false;\n if (Array.isArray(target)) return target.some(t => !!t && !t.isDisposed && hasOwnTransition(t, 'leave'));\n return !target.isDisposed && hasOwnTransition(target, 'leave');\n}\n\nexport function cancelAnimationsDeep(target: any): void {\n if (!target || target.isDisposed) return;\n if (Array.isArray(target)) {\n target.forEach(cancelAnimationsDeep);\n return;\n }\n try { target.motif.options?.transition?.activeCssCancel?.(); } catch { }\n try {\n const anims = target.motif.options?.transition?.activeAnimations;\n if (Array.isArray(anims)) {\n anims.forEach((anim: any) => {\n try {\n if (anim && typeof anim.cancel === 'function') {\n anim.cancel();\n }\n } catch { }\n });\n anims.length = 0;\n }\n } catch { }\n try {\n if (target.controls && target.controls.items) {\n for (const child of target.controls.items) {\n cancelAnimationsDeep(child);\n }\n }\n } catch { }\n}\n\nexport async function disposeNavigationTarget(target: ComponentBase | ComponentBase[] | null, options: IDisposeOptions = { deep: true }): Promise<void> {\n if (!target) return;\n const list = Array.isArray(target) ? target : [target];\n await Promise.all(list.map(async (xr) => {\n if (!xr || xr.isDisposed) return;\n try {\n await xr.dispose(options);\n } catch (err) {\n reportError('MJX115', err);\n }\n }));\n}\n\nexport async function navigateHost(host: NavigationHost, page: ComponentBase | ComponentBase[], keepOldControl: boolean = false): Promise<void> {\n if (host.isDisposed || page == null) return;\n if (host.current !== null && host.current === (page as any)) return;\n\n const navigateId = ++host._latestNavigateId;\n host.isBusy = true;\n\n const complete = (value: any) => {\n if (host.isDisposed) return;\n if (navigateId !== host._latestNavigateId) return;\n const xP = resolveComponent(value);\n host.current = xP;\n try {\n if (Array.isArray(xP)) {\n host.controls.add(...xP);\n } else {\n host.controls.add(xP);\n }\n } catch (error) {\n reportError('MJX114', error);\n }\n host.isBusy = false;\n host.previouspage = xP;\n };\n\n if (!(host._navPending ?? 0) && host.current === null && !(page instanceof Promise)) {\n try {\n complete(page);\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n return;\n }\n\n host._navPending = (host._navPending ?? 0) + 1;\n const prevLock = host._navLock ?? Promise.resolve();\n host._navLock = (async () => {\n try {\n await prevLock;\n\n try { host._navAbort?.abort(); } catch { }\n host._navAbort = new AbortController();\n\n const oldPage = host.current;\n if (oldPage && !keepOldControl) {\n cancelAnimationsDeep(oldPage);\n cancelAnimationsDeep(host);\n const animated = playsLeave(oldPage);\n const leaving = disposeNavigationTarget(oldPage);\n if (animated) {\n leaving.catch(() => { });\n } else {\n await leaving;\n }\n }\n\n try {\n if (page instanceof Promise) {\n const caller = () => page;\n const lazyFrame = Lazy({ caller, options: { signal: host._navAbort?.signal } as any });\n complete(lazyFrame);\n } else {\n complete(page);\n }\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n } finally {\n host._navPending = Math.max(0, (host._navPending ?? 1) - 1);\n }\n })();\n await host._navLock;\n}\n","import { dom } from \"../core\";\nimport { Component } from \"../\";\nimport { ComponentBase, IDisposeOptions } from \"../\";\nimport { Lazy, LazyOptions } from \"../\";\nimport { disposeNavigationTarget, navigateHost } from \"./navigation\";\n\n\nexport class Frame extends Component {\n public current: ComponentBase | ComponentBase[] | null = null;\n public _latestNavigateId = 0;\n public _navLock: Promise<void> = Promise.resolve();\n public _navAbort?: AbortController;\n isBusy: boolean = false;\n constructor(props?: any) {\n super(dom.createComment(''), props);\n if (props && props.childs && Array.isArray(props.childs) && props.childs.length > 0) {\n this.controls.add(props.childs);\n }\n }\n public async dispose(options: IDisposeOptions = { deep: true }) {\n await disposeNavigationTarget(this.current, options);\n await super.dispose(options);\n }\n public async flush() {\n await disposeNavigationTarget(this.current);\n }\n protected override async _clear() {\n await disposeNavigationTarget(this.current);\n }\n previouspage: any;\n public async navigate(page: ComponentBase | ComponentBase[], keepOldControl: boolean = false) {\n await navigateHost(this, page, keepOldControl);\n }\n\n public async navigateLazy<T>(caller: () => Promise<T>, options?: LazyOptions<T>, keepOldControl: boolean = false) {\n const lazyFrame = Lazy({ caller, options });\n await this.navigate(lazyFrame, keepOldControl);\n }\n}\n","import { ReactiveEngine } from \"../ReactiveEngine\"\r\nimport { Flags, addArrayStack, closeSetup, hasOwn, isIntrinsicSymbol, isObject, pauseTracking, resetTracking, setupActive } from \"../common\"\r\nimport { track } from \"../reactivity-core\"\r\n\r\nconst ARRAY_MUTATORS = new Set(['push', 'pop', 'shift', 'unshift', 'splice', 'reverse', 'sort'])\r\n\r\nexport const NOT_META = Symbol('')\r\ntype MetaReader = (engine: ReactiveEngine, target: any, receiver: any) => unknown\r\n\r\nconst metaReaders = new Map<symbol, MetaReader>([\r\n [Flags.IS_REACTIVE, () => true],\r\n [Flags.IS_READONLY, engine => engine.isReadonly],\r\n [Flags.IS_SUPERFICIAL, engine => engine.superficial],\r\n [Flags.GET_SETUP, (_engine, target) => target],\r\n [Flags.RAW, (engine, target, receiver) => engine.ReactiveMap().get(target) === receiver ? target : NOT_META],\r\n])\r\n\r\nexport function readMeta(engine: ReactiveEngine, target: any, key: unknown, receiver: any): unknown {\r\n if (typeof key !== 'symbol') return NOT_META\r\n const reader = metaReaders.get(key)\r\n return reader === undefined ? NOT_META : reader(engine, target, receiver)\r\n}\r\n\r\nexport function createGetter(engine: ReactiveEngine) {\r\n return function (target: any, p: any, receiver: any) {\r\n const meta = readMeta(engine, target, p, receiver)\r\n if (meta !== NOT_META) return meta\r\n\r\n if (Array.isArray(target) && !engine.isReadonly) {\r\n const patched = engine.arrayMethods.get\r\n if (hasOwn(patched, p)) {\r\n const method = patched[p]\r\n if (ARRAY_MUTATORS.has(p)) addArrayStack(p)\r\n else track(target, p)\r\n return method\r\n }\r\n }\r\n if (setupActive) {\r\n pauseTracking();\r\n engine.track(target, p);\r\n closeSetup();\r\n resetTracking();\r\n }\r\n\r\n const value = Reflect.get(target, p, receiver)\r\n if (p === '__proto__' || isIntrinsicSymbol(p)) return value\r\n\r\n if (!engine.isReadonly) track(target, p)\r\n if (engine.superficial || !isObject(value)) return value\r\n return engine.reactive(value)\r\n }\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\";\nimport { ITERATE_KEY, getRaw, hasOwn, isNumericKey, isReadonly, removeArrayStack } from \"../common\";\nimport { trigger } from \"../reactivity-core\";\n\n\nexport function createSetter(engine: ReactiveEngine) {\n return function (target: any, p: any, newValue: any, receiver: any) {\n if (isReadonly(target)) {\n return false;\n }\n\n const isArray = Array.isArray(target);\n const oldValue = (target as any)[p];\n const oldLength = isArray ? target.length : 0;\n const numeric = isArray && isNumericKey(p);\n const hadKey = numeric ? Number(p) < oldLength : hasOwn(target, p);\n\n const res = Reflect.set(target, p, newValue, receiver);\n\n if (engine.onValueChanged) {\n try { engine.onValueChanged({ raw: target, proxy: receiver }, p); } catch { }\n }\n\n if (getRaw(target) !== getRaw(receiver)) {\n return res;\n }\n if (!isArray && hadKey && Object.is(newValue, oldValue)) {\n return res;\n }\n\n trigger(target, p);\n if (!isArray && !hadKey) {\n trigger(target, ITERATE_KEY);\n }\n if (numeric && !hadKey) {\n trigger(target, 'length');\n }\n if (isArray && p === 'length') {\n const newLength = Number(newValue);\n for (let i = newLength; i < oldLength; i++) {\n trigger(target, String(i));\n }\n }\n removeArrayStack();\n return res;\n }\n}\n","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { ITERATE_KEY, hasOwn, isIntrinsicSymbol, pauseTracking, resetTracking } from \"../common\";\r\nimport { track, trigger } from \"../reactivity-core\";\r\n\r\nexport function createOwn(engine: ReactiveEngine) {\r\n return function ownKeys(target: any) {\r\n const shapeKey = Array.isArray(target) ? 'length' : ITERATE_KEY;\r\n track(target, shapeKey);\r\n return Reflect.ownKeys(target);\r\n }\r\n}\r\n\r\nexport function createHas(engine: ReactiveEngine) {\r\n return function has(target: any, p: any) {\r\n const found = Reflect.has(target, p);\r\n if (isIntrinsicSymbol(p)) return found;\r\n track(target, p);\r\n return found;\r\n }\r\n}\r\n\r\nexport function createDelete(engine: ReactiveEngine) {\r\n return function deleteProperty(target: any, p: any) {\r\n pauseTracking()\r\n try {\r\n const isOwned = hasOwn(target, p);\r\n const result = Reflect.deleteProperty(target, p);\r\n if (isOwned) {\r\n if (Array.isArray(target)) {\r\n trigger(target, 'length');\r\n } else {\r\n trigger(target, p);\r\n trigger(target, ITERATE_KEY);\r\n }\r\n }\r\n return result\r\n } finally { \r\n resetTracking();\r\n }\r\n }\r\n}","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { getRaw, pauseTracking, resetTracking } from \"../common\";\r\n\r\ntype PatchKind = 'lookup' | 'order' | 'join' | 'structural';\r\n\r\nconst PATCHED_ARRAY_METHODS: ReadonlyArray<readonly [string, PatchKind]> = [\r\n ['includes', 'lookup'],\r\n ['indexOf', 'lookup'],\r\n ['lastIndexOf', 'lookup'],\r\n ['sort', 'order'],\r\n ['concat', 'join'],\r\n ['push', 'structural'],\r\n ['pop', 'structural'],\r\n ['shift', 'structural'],\r\n ['unshift', 'structural'],\r\n ['splice', 'structural'],\r\n ['reverse', 'structural'],\r\n];\r\n\r\nconst isLookupMiss = (outcome: unknown) => outcome === false || outcome === -1;\r\n\r\nexport class ArrayMethods {\r\n constructor(public engine: ReactiveEngine) { }\r\n get: Record<string, Function> = this.createArrayMethods();\r\n\r\n createArrayMethods(): Record<string, Function> {\r\n const table: Record<string, Function> = {};\r\n for (const [name, kind] of PATCHED_ARRAY_METHODS) {\r\n table[name] = this.patch(name, kind);\r\n }\r\n return table;\r\n }\r\n\r\n private patch(name: string, kind: PatchKind): Function {\r\n const owner = this;\r\n switch (kind) {\r\n case 'lookup':\r\n return function (this: unknown[], ...needles: any[]) {\r\n const source = getRaw(this) as any;\r\n owner.engine.track(source, 'length');\r\n const direct = source[name](...needles);\r\n if (!isLookupMiss(direct)) return direct;\r\n return source[name](...needles.map(needle => getRaw(needle)));\r\n };\r\n case 'order':\r\n return function (this: unknown[], ...args: any[]) {\r\n const source = getRaw(this) as any;\r\n const size = this.length;\r\n for (let index = 0; index < size; index++) {\r\n owner.engine.track(source, String(index));\r\n }\r\n const sorted = source[name].apply(this, args);\r\n owner.engine.track(source, name);\r\n return sorted;\r\n };\r\n case 'join':\r\n return function (this: unknown[], ...args: any[]) {\r\n return Array.prototype.concat.apply(this, args);\r\n };\r\n default:\r\n return function (this: unknown[], ...args: any[]) {\r\n pauseTracking();\r\n const source = getRaw(this) as any;\r\n try {\r\n return source[name].apply(this, args);\r\n } finally {\r\n resetTracking();\r\n }\r\n };\r\n }\r\n }\r\n\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\";\nimport { ITERATE_KEY, getRaw, hasOwn, isObject } from \"../common\";\nimport { track, trigger } from \"../reactivity-core\";\nimport { NOT_META, readMeta } from \"./getter\";\n\ntype AnyCollection = Map<any, any> | Set<any>;\n\nconst KEYS_KEY = Symbol('');\n\nfunction changed(target: object, key: unknown, keysChanged: boolean) {\n trigger(target, key as any);\n trigger(target, ITERATE_KEY);\n if (keysChanged) trigger(target, KEYS_KEY);\n}\n\nfunction lookupKey(target: AnyCollection, key: unknown) {\n return target.has(key) ? key : getRaw(key);\n}\n\nfunction wrapIterator(source: Iterator<any>, convert: (item: any) => any): IterableIterator<any> {\n return {\n next() {\n const step = source.next();\n return step.done ? step : { value: convert(step.value), done: false };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n}\n\nfunction createCollectionMethods(engine: ReactiveEngine): Record<PropertyKey, Function> {\n const wrap = (value: unknown) => isObject(value) ? engine.reactive(value) : value;\n const wrapEntry = (target: AnyCollection) =>\n target instanceof Map\n ? ([key, value]: [unknown, unknown]) => [key, wrap(value)]\n : ([value]: [unknown, unknown]) => { const item = wrap(value); return [item, item]; };\n\n return {\n get(this: Map<any, any>, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n track(target, found as any);\n return wrap(target.get(found));\n },\n has(this: AnyCollection, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n track(target, found as any);\n return target.has(found);\n },\n set(this: Map<any, any>, key: unknown, value: unknown) {\n const target = getRaw(this);\n const stored = lookupKey(target, key);\n const raw = getRaw(value);\n const existed = target.has(stored);\n const previous = target.get(stored);\n target.set(stored, raw);\n if (!existed) changed(target, stored, true);\n else if (!Object.is(previous, raw)) changed(target, stored, false);\n return this;\n },\n add(this: Set<any>, value: unknown) {\n const target = getRaw(this);\n const stored = lookupKey(target, value);\n if (!target.has(stored)) {\n target.add(stored);\n changed(target, stored, true);\n }\n return this;\n },\n delete(this: AnyCollection, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n const removed = target.delete(found);\n if (removed) changed(target, found, true);\n return removed;\n },\n clear(this: AnyCollection) {\n const target = getRaw(this);\n if (target.size === 0) return;\n const keys = Array.from(target.keys());\n target.clear();\n for (const key of keys) trigger(target, key);\n trigger(target, ITERATE_KEY);\n trigger(target, KEYS_KEY);\n },\n forEach(this: AnyCollection, callback: (value: any, key: any, collection: any) => void, thisArg?: unknown) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n const owner = this;\n const isMap = target instanceof Map;\n target.forEach((value: any, key: any) => {\n const item = wrap(value);\n callback.call(thisArg, item, isMap ? key : item, owner);\n });\n },\n keys(this: AnyCollection) {\n const target = getRaw(this);\n if (target instanceof Map) {\n track(target, KEYS_KEY);\n return target.keys();\n }\n track(target, ITERATE_KEY);\n return wrapIterator(target.keys(), wrap);\n },\n values(this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return wrapIterator(target.values(), wrap);\n },\n entries(this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return wrapIterator(target.entries(), wrapEntry(target));\n },\n [Symbol.iterator](this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return target instanceof Map\n ? wrapIterator(target.entries(), wrapEntry(target))\n : wrapIterator(target.values(), wrap);\n },\n };\n}\n\nexport function createCollectionHandler(engine: ReactiveEngine): ProxyHandler<AnyCollection> {\n const methods = createCollectionMethods(engine);\n return {\n get(target, key, receiver) {\n const meta = readMeta(engine, target, key, receiver);\n if (meta !== NOT_META) return meta;\n if (key === 'size') {\n track(target, ITERATE_KEY);\n return target.size;\n }\n if ((typeof key === 'string' || key === Symbol.iterator) && hasOwn(methods, key) && key in target) {\n return methods[key as any];\n }\n const value = Reflect.get(target, key, target);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n };\n}\n","\r\nimport { TargetType, UnwrapValueRefs, getRaw, getTargetType, isObject, pauseTracking, resetTracking, enableTracking } from \"./common\";\r\nimport { createGetter } from \"./handlers/getter\";\r\nimport { createSetter } from \"./handlers/setter\";\r\nimport { createDelete, createHas, createOwn } from \"./handlers/orhers\";\r\nimport { ArrayMethods } from \"./handlers/ArrayMethods\";\r\nimport { createCollectionHandler } from \"./handlers/collections\";\r\nimport { LinkedList } from \"../common/LinkedList\";\r\nimport { track, trigger } from \"./reactivity-core\";\r\nexport const ReactiveEngineMapper = new WeakSet<ReactiveEngine>();\r\n\r\nconst AllreactiveMap: WeakMap<any, any> = new WeakMap();\r\nfunction armgetter() { return AllreactiveMap; }\r\n\r\n\r\nexport class ReactiveEngine {\r\n _gci: any;\r\n public startGc(_intervalMs: number = 10000) { /* no-op */ }\r\n public stopGc() { if (this._gci) { try { clearInterval(this._gci); } catch { } this._gci = undefined; } }\r\n constructor() {\r\n ReactiveEngineMapper.add(this);\r\n this.startGc();\r\n }\r\n \r\n DisposeMapper = new LinkedList();\r\n arrayTriggerCache = new Map<any, { method: string, key: any, value: any }>();\r\n ReactiveMap: () => WeakMap<any, any> = () => armgetter();\r\n activeCallback: any;\r\n isReadonly: boolean = false;\r\n superficial: boolean = false;\r\n arrayMethods: ArrayMethods = new ArrayMethods(this);\r\n arrayHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n }\r\n deepHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n } as ProxyHandler<any>\r\n collectionHandler = createCollectionHandler(this) as ProxyHandler<any>\r\n reactive<T>(model: T): UnwrapValueRefs<T> {\r\n\r\n var self = this;\r\n if (!isObject(model)) {\r\n model = { value: model } as any;\r\n }\r\n const targetType = getTargetType(model);\r\n if (targetType === TargetType.SYSTEM || TargetType.INVALID) {\r\n return model as any\r\n }\r\n\r\n let existingProxy = AllreactiveMap.get(model)\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n existingProxy = AllreactiveMap.get(getRaw(model))\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n // if (targetType === TargetType.INVALID) {\r\n if (targetType === TargetType.COLLECTION) {\r\n var proxy = new Proxy(model, this.collectionHandler);\r\n AllreactiveMap.set(model, proxy);\r\n return proxy;\r\n } else if (Array.isArray(model)) {\r\n var proxy = new Proxy(model, this.arrayHandler);\r\n // var original = Object.getPrototypeOf(proxy);\r\n // original[\"copy\"] = () => { return model; }\r\n // return \"copied\";\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n } else {\r\n var proxy = new Proxy(model, this.deepHandler);\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n }\r\n }\r\n\r\n clearModel(model: any): void {\r\n if (model != null && model != undefined) {\r\n Object.keys(model).forEach((key) => {\r\n if (typeof model[key] === 'object') {\r\n if (AllreactiveMap.has(model[key]) || AllreactiveMap.has(getRaw(model[key]))) {\r\n this.clearModel(model[key])\r\n }\r\n }\r\n AllreactiveMap.delete(getRaw(model[key]));\r\n AllreactiveMap.delete(model[key]);\r\n })\r\n AllreactiveMap.delete(getRaw(model));\r\n AllreactiveMap.delete(model);\r\n }\r\n }\r\n\r\n track(model: any, key: any) {\r\n track(model, key);\r\n }\r\n trigger(model: any, key: any, value: any) {\r\n trigger(model, key);\r\n }\r\n ArrayTrigger(target: any, key: any, ...args: any) {\r\n this.trigger(target, key, args);\r\n }\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any;\r\n toRaw(item: any) {\r\n return JSON.parse(JSON.stringify(this.deepClone(item)));\r\n }\r\n deepClone(item: any) {\r\n var self = this;\r\n if (!item) { return item; }\r\n var types = [Number, String, Boolean],\r\n result;\r\n types.forEach(function (type) {\r\n if (item instanceof type) {\r\n result = type(item);\r\n }\r\n });\r\n\r\n if (typeof result == \"undefined\") {\r\n if (Object.prototype.toString.call(item) === \"[object Array]\") {\r\n result = [];\r\n item.forEach(function (child: any, index: any, array: any[]) {\r\n result[index] = self.deepClone(child);\r\n });\r\n } else if (typeof item == \"object\") {\r\n if (item.nodeType && typeof item.cloneNode == \"function\") {\r\n result = item.cloneNode(true);\r\n } else if (!item.prototype) {\r\n if (item instanceof Date) {\r\n result = new Date(item);\r\n } else {\r\n result = <any>{};\r\n for (var i in item) {\r\n result[i] = self.deepClone(item[i]);\r\n }\r\n }\r\n } else {\r\n if (false && item.constructor) {\r\n result = new item.constructor();\r\n } else {\r\n result = item;\r\n }\r\n }\r\n } else {\r\n result = item;\r\n }\r\n }\r\n return result;\r\n }\r\n pauseTracking() {\r\n pauseTracking();\r\n }\r\n enableTracking() {\r\n enableTracking();\r\n }\r\n resetTracking() {\r\n resetTracking();\r\n }\r\n dispose() {\r\n var cnt = true;\r\n this.stopGc();\r\n while (cnt == true) {\r\n if (this.DisposeMapper.size > 0) {\r\n const element = this.DisposeMapper.pop();\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n AllreactiveMap.delete(element);\r\n } else {\r\n cnt = false\r\n }\r\n }\r\n this.DisposeMapper.clear();\r\n ReactiveEngineMapper.delete(this);\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n }\r\n\r\n}","\r\nimport { ReactiveEngine } from \"./ReactiveEngine\";\r\nimport { UnwrapValueRefs } from \"./common\";\r\nimport { Signal, Computed, LazyComputed } from \"./Signal\";\r\nexport const engine = new ReactiveEngine();\r\n\r\n\r\n/* @DEV-ONLY */ const reactiveRegistry: Array<{ name: string; value: any; type: string }> = [];\r\nconst isDevRegistryEnabled = () => {\r\n try {\r\n const g = globalThis as any;\r\n if (!g.__MOTIF_DEV__) return false;\r\n if (g.__MOTIF_STORE_REGISTRY__ !== reactiveRegistry) g.__MOTIF_STORE_REGISTRY__ = reactiveRegistry;\r\n return true;\r\n } catch { return false; }\r\n};\r\n\r\nexport function reactiveConfig(config: {\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any\r\n onItemAdded?: (model: any, key: any, value: any) => any\r\n onItemRemoved?: (model: any, key: any, value: any) => any\r\n}) {\r\n engine.onValueChanged = config.onValueChanged;\r\n}\r\n\r\n// export * from \"./IStoreBinder\";\r\n\r\n// export function reactiveListeners(model?: any) {\r\n// if (model) {\r\n// /* @DEV-ONLY */return debugGetDeps(model) ?? new Map();\r\n// return debugGetDepMap();\r\n\r\n\r\nexport function reactive<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'reactive';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\nexport function useModel<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n\r\n\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'useModel';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */ }\r\n/* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\n\r\n\r\nexport function clearModel(model: any) {\r\n return engine.clearModel(model);\r\n}\r\n\r\n \r\n\r\nexport function deepClone(item: any) {\r\n return engine.deepClone(item);\r\n}\r\n\r\nexport function createSignal<T>(initialValue: T): Signal<T> {\r\n const sig = new Signal(initialValue);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `signal_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: sig.value, type: 'signal' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return sig;\r\n}\r\n\r\nexport function createComputed<T>(getter: () => T): Computed<T> {\r\n const comp = new Computed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `computed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: comp.value, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return comp;\r\n}\r\n\r\nexport function createLazyComputed<T>(getter: () => T): LazyComputed<T> {\r\n const comp = new LazyComputed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `lazyComputed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: undefined, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */} catch { }\r\n return comp;\r\n}\r\n\r\nexport { ReactiveEngine };\r\nexport { configureReactivityLeakMonitor, track, trigger, effect, createScheduledEffect, asyncTracking, untracked } from \"./reactivity-core\";\r\nexport type { EffectFn, ScheduledEffect, AsyncTrackingToken } from \"./reactivity-core\";\r\nexport * from \"./Signal\";\r\nimport { untracked } from \"./reactivity-core\";\r\n","import type { ServiceLifetime } from \"./ServiceCollection\";\r\n\r\nexport const autoRegistry = new Map<any, { lifetime?: ServiceLifetime, deps?: any[] }>();\r\n","import { ServiceProvider } from \"./ServiceProvider\";\nimport { autoRegistry } from \"./autoRegistry\";\nimport { motifError, reportWarning } from \"../common/diagnostics\";\n\nexport type ServiceLifetime = 'transient' | 'singleton' | 'scoped';\n\nexport type ServiceImplementation<V> = V extends abstract new (...args: any[]) => any\n ? V\n : V extends (...args: any[]) => any\n ? 'Use { useValue: fn } or { useFactory: fn } to register a function'\n : V;\n\nfunction isConstructor(fn: Function): boolean {\n try {\n Reflect.construct(String, [], fn);\n return true;\n } catch {\n return false;\n }\n}\n\nexport interface ServiceDescriptor<T = any> {\n token: any;\n lifetime: ServiceLifetime;\n useClass?: new (...args: any[]) => T;\n useFactory?: (...args: any[]) => T | Promise<T>;\n useValue?: T;\n deps?: any[];\n}\n\nexport class ServiceCollection {\n private descriptors: Map<any, ServiceDescriptor> = new Map();\n\n public reset(): void {\n this.descriptors.clear();\n }\n public addTransient<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'transient');\n }\n public addSingleton<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'singleton');\n }\n public addScoped<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'scoped');\n }\n\n private _add(token: any, impl: any, lifetime: ServiceLifetime) {\n const desc: ServiceDescriptor = { token, lifetime };\n if (impl && typeof impl === 'object' && (impl.useClass || impl.useFactory || Object.prototype.hasOwnProperty.call(impl, 'useValue') || Array.isArray(impl.deps))) {\n desc.useClass = impl.useClass;\n desc.useFactory = impl.useFactory;\n desc.useValue = impl.useValue;\n desc.deps = Array.isArray(impl.deps) ? impl.deps : undefined;\n try {\n const sources = [\n desc.useClass ? 'useClass' : null,\n desc.useFactory ? 'useFactory' : null,\n (desc.useValue !== undefined) ? 'useValue' : null\n ].filter(Boolean);\n if ((sources as any).length > 1) {\n reportWarning('MJX410', [this._tokenName(token), sources.join(', ')], { token });\n }\n if (impl.deps && !Array.isArray(impl.deps)) {\n reportWarning('MJX411', [this._tokenName(token)], { token });\n }\n } catch { /* no-op */ }\n if (desc.useValue && typeof (desc.useValue as any).then === 'function') {\n const p = desc.useValue as any;\n desc.useFactory = async () => await p;\n desc.useValue = undefined;\n }\n } else if (typeof impl === 'function') {\n if (!isConstructor(impl)) throw motifError('MJX413', this._tokenName(token));\n desc.useClass = impl as any;\n } else {\n if (impl && typeof (impl as any).then === 'function') {\n const p = impl as any;\n desc.useFactory = async () => await p;\n } else {\n desc.useValue = impl;\n }\n }\n this.descriptors.set(token, desc);\n }\n\n private _tokenName(token: any): string {\n if (typeof token === 'string') return token;\n if (typeof token === 'symbol') return token.toString();\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n }\n\n public getDescriptor(token: any): ServiceDescriptor | null {\n const existing = this.descriptors.get(token);\n if (existing) return existing;\n const meta = autoRegistry.get(token);\n if (meta) {\n this._add(token, {\n useClass: token,\n deps: meta.deps,\n useValue: undefined,\n useFactory: undefined\n }, meta.lifetime || 'transient');\n return this.descriptors.get(token) || null;\n }\n return null;\n }\n\n /** `@Injectable` ile işaretlenmiş ama henüz kaydedilmemiş bir token var mı? */\n public canAutoRegister(token: any): boolean {\n return !this.descriptors.has(token) && autoRegistry.has(token);\n }\n\n public getService(token: any): ServiceDescriptor | null {\n return this.getDescriptor(token);\n }\n\n public buildServiceProvider(): ServiceProvider {\n return new ServiceProvider(this);\n }\n\n\n public has(token: any): boolean {\n return this.descriptors.has(token);\n }\n\n\n public remove(token: any): boolean {\n return this.descriptors.delete(token);\n }\n\n\n public replace<V>(token: any, impl: ServiceImplementation<V>, lifetime?: ServiceLifetime): void {\n const existing = this.descriptors.get(token);\n const lt: ServiceLifetime = lifetime ?? (existing?.lifetime ?? 'transient');\n this._add(token, impl, lt);\n }\n\n\n public tryAddTransient<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'transient');\n return true;\n }\n public tryAddSingleton<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'singleton');\n return true;\n }\n public tryAddScoped<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'scoped');\n return true;\n }\n\n public autoRegisterInjectables() {\n for (const [target, meta] of autoRegistry.entries()) {\n if (this.descriptors.has(target)) continue;\n this._add(target, {\n useClass: target,\n deps: meta.deps,\n useValue: undefined,\n useFactory: undefined\n }, meta.lifetime || \"transient\");\n }\n }\n}","import type { RouteItem } from \"../routing/RouteItem\";\r\nimport { reportWarning } from \"../common/diagnostics\";\r\n\r\ntype RouteNode = RouteItem & { childs?: RouteItem[] };\r\n\r\nfunction joinPaths(parent: string, child: string): string {\r\n const p = (parent || '').trim();\r\n const c = (child || '').trim();\r\n const base = p && p !== '/' && p.endsWith('/') ? p.slice(0, -1) : p;\r\n if (c === '/') {\r\n return base || '/';\r\n }\r\n const seg = c ? (c.startsWith('/') ? c : '/' + c) : '';\r\n if (!base || base === '/') {\r\n return seg || '/';\r\n }\r\n return base + seg;\r\n}\r\n\r\nexport function lintRoutes(routes: RouteNode[]): void {\r\n const seenFull: Map<string, number> = new Map();\r\n const seenAlias: Map<string, number> = new Map();\r\n\r\n function visit(node: RouteNode, parentPath: string, depth: number) {\r\n const rawPath = node.path ?? '';\r\n const path = String(rawPath);\r\n const full = parentPath === '' ? path : joinPaths(parentPath, path);\r\n const isDefaultSlash = depth > 0 && path.trim() === '/';\r\n const isEmptyPath = path.trim() === '';\r\n\r\n if (isEmptyPath) {\r\n reportWarning('MJX310', [parentPath || '/'], { parentPath, path });\r\n }\r\n\r\n if (depth > 0 && path.length > 0 && path !== '/' && !path.startsWith('/') && !path.startsWith('*')) {\r\n reportWarning('MJX311', [path, parentPath || '/'], { parentPath, path });\r\n }\r\n\r\n if (parentPath && full === parentPath) {\r\n if (!isDefaultSlash && !isEmptyPath) {\r\n reportWarning('MJX312', [full], { parentPath, childPath: path });\r\n }\r\n }\r\n\r\n const cnt = (seenFull.get(full) || 0) + 1;\r\n seenFull.set(full, cnt);\r\n if (cnt > 1) {\r\n if (!isDefaultSlash && !isEmptyPath) {\r\n reportWarning('MJX313', [full], { full });\r\n }\r\n }\r\n\r\n const aliases = node.alias == null ? [] : (Array.isArray(node.alias) ? node.alias : [node.alias]);\r\n for (const rawAlias of aliases) {\r\n const alias = String(rawAlias ?? '');\r\n if (depth > 0 && alias.length > 0 && alias !== '/' && !alias.startsWith('/') && !alias.startsWith('*')) {\r\n reportWarning('MJX314', [alias, parentPath || '/'], { parentPath, alias });\r\n }\r\n const aliasFull = parentPath === '' ? alias : joinPaths(parentPath, alias);\r\n if (aliasFull === full) {\r\n reportWarning('MJX315', [aliasFull], { full, alias });\r\n }\r\n const aliasCount = (seenAlias.get(aliasFull) || 0) + 1;\r\n seenAlias.set(aliasFull, aliasCount);\r\n if (aliasCount > 1) {\r\n reportWarning('MJX316', [aliasFull], { aliasFull });\r\n }\r\n }\r\n\r\n\r\n const children = (node as any).childs as RouteNode[] | undefined;\r\n if (Array.isArray(children)) {\r\n for (const ch of children) visit(ch, full, depth + 1);\r\n }\r\n }\r\n\r\n for (const r of routes) visit(r as RouteNode, '', 0);\r\n}\r","import { Application, Component } from '..';\r\nimport { getWarnings, on, ensureDevtoolsFlagInitialized, isRequestedByFlag, getRoutes } from './devbus';\r\nimport { lintRoutes } from './routeLinter';\r\nimport { reportWarning } from '../common/diagnostics';\r\nlet overlayHost: HTMLDivElement | null = null;\r\nlet visible = false;\r\n\r\nfunction render() {\r\n return;\r\n // if (!overlayHost) return;\r\n // const warnings = getWarnings();\r\n\r\n // const bar = document.createElement('div');\r\n // bar.style.cssText = 'display:flex; align-items:center; gap:8px; padding:6px 8px; background:#111; color:#fff; border-bottom:1px solid #333;';\r\n // const title = document.createElement('div');\r\n // title.style.fontWeight = '600';\r\n // const closeBtn = document.createElement('button');\r\n // closeBtn.style.cssText = 'margin-left:auto; background:#333; color:#fff; border:0; padding:2px 6px; cursor:pointer;';\r\n\r\n // const list = document.createElement('div');\r\n // list.style.cssText = 'max-height:40vh; overflow:auto; padding:8px; background:#181818; color:#ddd; font:12px/1.4 monospace;';\r\n // for (const w of warnings) {\r\n // const item = document.createElement('div');\r\n // item.style.cssText = 'padding:6px 8px; border:1px solid #333; border-radius:4px; margin-bottom:6px; background:#1f1f1f;';\r\n // const code = document.createElement('div');\r\n // code.style.cssText = 'color:#ffb86c; font-weight:700;';\r\n // const msg = document.createElement('div');\r\n // const det = document.createElement('pre');\r\n // det.textContent = w.details ? JSON.stringify(w.details, null, 2) : '';\r\n // det.style.cssText = 'white-space:pre-wrap; color:#aaa; margin:6px 0 0 0;';\r\n // if (w.details) item.appendChild(det);\r\n}\r\n\r\nexport function toggle(force?: boolean) {\r\n if (!overlayHost) return;\r\n visible = typeof force === 'boolean' ? force : !visible;\r\n overlayHost.style.display = visible ? 'block' : 'none';\r\n if (visible) render();\r\n}\r\n\r\nexport function initOverlayIfEnabled() {\r\n ensureDevtoolsFlagInitialized();\r\n if (!isRequestedByFlag()) return;\r\n try {\r\n if (!overlayHost) {\r\n overlayHost = document.createElement('div');\r\n overlayHost.style.cssText = 'position:fixed; left:12px; bottom:12px; right:12px; z-index:2147483647; background:#111; color:#fff; border:1px solid #333; border-radius:8px; box-shadow:0 4px 14px rgba(0,0,0,0.4); display:none;';\r\n document.body.appendChild(overlayHost);\r\n window.addEventListener('keydown', (e) => {\r\n try {\r\n if ((e.ctrlKey || e.metaKey) && e.key === '`') {\r\n e.preventDefault();\r\n toggle();\r\n }\r\n } catch { }\r\n });\r\n on((ev) => { if (ev.type === 'warning' && visible) render(); });\r\n }\r\n } catch { }\r\n}\r\n\r\nlet devBtn: HTMLButtonElement | null = null;\r\nlet inAppPanelMounted = false;\r\nfunction ensureInAppPanel() {\r\n if (inAppPanelMounted) return;\r\n try {\r\n (async () => {\r\n try {\r\n //var mod = await import(\"@motifjs/devtools-inapp\");\r\n\r\n //const mod = mountInAppPanel;//await (Function('return import(\"@motifjs/devtools-inapp\")')() as Promise<any>);\r\n\r\n //if (mod && typeof mod.mountInAppPanel === 'function') {\r\n } catch (err) {\r\n reportWarning('MJX611', [], err);\r\n }\r\n })();\r\n } catch { }\r\n}\r\nexport function initDevtoolsButton() {\r\n try {\r\n\r\n if (typeof document === 'undefined') return;\r\n if (devBtn) return;\r\n devBtn = document.createElement('button');\r\n devBtn.setAttribute('type', 'button');\r\n devBtn.setAttribute('aria-label', 'Open MotifJS DevTools');\r\n devBtn.textContent = 'Dev';\r\n devBtn.style.cssText = [\r\n 'position:fixed',\r\n 'right:12px',\r\n 'bottom:12px',\r\n 'z-index:2147483646',\r\n 'width:40px',\r\n 'height:40px',\r\n 'border-radius:20px',\r\n 'border:1px solid #333',\r\n 'background:#111',\r\n 'color:#fff',\r\n 'font-weight:700',\r\n 'cursor:pointer',\r\n 'box-shadow:0 4px 10px rgba(0,0,0,0.35)'\r\n ].join(';');\r\n devBtn.onclick = () => {\r\n try {\r\n (window as any).__motif_DEVTOOLS = true;\r\n } catch { }\r\n try {\r\n ensureDevtoolsFlagInitialized();\r\n initOverlayIfEnabled();\r\n toggle(true);\r\n ensureInAppPanel();\r\n try {\r\n const rs = getRoutes();\r\n if (rs) lintRoutes(rs);\r\n } catch { }\r\n } catch { }\r\n };\r\n document.body.appendChild(devBtn);\r\n try { const qs = location.search || ''; if (Application.main.isDevelopmentModeEnabled) ensureInAppPanel(); } catch { }\r\n } catch { }\r\n}\r","export class RouterViewRegistry {\r\n private static outlets: Map<string, Map<string, any>> = new Map();\r\n static register(name: string, scopeId: string, instance: any) {\r\n if (!this.outlets.has(name)) this.outlets.set(name, new Map());\r\n this.outlets.get(name)!.set(scopeId, instance);\r\n }\r\n static unregister(name: string, scopeId: string) {\r\n this.outlets.get(name)?.delete(scopeId);\r\n if (this.outlets.get(name)?.size === 0) this.outlets.delete(name);\r\n }\r\n static find(name: string, scopeId?: string): any | null {\r\n if (scopeId && this.outlets.get(name)?.has(scopeId)) {\r\n return this.outlets.get(name)!.get(scopeId);\r\n }\r\n const group = this.outlets.get(name);\r\n if (group && group.size > 0) return Array.from(group.values())[0];\r\n return null;\r\n }\r\n static findAll(name: string): any[] {\r\n return Array.from(this.outlets.get(name)?.values() ?? []);\r\n }\r\n}\r","import { Component } from \"..\";\r\nimport { ComponentBase, IBaseProp } from \"../\";\r\nimport { disposeNavigationTarget, navigateHost } from \"../component/navigation\";\r\nimport { RouterViewRegistry } from \"./RouterViewRegistry\";\r\n\r\nexport interface RouterViewProps extends IBaseProp<{ name?: string }> { }\r\nexport const RouterViewBuilt = Symbol.for(\"RouterView.built\");;\r\nexport class RouterView extends Component {\r\n constructor(props: IBaseProp<RouterViewProps>) {\r\n super(props);\r\n }\r\n public _navLock: Promise<void> = Promise.resolve();\r\n public _navAbort?: AbortController;\r\n public get __isRouterView(): boolean {\r\n return true;\r\n }\r\n public get scopeId(): string {\r\n let p: any = this.parent, ids: string[] = [];\r\n while (p) {\r\n ids.push(p.constructor?.name ?? '');\r\n p = p.parent;\r\n }\r\n return ids.join('>');\r\n }\r\n public disposingChilds = false;\r\n previouspage: any;\r\n current: ComponentBase | ComponentBase[] | null = null;\r\n _latestNavigateId = 0;\r\n isBusy: boolean = false;\r\n\r\n public async navigate(page: ComponentBase | ComponentBase[], keepOldControl: boolean = false) {\r\n await navigateHost(this, page, keepOldControl);\r\n }\r\n\r\n public async disposeTarget(target: ComponentBase | ComponentBase[] | null): Promise<void> {\r\n await disposeNavigationTarget(target);\r\n }\r\n public override onBuilt() {\r\n try {\r\n\r\n RouterViewRegistry.register(this.props.name ?? 'default', this.scopeId, this);\r\n let p: any = this.parent;\r\n while (p) {\r\n p.motif.trigger(RouterViewBuilt, this);\r\n p = p.parent;\r\n }\r\n } catch { /* ignore */ }\r\n }\r\n\r\n public override onDisposed() {\r\n try {\r\n RouterViewRegistry.unregister(this.props.name ?? 'default', this.scopeId);\r\n } catch { /* ignore */ }\r\n }\r\n\r\n}","\nimport type { ScrollMemoryOptions } from './common';\n\nexport interface ScrollViewport {\n scrollTop(): number;\n scrollTo(top: number): void;\n scrollToAnchor(id: string): boolean;\n}\n\nconst STORAGE_KEY = 'motifjs:scroll';\nconst DEFAULT_LIMIT = 60;\nconst DEFAULT_SETTLE_MS = 1200;\n\nconst USER_INPUT = ['wheel', 'touchstart', 'keydown', 'mousedown'] as const;\n\nexport class ScrollMemory {\n private readonly options: ScrollMemoryOptions;\n private readonly viewport: ScrollViewport;\n private readonly positions = new Map<string, number>();\n\n private currentKey = '';\n\n private visited = false;\n private restoring = false;\n private cancelFrame: (() => void) | null = null;\n private disarmAbort: (() => void) | null = null;\n private readonly offs: Array<() => void> = [];\n\n public locationAnchor = true;\n\n constructor(options: ScrollMemoryOptions = {}, viewport?: ScrollViewport) {\n this.options = options;\n this.viewport = viewport ?? (options.container ? containerViewport(options.container) : windowViewport());\n this.load();\n\n try {\n if (typeof history !== 'undefined' && 'scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n } catch { /* salt okunur bırakan gömülü tarayıcılar */ }\n\n if (typeof window !== 'undefined') {\n this.offs.push(listen(window, 'pagehide', () => this.persistNow()));\n this.offs.push(listen(document, 'visibilitychange', () => {\n if (document.visibilityState === 'hidden') this.persistNow();\n }));\n }\n }\n\n public leaving(): void {\n this.cancelRestore();\n if (!this.visited) return;\n this.remember(this.currentKey, this.viewport.scrollTop());\n this.persist();\n }\n\n public arrived(uri: string): void {\n this.visited = true;\n const { path, hash } = splitUri(uri);\n this.currentKey = this.keyOf(path);\n this.restore(this.currentKey, this.options.anchor === false ? '' : hash || (this.locationAnchor ? locationHash() : ''));\n }\n\n public saved(key: string): number {\n return this.positions.get(this.keyOf(splitUri(key).path)) ?? 0;\n }\n\n public dispose(): void {\n this.cancelRestore();\n this.persistNow();\n for (const off of this.offs.splice(0)) off();\n this.positions.clear();\n }\n\n\n private keyOf(path: string): string {\n const key = this.options.key ? this.options.key(path) : path;\n return key || '/';\n }\n\n private remember(key: string, top: number): void {\n const limit = this.options.limit ?? DEFAULT_LIMIT;\n this.positions.delete(key);\n this.positions.set(key, Math.max(0, Math.round(top)));\n while (this.positions.size > limit) {\n const oldest = this.positions.keys().next();\n if (oldest.done) break;\n this.positions.delete(oldest.value);\n }\n }\n\n private restore(key: string, anchor: string): void {\n this.cancelRestore();\n\n const target = this.positions.get(key) ?? 0;\n\n if (!anchor && target <= 0) {\n if (this.options.top !== false) this.viewport.scrollTo(0);\n return;\n }\n\n this.restoring = true;\n const settleMs = this.options.settleMs ?? DEFAULT_SETTLE_MS;\n const startedAt = Date.now();\n\n const attempt = (): void => {\n this.cancelFrame = null;\n const done = anchor ? this.viewport.scrollToAnchor(anchor) : this.reached(target);\n if (done || Date.now() - startedAt >= settleMs) {\n this.cancelRestore();\n this.remember(key, this.viewport.scrollTop());\n return;\n }\n this.armAbort();\n this.cancelFrame = frame(attempt);\n };\n attempt();\n }\n\n private reached(target: number): boolean {\n this.viewport.scrollTo(target);\n return this.viewport.scrollTop() >= target - 1;\n }\n\n private armAbort(): void {\n if (this.disarmAbort || typeof window === 'undefined') return;\n const abort = () => this.cancelRestore();\n const removers = USER_INPUT.map((type) => listen(window, type, abort, { passive: true }));\n this.disarmAbort = () => { for (const remove of removers) remove(); };\n }\n\n private cancelRestore(): void {\n this.cancelFrame?.();\n this.cancelFrame = null;\n this.disarmAbort?.();\n this.disarmAbort = null;\n this.restoring = false;\n }\n private persistNow(): void {\n if (this.visited && !this.restoring) {\n this.remember(this.currentKey, this.viewport.scrollTop());\n }\n this.persist();\n }\n\n private get storage(): Storage | null {\n if (this.options.persist === false) return null;\n try {\n return typeof sessionStorage === 'undefined' ? null : sessionStorage;\n } catch {\n return null;\n }\n }\n\n private persist(): void {\n const storage = this.storage;\n if (!storage) return;\n try {\n storage.setItem(STORAGE_KEY, JSON.stringify([...this.positions]));\n } catch {\n }\n }\n\n private load(): void {\n const storage = this.storage;\n if (!storage) return;\n try {\n const raw = storage.getItem(STORAGE_KEY);\n if (!raw) return;\n const parsed: unknown = JSON.parse(raw);\n if (!Array.isArray(parsed)) return;\n for (const pair of parsed) {\n if (!Array.isArray(pair) || typeof pair[0] !== 'string') continue;\n const top = Number(pair[1]);\n if (Number.isFinite(top) && top > 0) this.positions.set(pair[0], top);\n }\n } catch {\n }\n }\n}\n\n/** Gerçek pencere (`documentElement`). */\nfunction windowViewport(): ScrollViewport {\n return {\n scrollTop: () => {\n try { return window.scrollY || document.documentElement?.scrollTop || 0; } catch { return 0; }\n },\n scrollTo: (top) => {\n try { window.scrollTo(0, top); } catch { }\n },\n scrollToAnchor: (id) => {\n try {\n const node = document.getElementById(id);\n if (!node) return false;\n node.scrollIntoView();\n return true;\n } catch { return false; }\n },\n };\n}\n\nfunction containerViewport(container: NonNullable<ScrollMemoryOptions['container']>): ScrollViewport {\n const fallback = windowViewport();\n const resolve = (): HTMLElement | null => {\n try {\n if (typeof container === 'string') return document.querySelector(container) as HTMLElement | null;\n if (typeof container === 'function') return container() ?? null;\n return container;\n } catch { return null; }\n };\n return {\n scrollTop: () => {\n const el = resolve();\n if (!el) return fallback.scrollTop();\n return el.scrollTop || 0;\n },\n scrollTo: (top) => {\n const el = resolve();\n if (!el) { fallback.scrollTo(top); return; }\n try { el.scrollTop = top; } catch { }\n },\n scrollToAnchor: (id) => fallback.scrollToAnchor(id),\n };\n}\n\n/** `/docs/x#bolum` → `{ path: '/docs/x', hash: 'bolum' }`. */\nfunction splitUri(uri: string): { path: string; hash: string } {\n const index = uri.indexOf('#');\n if (index < 0) return { path: uri, hash: '' };\n return { path: uri.slice(0, index) || '/', hash: decodeHash(uri.slice(index + 1)) };\n}\n\nfunction locationHash(): string {\n try {\n const hash = location?.hash ?? '';\n return hash.length > 1 ? decodeHash(hash.slice(1)) : '';\n } catch { return ''; }\n}\n\nfunction decodeHash(value: string): string {\n try { return decodeURIComponent(value); } catch { return value; }\n}\n\nfunction frame(run: () => void): () => void {\n if (typeof requestAnimationFrame !== 'function') {\n const id = setTimeout(run, 16);\n return () => clearTimeout(id);\n }\n const id = requestAnimationFrame(run);\n return () => cancelAnimationFrame(id);\n}\n\nfunction listen(\n target: EventTarget,\n type: string,\n handler: () => void,\n options?: AddEventListenerOptions,\n): () => void {\n try {\n target.addEventListener(type, handler, options);\n return () => { try { target.removeEventListener(type, handler, options); } catch { } };\n } catch {\n return () => { };\n }\n}","import { ComponentBase, notifyDeactivated } from \"../\";\nimport { disposeNavigationTarget, hasOwnTransition } from \"../component/navigation\";\nimport { reportError } from \"../common/diagnostics\";\nimport type { NavigationDirection, RouteItem, StackEntryInfo, StackOptions, StackTransitionContext } from \"./\";\n\nexport type HistoryPoint = { index: number; session: string };\n\nexport type StackNavigation = {\n direction: NavigationDirection;\n from: HistoryPoint | null;\n to: HistoryPoint | null;\n uri: string;\n};\n\ntype SavedScroll = Array<[Element, number, number]>;\n\ntype SavedPresentation = {\n style: string | null;\n inert: boolean;\n ariaHidden: string | null;\n};\n\nexport type RetainedEntry = {\n point: HistoryPoint;\n uri: string;\n chain: RouteItem[];\n instances: ComponentBase[];\n top: ComponentBase;\n topIndex: number;\n outlet: any;\n attached: boolean;\n hidden: boolean;\n pendingDetach: boolean;\n saved: SavedPresentation | null;\n scroll: SavedScroll;\n};\n\ntype Gesture = {\n startX: number;\n startY: number;\n lastX: number;\n samples: Array<[number, number]>;\n dragging: boolean;\n width: number;\n top: HTMLElement;\n topSaved: string | null;\n under: RetainedEntry | null;\n underSaved: string | null;\n offs: Array<() => void>;\n};\n\nconst STORAGE_KEY = 'motifjs:stack';\nconst SLIDE_OFFSET = 30;\nconst EASING = 'cubic-bezier(0.2, 0.8, 0.2, 1)';\n\nconst isElement = (node: any): node is HTMLElement => !!node && node.nodeType === 1 && !!node.style;\n\nexport { hasOwnTransition };\n\nexport function markDirection(component: ComponentBase | null | undefined, direction: NavigationDirection): void {\n const el = component?.element as any;\n if (!component || component.isDisposed || !isElement(el)) return;\n try { el.setAttribute('data-nav-direction', direction); } catch { }\n (component.motif.options.transition as any)._markedDirection = true;\n}\n\nexport function unmarkDirection(component: ComponentBase | null | undefined): void {\n const transition: any = component?.motif?.options?.transition;\n if (!transition?._markedDirection) return;\n transition._markedDirection = false;\n try { (component!.element as any)?.removeAttribute?.('data-nav-direction'); } catch { }\n}\n\nexport function playLeave(component: ComponentBase): Promise<void> {\n return new Promise<void>((resolve) => {\n let settled = false;\n const done = () => { if (!settled) { settled = true; resolve(); } };\n try {\n const animation: any = component.motif.options.transition.leaveTransition(done);\n if (animation && typeof animation.addEventListener === 'function') animation.addEventListener('cancel', done);\n } catch {\n done();\n }\n });\n}\n\nfunction saveStyle(el: HTMLElement): string | null {\n return el.getAttribute('style');\n}\n\nfunction restoreStyle(el: HTMLElement, value: string | null): void {\n try {\n el.setAttribute('style', value ?? '');\n if (value === null) el.removeAttribute('style');\n } catch { }\n}\n\nfunction saveScroll(root: HTMLElement): SavedScroll {\n const saved: SavedScroll = [];\n try {\n const visit = (el: Element) => {\n const top = (el as HTMLElement).scrollTop || 0;\n const left = (el as HTMLElement).scrollLeft || 0;\n if (top || left) saved.push([el, top, left]);\n };\n visit(root);\n root.querySelectorAll('*').forEach(visit);\n } catch { }\n return saved;\n}\n\nfunction restoreScroll(saved: SavedScroll): void {\n for (const [el, top, left] of saved) {\n try {\n (el as HTMLElement).scrollTop = top;\n (el as HTMLElement).scrollLeft = left;\n } catch { }\n }\n}\n\nfunction prefersReducedMotion(): boolean {\n try {\n return typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n } catch { return false; }\n}\n\nfunction play(el: HTMLElement, keyframes: Keyframe[], duration: number, running: Animation[]): Promise<void> {\n if (typeof (el as any).animate !== 'function' || duration <= 0) return Promise.resolve();\n try {\n const animation = el.animate(keyframes, { duration, easing: EASING, fill: 'forwards' });\n running.push(animation);\n return animation.finished.then(() => undefined, () => undefined);\n } catch {\n return Promise.resolve();\n }\n}\n\nfunction overlay(floating: HTMLElement, anchor: HTMLElement, above: boolean): void {\n floating.style.position = 'absolute';\n floating.style.top = '0px';\n floating.style.left = '0px';\n floating.style.margin = '0px';\n floating.style.boxSizing = 'border-box';\n const a = anchor.getBoundingClientRect();\n const f = floating.getBoundingClientRect();\n floating.style.top = (a.top - f.top) + 'px';\n floating.style.left = (a.left - f.left) + 'px';\n floating.style.width = a.width + 'px';\n floating.style.height = a.height + 'px';\n floating.style.pointerEvents = 'none';\n floating.style.zIndex = above ? '2' : '0';\n if (!above) {\n let position = '';\n try { position = getComputedStyle(anchor).position; } catch { }\n if (!position || position === 'static') anchor.style.position = 'relative';\n anchor.style.zIndex = '1';\n }\n}\n\nexport class NavigationStack {\n readonly retainAttached: boolean;\n readonly depth: number;\n readonly persist: boolean;\n readonly animation: StackOptions['animation'];\n readonly duration: number;\n private readonly swipe: { edge: number; threshold: number } | null;\n\n private session: string | null = null;\n private readonly entries = new Map<number, RetainedEntry>();\n private readonly uris = new Map<number, string>();\n private loaded: { session: string; uris: Array<[number, string]> } | null = null;\n private current: HistoryPoint | null = null;\n private currentTop: ComponentBase | null = null;\n private readonly offs: Array<() => void> = [];\n private gesture: Gesture | null = null;\n private gestureCommitted = false;\n private awaitingGestureResult = false;\n private disposed = false;\n\n constructor(options: true | StackOptions) {\n const o: StackOptions = options === true ? {} : options;\n this.retainAttached = o.retain === true;\n this.depth = Math.max(0, Math.floor(o.depth ?? 5));\n this.persist = o.persist === true;\n this.animation = o.animation ?? 'none';\n this.duration = Math.max(0, o.duration ?? 300);\n const sb = o.swipeBack;\n this.swipe = sb\n ? {\n edge: (typeof sb === 'object' && typeof sb.edge === 'number' && sb.edge > 0) ? sb.edge : 24,\n threshold: (typeof sb === 'object' && typeof sb.threshold === 'number' && sb.threshold > 0) ? sb.threshold : 0.35,\n }\n : null;\n if (this.persist) this.load();\n if (this.swipe) this.installSwipe();\n }\n\n public get retainedCount(): number {\n return this.entries.size;\n }\n\n public isRetaining(nav: StackNavigation): boolean {\n return !!nav.from && !!nav.to && nav.from.session === nav.to.session && nav.to.index > nav.from.index;\n }\n\n public begin(nav: StackNavigation): void {\n const point = nav.to;\n if (!point) return;\n if (this.session !== point.session) {\n this.disposeAllEntries();\n this.uris.clear();\n this.session = point.session;\n if (this.loaded && this.loaded.session === point.session) {\n for (const [index, uri] of this.loaded.uris) this.uris.set(index, uri);\n }\n this.loaded = null;\n }\n if (nav.direction === 'push') {\n this.truncate(point.index);\n } else if (nav.direction === 'replace') {\n const stale = this.entries.get(point.index);\n if (stale) { this.entries.delete(point.index); void this.disposeEntry(stale); }\n }\n }\n\n public take(point: HistoryPoint | null): RetainedEntry | null {\n if (!point || point.session !== this.session) return null;\n const entry = this.entries.get(point.index);\n if (!entry) return null;\n this.entries.delete(point.index);\n entry.pendingDetach = false;\n return entry;\n }\n\n public retain(point: HistoryPoint, uri: string, chain: RouteItem[], instances: ComponentBase[], topIndex: number, outlet: any, deferHide: boolean): RetainedEntry {\n const top = instances[topIndex];\n const el = top.element as any;\n const entry: RetainedEntry = {\n point, uri, chain: chain.slice(), instances: instances.slice(), top, topIndex, outlet,\n attached: false, hidden: false, pendingDetach: false, saved: null,\n scroll: isElement(el) ? saveScroll(el) : [],\n };\n if (this.retainAttached && isElement(el)) {\n entry.attached = true;\n if (!deferHide) this.hide(entry);\n } else if (deferHide) {\n entry.pendingDetach = true;\n } else {\n try { top.parent?.controls.silentDetach(top); } catch { }\n }\n const previous = this.entries.get(point.index);\n if (previous && previous !== entry) void this.disposeEntry(previous);\n this.entries.set(point.index, entry);\n this.evict();\n return entry;\n }\n\n public settle(entry: RetainedEntry): void {\n if (entry.top.isDisposed || this.entries.get(entry.point.index) !== entry) return;\n if (entry.attached) {\n this.hide(entry);\n } else if (entry.pendingDetach) {\n entry.pendingDetach = false;\n try { entry.top.parent?.controls.silentDetach(entry.top); } catch { }\n }\n }\n\n public hide(entry: RetainedEntry): void {\n if (!entry.attached || entry.hidden) return;\n const el = entry.top.element as any;\n if (!isElement(el)) return;\n entry.saved = {\n style: saveStyle(el),\n inert: el.hasAttribute('inert'),\n ariaHidden: el.getAttribute('aria-hidden'),\n };\n try {\n el.style.setProperty('display', 'none', 'important');\n el.setAttribute('inert', '');\n el.setAttribute('aria-hidden', 'true');\n } catch { }\n entry.hidden = true;\n try { notifyDeactivated(entry.top); } catch { }\n }\n\n public reveal(entry: RetainedEntry): void {\n const el = entry.top.element as any;\n if (entry.hidden && entry.saved && isElement(el)) {\n restoreStyle(el, entry.saved.style);\n try {\n if (!entry.saved.inert) el.removeAttribute('inert');\n if (entry.saved.ariaHidden === null) el.removeAttribute('aria-hidden');\n else el.setAttribute('aria-hidden', entry.saved.ariaHidden);\n } catch { }\n }\n entry.hidden = false;\n entry.saved = null;\n }\n\n public restoreScroll(entry: RetainedEntry): void {\n restoreScroll(entry.scroll);\n }\n\n public record(nav: StackNavigation, top: ComponentBase | null): void {\n if (nav.to && nav.to.session === this.session) {\n this.uris.set(nav.to.index, nav.uri);\n if (nav.direction === 'push') {\n for (const index of Array.from(this.uris.keys())) {\n if (index > nav.to.index) this.uris.delete(index);\n }\n }\n this.current = nav.to;\n }\n this.currentTop = top;\n this.save();\n }\n\n public describe(): StackEntryInfo[] {\n const current = this.current?.index;\n return Array.from(this.uris.entries())\n .sort((a, b) => a[0] - b[0])\n .map(([index, uri]) => ({ index, uri, current: index === current, retained: this.entries.has(index) }));\n }\n\n public get gestureCommitPending(): boolean {\n return this.gestureCommitted;\n }\n\n public consumeGestureCommit(): boolean {\n const committed = this.gestureCommitted;\n this.gestureCommitted = false;\n return committed;\n }\n\n public traversalSettled(cancelled: boolean): void {\n if (!this.awaitingGestureResult) return;\n this.awaitingGestureResult = false;\n const g = this.gesture;\n if (!cancelled) {\n this.gesture = null;\n this.gestureCommitted = false;\n return;\n }\n this.gestureCommitted = false;\n if (g) void this.settleGesture(g, false);\n }\n\n public async transition(direction: NavigationDirection, entering: ComponentBase | null, leaving: ComponentBase | null): Promise<void> {\n if (this.consumeGestureCommit()) return;\n if (this.animation === 'none' || !this.animation) return;\n if (direction !== 'push' && direction !== 'back' && direction !== 'forward') return;\n const enteringEl = entering?.element as any;\n const leavingEl = leaving?.element as any;\n if (!isElement(enteringEl) || !isElement(leavingEl) || !enteringEl.isConnected || !leavingEl.isConnected) return;\n if (prefersReducedMotion()) return;\n\n const backwards = direction === 'back';\n const enteringStyle = saveStyle(enteringEl);\n const leavingStyle = saveStyle(leavingEl);\n const running: Animation[] = [];\n try {\n overlay(leavingEl, enteringEl, backwards);\n if (typeof this.animation === 'function') {\n const context: StackTransitionContext = { direction, entering: enteringEl, leaving: leavingEl };\n await this.animation(context);\n } else {\n const d = this.duration;\n if (backwards) {\n await Promise.all([\n play(leavingEl, [{ transform: 'translateX(0)' }, { transform: 'translateX(100%)' }], d, running),\n play(enteringEl, [{ transform: `translateX(-${SLIDE_OFFSET}%)` }, { transform: 'translateX(0)' }], d, running),\n ]);\n } else {\n await Promise.all([\n play(enteringEl, [{ transform: 'translateX(100%)' }, { transform: 'translateX(0)' }], d, running),\n play(leavingEl, [{ transform: 'translateX(0)' }, { transform: `translateX(-${SLIDE_OFFSET}%)` }], d, running),\n ]);\n }\n }\n } catch (error) {\n reportError('MJX308', error);\n } finally {\n for (const a of running) { try { a.cancel(); } catch { } }\n restoreStyle(enteringEl, enteringStyle);\n restoreStyle(leavingEl, leavingStyle);\n }\n }\n\n public async disposeEntry(entry: RetainedEntry): Promise<void> {\n const top = entry.top;\n if (!top || top.isDisposed) return;\n try { await disposeNavigationTarget(top, { deep: true, skipLeaveTransition: true }); } catch (error) { reportError('MJX307', error); }\n }\n\n public async dispose(): Promise<void> {\n if (this.disposed) return;\n this.disposed = true;\n for (const off of this.offs.splice(0)) { try { off(); } catch { } }\n if (this.gesture) { this.endGestureListeners(this.gesture); this.gesture = null; }\n await this.disposeAllEntries();\n this.uris.clear();\n this.current = null;\n this.currentTop = null;\n }\n\n private async disposeAllEntries(): Promise<void> {\n const all = Array.from(this.entries.values());\n this.entries.clear();\n for (const entry of all) await this.disposeEntry(entry);\n }\n\n private truncate(fromIndex: number): void {\n for (const [index, entry] of Array.from(this.entries)) {\n if (index >= fromIndex) {\n this.entries.delete(index);\n void this.disposeEntry(entry);\n }\n }\n }\n\n private evict(): void {\n while (this.entries.size > this.depth) {\n let oldest = Infinity;\n for (const index of this.entries.keys()) if (index < oldest) oldest = index;\n const entry = this.entries.get(oldest);\n this.entries.delete(oldest);\n if (entry) void this.disposeEntry(entry);\n }\n }\n\n private load(): void {\n try {\n if (typeof sessionStorage === 'undefined') return;\n const raw = sessionStorage.getItem(STORAGE_KEY);\n if (!raw) return;\n const parsed = JSON.parse(raw);\n if (!parsed || typeof parsed.session !== 'string' || !Array.isArray(parsed.uris)) return;\n const uris: Array<[number, string]> = [];\n for (const pair of parsed.uris) {\n if (Array.isArray(pair) && typeof pair[0] === 'number' && typeof pair[1] === 'string') uris.push([pair[0], pair[1]]);\n }\n this.loaded = { session: parsed.session, uris };\n } catch { }\n }\n\n private save(): void {\n if (!this.persist || !this.session) return;\n try {\n if (typeof sessionStorage === 'undefined') return;\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify({ session: this.session, uris: Array.from(this.uris.entries()) }));\n } catch { }\n }\n\n private installSwipe(): void {\n if (typeof document === 'undefined') return;\n const onStart = (e: TouchEvent) => this.onTouchStart(e);\n try {\n document.addEventListener('touchstart', onStart as any, { passive: true });\n this.offs.push(() => { try { document.removeEventListener('touchstart', onStart as any); } catch { } });\n } catch { }\n }\n\n private onTouchStart(e: TouchEvent): void {\n if (this.disposed || this.gesture || this.awaitingGestureResult || !this.swipe) return;\n if (!e.touches || e.touches.length !== 1) return;\n const t = e.touches[0];\n if (!t || t.clientX > this.swipe.edge) return;\n if (!this.current || this.current.index <= 0) return;\n const topEl = this.currentTop?.element as any;\n if (!isElement(topEl) || !topEl.isConnected) return;\n\n const g: Gesture = {\n startX: t.clientX, startY: t.clientY, lastX: t.clientX, samples: [[t.clientX, Date.now()]],\n dragging: false, width: 0, top: topEl, topSaved: null, under: null, underSaved: null, offs: [],\n };\n const onMove = (ev: TouchEvent) => this.onTouchMove(g, ev);\n const onEnd = () => this.onTouchEnd(g);\n try {\n document.addEventListener('touchmove', onMove as any, { passive: false });\n document.addEventListener('touchend', onEnd);\n document.addEventListener('touchcancel', onEnd);\n g.offs.push(() => {\n try { document.removeEventListener('touchmove', onMove as any); } catch { }\n try { document.removeEventListener('touchend', onEnd); } catch { }\n try { document.removeEventListener('touchcancel', onEnd); } catch { }\n });\n } catch { }\n this.gesture = g;\n }\n\n private endGestureListeners(g: Gesture): void {\n for (const off of g.offs.splice(0)) { try { off(); } catch { } }\n }\n\n private beginDrag(g: Gesture): void {\n g.dragging = true;\n g.width = g.top.getBoundingClientRect().width || (typeof window !== 'undefined' ? window.innerWidth : 0) || 1;\n g.topSaved = saveStyle(g.top);\n const current = this.current;\n const under = current ? this.entries.get(current.index - 1) ?? null : null;\n if (under && under.attached && isElement(under.top.element) && (under.top.element as any).isConnected) {\n const el = under.top.element as any as HTMLElement;\n g.under = under;\n g.underSaved = saveStyle(el);\n if (under.saved) restoreStyle(el, under.saved.style);\n overlay(el, g.top, false);\n el.style.transform = `translateX(-${SLIDE_OFFSET}%)`;\n restoreScroll(under.scroll);\n }\n g.top.style.willChange = 'transform';\n }\n\n private applyDrag(g: Gesture, dx: number): void {\n const progress = Math.min(1, Math.max(0, dx / g.width));\n g.top.style.transform = `translateX(${Math.max(0, dx)}px)`;\n if (g.under) {\n (g.under.top.element as any as HTMLElement).style.transform = `translateX(-${SLIDE_OFFSET * (1 - progress)}%)`;\n }\n }\n\n private onTouchMove(g: Gesture, e: TouchEvent): void {\n const t = e.touches && e.touches[0];\n if (!t) return;\n const dx = t.clientX - g.startX;\n const dy = t.clientY - g.startY;\n if (!g.dragging) {\n if (Math.abs(dx) < 8 && Math.abs(dy) < 8) return;\n if (dx <= 0 || Math.abs(dy) > Math.abs(dx)) {\n this.endGestureListeners(g);\n this.gesture = null;\n return;\n }\n this.beginDrag(g);\n }\n if (e.cancelable) { try { e.preventDefault(); } catch { } }\n const now = Date.now();\n g.lastX = t.clientX;\n g.samples.push([t.clientX, now]);\n while (g.samples.length > 2 && now - g.samples[0][1] > 100) g.samples.shift();\n this.applyDrag(g, dx);\n }\n\n private onTouchEnd(g: Gesture): void {\n this.endGestureListeners(g);\n if (!g.dragging) { this.gesture = null; return; }\n const dx = g.lastX - g.startX;\n const progress = dx / g.width;\n const first = g.samples[0];\n const last = g.samples[g.samples.length - 1];\n const span = last && first ? last[1] - first[1] : 0;\n const idle = last ? Date.now() - last[1] : Infinity;\n const velocity = span >= 16 && idle <= 50 ? (last[0] - first[0]) / span : 0;\n const commit = progress > this.swipe!.threshold || (velocity > 0.5 && dx > 0);\n void this.settleGesture(g, commit);\n }\n\n private async settleGesture(g: Gesture, commit: boolean): Promise<void> {\n const running: Animation[] = [];\n const topEl = g.top;\n const underEl = g.under ? g.under.top.element as any as HTMLElement : null;\n const duration = prefersReducedMotion() ? 0 : Math.max(0, Math.round(this.duration * 0.6));\n const currentTop = topEl.style.transform || 'translateX(0px)';\n const currentUnder = underEl?.style.transform || `translateX(-${SLIDE_OFFSET}%)`;\n if (commit) {\n await Promise.all([\n play(topEl, [{ transform: currentTop }, { transform: 'translateX(100%)' }], duration, running),\n underEl ? play(underEl, [{ transform: currentUnder }, { transform: 'translateX(0)' }], duration, running) : Promise.resolve(),\n ]);\n topEl.style.transform = 'translateX(100%)';\n if (underEl) underEl.style.transform = 'translateX(0px)';\n for (const a of running) { try { a.cancel(); } catch { } }\n this.gestureCommitted = true;\n this.awaitingGestureResult = true;\n try { window.history.back(); } catch { this.traversalSettled(true); }\n return;\n }\n await Promise.all([\n play(topEl, [{ transform: currentTop }, { transform: 'translateX(0)' }], duration, running),\n underEl ? play(underEl, [{ transform: currentUnder }, { transform: `translateX(-${SLIDE_OFFSET}%)` }], duration, running) : Promise.resolve(),\n ]);\n for (const a of running) { try { a.cancel(); } catch { } }\n restoreStyle(topEl, g.topSaved);\n if (underEl && g.under) {\n restoreStyle(underEl, g.underSaved);\n }\n if (this.gesture === g) this.gesture = null;\n }\n}\n","export const enum CharacterCodes {\n slash = 0x2F, // /\n question = 0x3F, // ?\n colon = 0x3A, // :\n openBrace = 0x7B, // {\n closeBrace = 0x7D, // }\n equals = 0x3D, // =\n $ = 0x24,\n backslash = 0x5C, // \\\n}\n\n\n\n\nexport interface IToken {\n type: 'static' | 'optional' | 'parameter';\n regexs: [];\n input: string;\n default: string | undefined;\n parameterName: string;\n isOptinal: boolean;\n parameterIndex: number;\n sectionIndex: number;\n hasLeadingSlash?: boolean;\n leadingSlashTokenIndex?: number;\n hasLeadingStatic?: boolean;\n leadingStaticTokenIndex?: number;\n consumed?: boolean;\n}\nexport class Scanner {\n\n constructor(public source: string) {\n this.tokens = [];\n }\n currentColumn = 0;\n tokens: IToken[] = [];\n addToken(token: IToken) {\n this.tokens.push(token);\n }\n\n public parse(): RegExp {\n if (!this.source.startsWith(\"/\")) {\n this.source = \"/\" + this.source;\n }\n // Sondaki '/' karakterlerini normalize et (kök '/' hariç): '/app/' deseni '/app' ile aynı\n while (this.source.length > 1 && this.source.endsWith('/')) {\n this.source = this.source.slice(0, -1);\n }\n\n var currentType: 'static' | 'optional' | 'parameter' | 'defaultValue' = 'static';\n var parentTokenIndex = -1;\n var parameterIndex = 0;\n var sectionIndex = -1;\n this.tokens = [];\n this.currentColumn = 0;\n while (this.currentColumn < this.source.length) {\n\n var cpa = this.codePointAt(this.source, this.currentColumn);\n\n var currentToken = this.tokens[parentTokenIndex];\n switch (cpa) {\n case CharacterCodes.slash:\n sectionIndex++;\n if (currentToken === undefined || currentToken.input.length > 1) {\n this.tokens.push({ default: '', input: '/', isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n break;\n case CharacterCodes.openBrace:\n parameterIndex++;\n let hasLeadingSlash = false;\n let leadingSlashTokenIndex: number | undefined = undefined;\n let hasLeadingStatic = false;\n let leadingStaticTokenIndex: number | undefined = undefined;\n if (this.tokens.length > 0) {\n const prev = this.tokens[this.tokens.length - 1];\n if (prev && prev.type === 'static' && prev.input === '/' && !prev.consumed) {\n hasLeadingSlash = true;\n leadingSlashTokenIndex = this.tokens.length - 1;\n } else if (prev && prev.type === 'static' && prev.input !== '/' && prev.sectionIndex === sectionIndex && !prev.consumed) {\n hasLeadingStatic = true;\n leadingStaticTokenIndex = this.tokens.length - 1;\n }\n }\n this.tokens.push({ default: undefined, input: '', isOptinal: false, regexs: [], type: 'parameter', parameterName: '', parameterIndex: parameterIndex, sectionIndex, hasLeadingSlash, leadingSlashTokenIndex, hasLeadingStatic, leadingStaticTokenIndex });\n parentTokenIndex = this.tokens.length - 1;\n currentType = 'parameter';\n break;\n case CharacterCodes.closeBrace:\n currentType = 'static';\n parentTokenIndex = -1;\n break;\n case CharacterCodes.colon:\n currentType = 'defaultValue';\n break;\n\n case CharacterCodes.question:\n if (currentToken) {\n currentToken.isOptinal = true;\n }\n break;\n default:\n const ch = this.source[this.currentColumn];\n if (currentToken) {\n if (currentType === 'parameter') {\n currentToken.parameterName = `${currentToken.parameterName + ch}`;\n } else if (currentType === 'defaultValue') {\n currentToken.default = `${(currentToken.default ?? '') + ch}`;\n } else {\n if (currentToken.type === 'static') {\n currentToken.input = `${currentToken.input + ch}`;\n } else {\n this.tokens.push({ default: undefined, input: ch, isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n }\n } else {\n this.tokens.push({ default: undefined, input: ch, isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n break;\n }\n this.currentColumn++;\n }\n\n const escapeRegex = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const charClass = \"[\\\\w\\\\d\\\\_\\\\-\\\\%\\\\&\\\\$\\\\+\\\\#\\\\,\\\\.\\\\{\\\\}\\\\(\\\\)\\\\[\\\\]\\\\?\\\\:\\\\=\\\\;\\\\'\\\\\\\"\\\\~\\\\\\\\]\";\n\n for (const t of this.tokens) {\n if (t.type === 'parameter' && t.isOptinal && t.hasLeadingSlash && typeof t.leadingSlashTokenIndex === 'number') {\n const prev = this.tokens[t.leadingSlashTokenIndex];\n if (prev && prev.type === 'static' && prev.input === '/') {\n prev.consumed = true;\n }\n }\n if (t.type === 'parameter' && t.isOptinal && t.hasLeadingStatic && typeof t.leadingStaticTokenIndex === 'number') {\n const prev = this.tokens[t.leadingStaticTokenIndex];\n if (prev && prev.type === 'static' && prev.input && prev.sectionIndex === t.sectionIndex) {\n prev.consumed = true;\n }\n }\n }\n\n const escapeClassChar = (c: string) => c.replace(/[\\\\\\]\\^\\-]/g, '\\\\$&');\n\n const getNextDelimChar = (idx: number): string | undefined => {\n const t = this.tokens[idx];\n for (let j = idx + 1; j < this.tokens.length; j++) {\n const nx = this.tokens[j];\n if (nx.type === 'static' && nx.sectionIndex === t.sectionIndex) {\n if (nx.input && nx.input !== '/') {\n return nx.input[0];\n }\n }\n if (nx.type === 'static' && nx.input === '/') break;\n }\n return undefined;\n };\n const buildCapture = (idx: number, isOptional: boolean) => {\n const delim = getNextDelimChar(idx);\n const innerClass = delim ? `[^${escapeClassChar(escapeRegex(delim))}]` : charClass;\n const quant = isOptional ? '{0,255}' : '{1,255}';\n return `(${innerClass}${quant})`;\n };\n\n let pattern = '^';\n for (let i = 0; i < this.tokens.length;) {\n const tok = this.tokens[i];\n if (tok.type === 'static' && tok.input === '/') {\n if (!tok.consumed) pattern += '/';\n i++;\n continue;\n }\n const segStart = i;\n let segEnd = i;\n while (segEnd < this.tokens.length) {\n const t = this.tokens[segEnd];\n if (t.type === 'static' && t.input === '/' && segEnd !== segStart) break;\n if (t.type === 'static' && t.input === '/' && segEnd === segStart) { segEnd++; break; }\n segEnd++;\n }\n const visited: Record<number, boolean> = {};\n let k = segStart;\n while (k < segEnd) {\n if (visited[k]) { k++; continue; }\n const t = this.tokens[k];\n if (t.type === 'static') {\n if (!t.consumed) pattern += escapeRegex(t.input);\n visited[k] = true;\n k++;\n continue;\n }\n if (t.isOptinal && !t.hasLeadingStatic) {\n\n const firstIdx = k;\n let hasDependent = false;\n for (let jj = firstIdx + 1; jj < segEnd; jj++) {\n const sj = this.tokens[jj];\n const pj = this.tokens[jj + 1] as IToken | undefined;\n if (sj && sj.type === 'static' && pj && pj.type === 'parameter' && pj.isOptinal && pj.hasLeadingStatic && typeof pj.leadingStaticTokenIndex === 'number' && pj.leadingStaticTokenIndex === jj) {\n hasDependent = true;\n break;\n }\n if (sj && sj.type === 'static' && sj.input === '/') break;\n }\n\n let groupInner = '';\n if (t.hasLeadingSlash) groupInner += '/';\n groupInner += buildCapture(firstIdx, !hasDependent);\n visited[firstIdx] = true;\n let j = firstIdx + 1;\n while (j < segEnd) {\n const sj = this.tokens[j];\n if (sj.type === 'static' && this.tokens[j + 1] && this.tokens[j + 1].type === 'parameter') {\n const prm = this.tokens[j + 1] as IToken;\n if (prm.isOptinal && prm.hasLeadingStatic && typeof prm.leadingStaticTokenIndex === 'number' && prm.leadingStaticTokenIndex === j) {\n const lit = escapeRegex(sj.input);\n const cap = buildCapture(j + 1, true);\n groupInner += `(?:${lit}${cap})?`;\n visited[j] = true;\n visited[j + 1] = true;\n j += 2;\n continue;\n }\n }\n break;\n }\n pattern += `(?:${groupInner})?`;\n k = j;\n continue;\n } else {\n const cap = buildCapture(k, t.isOptinal);\n if (t.isOptinal) {\n if (t.hasLeadingSlash) {\n pattern += `(?:/${cap})?`;\n } else if (t.hasLeadingStatic && typeof t.leadingStaticTokenIndex === 'number') {\n const prev = this.tokens[t.leadingStaticTokenIndex];\n const lit = prev && prev.type === 'static' ? escapeRegex(prev.input) : '';\n pattern += `(?:${lit}${cap})?`;\n } else {\n pattern += `(?:${cap})?`;\n }\n } else {\n pattern += cap;\n }\n visited[k] = true;\n k++;\n }\n }\n i = segEnd;\n }\n\n pattern += '$';\n return new RegExp(pattern, \"i\");\n }\n public parameters: Record<string, any> = {};\n public exist(input: string, pageSearch?: string): boolean {\n const hashIdx = input.indexOf('#');\n const withoutHash = hashIdx >= 0 ? input.substring(0, hashIdx) : input;\n let path = withoutHash;\n let query = '';\n const qIdx = withoutHash.indexOf('?');\n if (qIdx >= 0) {\n path = withoutHash.substring(0, qIdx);\n query = withoutHash.substring(qIdx + 1);\n }\n\n // İstek yolundaki sondaki '/' karakterlerini yok say (kök '/' hariç):\n // '/app/' → '/app'; desen ^...$ tam eşleşme olduğundan aksi halde not-found olur.\n while (path.length > 1 && path.endsWith('/')) {\n path = path.slice(0, -1);\n }\n\n var tx = this.parse();\n var rx = tx.exec(path);\n\n if (rx) {\n var i = rx ? rx.length : 0;\n var arr = <any>[];\n\n this.parameters = {};\n rx?.forEach((t, indx) => {\n arr.push(t);\n })\n if (query && query.length) {\n const urlSearchParams = new URLSearchParams(query);\n const queryMap = new Map<string, string[]>();\n urlSearchParams.forEach((val, key) => {\n const existing = queryMap.get(key) || [];\n existing.push(val);\n queryMap.set(key, existing);\n });\n queryMap.forEach((values, key) => {\n if (values.length === 1) {\n this.parameters[key] = values[0];\n } else {\n this.parameters[key] = values;\n }\n });\n } else if (pageSearch) {\n const urlSearchParams = new URLSearchParams(pageSearch);\n const queryMap = new Map<string, string[]>();\n urlSearchParams.forEach((val, key) => {\n const existing = queryMap.get(key) || [];\n existing.push(val);\n queryMap.set(key, existing);\n });\n queryMap.forEach((values, key) => {\n if (values.length === 1) {\n this.parameters[key] = values[0];\n } else {\n this.parameters[key] = values;\n }\n });\n }\n\n if (rx.input === arr[0]) {\n rx?.forEach((t, indx) => {\n\n if (indx !== 0) {\n var all = this.tokens.find(t => t.parameterIndex == indx);\n if (all) {\n let val: any = t;\n if ((val === undefined || val === '') && all.isOptinal) {\n const def = (all.default === undefined || all.default === '') ? undefined : all.default;\n val = def;\n }\n if (val === undefined) {\n this.parameters[all.parameterName] = undefined;\n } else {\n this.parameters[all.parameterName] = val;\n }\n }\n }\n })\n /* TODO: route detayları ile ilgili mesajı Geliştirici Araçları'na gönder */\n return true;\n }\n }\n\n return false;\n }\n codePointAt: (s: string, i: number) =>\n number = (String.prototype as any).codePointAt ?\n (s, i) => (s as any).codePointAt(i) : function codePointAt(str, i): number {\n const size = str.length;\n if (i < 0 || i >= size) {\n return undefined!;\n }\n const first = str.charCodeAt(i);\n if (first >= 0xD800 && first <= 0xDBFF && size > i + 1) {\n const second = str.charCodeAt(i + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n };\n\n}","import { RouteItem, RouteRecord } from \"./RouteItem\";\r\nimport { Scanner } from \"./scanner\";\r\n\r\n\r\n/** Bir fullPath'in statik (parametresiz) ve parametreli segment sayıları. */\r\nexport function routeSpecificity(fullPath: string): { statics: number; params: number } {\r\n let statics = 0, params = 0;\r\n for (const seg of (fullPath || '').split('/')) {\r\n if (!seg) continue;\r\n if (seg.startsWith('{') && seg.endsWith('}')) params++; else statics++;\r\n }\r\n return { statics, params };\r\n}\r\n\r\nexport function compareRouteRecords(a: RouteRecord, b: RouteRecord): number {\r\n const d = a.chain.length - b.chain.length;\r\n if (d !== 0) return d;\r\n const sa = routeSpecificity(a.fullPath), sb = routeSpecificity(b.fullPath);\r\n if (sa.statics !== sb.statics) return sb.statics - sa.statics;\r\n if (sa.params !== sb.params) return sa.params - sb.params;\r\n return b.fullPath.length - a.fullPath.length;\r\n}\r\n\r\nexport class RouteCollection {\r\n\r\n public records: RouteRecord[] = [];\r\n private routesMap: Map<any, RouteItem> = new Map();\r\n constructor(private routes: RouteItem[]) {\r\n this.build();\r\n }\r\n\r\n private build() {\r\n this.records = [];\r\n this.routesMap.clear();\r\n\r\n for (const r of this.routes) this.walk([], \"\", r);\r\n\r\n this.records.sort(compareRouteRecords);\r\n }\r\n\r\n walk = (chain: RouteItem[], parentPath: string, node: RouteItem, viaAlias: boolean = false) => {\r\n const fullPath = this.joinPaths(parentPath, node.path);\r\n if (!viaAlias) {\r\n const existing = (node as any).fullPath as string | null | undefined;\r\n if (existing == null || (typeof existing === 'string' && existing.trim() === '')) {\r\n (node as any).fullPath = fullPath;\r\n }\r\n if (node.name != null) {\r\n this.routesMap.set(node.name, node);\r\n }\r\n }\r\n const nextChain = [...chain, node];\r\n const aliases = node.alias == null ? [] : (Array.isArray(node.alias) ? node.alias : [node.alias]);\r\n const variants = [\r\n { path: fullPath, isAlias: viaAlias },\r\n ...aliases.map(a => ({ path: this.joinPaths(parentPath, a), isAlias: true }))\r\n ];\r\n for (const variant of variants) {\r\n this.records.push({\r\n fullPath: variant.path,\r\n chain: nextChain,\r\n leaf: node,\r\n scanner: new Scanner(variant.path),\r\n aliasOf: variant.isAlias ? ((node as any).fullPath ?? null) : null\r\n });\r\n if (node.childs && node.childs.length) {\r\n for (const child of node.childs) this.walk(nextChain, variant.path, child, variant.isAlias);\r\n }\r\n }\r\n }\r\n\r\n joinPaths(parent: string, child: string): string {\r\n parent = parent || \"\";\r\n child = child || \"\";\r\n\r\n const base = parent && parent !== \"/\" && parent.endsWith(\"/\") ? parent.slice(0, -1) : parent;\r\n\r\n if (child === \"/\") {\r\n return base || \"/\";\r\n }\r\n\r\n const seg = child ? (child.startsWith(\"/\") ? child : \"/\" + child) : \"\";\r\n\r\n if (!base || base === \"/\") {\r\n return seg || \"/\";\r\n }\r\n return base + seg;\r\n }\r\n}\r","import { Component, ComponentBase, assertLoadedComponent, resolveToComponent, unwrapModule, notifyActivated, notifyDeactivated } from \"../\";\nimport { cancelAnimationsDeep } from \"../component/navigation\";\nimport { errorHandler } from \"../common/ErrorHandler\";\nimport { callReported, reportError, reportWarning } from \"../common/diagnostics\";\nimport { NavigationDirection, NavigationOptions, ResolveResult } from \"./\";\nimport { RouterView, RouterViewBuilt } from \"./\";\nimport { UrlRoutingModule } from \"./\";\nimport { RouterViewRegistry } from \"./RouterViewRegistry\";\nimport { RouteItem } from \"./\";\nimport { Application } from \"../\";\nimport { pinServiceOwner, runInConstructionScope } from \"../dependencyInjection/ServiceProvider\";\nimport type { ServiceProvider } from \"../dependencyInjection/ServiceProvider\";\nimport { hasOwnTransition, markDirection, playLeave, unmarkDirection } from \"./NavigationStack\";\nimport type { NavigationStack, RetainedEntry, StackNavigation } from \"./NavigationStack\";\nimport type { RouteSnapshot } from \"./routerState\";\n\ntype StackLeave = { top: ComponentBase | null; retained: RetainedEntry | null; disposeAfter: ComponentBase[] };\ntype StackMotion = { animate: boolean; pages: boolean; direction: NavigationDirection };\ntype NavigationRun = { provider?: ServiceProvider; scope?: ServiceProvider; route: RouteSnapshot; committed: boolean; suppressed: ComponentBase[] };\n\nexport class RoutingEngine {\n\n public stack: NavigationStack | null = null;\n private _revealed: Set<ComponentBase> = new Set();\n\n private root!: ComponentBase;\n private application!: Application;\n private routingModule!: UrlRoutingModule;\n private _previousPath: ResolveResult | null = null;\n private _previousInstances: ComponentBase[] = [];\n\n public register(mainApp: ComponentBase, application: Application, routingModule: UrlRoutingModule) {\n this.root = mainApp;\n this.application = application;\n this.routingModule = routingModule;\n }\n\n private controlCache: Map<RouteItem, any> = new Map();\n\n public async evict(route?: RouteItem | null): Promise<void> {\n const targets: RouteItem[] = route ? [route] : Array.from(this.controlCache.keys());\n for (const r of targets) {\n const inst = this.controlCache.get(r);\n if (!inst || inst.isDisposed) { this.controlCache.delete(r); continue; }\n if (this._previousInstances.includes(inst)) continue;\n this.controlCache.delete(r);\n try { await inst.dispose(); } catch (error) { reportError('MJX307', error); }\n }\n }\n\n\n public async dispose(): Promise<void> {\n this._navVersion++;\n this._previousPath = null;\n this._previousInstances = [];\n this._revealed.clear();\n const stack = this.stack;\n this.stack = null;\n if (stack) { try { await stack.dispose(); } catch { } }\n await this.evict();\n }\n\n generatePathString(routeDefinition: string, params: Record<string, any>): string {\n const parts = routeDefinition.split('/');\n const result = parts.map(part => {\n if (part.startsWith('{') && part.endsWith('}')) {\n const paramDefinition = part.slice(1, -1);\n\n let [paramName, defaultValue] = paramDefinition.split(':');\n\n const isOptional = paramName.endsWith('?');\n if (isOptional) {\n paramName = paramName.slice(0, -1);\n }\n const value = params[paramName];\n if (value !== undefined && value !== null && value !== '') {\n return String(value);\n }\n return defaultValue ?? '';\n\n } else {\n return part;\n }\n })\n .filter(part => part !== '')\n .join('/');\n\n if (routeDefinition.startsWith('/')) {\n return '/' + (result ? result : '');\n }\n return result;\n }\n\n private _navVersion = 0;\n\n private _pendingActivate: Set<ComponentBase> = new Set();\n public async execute(path: ResolveResult, nav?: StackNavigation, route?: RouteSnapshot) {\n route ??= {\n target: path,\n chain: path.chain.map(r => this.generatePathString(r.path, path.params) || ''),\n direction: undefined,\n state: undefined,\n };\n const provider = this._rootProvider();\n const run: NavigationRun = { provider, scope: provider?._beginNavigation(), route, committed: false, suppressed: [] };\n try {\n await this._execute(path, nav, run);\n } finally {\n if (!run.committed && run.scope) provider!._abandonNavigation(run.scope);\n for (const inst of run.suppressed) if (!inst.isDisposed) inst.motif.options.transition._suppressEnter = false;\n }\n }\n\n private _commitNavigation(run: NavigationRun): void {\n if (run.committed) return;\n run.committed = true;\n if (run.scope) run.provider!._commitNavigation(run.scope);\n this.application?._routerState.commit(run.route);\n }\n\n private async _execute(path: ResolveResult, nav: StackNavigation | undefined, run: NavigationRun) {\n const navVersion = ++this._navVersion;\n const stack = this.stack && nav && nav.to ? this.stack : null;\n if (stack) stack.begin(nav!);\n const restored = stack ? stack.take(nav!.to) : null;\n const controlList: any[] = new Array(path.chain.length);\n\n const isSameRoute = !!(this._previousPath &&\n this._previousPath.route === path.route &&\n (this._previousPath.route != null || this._previousPath.fullPath === path.fullPath));\n\n var enableEnter = !!(this._previousPath && this._previousPath.uri === path.uri);\n let paramsChanged = false;\n\n\n if (isSameRoute && path.route) {\n\n const prevParams = this._previousPath!.params || {};\n const newParams = path.params || {};\n let changed = false;\n const allKeys = new Set([...Object.keys(prevParams), ...Object.keys(newParams)]);\n for (const k of allKeys) {\n if (prevParams[k] !== newParams[k]) { changed = true; break; }\n }\n if (changed) {\n paramsChanged = true;\n\n const leafRoute = path.route;\n if (leafRoute && !leafRoute.keepAlive && this.controlCache.has(leafRoute)) {\n if (stack) {\n this.controlCache.delete(leafRoute);\n } else {\n const oldInstance = this.controlCache.get(leafRoute);\n if (oldInstance && typeof oldInstance.dispose === 'function' && !oldInstance.isDisposed) {\n try { await oldInstance.dispose(); } catch { }\n }\n this.controlCache.delete(leafRoute);\n }\n }\n\n try {\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const updateHook = path.route.onUpdate || globalHooks?.onUpdate;\n if (updateHook) {\n const updateContext = {\n from: {\n path: this._previousPath!.uri || this._previousPath!.fullPath || '',\n params: prevParams\n },\n to: {\n path: path.uri || path.fullPath || '',\n params: newParams\n },\n meta: (path as any).meta ?? path.extend\n };\n await updateHook(updateContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onUpdate');\n }\n }\n }\n\n if ((!isSameRoute || paramsChanged) && path.route) {\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route.onEntering || globalHooks?.onEntering;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEntering');\n }\n }\n\n const prepTasks: Promise<void>[] = [];\n for (let i = 0; i < path.chain.length; i++) {\n const element = path.chain[i];\n const kept = restored && restored.chain[i] === element ? restored.instances[i] : undefined;\n if (kept && !kept.isDisposed && !element.keepAlive) {\n controlList[i] = kept;\n this.controlCache.set(element, kept);\n continue;\n }\n if (this.controlCache.has(element)) {\n let control = this.controlCache.get(element);\n if (!control || control.isDisposed) {\n this.controlCache.delete(element);\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n } else {\n controlList[i] = control;\n if (element.keepAlive && !this._previousInstances.includes(control)) {\n this._pendingActivate.add(control);\n }\n }\n } else {\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n }\n }\n if (prepTasks.length) {\n await Promise.all(prepTasks);\n }\n let leave: StackLeave | null = null;\n let motion: StackMotion | null = null;\n const previousInstances = this._previousInstances;\n if (stack) {\n const animate = !!stack.animation && stack.animation !== 'none'\n && (nav!.direction === 'push' || nav!.direction === 'back' || nav!.direction === 'forward');\n motion = { animate, pages: !animate && !stack.gestureCommitPending, direction: nav!.direction };\n leave = await this._stackLeave(path.chain, controlList, nav!, stack, motion);\n if (restored) {\n const top = restored.top;\n if (!top.isDisposed && restored.outlet && top.parent === restored.outlet) {\n stack.reveal(restored);\n restored.outlet.current = top;\n restored.outlet.previouspage = top;\n this._revealed.add(top);\n }\n if (!top.isDisposed) this._pendingActivate.add(top);\n }\n } else {\n await this.disposeFromDivergencePoint(path.chain, controlList);\n }\n const entering: ComponentBase[] = motion ? controlList.filter(c => c && !previousInstances.includes(c)) : [];\n if (motion) {\n for (const inst of previousInstances) unmarkDirection(inst);\n for (const inst of entering) {\n if (motion.pages) markDirection(inst, motion.direction);\n else {\n inst.motif.options.transition._suppressEnter = true;\n run.suppressed.push(inst);\n }\n }\n }\n if (navVersion === this._navVersion) this._commitNavigation(run);\n await this.mountChain(controlList, path.chain, this.root, navVersion);\n if (motion?.pages) {\n if (restored?.attached && !restored.top.isDisposed && hasOwnTransition(restored.top, 'enter')) {\n restored.top.motif.options.transition.enterTransition(() => { });\n }\n for (const inst of entering) if (inst.isBuilt && !hasOwnTransition(inst, 'enter')) unmarkDirection(inst);\n }\n let enteringTop: ComponentBase | null = null;\n if (stack) {\n if (restored) stack.restoreScroll(restored);\n for (let i = 0; i < controlList.length; i++) {\n if (controlList[i] && controlList[i] !== previousInstances[i]) { enteringTop = controlList[i]; break; }\n }\n if (!enteringTop) enteringTop = controlList.length ? controlList[controlList.length - 1] : null;\n stack.record(nav!, enteringTop);\n }\n\n\n\n if (!enableEnter && path.route) {\n\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route?.onEnter || globalHooks?.onEnter;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEnter');\n }\n }\n this._previousPath = path;\n this._previousInstances = controlList.slice();\n\n if (stack && leave) {\n if (leave.top && navVersion === this._navVersion && (leave.retained || leave.disposeAfter.length)) {\n await stack.transition(nav!.direction, enteringTop, leave.top);\n }\n if (leave.retained) stack.settle(leave.retained);\n for (const inst of leave.disposeAfter) {\n try { if (!inst.isDisposed) await inst.dispose({ deep: true, skipLeaveTransition: true }); } catch (error) { reportError('MJX307', error); }\n }\n }\n }\n\n private async _stackLeave(newChain: RouteItem[], newInstances: ComponentBase[], nav: StackNavigation, stack: NavigationStack, motion: StackMotion): Promise<StackLeave> {\n const result: StackLeave = { top: null, retained: null, disposeAfter: [] };\n const prevChain = this._previousPath?.chain ?? [];\n const prevInstances = this._previousInstances;\n if (!prevInstances.length) return result;\n\n let d = -1;\n for (let i = 0; i < prevInstances.length; i++) {\n const inst = prevInstances[i];\n if (inst && !newInstances.includes(inst)) { d = i; break; }\n }\n if (d < 0) return result;\n\n if (!prevInstances[d].isDisposed) pinServiceOwner(prevInstances[d]);\n\n const outletFor = (i: number): RouterView | null => {\n const container = i - 1 >= 0 ? prevInstances[i - 1] : this.root;\n const outletName = (prevChain[i]?.extend?.targetOutlet) || 'default';\n try { return container && !container.isDisposed ? this.findRouterView(container, outletName) : null; } catch { return null; }\n };\n\n const top = prevInstances[d];\n const topItem = prevChain[d];\n if (stack.isRetaining(nav) && top && !top.isDisposed && !topItem?.keepAlive) {\n const outlet = outletFor(d);\n if (outlet && outlet.current === top) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n cancelAnimationsDeep(top);\n if (motion.pages && hasOwnTransition(top, 'leave')) {\n markDirection(top, motion.direction);\n await playLeave(top);\n unmarkDirection(top);\n }\n for (let i = d; i < prevInstances.length; i++) {\n const item = prevChain[i];\n if (item && !item.keepAlive && this.controlCache.get(item) === prevInstances[i]) this.controlCache.delete(item);\n }\n result.top = top;\n result.retained = stack.retain(nav.from!, this._previousPath?.uri ?? '', prevChain, prevInstances, d, outlet, motion.animate);\n return result;\n }\n\n const deferTop = motion.animate && !!top && !top.isDisposed && !topItem?.keepAlive;\n for (let i = prevInstances.length - 1; i >= d; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || newInstances.includes(inst)) continue;\n if (inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n if (deferTop && i > d && !item?.keepAlive) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const outlet = outletFor(i);\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n if (deferTop && i === d) {\n result.top = inst;\n result.disposeAfter.push(inst);\n } else if (motion.pages) {\n markDirection(inst, motion.direction);\n await inst.dispose();\n } else {\n await inst.dispose({ deep: true, skipLeaveTransition: true });\n }\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n return result;\n }\n\n private async disposeFromDivergencePoint(newChain: RouteItem[], newInstances: ComponentBase[]): Promise<void> {\n if (!this._previousPath || !this._previousInstances.length) {\n return;\n }\n\n const prevChain = this._previousPath.chain;\n const prevInstances = this._previousInstances;\n\n let divergeIndex = 0;\n const minLength = Math.min(prevChain.length, newChain.length);\n\n for (let i = 0; i < minLength; i++) {\n if (prevChain[i] === newChain[i]) {\n divergeIndex = i + 1;\n } else {\n break;\n }\n }\n\n for (let i = prevInstances.length - 1; i >= divergeIndex; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const containerIndex = i - 1;\n const container = containerIndex >= 0 ? prevInstances[containerIndex] : this.root;\n const outletName = (item?.extend?.targetOutlet) || 'default';\n const outlet = this.findRouterView(container, outletName);\n\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (this.controlCache.get(item) === inst) this.controlCache.delete(item);\n await inst.dispose();\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n }\n\n private _construct<T>(scope: ServiceProvider | undefined, route: RouteSnapshot | undefined, create: () => T): T {\n const state = this.application?._routerState;\n return runInConstructionScope(scope, () => state ? state.constructWith(route, create) : create());\n }\n\n private async parseControl(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n var instance = this._construct(scope, route, () => this._resolveFrom(scope, control));\n if (instance) {\n return instance;\n }\n let val = control as any;\n if (val instanceof Promise) {\n val = unwrapModule(await val);\n }\n\n instance = this._construct(scope, route, () => this._resolveFrom(scope, val));\n if (instance) {\n return instance;\n }\n\n if (typeof val === 'function') {\n return this.parseControl(this._construct(scope, route, () => resolveToComponent(val, this.application)), scope, route);\n }\n return resolveToComponent(val);\n }\n\n private _resolveFrom(scope: ServiceProvider | undefined, token: any): any {\n const provider = scope ?? this._rootProvider();\n if (!provider || !provider.getAllServices().getDescriptor(token)) return null;\n return provider.get(token);\n }\n\n private _rootProvider(): ServiceProvider | undefined {\n try { return this.application?.provider ?? Application.main?.provider; } catch { return undefined; }\n }\n\n private async createInstance(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n return await this._instanceCreator(control, scope, route);\n }\n\n private async _instanceCreator(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n let val = await this.parseControl(control, scope, route) as any;\n assertLoadedComponent(val);\n // if (val instanceof Promise) {\n // return result.default ? result.default : result;\n\n // if (typeof val === 'function') {\n // try {\n // return val(this.application);\n // } catch {\n // // fallback: try as constructor\n // return new (val as any)(this.application);\n\n\n // if (val && typeof val.then === 'function') {\n // return await val;\n return val;\n }\n\n private async activator(container: ComponentBase) {\n try {\n //const reflect: any = (Reflect as any)?.getMetadata ? Reflect : null;\n //const paramTypes: any[] | undefined = reflect ? (Reflect as any).getMetadata('design:paramtypes', container) as any[] : undefined;\n // if (Array.isArray(paramTypes) && paramTypes.length) {\n // const args: any[] = [];\n // let anyResolved = false;\n // for (const t of paramTypes) {\n // try {\n // // try resolve token; if not registered, provider.getAsync will throw\n // const inst = await sp.getAsync(t);\n // } catch {\n // if (anyResolved) {\n // // If it looks like a constructor, try `new`, otherwise call as function\n // try { return new (container as any)(...args); } catch { return (container as any)(...args); }\n } catch { /* ignore */ }\n }\n pendingMount: WeakMap<any, Promise<void>> = new WeakMap();\n private pendingListeners = new WeakMap<ComponentBase, Function>(); \n private static readonly OUTLET_WARN_MS = 3000;\n \n private async mountChain(instances: any[], chain: any[], container: ComponentBase, navVersion: number): Promise<void> { \n for (let index = 0; index < instances.length;) { \n if (navVersion !== this._navVersion) return;\n\n let inst = instances[index] as ComponentBase; \n if (inst?.isDisposed) {\n inst = await this.createInstance(chain[index].control, this._rootProvider()?._currentScope());\n instances[index] = inst;\n }\n const outletName = (chain[index] && chain[index].extend && chain[index].extend.targetOutlet) || 'default';\n \n const outlet = this.findRouterView(container, outletName);\n \n if (!outlet || !container.isBuilt) {\n this._waitForOutlet(container, instances.slice(index), chain.slice(index), navVersion, outletName);\n return;\n }\n\n const revealed = this._revealed.delete(inst);\n const alreadyShown = outlet.current === inst && !revealed;\n await outlet.navigate(inst);\n if (this._pendingActivate.delete(inst)) {\n notifyActivated(inst);\n }\n const showHook = (chain[index] as RouteItem | undefined)?.onShow;\n if (showHook && !alreadyShown && outlet.current === inst && navVersion === this._navVersion) {\n callReported(() => showHook(inst), 'MJX306', 'onShow');\n }\n container = inst;\n index++;\n }\n }\n \n private _waitForOutlet(container: ComponentBase, instances: any[], chain: any[], navVersion: number, outletName: string): void {\n \n const oldCleanup = this.pendingListeners.get(container);\n if (oldCleanup) {\n try { oldCleanup(); } catch { }\n this.pendingListeners.delete(container);\n }\n\n let done = false;\n let warnTimer: any = undefined;\n\n const handler = async (_s: any, _e: any) => {\n if (done) return;\n cleanup(); \n if (navVersion !== this._navVersion) return;\n await this.mountChain(instances, chain, container, navVersion);\n };\n\n const cleanup = () => {\n if (done) return;\n done = true;\n this.pendingListeners.delete(container);\n try { (container as any).motif?.off?.(RouterViewBuilt as any, handler); } catch { }\n if (warnTimer !== undefined) {\n try { clearTimeout(warnTimer); } catch { }\n warnTimer = undefined;\n }\n };\n\n container.motif.on(RouterViewBuilt as any, handler);\n this.pendingListeners.set(container, cleanup);\n\n if (errorHandler.isDevelopment()) {\n warnTimer = setTimeout(() => {\n if (!done && navVersion === this._navVersion) {\n reportWarning('MJX301', [outletName, RoutingEngine.OUTLET_WARN_MS]);\n }\n }, RoutingEngine.OUTLET_WARN_MS);\n }\n }\n\n\n\n\n private findRouterView(root: ComponentBase, name: string = 'default'): RouterView | null {\n // 1) Önce mevcut container'ın ALT AĞACINDA ara (yakınlık öncelikli)\n const stack: ComponentBase[] = (root.controls?.items || []).slice();\n while (stack.length) {\n const c = stack.shift()!;\n if (!c || c.isDisposed) continue;\n if ((c as any).__isRouterView) {\n const rv = c as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if (c.controls && c.controls.items && c.controls.items.length) {\n for (const ch of c.controls.items) stack.push(ch);\n }\n }\n\n // 2) Alt ağaçta bulunamadıysa ve isim 'default' ise: üst/yan dallara BAKMA.\n if (!name || name === 'default') {\n return null;\n }\n\n const scopeId = typeof (root as any).scopeId === 'function' ? (root as any).scopeId() : (root as any).scopeId ?? '';\n var x = RouterViewRegistry.find(name, scopeId);\n if (x) return x;\n\n // 3) İsimli outlet için ÜST AĞAÇLARDA arama: her bir üst ata için, o atanının\n let current: any = root;\n let parent: any = current?.parent;\n while (parent) {\n const siblings: ComponentBase[] = (parent.controls?.items || []).filter((it: any) => it !== current);\n const q: ComponentBase[] = siblings.slice();\n while (q.length) {\n const node = q.shift()!;\n if (!node || (node as any).isDisposed) continue;\n if ((node as any).__isRouterView) {\n const rv = node as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if ((node as any).controls && (node as any).controls.items && (node as any).controls.items.length) {\n for (const ch of (node as any).controls.items) q.push(ch);\n }\n }\n current = parent;\n parent = parent.parent;\n }\n\n // 4) Hiçbir yerde bulunmadı\n return null;\n }\n\n}","import { $, Application, dom, safeCallSilentAsync } from \"..\";\nimport { Component } from \"../\";\nimport { NavigationDirection, NavigationOptions, ResolveResult, RouteInfo, RouteResolveContext, RouterOptions, StackEntryInfo } from \"./\";\nimport type { RouteSnapshot } from \"./routerState\";\nimport { ScrollMemory } from \"./scrollMemory\";\nimport { NavigationStack, StackNavigation } from \"./NavigationStack\";\nimport { RouteCollection, compareRouteRecords } from \"./\";\nimport { RouteItem, RouteRecord, RouterValidateEventArgs } from \"./\";\nimport { RoutingEngine } from \"./\";\nimport { errorHandler } from \"../common/ErrorHandler\";\nimport { motifError, reportError, reportWarning } from \"../common/diagnostics\";\n\nconst pathOf = (uri: string): string => uri.split('#')[0].split('?')[0];\n\ntype HistoryStamp = { index: number; session: string; hasState?: boolean };\n\ntype TraversalInfo = { direction: NavigationDirection; state: any; from: HistoryStamp | null };\n\nconst newHistorySession = (): string => Math.random().toString(36).slice(2, 10) + Date.now().toString(36);\n\nexport class UrlRoutingModule {\n private static readonly MAX_REDIRECTS = 10;\n private _routerOptions: RouterOptions;\n private routingEngine: RoutingEngine;\n routeCollection!: RouteCollection\n private routesMap: Map<any, RouteItem> = new Map();\n private mainApp!: Component;\n private application: Application;\n private _suppressBeforeEachOnce: boolean = false;\n private _suppressMiddlewaresOnce: boolean = false;\n private _scroll: ScrollMemory | null = null;\n\n constructor(options: RouterOptions, application: Application) {\n this._routerOptions = options;\n this.routeCollection = new RouteCollection(options.RouteItems);\n this.routingEngine = new RoutingEngine();\n this.application = application;\n this._installLinkInterceptor();\n\n const scrollMemory = options.scrollMemory;\n if (scrollMemory) {\n this._scroll = new ScrollMemory(scrollMemory === true ? {} : scrollMemory);\n this._scroll.locationAnchor = this._addressMode() === 'history';\n }\n\n if (options.stack && options.mode !== 'shell') {\n this._stack = new NavigationStack(options.stack);\n this.routingEngine.stack = this._stack;\n }\n }\n\n private _stack: NavigationStack | null = null;\n public getHooks(): RouterOptions['hooks'] | undefined {\n return this._routerOptions.hooks;\n }\n\n private _windowNavListener: ((this: Window, ev: Event) => any) | null = null;\n public start(mainApp: Component, shellUri?: string) {\n this.mainApp = mainApp;\n this.routingEngine.register(this.mainApp, this.application, this);\n const path = this._routerOptions.mode === 'shell' ? (shellUri ?? '/') : this._getCurrentUri();\n this._seedHistoryIndex();\n this._suppressMiddlewaresOnce = true;\n this.navigate(path);\n if (this._routerOptions.mode === 'shell') return;\n this._windowNavListener = () => {\n void this._onHistoryTraversal();\n };\n window.addEventListener(\n this._routerOptions.mode === 'hash' || this._routerOptions.mode === 'file' ? 'hashchange' : 'popstate',\n this._windowNavListener\n );\n }\n\n public get shownUri(): string | undefined {\n return this._previousRoute ? this._currentUri : undefined;\n }\n\n private _getCurrentUri(): string {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'hash' || mode === 'file') {\n const h = w?.location?.hash || '';\n return h && h.startsWith('#') ? h.slice(1) || '/' : '/';\n }\n return (w?.location?.pathname || '/') + (w?.location?.search || '');\n } catch { return '/'; }\n }\n\n private static readonly HISTORY_STAMP_KEY = '__motifHistory';\n private _historyStamp: HistoryStamp | null = null;\n\n private _addressMode(): NonNullable<RouterOptions['mode']> {\n const w = window as any;\n return this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n }\n\n private _readHistoryStamp(): HistoryStamp | null {\n try {\n const state = (window as any)?.history?.state;\n const stamp = state && typeof state === 'object' ? state[UrlRoutingModule.HISTORY_STAMP_KEY] : null;\n if (stamp && typeof stamp === 'object' && typeof stamp.index === 'number' && Number.isFinite(stamp.index) && typeof stamp.session === 'string') {\n return { index: stamp.index, session: stamp.session };\n }\n } catch { }\n return null;\n }\n\n private static _isPlainObject(value: any): boolean {\n if (!value || typeof value !== 'object') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n }\n\n private _withHistoryStamp(state: any, stamp: HistoryStamp): any {\n if (state == null) return { [UrlRoutingModule.HISTORY_STAMP_KEY]: stamp };\n if (UrlRoutingModule._isPlainObject(state)) {\n return { ...state, [UrlRoutingModule.HISTORY_STAMP_KEY]: stamp };\n }\n return state;\n }\n\n private _routerState(userState: any, stamp: HistoryStamp): any {\n return userState\n ? this._withHistoryStamp(userState, { ...stamp, hasState: true })\n : this._withHistoryStamp(null, stamp);\n }\n\n private _userStateOf(historyState: any): any {\n if (historyState == null) return undefined;\n if (!UrlRoutingModule._isPlainObject(historyState)) return historyState;\n const key = UrlRoutingModule.HISTORY_STAMP_KEY;\n if (!(key in historyState)) return historyState;\n const stamp = historyState[key];\n if (!stamp || stamp.hasState !== true) return undefined;\n const { [key]: _omit, ...rest } = historyState;\n return rest;\n }\n\n private _currentHistoryUserState(): any {\n if (this._addressMode() === 'shell') return undefined;\n try { return this._userStateOf((window as any)?.history?.state); } catch { return undefined; }\n }\n\n private _nextHistoryStamp(push: boolean): HistoryStamp {\n const base = this._historyStamp;\n if (!base) return { index: 0, session: newHistorySession() };\n return { index: push ? base.index + 1 : base.index, session: base.session };\n }\n\n private _stampCurrentEntry(stamp: HistoryStamp, userState?: any): void {\n try {\n const w = window as any;\n if (!w?.history || typeof w.history.replaceState !== 'function') return;\n const current = w.history.state;\n let next: any;\n if (userState) {\n next = this._routerState(userState, stamp);\n } else {\n const hasState = UrlRoutingModule._isPlainObject(current) && Object.keys(current).length > 0;\n next = this._withHistoryStamp(current, hasState ? { ...stamp, hasState: true } : stamp);\n }\n if (next !== current) w.history.replaceState(next, '');\n } catch { }\n }\n\n private _seedHistoryIndex(): void {\n if (this._addressMode() === 'shell') return;\n const existing = this._readHistoryStamp();\n if (existing) {\n this._historyStamp = existing;\n return;\n }\n const stamp: HistoryStamp = { index: 0, session: newHistorySession() };\n this._stampCurrentEntry(stamp);\n this._historyStamp = stamp;\n }\n\n private _pendingTraversal: TraversalInfo | null = null;\n\n private async _onHistoryTraversal(): Promise<void> {\n const shown = this._historyStamp;\n const arrived = this._readHistoryStamp();\n this._historyStamp = arrived;\n let direction: NavigationDirection = 'traverse';\n if (shown && arrived && shown.session === arrived.session && shown.index !== arrived.index) {\n direction = arrived.index < shown.index ? 'back' : 'forward';\n }\n this._pendingTraversal = { direction, state: this._currentHistoryUserState(), from: shown };\n let result: any;\n try {\n result = await this.navigate(this._getCurrentUri());\n } finally {\n this._pendingTraversal = null;\n }\n const cancelled = !!result && result.cancelled === true;\n try { this._stack?.traversalSettled(cancelled); } catch { }\n if (!cancelled) return;\n const now = this._readHistoryStamp();\n this._historyStamp = now;\n if (!shown || !now || now.session !== shown.session) return;\n const delta = shown.index - now.index;\n if (delta === 0) return;\n try { (window as any).history.go(delta); } catch { }\n }\n\n private _currentUri: string = '___startup___';\n private _previousRoute: any = null;\n\n public get currentUri(): string {\n return this._currentUri;\n }\n\n public async navigate(uri: string, options?: NavigationOptions): Promise<any> {\n const traversal = this._pendingTraversal;\n this._pendingTraversal = null;\n\n return await safeCallSilentAsync(async () => {\n\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('route:navigation-start', { uri }); } catch { }\n const suppressBeforeEachThisCall = this._suppressBeforeEachOnce;\n if (suppressBeforeEachThisCall) {\n this._suppressBeforeEachOnce = false;\n }\n const suppressMiddlewaresThisCall = this._suppressMiddlewaresOnce;\n if (suppressMiddlewaresThisCall) {\n this._suppressMiddlewaresOnce = false;\n }\n const navOptions: NavigationOptions = options || {};\n const force = navOptions.force || false;\n\n if (uri === this._currentUri && !force) {\n return { ok: true, skipped: true, uri };\n }\n\n let gate: { proceed: boolean; uri: string };\n if (suppressMiddlewaresThisCall) {\n gate = { proceed: true, uri };\n } else {\n gate = await this._runMiddlewares(uri);\n }\n\n if (!gate.proceed) {\n return {\n ok: false,\n uri: gate.uri,\n cancelled: true,\n reason: 'middleware'\n };\n }\n uri = gate.uri;\n\n let target = this.resolve(uri);\n\n let redirectedFrom: string | undefined;\n let redirectError: Error | undefined;\n let redirectChain = '';\n if (target.ok && target.route?.redirect) {\n const requested = uri;\n const visited: string[] = [requested];\n while (target.ok && target.route?.redirect) {\n const next = this._resolveRedirect(target, uri);\n if (!next) break;\n if (visited.length > UrlRoutingModule.MAX_REDIRECTS || visited.some(v => pathOf(v) === pathOf(next))) {\n redirectChain = [...visited, next].join(' → ');\n redirectError = motifError('MJX303', redirectChain);\n break;\n }\n visited.push(next);\n uri = next;\n target = this.resolve(uri);\n }\n if (redirectError) {\n reportWarning('MJX303', [redirectChain]);\n uri = requested;\n target = this._buildFallbackResult(uri, 'error', { path: uri, error: redirectError });\n } else if (uri !== requested) {\n redirectedFrom = requested;\n if (uri === this._currentUri && !force) {\n return { ok: true, skipped: true, uri };\n }\n }\n }\n\n const wasInitialNavigation = !this._previousRoute;\n const direction: NavigationDirection = wasInitialNavigation\n ? 'initial'\n : traversal ? traversal.direction : (navOptions.replace ? 'replace' : 'push');\n const entryState = traversal\n ? traversal.state\n : (wasInitialNavigation && navOptions.state === undefined ? this._currentHistoryUserState() : (navOptions.state || undefined));\n\n const toRoute = {\n path: target.uri || uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n options: options,\n redirectedFrom,\n direction,\n state: entryState\n };\n\n const fromRoute = this._previousRoute ? {\n path: this._previousRoute.path,\n params: this._previousRoute.params,\n meta: this._previousRoute.meta,\n options: this._previousRoute.options\n } : null;\n\n if (this._previousRoute && this._previousRoute.routeItem) {\n const currentRouteItem = this._previousRoute.routeItem as RouteItem;\n const leaveHook = currentRouteItem.onLeave || this._routerOptions.hooks?.onLeave;\n if (leaveHook) {\n try {\n const leaveContext = {\n from: {\n path: this._previousRoute.path,\n params: this._previousRoute.params,\n meta: this._previousRoute.meta\n },\n to: toRoute\n };\n const leaveResult = await leaveHook(leaveContext);\n if (leaveResult === false) {\n return { ok: false, cancelled: true, reason: 'onLeave' };\n }\n if (leaveResult && typeof leaveResult === 'object' && (leaveResult as any).cancel === true) {\n const customReason = (leaveResult as any).reason || 'onLeave';\n return { ok: false, cancelled: true, reason: customReason };\n }\n } catch (error) {\n reportError('MJX306', error, 'onLeave');\n }\n }\n }\n\n let guardResult: string | false | true = true;\n if (!suppressBeforeEachThisCall) {\n guardResult = await this.application._runBeforeEachGuards(toRoute, fromRoute);\n }\n\n if (guardResult === false) {\n return { ok: false, cancelled: true, reason: 'guard' };\n }\n\n if (typeof guardResult === 'string') {\n const addressShowsBlocked = this._addressShows(uri, redirectedFrom);\n return await this.navigate(guardResult, addressShowsBlocked ? { ...navOptions, replace: true } : options);\n }\n\n const snapshotOf = (result: ResolveResult): RouteSnapshot => ({\n target: result,\n chain: result.chain.map(r => this.routingEngine.generatePathString(r.path, result.params) || ''),\n direction,\n state: entryState,\n });\n\n if (!target.ok && !redirectError) {\n target = this._buildFallbackResult(uri, 'notFound', { path: uri });\n }\n this._currentUri = uri;\n this._previousRoute = {\n path: target.uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n routeItem: target.route\n };\n\n let appliedPath = target.uri;\n\n this._scroll?.leaving();\n\n const leavingStamp = traversal ? traversal.from : this._historyStamp;\n try {\n const replaceSource = !!redirectedFrom && this._addressShows(redirectedFrom);\n this._applyUrl(appliedPath, replaceSource ? { ...navOptions, replace: true } : navOptions);\n } catch { }\n const stackNav: StackNavigation | undefined = this._stack\n ? { direction, from: leavingStamp, to: this._historyStamp, uri: appliedPath }\n : undefined;\n\n try {\n await this.routingEngine.execute(target, stackNav, snapshotOf(target));\n } catch (error) {\n reportError('MJX304', error);\n target = this._buildFallbackResult(uri, 'error', { path: uri, error });\n try { await this.routingEngine.execute(target, stackNav, snapshotOf(target)); } catch (e2) { reportError('MJX305', e2); }\n }\n if (this._stack) this.application._routerState.touch();\n if (navOptions.scroll) { \n this._handleScrollBehavior(navOptions.scroll);\n } else {\n this._scroll?.arrived(this._uriWithHash(appliedPath, uri));\n }\n this.application.fire?.('motifjs-router-navigated', {\n uri: appliedPath,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n route: target.ok ? target.route : null,\n ok: target.ok,\n initial: wasInitialNavigation,\n redirectedFrom,\n direction,\n state: entryState\n });\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('route:navigation-end', { uri: appliedPath, params: target.params }); } catch { }\n\n return target;\n\n }, 'UrlRoutingModule.navigate');\n\n }\n \n public describeStack(): StackEntryInfo[] | undefined {\n return this._stack ? this._stack.describe() : undefined;\n }\n\n public routeInfos(): RouteInfo[] {\n const out: RouteInfo[] = [];\n const visit = (node: RouteItem, chain: RouteItem[]) => {\n const nextChain = [...chain, node];\n out.push({\n fullPath: node.fullPath || node.path,\n name: node.name ?? null,\n meta: node.meta ?? node.extend ?? {},\n route: node,\n chain: nextChain,\n });\n for (const child of node.childs || []) visit(child, nextChain);\n };\n for (const node of this.routeCollection?.['routes'] || []) visit(node, []);\n return out;\n }\n\n public href(name: string, params?: Record<string, any>): string {\n const routeItem = this.routeCollection['routesMap']?.get(name);\n if (!routeItem) throw motifError('MJX302', name);\n const path = routeItem.fullPath || routeItem.path;\n return this.routingEngine.generatePathString(path, params || {}) || path;\n }\n\n public async evict(route?: RouteItem | string | null): Promise<void> {\n let item: RouteItem | null | undefined = null;\n if (typeof route === 'string') {\n item = this.routeCollection['routesMap']?.get(route);\n if (!item) throw motifError('MJX302', String(route));\n } else {\n item = route;\n }\n await this.routingEngine.evict(item);\n }\n\n private _fallbackRoutes: { notFound?: RouteItem; error?: RouteItem } = {};\n\n private _getFallbackRoute(kind: 'notFound' | 'error'): RouteItem {\n const existing = this._fallbackRoutes[kind];\n if (existing) return existing;\n const custom = this._routerOptions.fallbacks?.[kind];\n const control = custom ?? (kind === 'notFound' ? UrlRoutingModule._builtinNotFound : UrlRoutingModule._builtinError);\n const item: RouteItem = {\n path: '',\n fullPath: null,\n control,\n name: kind === 'notFound' ? 'not-found' : 'error',\n childs: [],\n extend: {},\n meta: {},\n validate: undefined,\n keepAlive: false,\n };\n this._fallbackRoutes[kind] = item;\n return item;\n }\n\n private _buildFallbackResult(uri: string, kind: 'notFound' | 'error', params: Record<string, any>): ResolveResult {\n const fallback = this._getFallbackRoute(kind);\n const prefix = this._findLayoutPrefix(uri);\n const chain = [...(prefix?.chain ?? []), fallback];\n const mergedExtend: Record<string, any> = {};\n const mergedMeta: Record<string, any> = {};\n for (const item of chain) {\n if (item?.extend && typeof item.extend === 'object') Object.assign(mergedExtend, item.extend);\n if (item?.meta && typeof item.meta === 'object') Object.assign(mergedMeta, item.meta);\n }\n return {\n ok: false,\n uri,\n fullPath: null,\n route: fallback,\n chain,\n params: { ...(prefix?.params ?? {}), ...params },\n extend: mergedExtend,\n meta: mergedMeta,\n };\n }\n\n private _findLayoutPrefix(uri: string): { chain: RouteItem[]; params: Record<string, any> } | null {\n const path = uri.split('?')[0].split('#')[0];\n const segs = path.split('/').filter(Boolean);\n let best: { rec: RouteRecord; params: Record<string, any>; depth: number } | null = null;\n for (const rec of this.routeCollection?.records || []) {\n if (!rec.leaf.childs || !rec.leaf.childs.length) continue;\n const depth = rec.fullPath.split('/').filter(Boolean).length;\n if (depth > segs.length) continue;\n const prefix = '/' + segs.slice(0, depth).join('/');\n let matched = false;\n try { matched = rec.scanner.exist(prefix, this._pageSearch()); } catch { matched = false; }\n if (!matched) continue;\n const params = { ...rec.scanner.parameters };\n if (!this.validateChain(prefix, rec, params)) continue;\n if (!best || rec.chain.length > best.rec.chain.length || (rec.chain.length === best.rec.chain.length && depth > best.depth)) {\n best = { rec, params, depth };\n }\n }\n return best ? { chain: best.rec.chain, params: best.params } : null;\n }\n\n private static _builtinNotFound = () => new Component('div', {\n initializeComponent(sender: Component) {\n sender.style({\n padding: '20px', fontFamily: 'Arial, sans-serif', display: 'flex', 'flex-direction': 'column', 'align-items': 'center'\n });\n (sender.element as HTMLElement).appendChild($('h2', {}, ...['404 - Not Found']));\n (sender.element as HTMLElement).appendChild($('p', {}, ...['The requested page was not found.']));\n },\n });\n\n private static _builtinError = () => new Component('div', {\n initializeComponent(sender: Component) {\n sender.style({\n padding: '20px', fontFamily: 'Arial, sans-serif', display: 'flex', 'flex-direction': 'column', 'align-items': 'center'\n });\n (sender.element as HTMLElement).appendChild($('h2', {}, ...['Error']));\n (sender.element as HTMLElement).appendChild($('p', {}, ...['The requested page could not be loaded.']));\n },\n });\n\n public async navigateByName(name: string, params?: Record<string, any>, options?: NavigationOptions): Promise<any> {\n\n return await this.navigate(this.href(name, params), options);\n }\n\n private async _runMiddlewares(initialUri: string): Promise<{ proceed: boolean, uri: string }> {\n let urix = initialUri;\n const ctx: RouteResolveContext = {\n uri: urix,\n rewritePath: (uri: string) => {\n urix = uri;\n (ctx as any).uri = uri;\n },\n context: this.application\n };\n let proceed = false;\n const stack = this._routerOptions.middlewareCollections ? this._routerOptions.middlewareCollections() || [] : [];\n const dispatch = async (i: number): Promise<void> => {\n if (i === stack.length) { proceed = true; return; }\n const fn = stack[i];\n await fn(ctx, async () => { await dispatch(i + 1); });\n };\n if (stack.length === 0) {\n proceed = true;\n } else {\n await dispatch(0);\n }\n return { proceed, uri: urix };\n }\n\n public resolve(uri: string): ResolveResult {\n const candidates: Array<{ rec: RouteRecord; params: Record<string, any> }> = [];\n const pageSearch = this._pageSearch();\n for (const rec of this.routeCollection?.records! || []) {\n if (!rec.scanner.exist(uri, pageSearch)) continue;\n const params = { ...rec.scanner.parameters };\n if (!this.validateChain(uri, rec, params)) continue;\n candidates.push({ rec, params });\n }\n\n if (candidates.length === 0) {\n const catchAll = (this.routeCollection?.records || []).find(r => r.scanner.exist('/*'));\n if (catchAll) {\n const mergedExtend: Record<string, any> = {};\n try {\n for (const item of catchAll.chain) {\n if (item && item.extend && typeof item.extend === 'object') {\n Object.assign(mergedExtend, item.extend);\n }\n }\n } catch { /* ignore */ }\n\n return {\n ok: true,\n uri,\n fullPath: catchAll.fullPath,\n route: catchAll.leaf,\n chain: catchAll.chain,\n params: {},\n extend: mergedExtend || {},\n meta: (catchAll as any).meta || {}\n };\n }\n\n return {\n ok: false,\n uri,\n fullPath: null,\n route: null,\n chain: [],\n params: {},\n extend: {}\n };\n }\n\n let best = candidates[0];\n const groups = new Map<string, Array<{ rec: RouteRecord; params: Record<string, any> }>>();\n for (const c of candidates) {\n // Aynı path grubunda en uzun zincirli olanı seç.\n const key = c.rec.fullPath;\n const arr = groups.get(key) || [];\n arr.push(c); groups.set(key, arr);\n }\n let pickedFromDuplicate = false;\n for (const [key, arr] of groups) {\n if (arr.length > 1) {\n // Legacy sıralamaya dön: sığ zincir önce, sonra uzun fullPath. \n const pool = arr.some(c => !c.rec.aliasOf) ? arr.filter(c => !c.rec.aliasOf) : arr;\n const deepest = pool.reduce((a, b) => a.rec.chain.length >= b.rec.chain.length ? a : b);\n best = deepest;\n pickedFromDuplicate = true;\n break;\n }\n }\n if (!pickedFromDuplicate) {\n // En iyi adayı ResolveResult'a dönüştür.\n // Ortak tercih kuralı (RouteCollection.compareRouteRecords): sığ zincir, statik segment, az parametre, uzun path\n best = candidates.reduce((a, b) => compareRouteRecords(a.rec, b.rec) <= 0 ? a : b, candidates[0]);\n }\n\n const rec = best.rec;\n const params = best.params;\n const mergedExtend: Record<string, any> = {};\n try {\n for (const item of rec.chain) {\n if (item && item.extend && typeof item.extend === 'object') {\n Object.assign(mergedExtend, item.extend);\n }\n }\n } catch { /* ignore */ }\n return {\n ok: true,\n uri,\n fullPath: rec.fullPath,\n aliasOf: rec.aliasOf ?? null,\n route: rec.leaf,\n chain: rec.chain,\n params,\n extend: mergedExtend,\n meta: (() => {\n const mergedMeta: Record<string, any> = {};\n try {\n for (const item of rec.chain) {\n if (item && (item as any).meta && typeof (item as any).meta === 'object') {\n Object.assign(mergedMeta, (item as any).meta);\n }\n }\n } catch { /* ignore */ }\n return mergedMeta;\n })()\n };\n }\n\n // Doğrulama başarısızsa zincir geçersiz.\n private validateChain(uri: string, rec: RouteRecord, params: Record<string, any>): boolean {\n for (const item of rec.chain) {\n if (typeof item.validate === 'function') {\n const e: RouterValidateEventArgs = {\n uri,\n key: item.name ?? rec.fullPath,\n // createInstance: control alanından gerçek component instance'ını üretir.\n routes: this.routesMap,\n params\n };\n // Fonksiyon ise: doğrudan çağırmayı dener (factory gibi).\n if (!item.validate(e)) return false;\n }\n }\n return true;\n }\n\n private _navHandler: ((e: Event) => void) | null = null;\n private _installLinkInterceptor() {\n try {\n if (this._navHandler) return;\n this._navHandler = (ev: Event) => {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n let el = ev.target as HTMLElement | null;\n while (el && el !== document.body) {\n if (el instanceof HTMLAnchorElement) break;\n el = el.parentElement;\n }\n if (!el || !(el instanceof HTMLAnchorElement)) return;\n // opt-in via data-router-link veya rel=\"router\"\n const rel = el.getAttribute('rel') || '';\n const optIn = el.getAttribute(\"x-command\") == 'router' || el.hasAttribute('data-router-link') || rel.toLowerCase() === 'router';\n if (!optIn) return;\n // modifier keys veya target=\"_blank\" => ignore\n const a = el as HTMLAnchorElement;\n if (a.target && a.target !== '_self') return;\n if ((ev as MouseEvent).metaKey || (ev as MouseEvent).ctrlKey || (ev as MouseEvent).shiftKey || (ev as MouseEvent).altKey) return;\n let href = a.getAttribute('href') || '';\n if (!href) {\n href = a.getAttribute('x-to') || '';\n };\n if (!href) return;\n // same-origin kontorlü (history mode için)\n if (mode === 'history') {\n const u = new URL(href, w.location.href);\n if (u.origin !== w.location.origin) return;\n ev.preventDefault();\n const path = u.pathname + u.search + u.hash;\n this.navigate(path);\n return;\n }\n ev.preventDefault();\n const path = href.startsWith('#') ? href.slice(1) : href;\n this.navigate(path);\n };\n document.addEventListener('click', this._navHandler);\n } catch { }\n }\n\n private _applyUrl(uri: string, options: NavigationOptions = {}) {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'shell') return; // shell mode'da URL değişikliğine izin verme\n\n if (mode === 'hash' || mode === 'file') {\n const target = uri.startsWith('#') ? uri : ('#' + uri);\n if (w?.location?.hash !== target) {\n if (options.replace && w?.history && typeof w.history.replaceState === 'function') {\n const stamp = this._nextHistoryStamp(false);\n w.history.replaceState(this._routerState(options.state, stamp), '', target);\n this._historyStamp = stamp;\n } else {\n w.location.hash = target;\n const stamp = this._nextHistoryStamp(true);\n this._stampCurrentEntry(stamp, options.state);\n this._historyStamp = stamp;\n }\n }\n return;\n }\n\n if (w?.history && typeof w.history.pushState === 'function') {\n const current = (w.location.pathname || '/') + (w.location.search || '');\n if (current !== uri) {\n if (options.replace) {\n const stamp = this._nextHistoryStamp(false);\n w.history.replaceState(this._routerState(options.state, stamp), '', uri);\n this._historyStamp = stamp;\n } else {\n const stamp = this._nextHistoryStamp(true);\n w.history.pushState(this._routerState(options.state, stamp), '', uri);\n this._historyStamp = stamp;\n }\n }\n }\n } catch { }\n }\n\n private _resolveRedirect(target: ResolveResult, uri: string): string | null {\n const redirect = target.route?.redirect;\n if (!redirect) return null;\n if (typeof redirect === 'function') {\n const result = redirect({\n path: target.uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend\n });\n return typeof result === 'string' && result.length > 0 ? result : null;\n }\n const path = this.routingEngine.generatePathString(redirect, target.params || {});\n const hashIndex = uri.indexOf('#');\n const hash = hashIndex >= 0 ? uri.slice(hashIndex) : '';\n const beforeHash = hashIndex >= 0 ? uri.slice(0, hashIndex) : uri;\n const queryIndex = beforeHash.indexOf('?');\n const query = queryIndex >= 0 ? beforeHash.slice(queryIndex) : '';\n const ownHashIndex = path.indexOf('#');\n const ownHash = ownHashIndex >= 0 ? path.slice(ownHashIndex) : '';\n let result = ownHashIndex >= 0 ? path.slice(0, ownHashIndex) : path;\n if (query && !result.includes('?')) result += query;\n return result + (ownHash || hash);\n }\n\n private _pageSearch(): string | undefined {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'history' || mode === 'shell') return undefined;\n return w?.location?.search || undefined;\n } catch { return undefined; }\n }\n\n private _addressShows(...uris: Array<string | undefined>): boolean {\n const current = this._getCurrentUri().split('#')[0];\n return uris.some(u => !!u && u.split('#')[0] === current);\n }\n\n private _uriWithHash(appliedPath: string, requestedUri: string): string {\n const index = requestedUri.indexOf('#');\n if (index < 0 || appliedPath.indexOf('#') >= 0) return appliedPath;\n return appliedPath + requestedUri.slice(index);\n }\n\n private _handleScrollBehavior(scrollOption?: NavigationOptions['scroll']) {\n if (!scrollOption) return;\n\n try {\n if (scrollOption === 'top') {\n window.scrollTo({ top: 0, behavior: 'auto' });\n } else if (scrollOption === 'smooth') {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n } else if (scrollOption === 'instant') {\n window.scrollTo({ top: 0, behavior: 'instant' });\n } else if (typeof scrollOption === 'object') {\n window.scrollTo({\n top: scrollOption.top || 0,\n left: scrollOption.left || 0,\n behavior: scrollOption.behavior || 'auto'\n });\n }\n } catch { }\n }\n\n public dispose(): Promise<void> {\n try { this._scroll?.dispose(); } catch { }\n this._scroll = null;\n this._historyStamp = null;\n let done: Promise<void> = Promise.resolve();\n try {\n // keepAlive önbelleğindeki örnekleri bırak\n try { done = this.routingEngine.dispose(); } catch { }\n if (this._navHandler) {\n try { document.removeEventListener('click', this._navHandler); } catch { }\n this._navHandler = null;\n }\n if (this._windowNavListener) {\n const evt = this._routerOptions.mode === 'hash' || this._routerOptions.mode === 'file' ? 'hashchange' : 'popstate';\n try { window.removeEventListener(evt, this._windowNavListener); } catch { }\n this._windowNavListener = null;\n }\n } catch { }\n return done;\n }\n\n}","import { Signal } from \"../store/Signal\";\nimport { motifError } from \"../common/diagnostics\";\nimport type { UrlRoutingModule } from \"./UrlRoutingModule\";\nimport type { NavigationDirection, NavigationOptions, ResolveResult, Router } from \"./common\";\nimport type { RouteItem } from \"./RouteItem\";\n\nexport type RouteSnapshot = {\n target: ResolveResult;\n chain: string[];\n direction: NavigationDirection | undefined;\n state: any;\n};\n\nexport class RouterState {\n readonly version = new Signal(0);\n private _current: RouteSnapshot | null = null;\n private _constructing: RouteSnapshot | null = null;\n\n read(): RouteSnapshot | null {\n this.version.value;\n return this._constructing ?? this._current;\n }\n\n commit(snapshot: RouteSnapshot): void {\n this._current = snapshot;\n this.touch();\n }\n\n reset(): void {\n this._current = null;\n this.touch();\n }\n\n touch(): void {\n this.version.value = this.version.peek() + 1;\n }\n\n constructWith<T>(snapshot: RouteSnapshot | undefined, create: () => T): T {\n if (!snapshot) return create();\n const previous = this._constructing;\n this._constructing = snapshot;\n try {\n return create();\n } finally {\n this._constructing = previous;\n }\n }\n}\n\nexport function createRouter(state: RouterState, module: () => UrlRoutingModule | undefined): Router {\n const required = (): UrlRoutingModule => {\n const current = module();\n if (!current) throw motifError('MJX309');\n return current;\n };\n const target = () => state.read()?.target;\n return {\n get params() { return target()?.params ?? {}; },\n get route() { return target()?.route ?? null; },\n get ok() { return target()?.ok ?? false; },\n get uri() { return target()?.uri ?? ''; },\n get fullPath() { return target()?.fullPath ?? null; },\n get aliasOf() { return target()?.aliasOf ?? null; },\n get extend() { return target()?.extend ?? {}; },\n get meta() {\n const current = target();\n return current ? ((current as any).meta ?? current.extend) : {};\n },\n get chain() { return state.read()?.chain ?? []; },\n get direction() { return state.read()?.direction; },\n get state() { return state.read()?.state; },\n get stack() {\n state.version.value;\n return module()?.describeStack();\n },\n get routes() {\n state.version.value;\n return module()?.routeInfos() ?? [];\n },\n navigate: async (uri: string, options?: NavigationOptions) => {\n await required().navigate(uri, options);\n },\n navigateByName: async (name: string, params?: Record<string, any>, options?: NavigationOptions) => {\n await required().navigateByName(name, params, options);\n },\n evict: async (route?: RouteItem | string | null) => {\n await required().evict(route);\n },\n resolve: (uri: string) => required().resolve(uri),\n href: (name: string, params?: Record<string, any>) => required().href(name, params),\n };\n}\n","import { ServiceCollection } from \"./dependencyInjection/ServiceCollection\";\nimport { ServiceProvider } from \"./dependencyInjection/ServiceProvider\";\nimport { Component } from \"./component/Component\";\nimport { RouteItem } from \"./routing/RouteItem\";\nimport { ensureDevtoolsFlagInitialized, setRoutes, setDevtoolsEnabled, isEnabled as isDevtoolsEnabled } from \"./devtools/devbus\";\nimport { lintRoutes } from \"./devtools/routeLinter\";\nimport { initOverlayIfEnabled, initDevtoolsButton } from \"./devtools/overlay\";\nimport { RouterView } from \"./routing/RouterView\";\nimport { UrlRoutingModule } from \"./routing/UrlRoutingModule\";\nimport { RouterState, createRouter } from \"./routing/routerState\";\nimport { NavigationDirection, NavigationOptions, Router, RouteResolveContext, RouterNavigatedEventArgs, RouterEvents, RouterOptions, ScrollMemoryOptions, StackOptions } from \"./routing\";\nimport { errorHandler, safeCall, safeCallSilent, setErrorConsoleLogging } from \"./common/ErrorHandler\";\nimport { engine, configureReactivityLeakMonitor } from \"./store\";\nimport { MotifError, callReported, formatMotifMessage, motifError, reportError } from \"./common/diagnostics\";\nimport { flushCompilerContractWarnings } from \"./common/compilerContract\";\nimport { isTransitionMode, transitionSettings, TransitionMode } from \"./common/transitionRegistry\";\nimport { ComponentBase } from \"./component\";\nexport interface IStartup {\n configuration?: (services: any) => void;\n\n}\n\nlet _globalApplication: Application | null = null;\n\nexport type ApplicationState = 'initializing' | 'running' | 'disposing' | 'disposed';\nlet _globalBuilder: ApplicationBuilder | null = null;\nlet startedApplicationBuilder = false;\nconst _applicationStack = new Map<string | symbol, { builder: ApplicationBuilder, app: Application }>();\n\nexport class ApplicationBuilder {\n\n public services: ServiceCollection = new ServiceCollection();\n\n constructor() {\n if ((_globalApplication && _globalApplication.state !== 'disposing') || startedApplicationBuilder) {\n throw new MotifError('MJX405', formatMotifMessage('MJX405'), { cause: _globalApplication });\n }\n startedApplicationBuilder = true;\n }\n\n build() {\n // if (_globalApplication) {\n // throw new Error(\"ApplicationBuilder: Only one instance of ApplicationBuilder is allowed.\");\n this.services.autoRegisterInjectables();\n const provider = this.services.buildServiceProvider();\n this.services.addSingleton(ServiceProvider, provider);\n var app = new Application(provider);\n this.services.addSingleton(Application, app);\n _globalApplication = app;\n return app;\n }\n\n rebuild() {\n if (_globalApplication) {\n _globalApplication.provider.dispose();\n _globalApplication.provider = this.services.buildServiceProvider();\n return _globalApplication;\n }\n return this.build();\n }\n}\n\ninterface ApplicationEvents {\n 'router-changed': 'motifjs-router-navigated';\n}\nexport type AppLifecycleState = 'visible' | 'hidden' | 'frozen' | 'resumed' | 'restored' | 'online' | 'offline';\n\nexport type AppLifecycleEventArgs = {\n state: AppLifecycleState;\n visible: boolean;\n online: boolean;\n};\n\nexport type NavigationGuardContext = {\n to: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions, redirectedFrom?: string, direction?: NavigationDirection, state?: any };\n from: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions } | null;\n};\n\nexport type NavigationGuard = (\n context: NavigationGuardContext,\n next: (redirect?: string | false) => void\n) => void | Promise<void>;\n\nexport type ContainerGroups = {\n [key: string]: {\n registry: () => any;\n initialize: () => any\n };\n}\n\nexport class Application {\n public static get main(): Application {\n return _globalApplication!;\n }\n\n constructor(public provider: ServiceProvider) { }\n public static _disposingCount = 0;\n private _state: ApplicationState = 'initializing';\n private _disposing?: Promise<void>;\n public get state(): ApplicationState {\n return this._state;\n }\n private _middlewares: Array<(ctx: RouteResolveContext, next: () => Promise<void>) => any> = [];\n private _beforeEachGuards: NavigationGuard[] = [];\n public readonly _routerState = new RouterState();\n public readonly router: Router = createRouter(this._routerState, () => this.urlRoutingModule);\n private events: Map<any, Set<any>> = new Map();\n\n public static CreateBuilder(): ApplicationBuilder {\n return new ApplicationBuilder();\n }\n private appShell!: Component;\n public getAppShell(): Component {\n return this.appShell;\n }\n public run(host: HTMLElement | string | Node, appRoot?: any): void {\n safeCallSilent(() => {\n engine.startGc();\n }, 'Application.run.engine.startGc');\n let target: HTMLElement | null;\n if (typeof host === 'string') {\n target = document.querySelector(host) as HTMLElement | null;\n if (!target) throw motifError('MJX406', host);\n } else {\n target = host as HTMLElement;\n }\n let rootInstance: any = appRoot;\n\n\n this._state = 'running';\n const AppShell = new Component(target);\n this.appShell = AppShell;\n safeCallSilent(() => {\n (AppShell as any)._keepElementOnDispose = true;\n (AppShell as any).application = this;\n (AppShell as any).provider = this.provider;\n\n }, 'Application.run.setupAppShell');\n\n if (!rootInstance) {\n rootInstance = AppShell;\n rootInstance.controls.add(new RouterView({ name: 'default' }));\n } else {\n rootInstance.parent = AppShell;\n AppShell.controls.add(rootInstance);\n }\n AppShell.build();\n this._routerRoot = rootInstance;\n if (this.urlRoutingModule) {\n this.urlRoutingModule.start(rootInstance);\n this._startedRouter = this.urlRoutingModule;\n } else {\n } \n try {\n } catch { }\n }\n\n public insert(component: Component): void {\n this.appShell.controls.add(component);\n }\n public remove(component: Component): void {\n this.appShell.controls.remove(component);\n }\n\n public attach(component: Component): void {\n this.appShell.controls.add(component);\n }\n\n public detach(component: Component): void {\n this.appShell.controls.detach(component);\n }\n\n public appendToMainHost(component: Node): void {\n this.appShell.element?.appendChild(component);\n }\n\n public dispose(): Promise<void> {\n if (this._disposing) return this._disposing;\n this._state = 'disposing';\n Application._disposingCount++;\n startedApplicationBuilder = false;\n let routerDone: Promise<void> | undefined;\n safeCallSilent(() => { this._removeLifecycleListeners(); }, 'Application.dispose.lifecycle');\n safeCallSilent(() => { routerDone = (this as any).urlRoutingModule?.dispose?.(); }, 'Application.dispose.router');\n safeCallSilent(() => { engine.stopGc(); }, 'Application.dispose.gcStop');\n safeCallSilent(() => {\n try {\n const w = window as any;\n if (w && w.history && typeof w.history.replaceState === 'function') {\n // Normalize to root path; for hash mode also clear the hash\n w.history.replaceState({}, '', '/');\n }\n } catch { /* ignore */ }\n }, 'Application.dispose.resetUrl');\n transitionSettings.mode = 'concurrent';\n const shell = this.appShell;\n return this._disposing = (async () => {\n try { await routerDone; } catch (error) { reportError('MJX307', error); }\n if (shell && !shell.isDisposed) {\n try { await shell.dispose(); } catch (error) { reportError('MJX307', error); }\n }\n try { await this.provider.dispose(); } catch { }\n if (_globalApplication === this) _globalApplication = null;\n this._state = 'disposed';\n Application._disposingCount--;\n })();\n }\n\n public useTransitions(options: { mode?: TransitionMode }): Application {\n if (isTransitionMode(options?.mode)) transitionSettings.mode = options.mode;\n return this;\n }\n\n public use(callback: (ctx: RouteResolveContext, next: () => Promise<void>) => any): Application {\n this._middlewares.push(callback);\n return this;\n }\n\n public useGuard(guard: NavigationGuard): Application {\n this._beforeEachGuards.push(guard);\n return this;\n }\n\n public async _runBeforeEachGuards(to: any, from: any): Promise<string | false | true> {\n const context: NavigationGuardContext = { to, from };\n\n for (const guard of this._beforeEachGuards) {\n let redirectPath: string | false | undefined;\n let guardResolved = false;\n\n const next = (redirect?: string | false) => {\n guardResolved = true;\n redirectPath = redirect;\n };\n\n try {\n await guard(context, next);\n } catch (error) {\n reportError('MJX306', error, 'guard');\n return false;\n }\n\n if (!guardResolved) {\n return false;\n }\n\n if (redirectPath === false) {\n return false;\n }\n\n if (typeof redirectPath === 'string') {\n return redirectPath;\n }\n }\n\n return true; \n }\n\n private urlRoutingModule!: UrlRoutingModule;\n private _routerConfig: RouterOptions | null = null;\n private _routerRoot: Component | null = null;\n private _startedRouter: UrlRoutingModule | null = null;\n public useRouter(options: RouteItem[] | {\n routes: RouteItem[],\n mode?: 'history' | 'hash' | 'file' | 'shell',\n fallbacks?: { notFound?: any, error?: any },\n hooks?: RouterEvents,\n scrollMemory?: boolean | ScrollMemoryOptions,\n stack?: boolean | StackOptions\n }): Application {\n let routes: RouteItem[];\n let mode: 'history' | 'hash' | 'file' | 'shell' | undefined;\n let fallbacks: { notFound?: any, error?: any } | undefined;\n let hooks: RouterEvents | undefined;\n let scrollMemory: boolean | ScrollMemoryOptions | undefined;\n let stack: boolean | StackOptions | undefined;\n if (Array.isArray(options)) {\n routes = options;\n } else {\n routes = options.routes;\n mode = options.mode;\n fallbacks = options.fallbacks;\n hooks = options.hooks;\n scrollMemory = options.scrollMemory;\n stack = options.stack;\n }\n\n if (this.urlRoutingModule) {\n this.urlRoutingModule.dispose();\n }\n\n this._routerConfig = {\n mode,\n fallbacks,\n middlewareCollections: () => this._middlewares,\n RouteItems: routes,\n hooks,\n scrollMemory,\n stack,\n };\n this.urlRoutingModule = new UrlRoutingModule(this._routerConfig, this);\n\n this._routerState.reset();\n\n\n\n safeCallSilent(() => {\n ensureDevtoolsFlagInitialized();\n initOverlayIfEnabled();\n setRoutes(routes as any);\n if (this._isDevelopment || (globalThis as any).__MOTIF_DEV__ === true || isDevtoolsEnabled()) {\n lintRoutes(routes as any);\n }\n }, 'Application.useRouter.devtools');\n\n return this;\n }\n\n public restartRouter() {\n const root = this._routerRoot;\n if (!root || !this._routerConfig) return this;\n const previous = this._startedRouter;\n const shownUri = previous?.shownUri;\n let fresh = this.urlRoutingModule;\n if (!fresh || fresh === previous) {\n previous?.dispose();\n fresh = new UrlRoutingModule(this._routerConfig, this);\n this.urlRoutingModule = fresh;\n }\n this._routerState.reset();\n this._startedRouter = fresh;\n fresh.start(root, shownUri);\n return this;\n }\n\n public async navigate(uri: string, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigate(uri, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public async navigateByName(name: string, params?: Record<string, any>, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigateByName(name, params, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public on<T>(event: ApplicationEvents[keyof ApplicationEvents & string] | any, handler: (args?: T) => void): any {\n var e = this.events.get(event);\n if (!e) {\n this.events.set(event, new Set());\n e = this.events.get(event);\n }\n if (e) {\n e.add(handler);\n }\n return () => this.off(event, handler);\n }\n public off<T>(event: any, handler: (args?: T) => void): void {\n var e = this.events.get(event);\n if (e) {\n e.delete(handler);\n }\n }\n\n public fire<T>(event: any, args?: T): void {\n var e = this.events.get(event);\n if (e) {\n e.forEach(handler => {\n callReported(() => handler(args), 'MJX123', String(event));\n });\n }\n }\n\n public onRouterChanged(handler: (args?: RouterNavigatedEventArgs) => unknown): any {\n return this.on<RouterNavigatedEventArgs>('motifjs-router-navigated', handler);\n }\n\n public get isVisible(): boolean {\n try { return typeof document === 'undefined' || document.visibilityState !== 'hidden'; } catch { return true; }\n }\n\n public get isOnline(): boolean {\n try { return typeof navigator === 'undefined' || navigator.onLine !== false; } catch { return true; }\n }\n\n private _lifecycleOff: Array<() => void> | null = null;\n\n public onLifecycle(handler: (args?: AppLifecycleEventArgs) => unknown): () => void {\n this._installLifecycleListeners();\n return this.on<AppLifecycleEventArgs>('motifjs-app-lifecycle', handler);\n }\n\n private _emitLifecycle(state: AppLifecycleState): void {\n this.fire<AppLifecycleEventArgs>('motifjs-app-lifecycle', { state, visible: this.isVisible, online: this.isOnline });\n }\n\n private _installLifecycleListeners(): void {\n if (this._lifecycleOff) return;\n const offs: Array<() => void> = [];\n const listen = (target: EventTarget | undefined, type: string, fn: (e: any) => void) => {\n if (!target) return;\n try {\n target.addEventListener(type, fn);\n offs.push(() => { try { target.removeEventListener(type, fn); } catch { } });\n } catch { }\n };\n const doc = typeof document !== 'undefined' ? document : undefined;\n const win = typeof window !== 'undefined' ? window : undefined;\n listen(doc, 'visibilitychange', () => this._emitLifecycle(this.isVisible ? 'visible' : 'hidden'));\n listen(doc, 'freeze', () => this._emitLifecycle('frozen'));\n listen(doc, 'resume', () => this._emitLifecycle('resumed'));\n listen(win, 'pageshow', (e: PageTransitionEvent) => { if (e && e.persisted) this._emitLifecycle('restored'); });\n listen(win, 'online', () => this._emitLifecycle('online'));\n listen(win, 'offline', () => this._emitLifecycle('offline'));\n this._lifecycleOff = offs;\n }\n\n private _removeLifecycleListeners(): void {\n const offs = this._lifecycleOff;\n this._lifecycleOff = null;\n if (offs) for (const off of offs) off();\n }\n\n\n private _isDevelopment: boolean = false;\n private _enableErrorLogging: boolean = true;\n public get isDevelopmentModeEnabled(): boolean {\n return this._isDevelopment;\n }\n\n /** Enable reactive leak monitoring (dev önerilir) */\n public useReactiveMonitor(opts: { enabled?: boolean; threshold?: number; name?: string } = {}): this {\n safeCallSilent(() => { configureReactivityLeakMonitor(opts); }, 'Application.useReactiveMonitor.core');\n return this;\n }\n\n public useDevelopment(isDev: boolean = true): this {\n this._isDevelopment = isDev;\n errorHandler.setDevelopmentMode(isDev);\n safeCallSilent(() => { (globalThis as any).__MOTIF_DEV__ = isDev; }, 'Application.useDevelopment.flag');\n safeCallSilent(() => { setDevtoolsEnabled(isDev); }, 'Application.useDevelopment.devtools');\n if (isDev) flushCompilerContractWarnings();\n return this;\n }\n\n public useLogging(enabled: boolean = true): this {\n this._enableErrorLogging = enabled;\n setErrorConsoleLogging(enabled);\n return this;\n }\n\n\n\n\n}\n\n\nexport class ApplicationService {\n public static get current(): Application {\n return Application.main;\n }\n public static initialized: boolean = false;\n public static addToMain(...components: ComponentBase[]) {\n this.current && this.current.getAppShell().controls.add(...components);\n }\n}\n\nexport function useNavigation(): Router {\n return Application.main.router;\n}\n\nexport function useApplication() {\n return {\n application: Application.main,\n services: Application.main.provider,\n router: Application.main.router,\n attach(...components: ComponentBase[]) {\n Application.main && Application.main.getAppShell().controls.add(...components);\n }\n }\n}"],"names":["devWarn","findAppendableComponent","NodeTypes","liveContentBlocks","contentBlocks","STORAGE_KEY","isDevtoolsEnabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core-SS-LXi1V.cjs","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/functions.ts","../../src/common/LeakMonitor.ts","../../src/common/LinkedList.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/store/handlers/getter.ts","../../src/store/handlers/setter.ts","../../src/store/handlers/orhers.ts","../../src/store/handlers/ArrayMethods.ts","../../src/store/handlers/collections.ts","../../src/store/ReactiveEngine.ts","../../src/store/index.ts","../../src/dependencyInjection/autoRegistry.ts","../../src/dependencyInjection/ServiceCollection.ts","../../src/devtools/routeLinter.ts","../../src/devtools/overlay.ts","../../src/routing/RouterViewRegistry.ts","../../src/routing/RouterView.ts","../../src/routing/scrollMemory.ts","../../src/routing/NavigationStack.ts","../../src/routing/scanner.ts","../../src/routing/RouteCollection.ts","../../src/routing/RoutingEngine.ts","../../src/routing/UrlRoutingModule.ts","../../src/routing/routerState.ts","../../src/application.ts"],"sourcesContent":["function rethrowLater(error: any): void {\r\n\tsetTimeout(() => { throw error; }, 0);\r\n}\r\n\r\nexport class ErrorHandler {\r\n\tprivate unexpectedErrorHandler: (e: any) => void = rethrowLater;\r\n\tprivate listeners: Array<(error: any) => void> = [];\r\n\tprivate _isDevelopment: boolean = false;\r\n\tprivate _enableConsoleLogging: boolean = true;\r\n\r\n\tpublic setDevelopmentMode(isDev: boolean): void {\r\n\t\tthis._isDevelopment = isDev;\r\n\t}\r\n\r\n\tpublic setConsoleLogging(enabled: boolean): void {\r\n\t\tthis._enableConsoleLogging = enabled;\r\n\t}\r\n\r\n\tpublic isDevelopment(): boolean {\r\n\t\treturn this._isDevelopment || (globalThis as any).__MOTIF_DEV__ === true;\r\n\t}\r\n\r\n\tpublic reportSuppressed(context: string, error: any): void {\r\n\t\tthis.logIfDev(context, error);\r\n\t}\r\n\r\n\tpublic report(error: Error): void {\r\n\t\tif (this._enableConsoleLogging) {\r\n\t\t\tif (error.cause !== undefined) console.error(error.message, error.cause);\r\n\t\t\telse console.error(error.message);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n\t\t\tif (bus && typeof bus.publish === 'function') {\r\n\t\t\t\tbus.publish('error:caught', { context: (error as any).code ?? error.name, error: this.serializeError(error) });\r\n\t\t\t}\r\n\t\t} catch { /* ignore */ }\r\n\r\n\t\tthis.emit(error);\r\n\t}\r\n\r\n\tprivate logIfDev(context: string, error: any): void {\r\n\t\tif (this.isDevelopment() && this._enableConsoleLogging) {\r\n\t\t\tconsole.error(`[motifjs Error - ${context}]`, error);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n\t\t\tif (bus && typeof bus.publish === 'function') {\r\n\t\t\t\tbus.publish('error:caught', { context, error: this.serializeError(error) });\r\n\t\t\t}\r\n\t\t} catch { /* ignore */ }\r\n\t}\r\n\r\n\r\n\tprivate serializeError(error: any): any {\r\n\t\tif (!error) return { message: 'Unknown error' };\r\n\t\tif (error instanceof Error) {\r\n\t\t\treturn {\r\n\t\t\t\tname: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstack: error.stack,\r\n\t\t\t\tcause: error.cause ? this.serializeError(error.cause) : undefined\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (typeof error === 'object') {\r\n\t\t\ttry { return JSON.parse(JSON.stringify(error)); } catch { return String(error); }\r\n\t\t}\r\n\t\treturn String(error);\r\n\t}\r\n\r\n\taddListener(listener: (error: any) => void): () => void {\r\n\t\tthis.listeners.push(listener);\r\n\t\treturn () => {\r\n\t\t\tconst index = this.listeners.indexOf(listener);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tthis.listeners.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tprivate emit(error: any): void {\r\n\t\tfor (const listener of this.listeners.slice()) {\r\n\t\t\tlistener(error);\r\n\t\t}\r\n\t}\r\n\r\n\tsetUnexpectedErrorHandler(handler: (e: any) => void): void {\r\n\t\tthis.unexpectedErrorHandler = handler;\r\n\t}\r\n\r\n\tgetUnexpectedErrorHandler(): (e: any) => void {\r\n\t\treturn this.unexpectedErrorHandler;\r\n\t}\r\n\r\n\tonUnexpectedError(error: any): void {\r\n\t\tthis.unexpectedErrorHandler(error);\r\n\t\tthis.emit(error);\r\n\t}\r\n\r\n\tpublic safeCall<T>(fn: () => T, context: string, fallback?: T): T | undefined {\r\n\t\ttry {\r\n\t\t\treturn fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t\tthis.onUnexpectedError(error);\r\n\t\t\treturn fallback;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async safeCallAsync<T>(fn: () => Promise<T>, context: string, fallback?: T): Promise<T | undefined> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t\tthis.onUnexpectedError(error);\r\n\t\t\treturn fallback;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic safeCallSilent(fn: () => void, context: string): void {\r\n\t\ttry {\r\n\t\t\tfn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async safeCallSilentAsync<T>(fn: () => Promise<T>, context: string): Promise<T | undefined> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.logIfDev(context, error);\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tpublic wrapSafe<TArgs extends any[], TReturn>(\r\n\t\tfn: (...args: TArgs) => TReturn,\r\n\t\tcontext: string\r\n\t): (...args: TArgs) => TReturn | undefined {\r\n\t\treturn (...args: TArgs) => {\r\n\t\t\ttry {\r\n\t\t\t\treturn fn(...args);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tthis.logIfDev(context, error);\r\n\t\t\t\tthis.onUnexpectedError(error);\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic wrapSafeAsync<TArgs extends any[], TReturn>(\r\n\t\tfn: (...args: TArgs) => Promise<TReturn>,\r\n\t\tcontext: string\r\n\t): (...args: TArgs) => Promise<TReturn | undefined> {\r\n\t\treturn async (...args: TArgs) => {\r\n\t\t\ttry {\r\n\t\t\t\treturn await fn(...args);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tthis.logIfDev(context, error);\r\n\t\t\t\tthis.onUnexpectedError(error);\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport const errorHandler = new ErrorHandler();\r\n\r\n\r\nexport function setErrorConsoleLogging(enabled: boolean): void {\r\n\terrorHandler.setConsoleLogging(enabled);\r\n}\r\n\r\nexport function safeCall<T>(fn: () => T, context: string, fallback?: T): T | undefined {\r\n\treturn errorHandler.safeCall(fn, context, fallback);\r\n}\r\n\r\nexport function safeCallAsync<T>(fn: () => Promise<T>, context: string, fallback?: T): Promise<T | undefined> {\r\n\treturn errorHandler.safeCallAsync(fn, context, fallback);\r\n}\r\n\r\n\r\nexport function safeCallSilent<T>(fn: () => T, context: string): void {\r\n\terrorHandler.safeCallSilent(fn, context);\r\n}\r\n\r\n\r\nexport function safeCallSilentAsync<T>(fn: () => Promise<T>, context: string): Promise<T | undefined> {\r\n\treturn errorHandler.safeCallSilentAsync(fn, context);\r\n}\r\n\r\nexport function wrapSafe<TArgs extends any[], TReturn>(\r\n\tfn: (...args: TArgs) => TReturn,\r\n\tcontext: string\r\n): (...args: TArgs) => TReturn | undefined {\r\n\treturn errorHandler.wrapSafe(fn, context);\r\n}\r\n\r\nexport function wrapSafeAsync<TArgs extends any[], TReturn>(\r\n\tfn: (...args: TArgs) => Promise<TReturn>,\r\n\tcontext: string\r\n): (...args: TArgs) => Promise<TReturn | undefined> {\r\n\treturn errorHandler.wrapSafeAsync(fn, context);\r\n}\r\n\r\nexport function setUnexpectedErrorHandler(handler: (e: any) => void): void {\r\n\terrorHandler.setUnexpectedErrorHandler(handler);\r\n}\r\n","export type DevEvent = { type: string; payload?: any };\r\nexport type DevWarning = { code: string; message: string; details?: any };\r\n\r\nconst state = {\r\n enabled: false as boolean,\r\n listeners: new Set<(ev: DevEvent) => void>(),\r\n warnings: [] as DevWarning[],\r\n routes: null as any,\r\n};\r\n\r\n/** Dev modu: devtools açık ya da `globalThis.__MOTIF_DEV__ === true`. */\r\nexport function isDevLike(): boolean {\r\n return state.enabled || (globalThis as any).__MOTIF_DEV__ === true;\r\n}\r\n\r\nexport function isRequestedByFlag(): boolean {\r\n try {\r\n if (typeof window === 'undefined') return false;\r\n const w = window as any;\r\n if (w.__motif_DEVTOOLS === true) return true;\r\n if ((globalThis as any).__MOTIF_DEVTOOLS__ === true) return true;\r\n if ((globalThis as any).__MOTIF_DEVTOOLS_FLAG === true) return true;\r\n return false;\r\n } catch { return false; }\r\n}\r\n\r\nfunction exposeBus(visible: boolean) {\r\n try {\r\n if (visible) (window as any).__motifDevBus = { on, emit, warn, getWarnings, isEnabled, setRoutes, getRoutes };\r\n else delete (window as any).__motifDevBus;\r\n } catch { }\r\n}\r\n\r\nexport function ensureDevtoolsFlagInitialized() {\r\n if (state.enabled) return;\r\n state.enabled = isRequestedByFlag();\r\n if (state.enabled) exposeBus(true);\r\n}\r\n\r\nexport function setDevtoolsEnabled(enabled: boolean) {\r\n state.enabled = enabled || isRequestedByFlag();\r\n exposeBus(state.enabled);\r\n}\r\n\r\nexport function isEnabled(): boolean { return state.enabled; }\r\n\r\nexport function on(listener: (ev: DevEvent) => void): () => void {\r\n state.listeners.add(listener);\r\n return () => { state.listeners.delete(listener); };\r\n}\r\n\r\nexport function emit(type: string, payload?: any) {\r\n const ev: DevEvent = { type, payload };\r\n for (const l of state.listeners) {\r\n try { l(ev); } catch { }\r\n }\r\n try {\r\n const bus = (globalThis as any).__MOTIF_DEVTOOLS_BUS__;\r\n if (bus && typeof bus.publish === 'function') {\r\n bus.publish('devtools:' + type, payload);\r\n }\r\n } catch { }\r\n}\r\n\r\nexport function warn(code: string, message: string, details?: any) {\r\n if (!isDevLike()) return;\r\n const w: DevWarning = { code, message, details };\r\n state.warnings.push(w);\r\n try { if (typeof console !== 'undefined') details === undefined ? console.warn(`[motifjs] ${code}: ${message}`) : console.warn(`[motifjs] ${code}: ${message}`, details); } catch { }\r\n emit('warning', w);\r\n}\r\n\r\nexport function getWarnings(): DevWarning[] { return state.warnings.slice(); }\r\n\r\nexport function setRoutes(routes: any) { state.routes = routes; }\r\nexport function getRoutes(): any { return state.routes; }\r","import { errorHandler } from \"./ErrorHandler\";\nimport { warn as devWarn } from \"../devtools/devbus\";\n\nexport const motifMessages = {\n MJX101: (tag: string) => `dom.createElement('${tag}'): no document is available (no DOM environment).`,\n MJX102: (description: string) => `Invalid element selector \"${description}\".`,\n MJX103: (tag: string) => `dom.createElementNS('${tag}') failed.`,\n MJX104: () => `Skipped inserting a component into the DOM because it contains its own parent.`,\n MJX105: () => `Applying router link classes failed.`,\n MJX106: () => `The placeholder parent changed; rebuilding the component.`,\n MJX107: () => `Disposing a child component failed.`,\n MJX108: () => `Component is disposed; the result of doWork was discarded.`,\n MJX109: () => `A content block child was removed because its content body is being disposed.`,\n MJX110: (ms: number) => `Lazy timeout: the component did not load within ${ms} ms.`,\n MJX111: () => `Lazy aborted: loading the component was cancelled.`,\n MJX112: (depth: number) => `resolveComponent: the factory chain exceeded ${depth} levels; a factory may be returning itself.`,\n MJX113: () => `The transport slot has no parent; mount the slot before transporting into it.`,\n MJX114: () => `Placing the navigation target into its host failed.`,\n MJX115: () => `Disposing the previous navigation target failed.`,\n MJX116: (ms: number) => `Timeout: the listener guard did not settle within ${ms} ms.`,\n MJX117: () => `Detaching a control failed.`,\n MJX118: () => `The onRemove callback failed while detaching a control.`,\n MJX119: () => `Moving a fragment's DOM range stopped: its end marker was not found (possible infinite loop).`,\n MJX120: () => `Scanning a fragment's DOM range stopped: its end marker was not found (possible infinite loop).`,\n MJX121: (compiled: number, runtime: number) => `This code was compiled for compiler contract ${compiled}, but the @motifx/core runtime implements contract ${runtime}. Install matching versions of @motifx/compiler and @motifx/core, and rebuild packages that ship compiled JSX.`,\n MJX122: (hook: string) => `The component ${hook} hook threw.`,\n MJX123: (event: string) => `The '${event}' event handler threw.`,\n MJX124: (key: string) => `A spread object on a DOM tag cannot set ${key}; the key was ignored. Write it on the tag, or use x-html, for HTML you trust.`,\n MJX125: (key: string) => `A spread object on a DOM tag cannot set a javascript: URL on '${key}'; the value was ignored. Write the attribute on the tag if it is intended.`,\n MJX126: () => `Lazy: loading the component failed and no Fallbackview is set; the host was cleared.`,\n MJX127: (got: string) => got === 'module'\n ? `The loaded module has no default export. Export the component as default, or map it: () => import('./X').then(m => m.X).`\n : `The loaded value is not a component (got ${got}). Return a component class, a function component, an Options API factory or a component instance.`,\n MJX128: (cls: string, member: string, how: 'method' | 'field' | 'replaced') => how === 'method'\n ? `${cls} overrides ${member} without calling super.${member}; MotifJS relies on this ComponentBase member. Rename your member, or call super.${member} in the override.`\n : how === 'field'\n ? `${cls} defines '${member}' as an instance field, which hides the ComponentBase member MotifJS relies on. Rename your field.`\n : `${cls} replaces '${member}', which MotifJS created for the component (a class field or an assignment with that name). Rename your member.`,\n\n MJX201: () => `ListBinding: renderFn must return a component instance, a component class, or a factory function.`,\n MJX202: (key: unknown, index: number) => `ListBinding: duplicate key \"${String(key)}\" at index ${index}. Rows are matched by the item object, not by key, so rendering is not affected; keep keys unique so they identify items.`,\n MJX203: (max: number) => `An effect ran ${max} times in one flush and keeps triggering itself; it is skipped for the rest of this flush. It probably writes a value it reads (for example state.n++). Wrap the write in untracked(...).`,\n MJX204: () => `A component reached a text binding and was not written to the DOM. For a template prop that can change later, write a getter: {() => props.tpl}. Templates that are ready at setup also work as {props.tpl}.`,\n MJX205: () => `Virtualization: the watch callback threw.`,\n MJX206: () => `Virtualization: autoRefresh stopped; dataRequest may be changing the reactive data it reads on every refresh.`,\n MJX207: () => `Virtualization: loading data failed.`,\n MJX208: () => `An effect threw.`,\n\n MJX301: (outlet: string, ms: number) => `RouterView outlet '${outlet}' was not built within ${ms} ms, so the route chain cannot be mounted. Does the layout component render a <RouterView>?`,\n MJX302: (name: string) => `Named route '${name}' was not found.`,\n MJX303: (chain: string) => `Redirect loop or too many redirects: ${chain}`,\n MJX304: () => `Route execution failed.`,\n MJX305: () => `The error fallback route failed.`,\n MJX306: (hook: string) => `The ${hook} hook threw.`,\n MJX307: () => `Disposing a route component failed.`,\n MJX308: () => `The stack navigation transition failed.`,\n MJX309: () => `Router is not initialized. Call useRouter() before navigating.`,\n MJX310: (parentPath: string) => `Route path cannot be empty; use '/' for the default child. Under parent \"${parentPath}\".`,\n MJX311: (path: string, parentPath: string) => `Child route path should start with '/': \"${path}\" under parent \"${parentPath}\".`,\n MJX312: (full: string) => `Child route path resolves to the same full path as its parent: \"${full}\".`,\n MJX313: (full: string) => `Multiple routes resolve to the same full path: \"${full}\".`,\n MJX314: (alias: string, parentPath: string) => `Child route alias should start with '/': \"${alias}\" under parent \"${parentPath}\".`,\n MJX315: (alias: string) => `Route alias resolves to the route's own path: \"${alias}\".`,\n MJX316: (alias: string) => `Multiple routes use the same alias: \"${alias}\".`,\n\n MJX401: (token: string) => `Service not registered for token: ${token}`,\n MJX402: (token: string) => `Async factory used with get() for token ${token}; use getAsync().`,\n MJX403: () => `Invalid service descriptor.`,\n MJX404: (chain: string) => `Cyclic dependency detected: ${chain}`,\n MJX405: () => `Only one ApplicationBuilder instance is allowed.`,\n MJX406: (selector: string) => `Application.run: host not found for selector: ${selector}`,\n MJX407: (token: string) => `getService: no ServiceProvider found for token '${token}'.`,\n MJX408: (token: string, reason: string) => `getService failed for token '${token}': ${reason}`,\n MJX409: (token: string) => `inject(${token}) was called outside a service construction; call it in a field initializer or constructor of a class the ServiceProvider creates.`,\n MJX410: (token: string, sources: string) => `Multiple sources provided for token '${token}': ${sources}. Resolution order is useValue > useFactory > useClass.`,\n MJX411: (token: string) => `'deps' must be an array for token '${token}'; the invalid deps are ignored.`,\n MJX413: (token: string) => `Service '${token}' is registered with a function that cannot be constructed. Use { useValue: fn } to provide the function itself or { useFactory: fn } to create the service.`,\n MJX414: (token: string, reason: string) => `FromService failed for token '${token}': ${reason}`,\n\n MJX501: () => `Disposable already disposed.`,\n MJX502: () => `Cannot register a disposable on itself.`,\n MJX503: () => `Errors were thrown while disposing a store.`,\n MJX504: () => `A disposable was added to a DisposableStore that is already disposed; the added object will leak.`,\n MJX505: () => `Cannot dispose a disposable on itself.`,\n MJX507: (name: string, limit: number, count: number) => `[${name}] potential listener LEAK: ${limit} listeners already; most frequent stack (${count}):`,\n\n MJX601: () => `Sequence contains no elements.`,\n MJX602: () => `Circuit is open.`,\n MJX603: () => `Bulkhead queue is full.`,\n MJX604: () => `Rate limit exceeded.`,\n MJX605: () => `Operation timed out.`,\n MJX607: () => `A history must be created with at least one entry.`,\n MJX608: () => `Method not implemented.`,\n MJX609: () => `OperationRunner: the operation threw.`,\n MJX610: () => `Matching the request path failed.`,\n MJX611: () => `The devtools panel failed to load.`,\n} satisfies Record<string, (...args: any[]) => string>;\n\nexport type MotifErrorCode = keyof typeof motifMessages;\ntype MessageArgs<C extends MotifErrorCode> = Parameters<(typeof motifMessages)[C]>;\n\nexport class MotifError extends Error {\n readonly code: MotifErrorCode;\n\n constructor(code: MotifErrorCode, message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'MotifError';\n this.code = code;\n }\n}\n\nexport function formatMotifMessage<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): string {\n return `[motifjs] ${code}: ${(motifMessages[code] as (...a: any[]) => string)(...args)}`;\n}\n\nexport function motifError<C extends MotifErrorCode>(code: C, ...args: MessageArgs<C>): MotifError {\n return new MotifError(code, formatMotifMessage(code, ...args));\n}\n\nexport function reportError<C extends MotifErrorCode>(code: C, cause: unknown, ...args: MessageArgs<C>): void {\n errorHandler.report(new MotifError(code, formatMotifMessage(code, ...args), { cause }));\n}\n\nexport function callReported<C extends MotifErrorCode>(fn: () => unknown, code: C, ...args: MessageArgs<C>): void {\n try {\n const result: any = fn();\n if (result && typeof result.then === 'function') {\n result.then(undefined, (error: unknown) => reportError(code, error, ...args));\n }\n } catch (error) {\n reportError(code, error, ...args);\n }\n}\n\nexport function reportWarning<C extends MotifErrorCode>(code: C, args: MessageArgs<C>, details?: unknown): void {\n devWarn(code, (motifMessages[code] as (...a: any[]) => string)(...args), details);\n}\n","import { IDisposable } from \"./IDisposable\";\n\nexport interface IDisposableTracker {\n trackDisposable(disposable: IDisposable): void;\n setParent(child: IDisposable, parent: IDisposable | null): void;\n markAsDisposed(disposable: IDisposable): void;\n markAsSingleton(disposable: IDisposable): void;\n}\n\nclass DisposableCore {\n\n disposableTracker: IDisposableTracker | null = null;\n\n notifyCreated<T extends IDisposable>(target: T): T {\n this.disposableTracker?.trackDisposable(target);\n return target;\n }\n\n notifyDisposed(target: IDisposable): void {\n this.disposableTracker?.markAsDisposed(target);\n }\n\n notifyOwner(target: IDisposable, owner: IDisposable | null): void {\n this.disposableTracker?.setParent(target, owner);\n }\n\n toDisposable(fn: () => void): IDisposable {\n let pending = true;\n const handle: IDisposable = {\n dispose: () => {\n if (!pending) {\n return;\n }\n pending = false;\n this.notifyDisposed(handle);\n fn();\n }\n };\n return this.notifyCreated(handle);\n }\n}\n\nexport const disposableCore: DisposableCore = new DisposableCore();\n","import { IDisposable } from \"./IDisposable\";\r\nimport { disposableCore } from \"./DisposableCore\";\r\nimport { MotifError, formatMotifMessage, motifError, reportWarning } from \"../common/diagnostics\";\r\n\r\nexport class DisposableStore implements IDisposable {\r\n\r\n private readonly _items = new Set<IDisposable>();\r\n private _closed = false;\r\n\r\n constructor() {\r\n disposableCore.notifyCreated(this);\r\n }\r\n\r\n get isDisposed(): boolean {\r\n return this._closed;\r\n }\r\n\r\n add<T extends IDisposable>(item: T): T {\r\n if (!item) {\r\n return item;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX502');\r\n }\r\n disposableCore.notifyOwner(item, this);\r\n if (this._closed) {\r\n reportWarning('MJX504', [], new Error().stack);\r\n } else {\r\n this._items.add(item);\r\n }\r\n return item;\r\n }\r\n\r\n delete<T extends IDisposable>(item: T): void {\r\n if (!item) {\r\n return;\r\n }\r\n if ((item as unknown) === this) {\r\n throw motifError('MJX505');\r\n }\r\n this._items.delete(item);\r\n item.dispose();\r\n }\r\n\r\n detach<T extends IDisposable>(item: T): void {\r\n if (item && this._items.delete(item)) {\r\n disposableCore.notifyOwner(item, null);\r\n }\r\n }\r\n\r\n clear(): void {\r\n if (this._items.size === 0) {\r\n return;\r\n }\r\n const failures: unknown[] = [];\r\n for (const item of this._items) {\r\n try {\r\n item?.dispose();\r\n } catch (error) {\r\n failures.push(error);\r\n }\r\n }\r\n this._items.clear();\r\n if (failures.length === 1) {\r\n throw failures[0];\r\n }\r\n if (failures.length > 1) {\r\n throw new MotifError('MJX503', formatMotifMessage('MJX503'), { cause: new AggregateError(failures) });\r\n }\r\n }\r\n\r\n dispose(): void {\r\n if (this._closed) {\r\n return;\r\n }\r\n disposableCore.notifyDisposed(this);\r\n this._closed = true;\r\n this.clear();\r\n }\r\n}\r\n","import { motifError, reportWarning } from \"../common/diagnostics\";\nimport { IDisposable } from \"./IDisposable\";\nimport { disposableCore } from \"./DisposableCore\";\nimport { DisposableStore } from \"./DisposableStore\";\n\nexport abstract class Disposable implements IDisposable {\n\n protected readonly _disposables = new DisposableStore();\n\n constructor() {\n disposableCore.notifyCreated(this);\n disposableCore.notifyOwner(this._disposables, this);\n }\n\n public dispose(): void {\n disposableCore.notifyDisposed(this);\n const owned = this._disposables;\n if (owned && typeof owned.dispose === 'function') {\n owned.dispose();\n } else {\n reportWarning('MJX501', [], { disposable: this });\n }\n }\n\n protected _register<T extends IDisposable>(item: T): T {\n if ((item as unknown) === this) {\n throw motifError('MJX502');\n }\n return this._disposables.add(item);\n }\n}\n","\r\n\r\nexport const Flags = {\r\n IS_REACTIVE: Symbol.for('motif.isReactive'),\r\n IS_READONLY: Symbol.for('motif.isReadonly'),\r\n IS_SUPERFICIAL: Symbol.for('motif.isSuperficial'),\r\n RAW: Symbol.for('motif.raw'),\r\n GET_SETUP: Symbol.for('motif.getSetup'),\r\n} as const;\r\n\r\nexport const enum TargetType {\r\n SYSTEM = 0,\r\n INVALID = SYSTEM,\r\n COMMON = 0b01,\r\n COLLECTION = 0b10\r\n}\r\n\r\nexport const ITERATE_KEY = Symbol('')\r\nexport let followTracking: boolean = true;\r\nexport let arrayScope: { enabled: boolean, key: string } = { enabled: false, key: '' };\r\n\r\n\r\nexport function getRaw<T>(value: T): T {\r\n let current = value;\r\n while (current && (current as any)[Flags.RAW]) {\r\n current = (current as any)[Flags.RAW];\r\n }\r\n return current;\r\n}\r\n\r\nexport function isReadonly(candidate: unknown): boolean {\r\n if (candidate == null) return false;\r\n return Boolean((candidate as any)[Flags.IS_READONLY]);\r\n}\r\n\r\nexport function hasOwn(target: object, key: PropertyKey): boolean {\r\n return Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nexport function isObject(value: unknown): value is Record<any, any> {\r\n return typeof value === 'object' && value !== null;\r\n}\r\n\r\nconst intrinsicSymbols: ReadonlySet<symbol> = new Set(\r\n Object.values(Object.getOwnPropertyDescriptors(Symbol))\r\n .map(descriptor => descriptor.value)\r\n .filter((value): value is symbol => typeof value === 'symbol')\r\n);\r\n\r\nexport function isIntrinsicSymbol(key: unknown): boolean {\r\n return typeof key === 'symbol' && intrinsicSymbols.has(key);\r\n}\r\n\r\nconst proxyableTags = new Map<string, TargetType>([\r\n ['[object Object]', TargetType.COMMON],\r\n ['[object Array]', TargetType.COMMON],\r\n ['[object Map]', TargetType.COLLECTION],\r\n ['[object Set]', TargetType.COLLECTION],\r\n ['[object WeakMap]', TargetType.COLLECTION],\r\n ['[object WeakSet]', TargetType.COLLECTION],\r\n]);\r\n\r\nexport function getTargetType(value: any): TargetType {\r\n var proto = Object.getPrototypeOf(value);\r\n var cname = \"\";\r\n if (proto && proto.constructor) {\r\n cname = proto.constructor.name;\r\n }\r\n if ((cname === \"Control\" || cname == \"RouteManager\" || cname == \"ServiceManager\")) {\r\n return TargetType.SYSTEM;\r\n }\r\n if (!Object.isExtensible(value)) {\r\n return TargetType.INVALID;\r\n }\r\n return proxyableTags.get(Object.prototype.toString.call(value)) ?? TargetType.INVALID;\r\n}\r\n\r\nconst canonicalIndex = /^(?:0|[1-9]\\d*)$/;\r\nexport const isNumericKey = (key: unknown): boolean =>\r\n typeof key === 'string' && canonicalIndex.test(key) && String(Number(key)) === key;\r\n\r\n\r\nconst savedTracking: boolean[] = [];\r\nlet trackingDepth = 0;\r\n\r\nfunction enterTracking(enabled: boolean) {\r\n savedTracking[trackingDepth++] = followTracking;\r\n followTracking = enabled;\r\n}\r\n\r\nexport function pauseTracking() {\r\n enterTracking(false);\r\n}\r\n\r\nexport function enableTracking() {\r\n enterTracking(true);\r\n}\r\n\r\nexport function resetTracking() {\r\n followTracking = trackingDepth > 0 ? savedTracking[--trackingDepth] : true;\r\n}\r\n\r\nconst arrayStack: { enabled: boolean, key: string }[] = []\r\n\r\n\r\nexport function addArrayStack(key: any) {\r\n arrayStack.push(arrayScope)\r\n arrayScope.enabled = true;\r\n arrayScope.key = key;\r\n}\r\nexport function removeArrayStack() {\r\n const last = arrayStack.pop();\r\n if (arrayStack.length > 0) {\r\n arrayScope = last === undefined ? { enabled: false, key: '' } : last;\r\n } else {\r\n arrayScope = { enabled: false, key: '' }\r\n }\r\n\r\n}\r\n\r\n\r\ndeclare const opaqueBrand: unique symbol\r\ndeclare const shallowBrand: unique symbol\r\n\r\ntype OpaqueState = Function | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | string | number | boolean | { [opaqueBrand]?: true }\r\n\r\ntype DeepState<T> = T extends OpaqueState ? T\r\n : T extends Array<any> ? { [Index in keyof T]: DeepState<T[Index]> }\r\n : T extends object & { [shallowBrand]?: never } ? { [Key in keyof T]: Key extends symbol ? T[Key] : DeepState<T[Key]> }\r\n : T\r\n\r\ninterface BoxedPrimitive<T> { value: T }\r\n\r\nexport type UnwrapValueRefs<T> = T extends number | string | boolean ? BoxedPrimitive<T> : DeepState<T>;\r\n\r\n\r\nexport var setupListener: any;\r\nexport var setupActive = false;\r\n\r\nexport function listenSetup(key: any) {\r\n setupListener = key;\r\n setupActive = true;\r\n}\r\n\r\nexport function closeSetup() {\r\n setupListener = null;\r\n setupActive = false;\r\n}","import { ComponentBase, motifFragment, resolveComponent } from \"../\";\r\nimport { effect, untracked } from \"../\";\r\nimport { getRaw } from \"../store/common\";\r\nimport { motifError, reportWarning } from \"../common/diagnostics\";\r\nimport { IBaseBinding } from \"./\";\r\n\r\n\r\nexport interface ListBindingOptions {\r\n reuse?: boolean;\r\n}\r\n\r\nexport class ListBinding implements IBaseBinding {\r\n propertyName: string = \"__list__\";\r\n dataSource: any;\r\n dataMember?: string | undefined;\r\n formatString?: string | undefined;\r\n converter?: ((value: any) => any) | undefined;\r\n converterBack?: ((value: any) => any) | undefined;\r\n updateMode?: \"onPropertyChanged\" | \"onValidation\" | \"never\" | undefined;\r\n private _isActive = false;\r\n private _effectCleanup?: () => void;\r\n private _rendered: ComponentBase[] = [];\r\n private _identityMap = new WeakMap<object, ComponentBase[]>();\r\n private container: ComponentBase = motifFragment('list-container');\r\n constructor(private component: ComponentBase,\r\n private itemsFn: () => any[] | Iterable<any>,\r\n private renderFn: (item: any, index: number) => ComponentBase,\r\n private options?: ListBindingOptions) {\r\n this.component.controls.add(this.container);\r\n\r\n }\r\n activate(): void { if (this._isActive) return; this._isActive = true; this._setupBinding(); }\r\n deactivate(): void {\r\n if (!this._isActive) return;\r\n this._isActive = false;\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n this._disposeAll();\r\n }\r\n reActivate(): void {\r\n\r\n this.deactivate();\r\n this.activate();\r\n }\r\n private _disposeAll() {\r\n this._rendered.forEach(c => { try { c.dispose && c.dispose(); } catch { } });\r\n this._rendered = [];\r\n this._identityMap = new WeakMap();\r\n }\r\n private _toArray(src: any): any[] {\r\n if (!src) return [];\r\n if (Array.isArray(src)) return src;\r\n if (typeof src === 'function') return this._toArray(src());\r\n if (src[Symbol.iterator]) return Array.from(src as Iterable<any>);\r\n return [];\r\n }\r\n private _getComponentKey(comp: ComponentBase): any {\r\n try {\r\n const p: any = (comp as any).props;\r\n if (p && typeof p.indexkey === 'function') {\r\n return p.indexkey();\r\n }\r\n if (p && typeof p.indexkey !== 'undefined' && p.indexkey !== null) {\r\n return p.indexkey;\r\n }\r\n } catch { }\r\n try {\r\n const k = (comp as any).motif.options?.__key;\r\n if (typeof k !== 'undefined') return k;\r\n } catch { }\r\n return undefined;\r\n }\r\n\r\n private isPreCreated(comp: ComponentBase): boolean {\r\n return comp.element !== null || comp.parent !== null;\r\n }\r\n\r\n private _render(item: any, idx: number): ComponentBase {\r\n return untracked(() => {\r\n const rendered = this.renderFn(item, idx);\r\n return this.processRendered(rendered, item);\r\n });\r\n }\r\n\r\n private processRendered(rendered: any, item: any): ComponentBase {\r\n const component: ComponentBase = resolveComponent(rendered);\r\n if (!(component instanceof ComponentBase)) {\r\n throw motifError('MJX201');\r\n }\r\n\r\n try { (component as any)._base.itemRef = item; } catch { }\r\n try { (component.motif.options as any).__fromList = true; } catch { }\r\n\r\n if (typeof (component as any).__listAdopted === 'undefined') {\r\n (component as any).__listAdopted = component.parent !== null && component.parent !== undefined;\r\n }\r\n\r\n return component;\r\n }\r\n private olditems: any[] = [];\r\n\r\n private get _indexSensitive(): boolean {\r\n try { return this.renderFn.length >= 2; } catch { return true; }\r\n }\r\n\r\n private static _isPrimitive(v: any): boolean {\r\n return v === null || typeof v !== 'object';\r\n }\r\n\r\n private _setupBinding() {\r\n const update = () => {\r\n const source = this._toArray(this.itemsFn());\r\n const rawSource = getRaw(source);\r\n const count = source.length;\r\n let items: any[];\r\n if (rawSource === source) {\r\n items = source;\r\n } else {\r\n items = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n if (i in rawSource) items[i] = source[i];\r\n else void source[i];\r\n }\r\n }\r\n const prevItems = this.olditems;\r\n const prevComponents = this._rendered;\r\n if (this.olditems.length > 0) {\r\n const currentRaws = new Set<any>();\r\n for (let i = 0; i < count; i++) currentRaws.add(getRaw(items[i]));\r\n for (const old of this.olditems) {\r\n const raw = getRaw(old);\r\n if (!currentRaws.has(raw)) {\r\n const list = this._identityMap.get(raw);\r\n if (list) {\r\n this._identityMap.delete(raw);\r\n for (const component of list) {\r\n try { component.dispose(); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const newComponents: ComponentBase[] = [];\r\n const usedComponents = new Set<ComponentBase>();\r\n const seenKeys = new Map<any, number>();\r\n\r\n const claimed = new Set<ComponentBase>();\r\n const positionalReuse = new Map<number, ComponentBase>();\r\n const isReusable = (c: ComponentBase | undefined): c is ComponentBase =>\r\n !!c && !c.isDisposed && !claimed.has(c) && !(c as any).__listAdopted;\r\n\r\n const shared = Math.min(items.length, prevItems.length);\r\n for (let i = 0; i < shared; i++) {\r\n const it = items[i];\r\n if (!ListBinding._isPrimitive(it)) continue;\r\n if (!Object.is(prevItems[i], it)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n positionalReuse.set(i, comp);\r\n claimed.add(comp);\r\n }\r\n\r\n let valuePool: Map<any, ComponentBase[]> | null = null;\r\n if (!this._indexSensitive) {\r\n valuePool = new Map<any, ComponentBase[]>();\r\n for (let i = 0; i < prevItems.length; i++) {\r\n const prev = prevItems[i];\r\n if (!ListBinding._isPrimitive(prev)) continue;\r\n const comp = prevComponents[i];\r\n if (!isReusable(comp)) continue;\r\n const queue = valuePool.get(prev);\r\n if (queue) queue.push(comp); else valuePool.set(prev, [comp]);\r\n }\r\n }\r\n\r\n const occurrences = new Map<object, number>();\r\n items.forEach((item, idx) => {\r\n let component: ComponentBase;\r\n if (typeof item === 'object' && item !== null) {\r\n const raw = getRaw(item);\r\n const occurrence = occurrences.get(raw) ?? 0;\r\n occurrences.set(raw, occurrence + 1);\r\n let list = this._identityMap.get(raw);\r\n if (!list) {\r\n list = [];\r\n this._identityMap.set(raw, list);\r\n }\r\n const existing = list[occurrence];\r\n if (existing && !existing.isDisposed) {\r\n component = existing;\r\n } else {\r\n component = this._render(item, idx);\r\n list[occurrence] = component;\r\n }\r\n }\r\n else {\r\n let reused = positionalReuse.get(idx);\r\n if (!reused && valuePool) {\r\n const queue = valuePool.get(item);\r\n if (queue && queue.length) {\r\n reused = queue.shift()!;\r\n claimed.add(reused);\r\n }\r\n }\r\n if (reused) {\r\n component = reused;\r\n } else {\r\n component = this._render(item, idx);\r\n }\r\n }\r\n const userKey = this._getComponentKey(component);\r\n if (userKey !== undefined && userKey !== null) {\r\n if (seenKeys.has(userKey)) {\r\n reportWarning('MJX202', [userKey, idx]);\r\n } else {\r\n seenKeys.set(userKey, idx);\r\n }\r\n }\r\n\r\n newComponents.push(component);\r\n usedComponents.add(component);\r\n });\r\n\r\n occurrences.forEach((count, raw) => {\r\n const list = this._identityMap.get(raw);\r\n if (list && list.length > count) list.length = count;\r\n });\r\n\r\n this._rendered.forEach(comp => {\r\n if (!usedComponents.has(comp) && !(comp as any).__listAdopted) {\r\n try { comp.dispose(); } catch { }\r\n }\r\n });\r\n\r\n this._syncContainer(newComponents);\r\n\r\n this._rendered = newComponents;\r\n this.olditems = items === source ? source.slice() : items;\r\n return count;\r\n };\r\n this._effectCleanup = effect(() => update());\r\n }\r\n\r\n private _syncContainer(newComponents: ComponentBase[]) {\r\n const controls = this.container.controls;\r\n const items = controls.items;\r\n\r\n if (items.length === 0) {\r\n for (const comp of newComponents) {\r\n try { controls.add(comp); } catch { }\r\n }\r\n return;\r\n }\r\n\r\n if (newComponents.length >= items.length) {\r\n let appendOnly = true;\r\n for (let i = 0; i < items.length; i++) {\r\n if (newComponents[i] !== items[i]) {\r\n appendOnly = false;\r\n break;\r\n }\r\n }\r\n\r\n if (appendOnly && newComponents.length > items.length) {\r\n const existing = new Set(items);\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n if (existing.has(newComponents[i])) {\r\n appendOnly = false;\r\n break;\r\n }\r\n existing.add(newComponents[i]);\r\n }\r\n }\r\n\r\n if (appendOnly) {\r\n for (let i = items.length; i < newComponents.length; i++) {\r\n try { controls.add(newComponents[i]); } catch { }\r\n }\r\n return;\r\n }\r\n }\r\n\r\n const oldIndex = new Map<ComponentBase, number>();\r\n items.forEach((c, i) => oldIndex.set(c, i));\r\n const sources = newComponents.map(c => {\r\n const oi = oldIndex.get(c);\r\n return oi === undefined ? -1 : oi;\r\n });\r\n\r\n const stable = new Set(longestIncreasingIndices(sources));\r\n\r\n let anchor: ComponentBase | null = null;\r\n for (let i = newComponents.length - 1; i >= 0; i--) {\r\n const comp = newComponents[i];\r\n try {\r\n if (sources[i] === -1) {\r\n if (anchor) {\r\n const at = items.indexOf(anchor);\r\n controls.add(at >= 0 ? at : items.length, comp);\r\n } else {\r\n controls.add(comp);\r\n }\r\n } else if (!stable.has(i)) {\r\n controls.move(comp, anchor);\r\n }\r\n } catch { }\r\n anchor = comp;\r\n }\r\n }\r\n}\r\n\r\nfunction longestIncreasingIndices(sources: number[]): number[] {\r\n const predecessors = new Array<number>(sources.length).fill(-1);\r\n const tails: number[] = [];\r\n\r\n for (let i = 0; i < sources.length; i++) {\r\n const v = sources[i];\r\n if (v === -1) continue;\r\n if (tails.length === 0 || sources[tails[tails.length - 1]] < v) {\r\n predecessors[i] = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n tails.push(i);\r\n continue;\r\n } \r\n let lo = 0, hi = tails.length - 1;\r\n while (lo < hi) {\r\n const mid = (lo + hi) >> 1;\r\n if (sources[tails[mid]] < v) lo = mid + 1; else hi = mid;\r\n }\r\n if (v < sources[tails[lo]]) {\r\n predecessors[i] = lo > 0 ? tails[lo - 1] : -1;\r\n tails[lo] = i;\r\n }\r\n }\r\n\r\n const result: number[] = [];\r\n let u = tails.length > 0 ? tails[tails.length - 1] : -1;\r\n while (u !== -1) {\r\n result.push(u);\r\n u = predecessors[u];\r\n }\r\n return result.reverse();\r\n}","\r\n\r\nimport { NodeTypes } from \".\";\r\nimport { reportError } from \"./diagnostics\";\r\nimport { Component, ComponentBase } from \"../component\";\r\nimport { IDisposable } from \"../disposable\";\r\n\r\nexport const toKebab = (str: string) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? \"-\" : \"\") + $.toLowerCase());\r\n\r\n\r\nexport function toDisposable(fn: () => void): IDisposable {\r\n let pending = true;\r\n return {\r\n dispose() {\r\n if (!pending) {\r\n return;\r\n }\r\n pending = false;\r\n fn();\r\n }\r\n };\r\n}\r\n\r\n\r\n\r\nexport function advanceif(source: ComponentBase, ...targets: NodeTypes[]) {\r\n if (targets.indexOf(source.element.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function advelif(source: any, ...targets: NodeTypes[]) {\r\n if (source && targets.indexOf(source.nodeType) > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isAnchorElement(source: ComponentBase) {\r\n return source.element.nodeName == 'A';\r\n}\r\n\r\nexport function isElement(source: ComponentBase) {\r\n return source.element.nodeType == NodeTypes.ELEMENT_NODE;\r\n}\r\nexport function isview(source: ComponentBase) {\r\n return source.element.nodeName == 'view';\r\n}\r\n\r\n\r\n\r\nexport function isComponent(source: any) {\r\n return source instanceof ComponentBase\r\n}\r\nexport function createComponent(tag: any, options: any) {\r\n return new Component(tag, options)\r\n}\r\n\r\n\r\nexport function normalizePath(p: string): string {\r\n return '/' + p.replace(/^\\/+|\\/+$/g, '');\r\n}\r\nexport function startsWithPath(requestPath: string, prefix: string): boolean {\r\n const rp = normalizePath(requestPath);\r\n const pp = normalizePath(prefix);\r\n return rp === pp || rp.startsWith(pp + '/');\r\n}\r\n\r\nexport function isExactMatch(requestPath: string, target: string): boolean {\r\n try {\r\n const strip = (p: string) => {\r\n return p.trim()\r\n .split(/[?#]/)[0]\r\n .replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n }\r\n return strip(requestPath) === strip(target);\r\n } catch (error) {\r\n reportError('MJX610', error);\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport function findAppendableComponent(component: ComponentBase): ComponentBase | null {\r\n try {\r\n if (component.isDisposed) return null;\r\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\r\n return component;\r\n } else if (component.parent) {\r\n return findAppendableComponent(component.parent);\r\n }\r\n } catch (error) {\r\n throw error;\r\n }\r\n return null;\r\n}","import { reportWarning } from \"./diagnostics\";\n\nexport class LeakMonitor {\n\n private readonly _origins = new Map<string, number>();\n private _quietChecks = 0;\n\n constructor(readonly threshold: number, readonly name: string) { }\n\n check(size: number): (() => void) | undefined {\n if (this.threshold <= 0 || size < this.threshold) {\n return undefined;\n }\n const origin = new Error().stack ?? '';\n this._origins.set(origin, (this._origins.get(origin) ?? 0) + 1);\n\n this._quietChecks--;\n if (this._quietChecks <= 0) {\n this._quietChecks = this.threshold / 2;\n const [stack, count] = this._busiestOrigin();\n reportWarning('MJX507', [this.name, size, count], stack);\n }\n\n return () => {\n this._origins.set(origin, (this._origins.get(origin) ?? 0) - 1);\n };\n }\n\n private _busiestOrigin(): [string, number] {\n let busiest: [string, number] = ['', 0];\n for (const entry of this._origins) {\n if (entry[1] > busiest[1]) {\n busiest = entry;\n }\n }\n return busiest;\n }\n}\n","interface Link<T> {\n value: T | undefined;\n before: Link<T>;\n after: Link<T>;\n linked: boolean;\n}\n\nfunction createRing<T>(): Link<T> {\n const ring = { value: undefined, linked: false } as Link<T>;\n ring.before = ring;\n ring.after = ring;\n return ring;\n}\n\nexport class LinkedList<T> {\n\n private _ring: Link<T> = createRing<T>();\n private _count = 0;\n\n get size(): number {\n return this._count;\n }\n\n isEmpty(): boolean {\n return this._count === 0;\n }\n\n push(value: T): () => void {\n return this._link(value, this._ring.before);\n }\n\n unshift(value: T): () => void {\n return this._link(value, this._ring);\n }\n\n pop(): T | undefined {\n return this._take(this._ring.before);\n }\n\n shift(): T | undefined {\n return this._take(this._ring.after);\n }\n\n clear(): void {\n for (let link = this._ring.after; link !== this._ring; link = link.after) {\n link.linked = false;\n }\n this._ring = createRing<T>();\n this._count = 0;\n }\n\n *[Symbol.iterator](): Iterator<T> {\n const ring = this._ring;\n for (let link = ring.after; link !== ring; link = link.after) {\n yield link.value as T;\n }\n }\n\n private _link(value: T, previous: Link<T>): () => void {\n const link: Link<T> = { value, before: previous, after: previous.after, linked: true };\n previous.after.before = link;\n previous.after = link;\n this._count++;\n return () => this._unlink(link);\n }\n\n private _take(link: Link<T>): T | undefined {\n if (link === this._ring) {\n return undefined;\n }\n const value = link.value;\n this._unlink(link);\n return value;\n }\n\n private _unlink(link: Link<T>): void {\n if (!link.linked) {\n return;\n }\n link.linked = false;\n link.before.after = link.after;\n link.after.before = link.before;\n this._count--;\n }\n}\n","import { reportWarning } from \"./diagnostics\";\nimport { isDevLike } from \"../devtools/devbus\";\n\nexport const COMPILER_CONTRACT = 1;\n\nconst reported = new Set<number>();\nconst pending = new Set<number>();\n\nexport function motifCompiled(contract: number): void {\n if (contract === COMPILER_CONTRACT || reported.has(contract)) return;\n if (!isDevLike()) {\n pending.add(contract);\n return;\n }\n pending.delete(contract);\n reported.add(contract);\n reportWarning('MJX121', [contract, COMPILER_CONTRACT]);\n}\n\nexport function flushCompilerContractWarnings(): void {\n for (const contract of Array.from(pending)) motifCompiled(contract);\n}\n","\nexport * from \"./NameValuePair\";\nexport * from \"./List\";\nexport * from \"./functions\";\nexport * from \"./ErrorHandler\";\nexport * from \"./LeakMonitor\";\nexport * from \"./Dictionary\";\nexport * from \"./IAttribute\";\nexport * from \"./LinkedList\";\nexport type { TransitionProps, CSSTransitionInfo, TransitionPhase } from \"./transition\";\nexport type { TransitionMode } from \"./transitionRegistry\";\nexport * from \"./bind\";\nexport * from \"./Query\";\nexport { MotifError } from \"./diagnostics\";\nexport { motifCompiled } from \"./compilerContract\";\nexport type { MotifErrorCode } from \"./diagnostics\";\n\n\nexport enum NodeTypes {\n ELEMENT_NODE = 1,\n ATTRIBUTE_NODE = 2,\n TEXT_NODE = 3,\n CDATA_SECTION_NODE = 4,\n ENTITY_REFERENCE_NODE = 5,\n /**deprecated */\n ENTITY_NODE = 6,\n /**deprecated */\n PROCESSING_INSTRUCTION_NODE = 7,\n COMMENT_NODE = 8,\n DOCUMENT_NODE = 9,\n DOCUMENT_TYPE_NODE = 10,\n DOCUMENT_FRAGMENT_NODE = 11,\n /**deprecated */\n NOTATION_NODE = 12\n}\n","\r\nimport { LeakMonitor } from \"../common\";\r\nimport { reportError, reportWarning } from \"../common/diagnostics\";\r\nimport { getRaw, followTracking } from \"./common\";\r\n\r\nexport type EffectFn = () => void;\r\n\r\nclass Effect {\r\n deps: [object, string | symbol][] = [];\r\n active = true;\r\n running = false;\r\n scheduler?: () => void;\r\n constructor(public fn: EffectFn, private callback?: (value: unknown) => void) { }\r\n run() {\r\n let value: unknown;\r\n if (!this.active || this.running) return;\r\n cleanup(this);\r\n effectStack.push(this);\r\n this.running = true;\r\n try {\r\n value = this.fn();\r\n } finally {\r\n effectStack.pop();\r\n this.running = false;\r\n if (this.callback) {\r\n this.callback(value);\r\n }\r\n }\r\n }\r\n stop() {\r\n this.active = false;\r\n cleanup(this);\r\n }\r\n}\r\n\r\nconst depMap = new WeakMap<object, Map<string | symbol, Set<Effect>>>();\r\nconst effectStack: Effect[] = [];\r\nconst effectQueue = new Set<Effect>();\r\nlet isFlushing = false;\r\n\r\nlet leakEnabled = false;\r\nlet leakThreshold = -1;\r\nlet leakMonitor: LeakMonitor | undefined;\r\nconst leakCleanups = new WeakMap<Set<Effect>, Map<Effect, () => void>>();\r\nexport function configureReactivityLeakMonitor(opts: { enabled?: boolean; threshold?: number; name?: string } = {}) {\r\n leakEnabled = !!opts.enabled;\r\n leakThreshold = typeof opts.threshold === 'number' ? opts.threshold : (leakEnabled ? 200 : -1);\r\n leakMonitor = leakEnabled && leakThreshold > 0 ? new LeakMonitor(leakThreshold, opts.name ?? 'reactivity-core') : undefined;\r\n}\r\n\r\nexport function track(target: object, key: string | symbol) {\r\n if (!followTracking) return;\r\n const rawTarget = getRaw(target as any);\r\n const effect = effectStack[effectStack.length - 1];\r\n if (!effect || !effect.active) return;\r\n let deps = depMap.get(rawTarget);\r\n if (!deps) depMap.set(rawTarget, (deps = new Map()));\r\n let dep = deps.get(key);\r\n if (!dep) deps.set(key, (dep = new Set()));\r\n if (!dep.has(effect)) {\r\n dep.add(effect);\r\n effect.deps.push([rawTarget, key]);\r\n if (leakEnabled && leakMonitor && leakThreshold > 0) {\r\n try {\r\n const cleanup = leakMonitor.check(dep.size);\r\n if (cleanup) {\r\n let m = leakCleanups.get(dep);\r\n if (!m) { m = new Map(); leakCleanups.set(dep, m); }\r\n m.set(effect, cleanup);\r\n }\r\n } catch { }\r\n }\r\n }\r\n}\r\n\r\nexport function trigger(target: object, key: string | symbol) {\r\n const rawTarget = getRaw(target as any);\r\n const deps = depMap.get(rawTarget);\r\n if (!deps) return;\r\n const effects = deps.get(key);\r\n if (!effects) return;\r\n let queued = false;\r\n effects.forEach(effect => {\r\n if (!effect.active) return;\r\n if (effect.scheduler) {\r\n runReported(effect.scheduler);\r\n return;\r\n }\r\n effectQueue.add(effect);\r\n queued = true;\r\n });\r\n if (queued) flushEffects();\r\n}\r\n\r\nfunction runReported(fn: () => unknown) {\r\n try {\r\n fn();\r\n } catch (error) {\r\n reportError('MJX208', error);\r\n }\r\n}\r\n\r\nconst MAX_EFFECT_RUNS_PER_FLUSH = 50;\r\n\r\nfunction flushEffects() {\r\n if (isFlushing) return;\r\n isFlushing = true;\r\n Promise.resolve().then(() => {\r\n const runCounts = new Map<Effect, number>();\r\n try {\r\n while (effectQueue.size > 0) {\r\n const batch = Array.from(effectQueue);\r\n effectQueue.clear();\r\n for (const e of batch) {\r\n const runs = (runCounts.get(e) ?? 0) + 1;\r\n runCounts.set(e, runs);\r\n if (runs > MAX_EFFECT_RUNS_PER_FLUSH) {\r\n if (runs === MAX_EFFECT_RUNS_PER_FLUSH + 1) {\r\n reportWarning('MJX203', [MAX_EFFECT_RUNS_PER_FLUSH], { fn: String((e as any).fn).slice(0, 200) });\r\n }\r\n continue;\r\n }\r\n runReported(() => e.run());\r\n }\r\n }\r\n } finally {\r\n effectQueue.clear();\r\n isFlushing = false;\r\n }\r\n });\r\n}\r\n\r\nfunction cleanup(effect: Effect) {\r\n for (const [target, key] of effect.deps) {\r\n const keyMap = depMap.get(target);\r\n if (!keyMap) continue;\r\n const depSet = keyMap.get(key);\r\n if (!depSet) continue;\r\n depSet.delete(effect);\r\n try {\r\n const map = leakCleanups.get(depSet);\r\n const fn = map?.get(effect);\r\n if (fn) { try { fn(); } catch { } map!.delete(effect); }\r\n } catch { }\r\n if (depSet.size === 0) {\r\n keyMap.delete(key);\r\n }\r\n if (keyMap.size === 0) {\r\n depMap.delete(target);\r\n }\r\n }\r\n effect.deps = [];\r\n}\r\n\r\n\r\nexport function effect(fn: EffectFn, onValueChanged?: <T>(value: T) => void) {\r\n const e = new Effect(fn, onValueChanged);\r\n runReported(() => e.run());\r\n return () => e.stop();\r\n}\r\n\r\nexport interface ScheduledEffect {\r\n run(): void;\r\n stop(): void;\r\n}\r\n\r\nexport function createScheduledEffect(fn: EffectFn, scheduler: () => void): ScheduledEffect {\r\n const e = new Effect(fn);\r\n e.scheduler = scheduler;\r\n return {\r\n run: () => { runReported(() => e.run()); },\r\n stop: () => e.stop(),\r\n };\r\n}\r\n\r\nexport interface AsyncTrackingToken { effect: Effect | undefined; pushed: boolean }\r\nfunction popAsyncTracking(t: AsyncTrackingToken) {\r\n if (!t.pushed) return;\r\n t.pushed = false;\r\n const i = effectStack.lastIndexOf(t.effect!);\r\n if (i >= 0) effectStack.splice(i, 1);\r\n}\r\nexport const asyncTracking = {\r\n capture(): AsyncTrackingToken {\r\n return { effect: effectStack[effectStack.length - 1], pushed: false };\r\n },\r\n suspend<T>(t: AsyncTrackingToken, value: T): T {\r\n popAsyncTracking(t);\r\n return value;\r\n },\r\n resume<T>(t: AsyncTrackingToken, value: T): T {\r\n if (t.effect && t.effect.active && !t.pushed) {\r\n effectStack.push(t.effect);\r\n t.pushed = true;\r\n }\r\n return value;\r\n },\r\n end(t: AsyncTrackingToken): void {\r\n popAsyncTracking(t);\r\n },\r\n};\r\n\r\nconst UNTRACKED_SENTINEL = new Effect(() => { });\r\nUNTRACKED_SENTINEL.active = false;\r\nexport function untracked<T>(fn: () => T): T {\r\n effectStack.push(UNTRACKED_SENTINEL);\r\n try {\r\n return fn();\r\n } finally {\r\n effectStack.pop();\r\n }\r\n}\r\n\r\n\r\n\r\nexport function debugGetDeps(target: object): Map<string | symbol, Set<Effect>> | undefined {\r\n const rawTarget = getRaw(target as any);\r\n return depMap.get(rawTarget);\r\n}\r\nexport function debugGetDepMap(): WeakMap<object, Map<string | symbol, Set<Effect>>> {\r\n return depMap;\r\n}\r\n","\r\nimport { ComponentBase } from \"../\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { BindingFormatInfo, IBaseBinding } from \"./\";\r\n\r\n\r\nexport function isCheckedInput(el: any): boolean {\r\n if (!el || el.tagName !== 'INPUT') return false;\r\n const t = String(el.type || '').toLowerCase();\r\n return t === 'checkbox' || t === 'radio';\r\n}\r\n\r\nexport function isNumericInput(el: any): boolean {\r\n if (!el || el.tagName !== 'INPUT') return false;\r\n const t = String(el.type || '').toLowerCase();\r\n return t === 'number' || t === 'range';\r\n}\r\n\r\nexport function readModelValue(el: any): any {\r\n if (!el) return undefined;\r\n if (isCheckedInput(el)) return !!el.checked;\r\n if (isNumericInput(el)) {\r\n const raw = el.value;\r\n if (raw === '' || raw == null) return null;\r\n const n = typeof el.valueAsNumber === 'number' ? el.valueAsNumber : Number(raw);\r\n return Number.isFinite(n) ? n : null;\r\n }\r\n return el.value;\r\n}\r\n\r\nexport class Binding implements IBaseBinding {\r\n propertyName: string;\r\n dataSource: any;\r\n dataMember?: string;\r\n formatString?: string;\r\n converter?: (value: any) => any;\r\n converterBack?: (value: any) => any;\r\n setter?: (value: any) => void;\r\n formatInfo?: BindingFormatInfo;\r\n updateMode: 'onPropertyChanged' | 'onValidation' | 'never' = 'onPropertyChanged';\r\n\r\n private _isActive: boolean = false;\r\n private _component: ComponentBase;\r\n private _effectCleanup?: () => void;\r\n private _memberPath: string[] | null = null;\r\n private _memberPathSource?: string;\r\n\r\n constructor(\r\n component: ComponentBase,\r\n propertyName: string,\r\n dataSource: any,\r\n dataMember?: string,\r\n formatString?: string,\r\n formatInfo?: BindingFormatInfo\r\n ) {\r\n this._component = component;\r\n this.propertyName = propertyName;\r\n this.dataSource = dataSource;\r\n this.dataMember = dataMember;\r\n this.formatString = formatString;\r\n this.formatInfo = formatInfo;\r\n this._memberPath = dataMember ? dataMember.split('.') : null;\r\n this._memberPathSource = dataMember;\r\n }\r\n\r\n activate(): void {\r\n if (this._isActive) return;\r\n\r\n this._isActive = true;\r\n this._setupBinding();\r\n }\r\n\r\n deactivate(): void {\r\n\r\n if (!this._isActive) return;\r\n\r\n this._isActive = false;\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n }\r\n\r\n reActivate(): void {\r\n\r\n if (this._effectCleanup) {\r\n this._effectCleanup();\r\n this._effectCleanup = undefined;\r\n }\r\n this._setupBinding();\r\n }\r\n\r\n private functional(value: any) {\r\n if (typeof value === 'function') {\r\n value = this.functional(value());\r\n }\r\n return value;\r\n }\r\n private _setupBinding(): void {\r\n const getValue = () => {\r\n\r\n let value: any = this.dataSource;\r\n if (this.dataMember) {\r\n if (this._memberPathSource !== this.dataMember) {\r\n this._memberPath = this.dataMember.split('.');\r\n this._memberPathSource = this.dataMember;\r\n }\r\n for (const prop of this._memberPath!) {\r\n if (value != null) {\r\n value = value[prop];\r\n }\r\n }\r\n }\r\n value = this.functional(value);\r\n if (this.formatString && value != null) {\r\n value = this._applyFormat(value, this.formatString);\r\n }\r\n\r\n if (this.converter) {\r\n value = this.converter(value);\r\n }\r\n\r\n return value;\r\n };\r\n\r\n const updateTarget = () => {\r\n const value = getValue();\r\n this._updateComponentProperty(value);\r\n return value;\r\n };\r\n\r\n this._effectCleanup = effect(() => {\r\n return updateTarget();\r\n });\r\n\r\n }\r\n\r\n private _updateComponentProperty(value: any): void {\r\n\r\n switch (this.propertyName.toLowerCase()) {\r\n case 'wait': {\r\n const comp = this._component;\r\n if (!comp || comp.isDisposed) return;\r\n const isWaiting = !!value;\r\n if (!comp.isBuilt) {\r\n comp.isWait = isWaiting;\r\n } else {\r\n if (isWaiting) {\r\n comp.isWait = true;\r\n } else {\r\n comp.isWait = false;\r\n }\r\n }\r\n break;\r\n }\r\n case 'display': {\r\n const comp = this._component;\r\n if (!comp || comp.isDisposed) return;\r\n const isWaiting = value;\r\n if (!comp.isBuilt) {\r\n comp.isWait = !isWaiting;\r\n } else {\r\n if (isWaiting) {\r\n comp.isWait = false;\r\n } else {\r\n comp.isWait = true;\r\n }\r\n }\r\n break;\r\n }\r\n case 'text':\r\n case 'textcontent':\r\n this._component.setText(value);\r\n break;\r\n case 'innerhtml':\r\n case 'html':\r\n this._component.element.innerHTML = (value);\r\n this._component.motif.trigger('htmlChanged', { value: value });\r\n break;\r\n case 'visible':\r\n case 'visibility':\r\n if (value) {\r\n this._component.motif.show();\r\n } else {\r\n this._component.motif.hide();\r\n }\r\n break;\r\n case 'style':\r\n if (typeof value === 'object') {\r\n this._component.style(value);\r\n }\r\n break;\r\n case 'model': {\r\n\r\n const el: any = this._component.element;\r\n if (!el) break;\r\n if (isCheckedInput(el)) {\r\n el.checked = !!value;\r\n } else {\r\n el.value = value == null ? '' : value;\r\n }\r\n break;\r\n }\r\n case 'when':\r\n\r\n break;\r\n default:\r\n if (this._component.element && this.propertyName in this._component.element) {\r\n (this._component.element as any)[this.propertyName] = value;\r\n } else if (this.propertyName in this._component) {\r\n (this._component as any)[this.propertyName] = value;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private _applyFormat(value: any, format: string): string {\r\n const locale = this.formatInfo?.locale;\r\n const currency = this.formatInfo?.currency;\r\n if (typeof value === 'number') {\r\n if (format.includes('C') || format.includes('c')) {\r\n if (currency) {\r\n return new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currency\r\n }).format(value);\r\n }\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2\r\n }).format(value);\r\n }\r\n if (format.includes('P') || format.includes('p')) {\r\n return new Intl.NumberFormat(locale, {\r\n style: 'percent'\r\n }).format(value);\r\n }\r\n if (format.includes('N') || format.includes('n')) {\r\n const decimals = parseInt(format.match(/\\d+/)?.[0] || '2');\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: decimals,\r\n maximumFractionDigits: decimals\r\n }).format(value);\r\n }\r\n }\r\n\r\n if (value instanceof Date) {\r\n if (format.includes('d')) {\r\n return value.toLocaleDateString(locale);\r\n }\r\n if (format.includes('t')) {\r\n return value.toLocaleTimeString(locale);\r\n }\r\n }\r\n\r\n return value?.toString() || '';\r\n }\r\n}","import { Flags } from \"../store/common\";\r\n\r\nconst RAW_KEY = Flags.RAW;\r\n\r\nfunction isPrototypeObject(o: any): boolean {\r\n return Object.prototype.hasOwnProperty.call(o, 'constructor') && typeof o.constructor === 'function' && o.constructor.prototype === o;\r\n}\r\n\r\nfunction overridesBelow(instance: any, proto: any, name: string): boolean {\r\n let p = Object.getPrototypeOf(instance);\r\n while (p && p !== proto) {\r\n if (Object.prototype.hasOwnProperty.call(p, name)) return true;\r\n p = Object.getPrototypeOf(p);\r\n }\r\n return false;\r\n}\r\n\r\nexport function lazyBindMethods(proto: any, names: readonly string[]): void {\r\n for (const name of names) {\r\n let fn = proto[name];\r\n if (typeof fn !== 'function') continue;\r\n Object.defineProperty(proto, name, {\r\n configurable: true,\r\n enumerable: false,\r\n get() {\r\n if (this === proto || isPrototypeObject(this)) return fn;\r\n const target = this[RAW_KEY] ?? this;\r\n const bound = fn.bind(target);\r\n if (!overridesBelow(target, proto, name)) {\r\n try {\r\n Object.defineProperty(target, name, { value: bound, writable: true, configurable: true, enumerable: true });\r\n } catch { }\r\n }\r\n return bound;\r\n },\r\n set(value: unknown) {\r\n if (this === proto && typeof value === 'function') { fn = value; return; }\r\n Object.defineProperty(this, name, { value, writable: true, configurable: true, enumerable: true });\r\n },\r\n });\r\n }\r\n}\r\n","\r\n\r\nimport { Component, ComponentBase, Frame, motifFragment, toDisposable } from \"../\";\r\nimport { dom } from \"../\";\r\nimport { effect, untracked } from \"../\";\r\nimport { Binding, BindingFormatInfo, IBaseBinding, IBindingCollection, ListBinding, ListBindingOptions, readModelValue } from \"./\";\r\nimport { reportError } from \"../common/diagnostics\";\r\nimport { lazyBindMethods } from \"../common/lazyBind\";\r\n\r\nfunction resolveValue(value: any): any {\r\n return typeof value === 'function' ? resolveValue(value()) : value;\r\n}\r\n\r\nfunction isWritablePathKey(target: object, key: string): boolean {\r\n if (key === '__proto__') return false;\r\n if (key === 'constructor' || key === 'prototype') return Object.prototype.hasOwnProperty.call(target, key);\r\n return true;\r\n}\r\n\r\nexport class BindingCollection implements IBindingCollection {\r\n private _items: IBaseBinding[] = [];\r\n private _component: ComponentBase;\r\n private _branchScope: Array<() => void> | null = null;\r\n\r\n constructor(component: ComponentBase) {\r\n this._component = component;\r\n }\r\n private _own(stop: () => void) {\r\n if (this._branchScope) {\r\n this._branchScope.push(stop);\r\n return;\r\n }\r\n this._component.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n when(computeFn: () => any, renderFn: (isTrue: boolean) => any) {\r\n\r\n var frame = new Frame();\r\n this._component.controls.add(frame);\r\n let shown = false;\r\n let last: any;\r\n const stop = effect(computeFn, (value) => {\r\n if (shown && (Object.is(last, value) || (!last && !value))) return;\r\n shown = true;\r\n last = value;\r\n untracked(() => {\r\n if (value) {\r\n frame.navigate(renderFn(value as any))\r\n } else {\r\n frame.navigate(motifFragment())\r\n }\r\n });\r\n });\r\n this._own(stop);\r\n\r\n return null as any;\r\n\r\n }\r\n\r\n get items(): IBaseBinding[] {\r\n return [...this._items];\r\n }\r\n\r\n text(cb: any) {\r\n this.add(\"textContent\", cb);\r\n };\r\n\r\n\r\n value(fn: () => any) {\r\n this.add(\"value\", fn);\r\n };\r\n\r\n add(propertyName: string, dataSource: any): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n add(propertyName: string, dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n add(binding: IBaseBinding): IBaseBinding;\r\n add(...args: any[]): IBaseBinding {\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object' && 'propertyName' in args[0]) {\r\n\r\n binding = args[0];\r\n } else {\r\n\r\n const [propertyName, dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n\r\n this._items.push(binding);\r\n\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n wait(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n display(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'isWait', () => !resolveValue(predicate()));\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n html(predicate: () => any): IBaseBinding {\r\n const binding = new Binding(this._component, 'innerHTML', predicate);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n list(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options: ListBindingOptions): IBaseBinding;\r\n loop(itemsFn: () => any[] | Iterable<any>, renderFn: (item: any, index: number) => ComponentBase, options?: ListBindingOptions): IBaseBinding {\r\n const binding = new ListBinding(this._component, itemsFn, renderFn, options);\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n binding.activate();\r\n }\r\n return binding;\r\n }\r\n method(cb: () => any) {\r\n const host = this._component;\r\n let text: ComponentBase | null = null;\r\n let frame: Frame | null = null;\r\n const place = (next: ComponentBase, previous: ComponentBase | null) => {\r\n if (!previous) {\r\n host.controls.add(next);\r\n return;\r\n }\r\n host.controls.insert(host.controls.items.indexOf(previous), next);\r\n host.controls.remove(previous);\r\n };\r\n const stop = effect(cb, (result) => {\r\n if (host.isDisposed) return;\r\n const isText = typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean' || typeof result === 'bigint';\r\n if (isText || (text && result == null)) {\r\n if (text) {\r\n text.setText(result as any);\r\n return;\r\n }\r\n text = new Component(dom.createTextNode(result as any));\r\n place(text, frame);\r\n frame = null;\r\n return;\r\n }\r\n if (!frame) {\r\n frame = new Frame();\r\n place(frame, text);\r\n text = null;\r\n }\r\n frame.navigate(result == null ? motifFragment() : result as any);\r\n });\r\n host.motif.register(toDisposable(() => {\r\n try { stop(); } catch { }\r\n }));\r\n }\r\n\r\n ternary(conditionFn: () => any, trueFn: (frame: Frame) => any, falseFn: (frame: Frame) => any) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n this._ternaryCallTop(\r\n conditionFn,\r\n () => { trueFn(frame); },\r\n () => { falseFn(frame); }\r\n );\r\n return null as any;\r\n }\r\n\r\n private _ternarySchedule(condFn: () => any, onTrue: () => void, onFalse: () => void, defer: (run: () => void) => void) {\r\n let first = true;\r\n let last: any;\r\n let stopped = false;\r\n let inner: Array<() => void> = [];\r\n const stopInner = () => {\r\n const list = inner;\r\n inner = [];\r\n for (const stop of list) {\r\n try { stop(); } catch { }\r\n }\r\n };\r\n const stopEffect = effect(condFn, (condition) => {\r\n if (!first && Object.is(last, condition)) return;\r\n last = condition;\r\n const run = () => {\r\n stopInner();\r\n const outer = this._branchScope;\r\n this._branchScope = inner;\r\n try {\r\n if (condition) { onTrue(); } else { onFalse(); }\r\n } finally {\r\n this._branchScope = outer;\r\n }\r\n };\r\n if (first) {\r\n first = false;\r\n untracked(run);\r\n return;\r\n }\r\n defer(() => { if (!stopped && !this._component.isDisposed) run(); });\r\n });\r\n this._own(() => {\r\n stopped = true;\r\n stopEffect();\r\n stopInner();\r\n });\r\n }\r\n private ternaryCall(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => queueMicrotask(run));\r\n }\r\n private _ternaryCallTop(condFn: () => any, onTrue: () => void, onFalse: () => void) {\r\n this._ternarySchedule(condFn, onTrue, onFalse, (run) => setTimeout(run, 0));\r\n }\r\n\r\n watch(cb: () => any) {\r\n const ef = effect(() => {\r\n cb();\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n }\r\n remove(binding: IBaseBinding): void {\r\n const index = this._items.indexOf(binding);\r\n if (index > -1) {\r\n this._items.splice(index, 1);\r\n binding.deactivate();\r\n }\r\n }\r\n\r\n clear(): void {\r\n this._items.forEach(binding => (binding as Binding).deactivate());\r\n this._items = [];\r\n }\r\n\r\n activateAll(): void {\r\n this._items.forEach(binding => {\r\n binding.activate();\r\n });\r\n }\r\n\r\n model(dataSource: any): IBaseBinding;\r\n model(dataSource: any, dataMember: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string): IBaseBinding;\r\n model(dataSource: any, dataMember: string, formatString: string, formatInfo: BindingFormatInfo): IBaseBinding;\r\n model(getter: () => any, setter: (value: any) => void): IBaseBinding;\r\n model(binding: IBaseBinding): IBaseBinding;\r\n model(...args: any[]): IBaseBinding {\r\n\r\n var tn = '';\r\n if (this._component.element) {\r\n tn = (this._component.element as HTMLElement).tagName;\r\n }\r\n var propertyName = 'value';\r\n switch (tn.toLowerCase()) {\r\n case 'input':\r\n\r\n propertyName = 'model';\r\n break;\r\n case 'select':\r\n propertyName = 'value';\r\n break;\r\n case 'textarea':\r\n propertyName = 'value';\r\n break;\r\n case 'img':\r\n propertyName = 'src';\r\n break;\r\n case 'audio':\r\n propertyName = 'src';\r\n break;\r\n case 'video':\r\n propertyName = 'src';\r\n break;\r\n default:\r\n\r\n }\r\n let binding: IBaseBinding;\r\n if (args.length === 1 && typeof args[0] === 'object') {\r\n binding = args[0];\r\n } else if (typeof args[0] === 'function' && typeof args[1] === 'function') {\r\n binding = new Binding(this._component, propertyName, args[0]);\r\n binding.setter = args[1];\r\n } else {\r\n const [dataSource, dataMember, formatString, formatInfo] = args;\r\n binding = new Binding(this._component, propertyName, dataSource, dataMember, formatString, formatInfo);\r\n }\r\n const lowerTag = tn.toLowerCase();\r\n if (lowerTag === 'input' || lowerTag === 'select' || lowerTag === 'textarea') {\r\n const writeBack = () => {\r\n try {\r\n const el: any = this._component.element;\r\n if (!el) return;\r\n\r\n let value: any = readModelValue(el);\r\n const b: any = binding;\r\n if (typeof b.converterBack === 'function') {\r\n value = b.converterBack(value);\r\n }\r\n if (typeof b.setter === 'function') {\r\n b.setter(value);\r\n return;\r\n }\r\n const member: string | undefined = b.dataMember;\r\n const source = b.dataSource;\r\n if (member && source != null) {\r\n\r\n const path = member.split('.');\r\n let target: any = source;\r\n for (let i = 0; i < path.length && target != null; i++) {\r\n const key = path[i];\r\n if (!isWritablePathKey(target, key)) return;\r\n if (i === path.length - 1) {\r\n target[key] = value;\r\n } else {\r\n target = target[key];\r\n }\r\n }\r\n } else if (source != null && typeof source === 'object' && 'value' in source) {\r\n\r\n source.value = value;\r\n }\r\n } catch { /* ignore */ }\r\n };\r\n\r\n this._component.motif.on('input' as any, writeBack as any);\r\n this._component.motif.on('change' as any, writeBack as any);\r\n }\r\n\r\n this._items.push(binding);\r\n if (this._component.isBuilt) {\r\n (binding as Binding).activate();\r\n }\r\n return binding;\r\n }\r\n\r\n\r\n deactivateAll(): void {\r\n this._items.forEach(binding => binding.deactivate());\r\n this._items = [];\r\n }\r\n\r\n reActivateAll(): void {\r\n for (const binding of [...this._items]) {\r\n if (typeof binding.reActivate !== 'function') continue;\r\n try {\r\n binding.reActivate();\r\n } catch (error) {\r\n reportError('MJX208', error);\r\n }\r\n }\r\n }\r\n\r\n switchCase(\r\n discriminatorFn: () => any,\r\n cases: Record<string | number, (frame: Frame) => any>,\r\n defaultFn?: (frame: Frame) => any\r\n ) {\r\n const frame = new Frame();\r\n this._component.controls.add(frame);\r\n var currentValue: any;\r\n var defaultRunned = false;\r\n const ef = effect(discriminatorFn, (value) => {\r\n if (currentValue == value) return;\r\n currentValue = value;\r\n const caseKey = String(value);\r\n if (Object.prototype.hasOwnProperty.call(cases, caseKey)) {\r\n cases[caseKey](frame);\r\n defaultRunned = false;\r\n } else if (defaultFn) {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n defaultFn(frame);\r\n } else {\r\n if (defaultRunned) return;\r\n defaultRunned = true;\r\n frame.navigate(motifFragment());\r\n }\r\n });\r\n this._component.motif.register(toDisposable(() => {\r\n try { ef(); } catch { }\r\n }));\r\n\r\n return null as any;\r\n }\r\n}\r\n\r\nlazyBindMethods(BindingCollection.prototype, [\r\n 'add', 'remove', 'clear', 'activateAll', 'deactivateAll', 'reActivateAll',\r\n 'when', 'text', 'value', 'list', 'loop', 'method', 'watch', 'display', 'wait',\r\n 'ternaryCall', '_ternaryCallTop'\r\n]);","import { errorHandler } from \"../common/ErrorHandler\";\nimport { IDisposable } from \"../disposable/IDisposable\";\nimport { DisposableStore } from \"../disposable/DisposableStore\";\nimport { Event } from \"./Event\";\n\ninterface Subscription<T> {\n handler: (value: T) => unknown;\n active: boolean;\n}\n\ninterface Delivery<T> {\n targets: Subscription<T>[];\n value: T;\n next: number;\n}\n\nexport class Emitter<T> {\n\n private _subscriptions: Subscription<T>[] = [];\n private _delivery: Delivery<T> | undefined;\n private _subscribe: Event<T> | undefined;\n private _disposed = false;\n\n get event(): Event<T> {\n if (!this._subscribe) {\n this._subscribe = (listener, thisArgs, disposables) => {\n if (this._disposed) {\n return { dispose() { } };\n }\n const subscription: Subscription<T> = {\n handler: thisArgs ? listener.bind(thisArgs) : listener,\n active: true\n };\n this._writable().push(subscription);\n const handle: IDisposable = { dispose: () => this._unsubscribe(subscription) };\n if (disposables instanceof DisposableStore) {\n disposables.add(handle);\n } else if (Array.isArray(disposables)) {\n disposables.push(handle);\n }\n return handle;\n };\n }\n return this._subscribe;\n }\n\n fire(value: T): void {\n this._resume();\n if (this._subscriptions.length === 0) {\n return;\n }\n this._delivery = { targets: this._subscriptions, value, next: 0 };\n this._resume();\n }\n\n dispose(): void {\n if (this._disposed) {\n return;\n }\n this._disposed = true;\n for (const subscription of this._subscriptions) {\n subscription.active = false;\n }\n this._subscriptions = [];\n this._delivery = undefined;\n }\n\n private _writable(): Subscription<T>[] {\n if (this._delivery && this._delivery.targets === this._subscriptions) {\n this._subscriptions = this._subscriptions.slice();\n }\n return this._subscriptions;\n }\n\n private _unsubscribe(subscription: Subscription<T>): void {\n if (!subscription.active) {\n return;\n }\n subscription.active = false;\n const list = this._writable();\n const index = list.indexOf(subscription);\n if (index !== -1) {\n list.splice(index, 1);\n }\n }\n\n private _resume(): void {\n const delivery = this._delivery;\n if (!delivery) {\n return;\n }\n while (delivery.next < delivery.targets.length) {\n const target = delivery.targets[delivery.next++];\n if (!target.active) {\n continue;\n }\n try {\n target.handler(delivery.value);\n } catch (error) {\n errorHandler.onUnexpectedError(error);\n }\n }\n if (this._delivery === delivery) {\n this._delivery = undefined;\n }\n }\n}\n","import { Emitter, Event as DelegateEvent } from \"../delegate\";\r\nimport { disposableCore, IDisposable } from \"../disposable\";\r\nimport { ComponentBase } from \"../\";\r\nimport { EventArgs } from \"./types\";\r\nimport { callReported } from \"../common/diagnostics\";\r\nimport { lazyBindMethods } from \"../common/lazyBind\";\r\n\r\nexport class ComponentEmiter {\r\n\r\n private _emitters?: Map<string, Emitter<EventArgs>>;\r\n private _sourceDisposables?: Map<string, Set<IDisposable>>;\r\n private _listenerDisposables?: Map<string, Map<Function, IDisposable[]>>;\r\n\r\n constructor(private component: ComponentBase) {\r\n }\r\n\r\n public hasListeners(eventName: string): boolean {\r\n return this._emitters !== undefined && this._emitters.has(eventName);\r\n }\r\n\r\n public fire(eventName: string, args: EventArgs) {\r\n\r\n try {\r\n const e = this._emitters?.get(eventName.toLowerCase());\r\n if (e) {\r\n e.fire(args);\r\n }\r\n } catch { }\r\n }\r\n\r\n public on(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n\r\n try {\r\n this.createEvent(event, cb);\r\n } catch {\r\n }\r\n }\r\n public off(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const lower = String(event).toLowerCase();\r\n const map = this._listenerDisposables?.get(lower);\r\n if (!map) return this;\r\n const list = map.get(cb);\r\n map.delete(cb);\r\n list?.forEach(d => { try { d.dispose(); } catch { } });\r\n return this;\r\n }\r\n private getOrCreateEmitter(name: string): Emitter<EventArgs> {\r\n const emitters = this._emitters ??= new Map();\r\n let e = emitters.get(name);\r\n if (!e) {\r\n e = new Emitter<EventArgs>();\r\n emitters.set(name, e);\r\n }\r\n return e;\r\n }\r\n\r\n private createEvent(event: any, cb: (sender: ComponentBase | this, ev: any) => any) {\r\n const full = String(event);\r\n const lowerFull = full.toLowerCase();\r\n const hook = lowerFull.startsWith('on') ? 'x:' + lowerFull.slice(2) : lowerFull;\r\n const invoke = (e: EventArgs) => {\r\n let res: any;\r\n callReported(() => {\r\n res = (cb as any).length <= 1 ? (cb as any)(e as any) : cb(this.component, e as any);\r\n return res;\r\n }, 'MJX122', hook);\r\n return res;\r\n };\r\n\r\n const emitter = this.getOrCreateEmitter(lowerFull);\r\n const disp = emitter.event((e) => invoke(e));\r\n\r\n const listeners = this._listenerDisposables ??= new Map();\r\n let map = listeners.get(lowerFull);\r\n if (!map) { map = new Map(); listeners.set(lowerFull, map); }\r\n const list = map.get(cb);\r\n if (list) { list.push(disp); } else { map.set(cb, [disp]); }\r\n return this;\r\n }\r\n\r\n public addSource(event: string, source: Emitter<EventArgs> | DelegateEvent<EventArgs>) {\r\n const lower = String(event).toLowerCase();\r\n const target = this.getOrCreateEmitter(lower);\r\n const forward = (ev: DelegateEvent<EventArgs>) => ev(e => target.fire(e));\r\n let disp: IDisposable | undefined;\r\n try {\r\n if (source instanceof Emitter) {\r\n disp = forward(source.event);\r\n } else {\r\n disp = forward(source);\r\n }\r\n } catch { }\r\n if (disp) {\r\n const sources = this._sourceDisposables ??= new Map();\r\n let set = sources.get(lower);\r\n if (!set) { set = new Set(); sources.set(lower, set); }\r\n set.add(disp);\r\n this.component.motif.register(disposableCore.toDisposable(() => {\r\n try { disp?.dispose(); } catch { }\r\n try { set?.delete(disp!); } catch { }\r\n }));\r\n }\r\n return this;\r\n }\r\n\r\n public clear(event?: string) {\r\n if (event) {\r\n const lower = event.toLowerCase();\r\n const srcs = this._sourceDisposables?.get(lower);\r\n srcs?.forEach(d => { try { d.dispose(); } catch { } });\r\n this._sourceDisposables?.delete(lower);\r\n const agg = this._emitters?.get(lower);\r\n try { agg?.dispose(); } catch { }\r\n this._emitters?.delete(lower);\r\n this._listenerDisposables?.delete(lower);\r\n } else if (this._emitters) {\r\n for (const key of Array.from(this._emitters.keys())) { this.clear(key); }\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nlazyBindMethods(ComponentEmiter.prototype, ['fire', 'on', 'off', 'createEvent', 'getOrCreateEmitter', 'addSource', 'clear']);","import { IAttribute } from \"../\";\r\nimport { ComponentBase } from \"../\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { Binding, IBaseBinding } from \"../bindings\";\r\nimport { isComponentLike } from \"./componentBase\";\r\n\r\nexport type ElementTypes = Node | Element | HTMLElement | Text | DocumentFragment | Comment | HTMLDivElement;\r\n\r\nconst METHOD_ATTRS = new Set<string>([\r\n 'focus', 'blur', 'click', 'pause', 'submit', 'reset',\r\n 'scrollTo', 'scrollBy', 'select', 'scrollIntoView',\r\n 'requestFullscreen', 'exitFullscreen',\r\n 'requestPointerLock', 'exitPointerLock',\r\n 'play', 'requestPictureInPicture', 'exitPictureInPicture',\r\n 'show', 'showModal', 'close', 'showPopover', 'hidePopover', 'togglePopover',\r\n 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load',\r\n 'setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek'\r\n]);\r\n\r\nconst OPEN_METHODS: Record<string, string> = { show: 'close', showModal: 'close', showPopover: 'hidePopover' };\r\nconst WHEN_TRUTHY_METHODS = new Set<string>(['close', 'hidePopover', 'requestSubmit', 'checkValidity', 'reportValidity', 'showPicker', 'load']);\r\nconst ARGUMENT_METHODS = new Set<string>(['setSelectionRange', 'setRangeText', 'setPointerCapture', 'releasePointerCapture', 'fastSeek']);\r\n\r\nconst PROPERTY_FIRST = new Set<string>(['checked', 'selected', 'muted', 'indeterminate', 'srcObject']);\r\n\r\nexport class controlAttribute<ElementType extends ElementTypes> implements IAttribute<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase<ElementType, any>;\r\n private _attrMapStore?: Map<string | symbol, any>;\r\n private _watchersStore?: Map<string | symbol, { stop: () => void, binding?: IBaseBinding }>;\r\n constructor(parent: ComponentBase<ElementType, any>) {\r\n this._parent = parent;\r\n }\r\n private get _attrMap(): Map<string | symbol, any> { return this._attrMapStore ??= new Map(); }\r\n private get _watchers(): Map<string | symbol, { stop: () => void, binding?: IBaseBinding }> { return this._watchersStore ??= new Map(); }\r\n\r\n /** @deprecated Tek kaynak `_attrMap`; geriye dönük okuma için türetilmiş görünüm. */\r\n get attributes(): { name: string, value: any }[] {\r\n return Array.from(this._attrMap.entries(), ([name, value]) => ({ name: String(name), value }));\r\n }\r\n add(attribute: object | string): ComponentBase<ElementType, any> {\r\n if (attribute !== null && typeof attribute === 'object' && !Array.isArray(attribute)) {\r\n const bag = attribute as Record<string | symbol, any>;\r\n Reflect.ownKeys(bag).forEach(key => {\r\n this.parse(bag[key], key);\r\n });\r\n }\r\n return this._parent;\r\n\r\n };\r\n remove(key: string): ComponentBase<ElementType, any> {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n this._attrMap.delete(key);\r\n const el = this._getElement();\r\n if (el) {\r\n try { el.removeAttribute(key); } catch { }\r\n }\r\n return this._parent;\r\n };\r\n has(key: string): boolean {\r\n\r\n if (this._parent.element instanceof HTMLElement ||\r\n this._parent.element instanceof Element) {\r\n return this._parent.element.hasAttribute(key)\r\n }\r\n return false;\r\n };\r\n get(key: string): string | null {\r\n const el = this._getElement();\r\n if (el) {\r\n const v = el.getAttribute(key);\r\n if (v != null) return v;\r\n }\r\n const val = this._attrMap.get(key);\r\n return val == null ? null : String(val);\r\n };\r\n\r\n parse(values: any, key: any) {\r\n\r\n if (typeof values === 'function') {\r\n const stopper = this._watchers.get(key);\r\n if (stopper) {\r\n try { stopper.stop(); } catch { }\r\n try { stopper.binding && this._parent.bindings.remove(stopper.binding); } catch { }\r\n this._watchers.delete(key);\r\n }\r\n const run = () => effect(() => {\r\n const v = values();\r\n this._applyValue(key, v);\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__attr:${String(key)}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate() { stop(); },\r\n reActivate() {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n this._watchers.set(key, { stop, binding });\r\n } else {\r\n this._applyValue(key, values);\r\n }\r\n }\r\n\r\n private _applyValue(key: string | symbol, raw: any) {\r\n if (!key) return;\r\n const el = this._getElement();\r\n\r\n try {\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n if (typeof raw === 'function') {\r\n raw = raw();\r\n }\r\n }\r\n } catch {\r\n }\r\n\r\n if (el && typeof key === 'string' && METHOD_ATTRS.has(key)) {\r\n const k = key as string;\r\n const method = (el as any)[k];\r\n if (typeof method === 'function') {\r\n const invoke = (fn: Function, arg?: any) => {\r\n try {\r\n if (Array.isArray(arg)) {\r\n fn.apply(el, arg);\r\n } else if (arg === undefined) {\r\n fn.call(el);\r\n } else {\r\n fn.call(el, arg);\r\n }\r\n } catch { }\r\n };\r\n const schedule = (fn: () => void) => { try { queueMicrotask(fn); } catch { try { setTimeout(fn, 0); } catch { } } };\r\n const cacheValue = () => {\r\n this._attrMap.set(key, raw);\r\n };\r\n\r\n if (k === 'focus') {\r\n const action = () => {\r\n if (raw === false) {\r\n const blur = (el as any).blur; if (typeof blur === 'function') invoke(blur);\r\n } else if (raw === true) {\r\n invoke(method);\r\n } else if (typeof raw === 'object' && raw != null && raw !== true) {\r\n invoke(method, raw);\r\n } else if (Array.isArray(raw)) {\r\n invoke(method, raw);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'blur' || k === 'click' || k === 'pause' || k === 'submit' || k === 'reset') {\r\n const action = () => { if (raw) invoke(method); };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'scrollTo' || k === 'scrollBy') {\r\n const action = () => {\r\n if (Array.isArray(raw) || (raw && typeof raw === 'object')) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'select') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n const inp: any = el as any;\r\n if (typeof inp.setSelectionRange === 'function') {\r\n try { inp.setSelectionRange(0, 0); } catch { }\r\n }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'scrollIntoView') {\r\n const action = () => {\r\n if (raw === true || raw == null) {\r\n invoke(method);\r\n } else {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'requestFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n\r\n try {\r\n const d: any = document;\r\n if (d && d.fullscreenElement === el && typeof d.exitFullscreen === 'function') {\r\n d.exitFullscreen();\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitFullscreen') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitFullscreen === 'function') d.exitFullscreen();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n invoke(method);\r\n } else {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'exitPointerLock') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document;\r\n if (d && typeof d.exitPointerLock === 'function') d.exitPointerLock();\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'play') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n } else {\r\n const pause = (el as any).pause; if (typeof pause === 'function') invoke(pause);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'requestPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try { const p = method.call(el); if (p && typeof p.then === 'function') p.catch(() => { }); } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n if (k === 'exitPictureInPicture') {\r\n const action = () => {\r\n if (raw) {\r\n try {\r\n const d: any = document as any;\r\n if (d && typeof d.exitPictureInPicture === 'function') {\r\n const p = d.exitPictureInPicture(); if (p && typeof p.then === 'function') p.catch(() => { });\r\n }\r\n } catch { }\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k in OPEN_METHODS) {\r\n const action = () => {\r\n if (raw === false) {\r\n const other = (el as any)[OPEN_METHODS[k]]; if (typeof other === 'function') invoke(other);\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (k === 'togglePopover') {\r\n const action = () => {\r\n if (typeof raw === 'boolean') {\r\n try { method.call(el, raw); } catch { }\r\n } else if (raw) {\r\n invoke(method);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (WHEN_TRUTHY_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw === true) {\r\n invoke(method);\r\n } else if (raw) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (ARGUMENT_METHODS.has(k)) {\r\n const action = () => {\r\n if (raw !== undefined && raw !== null && raw !== false) {\r\n invoke(method, raw);\r\n }\r\n };\r\n schedule(action);\r\n cacheValue();\r\n return;\r\n }\r\n\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n cacheValue();\r\n return;\r\n }\r\n }\r\n\r\n if (typeof key === 'string' && PROPERTY_FIRST.has(key)) {\r\n const target = (this._parent.element as any) ?? el;\r\n if (target) {\r\n try {\r\n if (key === 'srcObject') {\r\n target.srcObject = raw ?? null;\r\n } else {\r\n target[key] = !!raw;\r\n }\r\n } catch { }\r\n }\r\n if (raw === undefined || raw === null || raw === false) {\r\n this._attrMap.delete(key);\r\n } else {\r\n this._attrMap.set(key, raw);\r\n }\r\n return;\r\n }\r\n\r\n if (typeof raw === 'boolean' && typeof key === 'string' && (key.startsWith('aria-') || key.startsWith('data-'))) {\r\n if (el) { try { (el as Element).setAttribute(key, String(raw)); } catch { } }\r\n this._attrMap.set(key, raw);\r\n return;\r\n }\r\n\r\n const isUnset = raw === undefined || raw === null || raw === false;\r\n const isBool = typeof raw === 'boolean';\r\n\r\n if (isUnset) {\r\n if (el) { try { (el as Element).removeAttribute(String(key)); } catch { } }\r\n this._attrMap.delete(key);\r\n return;\r\n }\r\n\r\n if (key === 'value') {\r\n try {\r\n const input = (this._parent.element as any) as HTMLInputElement;\r\n const next = String(raw);\r\n if (input.value !== next) { input.value = next; }\r\n } catch { }\r\n } else if (key === 'textContent' || key === 'innerText' || key === 'innerHTML') {\r\n if (isComponentLike(raw)) { this._parent.setText(raw as any); return; }\r\n try { (this._parent.element as any)[key as any] = raw; } catch { }\r\n } else {\r\n if (el) {\r\n try {\r\n if (isBool && raw === true) {\r\n (el as Element).setAttribute(String(key), '');\r\n } else {\r\n (el as Element).setAttribute(String(key), raw);\r\n }\r\n } catch { }\r\n }\r\n }\r\n\r\n this._attrMap.set(key, raw);\r\n }\r\n\r\n private _getElement(): Element | null {\r\n const el = this._parent?.element as unknown;\r\n if (el instanceof HTMLElement || el instanceof Element) return el as Element;\r\n return null;\r\n }\r\n\r\n public hasMethodState(key: string): boolean {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n return !!this.getMethodState(key);\r\n }\r\n\r\n public getMethodState(key: string): any {\r\n const el = this._getElement();\r\n if (!el || !key) return false;\r\n const k = String(key);\r\n switch (k) {\r\n case 'focus':\r\n case 'blur':\r\n try { return (document && (document as any).activeElement) === el; } catch { return false; }\r\n case 'select': {\r\n const inp: any = el as any;\r\n if (typeof inp.selectionStart === 'number' && typeof inp.selectionEnd === 'number') {\r\n try { return (inp.selectionEnd - inp.selectionStart) > 0; } catch { return false; }\r\n }\r\n return false;\r\n }\r\n case 'scrollIntoView':\r\n return false;\r\n case 'click':\r\n return false;\r\n default:\r\n return false;\r\n }\r\n }\r\n}","import { IClass } from \"../\";\r\nimport { ComponentBase } from \"./\";\r\nimport { effect } from \"../store/reactivity-core\";\r\nimport { IBaseBinding } from \"../bindings\";\r\n\r\n\r\n\r\nexport class controlClass<ElementType extends Element | HTMLElement | Text | DocumentFragment | Comment> implements IClass<ComponentBase<ElementType, any>> {\r\n private _parent: ComponentBase;\r\n constructor(parent: ComponentBase) {\r\n this._parent = parent;\r\n }\r\n private _countsStore?: Map<string, number>;\r\n private _staticSetStore?: Set<string>;\r\n private _watchersStore?: Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }>;\r\n private _watcherSeq = 0;\r\n private get _counts(): Map<string, number> { return this._countsStore ??= new Map(); }\r\n private get _staticSet(): Set<string> { return this._staticSetStore ??= new Set(); }\r\n private get _watchers(): Map<string, { stop: () => void, binding?: IBaseBinding, set: Set<string> }> { return this._watchersStore ??= new Map(); }\r\n\r\n add(...values: (string | any[] | {} | Function)[]): ComponentBase {\r\n for (const value of values) {\r\n if (typeof value === 'function') {\r\n this._addReactive(value);\r\n } else if (Array.isArray(value)) {\r\n this._addStaticFromArray(value);\r\n } else if (value && typeof value === 'object') {\r\n this._addStaticFromObject(value as Record<string, any>);\r\n } else {\r\n var valueStr = String(value ?? '').trim();\r\n if (valueStr.split(' ').length > 1) {\r\n this._addStaticFromArray(valueStr.split(' '));\r\n } else {\r\n this._addStaticFromString(valueStr);\r\n }\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n remove(classNames: string | string[]): ComponentBase {\r\n const el = this._getElement();\r\n if (Array.isArray(classNames)) {\r\n const prev = new Set(this._staticSet);\r\n for (const cn of classNames) {\r\n for (const cls of this._splitClasses(String(cn))) {\r\n this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n } else {\r\n if (classNames === '**') {\r\n for (const [id, w] of Array.from(this._watchers.entries())) {\r\n const prev = new Set(w.set);\r\n this._applySourceDiff(id, prev, new Set(), el);\r\n try { w.binding && this._parent.bindings.remove(w.binding); } catch { }\r\n try { w.stop(); } catch { }\r\n this._watchers.delete(id);\r\n }\r\n const prev = new Set(this._staticSet);\r\n this._staticSet.clear();\r\n this._applySourceDiff('static', prev, new Set(), el);\r\n if (el) {\r\n try { el.removeAttribute('class'); } catch { /* ignore */ }\r\n }\r\n this._counts.clear();\r\n } else {\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(String(classNames))) {\r\n this._staticSet.delete(cls);\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n }\r\n return this._parent;\r\n }\r\n\r\n has(className: string): boolean {\r\n const el = this._getElement();\r\n const name = String(className ?? '').trim();\r\n if (!name) return false;\r\n return !!(el && el.classList.contains(name));\r\n }\r\n\r\n private _getElement(): (Element & { classList: DOMTokenList, className: string }) | null {\r\n const el: unknown = this._parent?.element;\r\n if (el instanceof Element) return el as any;\r\n return null;\r\n }\r\n\r\n private _splitClasses(input: string): string[] {\r\n return (input || '')\r\n .split(/\\s+/)\r\n .map(s => s.trim())\r\n .filter(s => s.length > 0);\r\n }\r\n\r\n private _normalizeToSet(values: any, key?: any): Set<string> {\r\n const result = new Set<string>();\r\n if (values == null) return result;\r\n if (typeof values === 'string') {\r\n for (const cls of this._splitClasses(values)) result.add(cls);\r\n } else if (Array.isArray(values)) {\r\n for (const item of values) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) result.add(cls);\r\n } else if (Array.isArray(item)) {\r\n for (const cls of this._normalizeToSet(item)) result.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof item === 'boolean') {\r\n if (key && item) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'object') {\r\n const obj = values as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (!!v) {\r\n for (const cls of this._splitClasses(String(k))) result.add(cls);\r\n }\r\n }\r\n } else if (typeof values === 'boolean') {\r\n if (key && values) {\r\n for (const cls of this._splitClasses(String(key))) result.add(cls);\r\n }\r\n } else {\r\n for (const cls of this._splitClasses(String(values))) result.add(cls);\r\n }\r\n return result;\r\n }\r\n\r\n private _applySourceDiff(sourceId: string, prev: Set<string>, next: Set<string>, el: Element | null) {\r\n\r\n for (const cls of prev) {\r\n if (!next.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount - 1;\r\n if (now <= 0) {\r\n this._counts.delete(cls);\r\n if (el) { try { (el as any).classList.remove(cls); } catch { } }\r\n } else {\r\n this._counts.set(cls, now);\r\n }\r\n }\r\n }\r\n for (const cls of next) {\r\n if (!prev.has(cls)) {\r\n const prevCount = this._counts.get(cls) || 0;\r\n const now = prevCount + 1;\r\n this._counts.set(cls, now);\r\n if (prevCount === 0 && el) {\r\n try { (el as any).classList.add(cls); } catch { }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _addStaticFromString(s: string) {\r\n if (!s) return;\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const cls of this._splitClasses(s)) this._staticSet.add(cls);\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromArray(arr: any[]) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const item of arr) {\r\n if (item == null) continue;\r\n if (typeof item === 'string') {\r\n for (const cls of this._splitClasses(item)) this._staticSet.add(cls);\r\n } else if (Array.isArray(item)) {\r\n const set = this._normalizeToSet(item);\r\n for (const cls of set) this._staticSet.add(cls);\r\n } else if (typeof item === 'object') {\r\n const obj = item as Record<string, any>;\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n if (typeof v === 'function') {\r\n const keys = this._splitClasses(String(k));\r\n for (const cls of keys) this._addReactive(obj[k], cls);\r\n } else {\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n\r\n }\r\n } else if (typeof item === 'boolean') {\r\n continue;\r\n } else if (typeof item === \"function\") {\r\n this._addReactive(item);\r\n } else {\r\n for (const cls of this._splitClasses(String(item))) this._staticSet.add(cls);\r\n }\r\n }\r\n\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addStaticFromObject(obj: Record<string, any>) {\r\n const el = this._getElement();\r\n const prev = new Set(this._staticSet);\r\n for (const k of Object.keys(obj)) {\r\n const v = obj[k];\r\n const keys = this._splitClasses(String(k));\r\n if (!!v) {\r\n for (const cls of keys) this._staticSet.add(cls);\r\n } else {\r\n for (const cls of keys) this._staticSet.delete(cls);\r\n }\r\n }\r\n this._applySourceDiff('static', prev, new Set(this._staticSet), el);\r\n }\r\n\r\n private _addReactive(fn: Function, key?: any) {\r\n const id = `fx#${++this._watcherSeq}`;\r\n const rec = { stop: () => { }, binding: undefined as undefined | IBaseBinding, set: new Set<string>() };\r\n const el = this._getElement();\r\n const run = () => effect(() => {\r\n let next: Set<string>;\r\n try {\r\n const v = fn();\r\n next = this._normalizeToSet(v, key);\r\n } catch {\r\n next = new Set();\r\n }\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, next, el);\r\n rec.set = next;\r\n });\r\n let current = run();\r\n const stop = () => { try { current(); } catch { } };\r\n\r\n const binding: IBaseBinding = {\r\n propertyName: `__class:${id}`,\r\n dataSource: null,\r\n activate() { /* no-op */ },\r\n deactivate: () => {\r\n stop();\r\n const el2 = this._getElement();\r\n const prev = new Set(rec.set);\r\n this._applySourceDiff(id, prev, new Set(), el2);\r\n rec.set.clear();\r\n },\r\n reActivate: () => {\r\n stop();\r\n current = run();\r\n }\r\n } as any;\r\n try { this._parent.bindings.add(binding); } catch { }\r\n rec.stop = stop;\r\n rec.binding = binding;\r\n this._watchers.set(id, rec);\r\n }\r\n}","import { CSSTransitionInfo, TransitionProps } from \"../common/transition\";\r\nimport { TransitionMode } from \"../common/transitionRegistry\";\r\n\r\nexport interface IHtmlElement extends HTMLElement { }\r\nexport interface IElement extends Node { }\r\nexport type ElementType = IElement | IHtmlElement | DocumentFragment | Comment | Text;\r\nexport type CustomParameters<T extends any> = T extends (...args: infer P) => any ? P[0] : never;\r\n\r\n\r\nexport type IsOptional<T> = T extends {} ? { [K in keyof T]-?: {} extends Pick<T, K> ? true : false }[keyof T] : false;\r\n\r\nexport type OptionalParams<T> = T extends null ? { params?: undefined } : T extends undefined ? { params?: undefined } : IsOptional<T> extends true ? T : T;\r\n\r\n\r\nexport interface EventArgs {\r\n cancel: boolean;\r\n}\r\n\r\nexport type RouterClassingSettings = {\r\n to: 'all' | 'active' | 'exact' | 'none',\r\n path: string,\r\n activeClass?: string,\r\n exactClass?: string,\r\n onActive?: () => void,\r\n offActive?: () => void,\r\n onExact?: () => void,\r\n offExact?: () => void,\r\n}\r\n\r\nexport interface ComponentBaseOptions<TProps> {\r\n props?: TProps;\r\n [key: string]: any;\r\n cache?: DocumentFragment;\r\n closeFragment?: Comment;\r\n transition: {\r\n transitionInfo: () => {\r\n in: CSSTransitionInfo,\r\n out: CSSTransitionInfo\r\n },\r\n name: string,\r\n mode?: TransitionMode,\r\n classes?: TransitionProps,\r\n activeCssCancel: (() => void) | null,\r\n activeCssPhase: 'enter' | 'leave' | null,\r\n cssProps: () => TransitionProps | null,\r\n skipNextLeave: boolean\r\n _suppressEnter: boolean\r\n _markedDirection: boolean\r\n in: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n out: (op: { keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions }) => void,\r\n enterTransition: (resolve: () => void) => Animation,\r\n leaveTransition: (resolve: () => void) => Animation,\r\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear?: boolean) => Animation,\r\n activeAnimations: Animation[],\r\n run: (keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions, resolve?: () => void) => Animation\r\n },\r\n set enableRouterClassing(value: RouterClassingSettings);\r\n getInstance(): any;\r\n hasEvent: (name: string) => boolean;\r\n}\r\n\r\n\r\nexport const shimAnimation: any = {\r\n cancel() { },\r\n addEventListener() { },\r\n removeEventListener() { },\r\n oncancel: null,\r\n playState: 'finished'\r\n};\r\n\r\n\r\nexport type AnyEvents = {\r\n [key: string]: any\r\n}\r\n\r\nexport type HtmlElementEvents = {\r\n [K in keyof IHtmlElement as K extends `on${string}` ?\r\n | Uncapitalize<K extends `on${infer EventName}` ? EventName : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:prevent:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:once:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:capture:self` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:passive:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:prevent:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:stop:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:trusted:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture` : never>\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:capture:self` : never>\r\n\r\n | Uncapitalize<K extends `on${infer EventName}` ? `${EventName}:self` : never>\r\n : 'x:building' | 'x:built' | 'x:initializing' | 'x:initialized' | 'x:disposing' | 'x:disposed' | 'x:config' | 'x:configured' | 'x:visibilityChanged' | 'x:mounted']\r\n : CustomParameters<IHtmlElement[K]> extends Event ? CustomParameters<IHtmlElement[K]> : EventArgs;\r\n\r\n} & AnyEvents;\r","\r\nimport { dom } from \"../\";\r\n\r\ntype TransitionKind = 'transition' | 'animation'\r\n\r\nexport interface CSSTransitionInfo {\r\n type: TransitionKind | null\r\n timeout: number\r\n propCount: number\r\n hasTransform: boolean\r\n}\r\n\r\nexport interface TransitionProps {\r\n name?: string\r\n type?: TransitionKind\r\n css?: boolean\r\n duration?: number | { enter: number; leave: number }\r\n enterFromClass?: string\r\n enterActiveClass?: string\r\n enterToClass?: string\r\n appearFromClass?: string\r\n appearActiveClass?: string\r\n appearToClass?: string\r\n leaveFromClass?: string\r\n leaveActiveClass?: string\r\n leaveToClass?: string\r\n}\r\n\r\n\r\ninterface TimingSample {\r\n kind: TransitionKind\r\n longest: number\r\n tracks: number\r\n}\r\n\r\nfunction cssTimeToMs(text: string): number {\r\n const amount = text.substring(0, Math.max(0, text.length - 1)).replace(',', '.');\r\n return 1000 * Number(amount);\r\n}\r\n\r\nfunction sampleTiming(styles: any, kind: TransitionKind): TimingSample {\r\n const listOf = (aspect: 'delay' | 'duration'): string[] => {\r\n const declared: string = styles[`${kind}-${aspect}`] || '';\r\n return declared.split(', ');\r\n };\r\n const delays = listOf('delay');\r\n const durations = listOf('duration');\r\n let longest = -Infinity;\r\n for (let track = 0; track < durations.length; track++) {\r\n const total = cssTimeToMs(durations[track]) + cssTimeToMs(delays[track % delays.length]);\r\n longest = Math.max(longest, total);\r\n }\r\n return { kind, longest, tracks: durations.length };\r\n}\r\n\r\nconst transformTrack = /(?:^|\\W)(?:transform|all)(?:,|$)/;\r\n\r\nfunction computeTransitionInfo(styles: any, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (!styles) {\r\n return { type: 'animation', timeout: 0, propCount: 0, hasTransform: false };\r\n }\r\n\r\n const samples: Record<TransitionKind, TimingSample> = {\r\n transition: sampleTiming(styles, 'transition'),\r\n animation: sampleTiming(styles, 'animation'),\r\n };\r\n\r\n let winner: TimingSample | null;\r\n let timeout: number;\r\n if (Type === 'transition' || Type === 'animation') {\r\n const forced = samples[Type];\r\n winner = forced.longest > 0 ? forced : null;\r\n timeout = winner ? winner.longest : 0;\r\n } else {\r\n const { transition, animation } = samples;\r\n timeout = Math.max(transition.longest, animation.longest);\r\n winner = !(timeout > 0) ? null : transition.longest > animation.longest ? transition : animation;\r\n }\r\n\r\n const type = winner ? winner.kind : null;\r\n return {\r\n type,\r\n timeout,\r\n propCount: winner ? winner.tracks : 0,\r\n hasTransform: type === 'transition' && transformTrack.test(styles.transitionProperty),\r\n };\r\n}\r\n\r\nexport function getTransitionInfo(el: Element, name: string, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n if (el.isConnected && el.nodeType !== 8) {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n }\r\n const fxElement = dom.createElement('div');\r\n fxElement.setAttribute('style', 'width:0!important;height:0!important;display:none');\r\n dom.body.appendChild(fxElement);\r\n fxElement.setAttribute('class', name);\r\n try {\r\n return computeTransitionInfo(dom.window.getComputedStyle(fxElement), Type);\r\n } finally {\r\n fxElement.remove();\r\n }\r\n}\r\n\r\n\r\nexport function getTransitionInfoFromElement(el: Element, Type?: TransitionProps['type']): CSSTransitionInfo {\r\n return computeTransitionInfo(dom.window.getComputedStyle(el), Type);\r\n}\r\n\r\nexport type TransitionPhase = 'enter' | 'leave';\r\n\r\nexport function resolveTransitionClasses(props: TransitionProps, phase: TransitionPhase, appear: boolean = false): { from: string, active: string, to: string } {\r\n const name = props.name || 'motif';\r\n if (phase === 'enter') {\r\n const enter = {\r\n from: props.enterFromClass ?? `${name}-enter-from`,\r\n active: props.enterActiveClass ?? `${name}-enter-active`,\r\n to: props.enterToClass ?? `${name}-enter-to`,\r\n };\r\n if (!appear) return enter;\r\n return {\r\n from: props.appearFromClass ?? enter.from,\r\n active: props.appearActiveClass ?? enter.active,\r\n to: props.appearToClass ?? enter.to,\r\n };\r\n }\r\n return {\r\n from: props.leaveFromClass ?? `${name}-leave-from`,\r\n active: props.leaveActiveClass ?? `${name}-leave-active`,\r\n to: props.leaveToClass ?? `${name}-leave-to`,\r\n };\r\n}\r\n\r\nexport function runCssTransition(el: Element, props: TransitionProps, phase: TransitionPhase, done: () => void, appear: boolean = false): () => void {\r\n if (props.css === false) {\r\n done();\r\n return () => { };\r\n }\r\n const classes = resolveTransitionClasses(props, phase, appear);\r\n const addC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.add(x); } catch { } }); };\r\n const removeC = (c: string) => { if (c) c.split(/\\s+/).forEach(x => { if (x) try { el.classList.remove(x); } catch { } }); };\r\n\r\n let finished = false;\r\n let guardTimer: any = undefined;\r\n let endEvent: string | null = null;\r\n let endHandler: ((e: any) => void) | null = null;\r\n\r\n const cleanup = () => {\r\n removeC(classes.from);\r\n removeC(classes.to);\r\n removeC(classes.active);\r\n if (guardTimer !== undefined) { try { clearTimeout(guardTimer); } catch { } guardTimer = undefined; }\r\n if (endEvent && endHandler) { try { el.removeEventListener(endEvent, endHandler); } catch { } endHandler = null; }\r\n };\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n cleanup();\r\n try { done(); } catch { }\r\n };\r\n\r\n addC(classes.from);\r\n addC(classes.active);\r\n try { void (el as HTMLElement).offsetHeight; } catch { }\r\n\r\n const nextFrame = (cb: () => void) => {\r\n const raf = (globalThis as any).requestAnimationFrame;\r\n if (typeof raf === 'function') { raf(() => cb()); } else { setTimeout(cb, 16); }\r\n };\r\n\r\n nextFrame(() => {\r\n if (finished) return;\r\n removeC(classes.from);\r\n addC(classes.to);\r\n\r\n let timeout = 0;\r\n let expectedEnds = 1;\r\n const dur = props.duration;\r\n if (typeof dur === 'number') {\r\n timeout = dur;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else if (dur && typeof dur === 'object') {\r\n timeout = (phase === 'enter' ? dur.enter : dur.leave) ?? 0;\r\n endEvent = props.type === 'animation' ? 'animationend' : 'transitionend';\r\n } else {\r\n const info = getTransitionInfoFromElement(el, props.type);\r\n timeout = info.timeout;\r\n expectedEnds = info.propCount || 1;\r\n endEvent = info.type === 'animation' ? 'animationend' : 'transitionend';\r\n }\r\n\r\n if (!timeout || timeout <= 0) {\r\n finish();\r\n return;\r\n }\r\n\r\n let ended = 0;\r\n endHandler = (e: any) => {\r\n if (e && e.target !== el) return;\r\n if (++ended >= expectedEnds) finish();\r\n };\r\n try { el.addEventListener(endEvent, endHandler); } catch { }\r\n guardTimer = setTimeout(finish, timeout + 60);\r\n });\r\n\r\n return finish;\r\n}\r","import type { ComponentBase } from \"./componentBase\";\nimport { disposableCore, IDisposable } from \"..\";\nimport type { ComponentBaseOptions, EventArgs, HtmlElementEvents } from \"./types\";\n\nexport class ComponentMotif<TSelf extends ComponentBase = ComponentBase, TProps extends object = any> {\n\n private readonly _component: TSelf;\n public options: ComponentBaseOptions<TProps> & { hideStrategy?: 'placeholder' | 'detach' | 'auto', __fromList?: boolean, __key?: any, placeholder?: Comment };\n\n constructor(component: TSelf, options: ComponentMotif<TSelf, TProps>['options']) {\n this._component = component;\n this.options = options;\n }\n\n public show(): Promise<any> {\n return this._component['_show']();\n }\n\n public hide(): Promise<any> {\n return this._component['_hide']();\n }\n\n public toggle(): void {\n this._component['_toggle']();\n }\n\n public on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<TSelf> {\n return this._component['_on'](event, cb as any, domEvent);\n }\n\n public off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: TSelf, ev: HtmlElementEvents[K]) => any): Promise<TSelf> {\n return this._component['_off'](event, cb as any);\n }\n\n public trigger(event: any, ev: any): Promise<TSelf> {\n return this._component['_trigger'](event, ev);\n }\n\n public addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void): void {\n this._component['_addHandler'](event, handler);\n }\n\n public clear(): Promise<any> {\n return this._component['_clear']();\n }\n\n public register(c: IDisposable): void {\n this._component['_register'](c);\n }\n\n public setDisposable(c: () => void): void {\n this._component['_register'](disposableCore.toDisposable(c));\n }\n\n public stopAnimations(): Promise<void> {\n return this._component['_stopAnimations']();\n }\n}\n","import { track, trigger, effect, createScheduledEffect, untracked, ScheduledEffect } from \"../\";\r\nimport { pauseTracking, resetTracking } from \"./common\";\r\nconst SIGNAL_TARGET = Symbol('SignalTarget');\r\nconst SIGNAL_KEY = Symbol('SignalKey');\r\n\r\nexport class Signal<T> {\r\n private _value: T;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _equals: (a: T, b: T) => boolean;\r\n private _disposed = false;\r\n\r\n public static create<U>(initialValue: U, equals?: (a: U, b: U) => boolean): Signal<U> {\r\n return new Signal<U>(initialValue, equals);\r\n }\r\n\r\n constructor(initialValue: T, equals: (a: T, b: T) => boolean = Object.is) {\r\n this._value = initialValue;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n this._equals = equals;\r\n }\r\n\r\n get value(): T {\r\n if (!this._disposed) {\r\n track(this._target, this._key);\r\n }\r\n return this._value;\r\n }\r\n\r\n set value(newValue: T) {\r\n if (this._disposed) return;\r\n if (!this._equals(this._value as any, newValue as any)) {\r\n this._value = newValue;\r\n trigger(this._target, this._key);\r\n }\r\n }\r\n\r\n peek(): T {\r\n return this._value;\r\n }\r\n\r\n update(updater: (prev: T) => T): void {\r\n this.value = (updater(this._value));\r\n }\r\n\r\n mutate(mutator: (draft: T) => void): void {\r\n if (this._disposed) return;\r\n mutator(this._value);\r\n trigger(this._target, this._key);\r\n }\r\n\r\n notify(): void {\r\n if (this._disposed) return;\r\n trigger(this._target, this._key);\r\n }\r\n\r\n asReadonly(): ReadonlySignal<T> {\r\n const self = this;\r\n return {\r\n get value() { return self.value; },\r\n peek() { return self.peek(); },\r\n valueOf() { return self.valueOf(); },\r\n toString() { return self.toString(); }\r\n };\r\n }\r\n \r\n dispose(): void {\r\n this._disposed = true;\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\r\nexport interface ReadonlySignal<T> {\r\n readonly value: T;\r\n peek(): T;\r\n valueOf(): T;\r\n toString(): string;\r\n}\r\n\r\n\r\nexport class Computed<T> {\r\n private _value!: T;\r\n private _dirty: boolean = true;\r\n private _computing: boolean = false;\r\n private readonly _target: object;\r\n private readonly _key: symbol;\r\n private readonly _getter: () => T;\r\n private _cleanup?: () => void;\r\n\r\n constructor(getter: () => T) {\r\n this._getter = getter;\r\n this._target = { [SIGNAL_TARGET]: true };\r\n this._key = SIGNAL_KEY;\r\n\r\n this._cleanup = effect(() => {\r\n if (this._computing) return; \r\n this._computing = true;\r\n try {\r\n const newVal = this._getter();\r\n const changed = this._dirty || !Object.is(this._value, newVal);\r\n this._value = newVal;\r\n this._dirty = false;\r\n if (changed) {\r\n trigger(this._target, this._key);\r\n }\r\n } finally {\r\n this._computing = false;\r\n }\r\n });\r\n }\r\n\r\n get value(): T {\r\n track(this._target, this._key);\r\n\r\n if (this._dirty) { \r\n this._computing = true;\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n this._computing = false;\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n peek(): T {\r\n if (this._dirty) {\r\n pauseTracking();\r\n try {\r\n this._value = this._getter();\r\n this._dirty = false;\r\n } finally {\r\n resetTracking();\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n dispose(): void {\r\n if (this._cleanup) {\r\n this._cleanup();\r\n this._cleanup = undefined;\r\n }\r\n }\r\n\r\n valueOf(): T {\r\n return this.value;\r\n }\r\n\r\n toString(): string {\r\n return String(this.value);\r\n }\r\n}\r\n\n\nexport class LazyComputed<T> {\n private _value!: T;\n private _dirty: boolean = true;\n private _disposed: boolean = false;\n private readonly _target: object;\n private readonly _key: symbol;\n private readonly _getter: () => T;\n private readonly _runner: ScheduledEffect;\n\n constructor(getter: () => T) {\n this._getter = getter;\n this._target = { [SIGNAL_TARGET]: true };\n this._key = SIGNAL_KEY;\n this._runner = createScheduledEffect(\n () => { this._value = this._getter(); },\n () => {\n if (this._dirty || this._disposed) return;\n this._dirty = true;\n trigger(this._target, this._key);\n }\n );\n }\n\n get value(): T {\n if (!this._disposed) {\n track(this._target, this._key);\n }\n this._refresh();\n return this._value;\n }\n\n peek(): T {\n this._refresh();\n return this._value;\n }\n\n get isDirty(): boolean {\n return this._dirty;\n }\n\n private _refresh(): void {\n if (!this._dirty) return;\n if (this._disposed) {\n this._value = untracked(this._getter);\n } else {\n this._runner.run();\n }\n this._dirty = false;\n }\n\n dispose(): void {\n if (this._disposed) return;\n this._disposed = true;\n this._runner.stop();\n }\n\n valueOf(): T {\n return this.value;\n }\n\n toString(): string {\n return String(this.value);\n }\n}\n","import { ServiceCollection, ServiceDescriptor } from \"./ServiceCollection\";\nimport { motifError } from \"../common/diagnostics\";\nimport { Signal } from \"../store/Signal\";\n\ntype ScopeKind = 'root' | 'navigation' | 'user';\ntype OwnerSlot = { owner: object | null; ownerless?: boolean };\ntype OwnerPin = { scope: ServiceProvider; live: boolean };\ntype NavigationState = { current: ServiceProvider; version: Signal<number>; scopes: Set<ServiceProvider> };\n\nlet activeResolver: ((token: any) => any) | null = null;\nlet activeSlot: OwnerSlot | null = null;\nlet rawScopedIn: ServiceProvider | null = null;\nlet constructionScope: ServiceProvider | null = null;\nlet navigatingRoot: ServiceProvider | null = null;\n\nconst slotsByOwner = new WeakMap<object, OwnerSlot>();\nconst handlesBySlot = new WeakMap<OwnerSlot, Map<any, any>>();\nconst pins = new WeakMap<object, OwnerPin>();\nconst builtIn = new WeakMap<object, ServiceProvider>();\nconst boundMethods = new WeakMap<object, Map<PropertyKey, { fn: Function; bound: Function }>>();\n\nfunction runWithResolver<T>(resolver: (token: any) => any, create: () => T): T {\n const previous = activeResolver;\n activeResolver = resolver;\n try {\n return create();\n } finally {\n activeResolver = previous;\n }\n}\n\nfunction runWith<T>(slot: OwnerSlot | null, raw: ServiceProvider | null, create: () => T): T {\n const previousSlot = activeSlot;\n const previousRaw = rawScopedIn;\n activeSlot = slot;\n rawScopedIn = raw;\n try {\n return create();\n } finally {\n activeSlot = previousSlot;\n rawScopedIn = previousRaw;\n }\n}\n\nfunction bindTo(target: object, key: PropertyKey, fn: Function): Function {\n let cache = boundMethods.get(target);\n if (!cache) boundMethods.set(target, cache = new Map());\n const hit = cache.get(key);\n if (hit && hit.fn === fn) return hit.bound;\n const bound = fn.bind(target);\n cache.set(key, { fn, bound });\n return bound;\n}\n\nfunction pinnedScopeOf(owner: object | null): ServiceProvider | null {\n let current: any = owner;\n while (current) {\n const pin = pins.get(current);\n if (pin) return pin.scope;\n const built = builtIn.get(current);\n if (built && built._pending) return built;\n current = current.parent;\n }\n return null;\n}\n\nexport function inject<T>(token: (abstract new (...args: any) => T) | { prototype: T }): T;\nexport function inject<T = any>(token: string | symbol | object): T;\nexport function inject(token: any): any {\n if (!activeResolver) throw motifError('MJX409', describeInjectToken(token));\n return activeResolver(token);\n}\n\nfunction describeInjectToken(token: any): string {\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n}\n\nexport function runInConstructionScope<T>(scope: ServiceProvider | undefined, create: () => T): T {\n const previous = constructionScope;\n constructionScope = scope ?? null;\n try {\n return create();\n } finally {\n constructionScope = previous;\n }\n}\n\nexport function recordServiceOwner(owner: object): void {\n if (constructionScope && constructionScope._pending) builtIn.set(owner, constructionScope);\n}\n\nexport function pinServiceOwner(owner: object): void {\n const root = navigatingRoot;\n if (!root) return;\n if (pins.get(owner)?.live) return;\n const target = pinnedScopeOf(owner) ?? root._currentScope();\n pins.set(owner, { scope: target, live: true });\n target._livePins++;\n}\n\nexport function unpinServiceOwner(owner: object): void {\n const pin = pins.get(owner);\n if (!pin) return;\n pins.delete(owner);\n if (pin.live) pin.scope._releaseLivePin();\n navigatingRoot?._touch();\n}\n\nexport function retireServiceOwner(owner: object): void {\n const pin = pins.get(owner);\n if (pin) {\n if (pin.live) {\n pin.live = false;\n pin.scope._releaseLivePin();\n }\n return;\n }\n if (!navigatingRoot || !slotsByOwner.has(owner)) return;\n pins.set(owner, { scope: pinnedScopeOf(owner) ?? navigatingRoot._currentScope(), live: false });\n}\n\nexport class ServiceProvider {\n private parent?: ServiceProvider;\n private root: ServiceProvider;\n private scopeName?: string;\n private kind: ScopeKind;\n private singletonCache: Map<any, any>;\n private scopedCache: Map<any, any> = new Map();\n private transientSet: Set<any> = new Set();\n private _autoDisposeTransients = false;\n private pendingSingleton: Map<any, Promise<any>>;\n private pendingScoped: Map<any, Promise<any>> = new Map();\n private _navigation?: NavigationState;\n private _ownerlessSlot: OwnerSlot = { owner: null, ownerless: true };\n private _navigationDisposed = false;\n public _livePins = 0;\n public _pending = false;\n\n constructor(private services: ServiceCollection, parent?: ServiceProvider, root?: ServiceProvider) {\n this.parent = parent;\n this.root = root ?? this;\n this.kind = this.root === this ? 'root' : 'user';\n this.singletonCache = this.root === this ? new Map() : (this.root as any).singletonCache;\n this.pendingSingleton = this.root === this ? new Map() : (this.root as any).pendingSingleton;\n }\n\n public createScope(name?: string): ServiceProvider {\n const scoped = new ServiceProvider(this.services, this, this.root);\n scoped.scopeName = name ?? this.scopeName;\n (scoped as any)._autoDisposeTransients = this._autoDisposeTransients;\n return scoped;\n }\n\n public enableAutoDisposeTransients(enable = true): this { this._autoDisposeTransients = enable; return this; }\n\n\n public get<T>(token: (abstract new (...args: any) => T) | { prototype: T }): T;\n public get<T = any>(token: string | symbol | object): T;\n public get(token: any): any {\n const desc = this.services.getDescriptor(token);\n if (!desc) throw motifError('MJX401', this.describeToken(token));\n const value = this.resolveDescriptorSync(desc, [token]);\n return value;\n }\n\n public getAsync<T>(token: (abstract new (...args: any) => T) | { prototype: T }): Promise<T>;\n public getAsync<T = any>(token: string | symbol | object): Promise<T>;\n public async getAsync(token: any): Promise<any> {\n const desc = this.services.getDescriptor(token);\n if (!desc) throw motifError('MJX401', this.describeToken(token));\n const value = await this.resolveDescriptorAsync(desc, [token]);\n return value;\n }\n\n public _getFor<T = any>(owner: object, token: any): T {\n let slot = slotsByOwner.get(owner);\n if (!slot) {\n slot = { owner };\n slotsByOwner.set(owner, slot);\n }\n return runWith(slot, rawScopedIn, () => this.get<T>(token));\n }\n\n public getAllServices(): ServiceCollection { return this.services; }\n\n public _beginNavigation(): ServiceProvider {\n const root = this.root;\n const navigation = root._navigation ??= { current: root, version: new Signal(0), scopes: new Set() };\n navigatingRoot = root;\n const scope = new ServiceProvider(this.services, root, root);\n scope.kind = 'navigation';\n scope.scopeName = 'navigation';\n scope._pending = true;\n scope._autoDisposeTransients = root._autoDisposeTransients;\n navigation.scopes.add(scope);\n return scope;\n }\n\n public _commitNavigation(scope: ServiceProvider): void {\n const navigation = this.root._navigation;\n if (!navigation || navigation.current === scope) return;\n scope._pending = false;\n const previous = navigation.current;\n navigation.current = scope;\n this._touch();\n if (previous !== this.root) previous._releaseIfUnused();\n }\n\n public _abandonNavigation(scope: ServiceProvider): void {\n scope._pending = false;\n scope._releaseIfUnused();\n }\n\n public _currentScope(): ServiceProvider {\n return this.root._navigation?.current ?? this.root;\n }\n\n public _touch(): void {\n const navigation = this.root._navigation;\n if (navigation) navigation.version.value = navigation.version.peek() + 1;\n }\n\n public _releaseLivePin(): void {\n this._livePins--;\n this._releaseIfUnused();\n }\n\n private _releaseIfUnused(): void {\n const navigation = this.root._navigation;\n if (this.kind !== 'navigation' || this._navigationDisposed || this._livePins > 0) return;\n if (navigation && navigation.current === this) return;\n this._navigationDisposed = true;\n navigation?.scopes.delete(this);\n this.dispose().catch(() => { });\n }\n\n private _scopeFor(slot: OwnerSlot): ServiceProvider {\n const navigation = this._navigation;\n if (navigation) navigation.version.value;\n if (!slot.ownerless) {\n const pinned = pinnedScopeOf(slot.owner);\n if (pinned) return pinned;\n if (constructionScope && constructionScope.root === this) return constructionScope;\n }\n return navigation ? navigation.current : this;\n }\n\n private _handle(desc: ServiceDescriptor, path: any[]): any {\n const slot = activeSlot ?? this._ownerlessSlot;\n let handles = handlesBySlot.get(slot);\n if (!handles) handlesBySlot.set(slot, handles = new Map());\n let handle = handles.get(desc.token);\n if (!handle) {\n handle = this._createHandle(desc, slot);\n handles.set(desc.token, handle);\n }\n this._scopeFor(slot)._scopedInstanceSync(desc, path);\n return handle;\n }\n\n private async _handleAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n const slot = activeSlot ?? this._ownerlessSlot;\n await this._scopeFor(slot)._scopedInstanceAsync(desc, path);\n return runWith(slot, null, () => this._handle(desc, path));\n }\n\n private _createHandle(desc: ServiceDescriptor, slot: OwnerSlot): any {\n const root = this;\n const target = () => root._scopeFor(slot)._scopedInstanceSync(desc, [desc.token]);\n return new Proxy(Object.create(null), {\n get(_, key) {\n const instance = target();\n const value = Reflect.get(instance, key, instance);\n return typeof value === 'function' ? bindTo(instance, key, value) : value;\n },\n set(_, key, value) {\n const instance = target();\n return Reflect.set(instance, key, value, instance);\n },\n has(_, key) {\n return key in target();\n },\n getPrototypeOf() {\n return Object.getPrototypeOf(target());\n },\n });\n }\n\n private _isSystemScope(): boolean {\n return this.kind !== 'user';\n }\n\n private _scopedInstanceSync(desc: ServiceDescriptor, path: any[]): any {\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\n const inst = runWith(null, this, () => this.instantiateSync(desc, path));\n this.scopedCache.set(desc.token, inst);\n return inst;\n }\n\n private async _scopedInstanceAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n if (this.scopedCache.has(desc.token)) return this.scopedCache.get(desc.token);\n if (this.pendingScoped.has(desc.token)) return await this.pendingScoped.get(desc.token)!;\n const promise = (async () => {\n const inst = await this.instantiateAsyncIn(null, this, desc, path);\n this.scopedCache.set(desc.token, inst);\n this.pendingScoped.delete(desc.token);\n return inst;\n })();\n this.pendingScoped.set(desc.token, promise);\n return await promise;\n }\n\n private resolveDescriptorSync(desc: ServiceDescriptor, path: any[]): any {\n this.checkCycle(desc.token, path);\n switch (desc.lifetime) {\n case 'singleton': {\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\n const inst = runWith(null, null, () => this.instantiateSync(desc, path));\n this.singletonCache.set(desc.token, inst);\n return inst;\n }\n case 'scoped': {\n if (this._isSystemScope() && rawScopedIn !== this) return this.root._handle(desc, path);\n return this._scopedInstanceSync(desc, path);\n }\n case 'transient':\n default: {\n const inst = this.instantiateSync(desc, path);\n if (this._autoDisposeTransients && this.parent) {\n this.transientSet.add(inst);\n }\n return inst;\n }\n }\n }\n\n private async resolveDescriptorAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n this.checkCycle(desc.token, path);\n switch (desc.lifetime) {\n case 'singleton': {\n if (this.singletonCache.has(desc.token)) return this.singletonCache.get(desc.token);\n if (this.pendingSingleton.has(desc.token)) return await this.pendingSingleton.get(desc.token)!;\n const promise = (async () => {\n const inst = await this.instantiateAsyncIn(null, null, desc, path);\n this.singletonCache.set(desc.token, inst);\n this.pendingSingleton.delete(desc.token);\n return inst;\n })();\n this.pendingSingleton.set(desc.token, promise);\n return await promise;\n }\n case 'scoped': {\n if (this._isSystemScope() && rawScopedIn !== this) return await this.root._handleAsync(desc, path);\n return await this._scopedInstanceAsync(desc, path);\n }\n case 'transient':\n default: {\n const inst = await this.instantiateAsync(desc, path);\n if (this._autoDisposeTransients && this.parent) {\n this.transientSet.add(inst);\n }\n return inst;\n }\n }\n }\n\n private construct<T>(create: () => T): T {\n if (activeSlot) return create();\n const slot: OwnerSlot = { owner: null };\n const inst = runWith(slot, rawScopedIn, create);\n if (inst && (typeof inst === 'object' || typeof inst === 'function') && typeof (inst as any).then !== 'function') {\n recordServiceOwner(inst as any);\n slot.owner = inst as any;\n if (!slotsByOwner.has(inst as any)) slotsByOwner.set(inst as any, slot);\n }\n return inst;\n }\n\n private instantiateSync(desc: ServiceDescriptor, path: any[]): any {\n if (desc.useValue !== undefined) {\n return desc.useValue;\n }\n if (desc.useFactory) {\n return this.construct(() => {\n const args = this.resolveDepsSync(desc, path);\n const result = runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this));\n if (result && typeof (result as any).then === 'function') {\n const name = this.describeTokenWithSource(desc.token);\n throw motifError('MJX402', name);\n }\n return result;\n });\n }\n if (desc.useClass) {\n return this.construct(() => {\n const args = this.resolveDepsSync(desc, path);\n return runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args));\n });\n }\n throw motifError('MJX403');\n }\n\n private async instantiateAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any> {\n return await runWith(slot, raw, () => this.instantiateAsync(desc, path));\n }\n\n private async instantiateAsync(desc: ServiceDescriptor, path: any[]): Promise<any> {\n if (desc.useValue !== undefined) {\n return desc.useValue;\n }\n const slot = activeSlot;\n const raw = rawScopedIn;\n if (desc.useFactory) {\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\n return await runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => (desc.useFactory as any)(...args, this))));\n }\n if (desc.useClass) {\n const args = await this.resolveDepsAsyncIn(slot, raw, desc, path);\n return runWith(slot, raw, () => this.construct(() => runWithResolver(this.injectionResolver(path), () => new (desc.useClass as any)(...args))));\n }\n throw motifError('MJX403');\n }\n\n public async dispose(): Promise<void> {\n const seen = new Set<any>();\n const callDispose = async (obj: any) => {\n if (!obj || seen.has(obj)) return;\n seen.add(obj);\n try { if (typeof obj.dispose === 'function') await obj.dispose(); }\n catch { /* ignore */ }\n try { if (typeof obj.close === 'function') await obj.close(); }\n catch { /* ignore */ }\n try {\n const d = (obj as any)[Symbol.dispose];\n if (typeof d === 'function') await d.call(obj);\n } catch { }\n try {\n const ad = (obj as any)[Symbol.asyncDispose];\n if (typeof ad === 'function') await ad.call(obj);\n } catch { }\n };\n if (this.root === this) {\n const navigation = this._navigation;\n if (navigation) {\n const scopes = [...navigation.scopes];\n navigation.scopes.clear();\n navigation.current = this;\n if (navigatingRoot === this) navigatingRoot = null;\n this._navigation = undefined;\n for (const scope of scopes) {\n scope._navigationDisposed = true;\n await scope.dispose();\n }\n }\n for (const v of this.singletonCache.values()) await callDispose(v);\n this.singletonCache.clear();\n this.pendingSingleton.clear();\n }\n for (const v of this.scopedCache.values()) await callDispose(v);\n if (this.kind !== 'navigation') this.scopedCache.clear();\n this.pendingScoped.clear();\n for (const v of this.transientSet.values()) await callDispose(v);\n this.transientSet.clear();\n }\n\n private resolveDepsSync(desc: ServiceDescriptor, path: any[]): any[] {\n const deps = this.getDeps(desc);\n if (!deps || deps.length === 0) return [];\n return deps.map(dep => this.resolveTokenSync(dep, path));\n }\n private async resolveDepsAsyncIn(slot: OwnerSlot | null, raw: ServiceProvider | null, desc: ServiceDescriptor, path: any[]): Promise<any[]> {\n const deps = this.getDeps(desc);\n if (!deps || deps.length === 0) return [];\n const results: any[] = [];\n for (const dep of deps) {\n results.push(await runWith(slot, raw, () => this.resolveTokenAsync(dep, path)));\n }\n return results;\n }\n private injectionResolver(path: any[]): (token: any) => any {\n return (token: any) => this.resolveTokenSync(token, path);\n }\n private getDeps(desc: ServiceDescriptor): any[] | undefined {\n if (Array.isArray(desc.deps)) return desc.deps;\n const source: any = desc.useClass ?? desc.useFactory;\n if (source) {\n if (Array.isArray(source.inject)) return source.inject;\n if (Array.isArray(source.dependencies)) return source.dependencies;\n }\n return undefined;\n }\n private resolveTokenSync(token: any, path: any[]): any {\n const d = this.services.getDescriptor(token);\n if (!d) throw motifError('MJX401', this.describeToken(token));\n const nextPath = path.concat(token);\n return this.resolveDescriptorSync(d, nextPath);\n }\n private async resolveTokenAsync(token: any, path: any[]): Promise<any> {\n const d = this.services.getDescriptor(token);\n if (!d) throw motifError('MJX401', this.describeToken(token));\n const nextPath = path.concat(token);\n return await this.resolveDescriptorAsync(d, nextPath);\n }\n private checkCycle(token: any, path: any[]) {\n const firstIndex = path.indexOf(token);\n if (firstIndex !== -1 && firstIndex !== path.length - 1) {\n const chainTokens = path.slice(firstIndex).concat([token]);\n const chain = chainTokens.map((t) => this.describeTokenWithSource(t)).join(' -> ');\n throw motifError('MJX404', chain);\n }\n }\n private describeToken = (t: any) => {\n if (typeof t === 'string') return t;\n if (typeof t === 'symbol') return t.toString();\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\n return String(t);\n };\n private describeTokenWithSource(t: any) {\n const name = this.describeToken(t);\n const d = this.services.getDescriptor(t);\n if (!d) return name;\n const src = d.useClass ? 'useClass' : d.useFactory ? 'useFactory' : (d.useValue !== undefined) ? 'useValue' : 'unknown';\n return `${name}[${src}]`;\n }\n}\n","export const contentBlocks = { live: 0 };\r\n","export const OPTIONS_OWNER: unique symbol = Symbol('motif.optionsOwner');\nexport const TRANSITION_SLOT: unique symbol = Symbol('motif.transition');\n","export type TransitionMode = 'concurrent' | 'out-in' | 'in-out';\n\nexport const transitionSettings: { mode: TransitionMode } = { mode: 'concurrent' };\n\ntype Entry = { node: Node; via: Node | null; done: Promise<void> };\n\nexport type TrackedRun = { done: () => void; release: () => void; finished?: Promise<void> };\n\nconst noop = () => { };\n\nfunction createTracker() {\n const running = new WeakMap<Node, Set<Entry>>();\n\n function track(node: Node | null | undefined, resolve: () => void, via?: Node | null): TrackedRun {\n const host = node?.parentNode ?? via?.parentNode;\n if (!host) return { done: resolve, release: noop };\n let set = running.get(host);\n if (!set) running.set(host, (set = new Set()));\n let finish: () => void = noop;\n const entry: Entry = { node: node!, via: via ?? null, done: new Promise<void>(r => { finish = r; }) };\n set.add(entry);\n let settled = false;\n const release = () => {\n if (settled) return;\n settled = true;\n set!.delete(entry);\n finish();\n };\n return {\n done: () => {\n const first = !settled;\n release();\n if (first && resolve) resolve();\n },\n release,\n finished: entry.done,\n };\n }\n\n function pending(host: Node | null | undefined, except?: Node | null): Promise<void> | null {\n if (!host) return null;\n const set = running.get(host);\n if (!set || set.size === 0) return null;\n let waits: Promise<void>[] | null = null;\n for (const entry of set) {\n if (entry.node === except) continue;\n if (entry.node.parentNode !== host && entry.via?.parentNode !== host) {\n set.delete(entry);\n continue;\n }\n (waits ??= []).push(entry.done);\n }\n return waits ? Promise.all(waits).then(noop) : null;\n }\n\n return { track, pending };\n}\n\nconst leaves = createTracker();\nconst enters = createTracker();\n\nexport const trackLeave = leaves.track;\nexport const pendingLeaves = leaves.pending;\nexport const trackEnter = enters.track;\nexport const pendingEnters = enters.pending;\n\nexport function deferUntilEntered(node: Node, run: TrackedRun, play: () => unknown): Animation {\n const host = node.parentNode;\n const handle: any = {\n finished: run.finished ?? Promise.resolve(),\n playState: 'pending',\n addEventListener: noop,\n removeEventListener: noop,\n cancel: noop,\n };\n queueMicrotask(() => {\n const wait = pendingEnters(host, node);\n if (wait) wait.then(() => { play(); });\n else play();\n });\n return handle as Animation;\n}\n\nexport function isTransitionMode(value: any): value is TransitionMode {\n return value === 'concurrent' || value === 'out-in' || value === 'in-out';\n}\n","import { ControlCollection, dom, Disposable, disposableCore, IClass, IDisposable, Application, isExactMatch, startsWithPath, reactive, safeCallSilent, safeCallSilentAsync, safeCall, safeCallAsync } from \"..\";\nimport { ServiceProvider } from \"..\";\nimport { BindingCollection, IBaseBinding } from \"../bindings\";\nimport { effect } from \"../store/reactivity-core\";\nimport { ComponentEmiter } from \"./ComponentEmiter\";\nimport { controlAttribute } from \"./controlAttribute\";\nimport { controlClass } from \"./controlClass\";\nimport { ComponentBaseOptions, ElementType, EventArgs, HtmlElementEvents, OptionalParams, RouterClassingSettings, shimAnimation } from \"./types\";\nimport { UnwrapValueRefs } from \"../store/common\";\nimport { getTransitionInfo, runCssTransition, TransitionProps } from \"../common/transition\";\nimport { callReported, motifError, reportError, reportWarning } from \"../common/diagnostics\";\nimport { ComponentMotif } from \"./ComponentMotif\";\nimport { pinServiceOwner, recordServiceOwner, retireServiceOwner, unpinServiceOwner } from \"../dependencyInjection/ServiceProvider\";\nimport { contentBlocks as liveContentBlocks } from \"./contentBlockRegistry\";\nimport { OPTIONS_OWNER, TRANSITION_SLOT } from \"./optionsSlots\";\nimport { deferUntilEntered, isTransitionMode, pendingLeaves, trackEnter, trackLeave, transitionSettings, TransitionMode } from \"../common/transitionRegistry\";\nimport { lazyBindMethods } from \"../common/lazyBind\";\nimport type { MotifDomEventProps } from \"../jsx-runtime\";\nimport { isDevLike } from \"../devtools/devbus\";\n\n/** DI token'ını okunur biçime çevirir (dev uyarıları için). */\nfunction describeServiceToken(t: any): string {\n if (typeof t === 'string') return t;\n if (typeof t === 'symbol') return t.toString();\n if (typeof t === 'function') return t.name || '[AnonymousClass]';\n return String(t);\n}\n\ntype TransitionApi = ComponentBaseOptions<any>['transition'];\n\nfunction peekTransition(c: any): TransitionApi | undefined {\n return c?.motif?.options?.[TRANSITION_SLOT];\n}\n\n/**WAAPI keyframe (transitionIn) YA DA CSS class transition (name/classes) tanımlı olarak enter animasyonu varmı */\nfunction clearNavDirection(c: any): void {\n const t = peekTransition(c);\n if (!t?._markedDirection) return;\n t._markedDirection = false;\n try { (c.element as any)?.removeAttribute?.('data-nav-direction'); } catch { }\n}\n\nfunction enterModeOf(container: any): TransitionMode {\n let c = container;\n while (c) {\n const mode = peekTransition(c)?.mode;\n if (mode) return mode;\n const node = c.element as Node | null;\n if (!node || node.nodeType !== Node.COMMENT_NODE) break;\n c = c.parent ?? c._base?._leaveContainer;\n }\n return transitionSettings.mode;\n}\n\nfunction leaveModeOf(c: any): TransitionMode {\n return enterModeOf(c.parent ?? c._base?._leaveContainer);\n}\n\nfunction wantsEnterTransition(c: any): boolean {\n const o = c?.motif?.options;\n const t = o?.[TRANSITION_SLOT];\n return !!(o?.transitionIn || (t && (t.classes || (t.name && t.name.length > 0))));\n}\n\nfunction createTransitionApi(owner: ComponentBase): TransitionApi {\n const cur = (): TransitionApi => (owner.motif.options as any)?.[TRANSITION_SLOT] ?? t;\n const t: TransitionApi = {\n transitionInfo: () => {\n const s = cur();\n return {\n in: getTransitionInfo(owner.element as Element, `${s.name}-enter ${s.name}-enter-start`),\n out: getTransitionInfo(owner.element as Element, `${s.name}-leave ${s.name}-leave-start`),\n }\n },\n name: '',\n mode: undefined as TransitionMode | undefined,\n classes: undefined as TransitionProps | undefined,\n activeCssCancel: null as (() => void) | null,\n activeCssPhase: null as ('enter' | 'leave' | null),\n cssProps: (): TransitionProps | null => {\n const s = cur();\n if (s.classes) {\n return { name: s.classes.name || s.name || '', ...s.classes };\n }\n if (s.name && s.name.length > 0) {\n return { name: s.name };\n }\n return null;\n },\n skipNextLeave: false,\n _suppressEnter: false,\n _markedDirection: false,\n in: (op) => {\n owner.motif.options.transitionIn = op;\n },\n out: (op) => {\n owner.motif.options.transitionOut = op;\n },\n enterTransition: (resolve: () => void): Animation => {\n const s = cur();\n const base = (owner as any)._base;\n const appear = !base._enterPlayed;\n base._enterPlayed = true;\n base._enterSeq = (base._enterSeq ?? 0) + 1;\n if (s._suppressEnter) {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const attempt = {};\n base._enterRun = attempt;\n const enter = trackEnter(owner.element as unknown as Node, () => {\n if ((owner as any)._base?._enterRun === attempt) {\n (owner as any)._base._enterRun = null;\n clearNavDirection(owner);\n }\n resolve && resolve();\n }, owner.motif.options.placeholder as Node | undefined);\n const transitionIn = owner.motif.options.transitionIn;\n const animation = transitionIn\n ? s.run(transitionIn.keyframes, transitionIn.options, enter.done)\n : s._runCss('enter', enter.done, appear);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', enter.release);\n }\n return animation;\n },\n leaveTransition: (resolve: () => void): Animation => {\n const s = cur();\n const node = owner.element as unknown as Node;\n const leave = trackLeave(node, resolve);\n const play = (): Animation => {\n const transitionOut = owner.motif.options?.transitionOut;\n const animation = transitionOut\n ? s.run(transitionOut.keyframes, transitionOut.options, leave.done)\n : s._runCss('leave', leave.done);\n if (animation && animation !== (shimAnimation as unknown as Animation) && typeof (animation as any).addEventListener === 'function') {\n (animation as any).addEventListener('cancel', leave.release);\n }\n return animation;\n };\n if (leave.finished && leaveModeOf(owner) === 'in-out') {\n return deferUntilEntered(node, leave, play);\n }\n return play();\n },\n _runCss: (phase: 'enter' | 'leave', resolve: () => void, appear: boolean = false): Animation => {\n const s = cur();\n if (phase === 'enter' && s.activeCssPhase === 'leave') {\n resolve && resolve();\n return shimAnimation as Animation;\n }\n const cssProps = s.cssProps();\n const el = owner.element as unknown as Element | null;\n if (cssProps && el && (el as any).nodeType === 1 && (el as any).classList) {\n try { s.activeCssCancel?.(); } catch { }\n const cancel = runCssTransition(el, cssProps, phase, () => {\n s.activeCssCancel = null;\n s.activeCssPhase = null;\n resolve && resolve();\n }, appear);\n s.activeCssCancel = cancel;\n s.activeCssPhase = phase;\n return shimAnimation as Animation;\n }\n resolve && resolve();\n return shimAnimation as Animation;\n },\n activeAnimations: [] as Animation[],\n run: (keyframes, options, resolve) => {\n const s = cur();\n owner.motif.stopAnimations();\n\n const element = owner.element as unknown as HTMLElement;\n\n if (element.animate) {\n var x = element.animate(keyframes, options);\n s.activeAnimations.push(x);\n\n let cleanedUp = false;\n const safeCleanup = () => {\n if (cleanedUp) return;\n cleanedUp = true;\n try {\n if (s.activeAnimations) {\n s.activeAnimations = s.activeAnimations.filter(a => a !== x);\n }\n } catch { }\n };\n\n x.addEventListener('finish', () => {\n resolve && resolve();\n safeCleanup();\n });\n\n x.oncancel = () => {\n safeCleanup();\n };\n return x;\n }\n else {\n resolve && resolve();\n const g: any = (globalThis as any);\n if (typeof g.Animation === 'function') {\n try { return new g.Animation(); } catch { /* ignore */ }\n }\n\n return shimAnimation as Animation;\n }\n }\n };\n return t;\n}\n\nclass ComponentOptionsImpl {\n [OPTIONS_OWNER]: ComponentBase;\n [TRANSITION_SLOT]?: TransitionApi;\n\n constructor(owner: ComponentBase) {\n this[OPTIONS_OWNER] = owner;\n }\n\n get transition(): TransitionApi {\n return this[TRANSITION_SLOT] ??= createTransitionApi(this[OPTIONS_OWNER]);\n }\n\n set transition(value: TransitionApi) {\n this[TRANSITION_SLOT] = value;\n }\n\n set enableRouterClassing(value: RouterClassingSettings) {\n try {\n const ins = this[OPTIONS_OWNER];\n const callback = ins.context.onRouterChanged(() => {\n ComponentHelper.routerClassing.call(ins, value);\n });\n ins.motif.register(disposableCore.toDisposable(() => {\n callback();\n }));\n ComponentHelper.routerClassing.call(ins, value);\n } catch (error) {\n reportError('MJX105', error);\n }\n }\n\n getInstance(): ComponentBase {\n return this[OPTIONS_OWNER];\n }\n\n get display(): boolean {\n return this[OPTIONS_OWNER].isVisible;\n }\n\n set display(value: boolean) {\n if (value) {\n this[OPTIONS_OWNER].motif.show();\n } else {\n this[OPTIONS_OWNER].motif.hide();\n }\n }\n\n hasEvent(name: string): boolean {\n return !!(this[OPTIONS_OWNER] as any)._eventHandlers?.has(name);\n }\n}\nlazyBindMethods(ComponentOptionsImpl.prototype, ['getInstance', 'hasEvent']);\n\n\n\n\nexport type IBaseProp<T extends any> = OptionalParams<T> & MotifDomEventProps & {\n childs?: any[];\n options?: any;\n onElementCreating?(): any;\n initializeComponent?(sender: ComponentBase): void;\n onBuilding?(sender: ComponentBase, e: EventArgs): void;\n onBuilt?(sender: ComponentBase, e: EventArgs): void;\n onMounted?(sender: ComponentBase, e: EventArgs): void;\n onInitializing?(sender: ComponentBase, e: EventArgs): void;\n onInitialized?(sender: ComponentBase, e: EventArgs): void;\n onDisposing?(sender: ComponentBase, e: EventArgs): void;\n onDisposed?(sender: ComponentBase, e: EventArgs): void;\n onConfig?(sender: ComponentBase, e: EventArgs): void;\n onConfigured?(sender: ComponentBase, e: EventArgs): void;\n onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n onActivated?(sender: ComponentBase, e: EventArgs): void;\n onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n runover?: {\n initializeComponent?: (sender: ComponentBase) => void;\n }\n [key: string]: any;\n};\n\ntype LifecycleHandler = (sender: ComponentBase, e: EventArgs) => void;\ninterface LifecycleStorage {\n _initializeComponentHandlers?: LifecycleHandler[];\n _onInitializeComponentHandlers?: LifecycleHandler[];\n _onBuildingHandlers?: LifecycleHandler[];\n _onBuiltHandlers?: LifecycleHandler[];\n _onMountedHandlers?: LifecycleHandler[];\n _onInitializingHandlers?: LifecycleHandler[];\n _onInitializedHandlers?: LifecycleHandler[];\n _onConfigHandlers?: LifecycleHandler[];\n _onConfiguredHandlers?: LifecycleHandler[];\n _onVisibilityChangedHandlers?: LifecycleHandler[];\n _onActivatedHandlers?: LifecycleHandler[];\n _onDeactivatedHandlers?: LifecycleHandler[];\n _onDisposingHandlers?: LifecycleHandler[];\n _onDisposedHandlers?: LifecycleHandler[];\n}\ninterface BaseCtx extends LifecycleStorage {\n owner: ComponentBase;\n prebinding_Activated: boolean;\n _offAll: () => void;\n _deactivateBindings: () => void;\n _activateBindings: () => void;\n _activatePreBindings: () => void;\n _reactivateBindings: () => void;\n _detachDomWithAnimation: () => void;\n _detachDomWithAnimationAsync: () => Promise<void>;\n _disposeShallow: () => void;\n _deepCleanup: () => void;\n emiters: ComponentEmiter;\n itemRef?: any;\n [key: string]: any;\n}\n\nfunction fireLifecycle(component: any, name: string, ev: EventArgs): void {\n const base = component._base;\n if (base) base.emiters.fire(name, ev);\n}\n\nfunction hasLifecycleHook(component: any, hook: string, listName: keyof LifecycleStorage, lowerName: string, legacyProp?: string): boolean {\n if (component[hook]) return true;\n const list = component._base[listName];\n if (Array.isArray(list) && list.length > 0) return true;\n if (legacyProp && component[legacyProp]) return true;\n return component._base.emiters.hasListeners(lowerName);\n}\n\nconst RESERVED_METHODS = ['build', 'setState', 'reState', 'setText', 'style', 'dispose', 'disposeAsync', 'using', 'doWork', 'getService', '$', 'useModel', 'context', 'siblings', 'serviceProvider', 'isWait'];\nconst checkedComponentClasses = new WeakSet<Function>();\n\nfunction callsSuper(fn: unknown, name: string): boolean {\n if (typeof fn !== 'function') return false;\n const escaped = name.replace(/\\$/g, '\\\\$');\n return new RegExp(`\\\\bsuper\\\\s*(\\\\.\\\\s*${escaped}(?![\\\\w$])|\\\\[)`).test(Function.prototype.toString.call(fn));\n}\n\nfunction reservedMemberProblems(c: ComponentBase): Array<[string, 'method' | 'field' | 'replaced']> {\n const problems: Array<[string, 'method' | 'field' | 'replaced']> = [];\n const own = (o: object, k: string) => Object.prototype.hasOwnProperty.call(o, k);\n for (const name of RESERVED_METHODS) {\n if (own(c, name)) { problems.push([name, 'field']); continue; }\n for (let p = Object.getPrototypeOf(c); p && p !== ComponentBase.prototype; p = Object.getPrototypeOf(p)) {\n const d = Object.getOwnPropertyDescriptor(p, name);\n if (!d) continue;\n const fns = 'value' in d ? [d.value] : [d.get, d.set].filter(Boolean);\n if (!fns.some(fn => callsSuper(fn, name))) problems.push([name, 'method']);\n break;\n }\n }\n const anyC = c as any;\n if (!(anyC.motif instanceof ComponentMotif)) problems.push(['motif', 'replaced']);\n if (!(anyC.controls instanceof ControlCollection)) problems.push(['controls', 'replaced']);\n if (!(anyC.class instanceof controlClass)) problems.push(['class', 'replaced']);\n if (!(anyC.attr instanceof controlAttribute)) problems.push(['attr', 'replaced']);\n if (!(anyC.bindings instanceof BindingCollection)) problems.push(['bindings', 'replaced']);\n if (anyC.element != null && typeof Node !== 'undefined' && !(anyC.element instanceof Node)) problems.push(['element', 'replaced']);\n if (anyC.parent != null && !(anyC.parent instanceof ComponentBase)) problems.push(['parent', 'replaced']);\n return problems;\n}\n\nexport function checkReservedMembers(c: ComponentBase): void {\n if (!isDevLike()) return;\n const ctor = (c as any)?.constructor;\n if (typeof ctor !== 'function' || checkedComponentClasses.has(ctor)) return;\n checkedComponentClasses.add(ctor);\n const name = ctor.name || 'An anonymous component class';\n for (const [member, how] of reservedMemberProblems(c)) {\n reportWarning('MJX128', [name, member, how]);\n }\n}\n\nconst ComponentHelper = {\n callInitializeComponent(component: ComponentBase | any) {\n const sender = component;\n const ev = { cancel: false } as EventArgs;\n if (!component || component.isDisposed) { return; }\n // 1) class method initializeComponent\n if (typeof component.initializeComponent === 'function') {\n callReported(() => component.initializeComponent(sender, ev), 'MJX122', 'initializeComponent');\n }\n // 2) aggregated extra initializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._initializeComponentHandlers) && component._base._initializeComponentHandlers.length) {\n for (const fn of component._base._initializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'initializeComponent');\n }\n }\n // 3) class method oninitializeComponent \n if (typeof component.oninitializeComponent === 'function') {\n callReported(() => component.oninitializeComponent(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n // 4) aggregated extra oninitializeComponent handlers (örn, from props)\n if (Array.isArray(component._base._onInitializeComponentHandlers) && component._base._onInitializeComponentHandlers.length) {\n for (const fn of component._base._onInitializeComponentHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'oninitializeComponent');\n }\n }\n },\n callDisposing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onDisposing', '_onDisposingHandlers', 'ondisposing', 'ondisposing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposing) {\n callReported(() => component.onDisposing(sender, ev), 'MJX122', 'onDisposing');\n }\n if (Array.isArray(component._base._onDisposingHandlers)) {\n for (const fn of component._base._onDisposingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposing');\n }\n }\n if (component.ondisposing) {\n callReported(() => component.ondisposing(sender, ev), 'MJX122', 'ondisposing');\n }\n fireLifecycle(component,'ondisposing', ev);\n },\n callActivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onActivated) { callReported(() => component.onActivated(sender, ev), 'MJX122', 'onActivated'); }\n if (Array.isArray(component._base._onActivatedHandlers)) {\n for (const fn of component._base._onActivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onActivated');\n }\n }\n fireLifecycle(component,'onactivated', ev);\n },\n callDeactivated(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDeactivated) { callReported(() => component.onDeactivated(sender, ev), 'MJX122', 'onDeactivated'); }\n if (Array.isArray(component._base._onDeactivatedHandlers)) {\n for (const fn of component._base._onDeactivatedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDeactivated');\n }\n }\n fireLifecycle(component,'ondeactivated', ev);\n },\n deactivateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component.isBuilt || !component._base || component._base._inactive) { return; }\n component._base._inactive = true;\n ComponentHelper.callDeactivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.deactivateTree(c, true);\n }\n }\n },\n activateTree(component: ComponentBase | any, deep: boolean = true) {\n if (!component || component.isDisposed || !component._base || !component._base._inactive) { return; }\n component._base._inactive = false;\n ComponentHelper.callActivated(component);\n if (!deep || component.isDisposed) { return; }\n for (const c of component.controls.items.slice()) {\n if (c && !c.isDisposed && c.isVisible && !c.isWait) {\n ComponentHelper.activateTree(c, true);\n }\n }\n },\n callDisposed(component: ComponentBase | any) {\n if (!component || !component._base || component._base._disposedFired) { return; }\n component._base._disposedFired = true;\n if (hasLifecycleHook(component, 'onDisposed', '_onDisposedHandlers', 'ondisposed', 'ondisposed')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onDisposed) { callReported(() => component.onDisposed(sender, ev), 'MJX122', 'onDisposed'); }\n if (Array.isArray(component._base._onDisposedHandlers)) {\n for (const fn of component._base._onDisposedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onDisposed');\n }\n }\n if (component.ondisposed) { callReported(() => component.ondisposed(sender, ev), 'MJX122', 'ondisposed'); }\n fireLifecycle(component,'ondisposed', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:disposed', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n callBuilt(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (hasLifecycleHook(component, 'onBuilt', '_onBuiltHandlers', 'onbuilt', 'onbuilt')) {\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilt) { callReported(() => component.onBuilt(sender, ev), 'MJX122', 'onBuilt'); }\n if (Array.isArray(component._base._onBuiltHandlers)) {\n for (const fn of component._base._onBuiltHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilt');\n }\n }\n if (component.onbuilt) { callReported(() => component.onbuilt(sender, ev), 'MJX122', 'onbuilt'); }\n fireLifecycle(component,'onbuilt', ev);\n }\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('component:mounted', { id: (component as any).id, type: component.constructor?.name }); } catch { }\n },\n scheduleMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedScheduled) { return; }\n const hasHook = typeof component.onMounted === 'function'\n || (Array.isArray(component._base._onMountedHandlers) && component._base._onMountedHandlers.length > 0)\n || typeof component.onmounted === 'function';\n if (!hasHook) { return; }\n component._base._mountedScheduled = true;\n const el = component.element as Element | null;\n if (!el || typeof (el as any).nodeType !== 'number') { return; }\n const stop = onElementAttached(el, () => {\n if (component.isDisposed) { return; }\n ComponentHelper.callMounted(component);\n });\n if (stop) {\n component._register(disposableCore.toDisposable(stop));\n }\n },\n callMounted(component: ComponentBase | any) {\n if (!component || component.isDisposed || component._base._mountedFired) { return; }\n component._base._mountedFired = true;\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onMounted) { callReported(() => component.onMounted(sender, ev), 'MJX122', 'onMounted'); }\n if (Array.isArray(component._base._onMountedHandlers)) {\n for (const fn of component._base._onMountedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onMounted');\n }\n }\n if (component.onmounted) { callReported(() => component.onmounted(sender, ev), 'MJX122', 'onmounted'); }\n fireLifecycle(component,'onmounted', ev);\n },\n callBuilding(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onBuilding', '_onBuildingHandlers', 'onbuilding')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onBuilding) { callReported(() => component.onBuilding(sender, ev), 'MJX122', 'onBuilding'); }\n if (Array.isArray(component._base._onBuildingHandlers)) {\n for (const fn of component._base._onBuildingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onBuilding');\n }\n }\n fireLifecycle(component,'onbuilding', ev);\n },\n callConfig(component: ComponentBase | any) {\n if (!component || component.isDisposed || component.isConfigured) { return; }\n component.isConfigured = true;\n\n if (component.motif.options._preconfig) {\n safeCallSilent(() => component.motif.options._preconfig(component), 'Component._preconfig');\n }\n\n if (!hasLifecycleHook(component, 'onConfig', '_onConfigHandlers', 'onconfig')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfig) { callReported(() => component.onConfig(sender, ev), 'MJX122', 'onConfig'); }\n if (Array.isArray(component._base._onConfigHandlers)) {\n for (const fn of component._base._onConfigHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfig');\n }\n }\n fireLifecycle(component,'onconfig', ev);\n },\n callConfigured(component: ComponentBase | any) {\n if (component.motif.options && component.motif.options._postconfigdone) {\n return;\n }\n if (component?._base?._configDeferred && !component.isConfigured) {\n ComponentHelper.callConfig(component);\n }\n component.motif.options._postconfigdone = true;\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onConfigured', '_onConfiguredHandlers', 'onconfigured')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onConfigured) { callReported(() => component.onConfigured(sender, ev), 'MJX122', 'onConfigured'); }\n if (Array.isArray(component._base._onConfiguredHandlers)) {\n for (const fn of component._base._onConfiguredHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onConfigured');\n }\n }\n fireLifecycle(component,'onconfigured', ev);\n },\n callOnInitialized(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n component.isInitialized = true;\n if (!hasLifecycleHook(component, 'onInitialized', '_onInitializedHandlers', 'oninitialized')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitialized) { callReported(() => component.onInitialized(sender, ev), 'MJX122', 'onInitialized'); }\n if (Array.isArray(component._base._onInitializedHandlers)) {\n for (const fn of component._base._onInitializedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitialized');\n }\n }\n fireLifecycle(component,'oninitialized', ev);\n },\n callOnInitializing(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onInitializing', '_onInitializingHandlers', 'oninitializing')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onInitializing) { callReported(() => component.onInitializing(sender, ev), 'MJX122', 'onInitializing'); }\n if (Array.isArray(component._base._onInitializingHandlers)) {\n for (const fn of component._base._onInitializingHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onInitializing');\n }\n }\n fireLifecycle(component,'oninitializing', ev);\n },\n callVisibilityChanged(component: ComponentBase | any) {\n if (!component || component.isDisposed) { return; }\n if (!hasLifecycleHook(component, 'onVisibilityChanged', '_onVisibilityChangedHandlers', 'onvisibilitychanged')) { return; }\n const sender = component, ev = { cancel: false } as EventArgs;\n if (component.onVisibilityChanged) { callReported(() => component.onVisibilityChanged(sender, ev), 'MJX122', 'onVisibilityChanged'); }\n if (Array.isArray(component._base._onVisibilityChangedHandlers)) {\n for (const fn of component._base._onVisibilityChangedHandlers) {\n callReported(() => fn(sender, ev), 'MJX122', 'onVisibilityChanged');\n }\n }\n fireLifecycle(component,'onvisibilitychanged', ev);\n },\n findFragmentContent(c: ComponentBase) {\n const controlElement = c.element.nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n if (c.element.nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n c.motif.options.cache?.appendChild(c.element);\n c.controls.forEach(child => {\n c.motif.options.cache?.appendChild(child.element as unknown as Node);\n });\n c.motif.options.cache?.appendChild(c.motif.options.closeFragment!);\n }\n },\n backgroundCallback(callback: () => any) {\n callback();\n // if (!requestIdleCallback) {\n // if (!requestAnimationFrame) {\n // } else {\n\n // } else {\n },\n internalBuild(this: ComponentBase, c: ComponentBase) {\n if (this.isDisposed || c?.isDisposed) { return; }\n ComponentHelper.callConfigured(c);\n if (c.isDisposed) return;\n c._base._activatePreBindings();\n if (c.isWait) return;\n const cisBuilt = c.isBuilt;\n if (!this.isBuilt) {\n return;\n }\n if (c.isWait) {\n return;\n }\n const enterSeq = c._base._enterSeq;\n if (!c.isBuilt) {\n c.build();\n } else if (c.parent != this) {\n c.parent?.controls.detach(c);\n c.parent = this;\n const pendingLeave = (c as any).__pendingLeave;\n if (pendingLeave) {\n pendingLeave.promise.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n\n if (c.isDisposed || this.isDisposed) return;\n c.parent = this;\n\n const ownItems = this.controls.items;\n const currentIndex = ownItems.length > 0 && ownItems[ownItems.length - 1] === c ? ownItems.length - 1 : ownItems.indexOf(c);\n\n const appendableElement = findAppendableComponent(this);\n var controlElement = (c.element as Node).nodeType == Node.COMMENT_NODE\n ? c.motif.options.cache\n : c.element as unknown as Node;\n\n\n if (cisBuilt && (c.element as Node).nodeType == Node.COMMENT_NODE && controlElement?.childNodes.length == 0 && c.controls.length > 0) {\n\n controlElement = ComponentHelper.getContent.call(c) as Node;\n }\n\n let referenceNode: Node | null = null;\n\n const insertHost = appendableElement?.element as Node | undefined;\n const domReferenceOf = (n: ComponentBase | undefined): Node | null => {\n if (!n || !n.isBuilt) return null;\n const candidate: Node | null = n.isVisible\n ? (n.element as unknown as Node)\n : (((n.motif.options as any)?.placeholder as Node | undefined) ?? null);\n if (!candidate) return null;\n return (insertHost && candidate.parentNode === insertHost) ? candidate : null;\n };\n\n const siblings = this.controls.items;\n for (let i = currentIndex + 1; i < siblings.length; i++) {\n const candidate = domReferenceOf(siblings[i]);\n if (candidate) {\n referenceNode = candidate;\n break;\n }\n }\n if (!referenceNode) {\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n const close = this.motif.options.closeFragment as unknown as Node | undefined;\n referenceNode = (close && insertHost && close.parentNode === insertHost) ? close : null;\n } else {\n referenceNode = null;\n }\n }\n\n if (!c.isVisible) {\n const cfg = (c as any).motif.options?.hideStrategy ?? 'auto';\n const isFromListOrKeyed = !!((c as any).motif.options?.__fromList || typeof ((c as any).motif.options as any)?.indexkey !== 'undefined' || typeof (c as any).motif.options?.__key !== 'undefined');\n const strategy: 'placeholder' | 'detach' = cfg === 'placeholder' ? 'placeholder' : (cfg === 'detach' ? 'detach' : (isFromListOrKeyed ? 'detach' : 'placeholder'));\n if (strategy === 'placeholder') {\n if (!(c as any).motif.options.placeholder) {\n (c as any).motif.options.placeholder = dom.createComment(\"h\");\n }\n controlElement = ((c as any).motif.options.placeholder as unknown as Node);\n } else {\n return;\n }\n }\n\n if (insertHost && enterModeOf(this) === 'out-in') {\n const wait = pendingLeaves(insertHost, controlElement);\n if (wait) {\n c._base._enterSeq = (c._base._enterSeq ?? 0) + 1;\n wait.then(() => {\n if (this.isDisposed || c.isDisposed || c.parent !== this) return;\n ComponentHelper.internalBuild.call(this, c);\n });\n return;\n }\n }\n\n const parentNode = appendableElement?.element as Node | undefined;\n if (controlElement && parentNode && (controlElement === parentNode || controlElement.contains(parentNode))) {\n reportWarning('MJX104', []);\n\n } else {\n if (referenceNode) {\n try {\n appendableElement?.element.insertBefore(controlElement!, referenceNode);\n } catch {\n\n appendableElement?.element.appendChild(controlElement!);\n }\n } else {\n appendableElement?.element.appendChild(controlElement!);\n }\n }\n if (c.isVisible) {\n const enteredInBuild = !cisBuilt && c._base._enterSeq !== enterSeq;\n !enteredInBuild && wantsEnterTransition(c) && c.motif.options.transition.enterTransition(() => { });\n if (cisBuilt) {\n ComponentHelper.activateTree(c);\n }\n }\n },\n getContent(this: ComponentBase): any {\n if (this.isDisposed || !this.element) { return null; }\n if ((this.element as Node).nodeType == Node.COMMENT_NODE) {\n this.motif.options.cache?.appendChild(this.element as Node);\n this.controls.forEach(child => {\n this.motif.options.cache?.appendChild(ComponentHelper.getContent.call(child) as Node);\n });\n this.motif.options.cache?.appendChild(this.motif.options.closeFragment!);\n return this.motif.options.cache;\n } else {\n return this.element;\n }\n },\n routerClassing(this: ComponentBase, value: RouterClassingSettings) {\n try {\n const type = value.to;\n const path = value.path;\n if (this.isDisposed) return;\n\n const router = this.context?.router;\n if (!router) return;\n\n const requestPath = router.uri.startsWith('/') ? router.uri : '/' + router.uri;\n const targetPath = path ?? '';\n\n const exact = isExactMatch(requestPath, targetPath);\n\n /* ---------- Active (segment‑eşleşme, tam eşleşme dahil) ---------- */\n const active = exact || startsWithPath(requestPath, targetPath);\n\n if (value.activeClass && (type === 'all' || type === 'active')) {\n const clsList = value.activeClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, active));\n }\n\n if (active && (type === 'all' || type === 'active')) {\n value.onActive?.();\n } else if ((type === 'all' || type === 'active')) {\n value.offActive?.();\n }\n\n /* ---------- Exact (tam eşleşme) ---------- */\n if (value.exactClass && (type === 'all' || type === 'exact')) {\n const clsList = value.exactClass.split(' ').filter((l: string) => l.trim().length);\n clsList.forEach((cls: string) => this.element.classList.toggle(cls, exact));\n }\n\n if (exact && (type === 'all' || type === 'exact')) {\n value.onExact?.();\n } else if ((type === 'all' || type === 'exact')) {\n value.offExact?.();\n }\n } catch (error) {\n\n }\n\n }\n}\n\nfunction removeComponentDom(c: any, node: Node, alsoPlaceholder: boolean): void {\n const opts = c.motif?.options;\n const parent = node.parentNode;\n if (node.nodeType === Node.COMMENT_NODE) {\n if (!parent) return;\n const close = (opts?.closeFragment as unknown as Node | undefined) || null;\n if (close) {\n let current: Node | null = node;\n while (current) {\n const after: Node | null = current.nextSibling;\n try { parent.removeChild(current); } catch { }\n if (current === close) break;\n current = after;\n }\n } else {\n try { parent.removeChild(node); } catch { }\n }\n if (!alsoPlaceholder) return;\n } else if (parent) {\n try { parent.removeChild(node); } catch { }\n if (!alsoPlaceholder) return;\n }\n const placeholder = opts?.placeholder as Node | undefined;\n if (placeholder && placeholder.parentNode) {\n try { placeholder.parentNode.removeChild(placeholder); } catch { }\n }\n}\n\nfunction detachDomWithAnimation(c: any): void {\n const node = c.element as unknown as Node | null;\n if (!node || c._keepElementOnDispose === true) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n });\n } catch {\n removeComponentDom(c, node, false);\n }\n}\n\nasync function detachDomWithAnimationAsync(c: any): Promise<void> {\n const node = c.element as unknown as Node | null;\n if (!node || c._keepElementOnDispose === true) return;\n const opts = c.motif.options;\n const t = opts?.[TRANSITION_SLOT] as TransitionApi | undefined;\n try {\n const skip = t?.skipNextLeave === true || c._forceInstantDetach === true;\n if (skip) {\n if (t) t.skipNextLeave = false;\n c._forceInstantDetach = false;\n removeComponentDom(c, node, true);\n return;\n }\n } catch { }\n if (!t && !opts?.transitionOut) {\n removeComponentDom(c, node, false);\n return;\n }\n return new Promise<void>((resolve) => {\n try {\n opts.transition.leaveTransition(() => {\n removeComponentDom(c, node, false);\n resolve();\n });\n } catch {\n removeComponentDom(c, node, false);\n resolve();\n }\n });\n}\n\nfunction disposeShallow(c: any): void {\n if (c.isDisposed) return;\n ComponentHelper.callDisposing.call(c, c);\n try {\n c._base._offAll();\n } catch {\n\n }\n c.motif.stopAnimations();\n\n c._base._deactivateBindings();\n if (c.controls?.items?.length) {\n for (const child of c.controls.items) {\n try {\n (child as any)._base._disposeShallow();\n } catch {\n\n }\n }\n }\n ComponentHelper.callDisposed.call(c, c);\n safeCall(() => { c._base.emiters.clear(); }, 'disposeShallow.emiters');\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n}\n\nfunction deepCleanup(c: any): void {\n try { c.parent = null; } catch { }\n\n try {\n c._eventHandlers?.clear();\n } catch {\n\n }\n c._eventHandlers = undefined;\n\n try { c.class?._countsStore?.clear(); } catch { }\n try { c.class?._watchersStore?.clear(); } catch { }\n try { c.attr?._attrMapStore?.clear(); } catch { }\n try { c.attr?._watchersStore?.clear(); } catch { }\n try {\n if (c.motif.options) {\n c.motif.options.cache = undefined;\n c.motif.options.closeFragment = undefined;\n c.motif.options.placeholder = undefined;\n }\n } catch {\n\n }\n try { c.element = null; } catch { }\n try { c.props = undefined; } catch { }\n try { c.childs = undefined; } catch { }\n try { c.class = undefined; } catch { }\n try { c.attr = undefined; } catch { }\n try { c.parent = null; } catch { }\n\n try { c.motif.options = undefined; } catch { }\n const keys = Object.keys(c);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'motif') continue;\n try { c[key] = undefined; } catch { }\n }\n c.isDisposed = true;\n}\n\nconst DISPOSE_STARTED = Promise.resolve();\n\nfunction subtreeDisposesSync(c: any, root: boolean): boolean {\n if (!root && c._disposing && !c.isDisposed) return false;\n if (c.disposeAsync !== ComponentBase.prototype.disposeAsync) return false;\n const opts = c.motif?.options;\n if (opts) {\n if (opts.transitionOut) return false;\n const t = opts[TRANSITION_SLOT] as TransitionApi | undefined;\n if (t) {\n if (t.activeAnimations && t.activeAnimations.length > 0) return false;\n if (t.activeCssCancel) return false;\n if (t.classes || (t.name && t.name.length > 0)) return false;\n }\n }\n const items = c.controls?.items;\n if (items) {\n for (let i = 0; i < items.length; i++) {\n const child = items[i];\n if (child && !child.isDisposed && !subtreeDisposesSync(child, false)) return false;\n }\n }\n return true;\n}\n\nconst teardownApplications = new WeakMap<object, Application>();\n\nfunction owningApplication(c: any): Application | null {\n for (let p = c; p; p = p.parent) {\n if (p.application) return p.application;\n const recorded = teardownApplications.get(p);\n if (recorded) return recorded;\n }\n return Application.main ?? null;\n}\n\nfunction disposePrefix(c: any, options: IDisposeOptions, asChild: boolean): void {\n const ctx = asChild ? 'disposeAsync' : 'dispose';\n if (Application._disposingCount > 0) {\n const app = owningApplication(c);\n if (app && app.state === 'disposing') teardownApplications.set(c, app);\n }\n if (!asChild && options?.skipLeaveTransition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n safeCall(() => { ComponentHelper.callDisposing.call(c, c); }, ctx + '.callDisposing');\n c._base._offAll();\n c._base._deactivateBindings();\n safeCall(() => { c.parent?.controls?.silentDetach?.(c, true); }, ctx + '.silentDetach');\n}\n\nfunction disposeFinish(c: any, options: IDisposeOptions, asChild: boolean): void {\n c.isDisposed = true;\n Disposable.prototype.dispose.call(c);\n if (asChild) {\n c.controls.items = [];\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'disposeAsync.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'disposeAsync.emiters');\n if (options?.deep) {\n c._base._deepCleanup();\n }\n return;\n }\n c.element = null;\n safeCall(() => { ComponentHelper.callDisposed.call(c, c); }, 'dispose.callDisposed');\n safeCall(() => { c._base.emiters.clear(); }, 'dispose.emiters');\n c._base._offAll();\n c._base._deepCleanup();\n}\n\nasync function disposeRemainderAsync(c: any, options: IDisposeOptions, asChild: boolean, leave: Promise<void> | undefined): Promise<void> {\n if (leave) {\n await leave;\n } else {\n if (asChild) {\n await c.motif.stopAnimations();\n } else if (peekTransition(c)?.skipNextLeave) {\n await c.motif.stopAnimations();\n }\n await c._base._detachDomWithAnimationAsync();\n }\n if (!asChild && c.constructor.name !== 'TransportTo') {\n await disposeContentBlocks(c);\n }\n const childOptions: IDisposeOptions = { deep: options?.deep };\n await safeCallAsync(async () => {\n if (c.isDisposed) { return; }\n const ctrls = Array.from(c.controls.items) as any[];\n if (ctrls.length) {\n await Promise.all(ctrls.map(child => asChild\n ? safeCallAsync(async () => { await child.disposeAsync(childOptions); }, 'disposeAsync.disposeAsyncChildren.handler')\n : (async () => {\n try {\n await child.disposeAsync(childOptions);\n } catch (error) {\n reportError('MJX107', error);\n }\n })()));\n }\n }, asChild ? 'disposeAsync.disposeAsyncChildren' : 'dispose.disposeAsync');\n if (!asChild && c.isDisposed) { return; }\n disposeFinish(c, options, asChild);\n}\n\nfunction disposeRemainderSync(root: any, options: IDisposeOptions, asChild: boolean, rootDetached: boolean): Promise<void>[] | null {\n const childOptions: IDisposeOptions = { deep: options?.deep };\n const nodes: any[] = [root];\n const parents: number[] = [-1];\n let pending: Promise<void>[] | null = null;\n if (!rootDetached) detachDomWithAnimation(root);\n for (let n = 0; n < nodes.length; n++) {\n const node = nodes[n];\n if (node.isDisposed) continue;\n const items = node.controls?.items;\n if (!items || items.length === 0) continue;\n const ctrls = Array.from(items) as any[];\n for (let j = 0; j < ctrls.length; j++) {\n const child = ctrls[j];\n if (child.isDisposed) continue;\n if (child._disposing) {\n (pending ??= []).push(child._disposing);\n continue;\n }\n try {\n retireServiceOwner(child);\n child._disposing = root._disposing;\n disposePrefix(child, childOptions, true);\n detachDomWithAnimation(child);\n nodes.push(child);\n parents.push(n);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n const count = nodes.length;\n if (count > 1) {\n const heights = new Array<number>(count).fill(0);\n for (let i = count - 1; i >= 1; i--) {\n const p = parents[i];\n if (heights[i] + 1 > heights[p]) heights[p] = heights[i] + 1;\n }\n const order: number[] = [];\n for (let i = 1; i < count; i++) order.push(i);\n order.sort((a, b) => heights[a] - heights[b] || a - b);\n for (let k = 0; k < order.length; k++) {\n try {\n disposeFinish(nodes[order[k]], childOptions, true);\n } catch (error) {\n reportError('MJX107', error);\n }\n }\n }\n if (pending) return pending;\n if (!asChild && root.isDisposed) { return null; }\n disposeFinish(root, options, asChild);\n return null;\n}\n\nconst BASE_PROTO = {\n _offAll(this: BaseCtx): void {\n const c: any = this.owner;\n if (!c._eventHandlers) return;\n for (const [full, set] of c._eventHandlers) {\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n for (const rec of set) {\n if (!rec || !rec.wrapped) { continue; }\n\n if ((rec as any).domEvent === false) { continue; }\n const cap = (rec as any).capture === true;\n try {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap);\n } catch { }\n\n try {\n if ((rec as any).capture === undefined) {\n (c.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n } catch { }\n }\n }\n c._eventHandlers.clear();\n c._eventHandlers = undefined;\n },\n _deactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.deactivateAll(); } catch { }\n },\n _activateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.activateAll(); } catch { }\n },\n _reactivateBindings(this: BaseCtx): void {\n const c: any = this.owner;\n try { c.bindings?.reActivateAll(); } catch { }\n },\n _activatePreBindings(this: BaseCtx): void {\n if (this.prebinding_Activated) return;\n const c: any = this.owner;\n const registered = c.bindings?._items as IBaseBinding[] | undefined;\n if (registered && registered.length > 0) {\n c.bindings.items.filter((x: IBaseBinding) => x.propertyName == \"isWait\" || x.propertyName == \"display\").forEach((b: IBaseBinding) => {\n b.activate();\n }\n );\n }\n this.prebinding_Activated = true;\n },\n _detachDomWithAnimation(this: BaseCtx): void {\n detachDomWithAnimation(this.owner);\n },\n _detachDomWithAnimationAsync(this: BaseCtx): Promise<void> {\n return detachDomWithAnimationAsync(this.owner);\n },\n _disposeShallow(this: BaseCtx): void {\n disposeShallow(this.owner);\n },\n _deepCleanup(this: BaseCtx): void {\n deepCleanup(this.owner);\n },\n};\n\nfunction createBaseCtx(owner: ComponentBase): BaseCtx {\n const base: BaseCtx = Object.create(BASE_PROTO);\n base.owner = owner;\n base.prebinding_Activated = false;\n base.emiters = new ComponentEmiter(owner);\n return base;\n}\n\nconst fragmentCloseMarkers = new WeakMap<Comment, Comment>();\n\nvar globalId = 0;\n\nconst LIFECYCLE_X_EVENTS = new Set([\n 'building', 'built', 'initializing', 'initialized', 'disposing', 'disposed',\n 'config', 'configured', 'visibilitychanged', 'activated', 'deactivated'\n]);\n\nexport interface IDisposeOptions {\n deep?: boolean;\n skipLeaveTransition?: boolean;\n}\n\nexport interface SiblingsApi {\n all: () => ComponentBase[] | undefined;\n next: () => ComponentBase | undefined;\n prev: () => ComponentBase | undefined;\n nextAll: () => any;\n prevAll: () => any;\n}\n\nconst RAW_APPLICATION = Symbol('motif.rawApplication');\nconst SCOPED_SUBSCRIBERS = new Set<PropertyKey>(['on', 'onRouterChanged']);\n\n/**\n * Uygulamanın bileşene bağlı görünümü. `on`/`onRouterChanged` aboneliklerini sahibin ömrüne\n * kaydeder; diğer tüm üyeler (alanlar, metotlar, atamalar) uygulamanın kendisine yönlenir.\n */\nfunction createScopedContext(app: Application, owner: ComponentBase): Application {\n const cache = new Map<PropertyKey, { fn: Function; bound: Function }>();\n return new Proxy(app, {\n get(target, prop) {\n if (prop === RAW_APPLICATION) { return target; }\n const value = Reflect.get(target, prop, target);\n if (typeof value !== 'function') { return value; }\n const hit = cache.get(prop);\n if (hit && hit.fn === value) { return hit.bound; }\n const bound = SCOPED_SUBSCRIBERS.has(prop)\n ? (...args: any[]) => owner._trackContextSubscription(value.apply(target, args))\n : value.bind(target);\n cache.set(prop, { fn: value, bound });\n return bound;\n },\n set(target, prop, value) {\n return Reflect.set(target, prop, value, target);\n },\n });\n}\n\nexport abstract class ComponentBase<TElement extends ElementType = any, TProps extends object = any> extends Disposable {\n\n public readonly motif: ComponentMotif<this, TProps> = new ComponentMotif<this, TProps>(this, new ComponentOptionsImpl(this) as unknown as ComponentMotif<this, TProps>['options']);\n\n public element: TElement;\n public props: TProps;\n public isBuilt: boolean = false;\n public isInitialized: boolean = false;\n public isDisposed: boolean = false;\n public isConfigured: boolean = false;\n public isPainting: boolean = false;\n public isPainted: boolean = false;\n public isVisible: boolean = true;\n public controls: ControlCollection = new ControlCollection(this);\n\n private _eventHandlers?: Map<string, Set<{\n original: (sender: ComponentBase, e: EventArgs) => any,\n wrapped?: (e: Event) => void,\n dom?: boolean,\n domEvent?: boolean,\n capture?: boolean,\n type?: string\n }>>;\n private _isWait: boolean = false;\n public class: IClass<TElement> = new controlClass(this as any) as any as IClass<TElement>;\n public attr: controlAttribute<TElement> = new controlAttribute(this as any);\n public bindings = new BindingCollection(this);\n /** style(fn) izleyicisi: tek tek tutulur, yeniden çağrıda önceki durdurulur. */\n private _styleFx?: { stop: () => void; binding: IBaseBinding };\n\n public useModel<TModel>(modelCtor: TModel): UnwrapValueRefs<TModel> {\n return reactive<TModel>(modelCtor);\n }\n\n private _computeHideStrategy(): 'placeholder' | 'detach' {\n const cfg = this.motif.options?.hideStrategy ?? 'auto';\n if (cfg === 'placeholder') return 'placeholder';\n if (cfg === 'detach') return 'detach';\n if (this.motif.options?.__fromList || typeof (this.motif.options as any)?.indexkey !== 'undefined' || typeof this.motif.options?.__key !== 'undefined') {\n return 'detach';\n }\n return 'placeholder';\n }\n\n private _isInDom(): boolean {\n try {\n if (!this.element) return false;\n const node = this.element as unknown as Node;\n if (node.nodeType === Node.COMMENT_NODE) {\n return !!node.parentNode;\n }\n return !!node.parentNode;\n } catch { return false; }\n }\n public set isWait(value: boolean) {\n this._isWait = value;\n if (this.isBuilt) {\n if (value) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n return;\n }\n if (value === false && this.parent && this.parent.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n\n }\n public get isWait(): boolean {\n return this._isWait;\n }\n\n constructor(element: TElement, props: TProps = {} as TProps) {\n super();\n recordServiceOwner(this);\n if (this.onElementCreating) {\n this.element = this.onElementCreating.call(this);\n } else if ((props as any)?.onElementCreating) {\n this.element = (props as any).onElementCreating.call(this);\n } else {\n this.element = element;\n }\n\n if (props) {\n const refs = extractRefs(props, this);\n if (refs.length > 0) {\n for (const fn of takePendingRefs(this, refs)) {\n callReported(() => fn(this), 'MJX122', 'ref');\n }\n }\n }\n\n props && ParseProps(props, this);\n applyComponentOptions((props as any)?.options, this);\n this.props = props;\n\n // (class/style/id/tabindex/role/aria-*/data-*) kök düğüme (root node) düşer, prop'lar this.props'ta kalır.\n if (props) {\n const ctor0 = new.target as any;\n const plain = ctor0 === ComponentBase || Object.getPrototypeOf(ctor0) === ComponentBase;\n if (plain) applyPlainElementProps(props, this);\n else applyFallthroughProps(props, this);\n }\n\n\n ComponentHelper.callOnInitializing(this);\n if (this.isDisposed) return;\n this.controls.onAdd = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n if (this.isWait || this.parent?.isWait) return;\n ComponentHelper.internalBuild.call(this, c);\n\n }\n\n this.controls.onAddBeforeBuild = (c) => {\n if (this._eventHandlers?.has('controladded')) this.motif.trigger('controladded', { control: c });\n }\n\n\n this.controls.onRemove = (c) => {\n if (this._eventHandlers?.has('controlremoved')) this.motif.trigger('controlremoved', { control: c });\n }\n ComponentHelper.callOnInitialized(this);\n\n const ctor = new.target as any;\n const isBaseCtor = ctor === ComponentBase || Object.getPrototypeOf(ctor) === ComponentBase;\n if (isBaseCtor) {\n ComponentHelper.callConfig(this);\n } else {\n this._base._configDeferred = true;\n }\n\n }\n\n\n\n\n\n\n public childs?: any[];\n protected _base: BaseCtx = createBaseCtx(this);\n public parent: ComponentBase | null = null;\n public onElementCreating?(): TElement;\n public initializeComponent?(sender: ComponentBase): void;\n public onBuilding?(sender: ComponentBase, e: EventArgs): void;\n public onBuilt?(sender: ComponentBase, e: EventArgs): void;\n public onMounted?(sender: ComponentBase, e: EventArgs): void;\n public onInitializing?(sender: ComponentBase, e: EventArgs): void;\n public onInitialized?(sender: ComponentBase, e: EventArgs): void;\n public onDisposing?(sender: ComponentBase, e: EventArgs): void;\n public onDisposed?(sender: ComponentBase, e: EventArgs): void;\n public onConfig?(sender: ComponentBase, e: EventArgs): void;\n public onConfigured?(sender: ComponentBase, e: EventArgs): void;\n public onVisibilityChanged?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni outlet'ten ayrılıp önbelleğe alındığında (RoutingEngine) tetiklenir. */\n public onDeactivated?(sender: ComponentBase, e: EventArgs): void;\n /** keepAlive rota bileşeni önbellekten outlet'e yeniden bağlandığında (RoutingEngine) tetiklenir. */\n public onActivated?(sender: ComponentBase, e: EventArgs): void;\n public view?(): ComponentBase;\n private _scopedContext?: Application;\n\n public get context(): Application {\n const parentCtx: any = this.parent?.context;\n const app: Application = parentCtx?.[RAW_APPLICATION] ?? parentCtx ?? teardownApplications.get(this) ?? Application.main;\n if (!app) { return app; }\n if ((this._scopedContext as any)?.[RAW_APPLICATION] !== app) {\n this._scopedContext = createScopedContext(app, this);\n }\n return this._scopedContext!;\n }\n /** @internal context üzerinden açılan aboneliği bileşenin ömrüne bağlar; iptal fonksiyonunu döndürür. */\n public _trackContextSubscription(off: () => void): () => void {\n if (typeof off !== 'function') { return off; }\n if (this.isDisposed) { off(); return off; }\n const d = this._register(disposableCore.toDisposable(off));\n return () => { this._disposables.detach(d); off(); };\n }\n\n public build(building: boolean = true) {\n checkReservedMembers(this);\n ComponentHelper.callConfigured(this);\n this._base._activatePreBindings();\n if (this.isDisposed || !this.element || this.isWait) { return; }\n if (this.isBuilt || this.isWait) {\n return;\n }\n\n ComponentHelper.callBuilding(this);\n if (this.isDisposed) { return; }\n var ph: any = this.element;\n if (building) {\n ph = dom.createDocumentFragment();\n }\n const isFragment = (typeof this.element !== 'string' && (this.element as unknown as Node).nodeType === Node.COMMENT_NODE);\n if (isFragment) {\n this.motif.options.cache = dom.createDocumentFragment();\n (this.element as any).textContent = \"[\";\n this.motif.options.cache!.appendChild(this.element as unknown as Node);\n }\n if (this.isBuilt) {\n return;\n }\n\n\n ComponentHelper.callInitializeComponent(this);\n if (this.isDisposed) { return; }\n\n if (this.view) {\n const templ = this.view();\n this.controls.add(templ);\n if (this.isDisposed) { return; }\n }\n\n const deferredSelectValue = (this.element as any)?.nodeName === 'SELECT'\n ? this.bindings.items.filter(b => b.propertyName === 'value')\n : [];\n if (deferredSelectValue.length) {\n try {\n this.bindings.items.filter(b => !deferredSelectValue.includes(b)).forEach(b => b.activate());\n } catch { }\n } else {\n this._base._activateBindings();\n }\n\n for (const element of this.controls.items.filter(c => !c.isWait)) {\n element.parent = this;\n element.build(false);\n if (element.isWait) {\n continue;\n }\n var target = isFragment ? this.motif.options.cache : this.element;\n if (building) {\n if (element.motif.options.cache) {\n ph.appendChild(element.motif.options.cache);\n } else {\n ph.appendChild(element.element);\n }\n } else {\n if (element.motif.options.cache) {\n (target as any).appendChild(element.motif.options.cache);\n } else {\n (target as any).appendChild(element.element);\n }\n }\n if (element._base?._inactive && element.isVisible) {\n ComponentHelper.activateTree(element);\n }\n\n }\n\n if (this.isDisposed) { return; }\n if (wantsEnterTransition(this)) {\n const node = this.element as unknown as Node | null;\n if (node && (node as any).isConnected) {\n this.motif.options.transition.enterTransition(() => { });\n } else {\n const seq = this._base._enterSeq;\n queueMicrotask(() => {\n if (!this.isDisposed && this.isVisible && this.motif.options?.transition && this._base._enterSeq === seq) {\n this.motif.options.transition.enterTransition(() => { });\n }\n });\n }\n } else {\n clearNavDirection(this);\n }\n if (building) {\n try {\n var target = isFragment ? this.motif.options.cache : this.element;\n if ((target as any).nodeType === Node.TEXT_NODE) {\n (target as Text).appendData(ph.textContent);\n } else {\n if ((target as any).appendChild) {\n (target as any).appendChild(ph);\n } else {\n (target as any).append(ph);\n }\n }\n } catch (error) {\n }\n\n }\n if (deferredSelectValue.length) {\n try { deferredSelectValue.forEach(b => b.activate()); } catch { }\n }\n if (isFragment) {\n this.motif.options.closeFragment = dom.createComment(\"]\");\n this.motif.options.cache!.appendChild(this.motif.options.closeFragment!);\n if ((this.element as Node).nodeType === Node.COMMENT_NODE && this.motif.options.closeFragment) {\n fragmentCloseMarkers.set(this.element as Comment, this.motif.options.closeFragment);\n }\n }\n\n this.isBuilt = true;\n ComponentHelper.callBuilt(this);\n ComponentHelper.scheduleMounted(this);\n\n }\n\n public setState() {\n this.controls.forEach(c => {\n c.setState();\n });\n this._base._reactivateBindings();\n }\n\n public reState() {\n this._base._reactivateBindings();\n this.controls.forEach(c => {\n c.reState();\n });\n }\n\n public setText(value: string) {\n if (this.isDisposed || !this.element) { return; }\n if (isComponentLike(value)) { warnComponentInTextBinding(this, value); return; }\n if (this.element) {\n (this.element as any).textContent = value;\n }\n }\n\n public style(content: CSSStyleDeclaration | string | Array<any> | Object | (() => any)) {\n if (this.isDisposed) { return this as any }\n const styleObj = (this.element as any)?.style as CSSStyleDeclaration | undefined;\n if (!styleObj) return this;\n if (typeof content === 'function') {\n this._stopStyleEffect();\n let prevKeys: string[] = [];\n let prevWasString = false;\n const run = () => effect(() => {\n const v = (content as () => any)();\n if (this.isDisposed) return;\n const so: any = (this.element as any)?.style;\n if (!so) return;\n if (typeof v === 'string') {\n so.cssText = v;\n prevKeys = [];\n prevWasString = true;\n } else if (v && typeof v === 'object') {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) {\n if (!(k in v)) { try { so[k] = ''; } catch { } }\n }\n Object.assign(so, v);\n prevKeys = Object.keys(v);\n } else {\n if (prevWasString) { so.cssText = ''; prevWasString = false; }\n for (const k of prevKeys) { try { so[k] = ''; } catch { } }\n prevKeys = [];\n }\n });\n let current = run();\n const stop = () => { try { current(); } catch { } };\n const binding: IBaseBinding = {\n propertyName: '__style',\n dataSource: null,\n activate() { /* no-op */ },\n reActivate() {\n stop();\n current = run();\n },\n deactivate() { stop(); }\n } as any;\n try { this.bindings.add(binding); } catch { }\n this._styleFx = { stop, binding };\n return this;\n }\n if (typeof content === 'string') {\n (styleObj as any).cssText = content;\n } else if (content && typeof content === 'object') {\n Object.assign(styleObj as any, content);\n }\n return this;\n }\n\n private _stopStyleEffect() {\n const fx = this._styleFx;\n if (!fx) return;\n this._styleFx = undefined;\n try { fx.stop(); } catch { }\n try { this.bindings.remove(fx.binding); } catch { }\n }\n\n private _addHandler(event: any, handler: (sender: ComponentBase, e: EventArgs) => void) {\n this.motif.on(event as any, handler as any);\n }\n private async _show(): Promise<any> {\n\n\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) { return; }/* A*/\n\n if (this.parent && enterModeOf(this.parent) === 'out-in') {\n const showHost = ((this.motif.options.placeholder as Node | undefined)?.parentNode)\n ?? (findAppendableComponent(this.parent)?.element as Node | undefined);\n const wait = pendingLeaves(showHost, this.element as unknown as Node);\n if (wait) {\n const seq = this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n return wait.then(() => {\n if (this.isDisposed || this._base._showSeq !== seq) return;\n return this._show();\n });\n }\n }\n\n if (peekTransition(this)?.activeAnimations?.length) {\n safeCall(async () => {\n await Promise.all(this.motif.options.transition.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n }, 'show.waitForLeaveAnimations');\n }\n /** A*/\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n const needAttach = !this._isInDom() && this.parent && this.parent.isBuilt && !this.isWait;\n this.isVisible = true;\n if (needAttach) {\n ComponentHelper.internalBuild.call(this.parent!, this);\n }\n return;\n } else {\n /** A*/\n const placeholderParent = (this.motif.options.placeholder as Node)?.parentElement;\n const expectedParent = findAppendableComponent(this.parent!)?.element;\n\n if (this.motif.options.placeholder && placeholderParent && placeholderParent !== expectedParent) {\n reportWarning('MJX106', []);\n this.isVisible = true;\n if (this.parent?.isBuilt) {\n ComponentHelper.internalBuild.call(this.parent, this);\n }\n return;\n }\n\n /** A*/\n wantsEnterTransition(this) && this.motif.options.transition.enterTransition(() => { });\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n c.motif.show();\n });\n this.isVisible = true;\n ComponentHelper.activateTree(this, false);\n return;\n }\n var parent = (this.motif.options.placeholder as Node)?.parentElement;\n if (parent) {\n parent.replaceChild(this.element as Node, this.motif.options.placeholder!);\n this.isVisible = true;\n ComponentHelper.activateTree(this);\n }\n }\n }\n private async _hide(): Promise<any> {\n\n if (this.isDisposed || !this.element) { return; }\n this._base._showSeq = (this._base._showSeq ?? 0) + 1;\n if (!this.isVisible) { return; }\n\n const strategy = this._computeHideStrategy();\n if (strategy === 'detach') {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n await this._base._detachDomWithAnimationAsync();\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n return;\n } else {\n const transition = this.motif.options.transition;\n const skip = transition.skipNextLeave === true;\n if (skip) transition.skipNextLeave = false;\n const finish = () => {\n ComponentHelper.callVisibilityChanged(this);\n if (this.isDisposed) { return; }\n if ((this.element as Node).nodeType === Node.COMMENT_NODE) {\n this.controls.forEach(c => {\n if (skip && c.isVisible && c.element && !c.isDisposed && c.motif.options?.transition) {\n c.motif.options.transition.skipNextLeave = true;\n }\n c.motif.hide();\n });\n this.isVisible = false;\n ComponentHelper.deactivateTree(this, false);\n return;\n }\n var parent = (this.element as Node).parentElement;\n // if (!parent) {\n // var parentComp = findAppendableComponent(this.parent!);\n // if (parentComp && parentComp.isBuilt) {\n // } else {\n if (parent) {\n if (!this.motif.options.placeholder) this.motif.options.placeholder = dom.createComment(\"h\");\n parent.replaceChild(this.motif.options.placeholder!, this.element as Node);\n\n }\n this.isVisible = false;\n ComponentHelper.deactivateTree(this);\n };\n if (skip) {\n finish();\n return;\n }\n return transition.leaveTransition(finish).finished;\n }\n\n }\n private _toggle() {\n if (this.isDisposed || !this.element) { return; }\n if (this.isVisible) {\n this.motif.hide();\n } else {\n this.motif.show();\n }\n }\n\n private async _on<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any, domEvent: boolean = true): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event);\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2).toLowerCase();\n if (xName === \"mounted\") {\n let sub: IDisposable | undefined;\n const stop = onElementAttached(this.element as Element, () => {\n if (sub) {\n this._base._mountedSubs?.get(cb)?.delete(sub);\n this._disposables.detach(sub);\n }\n if (this.isDisposed) { return; }\n const ev = { cancel: false } as EventArgs;\n callReported(() => (cb as any).length <= 1 ? (cb as any)(ev) : cb(this, ev as any), 'MJX122', 'x:mounted');\n });\n if (stop) {\n sub = this._register(disposableCore.toDisposable(stop));\n const subs: Map<Function, Set<IDisposable>> = this._base._mountedSubs ??= new Map();\n let set = subs.get(cb);\n if (!set) { set = new Set(); subs.set(cb, set); }\n set.add(sub);\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.on(\"on\" + xName, cb as any);\n return this;\n }\n }\n\n const [name, ...mods] = full.split(\":\");\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n const options: AddEventListenerOptions = {};\n if (mods.includes(\"once\")) options.once = true;\n if (mods.includes(\"passive\")) options.passive = true;\n if (mods.includes(\"capture\")) options.capture = true;\n\n const wrapped = (ev: Event) => {\n if (mods.includes(\"self\") && ev.target !== this.element) return;\n if (mods.includes(\"trusted\") && !ev.isTrusted) return;\n let res: any;\n try {\n if (cb && (cb as any).length <= 1) {\n res = (cb as any)(ev as any);\n } else if (cb) {\n res = cb(this, ev as any);\n }\n } catch (error) {\n reportError('MJX123', error, evt);\n }\n if (res && typeof res.then === 'function') {\n res.then(undefined, (error: unknown) => reportError('MJX123', error, evt));\n }\n const prevent = () => { if (typeof (ev as any)?.preventDefault === 'function') ev.preventDefault(); };\n const stop = () => { if (typeof (ev as any)?.stopPropagation === 'function') ev.stopPropagation(); };\n if (mods.includes(\"prevent\")) { prevent(); }\n if (mods.includes(\"stop\")) { stop(); }\n if (res && (res as any).cancel === true) {\n prevent();\n stop();\n }\n };\n if (domEvent) {\n (this.element as any).addEventListener(evt, wrapped as EventListener, options);\n }\n\n\n this._eventHandlers ??= new Map();\n const key = full.toLowerCase();\n const set = this._eventHandlers.get(key) ?? new Set();\n set.add({ original: cb as any, wrapped, capture: !!options.capture, domEvent: !!domEvent, type: evt });\n this._eventHandlers.set(key, set);\n this._register(disposableCore.toDisposable(() => {\n this.motif.off(event, cb);\n }));\n return this;\n }\n\n private async _trigger(event: any, ev: any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n const name = String(event).toLowerCase();\n safeCall(() => {\n var eh = this._eventHandlers?.get(name);\n if (eh) {\n eh.forEach(rec => {\n try {\n (rec.wrapped as any)(ev);\n } catch {\n\n }\n });\n }\n }, 'trigger');\n return this;\n }\n private async _off<K extends keyof HtmlElementEvents>(event: K, cb: (sender: ComponentBase | this, ev: HtmlElementEvents[K]) => any): Promise<this> {\n if (this.isDisposed || !this.element) {\n return this;\n }\n\n const full = String(event).toLowerCase();\n if (full.startsWith(\"x:\")) {\n const xName = full.slice(2);\n if (xName === \"mounted\") {\n const set = this._base._mountedSubs?.get(cb);\n if (set) {\n this._base._mountedSubs.delete(cb);\n for (const sub of set) {\n this._disposables.delete(sub);\n }\n }\n return this;\n }\n if (LIFECYCLE_X_EVENTS.has(xName)) {\n this._base.emiters.off(\"on\" + xName, cb as any);\n }\n return this;\n }\n const name = full.split(\":\")[0];\n const evt = name.startsWith(\"on\") ? name.slice(2).toLowerCase() : name.toLowerCase();\n if (!this._eventHandlers) return this;\n const set = this._eventHandlers.get(full);\n if (!set) return this;\n for (const rec of Array.from(set)) {\n if (rec.original === (cb as any)) {\n if ((rec as any).domEvent !== false) {\n const cap = (rec as any).capture === true;\n safeCall(() => { (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, cap); }, 'off.removeEventListener');\n safeCall(() => {\n if ((rec as any).capture === undefined) {\n (this.element as any).removeEventListener(evt, rec.wrapped as EventListener, !cap);\n }\n }, 'off.removeEventListener.fallback');\n }\n set.delete(rec);\n break;\n }\n }\n if (set.size === 0) this._eventHandlers.delete(full);\n return this;\n }\n /** Süren bertaraf: ikinci bir dispose/disposeAsync çağrısı yenisini başlatmaz, bunu bekler. */\n private _disposing?: Promise<void>;\n\n public override dispose(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, false);\n }\n\n private async _disposeCore(options: IDisposeOptions, asChild: boolean): Promise<void> {\n disposePrefix(this, options, asChild);\n let leave: Promise<void> | undefined;\n if (!asChild && !peekTransition(this)?.skipNextLeave) {\n leave = this._base._detachDomWithAnimationAsync();\n }\n await undefined;\n if (liveContentBlocks.live === 0 && subtreeDisposesSync(this, true)) {\n const pending = disposeRemainderSync(this, options, asChild, leave !== undefined);\n if (pending) {\n await Promise.all(pending);\n if (!asChild && this.isDisposed) { return; }\n disposeFinish(this, options, asChild);\n }\n return;\n }\n await disposeRemainderAsync(this, options, asChild, leave);\n }\n\n public disposeAsync(options: IDisposeOptions = { deep: true }): Promise<void> {\n if (this.isDisposed) { return Promise.resolve(); }\n if (this._disposing) { return this._disposing; }\n retireServiceOwner(this);\n this._disposing = DISPOSE_STARTED;\n return this._disposing = this._disposeCore(options, true);\n }\n\n\n protected async _clear(): Promise<any> {\n if (this.isDisposed == true) { return; }\n if (this.motif.options && this.motif.options.disableDisposal) { return; };\n await this.controls.clearAsync();\n //if (this.onupdated) this.onupdated(this as any, { data: this.model, field: '', source: 'clear' })\n // return new Promise((resolveOuter: any) => {\n // this.controls.forEach(async (control, index) => {\n // if (index === this.controls.length - 1) {\n // dom.window.setTimeout(resolveOuter, 0);\n // await control.dispose();\n }\n\n using<T>(waitable: Promise<any>, onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected?: ((reason: any) => never | PromiseLike<never>) | undefined | null) {\n waitable.then(\n (value: T) => { this && !this.isDisposed && onfulfilled ? onfulfilled(value) : ''; },\n (reason: any) => { this && !this.isDisposed && onrejected ? onrejected(reason) : '' });\n }\n doWork<T>(waitable: Promise<T> | PromiseLike<T>): Promise<T> {\n return Promise.resolve(waitable).then((value: T) => {\n if (this && !this.isDisposed) {\n return value\n } else {\n return motifError('MJX108');\n };\n }) as Promise<T>;\n }\n\n private _siblingsApi?: SiblingsApi;\n private _siblingsSet?: boolean;\n\n get siblings(): SiblingsApi {\n if (this._siblingsSet) { return this._siblingsApi as SiblingsApi; }\n if (this.isDisposed && !this.motif?.options) { return this._siblingsApi as SiblingsApi; }\n return this._siblingsApi ??= this._createSiblingsApi();\n }\n\n set siblings(value: SiblingsApi) {\n this._siblingsApi = value;\n this._siblingsSet = true;\n }\n\n private _createSiblingsApi(): SiblingsApi {\n return {\n all: () => { return this.parent?.controls.items },\n next: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx + 1];\n },\n prev: () => {\n if (!this.parent) return undefined;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items[idx - 1];\n },\n nextAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(idx + 1);\n },\n prevAll: () => {\n if (!this.parent) return undefined as any;\n const idx = this.parent.controls.items.indexOf(this);\n return this.parent.controls.items.slice(0, idx);\n }\n };\n }\n\n public get serviceProvider(): ServiceProvider | null {\n let c: ComponentBase | null = this as unknown as ComponentBase;\n while (c) {\n const p = (c as any).provider as ServiceProvider | undefined;\n if (p) return p;\n const recorded = teardownApplications.get(c);\n if (recorded) return recorded.state === 'disposed' ? null : recorded.provider;\n c = c.parent;\n }\n try { return Application.main?.provider ?? null; } catch { return null; }\n }\n\n public getService<T>(token: (abstract new (...args: any) => T) | { prototype: T }): T | null;\n public getService<T = any>(token: string | symbol | object): T | null;\n public getService(token: any): any {\n try {\n\n const sp = this.serviceProvider;\n if (sp) {\n return sp._getFor(this, token);\n }\n reportWarning('MJX407', [describeServiceToken(token)], { token });\n } catch (err) {\n reportWarning('MJX408', [describeServiceToken(token), String((err as any)?.message ?? err)], { token, error: err });\n }\n return null;\n }\n $(selector: string) {\n if (this.isDisposed || !this.element) {\n return {\n fromDom: () => null,\n fromComponent: () => [] as ComponentBase[]\n };\n }\n var result = {\n fromDom: () => {\n var findContainer = findAppendableComponent(this)?.element;\n var findingTarget;\n if (!findContainer) {\n findingTarget = document;\n } else {\n findingTarget = findContainer;\n }\n if (findingTarget) {\n var elements = findingTarget.querySelectorAll(selector);\n return elements;\n }\n return null;\n },\n fromComponent: () => {\n const findingComponent = findAppendableComponent(this);\n const root = findingComponent ?? this;\n const found: ComponentBase[] = [];\n const walk = (cmp: ComponentBase) => {\n const el = cmp.element as any;\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n const matches: ((sel: string) => boolean) | undefined = (el.matches || el.msMatchesSelector || el.webkitMatchesSelector);\n if (typeof matches === 'function') {\n try { if (matches.call(el, selector)) { found.push(cmp); } } catch { }\n }\n }\n if (cmp.controls && cmp.controls.items && cmp.controls.items.length) {\n for (const child of cmp.controls.items) { walk(child); }\n }\n };\n\n walk(root);\n return found;\n }\n }\n return result;\n }\n\n private async _stopAnimations() {\n const t = peekTransition(this);\n try { t?.activeCssCancel?.(); } catch { }\n try {\n if (t?.activeAnimations?.length) {\n try {\n await Promise.all(t.activeAnimations.map(a =>\n a.finished?.catch(() => { })\n ));\n } catch { /* ignore */ }\n }\n\n } catch (error) {\n\n }\n if (this.isDisposed) return;\n if (t) t.activeAnimations = [];\n }\n // return this;\n\n}\n\n\nfunction findContentBlocks(root: ComponentBase, results: ComponentBase[] = []): ComponentBase[] {\n if (!root || root.isDisposed) return results;\n\n if (root.constructor.name === 'TransportTo') {\n results.push(root);\n }\n if (root.controls && root.controls.items) {\n root.controls.items.forEach(child => findContentBlocks(child, results));\n }\n\n return results;\n}\n\nasync function disposeContentBlocks(root: ComponentBase): Promise<any> {\n if (liveContentBlocks.live === 0) return;\n const contentBlocks = findContentBlocks(root);\n return await Promise.all(contentBlocks.map(async (block) => {\n block.motif.options.transition.skipNextLeave = root.motif.options.transition.skipNextLeave;\n for (const element of block.controls.items) {\n element.motif.options.transition.skipNextLeave = block.motif.options.transition.skipNextLeave;\n element.dispose({ skipLeaveTransition: true });\n element.isDisposed = true;\n }\n await block.dispose()\n }));\n}\n\nconst _appliedRefs = new WeakMap<object, Set<Function>>();\n\nexport function takePendingRefs(component: ComponentBase, ref: any): Function[] {\n const fns: Function[] = (Array.isArray(ref) ? ref : [ref]).filter((fn: any) => typeof fn === 'function');\n if (fns.length === 0) return fns;\n let applied = _appliedRefs.get(component);\n if (!applied) {\n applied = new Set();\n _appliedRefs.set(component, applied);\n }\n const pending: Function[] = [];\n for (const fn of fns) {\n if (applied.has(fn)) continue;\n applied.add(fn);\n pending.push(fn);\n }\n return pending;\n}\n\nconst isCallableRef = (ref: any): boolean => typeof ref === 'function' || Array.isArray(ref);\n\nexport function extractRefs(props: any, component?: ComponentBase): any[] {\n const refs: any[] = [];\n if (!props || typeof props !== 'object') return refs;\n if (Object.prototype.hasOwnProperty.call(props, 'ref')) {\n if (isCallableRef(props.ref)) {\n refs.push(props.ref);\n delete props.ref;\n } else if (component && props.ref && typeof props.ref === 'object') {\n props.ref = component;\n }\n }\n const runover = props.runover;\n if (runover && typeof runover === 'object' && Object.prototype.hasOwnProperty.call(runover, 'ref')) {\n if (isCallableRef(runover.ref)) {\n refs.push(runover.ref);\n const rest = { ...runover };\n delete rest.ref;\n props.runover = rest;\n } else if (component && runover.ref && typeof runover.ref === 'object') {\n runover.ref = component;\n }\n }\n return refs.length === 0 ? refs : ([] as any[]).concat(...refs);\n}\n\nconst LIFECYCLE_HANDLER_LISTS: Record<string, keyof LifecycleStorage> = {\n 'initializecomponent': '_initializeComponentHandlers',\n 'oninitializecomponent': '_onInitializeComponentHandlers',\n 'onbuilding': '_onBuildingHandlers',\n 'onbuilt': '_onBuiltHandlers',\n 'onmounted': '_onMountedHandlers',\n 'oninitializing': '_onInitializingHandlers',\n 'oninitialized': '_onInitializedHandlers',\n 'onconfig': '_onConfigHandlers',\n 'onconfigured': '_onConfiguredHandlers',\n 'onvisibilitychanged': '_onVisibilityChangedHandlers',\n 'onactivated': '_onActivatedHandlers',\n 'ondeactivated': '_onDeactivatedHandlers',\n 'ondisposing': '_onDisposingHandlers',\n 'ondisposed': '_onDisposedHandlers',\n};\n\nfunction collectLifecycleHandlers(component: ComponentBase, lowerKey: string, value: any): boolean {\n const listName = Object.prototype.hasOwnProperty.call(LIFECYCLE_HANDLER_LISTS, lowerKey) ? LIFECYCLE_HANDLER_LISTS[lowerKey] : undefined;\n if (!listName) return false;\n const fns: any[] = Array.isArray(value) ? value : [value];\n if (fns.length === 0 || !fns.every(fn => typeof fn === 'function')) return false;\n (component as any)._base[listName] ??= [];\n const list = (component as any)._base[listName] as Function[];\n for (const fn of fns) {\n if (!list.includes(fn)) list.push(fn);\n }\n return true;\n}\n\nexport function ParseProps(props: any, component: ComponentBase): any {\n if (props) {\n if (component.motif.options.props) {\n Object.assign(component.motif.options.props, props);\n } else {\n component.motif.options.props = {};\n Object.assign(component.motif.options.props, props);\n }\n var keys = Object.keys(props);\n if (keys.length === 0) return;\n keys.forEach(key => {\n if (key == 'initializeComponent' || key == 'oninitializeComponent' || key.startsWith('on')) {\n if (collectLifecycleHandlers(component, key.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n } else if (key == 'childs') {\n const flat: ComponentBase[] = ([] as any[]).concat(...props[key] as any);\n component.childs = flat;\n delete props[key];\n } else if (key === 'transition') {\n applyTransitionProp(props[key], component);\n delete props[key];\n } else if (componentMethods.hasOwnProperty(key.toLowerCase()) || componentMethods.hasOwnProperty(\"on\" + key.toLowerCase())) {\n var eventKey;\n if (!key.toLowerCase().startsWith(\"on\") && key.toLowerCase() !== \"initializecomponent\") {\n eventKey = \"on\" + key;\n } else {\n eventKey = key;\n }\n (component as any)[eventKey] = props[key];\n delete props[key];\n } else if (key.startsWith(\"on\")) {\n\n component.motif.on(key as any, props[key]);\n } else if (key.startsWith(\"x-\")) {\n\n var nkey = key.replace(\"x-\", \"on\");\n if (key.toLowerCase() == \"x-wait\") {\n component.bindings.wait(props[key]);\n\n } else if (key.toLowerCase() == \"x-display\") {\n component.bindings.display(props[key]);\n } else {\n if (collectLifecycleHandlers(component, nkey.toLowerCase(), props[key])) {\n delete props[key];\n return;\n }\n }\n\n\n delete props[key];\n } else if (key.startsWith(\"runover\")) {\n\n ParseProps(props[key], component);\n delete props[key];\n } else if (key.startsWith(\"preconfig\")) {\n component.motif.options._preconfig = props[key];\n delete props[key];\n } else {\n // var callback = props[key];\n // if (typeof callback === \"function\") {\n // } else {\n }\n });\n }\n}\n\nconst _transitionSources = new WeakMap<ComponentBase, any>();\n\nfunction setTransition(component: ComponentBase, value: any, live: boolean): void {\n const transition = component.motif.options.transition;\n if (typeof value === 'string' && value.length > 0) {\n transition.name = value;\n if (live) transition.classes = undefined;\n } else if (value && typeof value === 'object') {\n if (typeof value.name === 'string' && value.name.length > 0) {\n transition.name = value.name;\n }\n if (!('mode' in value)) {\n transition.classes = value;\n } else {\n const { mode, ...classes } = value;\n if (isTransitionMode(mode)) {\n transition.mode = mode;\n }\n if (Object.keys(classes).length > 0) {\n transition.classes = classes;\n }\n }\n } else if (live) {\n transition.name = '';\n transition.classes = undefined;\n }\n}\n\nexport function applyTransitionProp(value: any, component: ComponentBase): void {\n if (!component || component.isDisposed) return;\n if (value === undefined || value === null) return;\n if (_transitionSources.get(component) === value) return;\n _transitionSources.set(component, value);\n if (typeof value === 'function') {\n component.bindings.watch(() => {\n const current = value();\n if (component.isDisposed) return;\n setTransition(component, current, true);\n });\n return;\n }\n setTransition(component, value, false);\n}\n\nexport function isComponentLike(value: any): boolean {\n if (value instanceof ComponentBase) return true;\n return Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase);\n}\n\nconst _textBindingWarned = new WeakSet<object>();\n\nfunction warnComponentInTextBinding(component: ComponentBase, value: any): void {\n if (_textBindingWarned.has(component)) return;\n _textBindingWarned.add(component);\n reportWarning('MJX204', [], { value: Array.isArray(value) ? `ComponentBase[${value.length}]` : 'ComponentBase' });\n}\n\nconst COMPONENT_OPTION_KEYS = ['hideStrategy', 'disableDisposal'] as const;\n\nexport function applyComponentOptions(source: any, component: ComponentBase): void {\n if (!source || typeof source !== 'object' || !component || component.isDisposed) return;\n for (const key of COMPONENT_OPTION_KEYS) {\n if (source[key] !== undefined) (component.motif.options as any)[key] = source[key];\n }\n}\n\n/** `applyPlainElementProps`'un DOM'a yazmayacağı çerçeve anahtarları. */\nconst PLAIN_ELEMENT_SKIP = new Set([\n 'ref', 'key', 'indexkey', 'inject', 'options', 'props', 'settings', 'isSvg',\n 'childs', 'initializeComponent', 'runover', 'transition', 'preconfig', 'nodes', 'onElementCreating'\n]);\n\nconst SPREAD_HTML_KEYS = new Set(['innerhtml', 'srcdoc']);\nconst SPREAD_URL_ATTRIBUTES = new Set(['href', 'src', 'action', 'formaction', 'xlink:href']);\nconst JAVASCRIPT_URL = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\n\nfunction isJavascriptUrl(value: unknown): boolean {\n if (value === undefined || value === null || typeof value === 'boolean') return false;\n try { return JAVASCRIPT_URL.test(String(value)); } catch { return false; }\n}\n\nfunction guardSpreadUrl(key: string, read: () => any): () => any {\n return () => {\n let value = read();\n if (typeof value === 'function') value = value();\n if (typeof value === 'function') value = value();\n if (!isJavascriptUrl(value)) return value;\n reportWarning('MJX125', [key]);\n return null;\n };\n}\n\nexport function applyPlainElementProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const keys = Object.keys(props);\n if (keys.length === 0) return;\n let attrs: Record<string, any> | null = null;\n let applied: Map<string, any> | null = null;\n for (const key of keys) {\n if (PLAIN_ELEMENT_SKIP.has(key)) continue;\n if (key.startsWith('x-') || key.startsWith('x:') || key.startsWith('__')) continue;\n let v = props[key];\n if (v === undefined) continue;\n if (/^on/i.test(key)) {\n if (typeof v === 'function') component.motif.on(key as any, v as any);\n continue;\n }\n if (typeof v === 'function' && v.length > 0) continue;\n const lowerKey = key.toLowerCase();\n if (SPREAD_HTML_KEYS.has(lowerKey)) {\n reportWarning('MJX124', [key]);\n continue;\n }\n if (SPREAD_URL_ATTRIBUTES.has(lowerKey)) {\n if (typeof v === 'function') {\n v = guardSpreadUrl(key, v);\n } else if (isJavascriptUrl(v)) {\n reportWarning('MJX125', [key]);\n continue;\n }\n }\n (applied ??= appliedDomProps(component)).set(key, v);\n if (key === 'class' || key === 'className') {\n component.class.add(v && typeof v === 'object' && !Array.isArray(v) ? [v] : v);\n } else if (key === 'style') {\n component.style(v);\n } else if (key === 'value' || key === 'checked' || key === 'selected') {\n component.bindings.add(key, v);\n } else {\n (attrs ??= {})[key] = v;\n }\n }\n if (attrs) component.attr.add(attrs);\n}\n\nconst _appliedDomProps = new WeakMap<ComponentBase, Map<string, any>>();\nfunction appliedDomProps(component: ComponentBase): Map<string, any> {\n let m = _appliedDomProps.get(component);\n if (!m) { m = new Map(); _appliedDomProps.set(component, m); }\n return m;\n}\n\n/** Bileşen etiketinden köke düşen ortak öznitelikler. */\nconst FALLTHROUGH_KEYS = new Set(['class', 'className', 'style', 'id', 'tabindex', 'role']);\nfunction isFallthroughKey(key: string): boolean {\n return FALLTHROUGH_KEYS.has(key) || key.startsWith('aria-') || key.startsWith('data-');\n}\n\nexport function applyFallthroughProps(props: any, component: ComponentBase): void {\n if (!props || typeof props !== 'object' || component.isDisposed) return;\n const applied = _appliedDomProps.get(component);\n let subset: Record<string, any> | null = null;\n for (const key of Object.keys(props)) {\n if (!isFallthroughKey(key)) continue;\n const v = props[key];\n if (v === undefined || v === null) continue;\n if (typeof v === 'function' && v.length > 0) continue;\n if (applied && applied.has(key) && Object.is(applied.get(key), v)) continue;\n (subset ??= {})[key] = v;\n }\n if (subset) applyPlainElementProps(subset, component);\n}\n\nconst componentMethods: Record<string, unknown> = {\n \"oninitializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"initializecomponent\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfigured\": (sender: ComponentBase, e: EventArgs) => { },\n \"onconfig\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilding\": (sender: ComponentBase, e: EventArgs) => { },\n \"onbuilt\": (sender: ComponentBase, e: EventArgs) => { },\n \"onmounted\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitializing\": (sender: ComponentBase, e: EventArgs) => { },\n \"oninitialized\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposing\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondisposed\": (sender: ComponentBase, e: EventArgs) => { },\n \"onvisibilitychanged\": (sender: ComponentBase, e: EventArgs) => { },\n \"ondeactivated\": (sender: ComponentBase, e: EventArgs) => { },\n \"onactivated\": (sender: ComponentBase, e: EventArgs) => { },\n};\n\n\nfunction findAppendableComponent(component: ComponentBase): ComponentBase | null | undefined {\n\n return safeCall<ComponentBase | null | undefined>(() => {\n if (!component || component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findAppendableComponent(component.parent);\n }\n return null;\n }, 'findAppendableComponent', null);\n\n}\n\n\nfunction findParentElement(component: ComponentBase): ComponentBase | null {\n\n try {\n if (component.isDisposed) return null;\n if (component.element.nodeType !== Node.COMMENT_NODE && component.element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && component.element.nodeType !== Node.TEXT_NODE) {\n return component;\n } else if (component.parent) {\n return findParentElement(component.parent);\n }\n } catch (error) {\n throw error;\n }\n return null;\n}\n\n\nfunction onElementAttached(element: Element, callback: () => any): (() => void) | null {\n if (document.contains(element)) {\n callback();\n return null;\n }\n\n let done = false;\n const observer = new MutationObserver(() => {\n if (done) { return; }\n if (document.contains(element)) {\n done = true;\n observer.disconnect();\n callback();\n }\n });\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n });\n\n return () => {\n if (done) { return; }\n done = true;\n try { observer.disconnect(); } catch { /* ignore */ }\n };\n}\n\nexport function notifyActivated(component: ComponentBase): void {\n unpinServiceOwner(component);\n ComponentHelper.activateTree(component);\n}\nexport function notifyDeactivated(component: ComponentBase): void {\n pinServiceOwner(component);\n ComponentHelper.deactivateTree(component);\n}","import { ComponentBase } from \"./componentBase\";\nimport { reportError } from \"../common/diagnostics\";\n\nconst MAX_FACTORY_DEPTH = 100;\n\nexport function resolveComponent(input: unknown, props?: any): any {\n let current: any = input;\n let depth = 0;\n while (typeof current === \"function\") {\n if (current.prototype instanceof ComponentBase) {\n return new current(props);\n }\n if (++depth > MAX_FACTORY_DEPTH) {\n reportError('MJX112', undefined, MAX_FACTORY_DEPTH);\n return current;\n }\n current = current(props);\n }\n return current;\n}","import { dom } from \"../\";\nimport { ComponentBase, IBaseProp, ParseProps, applyComponentOptions, applyFallthroughProps, applyTransitionProp, extractRefs, safeCallSilent, takePendingRefs, untracked } from \"../\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { ElementType, EventArgs } from \"./types\";\nimport { callReported, motifError } from \"../common/diagnostics\";\n\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nfunction readElementTag(ctor: any): string | undefined {\n try {\n const tag = ctor?.elementTag;\n if (typeof tag === 'string') {\n const trimmed = tag.trim();\n if (trimmed) return trimmed;\n }\n } catch { /* ignore */ }\n return undefined;\n}\n\nfunction createDeclaredElement(tag: string, ctor: any, props: any): any {\n const declaredNs = typeof ctor?.elementNamespace === 'string' && ctor.elementNamespace\n ? ctor.elementNamespace as string\n : undefined;\n const isSvg = declaredNs === SVG_NAMESPACE || props?.options?.isSvg === true || props?.__isSvgElement === true;\n if (isSvg) {\n if (props && typeof props === 'object') { (props as any).isSvg = true; }\n return dom.createElementNS(declaredNs || SVG_NAMESPACE, tag, props);\n }\n return dom.createElement(tag, props);\n}\n\nexport class Component<TElement extends ElementType = any, TProps extends object = any> extends ComponentBase<TElement, TProps> {\n\n public static elementTag?: string;\n public static elementNamespace?: string;\n\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>);\n constructor(element: TElement | string, options: IBaseProp<TProps>);\n constructor(elementOrParams: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor(elementOrParams?: TElement | string | IBaseProp<TProps>, options?: IBaseProp<TProps>);\n constructor() {\n const derivedCtor: any = new.target;\n var args = arguments;\n var elementOrParams;\n var options;\n if (args.length === 1) {\n elementOrParams = args[0];\n } else if (args.length === 2) {\n elementOrParams = args[0];\n options = args[1];\n }\n\n if (elementOrParams instanceof Function) {\n elementOrParams = resolveComponent(elementOrParams, options);\n if (isOptionsObject(elementOrParams)) {\n return materializeOptionsObject(elementOrParams, options);\n }\n }\n if (Array.isArray(elementOrParams)) {\n const letter = CreateFragment();\n super(letter, {} as TProps);\n var ops = Object.create(options || {});\n for (const key in elementOrParams) {\n const element = elementOrParams[key];\n this.controls.add(new Component(element, ops as any));\n }\n } else\n if (typeof elementOrParams === 'string' && elementOrParams.trim().length > 0) {\n // İlk parametre element ise\n if (!options) { options = {} as any; }\n\n if (options?.options && options.options.isSvg || options?.__isSvgElement) {\n const el = dom.createElementNS('http://www.w3.org/2000/svg', elementOrParams, options);\n (options as any)['isSvg'] = true;\n super(el as TElement, options as TProps);\n } else {\n const el = dom.createElement(elementOrParams, options);\n\n super(el as TElement, options as TProps);\n }\n // DOM prop'ları (spread/attr) ComponentBase ctor'ında uygulanır: düz Component'ta tümü,\n // alt sınıflarda yalnızca ortak öznitelikler (applyFallthroughProps).\n } else if (elementOrParams instanceof Node) {\n super(elementOrParams as any, options as TProps);\n } else if (elementOrParams instanceof ComponentBase) {\n // Hazır instance geldi; olduğu gibi kullan\n return elementOrParams as any;\n }\n else {\n // Constructor'a element verilmedi (undefined/null/boş) ya da element olarak\n // tanınmayan bir değer geldi. bu iki olasılığa neden olur :\n // a) Sınıf bir element türü bildirmiş → o türde gerçek element üretilir\n // b) Bildirmemiş → FRAGMENT: kök yorum düğümü (yer tutucu),\n // çocuklar açılış/kapanış işaretçileri arasına render edilir\n // Her bileşenin bir elementi olmak zorunda olduğundan, fragment kök olarak yorum düğümü kullanılır.\n // props hangi argümanda olduğu çağrı biçimine göre değişir:\n // new Component({ ...props }) → props İLK argüman\n // super(void 0, props) / super(null, props) → props İKİNCİ argüman\n const fragmentProps = (elementOrParams && typeof elementOrParams === 'object')\n ? elementOrParams\n : options;\n\n // Sınıf bir element türü bildirdiyse (statik elementTag — derleyici\n // Component<HTMLDivElement> generic'inden üretir fragment yerine\n // O TÜRDE gerçek element oluşturulur.\n const declaredTag = readElementTag(derivedCtor);\n if (declaredTag) {\n const declaredEl = createDeclaredElement(declaredTag, derivedCtor, fragmentProps);\n super(declaredEl as TElement, (fragmentProps ?? {}) as TProps);\n } else {\n super(CreateFragment(), (fragmentProps ?? {}) as TProps);\n }\n\n // Her iki durumda da JSX çocukları (props.childs) içeriğe eklenir.\n // Alt sınıflar initializeComponent'i ezdiği için FragmentNode.initializeComponent'e güvenilemez.\n const kids = this.childs;\n if (Array.isArray(kids) && kids.length) {\n for (const kid of kids) {\n if (kid) this.controls.add(kid);\n }\n }\n }\n }\n\n\n}\n\n\ntype viewFn<P extends object> = (props: P) => any;\n\nexport function FNComponent<P extends object>(view: viewFn<P>) {\n\n return (props: P) => {\n //debugger; \n var comp = motifFragment({\n ...props as any,\n });\n comp.controls.add(view(props) as any);\n return comp;\n };\n}\n\nfunction applyJsxFrameworkProps(target: any, props: any, refs: any[]): any {\n if (!props || typeof props !== 'object') return target;\n if (!(target instanceof ComponentBase)) return target;\n\n applyRefs(target, refs.concat(extractRefs(props)));\n\n // Fonksiyon bileşeni etiketindeki ortak öznitelikler (class/id/aria-*…) döndürülen köke düşer.\n // Kök `<div {...props}/>` ise aynı değerler zaten uygulanmıştır; ikinci kez uygulanmaz.\n applyFallthroughProps(props, target as ComponentBase);\n applyComponentOptions((props as any).options, target as ComponentBase);\n if (Object.prototype.hasOwnProperty.call(props, 'transition')) {\n applyTransitionProp((props as any).transition, target as ComponentBase);\n }\n\n const runover = (props as any).runover;\n if (!runover || typeof runover !== 'object') return target;\n\n const handlers: any[] = (target as any)._base?._onConfigHandlers;\n const configuredBefore = Array.isArray(handlers) ? handlers.length : 0;\n const initializingBefore = handlerCount(target, '_onInitializingHandlers');\n const initializedBefore = handlerCount(target, '_onInitializedHandlers');\n ParseProps(runover, target as ComponentBase);\n\n callAddedHandlers(target, '_onInitializingHandlers', initializingBefore, 'onInitializing');\n callAddedHandlers(target, '_onInitializedHandlers', initializedBefore, 'onInitialized');\n\n // Fonksiyon bileşeninin kökü düz bir `Component` olduğunda config aşaması yapıcıda\n // ÇOKTAN çalışmıştır (`isConfigured`); sonradan kaydedilen preconfig/onConfig bir daha\n // çağrılmayacağı için burada elle koşulur. Yalnızca yeni eklenenler çalıştırılır.\n if ((target as any).isConfigured) {\n const pre = (target as any).motif.options?._preconfig;\n if (typeof pre === 'function') {\n safeCallSilent(() => pre(target), 'motifComponent.preconfig');\n }\n const after: any[] = (target as any)._base?._onConfigHandlers;\n if (Array.isArray(after)) {\n for (let i = configuredBefore; i < after.length; i++) {\n const fn = after[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', 'onConfig');\n }\n }\n }\n return target;\n}\n\nfunction applyRefs(target: any, refs: any[]): any {\n if (target instanceof ComponentBase) {\n for (const fn of takePendingRefs(target, refs)) {\n callReported(() => fn(target), 'MJX122', 'ref');\n }\n }\n return target;\n}\n\nfunction handlerCount(target: any, listName: string): number {\n const list: any[] = target._base?.[listName];\n return Array.isArray(list) ? list.length : 0;\n}\n\nfunction callAddedHandlers(target: any, listName: string, from: number, hook: string): void {\n const list: any[] = target._base?.[listName];\n if (!Array.isArray(list)) return;\n for (let i = from; i < list.length; i++) {\n if (target.isDisposed) return;\n const fn = list[i];\n callReported(() => fn(target, { cancel: false } as EventArgs), 'MJX122', hook);\n }\n}\n\nfunction resolveChildExpression(probe: any): any {\n if (typeof probe !== 'function') return undefined;\n let value: any;\n try { value = untracked(probe); } catch { return undefined; }\n if (value instanceof ComponentBase) return value;\n if (Array.isArray(value) && value.length > 0 && value.every(x => x instanceof ComponentBase)) return value;\n return undefined;\n}\n\nexport function motifComponent(element: unknown, props?: any) {\n\n // Etiket adı: element yaratımı (HTML/SVG) ve spread prop uygulaması Component ctor'ının string parametresinde\n if (typeof element === \"string\") {\n if (element === \"text\" && props && props.__childExpr) {\n const resolved = resolveChildExpression(props.__childExpr);\n if (resolved !== undefined) return resolved;\n }\n return new Component(element, props);\n }\n\n if (element instanceof ComponentBase || element instanceof Component) {\n return element;\n }\n\n // Class component → new, function component/factory → çağır (try/catch tespiti yok)\n if (typeof element === \"function\") {\n const refs = element.prototype instanceof ComponentBase ? [] : extractRefs(props);\n const el = resolveComponent(element, props);\n if (typeof el == \"object\" && el !== null && 'el' in el) {\n return applyRefs(materializeOptionsObject(el, props), refs);\n }\n // Sınıf bileşeninde props yapıcıda işlendi; fonksiyon bileşeninde ise dış etiketin\n // çerçeve prop'ları (direktifler, initializeComponent, yaşam döngüsü) hiçbir yere uygulanmamıştı.\n return applyJsxFrameworkProps(el, props, refs);\n }\n\n if (typeof element == \"object\" && element !== null && 'el' in element) {\n return materializeOptionsObject(element, props);\n }\n return new Component(element, props);\n}\n\nfunction isOptionsObject(value: unknown): boolean {\n return typeof value == \"object\" && value !== null && !(value instanceof ComponentBase) && 'el' in value;\n}\n\nexport function unwrapModule(result: any): any {\n if (result && typeof result === \"object\" && !(result instanceof ComponentBase) && result.default != null) {\n return result.default;\n }\n return result;\n}\n\nfunction describeLoaded(value: any): string {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'array';\n if (typeof value === \"object\" && (Object.prototype.toString.call(value) === '[object Module]' || value.__esModule)) return 'module';\n return typeof value;\n}\n\nexport function assertLoadedComponent(value: unknown): void {\n if (value === null || typeof value !== \"object\") return;\n if (value instanceof ComponentBase || Array.isArray(value) || value instanceof Node) return;\n if (typeof (value as any).then === \"function\") return;\n throw motifError('MJX127', describeLoaded(value));\n}\n\nexport function resolveToComponent(input: unknown, props?: any): any {\n const resolved = resolveComponent(input, props);\n if (isOptionsObject(resolved)) {\n return materializeOptionsObject(resolved, undefined);\n }\n return resolved;\n}\n\nfunction materializeOptionsObject(spec: any, props: any): any {\n const result: any = motifComponent(spec.el, props);\n Object.getOwnPropertyNames(spec).forEach(key => {\n if (key !== 'el' && key !== 'ctor') {\n result[key] = spec[key];\n }\n });\n if (typeof spec.ctor === 'function') {\n callReported(() => spec.ctor.call(result, props), 'MJX122', 'ctor');\n }\n return result;\n}\nexport function motifFragment(props?: any) {\n return new FragmentNode(props);\n}\n\nfunction CreateFragment() {\n const fragment = dom.createComment(\"\");\n return fragment;\n}\n\nexport class FragmentNode<TProps extends object = any> extends Component<Comment, TProps> {\n\n constructor(options?: IBaseProp<TProps>);\n constructor(element: any, props: any);\n constructor(arg1?: any, arg2?: any) {\n if (arguments.length <= 1) {\n super(CreateFragment() as any, arg1 as any);\n } else {\n super(CreateFragment() as any, arg2 as any);\n }\n }\n\n public override initializeComponent(sender: ComponentBase): void {\n const s = (this as any).childs as ComponentBase[] | undefined;\n if (Array.isArray(s) && s.length) {\n for (const child of s) {\n if (child) this.controls.add(child);\n }\n }\n safeCallSilent(() => {\n const nodes = (this.motif.options as any)?.props?.nodes as any[] | undefined;\n if (Array.isArray(nodes) && nodes.length) {\n for (const n of nodes) {\n if (n) this.controls.add(n);\n }\n }\n }, 'Fragment.initializeComponent.props.nodes');\n }\n}\n\n\nexport class motifDocument {\n public router: any = {};\n public context: any = {};\n public run(appElement: Node, app: Component): Component {\n const MainApp = new Component(appElement, {});\n app.parent = MainApp;\n MainApp.controls.add(app);\n //const renderer = new motifRenderer();\n //renderer.render(MainApp);\n MainApp.build();\n return MainApp;\n //console.warn(\"MainApp:\", MainApp);\n }\n}\n","import { IDisposable } from \"../\";\r\nimport { errorHandler } from \"../common/ErrorHandler\";\r\nimport { motifError, reportError } from \"../common/diagnostics\";\r\n\r\nconst glblths = globalThis as any;\r\nfunction getCurrentDom() {\r\n if (glblths && glblths.motifDom) {\r\n return glblths.motifDom.window.document;\r\n }\r\n return glblths.document;\r\n}\r\n\r\nexport function setDom(dom: any) {\r\n if (glblths) {\r\n glblths.motifDom = dom;\r\n }\r\n}\r\n\r\nexport const dom = {\r\n get window() {\r\n if (glblths && glblths.window) {\r\n return glblths.window;\r\n } else if (glblths && glblths) {\r\n return glblths.motifDom.window;\r\n } else {\r\n return glblths;\r\n }\r\n },\r\n _created: new Map<any, any>(),\r\n document: getCurrentDom(),\r\n createElement(tagName: string, options?: any): any {\r\n const doc = getCurrentDom();\r\n if (!doc) {\r\n throw motifError('MJX101', tagName);\r\n }\r\n if (tagName === \"text\") {\r\n return doc.createTextNode('');\r\n }\r\n if (!this._created.has(tagName)) {\r\n const view = doc.createElement(tagName, options);\r\n this._created.set(tagName, view);\r\n }\r\n const tpl = this._created.get(tagName);\r\n return tpl.cloneNode(false);\r\n },\r\n\r\n createDocumentFragment(): any {\r\n try {\r\n var cd = getCurrentDom();\r\n if (cd) {\r\n return cd.createDocumentFragment();\r\n }\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createDocumentFragment', error);\r\n }\r\n\r\n },\r\n createComment(content: any) {\r\n try {\r\n return getCurrentDom()?.createComment(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createComment', error);\r\n }\r\n\r\n },\r\n createTextNode(content: any) {\r\n try {\r\n return getCurrentDom()?.createTextNode(content)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.createTextNode', error);\r\n }\r\n\r\n },\r\n querySelectorAll(selectors: string) {\r\n try {\r\n return getCurrentDom()?.querySelectorAll(selectors)\r\n } catch (error) {\r\n errorHandler.reportSuppressed('dom.querySelectorAll', error);\r\n }\r\n\r\n },\r\n createElementNS(namepsaceUri: string, tagName: string, options?: any): any {\r\n try {\r\n return getCurrentDom()?.createElementNS(namepsaceUri, tagName, options)\r\n } catch (error) {\r\n reportError('MJX103', error, tagName);\r\n }\r\n\r\n },\r\n convertToSvgElement(element: Element): Element {\r\n\r\n const SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\r\n const tagName = element.tagName.toLowerCase();\r\n const newSvgElement = document.createElementNS(SVG_NAMESPACE, tagName);\r\n\r\n for (const attr of element.attributes) {\r\n newSvgElement.setAttribute(attr.name, attr.value);\r\n }\r\n\r\n while (element.firstChild) {\r\n newSvgElement.appendChild(element.firstChild);\r\n }\r\n\r\n const parent = element.parentNode;\r\n if (parent) {\r\n parent.replaceChild(newSvgElement, element);\r\n }\r\n\r\n return newSvgElement;\r\n },\r\n\r\n get body() {\r\n return getCurrentDom()?.body;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nconst SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\r\nexport enum Namespace {\r\n HTML = 'http://www.w3.org/1999/xhtml',\r\n SVG = 'http://www.w3.org/2000/svg'\r\n}\r\n\r\n\r\nfunction _$<T extends Element>(namespace: Namespace, description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n const match = SELECTOR_REGEX.exec(description);\r\n\r\n if (!match) {\r\n throw motifError('MJX102', description);\r\n }\r\n\r\n const tagName = match[1] || 'div';\r\n let result: T;\r\n\r\n if (namespace !== Namespace.HTML) {\r\n result = dom.createElementNS(namespace as string, tagName) as T;\r\n } else {\r\n result = dom.createElement(tagName) as unknown as T;\r\n }\r\n\r\n if (match[3]) {\r\n result.id = match[3];\r\n }\r\n if (match[4]) {\r\n result.className = match[4].replace(/\\./g, ' ').trim();\r\n }\r\n if (attrs) {\r\n Object.entries(attrs).forEach(([name, value]) => {\r\n if (typeof value === 'undefined') {\r\n return;\r\n }\r\n\r\n if (/^on\\w+$/.test(name)) {\r\n (<any>result)[name] = value;\r\n } else if (name === 'selected') {\r\n if (value) {\r\n result.setAttribute(name, 'true');\r\n }\r\n\r\n } else {\r\n result.setAttribute(name, value);\r\n }\r\n });\r\n }\r\n result.append(...children);\r\n return result as T;\r\n}\r\n\r\nexport function $<T extends HTMLElement>(description: string, attrs?: { [key: string]: any }, ...children: Array<Node | string>): T {\r\n return _$(Namespace.HTML, description, attrs, ...children);\r\n}\r\n\r\n\r\n\r\nclass DomListener implements IDisposable {\r\n\r\n private _handler: (e: any) => void;\r\n private _node: EventTarget;\r\n private readonly _type: string;\r\n private readonly _options: boolean | AddEventListenerOptions;\r\n\r\n constructor(node: EventTarget, type: string, handler: (e: any) => void, options?: boolean | AddEventListenerOptions) {\r\n this._node = node;\r\n this._type = type;\r\n this._handler = handler;\r\n this._options = (options || false);\r\n this._node.addEventListener(this._type, this._handler, this._options);\r\n }\r\n\r\n dispose(): void {\r\n if (!this._handler) {\r\n // Already disposed\r\n return;\r\n }\r\n\r\n this._node.removeEventListener(this._type, this._handler, this._options);\r\n\r\n // Prevent leakers from holding on to the dom or handler func\r\n this._node = null!;\r\n this._handler = null!;\r\n }\r\n}\r\n\r\nexport function addDisposableListener<K extends keyof GlobalEventHandlersEventMap>(node: EventTarget, type: K, handler: (event: GlobalEventHandlersEventMap[K]) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, options: AddEventListenerOptions): IDisposable;\r\nexport function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCaptureOrOptions?: boolean | AddEventListenerOptions): IDisposable {\r\n return new DomListener(node, type, handler, useCaptureOrOptions);\r\n}\r\n\r\n\r\n\r\n","// import { dom } from \"../browser\";\r\nimport { TRANSITION_SLOT } from \"../component/optionsSlots\";\r\n// import { effect } from \"../store\";\r\nimport { dom } from \"../\";\r\nimport { Component, ComponentBase, resolveComponent, notifyDeactivated } from \"../\";\r\nimport { reportError } from \"../common/diagnostics\";\r\nimport { checkReservedMembers } from \"../component/componentBase\";\r\n\r\nexport class ControlCollection {\r\n constructor(private owner: ComponentBase) {\r\n\r\n }\r\n items: ComponentBase[] = [];\r\n\r\n add(...control: ComponentBase[]): ComponentBase[]\r\n add(index?: number, ...control: ComponentBase[]): ComponentBase[]\r\n add(): ComponentBase[] {\r\n const count = arguments.length;\r\n if (count === 0) return [] as ComponentBase[];\r\n const first = arguments[0];\r\n if (count === 1 && first instanceof ComponentBase) {\r\n if (first.isDisposed) return [] as ComponentBase[];\r\n return [this._insertOne(undefined, first)];\r\n }\r\n const args = Array.from(arguments) as any[];\r\n if (typeof args[0] === 'number' && args.length > 1) {\r\n const index = args[0] as number;\r\n const children = ([] as ComponentBase[]).concat(...args.slice(1));\r\n return this.insert(index, ...children);\r\n } else {\r\n const children = ([] as ComponentBase[]).concat(...args);\r\n return this.insert(undefined, ...children);\r\n }\r\n }\r\n insert(index?: number, ...controls: ComponentBase[]): ComponentBase[] {\r\n const flat: ComponentBase[] = ([] as any[]).concat(...controls as any);\r\n return flat.filter(x => x != undefined && !x.isDisposed).map(control => this._insertOne(index, control));\r\n }\r\n private _insertOne(index: number | undefined, control: ComponentBase): ComponentBase {\r\n control = resolveComponent(control);\r\n if (typeof control == 'string' || typeof control == 'number' || typeof control == 'boolean' || typeof control == 'bigint') {\r\n control = new Component(dom.createTextNode(control), null as any);\r\n }\r\n checkReservedMembers(control);\r\n if (control.parent) { control.parent.controls.detach(control); }\r\n\r\n if (index != undefined && index >= 0) {\r\n this.items.splice(index, 0, control);\r\n } else {\r\n this.items.push(control);\r\n }\r\n control.parent = this.owner;\r\n\r\n const pendingLeave = (control as any).__pendingLeave as PendingLeave | undefined;\r\n if (pendingLeave) {\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n pendingLeave.promise.then(() => {\r\n if (control.isDisposed || this.owner.isDisposed || control.parent !== this.owner) return;\r\n if (this.onAdd && this.owner.isBuilt) this.onAdd(control);\r\n });\r\n return control;\r\n }\r\n\r\n if (this.onAdd && this.owner.isBuilt) {\r\n this.onAdd(control);\r\n }\r\n\r\n if (this.onAddBeforeBuild && !this.owner.isBuilt) {\r\n this.onAddBeforeBuild(control);\r\n }\r\n return control;\r\n }\r\n remove(control: ComponentBase) {\r\n var index = this.items.indexOf(control);\r\n if (index > -1) {\r\n this.items.splice(index, 1);\r\n try { control.dispose(); } catch { /* ignore */ }\r\n }\r\n }\r\n detach(control: ComponentBase): Promise<void> {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return Promise.resolve();\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return Promise.resolve();\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n return runLeaveThenDetach(control, () => { if (this.onRemove) this.onRemove(control); });\r\n }\r\n\r\n silentDetach(control: ComponentBase, unlinkOnly: boolean = false) {\r\n if (unlinkOnly) { this.silentUnlink(control); return; }\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n if (control.isDisposed) return;\r\n control.parent = null;\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n\r\n silentUnlink(control: ComponentBase) {\r\n const index = this.items.indexOf(control);\r\n if (index === -1) return;\r\n this.items.splice(index, 1);\r\n (control as any)._base && ((control as any)._base._leaveContainer = this.owner);\r\n control.parent = null;\r\n }\r\n\r\n async clearAsync(): Promise<void> {\r\n const items = this.items.splice(0, this.items.length); \r\n await Promise.all(items.map(c => c.dispose())); \r\n }\r\n\r\n\r\n clear() {\r\n var items = this.items.splice(0, this.items.length);\r\n items.forEach(c => {\r\n try { c.dispose(); } catch { /* ignore */ }\r\n });\r\n }\r\n get length() {\r\n return this.items.length;\r\n }\r\n forEach(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n this.items.forEach(callbackfn);\r\n }\r\n map(callbackfn: (value: ComponentBase, index: number, array: ComponentBase[]) => void) {\r\n return this.items.map(callbackfn);\r\n }\r\n onAdd?: (control: ComponentBase) => void;\r\n onRemove?: (control: ComponentBase) => void;\r\n onAddBeforeBuild?: (control: ComponentBase) => void;\r\n move(control: ComponentBase, before?: ComponentBase | null): void {\r\n if (!control || control.isDisposed) return;\r\n if (before === control) return;\r\n if (control.parent !== this.owner) return;\r\n if (before && before.parent !== this.owner) return;\r\n\r\n const oldIndex = this.items.indexOf(control);\r\n if (oldIndex === -1) return;\r\n const beforeIndex = before ? this.items.indexOf(before) : -1;\r\n if (before && beforeIndex === -1) return;\r\n\r\n const alreadyInPlace = before ? beforeIndex === oldIndex + 1 : oldIndex === this.items.length - 1;\r\n if (alreadyInPlace) return;\r\n\r\n\r\n this.items.splice(oldIndex, 1);\r\n\r\n if (!before) {\r\n this.items.push(control);\r\n } else {\r\n const newBeforeIndex = this.items.indexOf(before);\r\n const insertAt = newBeforeIndex >= 0 ? newBeforeIndex : this.items.length;\r\n this.items.splice(insertAt, 0, control);\r\n }\r\n\r\n if ((control as any).isWait) {\r\n return;\r\n }\r\n const container = findAppendableElement(this.owner);\r\n if (!container) return;\r\n\r\n const referenceNode: Node | null = before ? (before.element as unknown as Node) : computeAppendReference(this.owner);\r\n\r\n moveComponentDomRange(control, container, referenceNode);\r\n }\r\n\r\n moveToIndex(control: ComponentBase, index: number): void {\r\n if (!control || control.isDisposed) return;\r\n if (!Number.isFinite(index as any)) return;\r\n if (index < 0) index = 0;\r\n if (index > this.items.length) index = this.items.length;\r\n if (this.items.indexOf(control) === -1) return;\r\n const before = index >= this.items.length ? null : this.items[index];\r\n this.move(control, before);\r\n }\r\n}\r\n\r\n/** Owner için DOM'a eklenebilir gerçek element'i bulur. */\r\nfunction findAppendableElement(owner: ComponentBase): HTMLElement | Node | null {\r\n let c: ComponentBase | null = owner;\r\n while (c) {\r\n const node = c.element as any as Node;\r\n if (node && node.nodeType !== Node.COMMENT_NODE && node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && node.nodeType !== Node.TEXT_NODE) {\r\n return node as any;\r\n }\r\n c = c.parent;\r\n }\r\n return null;\r\n}\r\n\r\n/** Owner fragment ise sona ekleme referansını, değilse null döndürür. */\r\nfunction computeAppendReference(owner: ComponentBase): Node | null {\r\n const node = owner.element as any as Node;\r\n if (node && node.nodeType === Node.COMMENT_NODE) {\r\n return (owner as any).motif.options?.closeFragment || null;\r\n }\r\n return null;\r\n}\r\n\r\n/** Bir component'in kök DOM aralığını (tek element veya fragment aralığı) referenceNode öncesine taşır. */\r\nfunction moveComponentDomRange(control: ComponentBase, container: Node, referenceNode: Node | null) {\r\n const node = control.element as any as Node | null;\r\n if (!node) return;\r\n\r\n if (node.nodeType !== Node.COMMENT_NODE) {\r\n try { container.insertBefore(node, referenceNode); } catch { }\r\n return;\r\n }\r\n\r\n const open = node;\r\n const close = ((control as any).motif.options?.closeFragment as Node | undefined) || null;\r\n if (!close) { try { container.insertBefore(open, referenceNode); } catch { } return; }\r\n\r\n if (referenceNode && isNodeInRange(open, close, referenceNode)) {\r\n referenceNode = close.nextSibling;\r\n }\r\n\r\n const frag = (dom.createDocumentFragment && dom.createDocumentFragment()) || container.ownerDocument?.createDocumentFragment?.() || (function () { try { return document.createDocumentFragment(); } catch { return null as any; } })();\r\n if (!frag) {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { container.insertBefore(current, referenceNode); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n return;\r\n }\r\n\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n try { (frag as any).appendChild(current); } catch { }\r\n if (current === close) break;\r\n current = after;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX119', undefined);\r\n }\r\n try { container.insertBefore(frag as any, referenceNode); } catch { }\r\n}\r\n\r\nfunction isNodeInRange(open: Node, close: Node, test: Node): boolean {\r\n let current: Node | null = open;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n if (current === test) return true;\r\n if (current === close) break;\r\n current = current.nextSibling;\r\n }\r\n if (maxIterations <= 0) {\r\n reportError('MJX120', undefined);\r\n }\r\n return false;\r\n}\r\n\r\nfunction detachComponentDom(control: ComponentBase): void {\r\n const node = control.element as unknown as Node | null;\r\n if (!node) return;\r\n const opts: any = (control as any).motif.options;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n if (!node.parentNode) return;\r\n const close = (opts?.closeFragment as Node | undefined) || null;\r\n const cache: DocumentFragment = opts.cache ?? (opts.cache = dom.createDocumentFragment());\r\n let current: Node | null = node;\r\n let maxIterations = 10000;\r\n while (current && maxIterations-- > 0) {\r\n const after: Node | null = current.nextSibling;\r\n cache.appendChild(current);\r\n if (!close || current === close) break;\r\n current = after;\r\n }\r\n return;\r\n }\r\n if (node.parentNode) {\r\n node.parentNode.removeChild(node);\r\n return;\r\n }\r\n const placeholder = opts?.placeholder as Node | undefined;\r\n if (placeholder && placeholder.parentNode) placeholder.parentNode.removeChild(placeholder);\r\n}\r\n\r\ninterface PendingLeave {\r\n promise: Promise<void>;\r\n finish: () => void;\r\n}\r\n\r\nfunction runLeaveThenDetach(control: ComponentBase, notify: () => void): Promise<void> {\r\n let resolveDone: () => void = () => { };\r\n const promise = new Promise<void>(resolve => { resolveDone = resolve; });\r\n let pending = 1;\r\n let finished = false;\r\n const finish = () => {\r\n if (finished) return;\r\n finished = true;\r\n if ((control as any).__pendingLeave?.promise === promise) delete (control as any).__pendingLeave;\r\n if (!control.isDisposed) {\r\n try {\r\n detachComponentDom(control);\r\n } catch (error) {\r\n reportError('MJX117', error);\r\n }\r\n notifyDeactivated(control);\r\n }\r\n try {\r\n notify();\r\n } catch (error) {\r\n reportError('MJX118', error);\r\n }\r\n resolveDone();\r\n };\r\n const arrive = () => {\r\n pending--;\r\n if (pending === 0) finish();\r\n };\r\n const visit = (c: ComponentBase) => {\r\n if (!c || c.isDisposed || !c.element || !c.isVisible || c.isWait) return;\r\n const node = c.element as unknown as Node;\r\n if (node.nodeType === Node.COMMENT_NODE) {\r\n c.controls.items.forEach(visit);\r\n return;\r\n }\r\n if (node.nodeType !== Node.ELEMENT_NODE) return;\r\n pending++;\r\n let arrived = false;\r\n const once = () => {\r\n if (arrived) return;\r\n arrived = true;\r\n arrive();\r\n };\r\n try {\r\n const opts: any = c.motif.options;\r\n if (!opts[TRANSITION_SLOT] && !opts.transitionOut) {\r\n once();\r\n return;\r\n }\r\n opts.transition.leaveTransition(once);\r\n } catch {\r\n once();\r\n }\r\n };\r\n (control as any).__pendingLeave = { promise, finish } as PendingLeave;\r\n visit(control);\r\n arrive();\r\n return promise;\r\n}\r\n","import { ComponentBase, IBaseProp } from \".\";\nimport { Component, assertLoadedComponent, resolveToComponent, unwrapModule } from \"./Component\";\nimport { Frame } from \"./Frame\";\nimport { disposableCore } from \"../disposable\";\nimport { motifError, reportError } from \"../common/diagnostics\";\n\nexport interface LazyOptions<T = any> { \n Loaderview?: ComponentBase; \n Placeholderview?: ComponentBase; \n Fallbackview?: ComponentBase;\n minDelayMs?: number;\n onError?: (error: unknown) => void;\n mapResult?: (result: T) => any; \n timeoutMs?: number;\n signal?: AbortSignal;\n retry?: number | LazyRetryOptions;\n onRetry?: (attempt: number, error: unknown) => void;\n}\n\nexport interface LazyRetryOptions {\n count: number;\n delayMs?: number;\n whenOnline?: boolean;\n}\n\nfunction normalizeRetry(retry: LazyOptions['retry']): Required<LazyRetryOptions> {\n if (typeof retry === 'number') return { count: Math.max(0, Math.floor(retry)), delayMs: 500, whenOnline: true };\n if (retry && typeof retry === 'object') {\n return {\n count: Math.max(0, Math.floor(retry.count || 0)),\n delayMs: Math.max(0, retry.delayMs ?? 500),\n whenOnline: retry.whenOnline !== false,\n };\n }\n return { count: 0, delayMs: 0, whenOnline: false };\n}\n\nfunction defaultMapper(result: any) {\n return unwrapModule(result);\n}\n\n\n\nexport function Lazy<T>(props: { caller: () => Promise<T>, options?: LazyOptions<T> }): Component;\nexport function Lazy(props: any): Component;\nexport function Lazy(props: any): Component {\n const opts: LazyOptions<any> = (props && props.options) || {};\n const frame = new Frame();\n const timers = new Set<ReturnType<typeof setTimeout>>();\n const trackTimer = (id: ReturnType<typeof setTimeout>) => { try { timers.add(id); } catch { } return id; };\n const clearAllTimers = () => {\n try { timers.forEach(id => { try { clearTimeout(id); } catch { } }); } catch { }\n try { timers.clear(); } catch { }\n };\n try { frame.motif.register(disposableCore.toDisposable(() => clearAllTimers())); } catch { }\n const initial = opts.Placeholderview ?? opts.Loaderview;\n if (initial != null) {\n frame.navigate(resolveToComponent(initial));\n }\n\n const attemptLoad = () => {\n if (!opts.timeoutMs && !opts.signal) {\n return props.caller();\n }\n const parts: Promise<any>[] = [props.caller()];\n if (opts.timeoutMs && opts.timeoutMs > 0) {\n parts.push(new Promise<any>((_, reject) => {\n const id = trackTimer(setTimeout(() => reject(motifError('MJX110', opts.timeoutMs!)), opts.timeoutMs));\n parts[0].finally(() => { try { clearTimeout(id); timers.delete(id); } catch { } }).catch(() => { /* noop */ });\n if (opts.signal) {\n const onAbortClear = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\n try { opts.signal.addEventListener(\"abort\", onAbortClear, { once: true }); } catch { }\n }\n }));\n }\n if (opts.signal) {\n parts.push(new Promise<any>((_, reject) => {\n if (opts.signal!.aborted) {\n reject(motifError('MJX111'));\n return;\n }\n const onAbort = () => {\n opts.signal!.removeEventListener(\"abort\", onAbort);\n clearAllTimers();\n reject(motifError('MJX111'));\n };\n opts.signal!.addEventListener(\"abort\", onAbort, { once: true });\n }));\n }\n return Promise.race(parts);\n };\n\n const retry = normalizeRetry(opts.retry);\n const cleanups = new Set<() => void>();\n try { frame.motif.register(disposableCore.toDisposable(() => { cleanups.forEach(c => { try { c(); } catch { } }); cleanups.clear(); })); } catch { }\n\n const waitBeforeRetry = (attempt: number): Promise<boolean> => new Promise<boolean>(resolve => {\n let settled = false;\n const finish = (go: boolean) => {\n if (settled) return;\n settled = true;\n cleanups.delete(cancel);\n try { if (onlineHandler) window.removeEventListener('online', onlineHandler); } catch { }\n try { if (id !== undefined) { clearTimeout(id); timers.delete(id); } } catch { }\n try { opts.signal?.removeEventListener('abort', onAbort); } catch { }\n resolve(go);\n };\n const cancel = () => finish(false);\n const onAbort = () => finish(false);\n let onlineHandler: (() => void) | null = null;\n let id: ReturnType<typeof setTimeout> | undefined = undefined;\n cleanups.add(cancel);\n try { opts.signal?.addEventListener('abort', onAbort, { once: true }); } catch { }\n const schedule = () => { id = trackTimer(setTimeout(() => finish(true), retry.delayMs * attempt)); };\n const offline = retry.whenOnline && typeof navigator !== 'undefined' && navigator.onLine === false && typeof window !== 'undefined';\n if (offline) {\n onlineHandler = () => {\n try { window.removeEventListener('online', onlineHandler!); } catch { }\n onlineHandler = null;\n schedule();\n };\n window.addEventListener('online', onlineHandler);\n } else {\n schedule();\n }\n });\n\n const loadWithRetry = async (): Promise<any> => {\n let attempt = 0;\n for (; ;) {\n try {\n return await attemptLoad();\n } catch (err) {\n if (opts.signal?.aborted || (frame as any).isDisposed || attempt >= retry.count) throw err;\n attempt++;\n try { opts.onRetry?.(attempt, err); } catch { }\n const go = await waitBeforeRetry(attempt);\n if (!go || opts.signal?.aborted || (frame as any).isDisposed) throw err;\n }\n }\n };\n\n const loadPromise = retry.count > 0 ? loadWithRetry() : attemptLoad();\n\n const startTs = Date.now();\n\n const fail = (err: any) => {\n try { opts.onError?.(err); } catch { /* swallow */ }\n if (opts.signal?.aborted) return;\n if (opts.Fallbackview != null) {\n frame.navigate(resolveToComponent(opts.Fallbackview));\n } else {\n reportError('MJX126', err);\n try { frame.motif.clear().catch(() => { }); } catch { }\n }\n };\n\n const place = (target: any) => {\n let component: any;\n try {\n component = resolveToComponent(target);\n assertLoadedComponent(component);\n } catch (err) {\n fail(err);\n return;\n }\n frame.navigate(component);\n };\n\n loadPromise\n .then((result: any) => {\n if (opts.signal?.aborted) { return; }\n const mapper = opts.mapResult ?? defaultMapper;\n const target = mapper(result);\n const elapsed = Date.now() - startTs;\n const minDelay = Math.max(0, (opts.minDelayMs ?? 0));\n const remaining = Math.max(0, minDelay - elapsed);\n if (remaining > 0) {\n const id = trackTimer(setTimeout(() => {\n if (!opts.signal?.aborted) {\n place(target);\n }\n }, remaining));\n if (opts.signal) {\n const onAbortClearDelay = () => { try { clearTimeout(id); timers.delete(id); } catch { } };\n try { opts.signal.addEventListener(\"abort\", onAbortClearDelay, { once: true }); } catch { }\n }\n } else {\n place(target);\n }\n })\n .catch(fail);\n\n return frame;\n}\n","import { ComponentBase, IDisposeOptions } from \"./componentBase\";\nimport { resolveComponent } from \"./resolveComponent\";\nimport { Lazy } from \"./Lazy\";\nimport { reportError } from \"../common/diagnostics\";\n\nexport interface NavigationHost extends ComponentBase {\n current: ComponentBase | ComponentBase[] | null;\n previouspage: any;\n isBusy: boolean;\n _latestNavigateId: number;\n _navLock: Promise<void>;\n _navAbort?: AbortController;\n _navPending?: number;\n}\n\nexport function hasOwnTransition(component: ComponentBase | null | undefined, phase: 'enter' | 'leave'): boolean {\n const options: any = component?.motif?.options;\n if (!options) return false;\n const transition = options.transition;\n return !!((phase === 'enter' ? options.transitionIn : options.transitionOut) || (transition && (transition.classes || (transition.name && transition.name.length > 0))));\n}\n\nfunction playsLeave(target: ComponentBase | ComponentBase[] | null): boolean {\n if (!target) return false;\n if (Array.isArray(target)) return target.some(t => !!t && !t.isDisposed && hasOwnTransition(t, 'leave'));\n return !target.isDisposed && hasOwnTransition(target, 'leave');\n}\n\nexport function cancelAnimationsDeep(target: any): void {\n if (!target || target.isDisposed) return;\n if (Array.isArray(target)) {\n target.forEach(cancelAnimationsDeep);\n return;\n }\n try { target.motif.options?.transition?.activeCssCancel?.(); } catch { }\n try {\n const anims = target.motif.options?.transition?.activeAnimations;\n if (Array.isArray(anims)) {\n anims.forEach((anim: any) => {\n try {\n if (anim && typeof anim.cancel === 'function') {\n anim.cancel();\n }\n } catch { }\n });\n anims.length = 0;\n }\n } catch { }\n try {\n if (target.controls && target.controls.items) {\n for (const child of target.controls.items) {\n cancelAnimationsDeep(child);\n }\n }\n } catch { }\n}\n\nexport async function disposeNavigationTarget(target: ComponentBase | ComponentBase[] | null, options: IDisposeOptions = { deep: true }): Promise<void> {\n if (!target) return;\n const list = Array.isArray(target) ? target : [target];\n await Promise.all(list.map(async (xr) => {\n if (!xr || xr.isDisposed) return;\n try {\n await xr.dispose(options);\n } catch (err) {\n reportError('MJX115', err);\n }\n }));\n}\n\nexport async function navigateHost(host: NavigationHost, page: ComponentBase | ComponentBase[], keepOldControl: boolean = false): Promise<void> {\n if (host.isDisposed || page == null) return;\n if (host.current !== null && host.current === (page as any)) return;\n\n const navigateId = ++host._latestNavigateId;\n host.isBusy = true;\n\n const complete = (value: any) => {\n if (host.isDisposed) return;\n if (navigateId !== host._latestNavigateId) return;\n const xP = resolveComponent(value);\n host.current = xP;\n try {\n if (Array.isArray(xP)) {\n host.controls.add(...xP);\n } else {\n host.controls.add(xP);\n }\n } catch (error) {\n reportError('MJX114', error);\n }\n host.isBusy = false;\n host.previouspage = xP;\n };\n\n if (!(host._navPending ?? 0) && host.current === null && !(page instanceof Promise)) {\n try {\n complete(page);\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n return;\n }\n\n host._navPending = (host._navPending ?? 0) + 1;\n const prevLock = host._navLock ?? Promise.resolve();\n host._navLock = (async () => {\n try {\n await prevLock;\n\n try { host._navAbort?.abort(); } catch { }\n host._navAbort = new AbortController();\n\n const oldPage = host.current;\n if (oldPage && !keepOldControl) {\n cancelAnimationsDeep(oldPage);\n cancelAnimationsDeep(host);\n const animated = playsLeave(oldPage);\n const leaving = disposeNavigationTarget(oldPage);\n if (animated) {\n leaving.catch(() => { });\n } else {\n await leaving;\n }\n }\n\n try {\n if (page instanceof Promise) {\n const caller = () => page;\n const lazyFrame = Lazy({ caller, options: { signal: host._navAbort?.signal } as any });\n complete(lazyFrame);\n } else {\n complete(page);\n }\n } catch (error) {\n reportError('MJX114', error);\n host.isBusy = false;\n }\n } finally {\n host._navPending = Math.max(0, (host._navPending ?? 1) - 1);\n }\n })();\n await host._navLock;\n}\n","import { dom } from \"../core\";\nimport { Component } from \"../\";\nimport { ComponentBase, IDisposeOptions } from \"../\";\nimport { Lazy, LazyOptions } from \"../\";\nimport { disposeNavigationTarget, navigateHost } from \"./navigation\";\n\n\nexport class Frame extends Component {\n public current: ComponentBase | ComponentBase[] | null = null;\n public _latestNavigateId = 0;\n public _navLock: Promise<void> = Promise.resolve();\n public _navAbort?: AbortController;\n isBusy: boolean = false;\n constructor(props?: any) {\n super(dom.createComment(''), props);\n if (props && props.childs && Array.isArray(props.childs) && props.childs.length > 0) {\n this.controls.add(props.childs);\n }\n }\n public async dispose(options: IDisposeOptions = { deep: true }) {\n await disposeNavigationTarget(this.current, options);\n await super.dispose(options);\n }\n public async flush() {\n await disposeNavigationTarget(this.current);\n }\n protected override async _clear() {\n await disposeNavigationTarget(this.current);\n }\n previouspage: any;\n public async navigate(page: ComponentBase | ComponentBase[], keepOldControl: boolean = false) {\n await navigateHost(this, page, keepOldControl);\n }\n\n public async navigateLazy<T>(caller: () => Promise<T>, options?: LazyOptions<T>, keepOldControl: boolean = false) {\n const lazyFrame = Lazy({ caller, options });\n await this.navigate(lazyFrame, keepOldControl);\n }\n}\n","import { ReactiveEngine } from \"../ReactiveEngine\"\r\nimport { Flags, addArrayStack, closeSetup, hasOwn, isIntrinsicSymbol, isObject, pauseTracking, resetTracking, setupActive } from \"../common\"\r\nimport { track } from \"../reactivity-core\"\r\n\r\nconst ARRAY_MUTATORS = new Set(['push', 'pop', 'shift', 'unshift', 'splice', 'reverse', 'sort'])\r\n\r\nexport const NOT_META = Symbol('')\r\ntype MetaReader = (engine: ReactiveEngine, target: any, receiver: any) => unknown\r\n\r\nconst metaReaders = new Map<symbol, MetaReader>([\r\n [Flags.IS_REACTIVE, () => true],\r\n [Flags.IS_READONLY, engine => engine.isReadonly],\r\n [Flags.IS_SUPERFICIAL, engine => engine.superficial],\r\n [Flags.GET_SETUP, (_engine, target) => target],\r\n [Flags.RAW, (engine, target, receiver) => engine.ReactiveMap().get(target) === receiver ? target : NOT_META],\r\n])\r\n\r\nexport function readMeta(engine: ReactiveEngine, target: any, key: unknown, receiver: any): unknown {\r\n if (typeof key !== 'symbol') return NOT_META\r\n const reader = metaReaders.get(key)\r\n return reader === undefined ? NOT_META : reader(engine, target, receiver)\r\n}\r\n\r\nexport function createGetter(engine: ReactiveEngine) {\r\n return function (target: any, p: any, receiver: any) {\r\n const meta = readMeta(engine, target, p, receiver)\r\n if (meta !== NOT_META) return meta\r\n\r\n if (Array.isArray(target) && !engine.isReadonly) {\r\n const patched = engine.arrayMethods.get\r\n if (hasOwn(patched, p)) {\r\n const method = patched[p]\r\n if (ARRAY_MUTATORS.has(p)) addArrayStack(p)\r\n else track(target, p)\r\n return method\r\n }\r\n }\r\n if (setupActive) {\r\n pauseTracking();\r\n engine.track(target, p);\r\n closeSetup();\r\n resetTracking();\r\n }\r\n\r\n const value = Reflect.get(target, p, receiver)\r\n if (p === '__proto__' || isIntrinsicSymbol(p)) return value\r\n\r\n if (!engine.isReadonly) track(target, p)\r\n if (engine.superficial || !isObject(value)) return value\r\n return engine.reactive(value)\r\n }\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\";\nimport { ITERATE_KEY, getRaw, hasOwn, isNumericKey, isReadonly, removeArrayStack } from \"../common\";\nimport { trigger } from \"../reactivity-core\";\n\n\nexport function createSetter(engine: ReactiveEngine) {\n return function (target: any, p: any, newValue: any, receiver: any) {\n if (isReadonly(target)) {\n return false;\n }\n\n const isArray = Array.isArray(target);\n const oldValue = (target as any)[p];\n const oldLength = isArray ? target.length : 0;\n const numeric = isArray && isNumericKey(p);\n const hadKey = numeric ? Number(p) < oldLength : hasOwn(target, p);\n\n const res = Reflect.set(target, p, newValue, receiver);\n\n if (engine.onValueChanged) {\n try { engine.onValueChanged({ raw: target, proxy: receiver }, p); } catch { }\n }\n\n if (getRaw(target) !== getRaw(receiver)) {\n return res;\n }\n if (!isArray && hadKey && Object.is(newValue, oldValue)) {\n return res;\n }\n\n trigger(target, p);\n if (!isArray && !hadKey) {\n trigger(target, ITERATE_KEY);\n }\n if (numeric && !hadKey) {\n trigger(target, 'length');\n }\n if (isArray && p === 'length') {\n const newLength = Number(newValue);\n for (let i = newLength; i < oldLength; i++) {\n trigger(target, String(i));\n }\n }\n removeArrayStack();\n return res;\n }\n}\n","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { ITERATE_KEY, hasOwn, isIntrinsicSymbol, pauseTracking, resetTracking } from \"../common\";\r\nimport { track, trigger } from \"../reactivity-core\";\r\n\r\nexport function createOwn(engine: ReactiveEngine) {\r\n return function ownKeys(target: any) {\r\n const shapeKey = Array.isArray(target) ? 'length' : ITERATE_KEY;\r\n track(target, shapeKey);\r\n return Reflect.ownKeys(target);\r\n }\r\n}\r\n\r\nexport function createHas(engine: ReactiveEngine) {\r\n return function has(target: any, p: any) {\r\n const found = Reflect.has(target, p);\r\n if (isIntrinsicSymbol(p)) return found;\r\n track(target, p);\r\n return found;\r\n }\r\n}\r\n\r\nexport function createDelete(engine: ReactiveEngine) {\r\n return function deleteProperty(target: any, p: any) {\r\n pauseTracking()\r\n try {\r\n const isOwned = hasOwn(target, p);\r\n const result = Reflect.deleteProperty(target, p);\r\n if (isOwned) {\r\n if (Array.isArray(target)) {\r\n trigger(target, 'length');\r\n } else {\r\n trigger(target, p);\r\n trigger(target, ITERATE_KEY);\r\n }\r\n }\r\n return result\r\n } finally { \r\n resetTracking();\r\n }\r\n }\r\n}","import { ReactiveEngine } from \"../ReactiveEngine\";\r\nimport { getRaw, pauseTracking, resetTracking } from \"../common\";\r\n\r\ntype PatchKind = 'lookup' | 'order' | 'join' | 'structural';\r\n\r\nconst PATCHED_ARRAY_METHODS: ReadonlyArray<readonly [string, PatchKind]> = [\r\n ['includes', 'lookup'],\r\n ['indexOf', 'lookup'],\r\n ['lastIndexOf', 'lookup'],\r\n ['sort', 'order'],\r\n ['concat', 'join'],\r\n ['push', 'structural'],\r\n ['pop', 'structural'],\r\n ['shift', 'structural'],\r\n ['unshift', 'structural'],\r\n ['splice', 'structural'],\r\n ['reverse', 'structural'],\r\n];\r\n\r\nconst isLookupMiss = (outcome: unknown) => outcome === false || outcome === -1;\r\n\r\nexport class ArrayMethods {\r\n constructor(public engine: ReactiveEngine) { }\r\n get: Record<string, Function> = this.createArrayMethods();\r\n\r\n createArrayMethods(): Record<string, Function> {\r\n const table: Record<string, Function> = {};\r\n for (const [name, kind] of PATCHED_ARRAY_METHODS) {\r\n table[name] = this.patch(name, kind);\r\n }\r\n return table;\r\n }\r\n\r\n private patch(name: string, kind: PatchKind): Function {\r\n const owner = this;\r\n switch (kind) {\r\n case 'lookup':\r\n return function (this: unknown[], ...needles: any[]) {\r\n const source = getRaw(this) as any;\r\n owner.engine.track(source, 'length');\r\n const direct = source[name](...needles);\r\n if (!isLookupMiss(direct)) return direct;\r\n return source[name](...needles.map(needle => getRaw(needle)));\r\n };\r\n case 'order':\r\n return function (this: unknown[], ...args: any[]) {\r\n const source = getRaw(this) as any;\r\n const size = this.length;\r\n for (let index = 0; index < size; index++) {\r\n owner.engine.track(source, String(index));\r\n }\r\n const sorted = source[name].apply(this, args);\r\n owner.engine.track(source, name);\r\n return sorted;\r\n };\r\n case 'join':\r\n return function (this: unknown[], ...args: any[]) {\r\n return Array.prototype.concat.apply(this, args);\r\n };\r\n default:\r\n return function (this: unknown[], ...args: any[]) {\r\n pauseTracking();\r\n const source = getRaw(this) as any;\r\n try {\r\n return source[name].apply(this, args);\r\n } finally {\r\n resetTracking();\r\n }\r\n };\r\n }\r\n }\r\n\r\n}\r\n","import { ReactiveEngine } from \"../ReactiveEngine\";\nimport { ITERATE_KEY, getRaw, hasOwn, isObject } from \"../common\";\nimport { track, trigger } from \"../reactivity-core\";\nimport { NOT_META, readMeta } from \"./getter\";\n\ntype AnyCollection = Map<any, any> | Set<any>;\n\nconst KEYS_KEY = Symbol('');\n\nfunction changed(target: object, key: unknown, keysChanged: boolean) {\n trigger(target, key as any);\n trigger(target, ITERATE_KEY);\n if (keysChanged) trigger(target, KEYS_KEY);\n}\n\nfunction lookupKey(target: AnyCollection, key: unknown) {\n return target.has(key) ? key : getRaw(key);\n}\n\nfunction wrapIterator(source: Iterator<any>, convert: (item: any) => any): IterableIterator<any> {\n return {\n next() {\n const step = source.next();\n return step.done ? step : { value: convert(step.value), done: false };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n}\n\nfunction createCollectionMethods(engine: ReactiveEngine): Record<PropertyKey, Function> {\n const wrap = (value: unknown) => isObject(value) ? engine.reactive(value) : value;\n const wrapEntry = (target: AnyCollection) =>\n target instanceof Map\n ? ([key, value]: [unknown, unknown]) => [key, wrap(value)]\n : ([value]: [unknown, unknown]) => { const item = wrap(value); return [item, item]; };\n\n return {\n get(this: Map<any, any>, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n track(target, found as any);\n return wrap(target.get(found));\n },\n has(this: AnyCollection, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n track(target, found as any);\n return target.has(found);\n },\n set(this: Map<any, any>, key: unknown, value: unknown) {\n const target = getRaw(this);\n const stored = lookupKey(target, key);\n const raw = getRaw(value);\n const existed = target.has(stored);\n const previous = target.get(stored);\n target.set(stored, raw);\n if (!existed) changed(target, stored, true);\n else if (!Object.is(previous, raw)) changed(target, stored, false);\n return this;\n },\n add(this: Set<any>, value: unknown) {\n const target = getRaw(this);\n const stored = lookupKey(target, value);\n if (!target.has(stored)) {\n target.add(stored);\n changed(target, stored, true);\n }\n return this;\n },\n delete(this: AnyCollection, key: unknown) {\n const target = getRaw(this);\n const found = lookupKey(target, key);\n const removed = target.delete(found);\n if (removed) changed(target, found, true);\n return removed;\n },\n clear(this: AnyCollection) {\n const target = getRaw(this);\n if (target.size === 0) return;\n const keys = Array.from(target.keys());\n target.clear();\n for (const key of keys) trigger(target, key);\n trigger(target, ITERATE_KEY);\n trigger(target, KEYS_KEY);\n },\n forEach(this: AnyCollection, callback: (value: any, key: any, collection: any) => void, thisArg?: unknown) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n const owner = this;\n const isMap = target instanceof Map;\n target.forEach((value: any, key: any) => {\n const item = wrap(value);\n callback.call(thisArg, item, isMap ? key : item, owner);\n });\n },\n keys(this: AnyCollection) {\n const target = getRaw(this);\n if (target instanceof Map) {\n track(target, KEYS_KEY);\n return target.keys();\n }\n track(target, ITERATE_KEY);\n return wrapIterator(target.keys(), wrap);\n },\n values(this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return wrapIterator(target.values(), wrap);\n },\n entries(this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return wrapIterator(target.entries(), wrapEntry(target));\n },\n [Symbol.iterator](this: AnyCollection) {\n const target = getRaw(this);\n track(target, ITERATE_KEY);\n return target instanceof Map\n ? wrapIterator(target.entries(), wrapEntry(target))\n : wrapIterator(target.values(), wrap);\n },\n };\n}\n\nexport function createCollectionHandler(engine: ReactiveEngine): ProxyHandler<AnyCollection> {\n const methods = createCollectionMethods(engine);\n return {\n get(target, key, receiver) {\n const meta = readMeta(engine, target, key, receiver);\n if (meta !== NOT_META) return meta;\n if (key === 'size') {\n track(target, ITERATE_KEY);\n return target.size;\n }\n if ((typeof key === 'string' || key === Symbol.iterator) && hasOwn(methods, key) && key in target) {\n return methods[key as any];\n }\n const value = Reflect.get(target, key, target);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n };\n}\n","\r\nimport { TargetType, UnwrapValueRefs, getRaw, getTargetType, isObject, pauseTracking, resetTracking, enableTracking } from \"./common\";\r\nimport { createGetter } from \"./handlers/getter\";\r\nimport { createSetter } from \"./handlers/setter\";\r\nimport { createDelete, createHas, createOwn } from \"./handlers/orhers\";\r\nimport { ArrayMethods } from \"./handlers/ArrayMethods\";\r\nimport { createCollectionHandler } from \"./handlers/collections\";\r\nimport { LinkedList } from \"../common/LinkedList\";\r\nimport { track, trigger } from \"./reactivity-core\";\r\nexport const ReactiveEngineMapper = new WeakSet<ReactiveEngine>();\r\n\r\nconst AllreactiveMap: WeakMap<any, any> = new WeakMap();\r\nfunction armgetter() { return AllreactiveMap; }\r\n\r\n\r\nexport class ReactiveEngine {\r\n _gci: any;\r\n public startGc(_intervalMs: number = 10000) { /* no-op */ }\r\n public stopGc() { if (this._gci) { try { clearInterval(this._gci); } catch { } this._gci = undefined; } }\r\n constructor() {\r\n ReactiveEngineMapper.add(this);\r\n this.startGc();\r\n }\r\n \r\n DisposeMapper = new LinkedList();\r\n arrayTriggerCache = new Map<any, { method: string, key: any, value: any }>();\r\n ReactiveMap: () => WeakMap<any, any> = () => armgetter();\r\n activeCallback: any;\r\n isReadonly: boolean = false;\r\n superficial: boolean = false;\r\n arrayMethods: ArrayMethods = new ArrayMethods(this);\r\n arrayHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n }\r\n deepHandler = {\r\n get: createGetter(this),\r\n set: createSetter(this),\r\n has: createHas(this),\r\n deleteProperty: createDelete(this),\r\n ownKeys: createOwn(this)\r\n } as ProxyHandler<any>\r\n collectionHandler = createCollectionHandler(this) as ProxyHandler<any>\r\n reactive<T>(model: T): UnwrapValueRefs<T> {\r\n\r\n var self = this;\r\n if (!isObject(model)) {\r\n model = { value: model } as any;\r\n }\r\n const targetType = getTargetType(model);\r\n if (targetType === TargetType.SYSTEM || TargetType.INVALID) {\r\n return model as any\r\n }\r\n\r\n let existingProxy = AllreactiveMap.get(model)\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n existingProxy = AllreactiveMap.get(getRaw(model))\r\n if (existingProxy) {\r\n return existingProxy as any\r\n }\r\n // if (targetType === TargetType.INVALID) {\r\n if (targetType === TargetType.COLLECTION) {\r\n var proxy = new Proxy(model, this.collectionHandler);\r\n AllreactiveMap.set(model, proxy);\r\n return proxy;\r\n } else if (Array.isArray(model)) {\r\n var proxy = new Proxy(model, this.arrayHandler);\r\n // var original = Object.getPrototypeOf(proxy);\r\n // original[\"copy\"] = () => { return model; }\r\n // return \"copied\";\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n } else {\r\n var proxy = new Proxy(model, this.deepHandler);\r\n AllreactiveMap.set(model, proxy);\r\n // try { this.startGc(); } catch { }\r\n return proxy;\r\n }\r\n }\r\n\r\n clearModel(model: any): void {\r\n if (model != null && model != undefined) {\r\n Object.keys(model).forEach((key) => {\r\n if (typeof model[key] === 'object') {\r\n if (AllreactiveMap.has(model[key]) || AllreactiveMap.has(getRaw(model[key]))) {\r\n this.clearModel(model[key])\r\n }\r\n }\r\n AllreactiveMap.delete(getRaw(model[key]));\r\n AllreactiveMap.delete(model[key]);\r\n })\r\n AllreactiveMap.delete(getRaw(model));\r\n AllreactiveMap.delete(model);\r\n }\r\n }\r\n\r\n track(model: any, key: any) {\r\n track(model, key);\r\n }\r\n trigger(model: any, key: any, value: any) {\r\n trigger(model, key);\r\n }\r\n ArrayTrigger(target: any, key: any, ...args: any) {\r\n this.trigger(target, key, args);\r\n }\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any;\r\n toRaw(item: any) {\r\n return JSON.parse(JSON.stringify(this.deepClone(item)));\r\n }\r\n deepClone(item: any) {\r\n var self = this;\r\n if (!item) { return item; }\r\n var types = [Number, String, Boolean],\r\n result;\r\n types.forEach(function (type) {\r\n if (item instanceof type) {\r\n result = type(item);\r\n }\r\n });\r\n\r\n if (typeof result == \"undefined\") {\r\n if (Object.prototype.toString.call(item) === \"[object Array]\") {\r\n result = [];\r\n item.forEach(function (child: any, index: any, array: any[]) {\r\n result[index] = self.deepClone(child);\r\n });\r\n } else if (typeof item == \"object\") {\r\n if (item.nodeType && typeof item.cloneNode == \"function\") {\r\n result = item.cloneNode(true);\r\n } else if (!item.prototype) {\r\n if (item instanceof Date) {\r\n result = new Date(item);\r\n } else {\r\n result = <any>{};\r\n for (var i in item) {\r\n result[i] = self.deepClone(item[i]);\r\n }\r\n }\r\n } else {\r\n if (false && item.constructor) {\r\n result = new item.constructor();\r\n } else {\r\n result = item;\r\n }\r\n }\r\n } else {\r\n result = item;\r\n }\r\n }\r\n return result;\r\n }\r\n pauseTracking() {\r\n pauseTracking();\r\n }\r\n enableTracking() {\r\n enableTracking();\r\n }\r\n resetTracking() {\r\n resetTracking();\r\n }\r\n dispose() {\r\n var cnt = true;\r\n this.stopGc();\r\n while (cnt == true) {\r\n if (this.DisposeMapper.size > 0) {\r\n const element = this.DisposeMapper.pop();\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n AllreactiveMap.delete(element);\r\n } else {\r\n cnt = false\r\n }\r\n }\r\n this.DisposeMapper.clear();\r\n ReactiveEngineMapper.delete(this);\r\n // if (ApplicationService.current?.Options?.onReactiveEffectRun) {\r\n }\r\n\r\n}","\r\nimport { ReactiveEngine } from \"./ReactiveEngine\";\r\nimport { UnwrapValueRefs } from \"./common\";\r\nimport { Signal, Computed, LazyComputed } from \"./Signal\";\r\nexport const engine = new ReactiveEngine();\r\n\r\n\r\n/* @DEV-ONLY */ const reactiveRegistry: Array<{ name: string; value: any; type: string }> = [];\r\nconst isDevRegistryEnabled = () => {\r\n try {\r\n const g = globalThis as any;\r\n if (!g.__MOTIF_DEV__) return false;\r\n if (g.__MOTIF_STORE_REGISTRY__ !== reactiveRegistry) g.__MOTIF_STORE_REGISTRY__ = reactiveRegistry;\r\n return true;\r\n } catch { return false; }\r\n};\r\n\r\nexport function reactiveConfig(config: {\r\n onValueChanged?: (info: { raw: any, proxy: any }, key: any) => any\r\n onItemAdded?: (model: any, key: any, value: any) => any\r\n onItemRemoved?: (model: any, key: any, value: any) => any\r\n}) {\r\n engine.onValueChanged = config.onValueChanged;\r\n}\r\n\r\n// export * from \"./IStoreBinder\";\r\n\r\n// export function reactiveListeners(model?: any) {\r\n// if (model) {\r\n// /* @DEV-ONLY */return debugGetDeps(model) ?? new Map();\r\n// return debugGetDepMap();\r\n\r\n\r\nexport function reactive<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'reactive';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\nexport function useModel<T>(model: T): UnwrapValueRefs<T> {\r\n const result = engine.reactive<T>(model);\r\n\r\n\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = (model as any)?.constructor?.name || 'useModel';\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: result, type: 'reactive' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */ }\r\n/* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return result;\r\n}\r\n\r\n\r\n\r\nexport function clearModel(model: any) {\r\n return engine.clearModel(model);\r\n}\r\n\r\n \r\n\r\nexport function deepClone(item: any) {\r\n return engine.deepClone(item);\r\n}\r\n\r\nexport function createSignal<T>(initialValue: T): Signal<T> {\r\n const sig = new Signal(initialValue);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `signal_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: sig.value, type: 'signal' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return sig;\r\n}\r\n\r\nexport function createComputed<T>(getter: () => T): Computed<T> {\r\n const comp = new Computed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `computed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: comp.value, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */ } catch { }\r\n return comp;\r\n}\r\n\r\nexport function createLazyComputed<T>(getter: () => T): LazyComputed<T> {\r\n const comp = new LazyComputed(getter);\r\n /* @DEV-ONLY */ try {\r\n /* @DEV-ONLY */ if (isDevRegistryEnabled()) {\r\n /* @DEV-ONLY */ const name = `lazyComputed_${reactiveRegistry.length}`;\r\n /* @DEV-ONLY */ reactiveRegistry.push({ name, value: undefined, type: 'computed' });\r\n /* @DEV-ONLY */ if (reactiveRegistry.length > 200) reactiveRegistry.shift();\r\n /* @DEV-ONLY */}\r\n /* @DEV-ONLY */\r\n /* @DEV-ONLY */} catch { }\r\n return comp;\r\n}\r\n\r\nexport { ReactiveEngine };\r\nexport { configureReactivityLeakMonitor, track, trigger, effect, createScheduledEffect, asyncTracking, untracked } from \"./reactivity-core\";\r\nexport type { EffectFn, ScheduledEffect, AsyncTrackingToken } from \"./reactivity-core\";\r\nexport * from \"./Signal\";\r\nimport { untracked } from \"./reactivity-core\";\r\n","import type { ServiceLifetime } from \"./ServiceCollection\";\r\n\r\nexport const autoRegistry = new Map<any, { lifetime?: ServiceLifetime, deps?: any[] }>();\r\n","import { ServiceProvider } from \"./ServiceProvider\";\nimport { autoRegistry } from \"./autoRegistry\";\nimport { motifError, reportWarning } from \"../common/diagnostics\";\n\nexport type ServiceLifetime = 'transient' | 'singleton' | 'scoped';\n\nexport type ServiceImplementation<V> = V extends abstract new (...args: any[]) => any\n ? V\n : V extends (...args: any[]) => any\n ? 'Use { useValue: fn } or { useFactory: fn } to register a function'\n : V;\n\nfunction isConstructor(fn: Function): boolean {\n try {\n Reflect.construct(String, [], fn);\n return true;\n } catch {\n return false;\n }\n}\n\nexport interface ServiceDescriptor<T = any> {\n token: any;\n lifetime: ServiceLifetime;\n useClass?: new (...args: any[]) => T;\n useFactory?: (...args: any[]) => T | Promise<T>;\n useValue?: T;\n deps?: any[];\n}\n\nexport class ServiceCollection {\n private descriptors: Map<any, ServiceDescriptor> = new Map();\n\n public reset(): void {\n this.descriptors.clear();\n }\n public addTransient<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'transient');\n }\n public addSingleton<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'singleton');\n }\n public addScoped<V>(token: any, impl: ServiceImplementation<V>): void {\n this._add(token, impl, 'scoped');\n }\n\n private _add(token: any, impl: any, lifetime: ServiceLifetime) {\n const desc: ServiceDescriptor = { token, lifetime };\n if (impl && typeof impl === 'object' && (impl.useClass || impl.useFactory || Object.prototype.hasOwnProperty.call(impl, 'useValue') || Array.isArray(impl.deps))) {\n desc.useClass = impl.useClass;\n desc.useFactory = impl.useFactory;\n desc.useValue = impl.useValue;\n desc.deps = Array.isArray(impl.deps) ? impl.deps : undefined;\n try {\n const sources = [\n desc.useClass ? 'useClass' : null,\n desc.useFactory ? 'useFactory' : null,\n (desc.useValue !== undefined) ? 'useValue' : null\n ].filter(Boolean);\n if ((sources as any).length > 1) {\n reportWarning('MJX410', [this._tokenName(token), sources.join(', ')], { token });\n }\n if (impl.deps && !Array.isArray(impl.deps)) {\n reportWarning('MJX411', [this._tokenName(token)], { token });\n }\n } catch { /* no-op */ }\n if (desc.useValue && typeof (desc.useValue as any).then === 'function') {\n const p = desc.useValue as any;\n desc.useFactory = async () => await p;\n desc.useValue = undefined;\n }\n } else if (typeof impl === 'function') {\n if (!isConstructor(impl)) throw motifError('MJX413', this._tokenName(token));\n desc.useClass = impl as any;\n } else {\n if (impl && typeof (impl as any).then === 'function') {\n const p = impl as any;\n desc.useFactory = async () => await p;\n } else {\n desc.useValue = impl;\n }\n }\n this.descriptors.set(token, desc);\n }\n\n private _tokenName(token: any): string {\n if (typeof token === 'string') return token;\n if (typeof token === 'symbol') return token.toString();\n if (typeof token === 'function') return token.name || '[AnonymousClass]';\n return String(token);\n }\n\n public getDescriptor(token: any): ServiceDescriptor | null {\n const existing = this.descriptors.get(token);\n if (existing) return existing;\n const meta = autoRegistry.get(token);\n if (meta) {\n this._add(token, {\n useClass: token,\n deps: meta.deps,\n useValue: undefined,\n useFactory: undefined\n }, meta.lifetime || 'transient');\n return this.descriptors.get(token) || null;\n }\n return null;\n }\n\n /** `@Injectable` ile işaretlenmiş ama henüz kaydedilmemiş bir token var mı? */\n public canAutoRegister(token: any): boolean {\n return !this.descriptors.has(token) && autoRegistry.has(token);\n }\n\n public getService(token: any): ServiceDescriptor | null {\n return this.getDescriptor(token);\n }\n\n public buildServiceProvider(): ServiceProvider {\n return new ServiceProvider(this);\n }\n\n\n public has(token: any): boolean {\n return this.descriptors.has(token);\n }\n\n\n public remove(token: any): boolean {\n return this.descriptors.delete(token);\n }\n\n\n public replace<V>(token: any, impl: ServiceImplementation<V>, lifetime?: ServiceLifetime): void {\n const existing = this.descriptors.get(token);\n const lt: ServiceLifetime = lifetime ?? (existing?.lifetime ?? 'transient');\n this._add(token, impl, lt);\n }\n\n\n public tryAddTransient<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'transient');\n return true;\n }\n public tryAddSingleton<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'singleton');\n return true;\n }\n public tryAddScoped<V>(token: any, impl: ServiceImplementation<V>): boolean {\n if (this.descriptors.has(token)) return false;\n this._add(token, impl, 'scoped');\n return true;\n }\n\n public autoRegisterInjectables() {\n for (const [target, meta] of autoRegistry.entries()) {\n if (this.descriptors.has(target)) continue;\n this._add(target, {\n useClass: target,\n deps: meta.deps,\n useValue: undefined,\n useFactory: undefined\n }, meta.lifetime || \"transient\");\n }\n }\n}","import type { RouteItem } from \"../routing/RouteItem\";\r\nimport { reportWarning } from \"../common/diagnostics\";\r\n\r\ntype RouteNode = RouteItem & { childs?: RouteItem[] };\r\n\r\nfunction joinPaths(parent: string, child: string): string {\r\n const p = (parent || '').trim();\r\n const c = (child || '').trim();\r\n const base = p && p !== '/' && p.endsWith('/') ? p.slice(0, -1) : p;\r\n if (c === '/') {\r\n return base || '/';\r\n }\r\n const seg = c ? (c.startsWith('/') ? c : '/' + c) : '';\r\n if (!base || base === '/') {\r\n return seg || '/';\r\n }\r\n return base + seg;\r\n}\r\n\r\nexport function lintRoutes(routes: RouteNode[]): void {\r\n const seenFull: Map<string, number> = new Map();\r\n const seenAlias: Map<string, number> = new Map();\r\n\r\n function visit(node: RouteNode, parentPath: string, depth: number) {\r\n const rawPath = node.path ?? '';\r\n const path = String(rawPath);\r\n const full = parentPath === '' ? path : joinPaths(parentPath, path);\r\n const isDefaultSlash = depth > 0 && path.trim() === '/';\r\n const isEmptyPath = path.trim() === '';\r\n\r\n if (isEmptyPath) {\r\n reportWarning('MJX310', [parentPath || '/'], { parentPath, path });\r\n }\r\n\r\n if (depth > 0 && path.length > 0 && path !== '/' && !path.startsWith('/') && !path.startsWith('*')) {\r\n reportWarning('MJX311', [path, parentPath || '/'], { parentPath, path });\r\n }\r\n\r\n if (parentPath && full === parentPath) {\r\n if (!isDefaultSlash && !isEmptyPath) {\r\n reportWarning('MJX312', [full], { parentPath, childPath: path });\r\n }\r\n }\r\n\r\n const cnt = (seenFull.get(full) || 0) + 1;\r\n seenFull.set(full, cnt);\r\n if (cnt > 1) {\r\n if (!isDefaultSlash && !isEmptyPath) {\r\n reportWarning('MJX313', [full], { full });\r\n }\r\n }\r\n\r\n const aliases = node.alias == null ? [] : (Array.isArray(node.alias) ? node.alias : [node.alias]);\r\n for (const rawAlias of aliases) {\r\n const alias = String(rawAlias ?? '');\r\n if (depth > 0 && alias.length > 0 && alias !== '/' && !alias.startsWith('/') && !alias.startsWith('*')) {\r\n reportWarning('MJX314', [alias, parentPath || '/'], { parentPath, alias });\r\n }\r\n const aliasFull = parentPath === '' ? alias : joinPaths(parentPath, alias);\r\n if (aliasFull === full) {\r\n reportWarning('MJX315', [aliasFull], { full, alias });\r\n }\r\n const aliasCount = (seenAlias.get(aliasFull) || 0) + 1;\r\n seenAlias.set(aliasFull, aliasCount);\r\n if (aliasCount > 1) {\r\n reportWarning('MJX316', [aliasFull], { aliasFull });\r\n }\r\n }\r\n\r\n\r\n const children = (node as any).childs as RouteNode[] | undefined;\r\n if (Array.isArray(children)) {\r\n for (const ch of children) visit(ch, full, depth + 1);\r\n }\r\n }\r\n\r\n for (const r of routes) visit(r as RouteNode, '', 0);\r\n}\r","import { Application, Component } from '..';\r\nimport { getWarnings, on, ensureDevtoolsFlagInitialized, isRequestedByFlag, getRoutes } from './devbus';\r\nimport { lintRoutes } from './routeLinter';\r\nimport { reportWarning } from '../common/diagnostics';\r\nlet overlayHost: HTMLDivElement | null = null;\r\nlet visible = false;\r\n\r\nfunction render() {\r\n return;\r\n // if (!overlayHost) return;\r\n // const warnings = getWarnings();\r\n\r\n // const bar = document.createElement('div');\r\n // bar.style.cssText = 'display:flex; align-items:center; gap:8px; padding:6px 8px; background:#111; color:#fff; border-bottom:1px solid #333;';\r\n // const title = document.createElement('div');\r\n // title.style.fontWeight = '600';\r\n // const closeBtn = document.createElement('button');\r\n // closeBtn.style.cssText = 'margin-left:auto; background:#333; color:#fff; border:0; padding:2px 6px; cursor:pointer;';\r\n\r\n // const list = document.createElement('div');\r\n // list.style.cssText = 'max-height:40vh; overflow:auto; padding:8px; background:#181818; color:#ddd; font:12px/1.4 monospace;';\r\n // for (const w of warnings) {\r\n // const item = document.createElement('div');\r\n // item.style.cssText = 'padding:6px 8px; border:1px solid #333; border-radius:4px; margin-bottom:6px; background:#1f1f1f;';\r\n // const code = document.createElement('div');\r\n // code.style.cssText = 'color:#ffb86c; font-weight:700;';\r\n // const msg = document.createElement('div');\r\n // const det = document.createElement('pre');\r\n // det.textContent = w.details ? JSON.stringify(w.details, null, 2) : '';\r\n // det.style.cssText = 'white-space:pre-wrap; color:#aaa; margin:6px 0 0 0;';\r\n // if (w.details) item.appendChild(det);\r\n}\r\n\r\nexport function toggle(force?: boolean) {\r\n if (!overlayHost) return;\r\n visible = typeof force === 'boolean' ? force : !visible;\r\n overlayHost.style.display = visible ? 'block' : 'none';\r\n if (visible) render();\r\n}\r\n\r\nexport function initOverlayIfEnabled() {\r\n ensureDevtoolsFlagInitialized();\r\n if (!isRequestedByFlag()) return;\r\n try {\r\n if (!overlayHost) {\r\n overlayHost = document.createElement('div');\r\n overlayHost.style.cssText = 'position:fixed; left:12px; bottom:12px; right:12px; z-index:2147483647; background:#111; color:#fff; border:1px solid #333; border-radius:8px; box-shadow:0 4px 14px rgba(0,0,0,0.4); display:none;';\r\n document.body.appendChild(overlayHost);\r\n window.addEventListener('keydown', (e) => {\r\n try {\r\n if ((e.ctrlKey || e.metaKey) && e.key === '`') {\r\n e.preventDefault();\r\n toggle();\r\n }\r\n } catch { }\r\n });\r\n on((ev) => { if (ev.type === 'warning' && visible) render(); });\r\n }\r\n } catch { }\r\n}\r\n\r\nlet devBtn: HTMLButtonElement | null = null;\r\nlet inAppPanelMounted = false;\r\nfunction ensureInAppPanel() {\r\n if (inAppPanelMounted) return;\r\n try {\r\n (async () => {\r\n try {\r\n //var mod = await import(\"@motifjs/devtools-inapp\");\r\n\r\n //const mod = mountInAppPanel;//await (Function('return import(\"@motifjs/devtools-inapp\")')() as Promise<any>);\r\n\r\n //if (mod && typeof mod.mountInAppPanel === 'function') {\r\n } catch (err) {\r\n reportWarning('MJX611', [], err);\r\n }\r\n })();\r\n } catch { }\r\n}\r\nexport function initDevtoolsButton() {\r\n try {\r\n\r\n if (typeof document === 'undefined') return;\r\n if (devBtn) return;\r\n devBtn = document.createElement('button');\r\n devBtn.setAttribute('type', 'button');\r\n devBtn.setAttribute('aria-label', 'Open MotifJS DevTools');\r\n devBtn.textContent = 'Dev';\r\n devBtn.style.cssText = [\r\n 'position:fixed',\r\n 'right:12px',\r\n 'bottom:12px',\r\n 'z-index:2147483646',\r\n 'width:40px',\r\n 'height:40px',\r\n 'border-radius:20px',\r\n 'border:1px solid #333',\r\n 'background:#111',\r\n 'color:#fff',\r\n 'font-weight:700',\r\n 'cursor:pointer',\r\n 'box-shadow:0 4px 10px rgba(0,0,0,0.35)'\r\n ].join(';');\r\n devBtn.onclick = () => {\r\n try {\r\n (window as any).__motif_DEVTOOLS = true;\r\n } catch { }\r\n try {\r\n ensureDevtoolsFlagInitialized();\r\n initOverlayIfEnabled();\r\n toggle(true);\r\n ensureInAppPanel();\r\n try {\r\n const rs = getRoutes();\r\n if (rs) lintRoutes(rs);\r\n } catch { }\r\n } catch { }\r\n };\r\n document.body.appendChild(devBtn);\r\n try { const qs = location.search || ''; if (Application.main.isDevelopmentModeEnabled) ensureInAppPanel(); } catch { }\r\n } catch { }\r\n}\r","export class RouterViewRegistry {\r\n private static outlets: Map<string, Map<string, any>> = new Map();\r\n static register(name: string, scopeId: string, instance: any) {\r\n if (!this.outlets.has(name)) this.outlets.set(name, new Map());\r\n this.outlets.get(name)!.set(scopeId, instance);\r\n }\r\n static unregister(name: string, scopeId: string) {\r\n this.outlets.get(name)?.delete(scopeId);\r\n if (this.outlets.get(name)?.size === 0) this.outlets.delete(name);\r\n }\r\n static find(name: string, scopeId?: string): any | null {\r\n if (scopeId && this.outlets.get(name)?.has(scopeId)) {\r\n return this.outlets.get(name)!.get(scopeId);\r\n }\r\n const group = this.outlets.get(name);\r\n if (group && group.size > 0) return Array.from(group.values())[0];\r\n return null;\r\n }\r\n static findAll(name: string): any[] {\r\n return Array.from(this.outlets.get(name)?.values() ?? []);\r\n }\r\n}\r","import { Component } from \"..\";\r\nimport { ComponentBase, IBaseProp } from \"../\";\r\nimport { disposeNavigationTarget, navigateHost } from \"../component/navigation\";\r\nimport { RouterViewRegistry } from \"./RouterViewRegistry\";\r\n\r\nexport interface RouterViewProps extends IBaseProp<{ name?: string }> { }\r\nexport const RouterViewBuilt = Symbol.for(\"RouterView.built\");;\r\nexport class RouterView extends Component {\r\n constructor(props: IBaseProp<RouterViewProps>) {\r\n super(props);\r\n }\r\n public _navLock: Promise<void> = Promise.resolve();\r\n public _navAbort?: AbortController;\r\n public get __isRouterView(): boolean {\r\n return true;\r\n }\r\n public get scopeId(): string {\r\n let p: any = this.parent, ids: string[] = [];\r\n while (p) {\r\n ids.push(p.constructor?.name ?? '');\r\n p = p.parent;\r\n }\r\n return ids.join('>');\r\n }\r\n public disposingChilds = false;\r\n previouspage: any;\r\n current: ComponentBase | ComponentBase[] | null = null;\r\n _latestNavigateId = 0;\r\n isBusy: boolean = false;\r\n\r\n public async navigate(page: ComponentBase | ComponentBase[], keepOldControl: boolean = false) {\r\n await navigateHost(this, page, keepOldControl);\r\n }\r\n\r\n public async disposeTarget(target: ComponentBase | ComponentBase[] | null): Promise<void> {\r\n await disposeNavigationTarget(target);\r\n }\r\n public override onBuilt() {\r\n try {\r\n\r\n RouterViewRegistry.register(this.props.name ?? 'default', this.scopeId, this);\r\n let p: any = this.parent;\r\n while (p) {\r\n p.motif.trigger(RouterViewBuilt, this);\r\n p = p.parent;\r\n }\r\n } catch { /* ignore */ }\r\n }\r\n\r\n public override onDisposed() {\r\n try {\r\n RouterViewRegistry.unregister(this.props.name ?? 'default', this.scopeId);\r\n } catch { /* ignore */ }\r\n }\r\n\r\n}","\nimport type { ScrollMemoryOptions } from './common';\n\nexport interface ScrollViewport {\n scrollTop(): number;\n scrollTo(top: number): void;\n scrollToAnchor(id: string): boolean;\n}\n\nconst STORAGE_KEY = 'motifjs:scroll';\nconst DEFAULT_LIMIT = 60;\nconst DEFAULT_SETTLE_MS = 1200;\n\nconst USER_INPUT = ['wheel', 'touchstart', 'keydown', 'mousedown'] as const;\n\nexport class ScrollMemory {\n private readonly options: ScrollMemoryOptions;\n private readonly viewport: ScrollViewport;\n private readonly positions = new Map<string, number>();\n\n private currentKey = '';\n\n private visited = false;\n private restoring = false;\n private cancelFrame: (() => void) | null = null;\n private disarmAbort: (() => void) | null = null;\n private readonly offs: Array<() => void> = [];\n\n public locationAnchor = true;\n\n constructor(options: ScrollMemoryOptions = {}, viewport?: ScrollViewport) {\n this.options = options;\n this.viewport = viewport ?? (options.container ? containerViewport(options.container) : windowViewport());\n this.load();\n\n try {\n if (typeof history !== 'undefined' && 'scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n } catch { /* salt okunur bırakan gömülü tarayıcılar */ }\n\n if (typeof window !== 'undefined') {\n this.offs.push(listen(window, 'pagehide', () => this.persistNow()));\n this.offs.push(listen(document, 'visibilitychange', () => {\n if (document.visibilityState === 'hidden') this.persistNow();\n }));\n }\n }\n\n public leaving(): void {\n this.cancelRestore();\n if (!this.visited) return;\n this.remember(this.currentKey, this.viewport.scrollTop());\n this.persist();\n }\n\n public arrived(uri: string): void {\n this.visited = true;\n const { path, hash } = splitUri(uri);\n this.currentKey = this.keyOf(path);\n this.restore(this.currentKey, this.options.anchor === false ? '' : hash || (this.locationAnchor ? locationHash() : ''));\n }\n\n public saved(key: string): number {\n return this.positions.get(this.keyOf(splitUri(key).path)) ?? 0;\n }\n\n public dispose(): void {\n this.cancelRestore();\n this.persistNow();\n for (const off of this.offs.splice(0)) off();\n this.positions.clear();\n }\n\n\n private keyOf(path: string): string {\n const key = this.options.key ? this.options.key(path) : path;\n return key || '/';\n }\n\n private remember(key: string, top: number): void {\n const limit = this.options.limit ?? DEFAULT_LIMIT;\n this.positions.delete(key);\n this.positions.set(key, Math.max(0, Math.round(top)));\n while (this.positions.size > limit) {\n const oldest = this.positions.keys().next();\n if (oldest.done) break;\n this.positions.delete(oldest.value);\n }\n }\n\n private restore(key: string, anchor: string): void {\n this.cancelRestore();\n\n const target = this.positions.get(key) ?? 0;\n\n if (!anchor && target <= 0) {\n if (this.options.top !== false) this.viewport.scrollTo(0);\n return;\n }\n\n this.restoring = true;\n const settleMs = this.options.settleMs ?? DEFAULT_SETTLE_MS;\n const startedAt = Date.now();\n\n const attempt = (): void => {\n this.cancelFrame = null;\n const done = anchor ? this.viewport.scrollToAnchor(anchor) : this.reached(target);\n if (done || Date.now() - startedAt >= settleMs) {\n this.cancelRestore();\n this.remember(key, this.viewport.scrollTop());\n return;\n }\n this.armAbort();\n this.cancelFrame = frame(attempt);\n };\n attempt();\n }\n\n private reached(target: number): boolean {\n this.viewport.scrollTo(target);\n return this.viewport.scrollTop() >= target - 1;\n }\n\n private armAbort(): void {\n if (this.disarmAbort || typeof window === 'undefined') return;\n const abort = () => this.cancelRestore();\n const removers = USER_INPUT.map((type) => listen(window, type, abort, { passive: true }));\n this.disarmAbort = () => { for (const remove of removers) remove(); };\n }\n\n private cancelRestore(): void {\n this.cancelFrame?.();\n this.cancelFrame = null;\n this.disarmAbort?.();\n this.disarmAbort = null;\n this.restoring = false;\n }\n private persistNow(): void {\n if (this.visited && !this.restoring) {\n this.remember(this.currentKey, this.viewport.scrollTop());\n }\n this.persist();\n }\n\n private get storage(): Storage | null {\n if (this.options.persist === false) return null;\n try {\n return typeof sessionStorage === 'undefined' ? null : sessionStorage;\n } catch {\n return null;\n }\n }\n\n private persist(): void {\n const storage = this.storage;\n if (!storage) return;\n try {\n storage.setItem(STORAGE_KEY, JSON.stringify([...this.positions]));\n } catch {\n }\n }\n\n private load(): void {\n const storage = this.storage;\n if (!storage) return;\n try {\n const raw = storage.getItem(STORAGE_KEY);\n if (!raw) return;\n const parsed: unknown = JSON.parse(raw);\n if (!Array.isArray(parsed)) return;\n for (const pair of parsed) {\n if (!Array.isArray(pair) || typeof pair[0] !== 'string') continue;\n const top = Number(pair[1]);\n if (Number.isFinite(top) && top > 0) this.positions.set(pair[0], top);\n }\n } catch {\n }\n }\n}\n\n/** Gerçek pencere (`documentElement`). */\nfunction windowViewport(): ScrollViewport {\n return {\n scrollTop: () => {\n try { return window.scrollY || document.documentElement?.scrollTop || 0; } catch { return 0; }\n },\n scrollTo: (top) => {\n try { window.scrollTo(0, top); } catch { }\n },\n scrollToAnchor: (id) => {\n try {\n const node = document.getElementById(id);\n if (!node) return false;\n node.scrollIntoView();\n return true;\n } catch { return false; }\n },\n };\n}\n\nfunction containerViewport(container: NonNullable<ScrollMemoryOptions['container']>): ScrollViewport {\n const fallback = windowViewport();\n const resolve = (): HTMLElement | null => {\n try {\n if (typeof container === 'string') return document.querySelector(container) as HTMLElement | null;\n if (typeof container === 'function') return container() ?? null;\n return container;\n } catch { return null; }\n };\n return {\n scrollTop: () => {\n const el = resolve();\n if (!el) return fallback.scrollTop();\n return el.scrollTop || 0;\n },\n scrollTo: (top) => {\n const el = resolve();\n if (!el) { fallback.scrollTo(top); return; }\n try { el.scrollTop = top; } catch { }\n },\n scrollToAnchor: (id) => fallback.scrollToAnchor(id),\n };\n}\n\n/** `/docs/x#bolum` → `{ path: '/docs/x', hash: 'bolum' }`. */\nfunction splitUri(uri: string): { path: string; hash: string } {\n const index = uri.indexOf('#');\n if (index < 0) return { path: uri, hash: '' };\n return { path: uri.slice(0, index) || '/', hash: decodeHash(uri.slice(index + 1)) };\n}\n\nfunction locationHash(): string {\n try {\n const hash = location?.hash ?? '';\n return hash.length > 1 ? decodeHash(hash.slice(1)) : '';\n } catch { return ''; }\n}\n\nfunction decodeHash(value: string): string {\n try { return decodeURIComponent(value); } catch { return value; }\n}\n\nfunction frame(run: () => void): () => void {\n if (typeof requestAnimationFrame !== 'function') {\n const id = setTimeout(run, 16);\n return () => clearTimeout(id);\n }\n const id = requestAnimationFrame(run);\n return () => cancelAnimationFrame(id);\n}\n\nfunction listen(\n target: EventTarget,\n type: string,\n handler: () => void,\n options?: AddEventListenerOptions,\n): () => void {\n try {\n target.addEventListener(type, handler, options);\n return () => { try { target.removeEventListener(type, handler, options); } catch { } };\n } catch {\n return () => { };\n }\n}","import { ComponentBase, notifyDeactivated } from \"../\";\nimport { disposeNavigationTarget, hasOwnTransition } from \"../component/navigation\";\nimport { reportError } from \"../common/diagnostics\";\nimport type { NavigationDirection, RouteItem, StackEntryInfo, StackOptions, StackTransitionContext } from \"./\";\n\nexport type HistoryPoint = { index: number; session: string };\n\nexport type StackNavigation = {\n direction: NavigationDirection;\n from: HistoryPoint | null;\n to: HistoryPoint | null;\n uri: string;\n};\n\ntype SavedScroll = Array<[Element, number, number]>;\n\ntype SavedPresentation = {\n style: string | null;\n inert: boolean;\n ariaHidden: string | null;\n};\n\nexport type RetainedEntry = {\n point: HistoryPoint;\n uri: string;\n chain: RouteItem[];\n instances: ComponentBase[];\n top: ComponentBase;\n topIndex: number;\n outlet: any;\n attached: boolean;\n hidden: boolean;\n pendingDetach: boolean;\n saved: SavedPresentation | null;\n scroll: SavedScroll;\n};\n\ntype Gesture = {\n startX: number;\n startY: number;\n lastX: number;\n samples: Array<[number, number]>;\n dragging: boolean;\n width: number;\n top: HTMLElement;\n topSaved: string | null;\n under: RetainedEntry | null;\n underSaved: string | null;\n offs: Array<() => void>;\n};\n\nconst STORAGE_KEY = 'motifjs:stack';\nconst SLIDE_OFFSET = 30;\nconst EASING = 'cubic-bezier(0.2, 0.8, 0.2, 1)';\n\nconst isElement = (node: any): node is HTMLElement => !!node && node.nodeType === 1 && !!node.style;\n\nexport { hasOwnTransition };\n\nexport function markDirection(component: ComponentBase | null | undefined, direction: NavigationDirection): void {\n const el = component?.element as any;\n if (!component || component.isDisposed || !isElement(el)) return;\n try { el.setAttribute('data-nav-direction', direction); } catch { }\n (component.motif.options.transition as any)._markedDirection = true;\n}\n\nexport function unmarkDirection(component: ComponentBase | null | undefined): void {\n const transition: any = component?.motif?.options?.transition;\n if (!transition?._markedDirection) return;\n transition._markedDirection = false;\n try { (component!.element as any)?.removeAttribute?.('data-nav-direction'); } catch { }\n}\n\nexport function playLeave(component: ComponentBase): Promise<void> {\n return new Promise<void>((resolve) => {\n let settled = false;\n const done = () => { if (!settled) { settled = true; resolve(); } };\n try {\n const animation: any = component.motif.options.transition.leaveTransition(done);\n if (animation && typeof animation.addEventListener === 'function') animation.addEventListener('cancel', done);\n } catch {\n done();\n }\n });\n}\n\nfunction saveStyle(el: HTMLElement): string | null {\n return el.getAttribute('style');\n}\n\nfunction restoreStyle(el: HTMLElement, value: string | null): void {\n try {\n el.setAttribute('style', value ?? '');\n if (value === null) el.removeAttribute('style');\n } catch { }\n}\n\nfunction saveScroll(root: HTMLElement): SavedScroll {\n const saved: SavedScroll = [];\n try {\n const visit = (el: Element) => {\n const top = (el as HTMLElement).scrollTop || 0;\n const left = (el as HTMLElement).scrollLeft || 0;\n if (top || left) saved.push([el, top, left]);\n };\n visit(root);\n root.querySelectorAll('*').forEach(visit);\n } catch { }\n return saved;\n}\n\nfunction restoreScroll(saved: SavedScroll): void {\n for (const [el, top, left] of saved) {\n try {\n (el as HTMLElement).scrollTop = top;\n (el as HTMLElement).scrollLeft = left;\n } catch { }\n }\n}\n\nfunction prefersReducedMotion(): boolean {\n try {\n return typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n } catch { return false; }\n}\n\nfunction play(el: HTMLElement, keyframes: Keyframe[], duration: number, running: Animation[]): Promise<void> {\n if (typeof (el as any).animate !== 'function' || duration <= 0) return Promise.resolve();\n try {\n const animation = el.animate(keyframes, { duration, easing: EASING, fill: 'forwards' });\n running.push(animation);\n return animation.finished.then(() => undefined, () => undefined);\n } catch {\n return Promise.resolve();\n }\n}\n\nfunction overlay(floating: HTMLElement, anchor: HTMLElement, above: boolean): void {\n floating.style.position = 'absolute';\n floating.style.top = '0px';\n floating.style.left = '0px';\n floating.style.margin = '0px';\n floating.style.boxSizing = 'border-box';\n const a = anchor.getBoundingClientRect();\n const f = floating.getBoundingClientRect();\n floating.style.top = (a.top - f.top) + 'px';\n floating.style.left = (a.left - f.left) + 'px';\n floating.style.width = a.width + 'px';\n floating.style.height = a.height + 'px';\n floating.style.pointerEvents = 'none';\n floating.style.zIndex = above ? '2' : '0';\n if (!above) {\n let position = '';\n try { position = getComputedStyle(anchor).position; } catch { }\n if (!position || position === 'static') anchor.style.position = 'relative';\n anchor.style.zIndex = '1';\n }\n}\n\nexport class NavigationStack {\n readonly retainAttached: boolean;\n readonly depth: number;\n readonly persist: boolean;\n readonly animation: StackOptions['animation'];\n readonly duration: number;\n private readonly swipe: { edge: number; threshold: number } | null;\n\n private session: string | null = null;\n private readonly entries = new Map<number, RetainedEntry>();\n private readonly uris = new Map<number, string>();\n private loaded: { session: string; uris: Array<[number, string]> } | null = null;\n private current: HistoryPoint | null = null;\n private currentTop: ComponentBase | null = null;\n private readonly offs: Array<() => void> = [];\n private gesture: Gesture | null = null;\n private gestureCommitted = false;\n private awaitingGestureResult = false;\n private disposed = false;\n\n constructor(options: true | StackOptions) {\n const o: StackOptions = options === true ? {} : options;\n this.retainAttached = o.retain === true;\n this.depth = Math.max(0, Math.floor(o.depth ?? 5));\n this.persist = o.persist === true;\n this.animation = o.animation ?? 'none';\n this.duration = Math.max(0, o.duration ?? 300);\n const sb = o.swipeBack;\n this.swipe = sb\n ? {\n edge: (typeof sb === 'object' && typeof sb.edge === 'number' && sb.edge > 0) ? sb.edge : 24,\n threshold: (typeof sb === 'object' && typeof sb.threshold === 'number' && sb.threshold > 0) ? sb.threshold : 0.35,\n }\n : null;\n if (this.persist) this.load();\n if (this.swipe) this.installSwipe();\n }\n\n public get retainedCount(): number {\n return this.entries.size;\n }\n\n public isRetaining(nav: StackNavigation): boolean {\n return !!nav.from && !!nav.to && nav.from.session === nav.to.session && nav.to.index > nav.from.index;\n }\n\n public begin(nav: StackNavigation): void {\n const point = nav.to;\n if (!point) return;\n if (this.session !== point.session) {\n this.disposeAllEntries();\n this.uris.clear();\n this.session = point.session;\n if (this.loaded && this.loaded.session === point.session) {\n for (const [index, uri] of this.loaded.uris) this.uris.set(index, uri);\n }\n this.loaded = null;\n }\n if (nav.direction === 'push') {\n this.truncate(point.index);\n } else if (nav.direction === 'replace') {\n const stale = this.entries.get(point.index);\n if (stale) { this.entries.delete(point.index); void this.disposeEntry(stale); }\n }\n }\n\n public take(point: HistoryPoint | null): RetainedEntry | null {\n if (!point || point.session !== this.session) return null;\n const entry = this.entries.get(point.index);\n if (!entry) return null;\n this.entries.delete(point.index);\n entry.pendingDetach = false;\n return entry;\n }\n\n public retain(point: HistoryPoint, uri: string, chain: RouteItem[], instances: ComponentBase[], topIndex: number, outlet: any, deferHide: boolean): RetainedEntry {\n const top = instances[topIndex];\n const el = top.element as any;\n const entry: RetainedEntry = {\n point, uri, chain: chain.slice(), instances: instances.slice(), top, topIndex, outlet,\n attached: false, hidden: false, pendingDetach: false, saved: null,\n scroll: isElement(el) ? saveScroll(el) : [],\n };\n if (this.retainAttached && isElement(el)) {\n entry.attached = true;\n if (!deferHide) this.hide(entry);\n } else if (deferHide) {\n entry.pendingDetach = true;\n } else {\n try { top.parent?.controls.silentDetach(top); } catch { }\n }\n const previous = this.entries.get(point.index);\n if (previous && previous !== entry) void this.disposeEntry(previous);\n this.entries.set(point.index, entry);\n this.evict();\n return entry;\n }\n\n public settle(entry: RetainedEntry): void {\n if (entry.top.isDisposed || this.entries.get(entry.point.index) !== entry) return;\n if (entry.attached) {\n this.hide(entry);\n } else if (entry.pendingDetach) {\n entry.pendingDetach = false;\n try { entry.top.parent?.controls.silentDetach(entry.top); } catch { }\n }\n }\n\n public hide(entry: RetainedEntry): void {\n if (!entry.attached || entry.hidden) return;\n const el = entry.top.element as any;\n if (!isElement(el)) return;\n entry.saved = {\n style: saveStyle(el),\n inert: el.hasAttribute('inert'),\n ariaHidden: el.getAttribute('aria-hidden'),\n };\n try {\n el.style.setProperty('display', 'none', 'important');\n el.setAttribute('inert', '');\n el.setAttribute('aria-hidden', 'true');\n } catch { }\n entry.hidden = true;\n try { notifyDeactivated(entry.top); } catch { }\n }\n\n public reveal(entry: RetainedEntry): void {\n const el = entry.top.element as any;\n if (entry.hidden && entry.saved && isElement(el)) {\n restoreStyle(el, entry.saved.style);\n try {\n if (!entry.saved.inert) el.removeAttribute('inert');\n if (entry.saved.ariaHidden === null) el.removeAttribute('aria-hidden');\n else el.setAttribute('aria-hidden', entry.saved.ariaHidden);\n } catch { }\n }\n entry.hidden = false;\n entry.saved = null;\n }\n\n public restoreScroll(entry: RetainedEntry): void {\n restoreScroll(entry.scroll);\n }\n\n public record(nav: StackNavigation, top: ComponentBase | null): void {\n if (nav.to && nav.to.session === this.session) {\n this.uris.set(nav.to.index, nav.uri);\n if (nav.direction === 'push') {\n for (const index of Array.from(this.uris.keys())) {\n if (index > nav.to.index) this.uris.delete(index);\n }\n }\n this.current = nav.to;\n }\n this.currentTop = top;\n this.save();\n }\n\n public describe(): StackEntryInfo[] {\n const current = this.current?.index;\n return Array.from(this.uris.entries())\n .sort((a, b) => a[0] - b[0])\n .map(([index, uri]) => ({ index, uri, current: index === current, retained: this.entries.has(index) }));\n }\n\n public get gestureCommitPending(): boolean {\n return this.gestureCommitted;\n }\n\n public consumeGestureCommit(): boolean {\n const committed = this.gestureCommitted;\n this.gestureCommitted = false;\n return committed;\n }\n\n public traversalSettled(cancelled: boolean): void {\n if (!this.awaitingGestureResult) return;\n this.awaitingGestureResult = false;\n const g = this.gesture;\n if (!cancelled) {\n this.gesture = null;\n this.gestureCommitted = false;\n return;\n }\n this.gestureCommitted = false;\n if (g) void this.settleGesture(g, false);\n }\n\n public async transition(direction: NavigationDirection, entering: ComponentBase | null, leaving: ComponentBase | null): Promise<void> {\n if (this.consumeGestureCommit()) return;\n if (this.animation === 'none' || !this.animation) return;\n if (direction !== 'push' && direction !== 'back' && direction !== 'forward') return;\n const enteringEl = entering?.element as any;\n const leavingEl = leaving?.element as any;\n if (!isElement(enteringEl) || !isElement(leavingEl) || !enteringEl.isConnected || !leavingEl.isConnected) return;\n if (prefersReducedMotion()) return;\n\n const backwards = direction === 'back';\n const enteringStyle = saveStyle(enteringEl);\n const leavingStyle = saveStyle(leavingEl);\n const running: Animation[] = [];\n try {\n overlay(leavingEl, enteringEl, backwards);\n if (typeof this.animation === 'function') {\n const context: StackTransitionContext = { direction, entering: enteringEl, leaving: leavingEl };\n await this.animation(context);\n } else {\n const d = this.duration;\n if (backwards) {\n await Promise.all([\n play(leavingEl, [{ transform: 'translateX(0)' }, { transform: 'translateX(100%)' }], d, running),\n play(enteringEl, [{ transform: `translateX(-${SLIDE_OFFSET}%)` }, { transform: 'translateX(0)' }], d, running),\n ]);\n } else {\n await Promise.all([\n play(enteringEl, [{ transform: 'translateX(100%)' }, { transform: 'translateX(0)' }], d, running),\n play(leavingEl, [{ transform: 'translateX(0)' }, { transform: `translateX(-${SLIDE_OFFSET}%)` }], d, running),\n ]);\n }\n }\n } catch (error) {\n reportError('MJX308', error);\n } finally {\n for (const a of running) { try { a.cancel(); } catch { } }\n restoreStyle(enteringEl, enteringStyle);\n restoreStyle(leavingEl, leavingStyle);\n }\n }\n\n public async disposeEntry(entry: RetainedEntry): Promise<void> {\n const top = entry.top;\n if (!top || top.isDisposed) return;\n try { await disposeNavigationTarget(top, { deep: true, skipLeaveTransition: true }); } catch (error) { reportError('MJX307', error); }\n }\n\n public async dispose(): Promise<void> {\n if (this.disposed) return;\n this.disposed = true;\n for (const off of this.offs.splice(0)) { try { off(); } catch { } }\n if (this.gesture) { this.endGestureListeners(this.gesture); this.gesture = null; }\n await this.disposeAllEntries();\n this.uris.clear();\n this.current = null;\n this.currentTop = null;\n }\n\n private async disposeAllEntries(): Promise<void> {\n const all = Array.from(this.entries.values());\n this.entries.clear();\n for (const entry of all) await this.disposeEntry(entry);\n }\n\n private truncate(fromIndex: number): void {\n for (const [index, entry] of Array.from(this.entries)) {\n if (index >= fromIndex) {\n this.entries.delete(index);\n void this.disposeEntry(entry);\n }\n }\n }\n\n private evict(): void {\n while (this.entries.size > this.depth) {\n let oldest = Infinity;\n for (const index of this.entries.keys()) if (index < oldest) oldest = index;\n const entry = this.entries.get(oldest);\n this.entries.delete(oldest);\n if (entry) void this.disposeEntry(entry);\n }\n }\n\n private load(): void {\n try {\n if (typeof sessionStorage === 'undefined') return;\n const raw = sessionStorage.getItem(STORAGE_KEY);\n if (!raw) return;\n const parsed = JSON.parse(raw);\n if (!parsed || typeof parsed.session !== 'string' || !Array.isArray(parsed.uris)) return;\n const uris: Array<[number, string]> = [];\n for (const pair of parsed.uris) {\n if (Array.isArray(pair) && typeof pair[0] === 'number' && typeof pair[1] === 'string') uris.push([pair[0], pair[1]]);\n }\n this.loaded = { session: parsed.session, uris };\n } catch { }\n }\n\n private save(): void {\n if (!this.persist || !this.session) return;\n try {\n if (typeof sessionStorage === 'undefined') return;\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify({ session: this.session, uris: Array.from(this.uris.entries()) }));\n } catch { }\n }\n\n private installSwipe(): void {\n if (typeof document === 'undefined') return;\n const onStart = (e: TouchEvent) => this.onTouchStart(e);\n try {\n document.addEventListener('touchstart', onStart as any, { passive: true });\n this.offs.push(() => { try { document.removeEventListener('touchstart', onStart as any); } catch { } });\n } catch { }\n }\n\n private onTouchStart(e: TouchEvent): void {\n if (this.disposed || this.gesture || this.awaitingGestureResult || !this.swipe) return;\n if (!e.touches || e.touches.length !== 1) return;\n const t = e.touches[0];\n if (!t || t.clientX > this.swipe.edge) return;\n if (!this.current || this.current.index <= 0) return;\n const topEl = this.currentTop?.element as any;\n if (!isElement(topEl) || !topEl.isConnected) return;\n\n const g: Gesture = {\n startX: t.clientX, startY: t.clientY, lastX: t.clientX, samples: [[t.clientX, Date.now()]],\n dragging: false, width: 0, top: topEl, topSaved: null, under: null, underSaved: null, offs: [],\n };\n const onMove = (ev: TouchEvent) => this.onTouchMove(g, ev);\n const onEnd = () => this.onTouchEnd(g);\n try {\n document.addEventListener('touchmove', onMove as any, { passive: false });\n document.addEventListener('touchend', onEnd);\n document.addEventListener('touchcancel', onEnd);\n g.offs.push(() => {\n try { document.removeEventListener('touchmove', onMove as any); } catch { }\n try { document.removeEventListener('touchend', onEnd); } catch { }\n try { document.removeEventListener('touchcancel', onEnd); } catch { }\n });\n } catch { }\n this.gesture = g;\n }\n\n private endGestureListeners(g: Gesture): void {\n for (const off of g.offs.splice(0)) { try { off(); } catch { } }\n }\n\n private beginDrag(g: Gesture): void {\n g.dragging = true;\n g.width = g.top.getBoundingClientRect().width || (typeof window !== 'undefined' ? window.innerWidth : 0) || 1;\n g.topSaved = saveStyle(g.top);\n const current = this.current;\n const under = current ? this.entries.get(current.index - 1) ?? null : null;\n if (under && under.attached && isElement(under.top.element) && (under.top.element as any).isConnected) {\n const el = under.top.element as any as HTMLElement;\n g.under = under;\n g.underSaved = saveStyle(el);\n if (under.saved) restoreStyle(el, under.saved.style);\n overlay(el, g.top, false);\n el.style.transform = `translateX(-${SLIDE_OFFSET}%)`;\n restoreScroll(under.scroll);\n }\n g.top.style.willChange = 'transform';\n }\n\n private applyDrag(g: Gesture, dx: number): void {\n const progress = Math.min(1, Math.max(0, dx / g.width));\n g.top.style.transform = `translateX(${Math.max(0, dx)}px)`;\n if (g.under) {\n (g.under.top.element as any as HTMLElement).style.transform = `translateX(-${SLIDE_OFFSET * (1 - progress)}%)`;\n }\n }\n\n private onTouchMove(g: Gesture, e: TouchEvent): void {\n const t = e.touches && e.touches[0];\n if (!t) return;\n const dx = t.clientX - g.startX;\n const dy = t.clientY - g.startY;\n if (!g.dragging) {\n if (Math.abs(dx) < 8 && Math.abs(dy) < 8) return;\n if (dx <= 0 || Math.abs(dy) > Math.abs(dx)) {\n this.endGestureListeners(g);\n this.gesture = null;\n return;\n }\n this.beginDrag(g);\n }\n if (e.cancelable) { try { e.preventDefault(); } catch { } }\n const now = Date.now();\n g.lastX = t.clientX;\n g.samples.push([t.clientX, now]);\n while (g.samples.length > 2 && now - g.samples[0][1] > 100) g.samples.shift();\n this.applyDrag(g, dx);\n }\n\n private onTouchEnd(g: Gesture): void {\n this.endGestureListeners(g);\n if (!g.dragging) { this.gesture = null; return; }\n const dx = g.lastX - g.startX;\n const progress = dx / g.width;\n const first = g.samples[0];\n const last = g.samples[g.samples.length - 1];\n const span = last && first ? last[1] - first[1] : 0;\n const idle = last ? Date.now() - last[1] : Infinity;\n const velocity = span >= 16 && idle <= 50 ? (last[0] - first[0]) / span : 0;\n const commit = progress > this.swipe!.threshold || (velocity > 0.5 && dx > 0);\n void this.settleGesture(g, commit);\n }\n\n private async settleGesture(g: Gesture, commit: boolean): Promise<void> {\n const running: Animation[] = [];\n const topEl = g.top;\n const underEl = g.under ? g.under.top.element as any as HTMLElement : null;\n const duration = prefersReducedMotion() ? 0 : Math.max(0, Math.round(this.duration * 0.6));\n const currentTop = topEl.style.transform || 'translateX(0px)';\n const currentUnder = underEl?.style.transform || `translateX(-${SLIDE_OFFSET}%)`;\n if (commit) {\n await Promise.all([\n play(topEl, [{ transform: currentTop }, { transform: 'translateX(100%)' }], duration, running),\n underEl ? play(underEl, [{ transform: currentUnder }, { transform: 'translateX(0)' }], duration, running) : Promise.resolve(),\n ]);\n topEl.style.transform = 'translateX(100%)';\n if (underEl) underEl.style.transform = 'translateX(0px)';\n for (const a of running) { try { a.cancel(); } catch { } }\n this.gestureCommitted = true;\n this.awaitingGestureResult = true;\n try { window.history.back(); } catch { this.traversalSettled(true); }\n return;\n }\n await Promise.all([\n play(topEl, [{ transform: currentTop }, { transform: 'translateX(0)' }], duration, running),\n underEl ? play(underEl, [{ transform: currentUnder }, { transform: `translateX(-${SLIDE_OFFSET}%)` }], duration, running) : Promise.resolve(),\n ]);\n for (const a of running) { try { a.cancel(); } catch { } }\n restoreStyle(topEl, g.topSaved);\n if (underEl && g.under) {\n restoreStyle(underEl, g.underSaved);\n }\n if (this.gesture === g) this.gesture = null;\n }\n}\n","export const enum CharacterCodes {\n slash = 0x2F, // /\n question = 0x3F, // ?\n colon = 0x3A, // :\n openBrace = 0x7B, // {\n closeBrace = 0x7D, // }\n equals = 0x3D, // =\n $ = 0x24,\n backslash = 0x5C, // \\\n}\n\n\n\n\nexport interface IToken {\n type: 'static' | 'optional' | 'parameter';\n regexs: [];\n input: string;\n default: string | undefined;\n parameterName: string;\n isOptinal: boolean;\n parameterIndex: number;\n sectionIndex: number;\n hasLeadingSlash?: boolean;\n leadingSlashTokenIndex?: number;\n hasLeadingStatic?: boolean;\n leadingStaticTokenIndex?: number;\n consumed?: boolean;\n}\nexport class Scanner {\n\n constructor(public source: string) {\n this.tokens = [];\n }\n currentColumn = 0;\n tokens: IToken[] = [];\n addToken(token: IToken) {\n this.tokens.push(token);\n }\n\n public parse(): RegExp {\n if (!this.source.startsWith(\"/\")) {\n this.source = \"/\" + this.source;\n }\n // Sondaki '/' karakterlerini normalize et (kök '/' hariç): '/app/' deseni '/app' ile aynı\n while (this.source.length > 1 && this.source.endsWith('/')) {\n this.source = this.source.slice(0, -1);\n }\n\n var currentType: 'static' | 'optional' | 'parameter' | 'defaultValue' = 'static';\n var parentTokenIndex = -1;\n var parameterIndex = 0;\n var sectionIndex = -1;\n this.tokens = [];\n this.currentColumn = 0;\n while (this.currentColumn < this.source.length) {\n\n var cpa = this.codePointAt(this.source, this.currentColumn);\n\n var currentToken = this.tokens[parentTokenIndex];\n switch (cpa) {\n case CharacterCodes.slash:\n sectionIndex++;\n if (currentToken === undefined || currentToken.input.length > 1) {\n this.tokens.push({ default: '', input: '/', isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n break;\n case CharacterCodes.openBrace:\n parameterIndex++;\n let hasLeadingSlash = false;\n let leadingSlashTokenIndex: number | undefined = undefined;\n let hasLeadingStatic = false;\n let leadingStaticTokenIndex: number | undefined = undefined;\n if (this.tokens.length > 0) {\n const prev = this.tokens[this.tokens.length - 1];\n if (prev && prev.type === 'static' && prev.input === '/' && !prev.consumed) {\n hasLeadingSlash = true;\n leadingSlashTokenIndex = this.tokens.length - 1;\n } else if (prev && prev.type === 'static' && prev.input !== '/' && prev.sectionIndex === sectionIndex && !prev.consumed) {\n hasLeadingStatic = true;\n leadingStaticTokenIndex = this.tokens.length - 1;\n }\n }\n this.tokens.push({ default: undefined, input: '', isOptinal: false, regexs: [], type: 'parameter', parameterName: '', parameterIndex: parameterIndex, sectionIndex, hasLeadingSlash, leadingSlashTokenIndex, hasLeadingStatic, leadingStaticTokenIndex });\n parentTokenIndex = this.tokens.length - 1;\n currentType = 'parameter';\n break;\n case CharacterCodes.closeBrace:\n currentType = 'static';\n parentTokenIndex = -1;\n break;\n case CharacterCodes.colon:\n currentType = 'defaultValue';\n break;\n\n case CharacterCodes.question:\n if (currentToken) {\n currentToken.isOptinal = true;\n }\n break;\n default:\n const ch = this.source[this.currentColumn];\n if (currentToken) {\n if (currentType === 'parameter') {\n currentToken.parameterName = `${currentToken.parameterName + ch}`;\n } else if (currentType === 'defaultValue') {\n currentToken.default = `${(currentToken.default ?? '') + ch}`;\n } else {\n if (currentToken.type === 'static') {\n currentToken.input = `${currentToken.input + ch}`;\n } else {\n this.tokens.push({ default: undefined, input: ch, isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n }\n } else {\n this.tokens.push({ default: undefined, input: ch, isOptinal: false, regexs: [], type: 'static', parameterName: '', parameterIndex: parameterIndex, sectionIndex });\n parentTokenIndex = this.tokens.length - 1;\n }\n break;\n }\n this.currentColumn++;\n }\n\n const escapeRegex = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const charClass = \"[\\\\w\\\\d\\\\_\\\\-\\\\%\\\\&\\\\$\\\\+\\\\#\\\\,\\\\.\\\\{\\\\}\\\\(\\\\)\\\\[\\\\]\\\\?\\\\:\\\\=\\\\;\\\\'\\\\\\\"\\\\~\\\\\\\\]\";\n\n for (const t of this.tokens) {\n if (t.type === 'parameter' && t.isOptinal && t.hasLeadingSlash && typeof t.leadingSlashTokenIndex === 'number') {\n const prev = this.tokens[t.leadingSlashTokenIndex];\n if (prev && prev.type === 'static' && prev.input === '/') {\n prev.consumed = true;\n }\n }\n if (t.type === 'parameter' && t.isOptinal && t.hasLeadingStatic && typeof t.leadingStaticTokenIndex === 'number') {\n const prev = this.tokens[t.leadingStaticTokenIndex];\n if (prev && prev.type === 'static' && prev.input && prev.sectionIndex === t.sectionIndex) {\n prev.consumed = true;\n }\n }\n }\n\n const escapeClassChar = (c: string) => c.replace(/[\\\\\\]\\^\\-]/g, '\\\\$&');\n\n const getNextDelimChar = (idx: number): string | undefined => {\n const t = this.tokens[idx];\n for (let j = idx + 1; j < this.tokens.length; j++) {\n const nx = this.tokens[j];\n if (nx.type === 'static' && nx.sectionIndex === t.sectionIndex) {\n if (nx.input && nx.input !== '/') {\n return nx.input[0];\n }\n }\n if (nx.type === 'static' && nx.input === '/') break;\n }\n return undefined;\n };\n const buildCapture = (idx: number, isOptional: boolean) => {\n const delim = getNextDelimChar(idx);\n const innerClass = delim ? `[^${escapeClassChar(escapeRegex(delim))}]` : charClass;\n const quant = isOptional ? '{0,255}' : '{1,255}';\n return `(${innerClass}${quant})`;\n };\n\n let pattern = '^';\n for (let i = 0; i < this.tokens.length;) {\n const tok = this.tokens[i];\n if (tok.type === 'static' && tok.input === '/') {\n if (!tok.consumed) pattern += '/';\n i++;\n continue;\n }\n const segStart = i;\n let segEnd = i;\n while (segEnd < this.tokens.length) {\n const t = this.tokens[segEnd];\n if (t.type === 'static' && t.input === '/' && segEnd !== segStart) break;\n if (t.type === 'static' && t.input === '/' && segEnd === segStart) { segEnd++; break; }\n segEnd++;\n }\n const visited: Record<number, boolean> = {};\n let k = segStart;\n while (k < segEnd) {\n if (visited[k]) { k++; continue; }\n const t = this.tokens[k];\n if (t.type === 'static') {\n if (!t.consumed) pattern += escapeRegex(t.input);\n visited[k] = true;\n k++;\n continue;\n }\n if (t.isOptinal && !t.hasLeadingStatic) {\n\n const firstIdx = k;\n let hasDependent = false;\n for (let jj = firstIdx + 1; jj < segEnd; jj++) {\n const sj = this.tokens[jj];\n const pj = this.tokens[jj + 1] as IToken | undefined;\n if (sj && sj.type === 'static' && pj && pj.type === 'parameter' && pj.isOptinal && pj.hasLeadingStatic && typeof pj.leadingStaticTokenIndex === 'number' && pj.leadingStaticTokenIndex === jj) {\n hasDependent = true;\n break;\n }\n if (sj && sj.type === 'static' && sj.input === '/') break;\n }\n\n let groupInner = '';\n if (t.hasLeadingSlash) groupInner += '/';\n groupInner += buildCapture(firstIdx, !hasDependent);\n visited[firstIdx] = true;\n let j = firstIdx + 1;\n while (j < segEnd) {\n const sj = this.tokens[j];\n if (sj.type === 'static' && this.tokens[j + 1] && this.tokens[j + 1].type === 'parameter') {\n const prm = this.tokens[j + 1] as IToken;\n if (prm.isOptinal && prm.hasLeadingStatic && typeof prm.leadingStaticTokenIndex === 'number' && prm.leadingStaticTokenIndex === j) {\n const lit = escapeRegex(sj.input);\n const cap = buildCapture(j + 1, true);\n groupInner += `(?:${lit}${cap})?`;\n visited[j] = true;\n visited[j + 1] = true;\n j += 2;\n continue;\n }\n }\n break;\n }\n pattern += `(?:${groupInner})?`;\n k = j;\n continue;\n } else {\n const cap = buildCapture(k, t.isOptinal);\n if (t.isOptinal) {\n if (t.hasLeadingSlash) {\n pattern += `(?:/${cap})?`;\n } else if (t.hasLeadingStatic && typeof t.leadingStaticTokenIndex === 'number') {\n const prev = this.tokens[t.leadingStaticTokenIndex];\n const lit = prev && prev.type === 'static' ? escapeRegex(prev.input) : '';\n pattern += `(?:${lit}${cap})?`;\n } else {\n pattern += `(?:${cap})?`;\n }\n } else {\n pattern += cap;\n }\n visited[k] = true;\n k++;\n }\n }\n i = segEnd;\n }\n\n pattern += '$';\n return new RegExp(pattern, \"i\");\n }\n public parameters: Record<string, any> = {};\n public exist(input: string, pageSearch?: string): boolean {\n const hashIdx = input.indexOf('#');\n const withoutHash = hashIdx >= 0 ? input.substring(0, hashIdx) : input;\n let path = withoutHash;\n let query = '';\n const qIdx = withoutHash.indexOf('?');\n if (qIdx >= 0) {\n path = withoutHash.substring(0, qIdx);\n query = withoutHash.substring(qIdx + 1);\n }\n\n // İstek yolundaki sondaki '/' karakterlerini yok say (kök '/' hariç):\n // '/app/' → '/app'; desen ^...$ tam eşleşme olduğundan aksi halde not-found olur.\n while (path.length > 1 && path.endsWith('/')) {\n path = path.slice(0, -1);\n }\n\n var tx = this.parse();\n var rx = tx.exec(path);\n\n if (rx) {\n var i = rx ? rx.length : 0;\n var arr = <any>[];\n\n this.parameters = {};\n rx?.forEach((t, indx) => {\n arr.push(t);\n })\n if (query && query.length) {\n const urlSearchParams = new URLSearchParams(query);\n const queryMap = new Map<string, string[]>();\n urlSearchParams.forEach((val, key) => {\n const existing = queryMap.get(key) || [];\n existing.push(val);\n queryMap.set(key, existing);\n });\n queryMap.forEach((values, key) => {\n if (values.length === 1) {\n this.parameters[key] = values[0];\n } else {\n this.parameters[key] = values;\n }\n });\n } else if (pageSearch) {\n const urlSearchParams = new URLSearchParams(pageSearch);\n const queryMap = new Map<string, string[]>();\n urlSearchParams.forEach((val, key) => {\n const existing = queryMap.get(key) || [];\n existing.push(val);\n queryMap.set(key, existing);\n });\n queryMap.forEach((values, key) => {\n if (values.length === 1) {\n this.parameters[key] = values[0];\n } else {\n this.parameters[key] = values;\n }\n });\n }\n\n if (rx.input === arr[0]) {\n rx?.forEach((t, indx) => {\n\n if (indx !== 0) {\n var all = this.tokens.find(t => t.parameterIndex == indx);\n if (all) {\n let val: any = t;\n if ((val === undefined || val === '') && all.isOptinal) {\n const def = (all.default === undefined || all.default === '') ? undefined : all.default;\n val = def;\n }\n if (val === undefined) {\n this.parameters[all.parameterName] = undefined;\n } else {\n this.parameters[all.parameterName] = val;\n }\n }\n }\n })\n /* TODO: route detayları ile ilgili mesajı Geliştirici Araçları'na gönder */\n return true;\n }\n }\n\n return false;\n }\n codePointAt: (s: string, i: number) =>\n number = (String.prototype as any).codePointAt ?\n (s, i) => (s as any).codePointAt(i) : function codePointAt(str, i): number {\n const size = str.length;\n if (i < 0 || i >= size) {\n return undefined!;\n }\n const first = str.charCodeAt(i);\n if (first >= 0xD800 && first <= 0xDBFF && size > i + 1) {\n const second = str.charCodeAt(i + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n };\n\n}","import { RouteItem, RouteRecord } from \"./RouteItem\";\r\nimport { Scanner } from \"./scanner\";\r\n\r\n\r\n/** Bir fullPath'in statik (parametresiz) ve parametreli segment sayıları. */\r\nexport function routeSpecificity(fullPath: string): { statics: number; params: number } {\r\n let statics = 0, params = 0;\r\n for (const seg of (fullPath || '').split('/')) {\r\n if (!seg) continue;\r\n if (seg.startsWith('{') && seg.endsWith('}')) params++; else statics++;\r\n }\r\n return { statics, params };\r\n}\r\n\r\nexport function compareRouteRecords(a: RouteRecord, b: RouteRecord): number {\r\n const d = a.chain.length - b.chain.length;\r\n if (d !== 0) return d;\r\n const sa = routeSpecificity(a.fullPath), sb = routeSpecificity(b.fullPath);\r\n if (sa.statics !== sb.statics) return sb.statics - sa.statics;\r\n if (sa.params !== sb.params) return sa.params - sb.params;\r\n return b.fullPath.length - a.fullPath.length;\r\n}\r\n\r\nexport class RouteCollection {\r\n\r\n public records: RouteRecord[] = [];\r\n private routesMap: Map<any, RouteItem> = new Map();\r\n constructor(private routes: RouteItem[]) {\r\n this.build();\r\n }\r\n\r\n private build() {\r\n this.records = [];\r\n this.routesMap.clear();\r\n\r\n for (const r of this.routes) this.walk([], \"\", r);\r\n\r\n this.records.sort(compareRouteRecords);\r\n }\r\n\r\n walk = (chain: RouteItem[], parentPath: string, node: RouteItem, viaAlias: boolean = false) => {\r\n const fullPath = this.joinPaths(parentPath, node.path);\r\n if (!viaAlias) {\r\n const existing = (node as any).fullPath as string | null | undefined;\r\n if (existing == null || (typeof existing === 'string' && existing.trim() === '')) {\r\n (node as any).fullPath = fullPath;\r\n }\r\n if (node.name != null) {\r\n this.routesMap.set(node.name, node);\r\n }\r\n }\r\n const nextChain = [...chain, node];\r\n const aliases = node.alias == null ? [] : (Array.isArray(node.alias) ? node.alias : [node.alias]);\r\n const variants = [\r\n { path: fullPath, isAlias: viaAlias },\r\n ...aliases.map(a => ({ path: this.joinPaths(parentPath, a), isAlias: true }))\r\n ];\r\n for (const variant of variants) {\r\n this.records.push({\r\n fullPath: variant.path,\r\n chain: nextChain,\r\n leaf: node,\r\n scanner: new Scanner(variant.path),\r\n aliasOf: variant.isAlias ? ((node as any).fullPath ?? null) : null\r\n });\r\n if (node.childs && node.childs.length) {\r\n for (const child of node.childs) this.walk(nextChain, variant.path, child, variant.isAlias);\r\n }\r\n }\r\n }\r\n\r\n joinPaths(parent: string, child: string): string {\r\n parent = parent || \"\";\r\n child = child || \"\";\r\n\r\n const base = parent && parent !== \"/\" && parent.endsWith(\"/\") ? parent.slice(0, -1) : parent;\r\n\r\n if (child === \"/\") {\r\n return base || \"/\";\r\n }\r\n\r\n const seg = child ? (child.startsWith(\"/\") ? child : \"/\" + child) : \"\";\r\n\r\n if (!base || base === \"/\") {\r\n return seg || \"/\";\r\n }\r\n return base + seg;\r\n }\r\n}\r","import { Component, ComponentBase, assertLoadedComponent, resolveToComponent, unwrapModule, notifyActivated, notifyDeactivated } from \"../\";\nimport { cancelAnimationsDeep } from \"../component/navigation\";\nimport { errorHandler } from \"../common/ErrorHandler\";\nimport { callReported, reportError, reportWarning } from \"../common/diagnostics\";\nimport { NavigationDirection, NavigationOptions, ResolveResult } from \"./\";\nimport { RouterView, RouterViewBuilt } from \"./\";\nimport { UrlRoutingModule } from \"./\";\nimport { RouterViewRegistry } from \"./RouterViewRegistry\";\nimport { RouteItem } from \"./\";\nimport { Application } from \"../\";\nimport { pinServiceOwner, runInConstructionScope } from \"../dependencyInjection/ServiceProvider\";\nimport type { ServiceProvider } from \"../dependencyInjection/ServiceProvider\";\nimport { hasOwnTransition, markDirection, playLeave, unmarkDirection } from \"./NavigationStack\";\nimport type { NavigationStack, RetainedEntry, StackNavigation } from \"./NavigationStack\";\nimport type { RouteSnapshot } from \"./routerState\";\n\ntype StackLeave = { top: ComponentBase | null; retained: RetainedEntry | null; disposeAfter: ComponentBase[] };\ntype StackMotion = { animate: boolean; pages: boolean; direction: NavigationDirection };\ntype NavigationRun = { provider?: ServiceProvider; scope?: ServiceProvider; route: RouteSnapshot; committed: boolean; suppressed: ComponentBase[] };\n\nexport class RoutingEngine {\n\n public stack: NavigationStack | null = null;\n private _revealed: Set<ComponentBase> = new Set();\n\n private root!: ComponentBase;\n private application!: Application;\n private routingModule!: UrlRoutingModule;\n private _previousPath: ResolveResult | null = null;\n private _previousInstances: ComponentBase[] = [];\n\n public register(mainApp: ComponentBase, application: Application, routingModule: UrlRoutingModule) {\n this.root = mainApp;\n this.application = application;\n this.routingModule = routingModule;\n }\n\n private controlCache: Map<RouteItem, any> = new Map();\n\n public async evict(route?: RouteItem | null): Promise<void> {\n const targets: RouteItem[] = route ? [route] : Array.from(this.controlCache.keys());\n for (const r of targets) {\n const inst = this.controlCache.get(r);\n if (!inst || inst.isDisposed) { this.controlCache.delete(r); continue; }\n if (this._previousInstances.includes(inst)) continue;\n this.controlCache.delete(r);\n try { await inst.dispose(); } catch (error) { reportError('MJX307', error); }\n }\n }\n\n\n public async dispose(): Promise<void> {\n this._navVersion++;\n this._previousPath = null;\n this._previousInstances = [];\n this._revealed.clear();\n const stack = this.stack;\n this.stack = null;\n if (stack) { try { await stack.dispose(); } catch { } }\n await this.evict();\n }\n\n generatePathString(routeDefinition: string, params: Record<string, any>): string {\n const parts = routeDefinition.split('/');\n const result = parts.map(part => {\n if (part.startsWith('{') && part.endsWith('}')) {\n const paramDefinition = part.slice(1, -1);\n\n let [paramName, defaultValue] = paramDefinition.split(':');\n\n const isOptional = paramName.endsWith('?');\n if (isOptional) {\n paramName = paramName.slice(0, -1);\n }\n const value = params[paramName];\n if (value !== undefined && value !== null && value !== '') {\n return String(value);\n }\n return defaultValue ?? '';\n\n } else {\n return part;\n }\n })\n .filter(part => part !== '')\n .join('/');\n\n if (routeDefinition.startsWith('/')) {\n return '/' + (result ? result : '');\n }\n return result;\n }\n\n private _navVersion = 0;\n\n private _pendingActivate: Set<ComponentBase> = new Set();\n public async execute(path: ResolveResult, nav?: StackNavigation, route?: RouteSnapshot) {\n route ??= {\n target: path,\n chain: path.chain.map(r => this.generatePathString(r.path, path.params) || ''),\n direction: undefined,\n state: undefined,\n };\n const provider = this._rootProvider();\n const run: NavigationRun = { provider, scope: provider?._beginNavigation(), route, committed: false, suppressed: [] };\n try {\n await this._execute(path, nav, run);\n } finally {\n if (!run.committed && run.scope) provider!._abandonNavigation(run.scope);\n for (const inst of run.suppressed) if (!inst.isDisposed) inst.motif.options.transition._suppressEnter = false;\n }\n }\n\n private _commitNavigation(run: NavigationRun): void {\n if (run.committed) return;\n run.committed = true;\n if (run.scope) run.provider!._commitNavigation(run.scope);\n this.application?._routerState.commit(run.route);\n }\n\n private async _execute(path: ResolveResult, nav: StackNavigation | undefined, run: NavigationRun) {\n const navVersion = ++this._navVersion;\n const stack = this.stack && nav && nav.to ? this.stack : null;\n if (stack) stack.begin(nav!);\n const restored = stack ? stack.take(nav!.to) : null;\n const controlList: any[] = new Array(path.chain.length);\n\n const isSameRoute = !!(this._previousPath &&\n this._previousPath.route === path.route &&\n (this._previousPath.route != null || this._previousPath.fullPath === path.fullPath));\n\n var enableEnter = !!(this._previousPath && this._previousPath.uri === path.uri);\n let paramsChanged = false;\n\n\n if (isSameRoute && path.route) {\n\n const prevParams = this._previousPath!.params || {};\n const newParams = path.params || {};\n let changed = false;\n const allKeys = new Set([...Object.keys(prevParams), ...Object.keys(newParams)]);\n for (const k of allKeys) {\n if (prevParams[k] !== newParams[k]) { changed = true; break; }\n }\n if (changed) {\n paramsChanged = true;\n\n const leafRoute = path.route;\n if (leafRoute && !leafRoute.keepAlive && this.controlCache.has(leafRoute)) {\n if (stack) {\n this.controlCache.delete(leafRoute);\n } else {\n const oldInstance = this.controlCache.get(leafRoute);\n if (oldInstance && typeof oldInstance.dispose === 'function' && !oldInstance.isDisposed) {\n try { await oldInstance.dispose(); } catch { }\n }\n this.controlCache.delete(leafRoute);\n }\n }\n\n try {\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const updateHook = path.route.onUpdate || globalHooks?.onUpdate;\n if (updateHook) {\n const updateContext = {\n from: {\n path: this._previousPath!.uri || this._previousPath!.fullPath || '',\n params: prevParams\n },\n to: {\n path: path.uri || path.fullPath || '',\n params: newParams\n },\n meta: (path as any).meta ?? path.extend\n };\n await updateHook(updateContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onUpdate');\n }\n }\n }\n\n if ((!isSameRoute || paramsChanged) && path.route) {\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route.onEntering || globalHooks?.onEntering;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEntering');\n }\n }\n\n const prepTasks: Promise<void>[] = [];\n for (let i = 0; i < path.chain.length; i++) {\n const element = path.chain[i];\n const kept = restored && restored.chain[i] === element ? restored.instances[i] : undefined;\n if (kept && !kept.isDisposed && !element.keepAlive) {\n controlList[i] = kept;\n this.controlCache.set(element, kept);\n continue;\n }\n if (this.controlCache.has(element)) {\n let control = this.controlCache.get(element);\n if (!control || control.isDisposed) {\n this.controlCache.delete(element);\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n } else {\n controlList[i] = control;\n if (element.keepAlive && !this._previousInstances.includes(control)) {\n this._pendingActivate.add(control);\n }\n }\n } else {\n const task = this.createInstance(element.control, run.scope, run.route).then(inst => {\n this.controlCache.set(element, inst);\n controlList[i] = inst;\n });\n prepTasks.push(task);\n }\n }\n if (prepTasks.length) {\n await Promise.all(prepTasks);\n }\n let leave: StackLeave | null = null;\n let motion: StackMotion | null = null;\n const previousInstances = this._previousInstances;\n if (stack) {\n const animate = !!stack.animation && stack.animation !== 'none'\n && (nav!.direction === 'push' || nav!.direction === 'back' || nav!.direction === 'forward');\n motion = { animate, pages: !animate && !stack.gestureCommitPending, direction: nav!.direction };\n leave = await this._stackLeave(path.chain, controlList, nav!, stack, motion);\n if (restored) {\n const top = restored.top;\n if (!top.isDisposed && restored.outlet && top.parent === restored.outlet) {\n stack.reveal(restored);\n restored.outlet.current = top;\n restored.outlet.previouspage = top;\n this._revealed.add(top);\n }\n if (!top.isDisposed) this._pendingActivate.add(top);\n }\n } else {\n await this.disposeFromDivergencePoint(path.chain, controlList);\n }\n const entering: ComponentBase[] = motion ? controlList.filter(c => c && !previousInstances.includes(c)) : [];\n if (motion) {\n for (const inst of previousInstances) unmarkDirection(inst);\n for (const inst of entering) {\n if (motion.pages) markDirection(inst, motion.direction);\n else {\n inst.motif.options.transition._suppressEnter = true;\n run.suppressed.push(inst);\n }\n }\n }\n if (navVersion === this._navVersion) this._commitNavigation(run);\n await this.mountChain(controlList, path.chain, this.root, navVersion);\n if (motion?.pages) {\n if (restored?.attached && !restored.top.isDisposed && hasOwnTransition(restored.top, 'enter')) {\n restored.top.motif.options.transition.enterTransition(() => { });\n }\n for (const inst of entering) if (inst.isBuilt && !hasOwnTransition(inst, 'enter')) unmarkDirection(inst);\n }\n let enteringTop: ComponentBase | null = null;\n if (stack) {\n if (restored) stack.restoreScroll(restored);\n for (let i = 0; i < controlList.length; i++) {\n if (controlList[i] && controlList[i] !== previousInstances[i]) { enteringTop = controlList[i]; break; }\n }\n if (!enteringTop) enteringTop = controlList.length ? controlList[controlList.length - 1] : null;\n stack.record(nav!, enteringTop);\n }\n\n\n\n if (!enableEnter && path.route) {\n\n try {\n const metaInfo = (path as any).meta ?? path.extend;\n const enterContext: any = {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo,\n to: {\n path: path.uri || path.fullPath || '',\n params: path.params,\n meta: metaInfo\n }\n };\n const globalHooks = this.routingModule.getHooks?.() || undefined;\n const enterHook = path.route?.onEnter || globalHooks?.onEnter;\n if (enterHook) {\n await enterHook(enterContext);\n }\n } catch (error) {\n reportError('MJX306', error, 'onEnter');\n }\n }\n this._previousPath = path;\n this._previousInstances = controlList.slice();\n\n if (stack && leave) {\n if (leave.top && navVersion === this._navVersion && (leave.retained || leave.disposeAfter.length)) {\n await stack.transition(nav!.direction, enteringTop, leave.top);\n }\n if (leave.retained) stack.settle(leave.retained);\n for (const inst of leave.disposeAfter) {\n try { if (!inst.isDisposed) await inst.dispose({ deep: true, skipLeaveTransition: true }); } catch (error) { reportError('MJX307', error); }\n }\n }\n }\n\n private async _stackLeave(newChain: RouteItem[], newInstances: ComponentBase[], nav: StackNavigation, stack: NavigationStack, motion: StackMotion): Promise<StackLeave> {\n const result: StackLeave = { top: null, retained: null, disposeAfter: [] };\n const prevChain = this._previousPath?.chain ?? [];\n const prevInstances = this._previousInstances;\n if (!prevInstances.length) return result;\n\n let d = -1;\n for (let i = 0; i < prevInstances.length; i++) {\n const inst = prevInstances[i];\n if (inst && !newInstances.includes(inst)) { d = i; break; }\n }\n if (d < 0) return result;\n\n if (!prevInstances[d].isDisposed) pinServiceOwner(prevInstances[d]);\n\n const outletFor = (i: number): RouterView | null => {\n const container = i - 1 >= 0 ? prevInstances[i - 1] : this.root;\n const outletName = (prevChain[i]?.extend?.targetOutlet) || 'default';\n try { return container && !container.isDisposed ? this.findRouterView(container, outletName) : null; } catch { return null; }\n };\n\n const top = prevInstances[d];\n const topItem = prevChain[d];\n if (stack.isRetaining(nav) && top && !top.isDisposed && !topItem?.keepAlive) {\n const outlet = outletFor(d);\n if (outlet && outlet.current === top) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n cancelAnimationsDeep(top);\n if (motion.pages && hasOwnTransition(top, 'leave')) {\n markDirection(top, motion.direction);\n await playLeave(top);\n unmarkDirection(top);\n }\n for (let i = d; i < prevInstances.length; i++) {\n const item = prevChain[i];\n if (item && !item.keepAlive && this.controlCache.get(item) === prevInstances[i]) this.controlCache.delete(item);\n }\n result.top = top;\n result.retained = stack.retain(nav.from!, this._previousPath?.uri ?? '', prevChain, prevInstances, d, outlet, motion.animate);\n return result;\n }\n\n const deferTop = motion.animate && !!top && !top.isDisposed && !topItem?.keepAlive;\n for (let i = prevInstances.length - 1; i >= d; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || newInstances.includes(inst)) continue;\n if (inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n if (deferTop && i > d && !item?.keepAlive) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const outlet = outletFor(i);\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n if (deferTop && i === d) {\n result.top = inst;\n result.disposeAfter.push(inst);\n } else if (motion.pages) {\n markDirection(inst, motion.direction);\n await inst.dispose();\n } else {\n await inst.dispose({ deep: true, skipLeaveTransition: true });\n }\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n return result;\n }\n\n private async disposeFromDivergencePoint(newChain: RouteItem[], newInstances: ComponentBase[]): Promise<void> {\n if (!this._previousPath || !this._previousInstances.length) {\n return;\n }\n\n const prevChain = this._previousPath.chain;\n const prevInstances = this._previousInstances;\n\n let divergeIndex = 0;\n const minLength = Math.min(prevChain.length, newChain.length);\n\n for (let i = 0; i < minLength; i++) {\n if (prevChain[i] === newChain[i]) {\n divergeIndex = i + 1;\n } else {\n break;\n }\n }\n\n for (let i = prevInstances.length - 1; i >= divergeIndex; i--) {\n const inst = prevInstances[i];\n const item = prevChain[i];\n if (!inst || inst.isDisposed) {\n if (item && this.controlCache.get(item) === inst) this.controlCache.delete(item);\n continue;\n }\n try {\n const containerIndex = i - 1;\n const container = containerIndex >= 0 ? prevInstances[containerIndex] : this.root;\n const outletName = (item?.extend?.targetOutlet) || 'default';\n const outlet = this.findRouterView(container, outletName);\n\n if (outlet && outlet.current === inst) {\n outlet.current = null;\n outlet.previouspage = null;\n }\n\n if (item?.keepAlive) {\n cancelAnimationsDeep(inst);\n try { inst.parent?.controls.silentDetach(inst); } catch { /* ignore */ }\n if (!this.controlCache.has(item)) this.controlCache.set(item, inst);\n notifyDeactivated(inst);\n } else {\n if (this.controlCache.get(item) === inst) this.controlCache.delete(item);\n await inst.dispose();\n }\n } catch (error) {\n reportError('MJX307', error);\n }\n }\n }\n\n private _construct<T>(scope: ServiceProvider | undefined, route: RouteSnapshot | undefined, create: () => T): T {\n const state = this.application?._routerState;\n return runInConstructionScope(scope, () => state ? state.constructWith(route, create) : create());\n }\n\n private async parseControl(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n var instance = this._construct(scope, route, () => this._resolveFrom(scope, control));\n if (instance) {\n return instance;\n }\n let val = control as any;\n if (val instanceof Promise) {\n val = unwrapModule(await val);\n }\n\n instance = this._construct(scope, route, () => this._resolveFrom(scope, val));\n if (instance) {\n return instance;\n }\n\n if (typeof val === 'function') {\n return this.parseControl(this._construct(scope, route, () => resolveToComponent(val, this.application)), scope, route);\n }\n return resolveToComponent(val);\n }\n\n private _resolveFrom(scope: ServiceProvider | undefined, token: any): any {\n const provider = scope ?? this._rootProvider();\n if (!provider || !provider.getAllServices().getDescriptor(token)) return null;\n return provider.get(token);\n }\n\n private _rootProvider(): ServiceProvider | undefined {\n try { return this.application?.provider ?? Application.main?.provider; } catch { return undefined; }\n }\n\n private async createInstance(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n return await this._instanceCreator(control, scope, route);\n }\n\n private async _instanceCreator(control: RouteItem['control'], scope?: ServiceProvider, route?: RouteSnapshot): Promise<any> {\n let val = await this.parseControl(control, scope, route) as any;\n assertLoadedComponent(val);\n // if (val instanceof Promise) {\n // return result.default ? result.default : result;\n\n // if (typeof val === 'function') {\n // try {\n // return val(this.application);\n // } catch {\n // // fallback: try as constructor\n // return new (val as any)(this.application);\n\n\n // if (val && typeof val.then === 'function') {\n // return await val;\n return val;\n }\n\n private async activator(container: ComponentBase) {\n try {\n //const reflect: any = (Reflect as any)?.getMetadata ? Reflect : null;\n //const paramTypes: any[] | undefined = reflect ? (Reflect as any).getMetadata('design:paramtypes', container) as any[] : undefined;\n // if (Array.isArray(paramTypes) && paramTypes.length) {\n // const args: any[] = [];\n // let anyResolved = false;\n // for (const t of paramTypes) {\n // try {\n // // try resolve token; if not registered, provider.getAsync will throw\n // const inst = await sp.getAsync(t);\n // } catch {\n // if (anyResolved) {\n // // If it looks like a constructor, try `new`, otherwise call as function\n // try { return new (container as any)(...args); } catch { return (container as any)(...args); }\n } catch { /* ignore */ }\n }\n pendingMount: WeakMap<any, Promise<void>> = new WeakMap();\n private pendingListeners = new WeakMap<ComponentBase, Function>(); \n private static readonly OUTLET_WARN_MS = 3000;\n \n private async mountChain(instances: any[], chain: any[], container: ComponentBase, navVersion: number): Promise<void> { \n for (let index = 0; index < instances.length;) { \n if (navVersion !== this._navVersion) return;\n\n let inst = instances[index] as ComponentBase; \n if (inst?.isDisposed) {\n inst = await this.createInstance(chain[index].control, this._rootProvider()?._currentScope());\n instances[index] = inst;\n }\n const outletName = (chain[index] && chain[index].extend && chain[index].extend.targetOutlet) || 'default';\n \n const outlet = this.findRouterView(container, outletName);\n \n if (!outlet || !container.isBuilt) {\n this._waitForOutlet(container, instances.slice(index), chain.slice(index), navVersion, outletName);\n return;\n }\n\n const revealed = this._revealed.delete(inst);\n const alreadyShown = outlet.current === inst && !revealed;\n await outlet.navigate(inst);\n if (this._pendingActivate.delete(inst)) {\n notifyActivated(inst);\n }\n const showHook = (chain[index] as RouteItem | undefined)?.onShow;\n if (showHook && !alreadyShown && outlet.current === inst && navVersion === this._navVersion) {\n callReported(() => showHook(inst), 'MJX306', 'onShow');\n }\n container = inst;\n index++;\n }\n }\n \n private _waitForOutlet(container: ComponentBase, instances: any[], chain: any[], navVersion: number, outletName: string): void {\n \n const oldCleanup = this.pendingListeners.get(container);\n if (oldCleanup) {\n try { oldCleanup(); } catch { }\n this.pendingListeners.delete(container);\n }\n\n let done = false;\n let warnTimer: any = undefined;\n\n const handler = async (_s: any, _e: any) => {\n if (done) return;\n cleanup(); \n if (navVersion !== this._navVersion) return;\n await this.mountChain(instances, chain, container, navVersion);\n };\n\n const cleanup = () => {\n if (done) return;\n done = true;\n this.pendingListeners.delete(container);\n try { (container as any).motif?.off?.(RouterViewBuilt as any, handler); } catch { }\n if (warnTimer !== undefined) {\n try { clearTimeout(warnTimer); } catch { }\n warnTimer = undefined;\n }\n };\n\n container.motif.on(RouterViewBuilt as any, handler);\n this.pendingListeners.set(container, cleanup);\n\n if (errorHandler.isDevelopment()) {\n warnTimer = setTimeout(() => {\n if (!done && navVersion === this._navVersion) {\n reportWarning('MJX301', [outletName, RoutingEngine.OUTLET_WARN_MS]);\n }\n }, RoutingEngine.OUTLET_WARN_MS);\n }\n }\n\n\n\n\n private findRouterView(root: ComponentBase, name: string = 'default'): RouterView | null {\n // 1) Önce mevcut container'ın ALT AĞACINDA ara (yakınlık öncelikli)\n const stack: ComponentBase[] = (root.controls?.items || []).slice();\n while (stack.length) {\n const c = stack.shift()!;\n if (!c || c.isDisposed) continue;\n if ((c as any).__isRouterView) {\n const rv = c as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if (c.controls && c.controls.items && c.controls.items.length) {\n for (const ch of c.controls.items) stack.push(ch);\n }\n }\n\n // 2) Alt ağaçta bulunamadıysa ve isim 'default' ise: üst/yan dallara BAKMA.\n if (!name || name === 'default') {\n return null;\n }\n\n const scopeId = typeof (root as any).scopeId === 'function' ? (root as any).scopeId() : (root as any).scopeId ?? '';\n var x = RouterViewRegistry.find(name, scopeId);\n if (x) return x;\n\n // 3) İsimli outlet için ÜST AĞAÇLARDA arama: her bir üst ata için, o atanının\n let current: any = root;\n let parent: any = current?.parent;\n while (parent) {\n const siblings: ComponentBase[] = (parent.controls?.items || []).filter((it: any) => it !== current);\n const q: ComponentBase[] = siblings.slice();\n while (q.length) {\n const node = q.shift()!;\n if (!node || (node as any).isDisposed) continue;\n if ((node as any).__isRouterView) {\n const rv = node as any as RouterView;\n if ((rv.props.name || 'default') === name) return rv;\n }\n if ((node as any).controls && (node as any).controls.items && (node as any).controls.items.length) {\n for (const ch of (node as any).controls.items) q.push(ch);\n }\n }\n current = parent;\n parent = parent.parent;\n }\n\n // 4) Hiçbir yerde bulunmadı\n return null;\n }\n\n}","import { $, Application, dom, safeCallSilentAsync } from \"..\";\nimport { Component } from \"../\";\nimport { NavigationDirection, NavigationOptions, ResolveResult, RouteInfo, RouteResolveContext, RouterOptions, StackEntryInfo } from \"./\";\nimport type { RouteSnapshot } from \"./routerState\";\nimport { ScrollMemory } from \"./scrollMemory\";\nimport { NavigationStack, StackNavigation } from \"./NavigationStack\";\nimport { RouteCollection, compareRouteRecords } from \"./\";\nimport { RouteItem, RouteRecord, RouterValidateEventArgs } from \"./\";\nimport { RoutingEngine } from \"./\";\nimport { errorHandler } from \"../common/ErrorHandler\";\nimport { motifError, reportError, reportWarning } from \"../common/diagnostics\";\n\nconst pathOf = (uri: string): string => uri.split('#')[0].split('?')[0];\n\ntype HistoryStamp = { index: number; session: string; hasState?: boolean };\n\ntype TraversalInfo = { direction: NavigationDirection; state: any; from: HistoryStamp | null };\n\nconst newHistorySession = (): string => Math.random().toString(36).slice(2, 10) + Date.now().toString(36);\n\nexport class UrlRoutingModule {\n private static readonly MAX_REDIRECTS = 10;\n private _routerOptions: RouterOptions;\n private routingEngine: RoutingEngine;\n routeCollection!: RouteCollection\n private routesMap: Map<any, RouteItem> = new Map();\n private mainApp!: Component;\n private application: Application;\n private _suppressBeforeEachOnce: boolean = false;\n private _suppressMiddlewaresOnce: boolean = false;\n private _scroll: ScrollMemory | null = null;\n\n constructor(options: RouterOptions, application: Application) {\n this._routerOptions = options;\n this.routeCollection = new RouteCollection(options.RouteItems);\n this.routingEngine = new RoutingEngine();\n this.application = application;\n this._installLinkInterceptor();\n\n const scrollMemory = options.scrollMemory;\n if (scrollMemory) {\n this._scroll = new ScrollMemory(scrollMemory === true ? {} : scrollMemory);\n this._scroll.locationAnchor = this._addressMode() === 'history';\n }\n\n if (options.stack && options.mode !== 'shell') {\n this._stack = new NavigationStack(options.stack);\n this.routingEngine.stack = this._stack;\n }\n }\n\n private _stack: NavigationStack | null = null;\n public getHooks(): RouterOptions['hooks'] | undefined {\n return this._routerOptions.hooks;\n }\n\n private _windowNavListener: ((this: Window, ev: Event) => any) | null = null;\n public start(mainApp: Component, shellUri?: string) {\n this.mainApp = mainApp;\n this.routingEngine.register(this.mainApp, this.application, this);\n const path = this._routerOptions.mode === 'shell' ? (shellUri ?? '/') : this._getCurrentUri();\n this._seedHistoryIndex();\n this._suppressMiddlewaresOnce = true;\n this.navigate(path);\n if (this._routerOptions.mode === 'shell') return;\n this._windowNavListener = () => {\n void this._onHistoryTraversal();\n };\n window.addEventListener(\n this._routerOptions.mode === 'hash' || this._routerOptions.mode === 'file' ? 'hashchange' : 'popstate',\n this._windowNavListener\n );\n }\n\n public get shownUri(): string | undefined {\n return this._previousRoute ? this._currentUri : undefined;\n }\n\n private _getCurrentUri(): string {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'hash' || mode === 'file') {\n const h = w?.location?.hash || '';\n return h && h.startsWith('#') ? h.slice(1) || '/' : '/';\n }\n return (w?.location?.pathname || '/') + (w?.location?.search || '');\n } catch { return '/'; }\n }\n\n private static readonly HISTORY_STAMP_KEY = '__motifHistory';\n private _historyStamp: HistoryStamp | null = null;\n\n private _addressMode(): NonNullable<RouterOptions['mode']> {\n const w = window as any;\n return this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n }\n\n private _readHistoryStamp(): HistoryStamp | null {\n try {\n const state = (window as any)?.history?.state;\n const stamp = state && typeof state === 'object' ? state[UrlRoutingModule.HISTORY_STAMP_KEY] : null;\n if (stamp && typeof stamp === 'object' && typeof stamp.index === 'number' && Number.isFinite(stamp.index) && typeof stamp.session === 'string') {\n return { index: stamp.index, session: stamp.session };\n }\n } catch { }\n return null;\n }\n\n private static _isPlainObject(value: any): boolean {\n if (!value || typeof value !== 'object') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n }\n\n private _withHistoryStamp(state: any, stamp: HistoryStamp): any {\n if (state == null) return { [UrlRoutingModule.HISTORY_STAMP_KEY]: stamp };\n if (UrlRoutingModule._isPlainObject(state)) {\n return { ...state, [UrlRoutingModule.HISTORY_STAMP_KEY]: stamp };\n }\n return state;\n }\n\n private _routerState(userState: any, stamp: HistoryStamp): any {\n return userState\n ? this._withHistoryStamp(userState, { ...stamp, hasState: true })\n : this._withHistoryStamp(null, stamp);\n }\n\n private _userStateOf(historyState: any): any {\n if (historyState == null) return undefined;\n if (!UrlRoutingModule._isPlainObject(historyState)) return historyState;\n const key = UrlRoutingModule.HISTORY_STAMP_KEY;\n if (!(key in historyState)) return historyState;\n const stamp = historyState[key];\n if (!stamp || stamp.hasState !== true) return undefined;\n const { [key]: _omit, ...rest } = historyState;\n return rest;\n }\n\n private _currentHistoryUserState(): any {\n if (this._addressMode() === 'shell') return undefined;\n try { return this._userStateOf((window as any)?.history?.state); } catch { return undefined; }\n }\n\n private _nextHistoryStamp(push: boolean): HistoryStamp {\n const base = this._historyStamp;\n if (!base) return { index: 0, session: newHistorySession() };\n return { index: push ? base.index + 1 : base.index, session: base.session };\n }\n\n private _stampCurrentEntry(stamp: HistoryStamp, userState?: any): void {\n try {\n const w = window as any;\n if (!w?.history || typeof w.history.replaceState !== 'function') return;\n const current = w.history.state;\n let next: any;\n if (userState) {\n next = this._routerState(userState, stamp);\n } else {\n const hasState = UrlRoutingModule._isPlainObject(current) && Object.keys(current).length > 0;\n next = this._withHistoryStamp(current, hasState ? { ...stamp, hasState: true } : stamp);\n }\n if (next !== current) w.history.replaceState(next, '');\n } catch { }\n }\n\n private _seedHistoryIndex(): void {\n if (this._addressMode() === 'shell') return;\n const existing = this._readHistoryStamp();\n if (existing) {\n this._historyStamp = existing;\n return;\n }\n const stamp: HistoryStamp = { index: 0, session: newHistorySession() };\n this._stampCurrentEntry(stamp);\n this._historyStamp = stamp;\n }\n\n private _pendingTraversal: TraversalInfo | null = null;\n\n private async _onHistoryTraversal(): Promise<void> {\n const shown = this._historyStamp;\n const arrived = this._readHistoryStamp();\n this._historyStamp = arrived;\n let direction: NavigationDirection = 'traverse';\n if (shown && arrived && shown.session === arrived.session && shown.index !== arrived.index) {\n direction = arrived.index < shown.index ? 'back' : 'forward';\n }\n this._pendingTraversal = { direction, state: this._currentHistoryUserState(), from: shown };\n let result: any;\n try {\n result = await this.navigate(this._getCurrentUri());\n } finally {\n this._pendingTraversal = null;\n }\n const cancelled = !!result && result.cancelled === true;\n try { this._stack?.traversalSettled(cancelled); } catch { }\n if (!cancelled) return;\n const now = this._readHistoryStamp();\n this._historyStamp = now;\n if (!shown || !now || now.session !== shown.session) return;\n const delta = shown.index - now.index;\n if (delta === 0) return;\n try { (window as any).history.go(delta); } catch { }\n }\n\n private _currentUri: string = '___startup___';\n private _previousRoute: any = null;\n\n public get currentUri(): string {\n return this._currentUri;\n }\n\n public async navigate(uri: string, options?: NavigationOptions): Promise<any> {\n const traversal = this._pendingTraversal;\n this._pendingTraversal = null;\n\n return await safeCallSilentAsync(async () => {\n\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('route:navigation-start', { uri }); } catch { }\n const suppressBeforeEachThisCall = this._suppressBeforeEachOnce;\n if (suppressBeforeEachThisCall) {\n this._suppressBeforeEachOnce = false;\n }\n const suppressMiddlewaresThisCall = this._suppressMiddlewaresOnce;\n if (suppressMiddlewaresThisCall) {\n this._suppressMiddlewaresOnce = false;\n }\n const navOptions: NavigationOptions = options || {};\n const force = navOptions.force || false;\n\n if (uri === this._currentUri && !force) {\n return { ok: true, skipped: true, uri };\n }\n\n let gate: { proceed: boolean; uri: string };\n if (suppressMiddlewaresThisCall) {\n gate = { proceed: true, uri };\n } else {\n gate = await this._runMiddlewares(uri);\n }\n\n if (!gate.proceed) {\n return {\n ok: false,\n uri: gate.uri,\n cancelled: true,\n reason: 'middleware'\n };\n }\n uri = gate.uri;\n\n let target = this.resolve(uri);\n\n let redirectedFrom: string | undefined;\n let redirectError: Error | undefined;\n let redirectChain = '';\n if (target.ok && target.route?.redirect) {\n const requested = uri;\n const visited: string[] = [requested];\n while (target.ok && target.route?.redirect) {\n const next = this._resolveRedirect(target, uri);\n if (!next) break;\n if (visited.length > UrlRoutingModule.MAX_REDIRECTS || visited.some(v => pathOf(v) === pathOf(next))) {\n redirectChain = [...visited, next].join(' → ');\n redirectError = motifError('MJX303', redirectChain);\n break;\n }\n visited.push(next);\n uri = next;\n target = this.resolve(uri);\n }\n if (redirectError) {\n reportWarning('MJX303', [redirectChain]);\n uri = requested;\n target = this._buildFallbackResult(uri, 'error', { path: uri, error: redirectError });\n } else if (uri !== requested) {\n redirectedFrom = requested;\n if (uri === this._currentUri && !force) {\n return { ok: true, skipped: true, uri };\n }\n }\n }\n\n const wasInitialNavigation = !this._previousRoute;\n const direction: NavigationDirection = wasInitialNavigation\n ? 'initial'\n : traversal ? traversal.direction : (navOptions.replace ? 'replace' : 'push');\n const entryState = traversal\n ? traversal.state\n : (wasInitialNavigation && navOptions.state === undefined ? this._currentHistoryUserState() : (navOptions.state || undefined));\n\n const toRoute = {\n path: target.uri || uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n options: options,\n redirectedFrom,\n direction,\n state: entryState\n };\n\n const fromRoute = this._previousRoute ? {\n path: this._previousRoute.path,\n params: this._previousRoute.params,\n meta: this._previousRoute.meta,\n options: this._previousRoute.options\n } : null;\n\n if (this._previousRoute && this._previousRoute.routeItem) {\n const currentRouteItem = this._previousRoute.routeItem as RouteItem;\n const leaveHook = currentRouteItem.onLeave || this._routerOptions.hooks?.onLeave;\n if (leaveHook) {\n try {\n const leaveContext = {\n from: {\n path: this._previousRoute.path,\n params: this._previousRoute.params,\n meta: this._previousRoute.meta\n },\n to: toRoute\n };\n const leaveResult = await leaveHook(leaveContext);\n if (leaveResult === false) {\n return { ok: false, cancelled: true, reason: 'onLeave' };\n }\n if (leaveResult && typeof leaveResult === 'object' && (leaveResult as any).cancel === true) {\n const customReason = (leaveResult as any).reason || 'onLeave';\n return { ok: false, cancelled: true, reason: customReason };\n }\n } catch (error) {\n reportError('MJX306', error, 'onLeave');\n }\n }\n }\n\n let guardResult: string | false | true = true;\n if (!suppressBeforeEachThisCall) {\n guardResult = await this.application._runBeforeEachGuards(toRoute, fromRoute);\n }\n\n if (guardResult === false) {\n return { ok: false, cancelled: true, reason: 'guard' };\n }\n\n if (typeof guardResult === 'string') {\n const addressShowsBlocked = this._addressShows(uri, redirectedFrom);\n return await this.navigate(guardResult, addressShowsBlocked ? { ...navOptions, replace: true } : options);\n }\n\n const snapshotOf = (result: ResolveResult): RouteSnapshot => ({\n target: result,\n chain: result.chain.map(r => this.routingEngine.generatePathString(r.path, result.params) || ''),\n direction,\n state: entryState,\n });\n\n if (!target.ok && !redirectError) {\n target = this._buildFallbackResult(uri, 'notFound', { path: uri });\n }\n this._currentUri = uri;\n this._previousRoute = {\n path: target.uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n routeItem: target.route\n };\n\n let appliedPath = target.uri;\n\n this._scroll?.leaving();\n\n const leavingStamp = traversal ? traversal.from : this._historyStamp;\n try {\n const replaceSource = !!redirectedFrom && this._addressShows(redirectedFrom);\n this._applyUrl(appliedPath, replaceSource ? { ...navOptions, replace: true } : navOptions);\n } catch { }\n const stackNav: StackNavigation | undefined = this._stack\n ? { direction, from: leavingStamp, to: this._historyStamp, uri: appliedPath }\n : undefined;\n\n try {\n await this.routingEngine.execute(target, stackNav, snapshotOf(target));\n } catch (error) {\n reportError('MJX304', error);\n target = this._buildFallbackResult(uri, 'error', { path: uri, error });\n try { await this.routingEngine.execute(target, stackNav, snapshotOf(target)); } catch (e2) { reportError('MJX305', e2); }\n }\n if (this._stack) this.application._routerState.touch();\n if (navOptions.scroll) { \n this._handleScrollBehavior(navOptions.scroll);\n } else {\n this._scroll?.arrived(this._uriWithHash(appliedPath, uri));\n }\n this.application.fire?.('motifjs-router-navigated', {\n uri: appliedPath,\n params: target.params,\n meta: (target as any).meta ?? target.extend,\n route: target.ok ? target.route : null,\n ok: target.ok,\n initial: wasInitialNavigation,\n redirectedFrom,\n direction,\n state: entryState\n });\n try { (globalThis as any).__MOTIF_DEVTOOLS_BUS__?.publish?.('route:navigation-end', { uri: appliedPath, params: target.params }); } catch { }\n\n return target;\n\n }, 'UrlRoutingModule.navigate');\n\n }\n \n public describeStack(): StackEntryInfo[] | undefined {\n return this._stack ? this._stack.describe() : undefined;\n }\n\n public routeInfos(): RouteInfo[] {\n const out: RouteInfo[] = [];\n const visit = (node: RouteItem, chain: RouteItem[]) => {\n const nextChain = [...chain, node];\n out.push({\n fullPath: node.fullPath || node.path,\n name: node.name ?? null,\n meta: node.meta ?? node.extend ?? {},\n route: node,\n chain: nextChain,\n });\n for (const child of node.childs || []) visit(child, nextChain);\n };\n for (const node of this.routeCollection?.['routes'] || []) visit(node, []);\n return out;\n }\n\n public href(name: string, params?: Record<string, any>): string {\n const routeItem = this.routeCollection['routesMap']?.get(name);\n if (!routeItem) throw motifError('MJX302', name);\n const path = routeItem.fullPath || routeItem.path;\n return this.routingEngine.generatePathString(path, params || {}) || path;\n }\n\n public async evict(route?: RouteItem | string | null): Promise<void> {\n let item: RouteItem | null | undefined = null;\n if (typeof route === 'string') {\n item = this.routeCollection['routesMap']?.get(route);\n if (!item) throw motifError('MJX302', String(route));\n } else {\n item = route;\n }\n await this.routingEngine.evict(item);\n }\n\n private _fallbackRoutes: { notFound?: RouteItem; error?: RouteItem } = {};\n\n private _getFallbackRoute(kind: 'notFound' | 'error'): RouteItem {\n const existing = this._fallbackRoutes[kind];\n if (existing) return existing;\n const custom = this._routerOptions.fallbacks?.[kind];\n const control = custom ?? (kind === 'notFound' ? UrlRoutingModule._builtinNotFound : UrlRoutingModule._builtinError);\n const item: RouteItem = {\n path: '',\n fullPath: null,\n control,\n name: kind === 'notFound' ? 'not-found' : 'error',\n childs: [],\n extend: {},\n meta: {},\n validate: undefined,\n keepAlive: false,\n };\n this._fallbackRoutes[kind] = item;\n return item;\n }\n\n private _buildFallbackResult(uri: string, kind: 'notFound' | 'error', params: Record<string, any>): ResolveResult {\n const fallback = this._getFallbackRoute(kind);\n const prefix = this._findLayoutPrefix(uri);\n const chain = [...(prefix?.chain ?? []), fallback];\n const mergedExtend: Record<string, any> = {};\n const mergedMeta: Record<string, any> = {};\n for (const item of chain) {\n if (item?.extend && typeof item.extend === 'object') Object.assign(mergedExtend, item.extend);\n if (item?.meta && typeof item.meta === 'object') Object.assign(mergedMeta, item.meta);\n }\n return {\n ok: false,\n uri,\n fullPath: null,\n route: fallback,\n chain,\n params: { ...(prefix?.params ?? {}), ...params },\n extend: mergedExtend,\n meta: mergedMeta,\n };\n }\n\n private _findLayoutPrefix(uri: string): { chain: RouteItem[]; params: Record<string, any> } | null {\n const path = uri.split('?')[0].split('#')[0];\n const segs = path.split('/').filter(Boolean);\n let best: { rec: RouteRecord; params: Record<string, any>; depth: number } | null = null;\n for (const rec of this.routeCollection?.records || []) {\n if (!rec.leaf.childs || !rec.leaf.childs.length) continue;\n const depth = rec.fullPath.split('/').filter(Boolean).length;\n if (depth > segs.length) continue;\n const prefix = '/' + segs.slice(0, depth).join('/');\n let matched = false;\n try { matched = rec.scanner.exist(prefix, this._pageSearch()); } catch { matched = false; }\n if (!matched) continue;\n const params = { ...rec.scanner.parameters };\n if (!this.validateChain(prefix, rec, params)) continue;\n if (!best || rec.chain.length > best.rec.chain.length || (rec.chain.length === best.rec.chain.length && depth > best.depth)) {\n best = { rec, params, depth };\n }\n }\n return best ? { chain: best.rec.chain, params: best.params } : null;\n }\n\n private static _builtinNotFound = () => new Component('div', {\n initializeComponent(sender: Component) {\n sender.style({\n padding: '20px', fontFamily: 'Arial, sans-serif', display: 'flex', 'flex-direction': 'column', 'align-items': 'center'\n });\n (sender.element as HTMLElement).appendChild($('h2', {}, ...['404 - Not Found']));\n (sender.element as HTMLElement).appendChild($('p', {}, ...['The requested page was not found.']));\n },\n });\n\n private static _builtinError = () => new Component('div', {\n initializeComponent(sender: Component) {\n sender.style({\n padding: '20px', fontFamily: 'Arial, sans-serif', display: 'flex', 'flex-direction': 'column', 'align-items': 'center'\n });\n (sender.element as HTMLElement).appendChild($('h2', {}, ...['Error']));\n (sender.element as HTMLElement).appendChild($('p', {}, ...['The requested page could not be loaded.']));\n },\n });\n\n public async navigateByName(name: string, params?: Record<string, any>, options?: NavigationOptions): Promise<any> {\n\n return await this.navigate(this.href(name, params), options);\n }\n\n private async _runMiddlewares(initialUri: string): Promise<{ proceed: boolean, uri: string }> {\n let urix = initialUri;\n const ctx: RouteResolveContext = {\n uri: urix,\n rewritePath: (uri: string) => {\n urix = uri;\n (ctx as any).uri = uri;\n },\n context: this.application\n };\n let proceed = false;\n const stack = this._routerOptions.middlewareCollections ? this._routerOptions.middlewareCollections() || [] : [];\n const dispatch = async (i: number): Promise<void> => {\n if (i === stack.length) { proceed = true; return; }\n const fn = stack[i];\n await fn(ctx, async () => { await dispatch(i + 1); });\n };\n if (stack.length === 0) {\n proceed = true;\n } else {\n await dispatch(0);\n }\n return { proceed, uri: urix };\n }\n\n public resolve(uri: string): ResolveResult {\n const candidates: Array<{ rec: RouteRecord; params: Record<string, any> }> = [];\n const pageSearch = this._pageSearch();\n for (const rec of this.routeCollection?.records! || []) {\n if (!rec.scanner.exist(uri, pageSearch)) continue;\n const params = { ...rec.scanner.parameters };\n if (!this.validateChain(uri, rec, params)) continue;\n candidates.push({ rec, params });\n }\n\n if (candidates.length === 0) {\n const catchAll = (this.routeCollection?.records || []).find(r => r.scanner.exist('/*'));\n if (catchAll) {\n const mergedExtend: Record<string, any> = {};\n try {\n for (const item of catchAll.chain) {\n if (item && item.extend && typeof item.extend === 'object') {\n Object.assign(mergedExtend, item.extend);\n }\n }\n } catch { /* ignore */ }\n\n return {\n ok: true,\n uri,\n fullPath: catchAll.fullPath,\n route: catchAll.leaf,\n chain: catchAll.chain,\n params: {},\n extend: mergedExtend || {},\n meta: (catchAll as any).meta || {}\n };\n }\n\n return {\n ok: false,\n uri,\n fullPath: null,\n route: null,\n chain: [],\n params: {},\n extend: {}\n };\n }\n\n let best = candidates[0];\n const groups = new Map<string, Array<{ rec: RouteRecord; params: Record<string, any> }>>();\n for (const c of candidates) {\n // Aynı path grubunda en uzun zincirli olanı seç.\n const key = c.rec.fullPath;\n const arr = groups.get(key) || [];\n arr.push(c); groups.set(key, arr);\n }\n let pickedFromDuplicate = false;\n for (const [key, arr] of groups) {\n if (arr.length > 1) {\n // Legacy sıralamaya dön: sığ zincir önce, sonra uzun fullPath. \n const pool = arr.some(c => !c.rec.aliasOf) ? arr.filter(c => !c.rec.aliasOf) : arr;\n const deepest = pool.reduce((a, b) => a.rec.chain.length >= b.rec.chain.length ? a : b);\n best = deepest;\n pickedFromDuplicate = true;\n break;\n }\n }\n if (!pickedFromDuplicate) {\n // En iyi adayı ResolveResult'a dönüştür.\n // Ortak tercih kuralı (RouteCollection.compareRouteRecords): sığ zincir, statik segment, az parametre, uzun path\n best = candidates.reduce((a, b) => compareRouteRecords(a.rec, b.rec) <= 0 ? a : b, candidates[0]);\n }\n\n const rec = best.rec;\n const params = best.params;\n const mergedExtend: Record<string, any> = {};\n try {\n for (const item of rec.chain) {\n if (item && item.extend && typeof item.extend === 'object') {\n Object.assign(mergedExtend, item.extend);\n }\n }\n } catch { /* ignore */ }\n return {\n ok: true,\n uri,\n fullPath: rec.fullPath,\n aliasOf: rec.aliasOf ?? null,\n route: rec.leaf,\n chain: rec.chain,\n params,\n extend: mergedExtend,\n meta: (() => {\n const mergedMeta: Record<string, any> = {};\n try {\n for (const item of rec.chain) {\n if (item && (item as any).meta && typeof (item as any).meta === 'object') {\n Object.assign(mergedMeta, (item as any).meta);\n }\n }\n } catch { /* ignore */ }\n return mergedMeta;\n })()\n };\n }\n\n // Doğrulama başarısızsa zincir geçersiz.\n private validateChain(uri: string, rec: RouteRecord, params: Record<string, any>): boolean {\n for (const item of rec.chain) {\n if (typeof item.validate === 'function') {\n const e: RouterValidateEventArgs = {\n uri,\n key: item.name ?? rec.fullPath,\n // createInstance: control alanından gerçek component instance'ını üretir.\n routes: this.routesMap,\n params\n };\n // Fonksiyon ise: doğrudan çağırmayı dener (factory gibi).\n if (!item.validate(e)) return false;\n }\n }\n return true;\n }\n\n private _navHandler: ((e: Event) => void) | null = null;\n private _installLinkInterceptor() {\n try {\n if (this._navHandler) return;\n this._navHandler = (ev: Event) => {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n let el = ev.target as HTMLElement | null;\n while (el && el !== document.body) {\n if (el instanceof HTMLAnchorElement) break;\n el = el.parentElement;\n }\n if (!el || !(el instanceof HTMLAnchorElement)) return;\n // opt-in via data-router-link veya rel=\"router\"\n const rel = el.getAttribute('rel') || '';\n const optIn = el.getAttribute(\"x-command\") == 'router' || el.hasAttribute('data-router-link') || rel.toLowerCase() === 'router';\n if (!optIn) return;\n // modifier keys veya target=\"_blank\" => ignore\n const a = el as HTMLAnchorElement;\n if (a.target && a.target !== '_self') return;\n if ((ev as MouseEvent).metaKey || (ev as MouseEvent).ctrlKey || (ev as MouseEvent).shiftKey || (ev as MouseEvent).altKey) return;\n let href = a.getAttribute('href') || '';\n if (!href) {\n href = a.getAttribute('x-to') || '';\n };\n if (!href) return;\n // same-origin kontorlü (history mode için)\n if (mode === 'history') {\n const u = new URL(href, w.location.href);\n if (u.origin !== w.location.origin) return;\n ev.preventDefault();\n const path = u.pathname + u.search + u.hash;\n this.navigate(path);\n return;\n }\n ev.preventDefault();\n const path = href.startsWith('#') ? href.slice(1) : href;\n this.navigate(path);\n };\n document.addEventListener('click', this._navHandler);\n } catch { }\n }\n\n private _applyUrl(uri: string, options: NavigationOptions = {}) {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'shell') return; // shell mode'da URL değişikliğine izin verme\n\n if (mode === 'hash' || mode === 'file') {\n const target = uri.startsWith('#') ? uri : ('#' + uri);\n if (w?.location?.hash !== target) {\n if (options.replace && w?.history && typeof w.history.replaceState === 'function') {\n const stamp = this._nextHistoryStamp(false);\n w.history.replaceState(this._routerState(options.state, stamp), '', target);\n this._historyStamp = stamp;\n } else {\n w.location.hash = target;\n const stamp = this._nextHistoryStamp(true);\n this._stampCurrentEntry(stamp, options.state);\n this._historyStamp = stamp;\n }\n }\n return;\n }\n\n if (w?.history && typeof w.history.pushState === 'function') {\n const current = (w.location.pathname || '/') + (w.location.search || '');\n if (current !== uri) {\n if (options.replace) {\n const stamp = this._nextHistoryStamp(false);\n w.history.replaceState(this._routerState(options.state, stamp), '', uri);\n this._historyStamp = stamp;\n } else {\n const stamp = this._nextHistoryStamp(true);\n w.history.pushState(this._routerState(options.state, stamp), '', uri);\n this._historyStamp = stamp;\n }\n }\n }\n } catch { }\n }\n\n private _resolveRedirect(target: ResolveResult, uri: string): string | null {\n const redirect = target.route?.redirect;\n if (!redirect) return null;\n if (typeof redirect === 'function') {\n const result = redirect({\n path: target.uri,\n params: target.params,\n meta: (target as any).meta ?? target.extend\n });\n return typeof result === 'string' && result.length > 0 ? result : null;\n }\n const path = this.routingEngine.generatePathString(redirect, target.params || {});\n const hashIndex = uri.indexOf('#');\n const hash = hashIndex >= 0 ? uri.slice(hashIndex) : '';\n const beforeHash = hashIndex >= 0 ? uri.slice(0, hashIndex) : uri;\n const queryIndex = beforeHash.indexOf('?');\n const query = queryIndex >= 0 ? beforeHash.slice(queryIndex) : '';\n const ownHashIndex = path.indexOf('#');\n const ownHash = ownHashIndex >= 0 ? path.slice(ownHashIndex) : '';\n let result = ownHashIndex >= 0 ? path.slice(0, ownHashIndex) : path;\n if (query && !result.includes('?')) result += query;\n return result + (ownHash || hash);\n }\n\n private _pageSearch(): string | undefined {\n try {\n const w = window as any;\n const mode = this._routerOptions.mode || (w?.location?.protocol === 'file:' ? 'hash' : 'history');\n if (mode === 'history' || mode === 'shell') return undefined;\n return w?.location?.search || undefined;\n } catch { return undefined; }\n }\n\n private _addressShows(...uris: Array<string | undefined>): boolean {\n const current = this._getCurrentUri().split('#')[0];\n return uris.some(u => !!u && u.split('#')[0] === current);\n }\n\n private _uriWithHash(appliedPath: string, requestedUri: string): string {\n const index = requestedUri.indexOf('#');\n if (index < 0 || appliedPath.indexOf('#') >= 0) return appliedPath;\n return appliedPath + requestedUri.slice(index);\n }\n\n private _handleScrollBehavior(scrollOption?: NavigationOptions['scroll']) {\n if (!scrollOption) return;\n\n try {\n if (scrollOption === 'top') {\n window.scrollTo({ top: 0, behavior: 'auto' });\n } else if (scrollOption === 'smooth') {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n } else if (scrollOption === 'instant') {\n window.scrollTo({ top: 0, behavior: 'instant' });\n } else if (typeof scrollOption === 'object') {\n window.scrollTo({\n top: scrollOption.top || 0,\n left: scrollOption.left || 0,\n behavior: scrollOption.behavior || 'auto'\n });\n }\n } catch { }\n }\n\n public dispose(): Promise<void> {\n try { this._scroll?.dispose(); } catch { }\n this._scroll = null;\n this._historyStamp = null;\n let done: Promise<void> = Promise.resolve();\n try {\n // keepAlive önbelleğindeki örnekleri bırak\n try { done = this.routingEngine.dispose(); } catch { }\n if (this._navHandler) {\n try { document.removeEventListener('click', this._navHandler); } catch { }\n this._navHandler = null;\n }\n if (this._windowNavListener) {\n const evt = this._routerOptions.mode === 'hash' || this._routerOptions.mode === 'file' ? 'hashchange' : 'popstate';\n try { window.removeEventListener(evt, this._windowNavListener); } catch { }\n this._windowNavListener = null;\n }\n } catch { }\n return done;\n }\n\n}","import { Signal } from \"../store/Signal\";\nimport { motifError } from \"../common/diagnostics\";\nimport type { UrlRoutingModule } from \"./UrlRoutingModule\";\nimport type { NavigationDirection, NavigationOptions, ResolveResult, Router } from \"./common\";\nimport type { RouteItem } from \"./RouteItem\";\n\nexport type RouteSnapshot = {\n target: ResolveResult;\n chain: string[];\n direction: NavigationDirection | undefined;\n state: any;\n};\n\nexport class RouterState {\n readonly version = new Signal(0);\n private _current: RouteSnapshot | null = null;\n private _constructing: RouteSnapshot | null = null;\n\n read(): RouteSnapshot | null {\n this.version.value;\n return this._constructing ?? this._current;\n }\n\n commit(snapshot: RouteSnapshot): void {\n this._current = snapshot;\n this.touch();\n }\n\n reset(): void {\n this._current = null;\n this.touch();\n }\n\n touch(): void {\n this.version.value = this.version.peek() + 1;\n }\n\n constructWith<T>(snapshot: RouteSnapshot | undefined, create: () => T): T {\n if (!snapshot) return create();\n const previous = this._constructing;\n this._constructing = snapshot;\n try {\n return create();\n } finally {\n this._constructing = previous;\n }\n }\n}\n\nexport function createRouter(state: RouterState, module: () => UrlRoutingModule | undefined): Router {\n const required = (): UrlRoutingModule => {\n const current = module();\n if (!current) throw motifError('MJX309');\n return current;\n };\n const target = () => state.read()?.target;\n return {\n get params() { return target()?.params ?? {}; },\n get route() { return target()?.route ?? null; },\n get ok() { return target()?.ok ?? false; },\n get uri() { return target()?.uri ?? ''; },\n get fullPath() { return target()?.fullPath ?? null; },\n get aliasOf() { return target()?.aliasOf ?? null; },\n get extend() { return target()?.extend ?? {}; },\n get meta() {\n const current = target();\n return current ? ((current as any).meta ?? current.extend) : {};\n },\n get chain() { return state.read()?.chain ?? []; },\n get direction() { return state.read()?.direction; },\n get state() { return state.read()?.state; },\n get stack() {\n state.version.value;\n return module()?.describeStack();\n },\n get routes() {\n state.version.value;\n return module()?.routeInfos() ?? [];\n },\n navigate: async (uri: string, options?: NavigationOptions) => {\n await required().navigate(uri, options);\n },\n navigateByName: async (name: string, params?: Record<string, any>, options?: NavigationOptions) => {\n await required().navigateByName(name, params, options);\n },\n evict: async (route?: RouteItem | string | null) => {\n await required().evict(route);\n },\n resolve: (uri: string) => required().resolve(uri),\n href: (name: string, params?: Record<string, any>) => required().href(name, params),\n };\n}\n","import { ServiceCollection } from \"./dependencyInjection/ServiceCollection\";\nimport { ServiceProvider } from \"./dependencyInjection/ServiceProvider\";\nimport { Component } from \"./component/Component\";\nimport { RouteItem } from \"./routing/RouteItem\";\nimport { ensureDevtoolsFlagInitialized, setRoutes, setDevtoolsEnabled, isEnabled as isDevtoolsEnabled } from \"./devtools/devbus\";\nimport { lintRoutes } from \"./devtools/routeLinter\";\nimport { initOverlayIfEnabled, initDevtoolsButton } from \"./devtools/overlay\";\nimport { RouterView } from \"./routing/RouterView\";\nimport { UrlRoutingModule } from \"./routing/UrlRoutingModule\";\nimport { RouterState, createRouter } from \"./routing/routerState\";\nimport { NavigationDirection, NavigationOptions, Router, RouteResolveContext, RouterNavigatedEventArgs, RouterEvents, RouterOptions, ScrollMemoryOptions, StackOptions } from \"./routing\";\nimport { errorHandler, safeCall, safeCallSilent, setErrorConsoleLogging } from \"./common/ErrorHandler\";\nimport { engine, configureReactivityLeakMonitor } from \"./store\";\nimport { MotifError, callReported, formatMotifMessage, motifError, reportError } from \"./common/diagnostics\";\nimport { flushCompilerContractWarnings } from \"./common/compilerContract\";\nimport { isTransitionMode, transitionSettings, TransitionMode } from \"./common/transitionRegistry\";\nimport { ComponentBase } from \"./component\";\nexport interface IStartup {\n configuration?: (services: any) => void;\n\n}\n\nlet _globalApplication: Application | null = null;\n\nexport type ApplicationState = 'initializing' | 'running' | 'disposing' | 'disposed';\nlet _globalBuilder: ApplicationBuilder | null = null;\nlet startedApplicationBuilder = false;\nconst _applicationStack = new Map<string | symbol, { builder: ApplicationBuilder, app: Application }>();\n\nexport class ApplicationBuilder {\n\n public services: ServiceCollection = new ServiceCollection();\n\n constructor() {\n if ((_globalApplication && _globalApplication.state !== 'disposing') || startedApplicationBuilder) {\n throw new MotifError('MJX405', formatMotifMessage('MJX405'), { cause: _globalApplication });\n }\n startedApplicationBuilder = true;\n }\n\n build() {\n // if (_globalApplication) {\n // throw new Error(\"ApplicationBuilder: Only one instance of ApplicationBuilder is allowed.\");\n this.services.autoRegisterInjectables();\n const provider = this.services.buildServiceProvider();\n this.services.addSingleton(ServiceProvider, provider);\n var app = new Application(provider);\n this.services.addSingleton(Application, app);\n _globalApplication = app;\n return app;\n }\n\n rebuild() {\n if (_globalApplication) {\n _globalApplication.provider.dispose();\n _globalApplication.provider = this.services.buildServiceProvider();\n return _globalApplication;\n }\n return this.build();\n }\n}\n\ninterface ApplicationEvents {\n 'router-changed': 'motifjs-router-navigated';\n}\nexport type AppLifecycleState = 'visible' | 'hidden' | 'frozen' | 'resumed' | 'restored' | 'online' | 'offline';\n\nexport type AppLifecycleEventArgs = {\n state: AppLifecycleState;\n visible: boolean;\n online: boolean;\n};\n\nexport type NavigationGuardContext = {\n to: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions, redirectedFrom?: string, direction?: NavigationDirection, state?: any };\n from: { path: string; params: Record<string, any>; meta: Record<string, any>, options?: NavigationOptions } | null;\n};\n\nexport type NavigationGuard = (\n context: NavigationGuardContext,\n next: (redirect?: string | false) => void\n) => void | Promise<void>;\n\nexport type ContainerGroups = {\n [key: string]: {\n registry: () => any;\n initialize: () => any\n };\n}\n\nexport class Application {\n public static get main(): Application {\n return _globalApplication!;\n }\n\n constructor(public provider: ServiceProvider) { }\n public static _disposingCount = 0;\n private _state: ApplicationState = 'initializing';\n private _disposing?: Promise<void>;\n public get state(): ApplicationState {\n return this._state;\n }\n private _middlewares: Array<(ctx: RouteResolveContext, next: () => Promise<void>) => any> = [];\n private _beforeEachGuards: NavigationGuard[] = [];\n public readonly _routerState = new RouterState();\n public readonly router: Router = createRouter(this._routerState, () => this.urlRoutingModule);\n private events: Map<any, Set<any>> = new Map();\n\n public static CreateBuilder(): ApplicationBuilder {\n return new ApplicationBuilder();\n }\n private appShell!: Component;\n public getAppShell(): Component {\n return this.appShell;\n }\n public run(host: HTMLElement | string | Node, appRoot?: any): void {\n safeCallSilent(() => {\n engine.startGc();\n }, 'Application.run.engine.startGc');\n let target: HTMLElement | null;\n if (typeof host === 'string') {\n target = document.querySelector(host) as HTMLElement | null;\n if (!target) throw motifError('MJX406', host);\n } else {\n target = host as HTMLElement;\n }\n let rootInstance: any = appRoot;\n\n\n this._state = 'running';\n const AppShell = new Component(target);\n this.appShell = AppShell;\n safeCallSilent(() => {\n (AppShell as any)._keepElementOnDispose = true;\n (AppShell as any).application = this;\n (AppShell as any).provider = this.provider;\n\n }, 'Application.run.setupAppShell');\n\n if (!rootInstance) {\n rootInstance = AppShell;\n rootInstance.controls.add(new RouterView({ name: 'default' }));\n } else {\n rootInstance.parent = AppShell;\n AppShell.controls.add(rootInstance);\n }\n AppShell.build();\n this._routerRoot = rootInstance;\n if (this.urlRoutingModule) {\n this.urlRoutingModule.start(rootInstance);\n this._startedRouter = this.urlRoutingModule;\n } else {\n } \n try {\n } catch { }\n }\n\n public insert(component: Component): void {\n this.appShell.controls.add(component);\n }\n public remove(component: Component): void {\n this.appShell.controls.remove(component);\n }\n\n public attach(component: Component): void {\n this.appShell.controls.add(component);\n }\n\n public detach(component: Component): void {\n this.appShell.controls.detach(component);\n }\n\n public appendToMainHost(component: Node): void {\n this.appShell.element?.appendChild(component);\n }\n\n public dispose(): Promise<void> {\n if (this._disposing) return this._disposing;\n this._state = 'disposing';\n Application._disposingCount++;\n startedApplicationBuilder = false;\n let routerDone: Promise<void> | undefined;\n safeCallSilent(() => { this._removeLifecycleListeners(); }, 'Application.dispose.lifecycle');\n safeCallSilent(() => { routerDone = (this as any).urlRoutingModule?.dispose?.(); }, 'Application.dispose.router');\n safeCallSilent(() => { engine.stopGc(); }, 'Application.dispose.gcStop');\n safeCallSilent(() => {\n try {\n const w = window as any;\n if (w && w.history && typeof w.history.replaceState === 'function') {\n // Normalize to root path; for hash mode also clear the hash\n w.history.replaceState({}, '', '/');\n }\n } catch { /* ignore */ }\n }, 'Application.dispose.resetUrl');\n transitionSettings.mode = 'concurrent';\n const shell = this.appShell;\n return this._disposing = (async () => {\n try { await routerDone; } catch (error) { reportError('MJX307', error); }\n if (shell && !shell.isDisposed) {\n try { await shell.dispose(); } catch (error) { reportError('MJX307', error); }\n }\n try { await this.provider.dispose(); } catch { }\n if (_globalApplication === this) _globalApplication = null;\n this._state = 'disposed';\n Application._disposingCount--;\n })();\n }\n\n public useTransitions(options: { mode?: TransitionMode }): Application {\n if (isTransitionMode(options?.mode)) transitionSettings.mode = options.mode;\n return this;\n }\n\n public use(callback: (ctx: RouteResolveContext, next: () => Promise<void>) => any): Application {\n this._middlewares.push(callback);\n return this;\n }\n\n public useGuard(guard: NavigationGuard): Application {\n this._beforeEachGuards.push(guard);\n return this;\n }\n\n public async _runBeforeEachGuards(to: any, from: any): Promise<string | false | true> {\n const context: NavigationGuardContext = { to, from };\n\n for (const guard of this._beforeEachGuards) {\n let redirectPath: string | false | undefined;\n let guardResolved = false;\n\n const next = (redirect?: string | false) => {\n guardResolved = true;\n redirectPath = redirect;\n };\n\n try {\n await guard(context, next);\n } catch (error) {\n reportError('MJX306', error, 'guard');\n return false;\n }\n\n if (!guardResolved) {\n return false;\n }\n\n if (redirectPath === false) {\n return false;\n }\n\n if (typeof redirectPath === 'string') {\n return redirectPath;\n }\n }\n\n return true; \n }\n\n private urlRoutingModule!: UrlRoutingModule;\n private _routerConfig: RouterOptions | null = null;\n private _routerRoot: Component | null = null;\n private _startedRouter: UrlRoutingModule | null = null;\n public useRouter(options: RouteItem[] | {\n routes: RouteItem[],\n mode?: 'history' | 'hash' | 'file' | 'shell',\n fallbacks?: { notFound?: any, error?: any },\n hooks?: RouterEvents,\n scrollMemory?: boolean | ScrollMemoryOptions,\n stack?: boolean | StackOptions\n }): Application {\n let routes: RouteItem[];\n let mode: 'history' | 'hash' | 'file' | 'shell' | undefined;\n let fallbacks: { notFound?: any, error?: any } | undefined;\n let hooks: RouterEvents | undefined;\n let scrollMemory: boolean | ScrollMemoryOptions | undefined;\n let stack: boolean | StackOptions | undefined;\n if (Array.isArray(options)) {\n routes = options;\n } else {\n routes = options.routes;\n mode = options.mode;\n fallbacks = options.fallbacks;\n hooks = options.hooks;\n scrollMemory = options.scrollMemory;\n stack = options.stack;\n }\n\n if (this.urlRoutingModule) {\n this.urlRoutingModule.dispose();\n }\n\n this._routerConfig = {\n mode,\n fallbacks,\n middlewareCollections: () => this._middlewares,\n RouteItems: routes,\n hooks,\n scrollMemory,\n stack,\n };\n this.urlRoutingModule = new UrlRoutingModule(this._routerConfig, this);\n\n this._routerState.reset();\n\n\n\n safeCallSilent(() => {\n ensureDevtoolsFlagInitialized();\n initOverlayIfEnabled();\n setRoutes(routes as any);\n if (this._isDevelopment || (globalThis as any).__MOTIF_DEV__ === true || isDevtoolsEnabled()) {\n lintRoutes(routes as any);\n }\n }, 'Application.useRouter.devtools');\n\n return this;\n }\n\n public restartRouter() {\n const root = this._routerRoot;\n if (!root || !this._routerConfig) return this;\n const previous = this._startedRouter;\n const shownUri = previous?.shownUri;\n let fresh = this.urlRoutingModule;\n if (!fresh || fresh === previous) {\n previous?.dispose();\n fresh = new UrlRoutingModule(this._routerConfig, this);\n this.urlRoutingModule = fresh;\n }\n this._routerState.reset();\n this._startedRouter = fresh;\n fresh.start(root, shownUri);\n return this;\n }\n\n public async navigate(uri: string, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigate(uri, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public async navigateByName(name: string, params?: Record<string, any>, options?: NavigationOptions) {\n if (this.urlRoutingModule) {\n return await this.urlRoutingModule.navigateByName(name, params, options);\n } else {\n throw motifError('MJX309');\n }\n }\n\n public on<T>(event: ApplicationEvents[keyof ApplicationEvents & string] | any, handler: (args?: T) => void): any {\n var e = this.events.get(event);\n if (!e) {\n this.events.set(event, new Set());\n e = this.events.get(event);\n }\n if (e) {\n e.add(handler);\n }\n return () => this.off(event, handler);\n }\n public off<T>(event: any, handler: (args?: T) => void): void {\n var e = this.events.get(event);\n if (e) {\n e.delete(handler);\n }\n }\n\n public fire<T>(event: any, args?: T): void {\n var e = this.events.get(event);\n if (e) {\n e.forEach(handler => {\n callReported(() => handler(args), 'MJX123', String(event));\n });\n }\n }\n\n public onRouterChanged(handler: (args?: RouterNavigatedEventArgs) => unknown): any {\n return this.on<RouterNavigatedEventArgs>('motifjs-router-navigated', handler);\n }\n\n public get isVisible(): boolean {\n try { return typeof document === 'undefined' || document.visibilityState !== 'hidden'; } catch { return true; }\n }\n\n public get isOnline(): boolean {\n try { return typeof navigator === 'undefined' || navigator.onLine !== false; } catch { return true; }\n }\n\n private _lifecycleOff: Array<() => void> | null = null;\n\n public onLifecycle(handler: (args?: AppLifecycleEventArgs) => unknown): () => void {\n this._installLifecycleListeners();\n return this.on<AppLifecycleEventArgs>('motifjs-app-lifecycle', handler);\n }\n\n private _emitLifecycle(state: AppLifecycleState): void {\n this.fire<AppLifecycleEventArgs>('motifjs-app-lifecycle', { state, visible: this.isVisible, online: this.isOnline });\n }\n\n private _installLifecycleListeners(): void {\n if (this._lifecycleOff) return;\n const offs: Array<() => void> = [];\n const listen = (target: EventTarget | undefined, type: string, fn: (e: any) => void) => {\n if (!target) return;\n try {\n target.addEventListener(type, fn);\n offs.push(() => { try { target.removeEventListener(type, fn); } catch { } });\n } catch { }\n };\n const doc = typeof document !== 'undefined' ? document : undefined;\n const win = typeof window !== 'undefined' ? window : undefined;\n listen(doc, 'visibilitychange', () => this._emitLifecycle(this.isVisible ? 'visible' : 'hidden'));\n listen(doc, 'freeze', () => this._emitLifecycle('frozen'));\n listen(doc, 'resume', () => this._emitLifecycle('resumed'));\n listen(win, 'pageshow', (e: PageTransitionEvent) => { if (e && e.persisted) this._emitLifecycle('restored'); });\n listen(win, 'online', () => this._emitLifecycle('online'));\n listen(win, 'offline', () => this._emitLifecycle('offline'));\n this._lifecycleOff = offs;\n }\n\n private _removeLifecycleListeners(): void {\n const offs = this._lifecycleOff;\n this._lifecycleOff = null;\n if (offs) for (const off of offs) off();\n }\n\n\n private _isDevelopment: boolean = false;\n private _enableErrorLogging: boolean = true;\n public get isDevelopmentModeEnabled(): boolean {\n return this._isDevelopment;\n }\n\n /** Enable reactive leak monitoring (dev önerilir) */\n public useReactiveMonitor(opts: { enabled?: boolean; threshold?: number; name?: string } = {}): this {\n safeCallSilent(() => { configureReactivityLeakMonitor(opts); }, 'Application.useReactiveMonitor.core');\n return this;\n }\n\n public useDevelopment(isDev: boolean = true): this {\n this._isDevelopment = isDev;\n errorHandler.setDevelopmentMode(isDev);\n safeCallSilent(() => { (globalThis as any).__MOTIF_DEV__ = isDev; }, 'Application.useDevelopment.flag');\n safeCallSilent(() => { setDevtoolsEnabled(isDev); }, 'Application.useDevelopment.devtools');\n if (isDev) flushCompilerContractWarnings();\n return this;\n }\n\n public useLogging(enabled: boolean = true): this {\n this._enableErrorLogging = enabled;\n setErrorConsoleLogging(enabled);\n return this;\n }\n\n\n\n\n}\n\n\nexport class ApplicationService {\n public static get current(): Application {\n return Application.main;\n }\n public static initialized: boolean = false;\n public static addToMain(...components: ComponentBase[]) {\n this.current && this.current.getAppShell().controls.add(...components);\n }\n}\n\nexport function useNavigation(): Router {\n return Application.main.router;\n}\n\nexport function useApplication() {\n return {\n application: Application.main,\n services: Application.main.provider,\n router: Application.main.router,\n attach(...components: ComponentBase[]) {\n Application.main && Application.main.getAppShell().controls.add(...components);\n }\n }\n}"],"names":["devWarn","findAppendableComponent","NodeTypes","liveContentBlocks","contentBlocks","STORAGE_KEY","isDevtoolsEnabled"],"mappings":"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"}
|