index.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
  2. let vue = require("vue");
  3. //#region ../../packages/hooks/use-namespace/index.ts
  4. const defaultNamespace = "el";
  5. const statePrefix = "is-";
  6. const _bem = (namespace, block, blockSuffix, element, modifier) => {
  7. let cls = `${namespace}-${block}`;
  8. if (blockSuffix) cls += `-${blockSuffix}`;
  9. if (element) cls += `__${element}`;
  10. if (modifier) cls += `--${modifier}`;
  11. return cls;
  12. };
  13. const namespaceContextKey = Symbol("namespaceContextKey");
  14. const useGetDerivedNamespace = (namespaceOverrides) => {
  15. const derivedNamespace = namespaceOverrides || ((0, vue.getCurrentInstance)() ? (0, vue.inject)(namespaceContextKey, (0, vue.ref)("el")) : (0, vue.ref)("el"));
  16. return (0, vue.computed)(() => {
  17. return (0, vue.unref)(derivedNamespace) || "el";
  18. });
  19. };
  20. const useNamespace = (block, namespaceOverrides) => {
  21. const namespace = useGetDerivedNamespace(namespaceOverrides);
  22. const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", "");
  23. const e = (element) => element ? _bem(namespace.value, block, "", element, "") : "";
  24. const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : "";
  25. const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : "";
  26. const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : "";
  27. const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : "";
  28. const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : "";
  29. const is = (name, ...args) => {
  30. const state = args.length >= 1 ? args[0] : true;
  31. return name && state ? `${statePrefix}${name}` : "";
  32. };
  33. const cssVar = (object) => {
  34. const styles = {};
  35. for (const key in object) if (object[key]) styles[`--${namespace.value}-${key}`] = object[key];
  36. return styles;
  37. };
  38. const cssVarBlock = (object) => {
  39. const styles = {};
  40. for (const key in object) if (object[key]) styles[`--${namespace.value}-${block}-${key}`] = object[key];
  41. return styles;
  42. };
  43. const cssVarName = (name) => `--${namespace.value}-${name}`;
  44. const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`;
  45. return {
  46. namespace,
  47. b,
  48. e,
  49. m,
  50. be,
  51. em,
  52. bm,
  53. bem,
  54. is,
  55. cssVar,
  56. cssVarName,
  57. cssVarBlock,
  58. cssVarBlockName
  59. };
  60. };
  61. //#endregion
  62. exports.defaultNamespace = defaultNamespace;
  63. exports.namespaceContextKey = namespaceContextKey;
  64. exports.useGetDerivedNamespace = useGetDerivedNamespace;
  65. exports.useNamespace = useNamespace;
  66. //# sourceMappingURL=index.js.map