本文整理汇总了TypeScript中@ephox/alloy.Unselecting类的典型用法代码示例。如果您正苦于以下问题:TypeScript Unselecting类的具体用法?TypeScript Unselecting怎么用?TypeScript Unselecting使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Unselecting类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: function
const forToolbar = function (clazz, action, extraBehaviours): SketchSpec {
return Button.sketch({
dom: UiDomFactory.dom('<span class="${prefix}-toolbar-button ${prefix}-icon-' + clazz + ' ${prefix}-icon"></span>'),
action,
buttonBehaviours: Merger.deepMerge(
Behaviour.derive([
Unselecting.config({ })
]),
extraBehaviours
)
});
};
示例2: function
const forToolbar = function (clazz, action, extraBehaviours, editor): SketchSpec {
return Button.sketch({
dom: getToolbarIconButton(clazz, editor),
action,
buttonBehaviours: Merger.deepMerge(
Behaviour.derive([
Unselecting.config({ })
]),
extraBehaviours
)
});
};
示例3: createPartialChoiceMenu
export const renderPanelButton = (spec: SwatchPanelButtonFoo, sharedBackstage: UiFactoryBackstageShared): SketchSpec => {
return AlloyDropdown.sketch({
dom: spec.dom,
components: spec.components,
toggleClass: 'mce-active',
dropdownBehaviours: Behaviour.derive([
Unselecting.config({}),
Tabstopping.config({})
]),
// getHotspot: spec.getHotspot,
layouts: spec.layouts,
sandboxClasses: ['tox-dialog__popups'],
lazySink: sharedBackstage.getSink,
fetch: (comp) => {
return Future.nu((callback) => {
return spec.fetch(callback);
}).map((items) => {
return Option.from(createTieredDataFrom(
Merger.deepMerge(
createPartialChoiceMenu(
Id.generate('menu-value'),
items,
(value) => {
spec.onItemAction(comp, value);
},
spec.columns,
spec.presets,
ItemResponse.CLOSE_ON_EXECUTE,
// No colour is ever selected on opening
() => false,
sharedBackstage.providers
),
{
movement: deriveMenuMovement(spec.columns, spec.presets)
}
)
));
});
},
parts: {
menu: MenuParts.part(false, 1, spec.presets)
}
});
};
示例4: Cell
const renderCommonDropdown = <T>(spec: CommonDropdownSpec<T>, prefix: string, sharedBackstage: UiFactoryBackstageShared): SketchSpec => {
const editorOffCell = Cell(Fun.noop);
const optMemDisplayText = spec.text.map((text) => Memento.record(renderLabel(text, prefix, sharedBackstage.providers)));
const optMemDisplayIcon = spec.icon.map((iconName) => Memento.record(renderReplacableIconFromPack(iconName, sharedBackstage.providers.icons)));
/*
* The desired behaviour here is:
*
* when left or right is pressed, and it isn't associated with expanding or
* collapsing a submenu, then it should navigate to the next menu item, and
* expand it (without highlighting any items in the expanded menu).
* It also needs to close the previous menu
*/
const onLeftOrRightInMenu = (comp: AlloyComponent, se: SimulatedEvent<SugarEvent>) => {
// The originating dropdown is stored on the sandbox itself.
const dropdown: AlloyComponent = Representing.getValue(comp);
// Focus the dropdown. Current workaround required to make flow recognise the current focus
Focusing.focus(dropdown);
AlloyTriggers.emitWith(dropdown, 'keydown', {
raw: se.event().raw()
});
// Close the dropdown
AlloyDropdown.close(dropdown);
return Option.some(true);
};
const role = spec.role.fold(() => ({ }), (role) => ({ role }));
const tooltipAttributes = spec.tooltip.fold(
() => ({}),
(tooltip) => {
const translatedTooltip = sharedBackstage.providers.translate(tooltip);
return {
'title': translatedTooltip, // TODO: tooltips AP-213
'aria-label': translatedTooltip
};
}
);
const memDropdown = Memento.record(
AlloyDropdown.sketch({
...role,
dom: {
tag: 'button',
classes: [ prefix, `${prefix}--select` ].concat(Arr.map(spec.classes, (c) => `${prefix}--${c}`)),
attributes: {
...tooltipAttributes
}
},
components: componentRenderPipeline([
optMemDisplayIcon.map((mem) => mem.asSpec()),
optMemDisplayText.map((mem) => mem.asSpec()),
Option.some({
dom: {
tag: 'div',
classes: [ `${prefix}__select-chevron` ],
innerHtml: Icons.get('chevron-down', sharedBackstage.providers.icons)
}
})
]),
matchWidth: true,
useMinWidth: true,
// TODO: Not quite working. Can still get the button focused.
dropdownBehaviours: Behaviour.derive([
...spec.dropdownBehaviours,
DisablingConfigs.button(spec.disabled),
Unselecting.config({ }),
Replacing.config({ }),
AddEventsBehaviour.config('dropdown-events', [
onControlAttached(spec, editorOffCell),
onControlDetached(spec, editorOffCell)
]),
AddEventsBehaviour.config('menubutton-update-display-text', [
AlloyEvents.run<UpdateMenuTextEvent>(updateMenuText, (comp, se) => {
optMemDisplayText.bind((mem) => mem.getOpt(comp)).each((displayText) => {
Replacing.set(displayText, [ GuiFactory.text(sharedBackstage.providers.translate(se.event().text())) ] );
});
}),
AlloyEvents.run<UpdateMenuIconEvent>(updateMenuIcon, (comp, se) => {
optMemDisplayIcon.bind((mem) => mem.getOpt(comp)).each((displayIcon) => {
Replacing.set(displayIcon, [ renderReplacableIconFromPack(se.event().icon(), sharedBackstage.providers.icons) ] );
});
})
])
]),
eventOrder: Merger.deepMerge(toolbarButtonEventOrder, {
mousedown: [ 'focusing', 'alloy.base.behaviour', 'item-type-events', 'normal-dropdown-events' ]
}),
sandboxBehaviours: Behaviour.derive([
Keying.config({
mode: 'special',
onLeft: onLeftOrRightInMenu,
onRight: onLeftOrRightInMenu
})
]),
//.........这里部分代码省略.........
示例5: makeIcon
export const renderCheckbox = (spec: CheckboxFoo, providerBackstage: UiFactoryBackstageProviders): SimpleSpec => {
const repBehaviour = Representing.config({
store: {
mode: 'manual',
getValue: (comp: AlloyComponent): boolean => {
const el = comp.element().dom() as HTMLInputElement;
return el.checked;
},
setValue: (comp: AlloyComponent, value: boolean) => {
const el = comp.element().dom() as HTMLInputElement;
el.checked = value;
}
}
});
const toggleCheckboxHandler = (comp) => {
comp.element().dom().click();
return Option.some(true);
};
const pField = AlloyFormField.parts().field({
factory: { sketch: Fun.identity },
dom: {
tag: 'input',
classes: ['tox-checkbox__input'],
attributes: {
type: 'checkbox'
}
},
behaviours: Behaviour.derive([
ComposingConfigs.self(),
Tabstopping.config({}),
Focusing.config({ }),
repBehaviour,
Keying.config({
mode: 'special',
onEnter: toggleCheckboxHandler,
onSpace: toggleCheckboxHandler,
stopSpaceKeyup: true
}),
AddEventsBehaviour.config('checkbox-events', [
AlloyEvents.run(NativeEvents.change(), (component, _) => {
AlloyTriggers.emitWith(component, formChangeEvent, { name: spec.name } );
})
])
]),
});
const pLabel = AlloyFormField.parts().label({
dom: {
tag: 'span',
classes: ['tox-checkbox__label'],
innerHtml: providerBackstage.translate(spec.label)
},
behaviours: Behaviour.derive([
Unselecting.config({})
])
});
const makeIcon = (className: string) => {
const iconName = className === 'checked' ? 'selected' : 'unselected';
return {
dom: {
tag: 'span',
classes: ['tox-icon', 'tox-checkbox-icon__' + className],
innerHtml: Icons.get(iconName, providerBackstage.icons)
}
};
};
const memIcons = Memento.record(
{
dom: {
tag: 'div',
classes: ['tox-checkbox__icons']
},
components: [
makeIcon('checked'),
makeIcon('unchecked')
]
}
);
return AlloyFormField.sketch({
dom: {
tag: 'label',
classes: ['tox-checkbox'],
},
components: [
pField,
memIcons.asSpec(),
pLabel
]
});
};