create.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. var __create = Object.create;
  2. var __defProp = Object.defineProperty;
  3. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  4. var __getOwnPropNames = Object.getOwnPropertyNames;
  5. var __getProtoOf = Object.getPrototypeOf;
  6. var __hasOwnProp = Object.prototype.hasOwnProperty;
  7. var __export = (target, all) => {
  8. for (var name in all)
  9. __defProp(target, name, { get: all[name], enumerable: true });
  10. };
  11. var __copyProps = (to, from, except, desc) => {
  12. if (from && typeof from === "object" || typeof from === "function") {
  13. for (let key of __getOwnPropNames(from))
  14. if (!__hasOwnProp.call(to, key) && key !== except)
  15. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  16. }
  17. return to;
  18. };
  19. var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  20. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  21. mod
  22. ));
  23. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  24. var stdin_exports = {};
  25. __export(stdin_exports, {
  26. createBEM: () => createBEM,
  27. createNamespace: () => createNamespace,
  28. createTranslate: () => createTranslate
  29. });
  30. module.exports = __toCommonJS(stdin_exports);
  31. var import_basic = require("./basic");
  32. var import_format = require("./format");
  33. var import_validate = require("./validate");
  34. var import_locale = __toESM(require("../locale"));
  35. function createTranslate(name) {
  36. const prefix = (0, import_format.camelize)(name) + ".";
  37. return (path, ...args) => {
  38. const messages = import_locale.default.messages();
  39. const message = (0, import_basic.get)(messages, prefix + path) || (0, import_basic.get)(messages, path);
  40. return (0, import_validate.isFunction)(message) ? message(...args) : message;
  41. };
  42. }
  43. function genBem(name, mods) {
  44. if (!mods) {
  45. return "";
  46. }
  47. if (typeof mods === "string") {
  48. return ` ${name}--${mods}`;
  49. }
  50. if (Array.isArray(mods)) {
  51. return mods.reduce(
  52. (ret, item) => ret + genBem(name, item),
  53. ""
  54. );
  55. }
  56. return Object.keys(mods).reduce(
  57. (ret, key) => ret + (mods[key] ? genBem(name, key) : ""),
  58. ""
  59. );
  60. }
  61. function createBEM(name) {
  62. return (el, mods) => {
  63. if (el && typeof el !== "string") {
  64. mods = el;
  65. el = "";
  66. }
  67. el = el ? `${name}__${el}` : name;
  68. return `${el}${genBem(el, mods)}`;
  69. };
  70. }
  71. function createNamespace(name) {
  72. const prefixedName = `van-${name}`;
  73. return [
  74. prefixedName,
  75. createBEM(prefixedName),
  76. createTranslate(prefixedName)
  77. ];
  78. }