本文整理汇总了TypeScript中@ephox/alloy.Menu.parts方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Menu.parts方法的具体用法?TypeScript Menu.parts怎么用?TypeScript Menu.parts使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@ephox/alloy.Menu
的用法示例。
在下文中一共展示了Menu.parts方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: chunk
const forSwatch = (columns: number | 'auto') => {
return {
dom: {
tag: 'div',
classes: [ 'tox-menu', 'tox-swatches-menu' ]
},
components: [
{
dom: {
tag: 'div',
classes: [ 'tox-swatches' ]
},
components: [
AlloyMenu.parts().items({
preprocess: columns !== 'auto' ? chunk(
{
tag: 'div',
classes: [ 'tox-swatches__row' ]
},
columns
) : Fun.identity
})
]
}
]
};
};
示例2: preprocessCollection
const forCollection = (columns: number | 'auto', initItems, hasIcons: boolean = true) => {
return {
dom: {
tag: 'div',
classes: [ 'tox-menu', 'tox-collection' ].concat(columns === 1 ? [ 'tox-collection--list' ] : [ 'tox-collection--grid' ])
},
components: [
// TODO: Clean up code and test atomically
AlloyMenu.parts().items({
preprocess: (items) => {
if (columns !== 'auto' && columns > 1) {
return chunk<AlloySpec>({
tag: 'div',
classes: [ 'tox-collection__group' ]
}, columns)(items);
} else {
return preprocessCollection(items, (item, i) => {
return initItems[i].type === 'separator';
});
}
}
})
]
};
};
示例3: menuDom
export const renderWidgetMenu = (spec: WidgetMenuFoo): Partial<MenuTypes.MenuSpec> => {
const memWidget = Memento.record(spec.widget as SimpleOrSketchSpec);
return {
value: spec.value,
items: [
{
type: 'widget',
data: {
// FIX: Widgets.
value: Id.generate('widget-id')
},
autofocus: true,
// FIX: widget classes.
dom: {
tag: 'div'
},
components: [
ItemWidget.parts().widget(
{
dom: {
tag: 'div',
classes: [ 'tox-menu-widget-js' ]
},
components: [ memWidget.asSpec() ],
behaviours: Behaviour.derive([
Keying.config({
mode: 'special',
focusIn: (comp) => {
memWidget.getOpt(comp).each(Keying.focusIn);
return Option.some(true);
}
})
])
}
)
],
}
],
dom: menuDom(false, 1, 'normal'),
components: [
Menu.parts().items({ })
]
};
};
示例4: getMenuClasses
};
};
const dom = (hasIcons: boolean, columns: Types.ColumnTypes, presets: Types.PresetTypes) => {
const menuClasses = getMenuClasses(presets);
return {
tag: 'div',
classes: Arr.flatten([
[ menuClasses.menu, `tox-menu-${columns}-column` ],
hasIcons ? [ menuClasses.hasIcons ] : [ ]
])
};
};
const components = [
AlloyMenu.parts().items({ })
];
// NOTE: Up to here.
const part = (hasIcons: boolean, columns: Types.ColumnTypes, presets: Types.PresetTypes): Partial<TieredMenuTypes.TieredMenuSpec> => {
const menuClasses = getMenuClasses(presets);
const d = {
tag: 'div',
classes: Arr.flatten([
[ menuClasses.tieredMenu ]
])
};
return {
dom: d,
markers: markers(presets)
示例5: function
const makeMenu = function (value, items, memMenuThunk, collapsable) {
return {
value,
dom: {
tag: 'div'
},
components: [
Button.sketch({
dom: {
tag: 'div',
classes: [ Styles.resolve('styles-collapser') ]
},
components: collapsable ? [
{
dom: {
tag: 'span',
classes: [ Styles.resolve('styles-collapse-icon') ]
}
},
GuiFactory.text(value)
] : [ GuiFactory.text(value) ],
action (item) {
if (collapsable) {
const comp = memMenuThunk().get(item);
TieredMenu.collapseMenu(comp);
}
}
}),
{
dom: {
tag: 'div',
classes: [ Styles.resolve('styles-menu-items-container') ]
},
components: [
Menu.parts().items({ })
],
behaviours: Behaviour.derive([
AddEventsBehaviour.config('adhoc-scrollable-menu', [
AlloyEvents.runOnAttached(function (component, simulatedEvent) {
Css.set(component.element(), 'overflow-y', 'auto');
Css.set(component.element(), '-webkit-overflow-scrolling', 'touch');
Scrollable.register(component.element());
}),
AlloyEvents.runOnDetached(function (component) {
Css.remove(component.element(), 'overflow-y');
Css.remove(component.element(), '-webkit-overflow-scrolling');
Scrollable.deregister(component.element());
})
])
])
}
],
items,
menuBehaviours: Behaviour.derive([
Transitioning.config({
initialState: 'after',
routes: Transitioning.createTristate('before', 'current', 'after', {
transition: {
property: 'transform',
transitionClass: 'transitioning'
}
})
})
])
};
};