///
///
interface String {
breTotalTrim(): string;
breEqualsInvariant(other: String): boolean;
breStartsWith(part: String): boolean;
breContains(part: String): boolean;
}
interface Array {
find(predicate: (search: T) => boolean): T;
}
declare class Action {
type: string;
payload: any;
constructor(type: string, payload: any);
}
interface HtmlToolsButton {
icon: string;
command: string;
range: boolean;
aValueArgument: string;
}
declare namespace BrickyEditor {
class Common {
static getSelectedText(): string;
static propsEach(obj: any, func: (key: string, value) => any): void;
static propsFilterKeys(obj: any, filter: (key: string, value) => Boolean, payload?: any): any[];
}
}
declare namespace BrickyEditor {
class Editor {
$editor: JQuery;
static UI: UI;
options: EditorOptions;
blocks: Array;
selectedBlock: Block;
readonly selectedBlockIndex: number;
private compactTools?;
constructor($editor: JQuery, options: EditorOptions);
initAsync(): Promise;
private tryLoadInitialBlocksAsync();
tryBindFormSubmit(): void;
getData(): any;
getHtml(): string;
loadBlocks(blocks: Array): void;
addBlock(template: Template, data?: Array, idx?: number, select?: boolean): void;
private dispatchBlockAction(action);
private insertBlock(block, idx?);
private deleteBlock(block);
private moveBlock(block, offset);
private copyBlock(block);
private selectBlock(block);
private deselectBlock(block);
}
}
declare namespace BrickyEditor {
class EditorOptions {
templatesUrl: string;
onload: any;
blocksUrl: string;
blocks: Array;
compactTools?: Boolean;
compactToolsWidth: number;
ignoreHtml?: Boolean;
htmlToolsButtons?: Array;
formSelector: string;
inputSelector: string;
constructor(options: EditorOptions);
}
}
declare namespace BrickyEditor {
class Template {
name: string;
category: string[];
$html: JQuery;
$preview: JQuery;
constructor(el: Element);
getPreview(): JQuery;
}
}
declare namespace BrickyEditor {
class Block {
template: Template;
dispatcher: (action: Action) => void;
preview: boolean;
fields: Array;
ui: BlockUI;
constructor(template: Template, dispatcher: (action: Action) => void, preview: boolean, data?: Array);
delete(): void;
move(offset: number): void;
copy(): void;
select(): void;
deselect(): void;
scrollTo(): void;
getData(ignoreHtml?: Boolean): any;
getHtml(trim: Boolean, skipAttrRemoving?: Boolean): string;
}
}
declare namespace BrickyEditor {
class BlockAction {
icon: string;
action: (block) => any;
title: string;
constructor(icon?: string, action?: (block) => any, title?: string);
}
}
declare namespace BrickyEditor {
class BlockActions {
static DELETE: string;
static COPY: string;
static MOVE: string;
static SELECT: string;
static DESELECT: string;
static INSERT: string;
static delete: (block: Block) => Action;
static copy: (block: Block) => Action;
static select: (block: Block) => Action;
static deselect: (block: Block) => Action;
static move: (block: Block, offset: number) => Action;
static insert: (block: Block, idx: number) => Action;
}
}
declare namespace BrickyEditor {
class BlockUI {
private block;
$block: JQuery;
preview: boolean;
$tools: JQuery;
$editor: JQuery;
private static actions;
constructor(block: Block, $block: JQuery, preview: boolean, data?: Array);
delete(): void;
private buildEditorUI();
private buildButton(action);
private bindFields(data?);
}
}
declare namespace BrickyEditor {
namespace Fields {
abstract class BaseField {
private static _fields;
static readonly type: string;
name: string;
data: any;
protected block: Block;
protected $field: JQuery;
protected settings: (field: BaseField) => void;
protected getSettingsEl(): JQuery;
constructor(block: Block, $field: JQuery, data: any);
static registerCommonFields(): void;
private static registerField();
static createField(block: any, $el: JQuery, data: any): BaseField;
protected bind(): void;
protected selectBlock(): void;
}
}
}
declare namespace BrickyEditor {
namespace Fields {
class EmbedField extends BaseField {
getSettingsEl(): JQuery;
readonly settings: (field: BaseField) => void;
bind(): void;
loadMedia(): Promise;
}
}
}
declare namespace BrickyEditor {
namespace Fields {
class HtmlField extends BaseField {
bind(): void;
setHtml(html: string): void;
}
}
}
declare namespace BrickyEditor {
namespace Fields {
class ImageField extends BaseField {
bind(): void;
private getPromptParams();
setSrc(src: any): void;
setAlt(alt: any): void;
setFile(file: any): void;
_isImg: Boolean;
private readonly isImg;
}
}
}
declare namespace BrickyEditor {
namespace Prompt {
class PromptParameter {
key: string;
title: string;
placeholder: string;
value: any;
protected _$control: JQuery;
protected $input: JQuery;
constructor(key: string, title: string, value: any, placeholder?: string);
parseValue(): void;
$control: JQuery;
protected getEditor(): JQuery;
}
}
}
declare namespace BrickyEditor {
namespace Prompt {
class PromptParameterImage extends PromptParameter {
options: Array;
private _value;
constructor(key: string, title: string, value?: PromptParameterImageResult, placeholder?: string);
parseValue(): void;
protected getEditor(): JQuery;
}
}
}
declare namespace BrickyEditor {
namespace Prompt {
class PromptParameterImageResult {
fileContent: string;
fileInfo: PromptParameterImageResultFile;
}
class PromptParameterImageResultFile {
lastModified: number;
lastModifiedDate: any;
name: string;
size: number;
type: string;
constructor(file: File);
}
}
}
declare namespace BrickyEditor {
namespace Prompt {
class PromptParameterList {
params: Array;
constructor(params: Array);
getValue(key: string): any;
}
}
}
declare namespace BrickyEditor {
namespace Prompt {
class PromptParameterOption {
title: string;
value: any;
selected: Boolean;
constructor(title: string, value: any, selected?: Boolean);
}
}
}
declare namespace BrickyEditor {
namespace Prompt {
class PromptParameterOptions extends PromptParameter {
options: Array;
constructor(key: string, title: string, options: Array>, value?: any, placeholder?: string);
protected getEditor(): JQuery;
}
}
}
declare namespace BrickyEditor {
namespace Services {
class EmbedService {
static Instagram: string;
constructor();
static getEmbedAsync(embedUrl: string): Promise;
static processEmbed(provider: string): void;
}
}
}
declare namespace BrickyEditor {
namespace Services {
class TemplateService {
static templates: Template[];
static loadTemplatesAsync(editor: Editor): Promise;
static getTemplate(templateName: string): Template;
}
}
}
declare namespace BrickyEditor {
class HtmlTools {
private editor;
private $control;
constructor(editor: Editor);
private buttons;
private setControl();
private getButtonElement(icon, command, rangeCommand?, aValueArgument?);
show(rect: ClientRect): void;
private getLinkPromptParams(selection);
}
}
declare namespace BrickyEditor {
class Modal {
private $control;
private $closeBtn;
private $form;
private $btns;
private $okBtn;
private $cancelBtn;
closeFunction: any;
private selectionRanges;
constructor($control: JQuery, $closeBtn: JQuery, $form: JQuery, $btns: JQuery, $okBtn: JQuery, $cancelBtn: JQuery);
hideModal(): void;
showModal($html?: JQuery, showBtns?: boolean): void;
promptAsync(fields: Array): Promise;
saveSelection(): void;
restoreSelection(): void;
}
}
declare namespace BrickyEditor {
class SelectionHelper {
static getSelectedText(): string;
static replaceSelectedText(replacement: any): void;
}
}
declare namespace BrickyEditor {
class SelectionUtils {
static bindTextSelection($el: JQuery, handler: (rect: ClientRect) => any): void;
private static getSelectionRect();
}
}
declare namespace BrickyEditor {
class Selectors {
static field: string;
static selectorField: string;
static classMobile: string;
static htmlToolsCommand: string;
static htmlToolsCommandRange: string;
static selectorHtmlToolsCommand: string;
static selectorHtmlToolsCommandRange: string;
private static attr(attr);
}
}
declare namespace BrickyEditor {
class UI {
editor: Editor;
private $tools;
private $toolsBtn;
private $toolsTemplates;
private $toolsHideBtn;
private $toolsLoader;
modal: Modal;
htmlTools: HtmlTools;
private readonly isCompactTools;
constructor(editor: Editor);
private setTools();
private toggleTools();
private setModal();
toggleToolsLoader(toggle: any): void;
setTemplates(templates: Template[]): void;
static initBtnDeck($btnsDeck: JQuery): void;
static toggleBtnDeck($btnsDeck: JQuery, isOn?: Boolean): void;
}
}