mirror of
https://github.com/zulip/zulip.git
synced 2026-06-03 21:01:43 +08:00
zjquery: Use elements for next, prev accessors.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
e1328d3b52
commit
d931783682
@ -211,8 +211,8 @@ run_test("arrows on pills", ({mock_template}) => {
|
||||
const $prev_pill_stub = $.create("prev-pill-stub");
|
||||
const $next_pill_stub = $.create("next-pill-stub");
|
||||
const $pill_stub = $.create("pill-stub");
|
||||
$pill_stub.set_prev_results("*", $prev_pill_stub);
|
||||
$pill_stub.set_next_results("*", $next_pill_stub);
|
||||
$pill_stub.set_prev($prev_pill_stub);
|
||||
$pill_stub.set_next($next_pill_stub);
|
||||
|
||||
$container.set_find_results(".pill:focus", $pill_stub);
|
||||
|
||||
@ -408,8 +408,8 @@ run_test("insert_remove", ({mock_template}) => {
|
||||
$container.set_find_results(".pill:focus", yellow_pill.$element);
|
||||
|
||||
const $prev_pill_stub = $("<prev-stub>");
|
||||
yellow_pill.$element.set_prev_results("*", $prev_pill_stub);
|
||||
yellow_pill.$element.set_next_results("*", $("<next-stub>"));
|
||||
yellow_pill.$element.set_prev($prev_pill_stub);
|
||||
yellow_pill.$element.set_next($("<next-stub>"));
|
||||
|
||||
key_handler = $container.get_on_handler("keydown", ".pill");
|
||||
key_handler.call(
|
||||
@ -428,8 +428,8 @@ run_test("insert_remove", ({mock_template}) => {
|
||||
assert.deepEqual(widget.items(), [items.blue, items.red]);
|
||||
|
||||
const $focus_pill_stub = $(pill_html("RED"));
|
||||
$focus_pill_stub.set_prev_results("*", $prev_pill_stub);
|
||||
$focus_pill_stub.set_next_results("*", $("<next-stub>"));
|
||||
$focus_pill_stub.set_prev($prev_pill_stub);
|
||||
$focus_pill_stub.set_next($("<next-stub>"));
|
||||
|
||||
$container.set_find_results(".pill:focus", $focus_pill_stub);
|
||||
|
||||
|
||||
@ -85,8 +85,6 @@ class FakeElementState {
|
||||
delegated_event_handlers = new Map();
|
||||
is_focused = false;
|
||||
jquery_data = new Map();
|
||||
jquery_next_results = new Map();
|
||||
jquery_prev_results = new Map();
|
||||
match_results = new Map([["*", true]]);
|
||||
parents_results = new Map();
|
||||
query_results = new Map();
|
||||
@ -542,15 +540,12 @@ function dom_args(args) {
|
||||
last() {
|
||||
return new exports.FakeJQuery([...this].slice(-1));
|
||||
}
|
||||
next(next_selector = "*") {
|
||||
assert.equal(this.length, 1);
|
||||
const state = fake_element_state.get(this[0]);
|
||||
if (!state.jquery_next_results.has(next_selector)) {
|
||||
throw new Error(
|
||||
`You need to call $(${JSON.stringify(state.selector)}).set_next_results(${JSON.stringify(next_selector)}, ...)`,
|
||||
);
|
||||
}
|
||||
return state.jquery_next_results.get(next_selector);
|
||||
next(selector = "*") {
|
||||
return new exports.FakeJQuery(
|
||||
[...this]
|
||||
.map((element) => element.nextElementSibling)
|
||||
.filter((next) => next !== null && next.matches(selector)),
|
||||
);
|
||||
}
|
||||
off(event_type, ...args) {
|
||||
if (args.length === 0) {
|
||||
@ -648,15 +643,12 @@ function dom_args(args) {
|
||||
this[0].prepend(...dom_args(args));
|
||||
return this;
|
||||
}
|
||||
prev(prev_selector = "*") {
|
||||
assert.equal(this.length, 1);
|
||||
const state = fake_element_state.get(this[0]);
|
||||
if (!state.jquery_prev_results.has(prev_selector)) {
|
||||
throw new Error(
|
||||
`You need to call $(${JSON.stringify(state.selector)}).set_prev_results(${JSON.stringify(prev_selector)}, ...)`,
|
||||
);
|
||||
}
|
||||
return state.jquery_prev_results.get(prev_selector);
|
||||
prev(selector = "*") {
|
||||
return new exports.FakeJQuery(
|
||||
[...this]
|
||||
.map((element) => element.previousElementSibling)
|
||||
.filter((prev) => prev !== null && prev.matches(selector)),
|
||||
);
|
||||
}
|
||||
prop(name, ...args) {
|
||||
if (args.length === 0) {
|
||||
@ -750,9 +742,10 @@ function dom_args(args) {
|
||||
assert.equal(this.length, 1);
|
||||
fake_element_state.get(this[0]).match_results.set(selector, value);
|
||||
}
|
||||
set_next_results(selector, $result) {
|
||||
set_next($result) {
|
||||
assert.equal(this.length, 1);
|
||||
fake_element_state.get(this[0]).jquery_next_results.set(selector, $result);
|
||||
assert.equal($result.length, 1);
|
||||
this[0].nextElementSibling = $result[0];
|
||||
}
|
||||
set_parent($parent_elem) {
|
||||
assert.equal(this.length, 1);
|
||||
@ -763,9 +756,10 @@ function dom_args(args) {
|
||||
assert.equal(this.length, 1);
|
||||
fake_element_state.get(this[0]).parents_results.set(selector, [...elements]);
|
||||
}
|
||||
set_prev_results(selector, $result) {
|
||||
set_prev($result) {
|
||||
assert.equal(this.length, 1);
|
||||
fake_element_state.get(this[0]).jquery_prev_results.set(selector, $result);
|
||||
assert.equal($result.length, 1);
|
||||
this[0].previousElementSibling = $result[0];
|
||||
}
|
||||
show() {
|
||||
for (const element of this) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user