useConfigInject.js 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import { computed, h, inject } from 'vue';
  3. import { defaultConfigProvider, configProviderKey } from '../context';
  4. import { useInjectDisabled } from '../DisabledContext';
  5. import { DefaultRenderEmpty } from '../renderEmpty';
  6. import { useInjectSize } from '../SizeContext';
  7. export default ((name, props) => {
  8. const sizeContext = useInjectSize();
  9. const disabledContext = useInjectDisabled();
  10. const configProvider = inject(configProviderKey, _extends(_extends({}, defaultConfigProvider), {
  11. renderEmpty: name => h(DefaultRenderEmpty, {
  12. componentName: name
  13. })
  14. }));
  15. const prefixCls = computed(() => configProvider.getPrefixCls(name, props.prefixCls));
  16. const direction = computed(() => {
  17. var _a, _b;
  18. return (_a = props.direction) !== null && _a !== void 0 ? _a : (_b = configProvider.direction) === null || _b === void 0 ? void 0 : _b.value;
  19. });
  20. const iconPrefixCls = computed(() => {
  21. var _a;
  22. return (_a = props.iconPrefixCls) !== null && _a !== void 0 ? _a : configProvider.iconPrefixCls.value;
  23. });
  24. const rootPrefixCls = computed(() => configProvider.getPrefixCls());
  25. const autoInsertSpaceInButton = computed(() => {
  26. var _a;
  27. return (_a = configProvider.autoInsertSpaceInButton) === null || _a === void 0 ? void 0 : _a.value;
  28. });
  29. const renderEmpty = configProvider.renderEmpty;
  30. const space = configProvider.space;
  31. const pageHeader = configProvider.pageHeader;
  32. const form = configProvider.form;
  33. const getTargetContainer = computed(() => {
  34. var _a, _b;
  35. return (_a = props.getTargetContainer) !== null && _a !== void 0 ? _a : (_b = configProvider.getTargetContainer) === null || _b === void 0 ? void 0 : _b.value;
  36. });
  37. const getPopupContainer = computed(() => {
  38. var _a, _b, _c;
  39. return (_b = (_a = props.getContainer) !== null && _a !== void 0 ? _a : props.getPopupContainer) !== null && _b !== void 0 ? _b : (_c = configProvider.getPopupContainer) === null || _c === void 0 ? void 0 : _c.value;
  40. });
  41. const dropdownMatchSelectWidth = computed(() => {
  42. var _a, _b;
  43. return (_a = props.dropdownMatchSelectWidth) !== null && _a !== void 0 ? _a : (_b = configProvider.dropdownMatchSelectWidth) === null || _b === void 0 ? void 0 : _b.value;
  44. });
  45. const virtual = computed(() => {
  46. var _a;
  47. return (props.virtual === undefined ? ((_a = configProvider.virtual) === null || _a === void 0 ? void 0 : _a.value) !== false : props.virtual !== false) && dropdownMatchSelectWidth.value !== false;
  48. });
  49. const size = computed(() => props.size || sizeContext.value);
  50. const autocomplete = computed(() => {
  51. var _a, _b, _c;
  52. return (_a = props.autocomplete) !== null && _a !== void 0 ? _a : (_c = (_b = configProvider.input) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.autocomplete;
  53. });
  54. const disabled = computed(() => {
  55. var _a;
  56. return (_a = props.disabled) !== null && _a !== void 0 ? _a : disabledContext.value;
  57. });
  58. const csp = computed(() => {
  59. var _a;
  60. return (_a = props.csp) !== null && _a !== void 0 ? _a : configProvider.csp;
  61. });
  62. const wave = computed(() => {
  63. var _a, _b;
  64. return (_a = props.wave) !== null && _a !== void 0 ? _a : (_b = configProvider.wave) === null || _b === void 0 ? void 0 : _b.value;
  65. });
  66. return {
  67. configProvider,
  68. prefixCls,
  69. direction,
  70. size,
  71. getTargetContainer,
  72. getPopupContainer,
  73. space,
  74. pageHeader,
  75. form,
  76. autoInsertSpaceInButton,
  77. renderEmpty,
  78. virtual,
  79. dropdownMatchSelectWidth,
  80. rootPrefixCls,
  81. getPrefixCls: configProvider.getPrefixCls,
  82. autocomplete,
  83. csp,
  84. iconPrefixCls,
  85. disabled,
  86. select: configProvider.select,
  87. wave
  88. };
  89. });