RangeContext.js 1.4 KB

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