Skip to content

feat(web): x-input and x-textarea support bindselection event#990

Merged
Sherry-hue merged 1 commit intolynx-family:mainfrom
Sherry-hue:feat/input-bindselection
Jun 5, 2025
Merged

feat(web): x-input and x-textarea support bindselection event#990
Sherry-hue merged 1 commit intolynx-family:mainfrom
Sherry-hue:feat/input-bindselection

Conversation

@Sherry-hue
Copy link
Copy Markdown
Collaborator

Summary

feat: x-input and x-textarea support bindselection event, the returned type structure is { selectionStart: number; selectionEnd: number }.

Checklist

  • Tests updated (or not required).
  • Documentation updated (or not required).

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Jun 4, 2025

🦋 Changeset detected

Latest commit: 918b409

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@lynx-js/web-elements Patch
@lynx-js/web-elements-template Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@Sherry-hue Sherry-hue force-pushed the feat/input-bindselection branch from a94d548 to 6375a55 Compare June 4, 2025 11:24
@Sherry-hue Sherry-hue force-pushed the feat/input-bindselection branch from 6375a55 to 918b409 Compare June 4, 2025 11:33
@relativeci
Copy link
Copy Markdown

relativeci bot commented Jun 4, 2025

React Example

#1183 Bundle Size — 231.7KiB (0%).

918b409(current) vs 8a6afe9 main#1173(baseline)

Bundle metrics  no changes
                 Current
#1183
     Baseline
#1173
No change  Initial JS 0B 0B
No change  Initial CSS 0B 0B
No change  Cache Invalidation 0% 0%
No change  Chunks 0 0
No change  Assets 4 4
No change  Modules 141 141
No change  Duplicate Modules 56 56
No change  Duplicate Code 46.17% 46.17%
No change  Packages 2 2
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#1183
     Baseline
#1173
No change  IMG 145.76KiB 145.76KiB
No change  Other 85.94KiB 85.94KiB

Bundle analysis reportBranch Sherry-hue:feat/input-bindselect...Project dashboard


Generated by RelativeCIDocumentationReport issue

@relativeci
Copy link
Copy Markdown

relativeci bot commented Jun 4, 2025

Web Explorer

#1171 Bundle Size — 255.97KiB (+0.4%).

918b409(current) vs 8a6afe9 main#1161(baseline)

Bundle metrics  Change 3 changes Regression 1 regression
                 Current
#1171
     Baseline
#1161
Regression  Initial JS 137.86KiB(+0.74%) 136.84KiB
No change  Initial CSS 31.79KiB 31.79KiB
Change  Cache Invalidation 53.67% 0%
No change  Chunks 4 4
No change  Assets 4 4
No change  Modules 202 202
No change  Duplicate Modules 14 14
Change  Duplicate Code 2.85%(-0.35%) 2.86%
No change  Packages 4 4
No change  Duplicate Packages 0 0
Bundle size by type  Change 1 change Regression 1 regression
                 Current
#1171
     Baseline
#1161
Regression  JS 224.18KiB (+0.46%) 223.17KiB
No change  CSS 31.79KiB 31.79KiB

Bundle analysis reportBranch Sherry-hue:feat/input-bindselect...Project dashboard


Generated by RelativeCIDocumentationReport issue

@codecov
Copy link
Copy Markdown

codecov bot commented Jun 4, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

📢 Thoughts on this report? Let us know!

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Jun 4, 2025

CodSpeed Performance Report

Merging #990 will improve performances by 16.49%

Comparing Sherry-hue:feat/input-bindselection (918b409) with main (8a6afe9)

Summary

⚡ 1 improvements
✅ 8 untouched benchmarks

Benchmarks breakdown

Benchmark BASE HEAD Change
basic-performance-div-10 2.5 ms 2.2 ms +16.49%

@Sherry-hue Sherry-hue added this pull request to the merge queue Jun 5, 2025
Merged via the queue into lynx-family:main with commit ab62ea8 Jun 5, 2025
39 checks passed
@Sherry-hue Sherry-hue deleted the feat/input-bindselection branch June 5, 2025 06:47
colinaaa pushed a commit that referenced this pull request Jun 6, 2025
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @lynx-js/react@0.109.2

