Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
tag: 'div',
classes: [ 'tox-dialog__body' ]
},
components: [
{
dom: {
tag: 'div',
classes: ['tox-dialog__body-content']
},
components: [
memForm.asSpec()
]
}
],
behaviours: Behaviour.derive([
Keying.config({
mode: 'acyclic',
useTabstopAt: Fun.not(NavigableObject.isPseudoStop)
}),
ComposingConfigs.memento(memForm),
RepresentingConfigs.memento(memForm, {
postprocess: (formValue) => FormValues.toValidValues(formValue).fold(
(err) => {
// tslint:disable-next-line:no-console
console.error(err);
return { };
},
(vals) => vals
)
})
])
};Replacing.set(displayText, [ GuiFactory.text(sharedBackstage.providers.translate(se.event().text())) ] );
});
}),
AlloyEvents.run(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
})
]),
lazySink: sharedBackstage.getSink,
toggleClass: `${prefix}--active`,
parts: {
// FIX: hasIcons
menu: MenuParts.part(false, spec.columns, spec.presets)
},
fetch: () => {const outerContainer = GuiFactory.build(
OuterContainer.sketch({
dom: {
tag: 'div',
classes: ['tox', 'tox-tinymce'].concat(isInline ? ['tox-tinymce-inline'] : []).concat(deviceClasses).concat(platformClasses),
styles: {
// This is overridden by the skin, it helps avoid FOUC
visibility: 'hidden',
// Hide the container if needed, but don't use "display: none" so that it still has a position
...isHidden ? { opacity: '0', border: '0' } : {},
},
attributes
},
components: containerComponents,
behaviours: Behaviour.derive([
Keying.config({
mode: 'cyclic',
selector: '.tox-menubar, .tox-toolbar, .tox-toolbar__primary, .tox-toolbar__overflow--open, .tox-sidebar__overflow--open, .tox-statusbar__path, .tox-statusbar__wordcount, .tox-statusbar__branding a'
})
])
} as OuterContainerSketchSpec)
);
lazyOuterContainer = Option.some(outerContainer);
editor.shortcuts.add('alt+F9', 'focus menubar', function () {
OuterContainer.focusMenubar(outerContainer);
});
editor.shortcuts.add('alt+F10', 'focus toolbar', function () {
OuterContainer.focusToolbar(outerContainer);
});Tabstopping.config({ })
])
}),
AlloyTabSection.parts().tabview({
dom: {
tag: 'div',
classes: [ 'tox-dialog__body-content' ]
}
})
],
selectFirst: tabMode.selectFirst,
tabSectionBehaviours: Behaviour.derive([
AddEventsBehaviour.config('tabpanel', tabMode.extraEvents),
Keying.config({
mode: 'acyclic'
}),
// INVESTIGATE: Is this necessary? Probably used by getCompByName.
Composing.config({
// TODO: Think about this
find: (comp) => Arr.head(AlloyTabSection.getViewItems(comp))
}),
Representing.config({
store: {
mode: 'manual',
getValue: (tsection: AlloyComponent) => {
// NOTE: Assumes synchronous updating of store.
tsection.getSystem().broadcastOn([ SendDataToSectionChannel ], { });
return storedValue.get();
},const renderTextField = function (spec: TextField, providersBackstage: UiFactoryBackstageProviders) {
const pLabel = spec.label.map((label) => renderLabel(label, providersBackstage));
const baseInputBehaviours = [
Disabling.config({ disabled: spec.disabled }),
Keying.config({
mode: 'execution',
useEnter: spec.multiline !== true,
useControlEnter: spec.multiline === true,
execute: (comp) => {
AlloyTriggers.emit(comp, formSubmitEvent);
return Option.some(true);
},
}),
AddEventsBehaviour.config('textfield-change', [
AlloyEvents.run(NativeEvents.input(), (component, _) => {
AlloyTriggers.emitWith(component, formChangeEvent, { name: spec.name } );
}),
AlloyEvents.run(SystemEvents.postPaste(), (component, _) => {
AlloyTriggers.emitWith(component, formChangeEvent, { name: spec.name } );
})
]),const renderTextField = function (spec: TextFieldFoo, providersBackstage: UiFactoryBackstageProviders) {
const pLabel = spec.label.map((label) => renderLabel(label, providersBackstage));
const baseInputBehaviours = [
Keying.config({
mode: 'execution',
useEnter: spec.multiline !== true,
useControlEnter: spec.multiline === true,
execute: (comp) => {
AlloyTriggers.emit(comp, formSubmitEvent);
return Option.some(true);
},
}),
AddEventsBehaviour.config('textfield-change', [
AlloyEvents.run(NativeEvents.input(), (component, _) => {
AlloyTriggers.emitWith(component, formChangeEvent, { name: spec.name } );
}),
AlloyEvents.run(SystemEvents.postPaste(), (component, _) => {
AlloyTriggers.emitWith(component, formChangeEvent, { name: spec.name } );
})
]),}
} as AlloySpec;
const comps = Arr.map(spec.items, backstageShared.interpreter);
return {
dom: {
tag: 'div',
classes: ['tox-form__group']
},
components: [
label
].concat(comps),
behaviours: Behaviour.derive([
ComposingConfigs.self(),
Replacing.config({}),
RepresentingConfigs.domHtml(Option.none()),
Keying.config({
mode: 'acyclic'
}),
])
};
};sketch: (spec) => {
return CustomList.sketch({
uid: spec.uid,
dom: spec.dom,
listBehaviours: Behaviour.derive([
Keying.config({
mode: 'acyclic',
selector: '.tox-toolbar'
})
]),
makeItem: () => {
return renderToolbar({
type: spec.split,
uid: Id.generate('multiple-toolbar-item'),
backstage: spec.backstage,
cyclicKeying: false,
getSink: spec.getSink,
initGroups: [ ],
onEscape: () => Option.none()
});
},dom: UiDomFactory.dom('<div class="${prefix}-serialised-dialog-screen"></div>'),
components: [
navigationButton(-1, 'previous', (i > 0)),
parts.field(field.name, field.spec),
navigationButton(+1, 'next', (i < spec.maxFieldIndex))
]
}) : parts.field(field.name, field.spec);
})
})
],
formBehaviours: Behaviour.derive([
Receivers.orientation(function (dialog, message) {
reposition(dialog, message);
}),
Keying.config({
mode: 'special',
focusIn (dialog/*, specialInfo */) {
focusInput(dialog);
},
onTab (dialog/*, specialInfo */) {
navigate(dialog, +1);
return Option.some(true);
},
onShiftTab (dialog/*, specialInfo */) {
navigate(dialog, -1);
return Option.some(true);
}
}),
AddEventsBehaviour.config(formAdhocEvents, [
AlloyEvents.runOnAttached(function (dialog, simulatedEvent) {AlloyForm.sketch((parts) => {
return {
dom: {
tag: 'div',
classes: [ 'tox-form' ]
},
components: Arr.map(tab.items, (item) => interpretInForm(parts, item, backstage)),
formBehaviours: Behaviour.derive([
Keying.config({
mode: 'acyclic',
useTabstopAt: Fun.not(NavigableObject.isPseudoStop)
}),
AddEventsBehaviour.config('TabView.form.events', [
AlloyEvents.runOnAttached(setDataOnForm),
AlloyEvents.runOnDetached(updateDataWithForm)
]),
Receiving.config({
channels: Objects.wrapAll([
{
key: SendDataToSectionChannel,
value: {
onReceive: updateDataWithForm
}
},