| 141674 | } |
| 141675 | const Default = "default"; |
| 141676 | function 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 | } |
| 141701 | function 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; |