create.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. // If the importer is in node compatibility mode or this is not an ESM
  21. // file that has been converted to a CommonJS file using a Babel-
  22. // compatible transform (i.e. "__esModule" has not been set), then set
  23. // "default" to the CommonJS "module.exports" for node compatibility.
  24. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  25. mod
  26. ));
  27. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  28. var stdin_exports = {};
  29. __export(stdin_exports, {
  30. createBEM: () => createBEM,
  31. createNamespace: () => createNamespace,
  32. createTranslate: () => createTranslate
  33. });
  34. module.exports = __toCommonJS(stdin_exports);
  35. var import_basic = require("./basic");
  36. var import_format = require("./format");
  37. var import_locale = __toESM(require("../locale"));
  38. function createTranslate(name) {
  39. const prefix = (0, import_format.camelize)(name) + ".";
  40. return (path, ...args) => {
  41. const messages = import_locale.default.messages();
  42. const message = (0, import_basic.get)(messages, prefix + path) || (0, import_basic.get)(messages, path);
  43. return (0, import_basic.isFunction)(message) ? message(...args) : message;
  44. };
  45. }
  46. function genBem(name, mods) {
  47. if (!mods) {
  48. return "";
  49. }
  50. if (typeof mods === "string") {
  51. return ` ${name}--${mods}`;
  52. }
  53. if (Array.isArray(mods)) {
  54. return mods.reduce(
  55. (ret, item) => ret + genBem(name, item),
  56. ""
  57. );
  58. }
  59. return Object.keys(mods).reduce(
  60. (ret, key) => ret + (mods[key] ? genBem(name, key) : ""),
  61. ""
  62. );
  63. }
  64. function createBEM(name) {
  65. return (el, mods) => {
  66. if (el && typeof el !== "string") {
  67. mods = el;
  68. el = "";
  69. }
  70. el = el ? `${name}__${el}` : name;
  71. return `${el}${genBem(el, mods)}`;
  72. };
  73. }
  74. function createNamespace(name) {
  75. const prefixedName = `van-${name}`;
  76. return [
  77. prefixedName,
  78. createBEM(prefixedName),
  79. createTranslate(prefixedName)
  80. ];
  81. }