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
This commit is contained in:
Kyle Halleman 2019-11-20 14:35:48 -06:00 committed by Sheetal Nandi
parent 593b226eac
commit 93b2407cb6
2 changed files with 26 additions and 2 deletions

View File

@ -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<Mark.Range>,
options?: Mark.MarkOptions
options?: Mark.MarkRangesOptions
): void;
/**

View File

@ -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", {