### Patch Changes

- Support for locating errors in the source code directly on the device
when exceptions occur when using MTS.
([#1019](#1019))

    This requires Lynx engine v3.4 or later.

- Fix the "main-thread.js exception: ReferenceError:
`__webpack_require__` is not defined" error in HMR.
([#985](#985))

This error occurred when setting `output.iife: true`, which is the
default value in `@lynx-js/rspeedy` v0.9.8.

## @lynx-js/rspeedy@0.9.9

### Patch Changes

- Set `optimization.emitOnErrors` when `DEBUG` is enabled.
([#1000](#1000))

    This is useful for debugging PrimJS Syntax error.

## @lynx-js/react-rsbuild-plugin@0.10.3

### Patch Changes

- Better [zustand](https://github.com/pmndrs/zustand) support by
creating an alias for `use-sync-external-store`.
([#980](#980))

See
[#893](#893)
for more details.

- Updated dependencies
\[[`acc0d80`](acc0d80)]:
    -   @lynx-js/runtime-wrapper-webpack-plugin@0.1.1
    -   @lynx-js/react-alias-rsbuild-plugin@0.10.3
    -   @lynx-js/use-sync-external-store@1.5.0
    -   @lynx-js/react-refresh-webpack-plugin@0.3.3
    -   @lynx-js/react-webpack-plugin@0.6.15
    -   @lynx-js/css-extract-webpack-plugin@0.5.4
    -   @lynx-js/template-webpack-plugin@0.7.2

## @lynx-js/css-serializer@0.1.3

### Patch Changes

- Support Windows.
([#1007](#1007))

## @lynx-js/offscreen-document@0.1.1

### Patch Changes

- feat: add sheet.insertRule support
([#1026](#1026))

- refactor: implement mts apis in closure pattern
([#1004](#1004))

## @lynx-js/web-constants@0.13.5

### Patch Changes

- refactor: move some internal status to dom's attribute
([#945](#945))

    It's essential for SSR

- fix: target.id is undefined
([#1016](#1016))

- feat: add new pageConfig configuration: enableJSDataProcessor
([#886](#886))

- refactor: move component config info to attribute
([#984](#984))

- refactor: save dataset on an attribute
([#981](#981))

On lynx, the `data-*` attributes have different behaviors than the
HTMLElement has.

The dataset will be treated as properties, the key will not be applied
the camel-case <-> hyphenate name transformation.

Before this commit we use it as a runtime data, but after this commit we
will use encodeURI(JSON.stringify(dataset)) to encode it as a string.

- refactor: create elements of `elementToRuntimeInfoMap` on demand
([#986](#986))

- refactor: implement mts apis in closure pattern
([#1004](#1004))

-   Updated dependencies \[]:
    -   @lynx-js/web-worker-rpc@0.13.5

## @lynx-js/web-core@0.13.5

### Patch Changes

- refactor: move some internal status to dom's attribute
([#945](#945))

    It's essential for SSR

- refactor: avoid to create many style element for cssog
([#1026](#1026))

- refactor: move component config info to attribute
([#984](#984))

- fix: ensure render starts after dom connected
([#1020](#1020))

- refactor: save dataset on an attribute
([#981](#981))

On lynx, the `data-*` attributes have different behaviors than the
HTMLElement has.

The dataset will be treated as properties, the key will not be applied
the camel-case <-> hyphenate name transformation.

Before this commit we use it as a runtime data, but after this commit we
will use encodeURI(JSON.stringify(dataset)) to encode it as a string.

- refactor: implement mts apis in closure pattern
([#1004](#1004))

- Updated dependencies
\[[`70b82d2`](70b82d2),
[`5651e24`](5651e24),
[`9499ea9`](9499ea9),
[`50f0193`](50f0193),
[`57bf0ef`](57bf0ef),
[`5651e24`](5651e24),
[`0525fbf`](0525fbf),
[`b6b87fd`](b6b87fd),
[`c014327`](c014327)]:
    -   @lynx-js/web-mainthread-apis@0.13.5
    -   @lynx-js/web-constants@0.13.5
    -   @lynx-js/offscreen-document@0.1.1
    -   @lynx-js/web-worker-runtime@0.13.5
    -   @lynx-js/web-worker-rpc@0.13.5

## @lynx-js/web-core-server@0.13.5

### Patch Changes

- refactor: move some internal status to dom's attribute
([#945](#945))

    It's essential for SSR

- refactor: move component config info to attribute
([#984](#984))

- refactor: save dataset on an attribute
([#981](#981))

On lynx, the `data-*` attributes have different behaviors than the
HTMLElement has.

The dataset will be treated as properties, the key will not be applied
the camel-case <-> hyphenate name transformation.

Before this commit we use it as a runtime data, but after this commit we
will use encodeURI(JSON.stringify(dataset)) to encode it as a string.

- fix: dump encode data in comment
([#989](#989))

## @lynx-js/web-elements@0.7.5

### Patch Changes

- feat: x-input && x-textarea add new method: `getValue`, which returns
the value of the input element, selectionStart and selectEnd when
success. ([#982](#982))

- feat: x-input and x-textarea bindinput event return structures add
`selectionStart`, `selectionEnd`, and `textLength`, `textLength` are
marked as @deprecated
([#996](#996))

- feat: x-input and x-textarea support bindselection event, the returned
type structure is `{ selectionStart: number; selectionEnd: number }`.
([#990](#990))

-   Updated dependencies \[]:
    -   @lynx-js/web-elements-template@0.7.5

## @lynx-js/web-mainthread-apis@0.13.5

### Patch Changes

- refactor: move some internal status to dom's attribute
([#945](#945))

    It's essential for SSR

- refactor: avoid to create many style element for cssog
([#1026](#1026))

- fix: target.id is undefined
([#1016](#1016))

- feat: add new pageConfig configuration: enableJSDataProcessor
([#886](#886))

- refactor: move component config info to attribute
([#984](#984))

- refactor: save dataset on an attribute
([#981](#981))

On lynx, the `data-*` attributes have different behaviors than the
HTMLElement has.

The dataset will be treated as properties, the key will not be applied
the camel-case <-> hyphenate name transformation.

Before this commit we use it as a runtime data, but after this commit we
will use encodeURI(JSON.stringify(dataset)) to encode it as a string.

- refactor: create elements of `elementToRuntimeInfoMap` on demand
([#986](#986))

- refactor: implement mts apis in closure pattern
([#1004](#1004))

- Updated dependencies
\[[`70b82d2`](70b82d2),
[`9499ea9`](9499ea9),
[`50f0193`](50f0193),
[`57bf0ef`](57bf0ef),
[`0525fbf`](0525fbf),
[`b6b87fd`](b6b87fd),
[`c014327`](c014327)]:
    -   @lynx-js/web-constants@0.13.5

## @lynx-js/web-worker-runtime@0.13.5

### Patch Changes

- refactor: implement mts apis in closure pattern
([#1004](#1004))

- Updated dependencies
\[[`70b82d2`](70b82d2),
[`5651e24`](5651e24),
[`9499ea9`](9499ea9),
[`50f0193`](50f0193),
[`57bf0ef`](57bf0ef),
[`5651e24`](5651e24),
[`0525fbf`](0525fbf),
[`b6b87fd`](b6b87fd),
[`c014327`](c014327)]:
    -   @lynx-js/web-mainthread-apis@0.13.5
    -   @lynx-js/web-constants@0.13.5
    -   @lynx-js/offscreen-document@0.1.1
    -   @lynx-js/web-worker-rpc@0.13.5

## @lynx-js/runtime-wrapper-webpack-plugin@0.1.1

### Patch Changes

- Fix `requestAnimationFrame` is not working.
([#1021](#1021))

## @lynx-js/template-webpack-plugin@0.7.2

### Patch Changes

- Updated dependencies
\[[`ccb4254`](ccb4254)]:
    -   @lynx-js/css-serializer@0.1.3

## create-rspeedy@0.9.9



## @lynx-js/react-alias-rsbuild-plugin@0.10.3



## upgrade-rspeedy@0.9.9



## @lynx-js/web-elements-template@0.7.5



## @lynx-js/web-worker-rpc@0.13.5

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants