From 93b2407cb6ab321c0cfe2016ee94224ee659bb1d Mon Sep 17 00:00:00 2001 From: Kyle Halleman Date: Wed, 20 Nov 2019 14:35:48 -0600 Subject: [PATCH] fix(mark.js): add second param to `each` for `markRange` (#40427) * fix: add second param to `each` in `MarkOptions` * fix: separate MarkRangesOptions similar to MarkRegExOptions --- types/mark.js/index.d.ts | 21 ++++++++++++++++++++- types/mark.js/mark.js-tests.ts | 7 ++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/types/mark.js/index.d.ts b/types/mark.js/index.d.ts index d4c23cb40f..f73b43aec1 100644 --- a/types/mark.js/index.d.ts +++ b/types/mark.js/index.d.ts @@ -71,6 +71,25 @@ declare namespace Mark { log?: object; } + interface MarkRangesOptions { + element?: string; + className?: string; + exclude?: string[]; + iframes?: boolean; + iframesTimeout?: number; + each?(element: Element, range: Range): void; + filter?( + textNode: Element, + term: string, + marksSoFar: number, + marksTotal: number + ): boolean; + noMatch?(term: string): void; + done?(marksTotal: number): void; + debug?: boolean; + log?: object; + } + interface UnmarkOptions { element?: string; className?: string; @@ -124,7 +143,7 @@ declare class Mark { */ markRanges( ranges: ReadonlyArray, - options?: Mark.MarkOptions + options?: Mark.MarkRangesOptions ): void; /** diff --git a/types/mark.js/mark.js-tests.ts b/types/mark.js/mark.js-tests.ts index a979990521..6cc98a98c6 100644 --- a/types/mark.js/mark.js-tests.ts +++ b/types/mark.js/mark.js-tests.ts @@ -12,7 +12,12 @@ mark.mark('keyword', { }); mark.mark(['keyword1', 'keyword2']); mark.markRegExp(/regex/, {className: 'highlight'}); -mark.markRanges([{start: 0, length: 10}], {className: 'highlight'}); +mark.markRanges([{start: 0, length: 10}], { + className: 'highlight', + each: (el: Element, range: Mark.Range) => { + el.id = ''; + } +}); /* test jquery */ $("div.context").mark("text", {