@omnia/fx
Version:
Provide Omnia Fx typings and tooling for clientside Omnia development.
79 lines (78 loc) • 3.04 kB
TypeScript
import { LayoutEditorCanvasApi, LayoutEditorCanvasStyles, LayoutItem } from "@omnia/fx/models";
import { LayoutMediaContext, LayoutFileContext } from "@omnia/fx/ux";
import { BlockCatalogStore, LayoutCanvasStore, ThemingRenditionManager } from "../";
import { OmniaTheming, ThemeStore, VueComponentBase } from "../..";
import { SubscriptionHandler } from "../../..";
import { IWebComponentInstance } from "../../../runtime/core/InternalWebComponentBootstrapper";
import { MediaPickerService } from "../../../services";
import { BlockTitleSettingsStore, DirectionRuleStore } from "../../../stores";
import { AnchorLink } from "../../AnchorLink";
import { ILayoutEditorCanvas } from "./ILayoutEditorCanvas";
import "./LayoutEditorCanvas.css";
export default class LayoutEditorCanvas extends VueComponentBase implements IWebComponentInstance, ILayoutEditorCanvas {
styles?: Partial<typeof LayoutEditorCanvasStyles>;
getApi: (inst: LayoutEditorCanvasApi) => void;
provider: string;
authDisabled?: boolean;
layoutStore: LayoutCanvasStore;
mediaContext: LayoutMediaContext;
fileContext: LayoutFileContext;
blockTitleSettingsStore: BlockTitleSettingsStore;
omniaTheming: OmniaTheming;
layoutItemStore: BlockCatalogStore;
SubscriptionHandler: SubscriptionHandler;
mediaPickerService: MediaPickerService;
themeStore: ThemeStore;
directionRuleStore: DirectionRuleStore;
themingRenditionManager: ThemingRenditionManager;
anchorLink: AnchorLink;
private omniaUxLoc;
onStyleChange(newValue: any, oldValue: any): void;
private tabState;
private LayoutEditorCanvasClasses;
private model;
private isDragging;
private originalScreenWidth;
private originalWindowWidth;
private timeWatchId;
private enableVerticalAlign;
private layoutItemDelegator;
private delegatedSections;
private layoutItemDelegatorSubHandler;
beforeCreate(): void;
created(): void;
destroyed(): void;
mounted(): void;
beforeDestroy(): void;
private handleWindowResize;
private enalbeRightResizer;
private DragStart;
private DragStop;
private ResizePanelSettings;
private setSettingsPanelWrapperWidthWhenIconClicked;
private get backgroundImage();
setupLayout(): void;
private onToggleSettingsDrawer;
createOrphanedBlocks(orphanedBlocks: Array<LayoutItem>): JSX.Element[];
/**
* Function to render the sections fast
* @param h is the hyperscript reference
*/
createSectionMarkup(): Array<JSX.Element>;
/**
* Renders the layout item selector
* @param h
*/
renderLayoutItemSelector(): VueTsxSupport.JSX.Element;
private renderDevicePreviewer;
private renderStructure;
private renderLayoutTemplates;
private renderLayoutClipboard;
private renderDrawerOptions;
private renderDrawer;
private renderDeveloperTools;
private isSettingsLocked;
private renderSettings;
private onContainerUpdated;
render(): VueTsxSupport.JSX.Element;
}