index.js 2.3 KB

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