@reckona/mreact-compat 0.0.91 → 0.0.92
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/README.md +1 -0
- package/dist/class-component.d.ts +20 -6
- package/dist/class-component.d.ts.map +1 -1
- package/dist/class-component.js +94 -51
- package/dist/class-component.js.map +1 -1
- package/dist/context.d.ts +19 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +55 -6
- package/dist/context.js.map +1 -1
- package/dist/dom-children.d.ts +2 -0
- package/dist/dom-children.d.ts.map +1 -1
- package/dist/dom-children.js +103 -1
- package/dist/dom-children.js.map +1 -1
- package/dist/dom-host-rules.d.ts +10 -0
- package/dist/dom-host-rules.d.ts.map +1 -0
- package/dist/dom-host-rules.js +86 -0
- package/dist/dom-host-rules.js.map +1 -0
- package/dist/dom-props.d.ts +3 -2
- package/dist/dom-props.d.ts.map +1 -1
- package/dist/dom-props.js +229 -33
- package/dist/dom-props.js.map +1 -1
- package/dist/element.d.ts +9 -4
- package/dist/element.d.ts.map +1 -1
- package/dist/element.js +101 -26
- package/dist/element.js.map +1 -1
- package/dist/event-listeners.d.ts +4 -4
- package/dist/event-listeners.d.ts.map +1 -1
- package/dist/event-listeners.js +1 -1
- package/dist/event-listeners.js.map +1 -1
- package/dist/event-types.d.ts +10 -0
- package/dist/event-types.d.ts.map +1 -1
- package/dist/event-types.js.map +1 -1
- package/dist/events.js +22 -1
- package/dist/events.js.map +1 -1
- package/dist/fiber-commit.d.ts +2 -1
- package/dist/fiber-commit.d.ts.map +1 -1
- package/dist/fiber-commit.js +13 -1
- package/dist/fiber-commit.js.map +1 -1
- package/dist/fiber-reconciler.d.ts.map +1 -1
- package/dist/fiber-reconciler.js +28 -7
- package/dist/fiber-reconciler.js.map +1 -1
- package/dist/fiber-work-loop.d.ts.map +1 -1
- package/dist/fiber-work-loop.js +4 -3
- package/dist/fiber-work-loop.js.map +1 -1
- package/dist/fiber.d.ts +5 -0
- package/dist/fiber.d.ts.map +1 -1
- package/dist/fiber.js +9 -0
- package/dist/fiber.js.map +1 -1
- package/dist/hooks-entry.d.ts +3 -0
- package/dist/hooks-entry.d.ts.map +1 -0
- package/dist/hooks-entry.js +2 -0
- package/dist/hooks-entry.js.map +1 -0
- package/dist/hooks.d.ts +39 -5
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +373 -326
- package/dist/hooks.js.map +1 -1
- package/dist/host-reconciler.d.ts +3 -0
- package/dist/host-reconciler.d.ts.map +1 -1
- package/dist/host-reconciler.js +1152 -64
- package/dist/host-reconciler.js.map +1 -1
- package/dist/hydration.d.ts +1 -1
- package/dist/hydration.d.ts.map +1 -1
- package/dist/hydration.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/react-default.d.ts +4 -4
- package/dist/react-default.d.ts.map +1 -1
- package/dist/react-default.js +2 -1
- package/dist/react-default.js.map +1 -1
- package/dist/reconciler.d.ts.map +1 -1
- package/dist/reconciler.js +38 -22
- package/dist/reconciler.js.map +1 -1
- package/dist/root.d.ts.map +1 -1
- package/dist/root.js +48 -13
- package/dist/root.js.map +1 -1
- package/dist/server-render.d.ts +6 -0
- package/dist/server-render.d.ts.map +1 -0
- package/dist/server-render.js +307 -0
- package/dist/server-render.js.map +1 -0
- package/package.json +6 -2
- package/src/class-component.ts +216 -51
- package/src/context.ts +108 -9
- package/src/dom-children.ts +155 -1
- package/src/dom-host-rules.ts +115 -0
- package/src/dom-props.ts +297 -46
- package/src/element.ts +141 -31
- package/src/event-listeners.ts +6 -6
- package/src/event-types.ts +10 -0
- package/src/events.ts +32 -10
- package/src/fiber-commit.ts +16 -1
- package/src/fiber-reconciler.ts +39 -6
- package/src/fiber-work-loop.ts +4 -3
- package/src/fiber.ts +14 -0
- package/src/hooks-entry.ts +24 -0
- package/src/hooks.ts +482 -479
- package/src/host-reconciler.ts +1628 -94
- package/src/hydration.ts +1 -1
- package/src/index.ts +1 -1
- package/src/react-default.ts +1 -1
- package/src/reconciler.ts +61 -22
- package/src/root.ts +55 -12
- package/src/server-render.ts +478 -0
package/dist/dom-props.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-props.js","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getAppliedProps,\n setAppliedProps,\n type AppliedEventListener,\n type AppliedProps,\n ensureDelegatedEventListener,\n toEventNames,\n} from \"./host-event-binder.js\";\nimport { reportRecoverable, type RenderOptions } from \"./hydration.js\";\nimport type { SyntheticEvent } from \"./event-types.js\";\nimport {\n isDangerousHtmlAttribute,\n isDangerousHtmlOptIn,\n isUnsafeUrlAttribute,\n isUrlAttribute,\n} from \"./url-safety.js\";\n\nexport function applyProps(\n element: HTMLElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): void {\n const previous: AppliedProps = getAppliedProps(element) ?? {\n props: {},\n listeners: new Map<string, AppliedEventListener>(),\n };\n const nextAttributeNames = collectAttributeNames(props);\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n\n if (!preserveHydrationAttributes) {\n for (const attribute of Array.from(element.attributes)) {\n if (!nextAttributeNames.has(attribute.name)) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attribute.name}.`),\n );\n element.removeAttribute(attribute.name);\n }\n }\n }\n\n for (const [name, appliedListener] of previous.listeners) {\n const nextValue = props[name];\n\n if (nextValue !== appliedListener.handler) {\n previous.listeners.delete(name);\n }\n }\n\n for (const [name, value] of Object.entries(props)) {\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (name === \"className\") {\n applyAttribute(element, \"class\", value, path, options);\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyAttribute(element, \"for\", value, path, options);\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, previous.props[name], value, path, options);\n continue;\n }\n\n if (/^on[A-Z]/.test(name) && typeof value === \"function\") {\n if (previous.listeners.get(name)?.handler === value) {\n continue;\n }\n\n const handler = value as (event: SyntheticEvent) => void;\n for (const eventName of toEventNames(name)) {\n ensureDelegatedEventListener(options.eventRoot ?? element, eventName);\n }\n previous.listeners.set(name, { handler });\n continue;\n }\n\n if (typeof value === \"boolean\") {\n const attributeName = toDomAttributeName(name);\n if (element.hasAttribute(attributeName) !== value) {\n if (!preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n }\n }\n\n if (preserveHydrationAttributes) {\n continue;\n }\n\n (element as unknown as Record<string, unknown>)[name] = value;\n\n if (value) {\n element.setAttribute(attributeName, \"\");\n } else {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyAttribute(element, toDomAttributeName(name), value, path, options);\n }\n\n setAppliedProps(element, { props: { ...props }, listeners: previous.listeners });\n}\n\nexport function applyPostChildFormProps(\n element: HTMLElement,\n props: Record<string, unknown>,\n): void {\n const value = props.value ?? props.defaultValue;\n\n if (value === undefined || value === null) {\n return;\n }\n\n if (element instanceof HTMLInputElement) {\n element.value = String(value);\n element.setAttribute(\"value\", String(value));\n return;\n }\n\n if (element instanceof HTMLTextAreaElement) {\n element.value = String(value);\n element.textContent = String(value);\n return;\n }\n\n if (element instanceof HTMLSelectElement) {\n const nextValue = String(value);\n for (const option of Array.from(element.options)) {\n option.selected = option.value === nextValue;\n }\n }\n}\n\nfunction applyAttribute(\n element: HTMLElement,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n\n // Issue 077: srcdoc and other HTML-bearing attributes require the\n // explicit `{ __html: \"...\" }` opt-in. A plain value -- string,\n // number, boolean -- is treated as if it were null (drop the\n // attribute and log a recoverable mismatch).\n if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe HTML attribute dropped: ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (value === null || value === undefined || value === false) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const stringValue = isDangerousHtmlOptIn(value)\n ? (value as { __html: string }).__html\n : String(value);\n\n // Issue 075: URL attributes are scheme-validated against the same\n // block list used by SSR (packages/server/src/url-safety.ts). If the\n // value is unsafe we treat it as if it were null -- remove the\n // existing attribute, log a recoverable mismatch, and stop. This\n // matches react-dom's sanitizeURL posture.\n if (isUrlAttribute(name) && isUnsafeUrlAttribute(name, stringValue)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe URL scheme dropped from ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (element.getAttribute(name) !== stringValue && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (preserveHydrationAttributes) {\n return;\n }\n\n element.setAttribute(name, stringValue);\n}\n\nfunction applyFormValueProp(\n element: HTMLElement,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): boolean {\n if (element instanceof HTMLInputElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLInputElement && (name === \"checked\" || name === \"defaultChecked\")) {\n const nextChecked = value !== null && value !== undefined && value !== false;\n\n if (element.checked !== nextChecked) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: checked.\"),\n );\n }\n\n element.checked = nextChecked;\n element.defaultChecked = nextChecked;\n if (nextChecked) {\n element.setAttribute(\"checked\", \"\");\n } else {\n element.removeAttribute(\"checked\");\n }\n return true;\n }\n\n if (element instanceof HTMLTextAreaElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: textarea value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLSelectElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? undefined : String(value);\n\n for (const option of Array.from(element.options)) {\n option.selected = nextValue !== undefined && option.value === nextValue;\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction applyStyle(\n element: HTMLElement,\n previousStyle: unknown,\n nextStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n if (isStyleObject(previousStyle)) {\n for (const name of Object.keys(previousStyle)) {\n element.style.removeProperty(name);\n }\n } else if (element.hasAttribute(\"style\")) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: style.\"),\n );\n element.removeAttribute(\"style\");\n }\n\n if (isStyleObject(nextStyle)) {\n Object.assign(element.style, nextStyle);\n return;\n }\n\n element.removeAttribute(\"style\");\n}\n\nfunction collectAttributeNames(props: Record<string, unknown>): Set<string> {\n const names = new Set<string>();\n\n for (const [name, value] of Object.entries(props)) {\n if (\n name === \"children\" ||\n name === \"ref\" ||\n name === \"key\" ||\n /^on[A-Z]/.test(name) ||\n value === false ||\n value === null ||\n value === undefined\n ) {\n continue;\n }\n\n if (name === \"defaultValue\") {\n names.add(\"value\");\n continue;\n }\n\n if (name === \"defaultChecked\") {\n names.add(\"checked\");\n continue;\n }\n\n names.add(toDomAttributeName(name));\n }\n\n return names;\n}\n\nfunction toDomAttributeName(name: string): string {\n return HTML_ATTRIBUTE_ALIASES[name] ?? name;\n}\n\nconst HTML_ATTRIBUTE_ALIASES: Record<string, string> = {\n acceptCharset: \"accept-charset\",\n autoFocus: \"autofocus\",\n autoPlay: \"autoplay\",\n charSet: \"charset\",\n className: \"class\",\n colSpan: \"colspan\",\n contentEditable: \"contenteditable\",\n crossOrigin: \"crossorigin\",\n encType: \"enctype\",\n formAction: \"formaction\",\n frameBorder: \"frameborder\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\",\n maxLength: \"maxlength\",\n minLength: \"minlength\",\n noValidate: \"novalidate\",\n playsInline: \"playsinline\",\n readOnly: \"readonly\",\n rowSpan: \"rowspan\",\n spellCheck: \"spellcheck\",\n srcDoc: \"srcdoc\",\n srcSet: \"srcset\",\n tabIndex: \"tabindex\",\n useMap: \"usemap\",\n};\n\nfunction isStyleObject(value: unknown): value is Partial<CSSStyleDeclaration> {\n return typeof value === \"object\" && value !== null;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dom-props.js","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getAppliedProps,\n setAppliedProps,\n type AppliedEventListener,\n type AppliedProps,\n ensureDelegatedEventListener,\n toEventNames,\n} from \"./host-event-binder.js\";\nimport { HOST_OWN_PROPS_META } from \"./element.js\";\nimport { reportRecoverable, type RenderOptions } from \"./hydration.js\";\nimport type { SyntheticEvent } from \"./event-types.js\";\nimport {\n isDangerousHtmlAttribute,\n isDangerousHtmlOptIn,\n isUnsafeUrlAttribute,\n isUrlAttribute,\n} from \"./url-safety.js\";\nimport {\n serializeClientStyleValue,\n styleNameToCssName,\n type HostElement,\n} from \"./dom-host-rules.js\";\n\nexport function applyProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n const previous = getAppliedProps(element);\n\n if (previous === undefined && !preserveHydrationAttributes) {\n if (applyInitialRowProps(element, props)) {\n setAppliedProps(element, { props });\n return;\n }\n\n setAppliedProps(element, {\n props,\n ...applyInitialProps(element, props, path, options),\n });\n return;\n }\n\n const previousProps = previous?.props ?? {};\n let listeners = previous?.listeners;\n const previousAttributeNames = collectAttributeNames(previousProps);\n const nextAttributeNames = collectAttributeNames(props);\n\n if (!preserveHydrationAttributes) {\n for (const attributeName of previousAttributeNames) {\n if (!nextAttributeNames.has(attributeName)) {\n if (attributeName === \"style\") {\n removePreviousStyle(element, previousProps.style, path, options);\n continue;\n }\n\n if (element.hasAttribute(attributeName)) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n element.removeAttribute(attributeName);\n }\n }\n }\n }\n\n if (listeners !== undefined) {\n for (const [name, appliedListener] of listeners) {\n const nextValue = props[name];\n\n if (nextValue !== appliedListener.handler) {\n listeners.delete(name);\n }\n }\n }\n\n for (const [name, value] of Object.entries(props)) {\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (name === \"className\") {\n applyAttribute(element, \"class\", value, path, options);\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyAttribute(element, \"for\", value, path, options);\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, previousProps[name], value, path, options);\n continue;\n }\n\n if (/^on[A-Z]/.test(name) && typeof value === \"function\") {\n if (listeners?.get(name)?.handler === value) {\n continue;\n }\n\n const handler = value as (event: SyntheticEvent) => void;\n for (const eventName of toEventNames(name)) {\n ensureDelegatedEventListener(options.eventRoot ?? element, eventName);\n }\n listeners ??= new Map<string, AppliedEventListener>();\n listeners.set(name, { handler });\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if (element.hasAttribute(attributeName) !== value) {\n if (!preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n }\n }\n\n if (preserveHydrationAttributes) {\n continue;\n }\n\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyAttribute(element, toDomAttributeName(name), value, path, options);\n }\n\n setAppliedProps(element, {\n props,\n ...(listeners === undefined ? {} : { listeners }),\n });\n}\n\nfunction applyInitialProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): Pick<AppliedProps, \"listeners\"> | {} {\n let listeners: Map<string, AppliedEventListener> | undefined;\n\n for (const name in props) {\n if (!Object.prototype.hasOwnProperty.call(props, name)) {\n continue;\n }\n\n const value = props[name];\n\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (value === null || value === undefined) {\n continue;\n }\n\n if (name === \"className\") {\n applyAttribute(element, \"class\", value, path, options);\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyAttribute(element, \"for\", value, path, options);\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, undefined, value, path, options);\n continue;\n }\n\n if (/^on[A-Z]/.test(name) && typeof value === \"function\") {\n const handler = value as (event: SyntheticEvent) => void;\n for (const eventName of toEventNames(name)) {\n ensureDelegatedEventListener(options.eventRoot ?? element, eventName);\n }\n listeners ??= new Map<string, AppliedEventListener>();\n listeners.set(name, { handler });\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (value === false) {\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyAttribute(element, attributeName, value, path, options);\n }\n\n return listeners === undefined ? {} : { listeners };\n}\n\nfunction applyInitialRowProps(\n element: HostElement,\n props: Record<string, unknown>,\n): boolean {\n const meta = (props as { [HOST_OWN_PROPS_META]?: number })[HOST_OWN_PROPS_META];\n\n if (meta === undefined) {\n return false;\n }\n\n element.setAttribute(\"data-key\", String(props[\"data-key\"]));\n\n if ((meta & 1) !== 0) {\n element.setAttribute(\"class\", \"selected\");\n }\n\n if ((meta & 2) !== 0) {\n element.setAttribute(\"data-selected\", \"true\");\n }\n\n return true;\n}\n\nexport function applyPostChildFormProps(\n element: Element,\n props: Record<string, unknown>,\n): void {\n const value = props.value ?? props.defaultValue;\n\n if (value === undefined || value === null) {\n return;\n }\n\n if (element instanceof HTMLInputElement) {\n element.value = String(value);\n element.setAttribute(\"value\", String(value));\n return;\n }\n\n if (element instanceof HTMLTextAreaElement) {\n element.value = String(value);\n element.textContent = String(value);\n return;\n }\n\n if (element instanceof HTMLSelectElement) {\n const nextValue = String(value);\n for (const option of Array.from(element.options)) {\n option.selected = option.value === nextValue;\n }\n }\n}\n\nfunction applyAttribute(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n\n // Issue 077: srcdoc and other HTML-bearing attributes require the\n // explicit `{ __html: \"...\" }` opt-in. A plain value -- string,\n // number, boolean -- is treated as if it were null (drop the\n // attribute and log a recoverable mismatch).\n if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe HTML attribute dropped: ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (value === null || value === undefined || value === false) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const stringValue = isDangerousHtmlOptIn(value)\n ? (value as { __html: string }).__html\n : String(value);\n\n // Issue 075: URL attributes are scheme-validated against the same\n // block list used by SSR (packages/server/src/url-safety.ts). If the\n // value is unsafe we treat it as if it were null -- remove the\n // existing attribute, log a recoverable mismatch, and stop. This\n // matches react-dom's sanitizeURL posture.\n if (isUrlAttribute(name) && isUnsafeUrlAttribute(name, stringValue)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe URL scheme dropped from ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const currentValue = element.getAttribute(name);\n\n if (currentValue !== stringValue && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (preserveHydrationAttributes) {\n return;\n }\n\n if (currentValue === stringValue) {\n return;\n }\n\n element.setAttribute(name, stringValue);\n}\n\nfunction applyFormValueProp(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): boolean {\n if (element instanceof HTMLInputElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLInputElement && (name === \"checked\" || name === \"defaultChecked\")) {\n const nextChecked = value !== null && value !== undefined && value !== false;\n\n if (element.checked !== nextChecked) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: checked.\"),\n );\n }\n\n element.checked = nextChecked;\n element.defaultChecked = nextChecked;\n if (nextChecked) {\n element.setAttribute(\"checked\", \"\");\n } else {\n element.removeAttribute(\"checked\");\n }\n return true;\n }\n\n if (element instanceof HTMLTextAreaElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: textarea value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLSelectElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? undefined : String(value);\n\n for (const option of Array.from(element.options)) {\n option.selected = nextValue !== undefined && option.value === nextValue;\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction applyStyle(\n element: HostElement,\n previousStyle: unknown,\n nextStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n removePreviousStyle(element, previousStyle, path, options);\n\n if (isStyleObject(nextStyle)) {\n for (const [name, value] of Object.entries(nextStyle)) {\n if (value === null || value === undefined || value === false) {\n continue;\n }\n element.style.setProperty(styleNameToCssName(name), serializeClientStyleValue(name, value));\n }\n return;\n }\n\n if (nextStyle !== undefined && nextStyle !== null && nextStyle !== false) {\n element.removeAttribute(\"style\");\n }\n}\n\nfunction removePreviousStyle(\n element: HostElement,\n previousStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n if (isStyleObject(previousStyle)) {\n for (const name of Object.keys(previousStyle)) {\n element.style.removeProperty(styleNameToCssName(name));\n }\n return;\n }\n\n if (previousStyle !== undefined && element.hasAttribute(\"style\")) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: style.\"),\n );\n element.removeAttribute(\"style\");\n }\n}\n\nfunction collectAttributeNames(props: Record<string, unknown>): Set<string> {\n const names = new Set<string>();\n\n for (const [name, value] of Object.entries(props)) {\n if (\n name === \"children\" ||\n name === \"ref\" ||\n name === \"key\" ||\n /^on[A-Z]/.test(name) ||\n value === null ||\n value === undefined\n ) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (value === false && !isBooleanishStringAttribute(attributeName)) {\n continue;\n }\n\n if (name === \"defaultValue\") {\n names.add(\"value\");\n continue;\n }\n\n if (name === \"defaultChecked\") {\n names.add(\"checked\");\n continue;\n }\n\n names.add(attributeName);\n }\n\n return names;\n}\n\nfunction isBooleanishStringAttribute(name: string): boolean {\n const attributeName = toDomAttributeName(name).toLowerCase();\n return attributeName.startsWith(\"aria-\") || BOOLEANISH_STRING_ATTRIBUTES.has(attributeName);\n}\n\nconst BOOLEANISH_STRING_ATTRIBUTES = new Set<string>([\n \"contenteditable\",\n \"draggable\",\n \"spellcheck\",\n]);\n\nfunction toDomAttributeName(name: string): string {\n return DOM_ATTRIBUTE_ALIASES[name] ?? name;\n}\n\nconst DOM_ATTRIBUTE_ALIASES: Record<string, string> = {\n acceptCharset: \"accept-charset\",\n autoFocus: \"autofocus\",\n autoPlay: \"autoplay\",\n charSet: \"charset\",\n className: \"class\",\n colSpan: \"colspan\",\n contentEditable: \"contenteditable\",\n crossOrigin: \"crossorigin\",\n encType: \"enctype\",\n formAction: \"formaction\",\n frameBorder: \"frameborder\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\",\n maxLength: \"maxlength\",\n minLength: \"minlength\",\n noValidate: \"novalidate\",\n playsInline: \"playsinline\",\n readOnly: \"readonly\",\n rowSpan: \"rowspan\",\n spellCheck: \"spellcheck\",\n srcDoc: \"srcdoc\",\n srcSet: \"srcset\",\n tabIndex: \"tabindex\",\n useMap: \"usemap\",\n alignmentBaseline: \"alignment-baseline\",\n baselineShift: \"baseline-shift\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n pointerEvents: \"pointer-events\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDasharray: \"stroke-dasharray\",\n strokeDashoffset: \"stroke-dashoffset\",\n strokeLinecap: \"stroke-linecap\",\n strokeLinejoin: \"stroke-linejoin\",\n strokeMiterlimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n vectorEffect: \"vector-effect\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n};\n\nfunction isStyleObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n"]}
|
package/dist/element.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare const Suspense: unique symbol;
|
|
|
10
10
|
export declare const SuspenseList: unique symbol;
|
|
11
11
|
export declare const Activity: unique symbol;
|
|
12
12
|
export declare const Profiler: unique symbol;
|
|
13
|
+
export declare const HOST_OWN_PROPS_META: unique symbol;
|
|
13
14
|
export interface ReactCompatProviderType {
|
|
14
15
|
$$typeof: symbol;
|
|
15
16
|
context: unknown;
|
|
@@ -37,10 +38,7 @@ export interface ReactCompatPortal {
|
|
|
37
38
|
children: ReactCompatNode;
|
|
38
39
|
key: string | null;
|
|
39
40
|
}
|
|
40
|
-
export declare function createElement<P extends Record<string, unknown>>(type: ElementType<P>, config: (P &
|
|
41
|
-
key?: unknown;
|
|
42
|
-
ref?: unknown;
|
|
43
|
-
}) | null, ...children: ReactCompatNode[]): ReactCompatElement<P>;
|
|
41
|
+
export declare function createElement<P extends Record<string, unknown>>(type: ElementType<P>, config: (P & ReactReservedProps) | null, ...children: ReactCompatNode[]): ReactCompatElement<P>;
|
|
44
42
|
export declare function isReactCompatElement(value: unknown): value is ReactCompatElement;
|
|
45
43
|
export declare function createPortal(children: ReactCompatNode, container: Element, key?: unknown): ReactCompatPortal;
|
|
46
44
|
export declare function isReactCompatPortal(value: unknown): value is ReactCompatPortal;
|
|
@@ -77,6 +75,12 @@ export declare function lazy<P>(load: () => Promise<{
|
|
|
77
75
|
}>): LazyType<P>;
|
|
78
76
|
export declare const StrictMode: symbol;
|
|
79
77
|
export declare function cloneElement<P extends Record<string, unknown>>(element: ReactCompatElement<P>, props: Partial<P> | null, ...children: ReactCompatNode[]): ReactCompatElement<P>;
|
|
78
|
+
interface ReactReservedProps {
|
|
79
|
+
key?: unknown;
|
|
80
|
+
ref?: unknown;
|
|
81
|
+
__self?: unknown;
|
|
82
|
+
__source?: unknown;
|
|
83
|
+
}
|
|
80
84
|
export declare const isValidElement: typeof isReactCompatElement;
|
|
81
85
|
export declare const Children: {
|
|
82
86
|
map<T>(children: ReactCompatNode, fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T): T[] | null;
|
|
@@ -92,4 +96,5 @@ export interface ErrorBoundaryOptions {
|
|
|
92
96
|
export declare function createErrorBoundary(options: ErrorBoundaryOptions, children: ReactCompatNode): ReactCompatElement<ErrorBoundaryOptions & {
|
|
93
97
|
children: ReactCompatNode;
|
|
94
98
|
}>;
|
|
99
|
+
export {};
|
|
95
100
|
//# sourceMappingURL=element.d.ts.map
|
package/dist/element.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
|
package/dist/element.js
CHANGED
|
@@ -1,29 +1,51 @@
|
|
|
1
|
-
export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for("
|
|
1
|
+
export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for("react.transitional.element");
|
|
2
2
|
export const ERROR_BOUNDARY_TYPE = Symbol.for("modular.react.error_boundary");
|
|
3
|
-
export const FORWARD_REF_TYPE = Symbol.for("
|
|
4
|
-
export const MEMO_TYPE = Symbol.for("
|
|
5
|
-
export const LAZY_TYPE = Symbol.for("
|
|
6
|
-
export const STRICT_MODE_TYPE = Symbol.for("
|
|
7
|
-
export const PORTAL_TYPE = Symbol.for("
|
|
8
|
-
const REACT_COMPAT_PROVIDER_TYPE = Symbol.for("
|
|
9
|
-
export const Fragment = Symbol.for("
|
|
10
|
-
export const Suspense = Symbol.for("
|
|
11
|
-
export const SuspenseList = Symbol.for("
|
|
12
|
-
export const Activity = Symbol.for("
|
|
13
|
-
export const Profiler = Symbol.for("
|
|
3
|
+
export const FORWARD_REF_TYPE = Symbol.for("react.forward_ref");
|
|
4
|
+
export const MEMO_TYPE = Symbol.for("react.memo");
|
|
5
|
+
export const LAZY_TYPE = Symbol.for("react.lazy");
|
|
6
|
+
export const STRICT_MODE_TYPE = Symbol.for("react.strict_mode");
|
|
7
|
+
export const PORTAL_TYPE = Symbol.for("react.portal");
|
|
8
|
+
const REACT_COMPAT_PROVIDER_TYPE = Symbol.for("react.context");
|
|
9
|
+
export const Fragment = Symbol.for("react.fragment");
|
|
10
|
+
export const Suspense = Symbol.for("react.suspense");
|
|
11
|
+
export const SuspenseList = Symbol.for("react.suspense_list");
|
|
12
|
+
export const Activity = Symbol.for("react.activity");
|
|
13
|
+
export const Profiler = Symbol.for("react.profiler");
|
|
14
|
+
export const HOST_OWN_PROPS_META = Symbol.for("modular.react.host_own_props_meta");
|
|
15
|
+
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
14
16
|
export function createElement(type, config, ...children) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
if (typeof type === "string") {
|
|
18
|
+
const key = config?.key === undefined ? null : String(config.key);
|
|
19
|
+
const ref = config?.ref ?? null;
|
|
20
|
+
const props = copyElementProps(config);
|
|
21
|
+
if (children.length === 1) {
|
|
22
|
+
props.children = children[0];
|
|
23
|
+
}
|
|
24
|
+
else if (children.length > 1) {
|
|
25
|
+
props.children = children;
|
|
26
|
+
}
|
|
27
|
+
setHostOwnPropsMeta(props);
|
|
28
|
+
return {
|
|
29
|
+
$$typeof: REACT_COMPAT_ELEMENT_TYPE,
|
|
30
|
+
type,
|
|
31
|
+
key,
|
|
32
|
+
ref,
|
|
33
|
+
props,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const normalizedType = typeof type === "object" && type !== null ? normalizeElementType(type) : type;
|
|
37
|
+
const key = config?.key === undefined ? null : String(config.key);
|
|
38
|
+
const ref = config?.ref ?? null;
|
|
39
|
+
const props = applyDefaultProps(normalizedType, copyElementProps(config));
|
|
21
40
|
if (children.length === 1) {
|
|
22
41
|
props.children = children[0];
|
|
23
42
|
}
|
|
24
43
|
else if (children.length > 1) {
|
|
25
44
|
props.children = children;
|
|
26
45
|
}
|
|
46
|
+
if (typeof normalizedType === "string") {
|
|
47
|
+
setHostOwnPropsMeta(props);
|
|
48
|
+
}
|
|
27
49
|
return {
|
|
28
50
|
$$typeof: REACT_COMPAT_ELEMENT_TYPE,
|
|
29
51
|
type: normalizedType,
|
|
@@ -70,14 +92,9 @@ export function lazy(load) {
|
|
|
70
92
|
}
|
|
71
93
|
export const StrictMode = STRICT_MODE_TYPE;
|
|
72
94
|
export function cloneElement(element, props, ...children) {
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
});
|
|
77
|
-
const key = nextProps.key === undefined ? element.key : String(nextProps.key);
|
|
78
|
-
const ref = nextProps.ref === undefined ? element.ref : nextProps.ref;
|
|
79
|
-
delete nextProps.key;
|
|
80
|
-
delete nextProps.ref;
|
|
95
|
+
const key = props === null || props.key === undefined ? element.key : String(props.key);
|
|
96
|
+
const ref = props === null || props.ref === undefined ? element.ref : props.ref;
|
|
97
|
+
const nextProps = applyDefaultProps(element.type, copyElementProps(props, element.props));
|
|
81
98
|
if (children.length === 1) {
|
|
82
99
|
nextProps.children = children[0];
|
|
83
100
|
}
|
|
@@ -92,10 +109,28 @@ export function cloneElement(element, props, ...children) {
|
|
|
92
109
|
props: nextProps,
|
|
93
110
|
};
|
|
94
111
|
}
|
|
112
|
+
function copyElementProps(source, base) {
|
|
113
|
+
const props = base === undefined ? {} : { ...base };
|
|
114
|
+
if (source === null || source === undefined) {
|
|
115
|
+
return props;
|
|
116
|
+
}
|
|
117
|
+
for (const name in source) {
|
|
118
|
+
if (!hasOwnProperty.call(source, name)) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
if (name !== "key" && name !== "ref" && name !== "__self" && name !== "__source") {
|
|
122
|
+
props[name] = source[name];
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return props;
|
|
126
|
+
}
|
|
95
127
|
function normalizeElementType(type) {
|
|
96
128
|
return isReactCompatContextProviderShorthand(type) ? type.Provider : type;
|
|
97
129
|
}
|
|
98
130
|
function applyDefaultProps(type, props) {
|
|
131
|
+
if (typeof type !== "function" && (typeof type !== "object" || type === null)) {
|
|
132
|
+
return props;
|
|
133
|
+
}
|
|
99
134
|
const defaultProps = type
|
|
100
135
|
?.defaultProps;
|
|
101
136
|
if (defaultProps === undefined) {
|
|
@@ -117,6 +152,46 @@ function isReactCompatContextProviderShorthand(value) {
|
|
|
117
152
|
provider !== null &&
|
|
118
153
|
provider.$$typeof === REACT_COMPAT_PROVIDER_TYPE);
|
|
119
154
|
}
|
|
155
|
+
function setHostOwnPropsMeta(props) {
|
|
156
|
+
const dataKey = props["data-key"];
|
|
157
|
+
if (typeof dataKey !== "number" || !Number.isSafeInteger(dataKey) || dataKey < 0) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
let selectedState = 0;
|
|
161
|
+
for (const name in props) {
|
|
162
|
+
if (!hasOwnProperty.call(props, name) || name === "children") {
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
if (name === "data-key") {
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if (name === "className") {
|
|
169
|
+
const value = props[name];
|
|
170
|
+
if (value === undefined) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (value !== "selected") {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
selectedState |= 1;
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
if (name === "data-selected") {
|
|
180
|
+
const value = props[name];
|
|
181
|
+
if (value === undefined) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (value !== "true") {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
selectedState |= 2;
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
props[HOST_OWN_PROPS_META] =
|
|
193
|
+
dataKey * 4 + selectedState;
|
|
194
|
+
}
|
|
120
195
|
export const isValidElement = isReactCompatElement;
|
|
121
196
|
export const Children = {
|
|
122
197
|
map(children, fn) {
|
package/dist/element.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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","sourcesContent":["export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for(\"modular.react.element\");\nexport const ERROR_BOUNDARY_TYPE = Symbol.for(\"modular.react.error_boundary\");\nexport const FORWARD_REF_TYPE = Symbol.for(\"modular.react.forward_ref\");\nexport const MEMO_TYPE = Symbol.for(\"modular.react.memo\");\nexport const LAZY_TYPE = Symbol.for(\"modular.react.lazy\");\nexport const STRICT_MODE_TYPE = Symbol.for(\"modular.react.strict_mode\");\nexport const PORTAL_TYPE = Symbol.for(\"modular.react.portal\");\nconst REACT_COMPAT_PROVIDER_TYPE = Symbol.for(\"modular.react.provider\");\nexport const Fragment = Symbol.for(\"modular.react.fragment\");\nexport const Suspense = Symbol.for(\"modular.react.suspense\");\nexport const SuspenseList = Symbol.for(\"modular.react.suspense_list\");\nexport const Activity = Symbol.for(\"modular.react.activity\");\nexport const Profiler = Symbol.for(\"modular.react.profiler\");\n\nexport interface ReactCompatProviderType {\n $$typeof: symbol;\n context: unknown;\n}\n\nexport interface ReactCompatContextProviderShorthand {\n Provider: ReactCompatProviderType;\n Consumer: unknown;\n}\n\nexport type ElementType<P = Record<string, unknown>> =\n | string\n | typeof Fragment\n | typeof Suspense\n | typeof SuspenseList\n | typeof Activity\n | typeof Profiler\n | typeof ERROR_BOUNDARY_TYPE\n | typeof STRICT_MODE_TYPE\n | ReactCompatContextProviderShorthand\n | ReactCompatProviderType\n | ForwardRefType<P>\n | MemoType<P>\n | LazyType<P>\n | ((props: P) => ReactCompatNode | PromiseLike<ReactCompatNode>)\n | (new (props: P) => { render(): ReactCompatNode });\n\nexport type ReactCompatNode =\n | ReactCompatElement\n | ReactCompatPortal\n | string\n | number\n | boolean\n | null\n | undefined\n | ReactCompatNode[];\n\nexport interface ReactCompatElement<P = Record<string, unknown>> {\n $$typeof: typeof REACT_COMPAT_ELEMENT_TYPE;\n type: ElementType<P>;\n key: string | null;\n ref: unknown;\n props: P & { children?: ReactCompatNode };\n}\n\nexport interface ReactCompatPortal {\n $$typeof: typeof PORTAL_TYPE;\n container: Element;\n children: ReactCompatNode;\n key: string | null;\n}\n\nexport function createElement<P extends Record<string, unknown>>(\n type: ElementType<P>,\n config: (P & { key?: unknown; ref?: unknown }) | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const normalizedType = normalizeElementType(type);\n const props = applyDefaultProps(normalizedType, { ...config }) as P & {\n children?: ReactCompatNode;\n key?: unknown;\n ref?: unknown;\n };\n const key = props.key === undefined ? null : String(props.key);\n const ref = props.ref ?? null;\n\n delete props.key;\n delete props.ref;\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: normalizedType as ElementType<P>,\n key,\n ref,\n props: props as P & { children?: ReactCompatNode },\n };\n}\n\nexport function isReactCompatElement(\n value: unknown,\n): value is ReactCompatElement {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_ELEMENT_TYPE\n );\n}\n\nexport function createPortal(\n children: ReactCompatNode,\n container: Element,\n key?: unknown,\n): ReactCompatPortal {\n return {\n $$typeof: PORTAL_TYPE,\n container,\n children,\n key: key === undefined ? null : String(key),\n };\n}\n\nexport function isReactCompatPortal(value: unknown): value is ReactCompatPortal {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === PORTAL_TYPE\n );\n}\n\nexport function createRef<T>(): { current: T | null } {\n return { current: null };\n}\n\nexport interface ForwardRefType<P = Record<string, unknown>> {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: P, ref: unknown) => ReactCompatNode;\n}\n\nexport interface MemoType<P = Record<string, unknown>> {\n $$typeof: typeof MEMO_TYPE;\n type: ElementType<P>;\n compare?: (previous: P, next: P) => boolean;\n}\n\nexport interface LazyType<P = Record<string, unknown>> {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ElementType<P> }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ElementType<P>;\n error?: unknown;\n}\n\nexport function forwardRef<P, T>(\n render: (props: P, ref: { current: T | null } | ((value: T | null) => void) | null) => ReactCompatNode,\n): ForwardRefType<P & { ref?: unknown }> {\n return { $$typeof: FORWARD_REF_TYPE, render: render as ForwardRefType<P>[\"render\"] };\n}\n\nexport function memo<P>(\n type: ElementType<P>,\n compare?: (previous: P, next: P) => boolean,\n): MemoType<P> {\n return compare === undefined\n ? { $$typeof: MEMO_TYPE, type }\n : { $$typeof: MEMO_TYPE, type, compare };\n}\n\nexport function lazy<P>(\n load: () => Promise<{ default: ElementType<P> }>,\n): LazyType<P> {\n return {\n $$typeof: LAZY_TYPE,\n load,\n status: \"uninitialized\",\n };\n}\n\nexport const StrictMode = STRICT_MODE_TYPE;\n\nexport function cloneElement<P extends Record<string, unknown>>(\n element: ReactCompatElement<P>,\n props: Partial<P> | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const nextProps = applyDefaultProps(element.type, {\n ...element.props,\n ...props,\n }) as P & { key?: unknown; ref?: unknown };\n const key = nextProps.key === undefined ? element.key : String(nextProps.key);\n const ref = nextProps.ref === undefined ? element.ref : nextProps.ref;\n\n delete nextProps.key;\n delete nextProps.ref;\n\n if (children.length === 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children[0];\n } else if (children.length > 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: element.type,\n key,\n ref,\n props: nextProps as P & { children?: ReactCompatNode },\n };\n}\n\nfunction normalizeElementType<P>(type: ElementType<P>): ElementType<P> {\n return isReactCompatContextProviderShorthand(type) ? (type.Provider as ElementType<P>) : type;\n}\n\nfunction applyDefaultProps(\n type: unknown,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n const defaultProps = (type as { defaultProps?: Record<string, unknown> } | undefined)\n ?.defaultProps;\n\n if (defaultProps === undefined) {\n return props;\n }\n\n for (const [name, value] of Object.entries(defaultProps)) {\n if (props[name] === undefined) {\n props[name] = value;\n }\n }\n\n return props;\n}\n\nfunction isReactCompatContextProviderShorthand(\n value: unknown,\n): value is ReactCompatContextProviderShorthand {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const provider = (value as { Provider?: unknown }).Provider;\n\n return (\n typeof provider === \"object\" &&\n provider !== null &&\n (provider as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_PROVIDER_TYPE\n );\n}\n\nexport const isValidElement = isReactCompatElement;\n\nexport const Children = {\n map<T>(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T,\n ): T[] | null {\n if (children === null || children === undefined) {\n return null;\n }\n\n return flattenChildren(children).map((child, index) =>\n fn(child as Exclude<ReactCompatNode, null | undefined | boolean>, index),\n );\n },\n forEach(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => void,\n ): void {\n toChildArray(children).forEach((child, index) => {\n fn(child, index);\n });\n },\n count(children: ReactCompatNode): number {\n if (children === null || children === undefined) {\n return 0;\n }\n\n return flattenChildren(children).length;\n },\n toArray(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return toChildArray(children);\n },\n only(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean> {\n const array = toChildArray(children);\n\n if (array.length !== 1) {\n throw new Error(\"Expected exactly one child.\");\n }\n\n return array[0] as Exclude<ReactCompatNode, null | undefined | boolean>;\n },\n};\n\nfunction toChildArray(\n children: ReactCompatNode,\n): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return flattenChildren(children).filter(\n (child): child is Exclude<ReactCompatNode, null | undefined | boolean> =>\n child !== null && child !== undefined && typeof child !== \"boolean\",\n );\n}\n\nfunction flattenChildren(children: ReactCompatNode): ReactCompatNode[] {\n if (Array.isArray(children)) {\n return children.flatMap((child) => flattenChildren(child));\n }\n\n return [children];\n}\n\nexport interface ErrorBoundaryOptions {\n fallback: (error: Error) => ReactCompatNode;\n onError?: (error: Error) => void;\n}\n\nexport function createErrorBoundary(\n options: ErrorBoundaryOptions,\n children: ReactCompatNode,\n): ReactCompatElement<ErrorBoundaryOptions & { children: ReactCompatNode }> {\n return createElement(ERROR_BOUNDARY_TYPE, {\n ...options,\n children,\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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","sourcesContent":["export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\");\nexport const ERROR_BOUNDARY_TYPE = Symbol.for(\"modular.react.error_boundary\");\nexport const FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\nexport const MEMO_TYPE = Symbol.for(\"react.memo\");\nexport const LAZY_TYPE = Symbol.for(\"react.lazy\");\nexport const STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\nexport const PORTAL_TYPE = Symbol.for(\"react.portal\");\nconst REACT_COMPAT_PROVIDER_TYPE = Symbol.for(\"react.context\");\nexport const Fragment = Symbol.for(\"react.fragment\");\nexport const Suspense = Symbol.for(\"react.suspense\");\nexport const SuspenseList = Symbol.for(\"react.suspense_list\");\nexport const Activity = Symbol.for(\"react.activity\");\nexport const Profiler = Symbol.for(\"react.profiler\");\nexport const HOST_OWN_PROPS_META = Symbol.for(\"modular.react.host_own_props_meta\");\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport interface ReactCompatProviderType {\n $$typeof: symbol;\n context: unknown;\n}\n\nexport interface ReactCompatContextProviderShorthand {\n Provider: ReactCompatProviderType;\n Consumer: unknown;\n}\n\nexport type ElementType<P = Record<string, unknown>> =\n | string\n | typeof Fragment\n | typeof Suspense\n | typeof SuspenseList\n | typeof Activity\n | typeof Profiler\n | typeof ERROR_BOUNDARY_TYPE\n | typeof STRICT_MODE_TYPE\n | ReactCompatContextProviderShorthand\n | ReactCompatProviderType\n | ForwardRefType<P>\n | MemoType<P>\n | LazyType<P>\n | ((props: P) => ReactCompatNode | PromiseLike<ReactCompatNode>)\n | (new (props: P) => { render(): ReactCompatNode });\n\nexport type ReactCompatNode =\n | ReactCompatElement\n | ReactCompatPortal\n | string\n | number\n | boolean\n | null\n | undefined\n | ReactCompatNode[];\n\nexport interface ReactCompatElement<P = Record<string, unknown>> {\n $$typeof: typeof REACT_COMPAT_ELEMENT_TYPE;\n type: ElementType<P>;\n key: string | null;\n ref: unknown;\n props: P & { children?: ReactCompatNode };\n}\n\nexport interface ReactCompatPortal {\n $$typeof: typeof PORTAL_TYPE;\n container: Element;\n children: ReactCompatNode;\n key: string | null;\n}\n\nexport function createElement<P extends Record<string, unknown>>(\n type: ElementType<P>,\n config: (P & ReactReservedProps) | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n if (typeof type === \"string\") {\n const key = config?.key === undefined ? null : String(config.key);\n const ref = config?.ref ?? null;\n const props = copyElementProps(config) as P & { children?: ReactCompatNode };\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n setHostOwnPropsMeta(props);\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type,\n key,\n ref,\n props,\n };\n }\n\n const normalizedType =\n typeof type === \"object\" && type !== null ? normalizeElementType(type) : type;\n const key = config?.key === undefined ? null : String(config.key);\n const ref = config?.ref ?? null;\n const props = applyDefaultProps(normalizedType, copyElementProps(config)) as P & {\n children?: ReactCompatNode;\n };\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n if (typeof normalizedType === \"string\") {\n setHostOwnPropsMeta(props);\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: normalizedType as ElementType<P>,\n key,\n ref,\n props: props as P & { children?: ReactCompatNode },\n };\n}\n\nexport function isReactCompatElement(\n value: unknown,\n): value is ReactCompatElement {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_ELEMENT_TYPE\n );\n}\n\nexport function createPortal(\n children: ReactCompatNode,\n container: Element,\n key?: unknown,\n): ReactCompatPortal {\n return {\n $$typeof: PORTAL_TYPE,\n container,\n children,\n key: key === undefined ? null : String(key),\n };\n}\n\nexport function isReactCompatPortal(value: unknown): value is ReactCompatPortal {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === PORTAL_TYPE\n );\n}\n\nexport function createRef<T>(): { current: T | null } {\n return { current: null };\n}\n\nexport interface ForwardRefType<P = Record<string, unknown>> {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: P, ref: unknown) => ReactCompatNode;\n}\n\nexport interface MemoType<P = Record<string, unknown>> {\n $$typeof: typeof MEMO_TYPE;\n type: ElementType<P>;\n compare?: (previous: P, next: P) => boolean;\n}\n\nexport interface LazyType<P = Record<string, unknown>> {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ElementType<P> }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ElementType<P>;\n error?: unknown;\n}\n\nexport function forwardRef<P, T>(\n render: (props: P, ref: { current: T | null } | ((value: T | null) => void) | null) => ReactCompatNode,\n): ForwardRefType<P & { ref?: unknown }> {\n return { $$typeof: FORWARD_REF_TYPE, render: render as ForwardRefType<P>[\"render\"] };\n}\n\nexport function memo<P>(\n type: ElementType<P>,\n compare?: (previous: P, next: P) => boolean,\n): MemoType<P> {\n return compare === undefined\n ? { $$typeof: MEMO_TYPE, type }\n : { $$typeof: MEMO_TYPE, type, compare };\n}\n\nexport function lazy<P>(\n load: () => Promise<{ default: ElementType<P> }>,\n): LazyType<P> {\n return {\n $$typeof: LAZY_TYPE,\n load,\n status: \"uninitialized\",\n };\n}\n\nexport const StrictMode = STRICT_MODE_TYPE;\n\nexport function cloneElement<P extends Record<string, unknown>>(\n element: ReactCompatElement<P>,\n props: Partial<P> | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const key = props === null || props.key === undefined ? element.key : String(props.key);\n const ref = props === null || props.ref === undefined ? element.ref : props.ref;\n const nextProps = applyDefaultProps(\n element.type,\n copyElementProps(props, element.props),\n ) as P & { children?: ReactCompatNode };\n\n if (children.length === 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children[0];\n } else if (children.length > 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: element.type,\n key,\n ref,\n props: nextProps as P & { children?: ReactCompatNode },\n };\n}\n\nfunction copyElementProps(\n source: Record<string, unknown> | null | undefined,\n base?: Record<string, unknown>,\n): Record<string, unknown> {\n const props: Record<string, unknown> = base === undefined ? {} : { ...base };\n\n if (source === null || source === undefined) {\n return props;\n }\n\n for (const name in source) {\n if (!hasOwnProperty.call(source, name)) {\n continue;\n }\n\n if (name !== \"key\" && name !== \"ref\" && name !== \"__self\" && name !== \"__source\") {\n props[name] = source[name];\n }\n }\n\n return props;\n}\n\nfunction normalizeElementType<P>(type: ElementType<P>): ElementType<P> {\n return isReactCompatContextProviderShorthand(type) ? (type.Provider as ElementType<P>) : type;\n}\n\nfunction applyDefaultProps(\n type: unknown,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n if (typeof type !== \"function\" && (typeof type !== \"object\" || type === null)) {\n return props;\n }\n\n const defaultProps = (type as { defaultProps?: Record<string, unknown> } | undefined)\n ?.defaultProps;\n\n if (defaultProps === undefined) {\n return props;\n }\n\n for (const [name, value] of Object.entries(defaultProps)) {\n if (props[name] === undefined) {\n props[name] = value;\n }\n }\n\n return props;\n}\n\ninterface ReactReservedProps {\n key?: unknown;\n ref?: unknown;\n __self?: unknown;\n __source?: unknown;\n}\n\nfunction isReactCompatContextProviderShorthand(\n value: unknown,\n): value is ReactCompatContextProviderShorthand {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const provider = (value as { Provider?: unknown }).Provider;\n\n return (\n typeof provider === \"object\" &&\n provider !== null &&\n (provider as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_PROVIDER_TYPE\n );\n}\n\nfunction setHostOwnPropsMeta(props: Record<string, unknown>): void {\n const dataKey = props[\"data-key\"];\n\n if (typeof dataKey !== \"number\" || !Number.isSafeInteger(dataKey) || dataKey < 0) {\n return;\n }\n\n let selectedState = 0;\n\n for (const name in props) {\n if (!hasOwnProperty.call(props, name) || name === \"children\") {\n continue;\n }\n\n if (name === \"data-key\") {\n continue;\n }\n\n if (name === \"className\") {\n const value = props[name];\n\n if (value === undefined) {\n continue;\n }\n\n if (value !== \"selected\") {\n return;\n }\n\n selectedState |= 1;\n continue;\n }\n\n if (name === \"data-selected\") {\n const value = props[name];\n\n if (value === undefined) {\n continue;\n }\n\n if (value !== \"true\") {\n return;\n }\n\n selectedState |= 2;\n continue;\n }\n\n return;\n }\n\n (props as { [HOST_OWN_PROPS_META]?: number })[HOST_OWN_PROPS_META] =\n dataKey * 4 + selectedState;\n}\n\nexport const isValidElement = isReactCompatElement;\n\nexport const Children = {\n map<T>(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T,\n ): T[] | null {\n if (children === null || children === undefined) {\n return null;\n }\n\n return flattenChildren(children).map((child, index) =>\n fn(child as Exclude<ReactCompatNode, null | undefined | boolean>, index),\n );\n },\n forEach(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => void,\n ): void {\n toChildArray(children).forEach((child, index) => {\n fn(child, index);\n });\n },\n count(children: ReactCompatNode): number {\n if (children === null || children === undefined) {\n return 0;\n }\n\n return flattenChildren(children).length;\n },\n toArray(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return toChildArray(children);\n },\n only(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean> {\n const array = toChildArray(children);\n\n if (array.length !== 1) {\n throw new Error(\"Expected exactly one child.\");\n }\n\n return array[0] as Exclude<ReactCompatNode, null | undefined | boolean>;\n },\n};\n\nfunction toChildArray(\n children: ReactCompatNode,\n): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return flattenChildren(children).filter(\n (child): child is Exclude<ReactCompatNode, null | undefined | boolean> =>\n child !== null && child !== undefined && typeof child !== \"boolean\",\n );\n}\n\nfunction flattenChildren(children: ReactCompatNode): ReactCompatNode[] {\n if (Array.isArray(children)) {\n return children.flatMap((child) => flattenChildren(child));\n }\n\n return [children];\n}\n\nexport interface ErrorBoundaryOptions {\n fallback: (error: Error) => ReactCompatNode;\n onError?: (error: Error) => void;\n}\n\nexport function createErrorBoundary(\n options: ErrorBoundaryOptions,\n children: ReactCompatNode,\n): ReactCompatElement<ErrorBoundaryOptions & { children: ReactCompatNode }> {\n return createElement(ERROR_BOUNDARY_TYPE, {\n ...options,\n children,\n });\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { SyntheticEvent } from "./event-types.js";
|
|
2
2
|
export interface AppliedProps {
|
|
3
3
|
props: Record<string, unknown>;
|
|
4
|
-
listeners
|
|
4
|
+
listeners?: Map<string, AppliedEventListener>;
|
|
5
5
|
}
|
|
6
6
|
export interface AppliedEventListener {
|
|
7
7
|
handler: (event: SyntheticEvent) => void;
|
|
8
8
|
}
|
|
9
|
-
export declare function getAppliedProps(element:
|
|
10
|
-
export declare function setAppliedProps(element:
|
|
11
|
-
export declare function getAppliedEventHandler(element:
|
|
9
|
+
export declare function getAppliedProps(element: Element): AppliedProps | undefined;
|
|
10
|
+
export declare function setAppliedProps(element: Element, props: AppliedProps): void;
|
|
11
|
+
export declare function getAppliedEventHandler(element: Element, name: string): ((event: SyntheticEvent) => void) | undefined;
|
|
12
12
|
//# sourceMappingURL=event-listeners.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-listeners.d.ts","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"event-listeners.d.ts","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC1C;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAE1E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAE3E;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GACX,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAE/C"}
|
package/dist/event-listeners.js
CHANGED
|
@@ -6,6 +6,6 @@ export function setAppliedProps(element, props) {
|
|
|
6
6
|
appliedProps.set(element, props);
|
|
7
7
|
}
|
|
8
8
|
export function getAppliedEventHandler(element, name) {
|
|
9
|
-
return appliedProps.get(element)?.listeners
|
|
9
|
+
return appliedProps.get(element)?.listeners?.get(name)?.handler;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=event-listeners.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-listeners.js","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAWA,MAAM,YAAY,GAAG,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"event-listeners.js","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAWA,MAAM,YAAY,GAAG,IAAI,OAAO,EAAyB,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,KAAmB;IACnE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,IAAY;IAEZ,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AAClE,CAAC","sourcesContent":["import type { SyntheticEvent } from \"./event-types.js\";\n\nexport interface AppliedProps {\n props: Record<string, unknown>;\n listeners?: Map<string, AppliedEventListener>;\n}\n\nexport interface AppliedEventListener {\n handler: (event: SyntheticEvent) => void;\n}\n\nconst appliedProps = new WeakMap<Element, AppliedProps>();\n\nexport function getAppliedProps(element: Element): AppliedProps | undefined {\n return appliedProps.get(element);\n}\n\nexport function setAppliedProps(element: Element, props: AppliedProps): void {\n appliedProps.set(element, props);\n}\n\nexport function getAppliedEventHandler(\n element: Element,\n name: string,\n): ((event: SyntheticEvent) => void) | undefined {\n return appliedProps.get(element)?.listeners?.get(name)?.handler;\n}\n"]}
|
package/dist/event-types.d.ts
CHANGED
|
@@ -9,6 +9,16 @@ export interface SyntheticEvent {
|
|
|
9
9
|
type: string;
|
|
10
10
|
target: EventTarget | null;
|
|
11
11
|
currentTarget: EventTarget | null;
|
|
12
|
+
clientX?: number;
|
|
13
|
+
clientY?: number;
|
|
14
|
+
pageX?: number;
|
|
15
|
+
pageY?: number;
|
|
16
|
+
screenX?: number;
|
|
17
|
+
screenY?: number;
|
|
18
|
+
relatedTarget?: EventTarget | null;
|
|
19
|
+
touches?: TouchList;
|
|
20
|
+
changedTouches?: TouchList;
|
|
21
|
+
key?: string;
|
|
12
22
|
persist(): void;
|
|
13
23
|
preventDefault(): void;
|
|
14
24
|
stopPropagation(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../src/event-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC;IAChB,cAAc,IAAI,IAAI,CAAC;IACvB,eAAe,IAAI,IAAI,CAAC;IACxB,kBAAkB,IAAI,OAAO,CAAC;IAC9B,YAAY,IAAI,OAAO,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC;CACjC"}
|
|
1
|
+
{"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../src/event-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;IAChB,cAAc,IAAI,IAAI,CAAC;IACvB,eAAe,IAAI,IAAI,CAAC;IACxB,kBAAkB,IAAI,OAAO,CAAC;IAC9B,YAAY,IAAI,OAAO,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC;CACjC"}
|
package/dist/event-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-types.js","sourceRoot":"","sources":["../src/event-types.ts"],"names":[],"mappings":"","sourcesContent":["export interface SyntheticEvent {\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n nativeEvent: Event;\n timeStamp: number;\n type: string;\n target: EventTarget | null;\n currentTarget: EventTarget | null;\n persist(): void;\n preventDefault(): void;\n stopPropagation(): void;\n isDefaultPrevented(): boolean;\n isPersistent(): boolean;\n isPropagationStopped(): boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"event-types.js","sourceRoot":"","sources":["../src/event-types.ts"],"names":[],"mappings":"","sourcesContent":["export interface SyntheticEvent {\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n nativeEvent: Event;\n timeStamp: number;\n type: string;\n target: EventTarget | null;\n currentTarget: EventTarget | null;\n clientX?: number;\n clientY?: number;\n pageX?: number;\n pageY?: number;\n screenX?: number;\n screenY?: number;\n relatedTarget?: EventTarget | null;\n touches?: TouchList;\n changedTouches?: TouchList;\n key?: string;\n persist(): void;\n preventDefault(): void;\n stopPropagation(): void;\n isDefaultPrevented(): boolean;\n isPersistent(): boolean;\n isPropagationStopped(): boolean;\n}\n"]}
|
package/dist/events.js
CHANGED
|
@@ -251,7 +251,7 @@ function getEventPath(root, event) {
|
|
|
251
251
|
const path = [];
|
|
252
252
|
let cursor = event.target instanceof Node ? event.target : null;
|
|
253
253
|
while (cursor !== null) {
|
|
254
|
-
if (cursor instanceof
|
|
254
|
+
if (cursor instanceof Element) {
|
|
255
255
|
path.push(cursor);
|
|
256
256
|
}
|
|
257
257
|
if (cursor === root) {
|
|
@@ -270,6 +270,9 @@ function createSyntheticEvent(nativeEvent, currentTarget, state = {
|
|
|
270
270
|
defaultPrevented: nativeEvent.defaultPrevented,
|
|
271
271
|
propagationStopped: false,
|
|
272
272
|
}, syntheticType = nativeEvent.type) {
|
|
273
|
+
const mouseEvent = nativeEvent instanceof MouseEvent ? nativeEvent : undefined;
|
|
274
|
+
const touchEvent = nativeEvent instanceof TouchEvent ? nativeEvent : undefined;
|
|
275
|
+
const keyboardEvent = nativeEvent instanceof KeyboardEvent ? nativeEvent : undefined;
|
|
273
276
|
return {
|
|
274
277
|
bubbles: nativeEvent.bubbles,
|
|
275
278
|
cancelable: nativeEvent.cancelable,
|
|
@@ -283,6 +286,24 @@ function createSyntheticEvent(nativeEvent, currentTarget, state = {
|
|
|
283
286
|
type: syntheticType,
|
|
284
287
|
target: nativeEvent.target,
|
|
285
288
|
currentTarget,
|
|
289
|
+
...(mouseEvent === undefined
|
|
290
|
+
? {}
|
|
291
|
+
: {
|
|
292
|
+
clientX: mouseEvent.clientX,
|
|
293
|
+
clientY: mouseEvent.clientY,
|
|
294
|
+
pageX: mouseEvent.pageX,
|
|
295
|
+
pageY: mouseEvent.pageY,
|
|
296
|
+
screenX: mouseEvent.screenX,
|
|
297
|
+
screenY: mouseEvent.screenY,
|
|
298
|
+
relatedTarget: mouseEvent.relatedTarget,
|
|
299
|
+
}),
|
|
300
|
+
...(touchEvent === undefined
|
|
301
|
+
? {}
|
|
302
|
+
: {
|
|
303
|
+
touches: touchEvent.touches,
|
|
304
|
+
changedTouches: touchEvent.changedTouches,
|
|
305
|
+
}),
|
|
306
|
+
...(keyboardEvent === undefined ? {} : { key: keyboardEvent.key }),
|
|
286
307
|
persist() { },
|
|
287
308
|
preventDefault() {
|
|
288
309
|
state.defaultPrevented = true;
|