本文整理汇总了TypeScript中@ephox/katamari.Merger类的典型用法代码示例。如果您正苦于以下问题:TypeScript Merger类的具体用法?TypeScript Merger怎么用?TypeScript Merger使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Merger类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: function
const getFromExpandingItem = function (item) {
const newItem = Merger.deepMerge(
Objects.exclude(item, [ 'items' ]),
{
menu: true
}
);
const rest = expand(item.items);
const newMenus = Merger.deepMerge(
rest.menus,
Objects.wrap(
item.title,
rest.items
)
);
const newExpansions = Merger.deepMerge(
rest.expansions,
Objects.wrap(item.title, item.title)
);
return {
item: newItem,
menus: newMenus,
expansions: newExpansions
};
};
示例2:
const renderCommonSpec = (spec, actionOpt, extraBehaviours = [], dom, components) => {
const action = actionOpt.fold(() => {
return {};
}, (action) => {
return {
action
};
});
const common = {
buttonBehaviours: Behaviour.derive([
DisablingConfigs.button(spec.disabled),
Tabstopping.config({}),
AddEventsBehaviour.config('button press', [
AlloyEvents.preventDefault('click'),
AlloyEvents.preventDefault('mousedown')
])
].concat(extraBehaviours)),
eventOrder: {
click: ['button press', 'alloy.base.behaviour'],
mousedown: ['button press', 'alloy.base.behaviour']
},
...action
};
const domFinal = Merger.deepMerge(common, { dom });
return Merger.deepMerge(domFinal, { components });
};
示例3: generateValueIfRequired
return Arr.foldr(realItems, (acc, item) => {
const itemWithValue = generateValueIfRequired(item);
const newData = getFromItem(itemWithValue, menuItems);
return {
menus: Merger.deepMerge(acc.menus, newData.menus),
items: [ newData.item ].concat(acc.items),
expansions: Merger.deepMerge(acc.expansions, newData.expansions)
};
}, {
示例4: styleTDTH
const applyDataToElement = (editor: Editor, tableElm, data: TableData) => {
const dom = editor.dom;
const attrs: any = {};
const styles: any = {};
attrs.class = data.class;
styles.height = Util.addSizeSuffix(data.height);
if (dom.getAttrib(tableElm, 'width') && !shouldStyleWithCss(editor)) {
attrs.width = Util.removePxSuffix(data.width);
} else {
styles.width = Util.addSizeSuffix(data.width);
}
if (shouldStyleWithCss(editor)) {
styles['border-width'] = Util.addSizeSuffix(data.border);
styles['border-spacing'] = Util.addSizeSuffix(data.cellspacing);
} else {
attrs.border = data.border;
attrs.cellpadding = data.cellpadding;
attrs.cellspacing = data.cellspacing;
}
// TODO: this has to be reworked somehow, for example by introducing dedicated option, which
// will control whether child TD/THs should be processed or not
if (shouldStyleWithCss(editor) && tableElm.children) {
for (let i = 0; i < tableElm.children.length; i++) {
styleTDTH(dom, tableElm.children[i], {
'border-width': Util.addSizeSuffix(data.border),
'padding': Util.addSizeSuffix(data.cellpadding),
});
if (hasAdvancedTableTab(editor)) {
styleTDTH(dom, tableElm.children[i], {
'border-color': data.bordercolor,
});
}
}
}
if (hasAdvancedTableTab(editor)) {
styles['background-color'] = data.backgroundcolor;
styles['border-color'] = data.bordercolor;
styles['border-style'] = data.borderstyle;
}
attrs.style = dom.serializeStyle(Merger.merge(getDefaultStyles(editor), styles));
dom.setAttribs(tableElm, Merger.merge(getDefaultAttributes(editor), attrs));
};
示例5: function
const convert = function (formats, memMenuThunk) {
const mainMenu = makeMenu('Styles', [
].concat(
Arr.map(formats.items, function (k) {
return makeItem(getValue(k), k.title, k.isSelected(), k.getPreview(), Objects.hasKey(formats.expansions, getValue(k)));
})
), memMenuThunk, false);
const submenus = Obj.map(formats.menus, function (menuItems, menuName) {
const items = Arr.map(menuItems, function (item) {
return makeItem(
getValue(item),
item.title,
item.isSelected !== undefined ? item.isSelected() : false,
item.getPreview !== undefined ? item.getPreview() : '',
Objects.hasKey(formats.expansions, getValue(item))
);
});
return makeMenu(menuName, items, memMenuThunk, true);
});
const menus = Merger.deepMerge(submenus, Objects.wrap('styles', mainMenu));
const tmenu = TieredMenu.tieredData('styles', menus, formats.expansions);
return {
tmenu
};
};
示例6: withRoot
withRoot((_) => {
const prevData = instanceApi.getData();
const mergedData = Merger.merge(prevData, newData);
const newInternalData = validateData(access, mergedData);
const form = access.getFormWrapper();
Representing.setValue(form, newInternalData);
});
示例7: function
const serialize = function (node, parserArgs?) {
const args = Merger.merge({ format: 'html' }, parserArgs ? parserArgs : {});
const targetNode = DomSerializerPreProcess.process(editor, node, args);
const html = getHtmlFromNode(dom, targetNode, args);
const rootNode = parseHtml(htmlParser, html, args);
return args.format === 'tree' ? rootNode : toHtml(editor, settings, schema, rootNode, args);
};
示例8:
const renderNormalItemStructure = (info: NormalItemSpec, icon: Option<string>, renderIcons: boolean, textRender: (text: string) => AlloySpec, rtlClass: boolean): ItemStructure => {
// checkmark has priority, otherwise render icon if we have one, otherwise empty icon for spacing
const leftIcon = renderIcons ? info.checkMark.orThunk(() => icon.or(Option.some('')).map(renderIcon)) : Option.none();
const domTitle = info.ariaLabel.map((label): {attributes?: {title: string}} => {
return {
attributes: {
// TODO: AP-213 change this temporary solution to use tooltips, ensure its aria readable still.
// for icon only implementations we need either a title or aria label to satisfy aria requirements.
title: I18n.translate(label)
}
};
}).getOr({});
const dom = Merger.merge({
tag: 'div',
classes: [ ItemClasses.navClass, ItemClasses.selectableClass ].concat(rtlClass ? [ ItemClasses.iconClassRtl ] : []),
}, domTitle);
const menuItem = {
dom,
optComponents: [
leftIcon,
info.textContent.map(textRender),
info.shortcutContent.map(renderShortcut),
info.caret
]
};
return menuItem;
};
示例9: toValidValues
const updateDataWithForm = (form: AlloyComponent): void => {
const formData = Representing.getValue(form);
const validData = toValidValues(formData).getOr({ });
const currentData = storedValue.get();
const newData = Merger.deepMerge(currentData, validData);
storedValue.set(newData);
};