A cross-browser JavaScript range and selection library.
Compare to rangy 1.x
- migrated to typescript
- so, the definition types is always updated
- use typescript's module (import / export) instead of the complex
rangy.createModule
logic - remove TextRange & inactive modules
- if you use those modules, please migrate to rangy2 & create a pull request.
- use rollup instead of the old complex manually with text-replacing building logic
- don't support too-outdated browser: IE < 9
- removed many outdated feature testing logic (for too-outdated browser)
- migrated testing code to QUnit
- dont use jest because we need test in android/ ios
- remove
rangy.init
(&rangy.addInitListener
)
-
removed:
util.extend
. Pls use Object.assignutil.toArray
. Pls use Array.sliceutil.
forEachdom.arrayContains
. Pls use Array.includesinitialized, init, addInitListener
. rangy is now always initialized right when importaddShimListener
createModule, createCoreModule
warn, fail, supported
RangePrototype, rangePrototype, selectionPrototype
WrappedTextRange
-
note: to support IE, we bundled the following core-js modules into
dist/*/bundles/index.umd.js
(not bundle intoindex.esm.js
& other module types)
import "core-js/features/array/includes";
import "core-js/features/object/assign";
yarn add rangy2
Documentation is in the GitHub wiki.
yarn install
yarn run dev
- test by opening test/*.html in a desktop or mobile browser