@blocklet/meta 1.8.40 → 1.8.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,9 +45,10 @@ declare function splitNavigationBySection(navigation: any): any[];
45
45
  */
46
46
  declare function nestNavigationList(list?: any[]): any[];
47
47
  declare function filterNavigation(navigationList: any, components?: any[]): any[];
48
+ declare function cleanOrphanNavigation(list: any): any;
48
49
  declare function parseNavigation(blocklet?: {}, options?: {}): {
49
50
  navigationList: any[];
50
51
  components: any[];
51
52
  builtinList: any[];
52
53
  };
53
- export { parseNavigation, deepWalk, isMatchSection, nestNavigationList, filterNavigation, joinLink, checkLink, flatternNavigation, splitNavigationBySection, };
54
+ export { parseNavigation, deepWalk, isMatchSection, nestNavigationList, filterNavigation, cleanOrphanNavigation, joinLink, checkLink, flatternNavigation, splitNavigationBySection, };
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.splitNavigationBySection = exports.flatternNavigation = exports.checkLink = exports.joinLink = exports.filterNavigation = exports.nestNavigationList = exports.isMatchSection = exports.deepWalk = exports.parseNavigation = void 0;
7
+ exports.splitNavigationBySection = exports.flatternNavigation = exports.checkLink = exports.joinLink = exports.cleanOrphanNavigation = exports.filterNavigation = exports.nestNavigationList = exports.isMatchSection = exports.deepWalk = exports.parseNavigation = void 0;
8
8
  const unionWith_1 = __importDefault(require("lodash/unionWith"));
9
9
  const isEqual_1 = __importDefault(require("lodash/isEqual"));
10
10
  const pick_1 = __importDefault(require("lodash/pick"));
@@ -301,7 +301,6 @@ function patchBuiltinNavigation(navigation) {
301
301
  const copyNavigation = (0, cloneDeep_1.default)(navigation).filter((item) => item.id);
302
302
  deepWalk(copyNavigation, (item, parent) => {
303
303
  var _a;
304
- // item.id = item.component || JSON.stringify(item.title) || nanoid();
305
304
  if (item.items && item.items.length) {
306
305
  for (let i = item.items.length - 1; i >= 0; i--) {
307
306
  if (!item.items[i].id) {
@@ -463,8 +462,8 @@ function nestNavigationList(list = []) {
463
462
  }
464
463
  exports.nestNavigationList = nestNavigationList;
465
464
  function filterNavigation(navigationList, components = []) {
466
- const fullNavigation = nestNavigationList(navigationList);
467
- deepWalk(fullNavigation, (item) => {
465
+ const nestedNavigation = nestNavigationList(navigationList);
466
+ deepWalk(nestedNavigation, (item) => {
468
467
  if (item === null || item === void 0 ? void 0 : item.component) {
469
468
  if (!components.some((x) => x.name === item.component)) {
470
469
  item.visible = false;
@@ -478,9 +477,22 @@ function filterNavigation(navigationList, components = []) {
478
477
  }
479
478
  }
480
479
  }, { key: 'items' });
481
- return fullNavigation.filter((item) => item.visible !== false);
480
+ const filteredNavigation = nestedNavigation.filter((item) => item.visible !== false);
481
+ return filteredNavigation;
482
482
  }
483
483
  exports.filterNavigation = filterNavigation;
484
+ function cleanOrphanNavigation(list) {
485
+ // 将仅有一个 child 的菜单提升到上一级
486
+ return list.map((item) => {
487
+ if (item.items && Array.isArray(item.items) && item.items.length === 1) {
488
+ if (['header', 'footer', '', undefined, null].includes(item.section)) {
489
+ return item.items[0];
490
+ }
491
+ }
492
+ return item;
493
+ });
494
+ }
495
+ exports.cleanOrphanNavigation = cleanOrphanNavigation;
484
496
  function parseNavigation(blocklet = {}, options = {}) {
485
497
  var _a;
486
498
  const { beforeProcess = (v) => v } = options;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.8.40",
6
+ "version": "1.8.42",
7
7
  "description": "Library to parse/validate/fix blocklet meta",
8
8
  "main": "./lib/index.js",
9
9
  "typings": "./lib/index.d.ts",
@@ -24,14 +24,14 @@
24
24
  "author": "wangshijun <wangshijun2020@gmail.com> (http://github.com/wangshijun)",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
- "@abtnode/client": "1.8.40",
28
- "@abtnode/constant": "1.8.40",
29
- "@abtnode/util": "1.8.40",
27
+ "@abtnode/client": "1.8.42",
28
+ "@abtnode/constant": "1.8.42",
29
+ "@abtnode/util": "1.8.42",
30
30
  "@arcblock/did": "1.18.26",
31
31
  "@arcblock/did-ext": "1.18.26",
32
32
  "@arcblock/did-util": "1.18.26",
33
33
  "@arcblock/jwt": "1.18.26",
34
- "@blocklet/constant": "1.8.40",
34
+ "@blocklet/constant": "1.8.42",
35
35
  "@ocap/asset": "1.18.26",
36
36
  "@ocap/mcrypto": "1.18.26",
37
37
  "@ocap/types": "1.18.26",
@@ -79,5 +79,5 @@
79
79
  "ts-node": "^10.9.1",
80
80
  "typescript": "^4.8.4"
81
81
  },
82
- "gitHead": "336dbe0ad2cf512a322358899e56aab3668b1715"
82
+ "gitHead": "04771ed44e11deb3f214b637be6e3b78ca2b9245"
83
83
  }