OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
_backup
/
tinymce
/
tinymce
/
src
/
themes
/
silver
/
main
/
ts
/
ui
/
menus
/
menu
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/20/2020 06:41:08 AM
rwxr-xr-x
📄
MenuClasses.ts
761 bytes
02/20/2020 06:41:02 AM
rw-r--r--
📄
MenuConversion.ts
3.8 KB
02/20/2020 06:41:02 AM
rw-r--r--
📄
MenuMovement.ts
1.83 KB
02/20/2020 06:41:03 AM
rw-r--r--
📄
MenuParts.ts
1.58 KB
02/20/2020 06:41:03 AM
rw-r--r--
📄
MenuStructures.ts
3.22 KB
02/20/2020 06:41:04 AM
rw-r--r--
📄
MenuWidgets.ts
1.65 KB
02/20/2020 06:41:05 AM
rw-r--r--
📄
NestedMenus.ts
1.48 KB
02/20/2020 06:41:06 AM
rw-r--r--
📄
SingleMenu.ts
8.38 KB
02/20/2020 06:41:06 AM
rw-r--r--
Editing: NestedMenus.ts
Close
/** * Copyright (c) Tiny Technologies, Inc. All rights reserved. * Licensed under the LGPL or a commercial license. * For LGPL see License.txt in the project root for license information. * For commercial licenses see https://www.tiny.cloud/ */ import { UiFactoryBackstageProviders } from '../../../backstage/Backstage'; import { TieredData, TieredMenu } from '@ephox/alloy'; import { Objects } from '@ephox/boulder'; import { Id, Merger, Obj, Option } from '@ephox/katamari'; import { expand } from './MenuConversion'; import { createPartialMenu, SingleMenuItemApi } from './SingleMenu'; import ItemResponse from '../item/ItemResponse'; // TODO: Consider moving the expansion part to alloy? const build = (items: string | Array<string | SingleMenuItemApi>, itemResponse: ItemResponse, providersBackstage: UiFactoryBackstageProviders): Option<TieredData> => { const primary = Id.generate('primary-menu'); const data = expand(items, providersBackstage.menuItems()); if (data.items.length === 0) { return Option.none(); } const mainMenu = createPartialMenu(primary, data.items, itemResponse, providersBackstage); const submenus = Obj.map(data.menus, (menuItems, menuName) => createPartialMenu(menuName, menuItems, itemResponse, providersBackstage)); const menus = Merger.deepMerge(submenus, Objects.wrap(primary, mainMenu)); return Option.from(TieredMenu.tieredData(primary, menus, data.expansions)); }; // Move to a separate file. Just worried about merge conflicts. export { build };