RangeContext.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.useProvideRange = exports.useInjectRange = exports.default = exports.RangeContextProvider = void 0;
  6. var _vue = require("vue");
  7. const RangeContextKey = Symbol('RangeContextProps');
  8. const useProvideRange = props => {
  9. (0, _vue.provide)(RangeContextKey, props);
  10. };
  11. exports.useProvideRange = useProvideRange;
  12. const useInjectRange = () => {
  13. return (0, _vue.inject)(RangeContextKey, {
  14. rangedValue: (0, _vue.ref)(),
  15. hoverRangedValue: (0, _vue.ref)(),
  16. inRange: (0, _vue.ref)(),
  17. panelPosition: (0, _vue.ref)()
  18. });
  19. };
  20. exports.useInjectRange = useInjectRange;
  21. const RangeContextProvider = exports.RangeContextProvider = (0, _vue.defineComponent)({
  22. compatConfig: {
  23. MODE: 3
  24. },
  25. name: 'PanelContextProvider',
  26. inheritAttrs: false,
  27. props: {
  28. value: {
  29. type: Object,
  30. default: () => ({})
  31. }
  32. },
  33. setup(props, _ref) {
  34. let {
  35. slots
  36. } = _ref;
  37. const value = {
  38. rangedValue: (0, _vue.ref)(props.value.rangedValue),
  39. hoverRangedValue: (0, _vue.ref)(props.value.hoverRangedValue),
  40. inRange: (0, _vue.ref)(props.value.inRange),
  41. panelPosition: (0, _vue.ref)(props.value.panelPosition)
  42. };
  43. useProvideRange(value);
  44. _vue.toRef;
  45. (0, _vue.watch)(() => props.value, () => {
  46. Object.keys(props.value).forEach(key => {
  47. if (value[key]) {
  48. value[key].value = props.value[key];
  49. }
  50. });
  51. });
  52. return () => {
  53. var _a;
  54. return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);
  55. };
  56. }
  57. });
  58. var _default = exports.default = RangeContextKey;