MCPcopy Index your code
hub / github.com/microsoft/SandDance / cursor

Function cursor

docs/app/js/sanddance-app.js:141676–141700  ·  view source on GitHub ↗
(view)

Source from the content-addressed store, hash-verified

141674}
141675const Default = "default";
141676function cursor(view) {
141677 // get cursor signal, add to dataflow if needed
141678 const cursor1 = view._signals.cursor || (view._signals.cursor = view.add({
141679 user: Default,
141680 item: null
141681 })); // evaluate cursor on each mousemove event
141682 view.on(view.events("view", "mousemove"), cursor1, (_, event1)=>{
141683 const value = cursor1.value, user = value ? (0, _vegaUtil.isString)(value) ? value : value.user : Default, item = event1.item && event1.item.cursor || null;
141684 return value && user === value.user && item == value.item ? value : {
141685 user: user,
141686 item: item
141687 };
141688 }); // when cursor signal updates, set visible cursor
141689 view.add(null, function(_) {
141690 let user = _.cursor, item = this.value;
141691 if (!(0, _vegaUtil.isString)(user)) {
141692 item = user.item;
141693 user = user.user;
141694 }
141695 setCursor(view, user && user !== Default ? user : item || user);
141696 return item;
141697 }, {
141698 cursor: cursor1
141699 });
141700}
141701function setCursor(view, cursor2) {
141702 const el = view.globalCursor() ? typeof document !== "undefined" && document.body : view.container();
141703 if (el) return cursor2 == null ? el.style.removeProperty("cursor") : el.style.cursor = cursor2;

Callers 1

ViewFunction · 0.70

Calls 3

setCursorFunction · 0.70
addMethod · 0.45
onMethod · 0.45

Tested by

no test coverage detected