UNPKG

tandem-front-end

Version:

Visual editor for web components

1,863 lines (1,593 loc) 52.7 kB
import { Action } from "redux"; import * as React from "react"; import { Directory, Point, Bounds, Struct, StructReference, TreeNode, File, KeyValue, TreeMoveOffset, FSItem, FSItemTagNames } from "tandem-common"; import { publicActionCreator } from "tandem-common"; import { ComputedDisplayInfo, SyntheticNativeNodeMap, SyntheticVisibleNode, PCNodeClip, PCVariantTrigger, PCVariable, Frame, PCComponent, PCVariant, PCVariantTriggerSource, PCVariableType, PCMediaQuery, PCQueryType, PCMediaQueryCondition, PCQuery, PCVariableQueryCondition } from "paperclip"; import { RegisteredComponent } from ".."; import { FrameMode, ToolType, EditorWindow, ProjectConfig, ProjectInfo, BaseQuickSearchResult, QuickSearchResult, ScriptProcess, ScriptProcessLog, Unloader } from "../state"; import { InspectorNode } from "paperclip"; import { ProjectTemplate } from "tandem-starter-kits"; export const PROJECT_LOADED = "PROJECT_LOADED"; export const ACTIVE_FILE_CHANGED = "ACTIVE_FILE_CHANGED"; export const SYNTHETIC_WINDOW_OPENED = "SYNTHETIC_WINDOW_OPENED"; export const PROJECT_DIRECTORY_LOADED = "PROJECT_DIRECTORY_LOADED"; export const DOCUMENT_RENDERED = "DOCUMENT_RENDERERED"; export const CANVAS_TOOL_OVERLAY_MOUSE_LEAVE = "CANVAS_TOOL_OVERLAY_MOUSE_LEAVE"; export const CANVAS_TOOL_OVERLAY_MOUSE_PAN_START = "CANVAS_TOOL_OVERLAY_MOUSE_PAN_START"; export const CANVAS_TOOL_OVERLAY_MOUSE_PANNING = "CANVAS_TOOL_OVERLAY_MOUSE_PANNING"; export const CANVAS_TOOL_OVERLAY_MOUSE_PAN_END = "CANVAS_TOOL_OVERLAY_MOUSE_PAN_END"; export const CANVAS_TOOL_OVERLAY_MOUSE_DOUBLE_CLICKED = "CANVAS_TOOL_OVERLAY_MOUSE_DOUBLE_CLICKED"; export const CANVAS_TOOL_WINDOW_BACKGROUND_CLICKED = "CANVAS_TOOL_WINDOW_BACKGROUND_CLICKED"; export const CANVAS_TOOL_WINDOW_KEY_DOWN = "CANVAS_TOOL_WINDOW_KEY_DOWN"; export const CANVAS_TOOL_ARTBOARD_TITLE_CLICKED = "CANVAS_TOOL_ARTBOARD_TITLE_CLICKED"; export const CANVAS_TOOL_PREVIEW_BUTTON_CLICKED = "CANVAS_TOOL_PREVIEW_BUTTON_CLICKED"; export const FILE_NAVIGATOR_ITEM_CLICKED = "FILE_NAVIGATOR_ITEM_CLICKED"; export const FILE_NAVIGATOR_ITEM_DOUBLE_CLICKED = "FILE_NAVIGATOR_ITEM_DOUBLE_CLICKED"; export const FILE_NAVIGATOR_ITEM_BLURRED = "FILE_NAVIGATOR_ITEM_BLURRED"; export const FILE_NAVIGATOR_NEW_FILE_CLICKED = "FILE_NAVIGATOR_NEW_FILE_CLICKED"; export const FILE_NAVIGATOR_NEW_DIRECTORY_CLICKED = "FILE_NAVIGATOR_NEW_DIRECTORY_CLICKED"; export const FILE_NAVIGATOR_TOGGLE_DIRECTORY_CLICKED = "FILE_NAVIGATOR_TOGGLE_DIRECTORY_CLICKED"; export const FILE_NAVIGATOR_BASENAME_CHANGED = "FILE_NAVIGATOR_BASENAME_CHANGED"; export const FILE_NAVIGATOR_NEW_FILE_ENTERED = "FILE_NAVIGATOR_NEW_FILE_ENTERED"; export const FILE_NAVIGATOR_DROPPED_ITEM = "FILE_NAVIGATOR_DROPPED_ITEM"; export const TOOLBAR_TOOL_CLICKED = "TOOLBAR_TOOL_CLICKED"; export const EDITOR_TAB_CLICKED = "EDITOR_TAB_CLICKED"; export const EDITOR_TAB_RIGHT_CLICKED = "EDITOR_TAB_RIGHT_CLICKED"; export const EDITOR_TAB_CLOSE_BUTTON_CLICKED = "EDITOR_TAB_CLOSE_BUTTON_CLICKED"; export const EDITOR_TAB_CONTEXT_MENU_OPEN_IN_BOTTOM_OPTION_CLICKED = "EDITOR_TAB_CONTEXT_MENU_OPEN_IN_BOTTOM_OPTION_CLICKED"; export const MODULE_CONTEXT_MENU_CLOSE_OPTION_CLICKED = "MODULE_CONTEXT_MENU_CLOSE_OPTION_CLICKED"; export const OPEN_FILE_ITEM_CLICKED = "OPEN_FILE_ITEM_CLICKED"; export const OPEN_FILE_ITEM_CLOSE_CLICKED = "OPEN_FILE_ITEM_CLOSE_CLICKED"; export const CANVAS_MOUNTED = "CANVAS_MOUNTED"; export const CANVAS_MOUSE_MOVED = "CANVAS_MOUSE_MOVED"; export const CANVAS_DRAGGED_OVER = "CANVAS_DRAGGED_OVER"; export const CANVAS_MOUSE_CLICKED = "CANVAS_MOUSE_CLICKED"; export const CANVAS_MOUSE_DOUBLE_CLICKED = "CANVAS_MOUSE_DOUBLE_CLICKED"; export const CANVAS_WHEEL = "CANVAS_WHEEL"; export const CANVAS_MOTION_RESTED = "CANVAS_MOTION_RESTED"; export const CANVAS_DROPPED_ITEM = "CANVAS_DROPPED_ITEM"; export const ADD_VARIANT_BUTTON_CLICKED = "ADD_VARIANT_BUTTON_CLICKED"; export const REMOVE_VARIANT_BUTTON_CLICKED = "REMOVE_VARIANT_BUTTON_CLICKED"; export const VARIANT_DEFAULT_SWITCH_CLICKED = "VARIANT_DEFAULT_SWITCH_CLICKED"; export const VARIANT_LABEL_CHANGED = "VARIANT_LABEL_CHANGED"; export const ADD_STYLE_BUTTON_CLICKED = "ADD_STYLE_BUTTON_CLICKED"; export const NEW_STYLE_VARIANT_CONFIRMED = "NEW_STYLE_VARIANT_CONFIRMED"; export const NEW_STYLE_VARIANT_BUTTON_CLICKED = "NEW_STYLE_VARIANT_BUTTON_CLICKED"; export const PROMPT_OK_BUTTON_CLICKED = "PROMPT_OK_BUTTON_CLICKED"; export const PROMPT_CANCEL_BUTTON_CLICKED = "PROMPT_CANCEL_BUTTON_CLICKED"; export const REMOVE_STYLE_BUTTON_CLICKED = "ADD_STYLE_BUTTON_CLICKED"; export const EDIT_VARIANT_NAME_BUTTON_CLICKED = "EDIT_VARIANT_NAME_BUTTON_CLICKED"; export const EDIT_VARIANT_NAME_CONFIRMED = "EDIT_VARIANT_NAME_CONFIRMED"; export const STYLE_VARIANT_DROPDOWN_CHANGED = "STYLE_VARIANT_DROPDOWN_CHANGED"; export const ADD_VARIABLE_BUTTON_CLICKED = "ADD_VARIABLE_BUTTON_CLICKED"; export const QUICK_SEARCH_FILTER_CHANGED = "QUICK_SEARCH_FILTER_CHANGED"; export const QUICK_SEARCH_RESULT_LOADED = "QUICK_SEARCH_RESULT_LOADED"; export const VARIABLE_LABEL_CHANGE_COMPLETED = "VARIABLE_LABEL_CHANGE_COMPLETED"; export const VARIABLE_VALUE_CHANGED = "VARIABLE_VALUE_CHANGED"; export const VARIABLE_VALUE_CHANGE_COMPLETED = "VARIABLE_VALUE_CHANGE_COMPLETED"; export const COMPONENT_INSTANCE_VARIANT_TOGGLED = "COMPONENT_INSTANCE_VARIANT_TOGGLED"; export const INSTANCE_VARIANT_RESET_CLICKED = "INSTANCE_VARIANT_RESET_CLICKED"; export const FRAME_MODE_CHANGE_COMPLETE = "FRAME_MODE_CHANGE_COMPLETE"; export const RESIZER_PATH_MOUSE_MOVED = "RESIZER_PATH_MOUSE_MOVED"; export const RESIZER_PATH_MOUSE_STOPPED_MOVING = "RESIZER_PATH_MOUSE_STOPPED_MOVING"; export const RESIZER_MOVED = "RESIZER_MOVED"; export const RESIZER_STOPPED_MOVING = "RESIZER_STOPPED_MOVING"; export const COMPONENT_PICKER_BACKGROUND_CLICK = "COMPONENT_PICKER_BACKGROUND_CLICK"; export const UNHANDLED_ERROR = "UNHANDLED_ERROR"; export const COMPONENT_PICKER_ITEM_CLICK = "COMPONENT_PICKER_ITEM_CLICK"; export const RESIZER_MOUSE_DOWN = "RESIZER_MOUSE_DOWN"; export const RESIZER_START_DRGG = "RESIZER_START_DRGG"; export const TD_PROJECT_LOADED = "TD_PROJECT_LOADED"; export const CONFIRM_CLOSE_WINDOW = "CONFIRM_CLOSE_WINDOW"; export const PROJECT_INFO_LOADED = "PROJECT_INFO_LOADED"; export const SHORTCUT_ZOOM_IN_KEY_DOWN = "SHORTCUT_ZOOM_IN_KEY_DOWN"; export const SHORTCUT_TOGGLE_PANEL = "SHORTCUT_TOGGLE_PANEL"; export const SHORTCUT_ZOOM_OUT_KEY_DOWN = "SHORTCUT_ZOOM_OUT_KEY_DOWN"; export const SHORTCUT_ESCAPE_KEY_DOWN = "SHORTCUT_ESCAPE_KEY_DOWN"; export const SHORTCUT_SAVE_KEY_DOWN = "SHORTCUT_SAVE_KEY_DOWN"; export const SHORTCUT_QUICK_SEARCH_KEY_DOWN = "SHORTCUT_QUICK_SEARCH_KEY_DOWN"; export const SHORTCUT_DELETE_KEY_DOWN = "SHORTCUT_DELETE_KEY_DOWN"; export const SHORTCUT_UNDO_KEY_DOWN = "SHORTCUT_UNDO_KEY_DOWN"; export const SHORTCUT_REDO_KEY_DOWN = "SHORTCUT_REDO_KEY_DOWN"; export const SHORTCUT_R_KEY_DOWN = "SHORTCUT_R_KEY_DOWN"; export const SHORTCUT_C_KEY_DOWN = "SHORTCUT_C_KEY_DOWN"; export const SHORTCUT_T_KEY_DOWN = "SHORTCUT_T_KEY_DOWN"; export const SHORTCUT_SELECT_NEXT_TAB = "SHORTCUT_SELECT_NEXT_TAB"; export const SHORTCUT_SELECT_PREVIOUS_TAB = "SHORTCUT_SELECT_PREVIOUS_TAB"; export const SHORTCUT_CLOSE_CURRENT_TAB = "SHORTCUT_CLOSE_CURRENT_TAB"; export const OPEN_TEXT_EDITOR_BUTTON_CLICKED = "OPEN_TEXT_EDITOR_BUTTON_CLICKED"; export const SHORTCUT_CONVERT_TO_COMPONENT_KEY_DOWN = "SHORTCUT_CONVERT_TO_COMPONENT_KEY_DOWN"; export const SHORTCUT_WRAP_IN_SLOT_KEY_DOWN = "SHORTCUT_WRAP_IN_SLOT_KEY_DOWN"; export const SHORTCUT_TOGGLE_SIDEBAR = "SHORTCUT_TOGGLE_SIDEBAR"; export const INHERIT_PANE_ADD_BUTTON_CLICK = "INHERIT_PANE_ADD_BUTTON_CLICK"; export const FILE_ITEM_CONTEXT_MENU_DELETE_CLICKED = "FILE_ITEM_CONTEXT_MENU_DELETE_CLICKED"; export const FILE_ITEM_CONTEXT_MENU_OPEN_CLICKED = "FILE_ITEM_CONTEXT_MENU_OPEN_CLICKED"; export const FILE_ITEM_CONTEXT_MENU_OPEN_IN_FINDER_CLICKED = "FILE_ITEM_CONTEXT_MENU_OPEN_IN_FINDER_CLICKED"; export const FILE_ITEM_CONTEXT_MENU_COPY_PATH_CLICKED = "FILE_ITEM_CONTEXT_MENU_COPY_PATH_CLICKED"; export const FILE_ITEM_CONTEXT_MENU_RENAME_CLICKED = "FILE_ITEM_CONTEXT_MENU_RENAME_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_CONVERT_TO_COMPONENT_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_CONVERT_TO_COMPONENT_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_WRAP_IN_ELEMENT_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_WRAP_IN_ELEMENT_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_CONVERT_TO_STYLE_MIXIN_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_CONVERT_TO_STYLE_MIXIN_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_CONVERT_TEXT_STYLES_TO_MIXIN_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_CONVERT_TEXT_STYLES_TO_MIXIN_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_REMOVE_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_REMOVE_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_RENAME_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_RENAME_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_COPY_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_COPYCLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_PASTE_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_PASTE_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_WRAP_IN_SLOT_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_WRAP_IN_SLOT_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_SELECT_PARENT_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_SELECT_PARENT_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_SELECT_SOURCE_NODE_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_SELECT_SOURCE_NODE_CLICKED"; export const SYNTHETIC_NODE_CONTEXT_MENU_SHOW_IN_CANVAS_CLICKED = "SYNTHETIC_NODE_CONTEXT_MENU_SHOW_IN_CANVAS_CLICKED"; export const INHERIT_PANE_REMOVE_BUTTON_CLICK = "INHERIT_PANE_REMOVE_BUTTON_CLICK"; export const EXPORT_NAME_CHANGED = "EXPORT_NAME_CHANGED"; export const ACTIVE_EDITOR_URI_DIRS_LOADED = "ACTIVE_EDITOR_URI_DIRS_LOADED"; export const INHERIT_ITEM_COMPONENT_TYPE_CHANGE_COMPLETE = "INHERIT_ITEM_COMPONENT_TYPE_CHANGE_COMPLETE"; export const INHERIT_ITEM_CLICK = "INHERIT_ITEM_CLICK"; export const INSERT_TOOL_FINISHED = "INSERT_TOOL_FINISHED"; export const SYNTHETIC_NODES_PASTED = "SYNTHETIC_NODES_PASTED"; export const APP_LOADED = "APP_LOADED"; export const SAVED_FILE = "SAVED_FILE"; export const SAVED_ALL_FILES = "SAVED_ALL_FILES"; export const FRAME_BOUNDS_CHANGED = "FRAME_BOUNDS_CHANGED"; export const FRAME_BOUNDS_CHANGE_COMPLETED = "FRAME_BOUNDS_CHANGE_COMPLETED"; export const NEW_FILE_ENTERED = "NEW_FILE_ENTERED"; export const PROJECT_DIRECTORY_DIR_LOADED = "PROJECT_DIRECTORY_DIR_LOADED"; export const NEW_DIRECTORY_ENTERED = "NEW_DIRECTORY_ENTERED"; export const RAW_CSS_TEXT_CHANGED = "RAW_CSS_TEXT_CHANGED"; export const CSS_PROPERTY_CHANGED = "CSS_PROPERTY_CHANGED"; export const CSS_PROPERTIES_CHANGED = "CSS_PROPERTIES_CHANGED"; export const QUICK_SEARCH_RESULT_ITEM_SPLIT_BUTTON_CLICKED = "QUICK_SEARCH_RESULT_ITEM_SPLIT_BUTTON_CLICKED"; export const CSS_PROPERTY_CHANGE_COMPLETED = "CSS_PROPERTY_CHANGE_COMPLETED"; export const CSS_PROPERTIES_CHANGE_COMPLETED = "CSS_PROPERTIES_CHANGE_COMPLETED"; export const ATTRIBUTE_CHANGED = "ATTRIBUTE_CHANGED"; export const SLOT_TOGGLE_CLICK = "SLOT_TOGGLE_CLICK"; export const TEXT_VALUE_CHANGED = "TEXT_VALUE_CHANGED"; export const ELEMENT_TYPE_CHANGED = "ELEMENT_TYPE_CHANGED"; export const FILE_ITEM_RIGHT_CLICKED = "FILE_ITEM_RIGHT_CLICKED"; export const CANVAS_RIGHT_CLICKED = "CANVAS_RIGHT_CLICKED"; export const PC_LAYER_RIGHT_CLICKED = "PC_LAYER_RIGHT_CLICKED"; export const PC_LAYER_DOUBLE_CLICKED = "PC_LAYER_DOUBLE_CLICKED"; export const SOURCE_INSPECTOR_LAYER_CLICKED = "SOURCE_INSPECTOR_LAYER_CLICKED"; export const SOURCE_INSPECTOR_LAYER_ARROW_CLICKED = "SOURCE_INSPECTOR_LAYER_ARROW_CLICKED"; export const SOURCE_INSPECTOR_LAYER_LABEL_CHANGED = "SOURCE_INSPECTOR_LAYER_LABEL_CHANGED"; export const SOURCE_INSPECTOR_LAYER_DROPPED = "SOURCE_INSPECTOR_LAYER_DROPPED"; export const NEW_FILE_ADDED = "NEW_FILE_ADDED"; export const QUICK_SEARCH_ITEM_CLICKED = "QUICK_SEARCH_ITEM_CLICKED"; export const QUICK_SEARCH_INPUT_ENTERED = "QUICK_SEARCH_INPUT_ENTERED"; export const QUICK_SEARCH_BACKGROUND_CLICK = "QUICK_SEARCH_BACKGROUND_CLICK"; export const NEW_VARIANT_NAME_ENTERED = "NEW_VARIANT_NAME_ENTERED"; export const COMPONENT_VARIANT_REMOVED = "COMPONENT_VARIANT_REMOVED"; export const COMPONENT_VARIANT_NAME_CHANGED = "COMPONENT_VARIANT_NAME_CHANGED"; export const COMPONENT_VARIANT_NAME_CLICKED = "COMPONENT_VARIANT_NAME_CLICKED"; export const OPEN_PROJECT_BUTTON_CLICKED = "OPEN_PROJECT_BUTTON_CLICKED"; export const CREATE_PROJECT_BUTTON_CLICKED = "CREATE_PROJECT_BUTTON_CLICKED"; export const OPEN_CONTROLLER_BUTTON_CLICKED = "OPEN_CONTROLLER_BUTTON_CLICKED"; export const ADD_COMPONENT_CONTROLLER_BUTTON_CLICKED = "ADD_COMPONENT_CONTROLLER_BUTTON_CLICKED"; export const REMOVE_COMPONENT_CONTROLLER_BUTTON_CLICKED = "REMOVE_COMPONENT_CONTROLLER_BUTTON_CLICKED"; export const COMPONENT_CONTROLLER_PICKED = "COMPONENT_CONTROLLER_PICKED"; export const COMPONENT_VARIANT_NAME_DEFAULT_TOGGLE_CLICK = "COMPONENT_VARIANT_NAME_DEFAULT_TOGGLE_CLICK"; export const ELEMENT_VARIANT_TOGGLED = "ELEMENT_VARIANT_TOGGLED"; export const CONFIRM_SAVE_CHANGES = "CONFIRM_SAVE_CHANGES"; export const CHROME_HEADER_MOUSE_DOWN = "CHROME_HEADER_MOUSE_DOWN"; export const CHROME_CLOSE_BUTTON_CLICKED = "CHROME_CLOSE_BUTTON_CLICKED"; export const CHROME_MINIMIZE_BUTTON_CLICKED = "CHROME_MINIMIZE_BUTTON_CLICKED"; export const CHROME_MAXIMIZE_BUTTON_CLICKED = "CHROME_MAXIMIZE_BUTTON_CLICKED"; export const CSS_RESET_PROPERTY_OPTION_CLICKED = "CSS_RESET_PROPERTY_OPTION_CLICKED"; export const IMAGE_BROWSE_BUTTON_CLICKED = "IMAGE_BROWSE_BUTTON_CLICKED"; export const BROWSE_DIRECTORY_CLICKED = "BROWSE_DIRECTORY_CLICKED"; export const IMAGE_SOURCE_INPUT_CHANGED = "IMAGE_SOURCE_INPUT_CHANGED"; export const IMAGE_PATH_PICKED = "IMAGE_PATH_PICKED"; export const DIRECTORY_PATH_PICKED = "DIRECTORY_PATH_PICKED"; export const CSS_INHERITED_FROM_LABEL_CLICKED = "CSS_INHERITED_FROM_LABEL_CLICKED"; export const CANVAS_TEXT_EDIT_CHANGE_COMPLETE = "CANVAS_TEXT_EDIT_CHANGE_COMPLETE"; export const ADD_VARIANT_TRIGGER_CLICKED = "ADD_VARIANT_TRIGGER_CLICKED"; export const REMOVE_VARIANT_TRIGGER_CLICKED = "REMOVE_VARIANT_TRIGGER_CLICKED"; export const VARIANT_TRIGGER_SOURCE_CHANGED = "VARIANT_TRIGGER_SOURCE_CHANGED"; export const VARIANT_TRIGGER_TARGET_CHANGED = "VARIANT_TRIGGER_TARGET_CHANGED"; export const ADD_QUERY_BUTTON_CLICKED = "ADD_QUERY_BUTTON_CLICKED"; export const REMOVE_MEDIA_QUERY_BUTTON_CLICK = "REMOVE_MEDIA_QUERY_BUTTON_CLICK"; export const QUERY_LABEL_CHANGED = "QUERY_LABEL_CHANGED"; export const QUERY_CONDITION_CHANGED = "QUERY_CONDITION_CHANGED"; export const QUERY_TYPE_CHANGED = "QUERY_TYPE_CHANGED"; export const VARIABLE_QUERY_SOURCE_VARIABLE_CHANGE = "VARIABLE_QUERY_SOURCE_VARIABLE_CHANGE"; export const BREAD_CRUMB_CLICKED = "BREAD_CRUMB_CLICKED"; export const BUILD_BUTTON_START_CLICKED = "BUILD_BUTTON_START_CLICKED"; export const BUILD_BUTTON_STOP_CLICKED = "BUILD_BUTTON_STOP_CLICKED"; export const BUILD_BUTTON_OPEN_APP_CLICKED = "BUILD_BUTTON_OPEN_APP_CLICKED"; export const BUILD_BUTTON_CONFIGURE_CLICKED = "BUILD_BUTTON_CONFIGURE_CLICKED"; export const CONFIGURE_BUILD_MODAL_X_CLICKED = "CONFIGURE_BUILD_MODAL_X_CLICKED"; export const CONFIGURE_BUILD_MODAL_BACKGROUND_CLICKED = "CONFIGURE_BUILD_MODAL_BACKGROUND_CLICKED"; export const SCRIPT_PROCESS_STARTED = "SCRIPT_PROCESS_STARTED"; export const SCRIPT_PROCESS_LOGGED = "SCRIPT_PROCESS_LOGGED"; export const SCRIPT_PROCESS_CLOSED = "SCRIPT_PROCESS_CLOSED"; export const BUILD_SCRIPT_STARTED = "BUILD_SCRIPT_STARTED"; export const CLOSE_BOTTOM_GUTTER_BUTTON_CLICKED = "CLOSE_BOTTOM_GUTTER_BUTTON_CLICKED"; export const BUILD_SCRIPT_CONFIG_CHANGED = "BUILD_SCRIPT_CONFIG_CHANGED"; export const OPEN_APP_SCRIPT_CONFIG_CHANGED = "OPEN_APP_SCRIPT_CONFIG_CHANGED"; export const UNLOADING = "UNLOADING"; export const UNLOADER_CREATED = "UNLOADER_CREATED"; export const UNLOADER_COMPLETED = "UNLOADER_COMPLETED"; export const RELOAD = "RELOAD"; export const LINK_CICKED = "LINK_CICKED"; export type WrappedEvent<T> = { sourceEvent: T; } & Action; export type ProjectLoaded = { uri: string; } & Action; export type DocumentRendered = { nativeMap: SyntheticNativeNodeMap; documentId: string; info: ComputedDisplayInfo; } & Action; export type ModuleContextMenuOptionClicked = { uri: string; } & Action; export type FileNavigatorItemClicked = { node: FSItem; } & Action; export type FileNavigatorBasenameChanged = { item: FSItem; basename: string; } & Action; export type OpenFilesItemClick = { uri: string; } & WrappedEvent<React.MouseEvent<any>>; export type ToolbarToolClicked = { toolType: ToolType; } & Action; export type RawCSSTextChanged = { value: string; } & Action; export type AddVariableButtonClicked = { variableType: PCVariableType; } & Action; export type VariablePropertyChanged = { variable: PCVariable; value: string; } & Action; export type CSSPropertyChanged = { name: string; value: string; } & Action; export type CSSPropertiesChanged = { properties: KeyValue<string>; } & Action; export type AttributeChanged = { name: string; value: string; } & Action; export type ProjectDirectoryLoaded = { directory: Directory; } & Action; export type ProjectInfoLoaded = { info: ProjectInfo; } & Action; export type CanvasToolOverlayMousePanStart = { documentId: string; } & Action; export type CanvasToolOverlayMousePanning = { documentId: string; deltaY: number; velocityY: number; center: Point; } & Action; export type LinkClicked = { url: string; } & Action; export type ResetPropertyOptionClicked = { property: string; } & Action; export type CanvasMouseMoved = { editorWindow: EditorWindow; } & WrappedEvent<any>; export type NewFileAdded = { uri: string; fileType: FSItemTagNames; } & Action; export type CanvasToolOverlayMousePanEnd = { documentId: string; } & Action; export type CanvasTextEditChangeComplete = { value: string; } & Action; export type CanvasToolOverlayClicked = { documentId: string; } & WrappedEvent<React.MouseEvent<any>>; export type CanvasToolOverlayMouseMoved = {} & WrappedEvent< React.MouseEvent<any> >; export type VariantTriggerSourceChanged = { trigger: PCVariantTrigger; value: PCVariantTriggerSource; } & Action; export type VariantTriggerTargetChanged = { trigger: PCVariantTrigger; value: PCVariant; } & Action; export type ElementVariantToggled = { node: SyntheticVisibleNode; newVariants: string[]; } & Action; export type CanvasWheel = { canvasWidth: number; canvasHeight: number; type: string; metaKey: boolean; ctrlKey: boolean; deltaX: number; deltaY: number; } & Action; export type TreeLayerMouseOver = { node: TreeNode<any>; } & Action; export type ProjectDirectoryDirLoaded = { items: FSItem[]; } & Action; export type ImagePathPicked = { filePath: string; } & Action; export type DirectoryPathPicked = { directoryPath: string; } & Action; export type StyleVariantDropdownChanged = { variant: PCVariant; component: PCComponent; } & Action; export type TreeLayerLabelChanged = { label: string; node: TreeNode<any>; } & Action; export type TreeLayerDroppedNode = { node: TreeNode<any>; targetNode: TreeNode<any>; offset?: TreeMoveOffset; } & Action; export type SourceInspectorLayerDropped = { source: InspectorNode; target: InspectorNode; offset: TreeMoveOffset; } & Action; export type QuickSearchResultItemSplitButtonClicked = { item: QuickSearchResult; } & Action; export type QuickSearchFilterChanged = { value: string; } & Action; export type QuickSearchResultLoaded = { matches: QuickSearchResult[]; } & Action; export type ScriptConfigChanged = { script: string; } & Action; export type TreeLayerClick = TreeLayerMouseOver & WrappedEvent<React.MouseEvent<any>>; export type TreeLayerExpandToggleClick = TreeLayerMouseOver; export type TreeLayerMouseOut = TreeLayerMouseOver; export type InspectorLayerEvent = { node: InspectorNode; } & WrappedEvent<React.MouseEvent<any>>; export type InspectorLayerLabelChanged = { node: InspectorNode; label: string; } & WrappedEvent<React.KeyboardEvent<any>>; export type BreadCrumbClicked = { node: InspectorNode; } & Action; export type CanvasMounted = { element: HTMLDivElement; fileUri: string; } & Action; export type NewFileEntered = { basename: string; } & Action; export type CanvasToolWindowKeyDown = { documentId: string; } & WrappedEvent<React.KeyboardEvent<any>>; export type CanvasToolArtboardTitleClicked = { frame: Frame; } & WrappedEvent<React.MouseEvent<any>>; export type ImageSourceInputChanged = { value: string; } & Action; export type OpenTextEditorButtonClicked = { uri: string; } & Action; export type SlotToggleClick = {} & Action; export type NewVariantNameEntered = { value: string; } & Action; export type FileItemContextMenuAction = { item: FSItem; } & Action; export type SyntheticNodeContextMenuAction = { item: SyntheticVisibleNode; } & Action; export type ComponentVariantNameChanged = { oldName: string; newName: string; } & Action; export type ComponentVariantNameClicked = { name: string; } & Action; export type CSSInheritedFromLabelClicked = { inheritedFromNode: InspectorNode; } & Action; export type ComponentControllerPicked = { filePath: string; } & Action; export type ComponentControllerItemClicked = { relativePath: string; } & Action; export type AddComponentControllerButtonClicked = { defaultPath: string; } & Action; export type InstanceVariantToggled = { variant: PCVariant; } & Action; export type ComponentVariantNameDefaultToggleClick = { name: string; value: boolean; } & Action; export type PromptConfirmed = { inputValue: string; } & Action; export type PromptCancelButtonClicked = {} & Action; export type TextValueChanged = { value: string; } & Action; export type ConfirmCloseWindow = { type: string; closeWithoutSaving: boolean; cancel: boolean; save: boolean; } & Action; export type ElementTypeChanged = { value: string; } & Action; export type UnhandledError = { error: Error; } & Action; export type ResizerPathMoved = { originalBounds: Bounds; newBounds: Bounds; anchor: Point; } & WrappedEvent<MouseEvent>; export type ResizerMoved = { point: Point; } & Action; export type AddQueryButtonClicked = { queryType: PCQueryType; } & Action; export type ResizerMouseDown = {} & WrappedEvent<React.MouseEvent<any>>; export type ResizerPathStoppedMoving = {} & ResizerPathMoved; export type QueryConditionChanged = { target: PCQuery; condition: Partial<any>; } & Action; export type QueryLabelChanged = { target: PCQuery; label?: string; } & Action; export type QueryTypeChanged = { target: PCQuery; newType: PCQueryType; } & Action; export type FrameModeChangeComplete = { frame: Frame; mode: FrameMode; } & Action; export type SelectorDoubleClicked = { nodeId: string; } & WrappedEvent<React.MouseEvent<any>>; export type ShortcutKeyDown = {}; export type CreateProjectButtonClicked = { files: Object; directory: string; } & Action; export type QuickSearchItemClicked = { item: QuickSearchResult; } & Action; export type ComponentPickerItemClick = { component: PCComponent; } & Action; export type RemoveComponentControllerButtonClicked = { relativePath: string; } & Action; export type SavedFile = { uri: string; } & Action; export type ScriptProcessStarted = { process: ScriptProcess; } & Action; export type ScriptProcessLogged = { process: ScriptProcess; log: ScriptProcessLog; } & Action; export type ScriptProcessStopped = { process: ScriptProcess; } & Action; export type SavedAllFiles = {} & Action; export type InsertToolFinished = { fileUri: string; point: Point; } & Action; export type SyntheticVisibleNodesPasted = { clips: PCNodeClip[]; } & Action; export type FileNavigatorLabelClicked = { fileId: string; } & Action; export type FrameBoundsChanged = { newBounds: Bounds; } & Action; export type FileItemRightClicked = { event: React.MouseEvent<any>; type: string; item: FSItem; } & Action; export type CanvasRightClicked = { event: React.MouseEvent<any>; } & Action; export type PCLayerRightClicked = { item: InspectorNode; event: React.MouseEvent<any>; } & Action; export type FileNavigatorNewFileEntered = { directoryId: string; basename: string; insertType: FSItemTagNames; } & Action; export type FileNavigatorDroppedItem = { node: FSItem; targetNode: FSItem; offset: TreeMoveOffset; } & Action; export type ExportNameChanged = { value: string; } & Action; export type VariableQuerySourceVariableChange = { query: PCQuery; variable: PCVariable; } & Action; export type EditorTabClicked = { event: React.MouseEvent<any>; uri: string; } & Action; export type CanvasDroppedItem = { editorUri: string; item: RegisteredComponent | TreeNode<any>; point: Point; } & Action; export type BuildScriptStarted = { process: ScriptProcess; } & Action; export type VariantClicked = { variant: PCVariant; } & Action; export type AddVariantTriggerClicked = {} & Action; export type RemoveVariantTriggerClicked = { trigger: PCVariantTrigger; } & Action; export type VariantDefaultSwitchClicked = { variant: PCVariant; } & Action; export type VariantLabelChanged = { variant: PCVariant; newLabel?: string; } & Action; export type CanvasDraggingOver = { item: any; offset: Point; } & Action; export type InheritPaneItemClick = { componentId: string; } & Action; export type InheritPaneRemoveButtonClick = { componentId: string; } & Action; export type InheritItemComponentTypeChangeComplete = { oldComponentId: string; newComponentId: string; } & Action; export type InheritItemClick = { componentId: string; } & Action; export type UnloaderAction = { unloader: Unloader; } & Action; export const quickSearchResultItemSplitButtonClick = ( item: QuickSearchResult ): QuickSearchResultItemSplitButtonClicked => ({ item, type: QUICK_SEARCH_RESULT_ITEM_SPLIT_BUTTON_CLICKED }); export const fileNavigatorDroppedItem = ( node: FSItem, targetNode: Directory, offset: TreeMoveOffset ): FileNavigatorDroppedItem => ({ node, targetNode, offset, type: FILE_NAVIGATOR_DROPPED_ITEM }); export const editorTabClicked = ( event: React.MouseEvent<any>, uri: string ): EditorTabClicked => ({ uri, event, type: EDITOR_TAB_CLICKED }); export const editorTabContextMenuOpenInBottomTabOptionClicked = publicActionCreator( (uri: string): ModuleContextMenuOptionClicked => ({ type: EDITOR_TAB_CONTEXT_MENU_OPEN_IN_BOTTOM_OPTION_CLICKED, uri }) ); export const moduleContextMenuCloseOptionClicked = publicActionCreator( (uri: string): ModuleContextMenuOptionClicked => ({ type: MODULE_CONTEXT_MENU_CLOSE_OPTION_CLICKED, uri }) ); export const editorTabRightClicked = ( event: React.MouseEvent<any>, uri: string ): EditorTabClicked => ({ uri, event, type: EDITOR_TAB_RIGHT_CLICKED }); export const fileItemContextMenuDeleteClicked = publicActionCreator( (item: FSItem): FileItemContextMenuAction => ({ item, type: FILE_ITEM_CONTEXT_MENU_DELETE_CLICKED }) ); export const fileItemContextMenuCopyPathClicked = publicActionCreator( (item: FSItem): FileItemContextMenuAction => ({ item, type: FILE_ITEM_CONTEXT_MENU_COPY_PATH_CLICKED }) ); export const variableQuerySourceVariableChange = ( query: PCQuery, variable: PCVariable ): VariableQuerySourceVariableChange => ({ type: VARIABLE_QUERY_SOURCE_VARIABLE_CHANGE, query, variable }); export const queryConditionChanged = ( target: PCQuery, condition: Partial<any> ): QueryConditionChanged => ({ type: QUERY_CONDITION_CHANGED, target, condition }); export const queryLabelChanged = ( target: PCQuery, label?: string ): QueryLabelChanged => ({ type: QUERY_LABEL_CHANGED, target, label }); export const breadCrumbClicked = (node: InspectorNode): BreadCrumbClicked => ({ type: BREAD_CRUMB_CLICKED, node }); export const queryTypeChanged = ( target: PCQuery, newType: PCQueryType ): QueryTypeChanged => ({ type: QUERY_TYPE_CHANGED, target, newType }); export const fileItemContextMenuRenameClicked = publicActionCreator( (item: FSItem): FileItemContextMenuAction => ({ item, type: FILE_ITEM_CONTEXT_MENU_RENAME_CLICKED }) ); export const linkClicked = (url: string): LinkClicked => ({ url, type: LINK_CICKED }); export const fileItemContextMenuOpenClicked = publicActionCreator( (item: FSItem): FileItemContextMenuAction => ({ item, type: FILE_ITEM_CONTEXT_MENU_OPEN_CLICKED }) ); export const buildButtonStartClicked = () => ({ type: BUILD_BUTTON_START_CLICKED }); export const buildButtonConfigureClicked = () => ({ type: BUILD_BUTTON_CONFIGURE_CLICKED }); export const buildButtonStopClicked = () => ({ type: BUILD_BUTTON_STOP_CLICKED }); export const buildButtonOpenAppClicked = () => ({ type: BUILD_BUTTON_OPEN_APP_CLICKED }); export const configureBuildModalXClicked = () => ({ type: CONFIGURE_BUILD_MODAL_X_CLICKED }); export const buildScriptConfigChanged = ( script: string ): ScriptConfigChanged => ({ type: BUILD_SCRIPT_CONFIG_CHANGED, script }); export const openAppScriptConfigChanged = ( script: string ): ScriptConfigChanged => ({ type: OPEN_APP_SCRIPT_CONFIG_CHANGED, script }); export const configureBuildModalBackgroundClicked = () => ({ type: CONFIGURE_BUILD_MODAL_BACKGROUND_CLICKED }); export const unloading = () => ({ type: UNLOADING }); export const unloaderCreated = (unloader: Unloader): UnloaderAction => ({ unloader, type: UNLOADER_CREATED }); export const unloaderCompleted = (unloader: Unloader): UnloaderAction => ({ unloader, type: UNLOADER_COMPLETED }); export const addQueryButtonClick = ( queryType: PCQueryType ): AddQueryButtonClicked => ({ type: ADD_QUERY_BUTTON_CLICKED, queryType }); export const fileItemContextMenuOpenInFinderClicked = publicActionCreator( (item: FSItem): FileItemContextMenuAction => ({ item, type: FILE_ITEM_CONTEXT_MENU_OPEN_IN_FINDER_CLICKED }) ); export const syntheticNodeContextMenuWrapInElementClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_WRAP_IN_ELEMENT_CLICKED, item }) ); export const syntheticNodeContextMenuConvertToComponentClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_CONVERT_TO_COMPONENT_CLICKED, item }) ); export const imageBrowseButtonClicked = publicActionCreator( (): Action => ({ type: IMAGE_BROWSE_BUTTON_CLICKED }) ); export const browseDirectoryClicked = publicActionCreator( (): Action => ({ type: BROWSE_DIRECTORY_CLICKED }) ); export const buildScriptStarted = ( process: ScriptProcess ): BuildScriptStarted => ({ type: BUILD_SCRIPT_STARTED, process }); export const reload = () => ({ type: RELOAD }); export const canvasTextEditChangeComplete = ( value: string ): CanvasTextEditChangeComplete => ({ value, type: CANVAS_TEXT_EDIT_CHANGE_COMPLETE }); export const cssInheritedFromLabelClicked = ( inheritedFromNode: InspectorNode ): CSSInheritedFromLabelClicked => ({ type: CSS_INHERITED_FROM_LABEL_CLICKED, inheritedFromNode }); export const imageSourceInputChanged = ( value: string ): ImageSourceInputChanged => ({ value, type: IMAGE_SOURCE_INPUT_CHANGED }); export const syntheticNodeContextMenuConvertToStyleMixinClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_CONVERT_TO_STYLE_MIXIN_CLICKED, item }) ); export const syntheticNodeContextMenuConvertTextStylesToMixinClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_CONVERT_TEXT_STYLES_TO_MIXIN_CLICKED, item }) ); export const syntheticNodeContextMenuRemoveClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_REMOVE_CLICKED, item }) ); export const syntheticNodeContextMenuRenameClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_RENAME_CLICKED, item }) ); export const syntheticNodeContextMenuCopyClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_COPY_CLICKED, item }) ); export const syntheticNodeContextMenuPasteClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_PASTE_CLICKED, item }) ); export const syntheticNodeContextMenuWrapInSlotClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_WRAP_IN_SLOT_CLICKED, item }) ); export const syntheticNodeContextMenuSelectParentClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_SELECT_PARENT_CLICKED, item }) ); export const syntheticNodeContextMenuSelectSourceNodeClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_SELECT_SOURCE_NODE_CLICKED, item }) ); export const syntheticNodeContextMenuShowInCanvasClicked = publicActionCreator( (item: SyntheticVisibleNode): SyntheticNodeContextMenuAction => ({ type: SYNTHETIC_NODE_CONTEXT_MENU_SHOW_IN_CANVAS_CLICKED, item }) ); export const cssResetPropertyOptionClicked = ( property: string ): ResetPropertyOptionClicked => ({ type: CSS_RESET_PROPERTY_OPTION_CLICKED, property }); export const editorTabCloseButtonClicked = ( event: React.MouseEvent<any>, uri: string ): EditorTabClicked => ({ uri, event, type: EDITOR_TAB_CLOSE_BUTTON_CLICKED }); export const fileNavigatorItemClicked = ( node: FSItem ): FileNavigatorItemClicked => ({ node, type: FILE_NAVIGATOR_ITEM_CLICKED }); export const fileNavigatorToggleDirectoryClicked = ( node: FSItem ): FileNavigatorItemClicked => ({ node, type: FILE_NAVIGATOR_TOGGLE_DIRECTORY_CLICKED }); export const fileNavigatorBasenameChanged = ( basename: string, item: FSItem ): FileNavigatorBasenameChanged => ({ item, basename, type: FILE_NAVIGATOR_BASENAME_CHANGED }); export const scriptProcessStarted = ( process: ScriptProcess ): ScriptProcessStarted => ({ type: SCRIPT_PROCESS_STARTED, process }); export const scriptProcessLog = ( process: ScriptProcess, log: ScriptProcessLog ): ScriptProcessLogged => ({ type: SCRIPT_PROCESS_LOGGED, process, log }); export const scriptProcessStopped = ( process: ScriptProcess ): ScriptProcessStopped => ({ type: SCRIPT_PROCESS_CLOSED, process }); export const promptConfirmed = ( inputValue: string, actionType: string ): PromptConfirmed => ({ inputValue, type: actionType }); export const exportNameChanged = (value: string): ExportNameChanged => ({ type: EXPORT_NAME_CHANGED, value }); export const promptCancelButtonClicked = (): PromptCancelButtonClicked => ({ type: PROMPT_CANCEL_BUTTON_CLICKED }); export const openTextEditorButtonClicked = publicActionCreator( (uri: string): OpenTextEditorButtonClicked => ({ uri, type: OPEN_TEXT_EDITOR_BUTTON_CLICKED }) ); export const newFileAdded = ( uri: string, fileType: FSItemTagNames ): NewFileAdded => ({ uri, fileType, type: NEW_FILE_ADDED }); export const elementVariantToggled = ( newVariants: string[], node: SyntheticVisibleNode ): ElementVariantToggled => ({ newVariants, node, type: ELEMENT_VARIANT_TOGGLED }); export const closeBottomGutterButtonClicked = (): Action => ({ type: CLOSE_BOTTOM_GUTTER_BUTTON_CLICKED }); export const fileNavigatorNewFileClicked = (): Action => ({ type: FILE_NAVIGATOR_NEW_FILE_CLICKED }); export const styleVariantDropdownChanged = ( variant: PCVariant, component: PCComponent ): StyleVariantDropdownChanged => ({ type: STYLE_VARIANT_DROPDOWN_CHANGED, component, variant }); export const addVariableButtonClicked = ( variableType: PCVariableType ): AddVariableButtonClicked => ({ variableType, type: ADD_VARIABLE_BUTTON_CLICKED }); export const variableLabelChangeCompleted = ( variable: PCVariable, value: string ): VariablePropertyChanged => ({ variable, type: VARIABLE_LABEL_CHANGE_COMPLETED, value }); export const variableValueChanged = ( variable: PCVariable, value: string ): VariablePropertyChanged => ({ variable, type: VARIABLE_VALUE_CHANGED, value }); export const variableValueChangeCompleted = ( variable: PCVariable, value: string ): VariablePropertyChanged => ({ variable, type: VARIABLE_VALUE_CHANGE_COMPLETED, value }); export const newStyleVariantButtonClicked = (): Action => ({ type: NEW_STYLE_VARIANT_BUTTON_CLICKED }); export const projectDirectoryDirLoaded = ( items: FSItem[] ): ProjectDirectoryDirLoaded => ({ type: PROJECT_DIRECTORY_DIR_LOADED, items }); export const removeStyleButtonClicked = (): Action => ({ type: REMOVE_STYLE_BUTTON_CLICKED }); export const editVariantNameButtonClicked = (): Action => ({ type: EDIT_VARIANT_NAME_BUTTON_CLICKED }); export const addStyleButtonClicked = (): Action => ({ type: ADD_STYLE_BUTTON_CLICKED }); export const fileNavigatorNewDirectoryClicked = (): Action => ({ type: FILE_NAVIGATOR_NEW_DIRECTORY_CLICKED }); export const openProjectButtonClicked = publicActionCreator(() => ({ type: OPEN_PROJECT_BUTTON_CLICKED })); export const createProjectButtonClicked = publicActionCreator( (directory: string, files: Object): CreateProjectButtonClicked => ({ directory, type: CREATE_PROJECT_BUTTON_CLICKED, files }) ); export const inheritPaneAddButtonClick = (): Action => ({ type: INHERIT_PANE_ADD_BUTTON_CLICK }); export const inheritPaneRemoveButtonClick = ( componentId: string ): InheritPaneRemoveButtonClick => ({ componentId, type: INHERIT_PANE_REMOVE_BUTTON_CLICK }); export const projectInfoLoaded = (info: ProjectInfo): ProjectInfoLoaded => ({ type: PROJECT_INFO_LOADED, info }); export const inheritItemComponentTypeChangeComplete = ( oldComponentId: string, newComponentId: string ): InheritItemComponentTypeChangeComplete => ({ oldComponentId, newComponentId, type: INHERIT_ITEM_COMPONENT_TYPE_CHANGE_COMPLETE }); export const componentPickerBackgroundClick = (): Action => ({ type: COMPONENT_PICKER_BACKGROUND_CLICK }); export const addVariantButtonClicked = (): Action => ({ type: ADD_VARIANT_BUTTON_CLICKED }); export const addVariantTriggerButtonClicked = (): Action => ({ type: ADD_VARIANT_TRIGGER_CLICKED }); export const variantTriggerSourceChanged = ( trigger: PCVariantTrigger, value: PCVariantTriggerSource ): VariantTriggerSourceChanged => ({ type: VARIANT_TRIGGER_SOURCE_CHANGED, value, trigger }); export const variantTriggerTargetChanged = ( trigger: PCVariantTrigger, value: PCVariant ): VariantTriggerTargetChanged => ({ type: VARIANT_TRIGGER_TARGET_CHANGED, value, trigger }); export const removeVariantTriggerButtonClicked = ( trigger: PCVariantTrigger ): RemoveVariantTriggerClicked => ({ trigger, type: REMOVE_VARIANT_TRIGGER_CLICKED }); export const fileItemRightClicked = ( item: FSItem, event: React.MouseEvent<any> ): FileItemRightClicked => ({ type: FILE_ITEM_RIGHT_CLICKED, event, item }); export const canvasRightClicked = ( event: React.MouseEvent<any> ): CanvasRightClicked => ({ type: CANVAS_RIGHT_CLICKED, event }); export const pcLayerRightClicked = ( item: InspectorNode, event: React.MouseEvent<any> ): PCLayerRightClicked => ({ item, type: PC_LAYER_RIGHT_CLICKED, event }); export const pcLayerDoubleClicked = ( item: InspectorNode, event: React.MouseEvent<any> ): PCLayerRightClicked => ({ item, type: PC_LAYER_DOUBLE_CLICKED, event }); export const unhandledError = (error: Error): UnhandledError => ({ error, type: UNHANDLED_ERROR }); export const removeVariantButtonClicked = (): Action => ({ type: REMOVE_VARIANT_BUTTON_CLICKED }); export const quickSearchFilterChanged = ( value: string ): QuickSearchFilterChanged => ({ type: QUICK_SEARCH_FILTER_CHANGED, value }); export const quickSearchFilterResultLoaded = ( matches: QuickSearchResult[] ): QuickSearchResultLoaded => ({ matches, type: QUICK_SEARCH_RESULT_LOADED }); export const variantDefaultSwitchClicked = ( variant: PCVariant ): VariantDefaultSwitchClicked => ({ variant, type: VARIANT_DEFAULT_SWITCH_CLICKED }); export const instanceVariantToggled = ( variant: PCVariant ): InstanceVariantToggled => ({ variant, type: COMPONENT_INSTANCE_VARIANT_TOGGLED }); export const instanceVariantResetClicked = ( variant: PCVariant ): InstanceVariantToggled => ({ variant, type: INSTANCE_VARIANT_RESET_CLICKED }); export const variantLabelChanged = ( variant: PCVariant, newLabel: string ): VariantLabelChanged => ({ variant, newLabel, type: VARIANT_LABEL_CHANGED }); export const componentPickerItemClick = ( component: PCComponent ): ComponentPickerItemClick => ({ component, type: COMPONENT_PICKER_ITEM_CLICK }); export const quickSearchItemClicked = ( item: QuickSearchResult ): QuickSearchItemClicked => ({ item, type: QUICK_SEARCH_ITEM_CLICKED }); export const quickSearchInputEntered = ( item: QuickSearchResult ): QuickSearchItemClicked => ({ item, type: QUICK_SEARCH_INPUT_ENTERED }); export const openControllerButtonClicked = ( relativePath: string ): ComponentControllerItemClicked => ({ relativePath, type: OPEN_CONTROLLER_BUTTON_CLICKED }); export const addComponentControllerButtonClicked = publicActionCreator( (defaultPath: string): AddComponentControllerButtonClicked => ({ defaultPath, type: ADD_COMPONENT_CONTROLLER_BUTTON_CLICKED }) ); export const removeComponentControllerButtonClicked = ( relativePath: string ): RemoveComponentControllerButtonClicked => ({ relativePath, type: REMOVE_COMPONENT_CONTROLLER_BUTTON_CLICKED }); export const componentControllerPicked = ( filePath: string ): ComponentControllerPicked => ({ filePath, type: COMPONENT_CONTROLLER_PICKED }); export const quickSearchBackgroundClick = (): Action => ({ type: QUICK_SEARCH_BACKGROUND_CLICK }); export const fileNavigatorNewFileEntered = ( basename: string, insertType: FSItemTagNames, directoryId: string ): FileNavigatorNewFileEntered => ({ basename, directoryId, insertType, type: FILE_NAVIGATOR_NEW_FILE_ENTERED }); export const openFilesItemClick = ( uri: string, sourceEvent: React.MouseEvent<any> ): OpenFilesItemClick => ({ uri, sourceEvent, type: OPEN_FILE_ITEM_CLICKED }); export const openFilesItemCloseClick = (uri: string): OpenFilesItemClick => ({ uri, sourceEvent: null, type: OPEN_FILE_ITEM_CLOSE_CLICKED }); export const activeEditorUriDirsLoaded = (): Action => ({ type: ACTIVE_EDITOR_URI_DIRS_LOADED }); export const frameModeChangeComplete = ( frame: Frame, mode: FrameMode ): FrameModeChangeComplete => ({ type: FRAME_MODE_CHANGE_COMPLETE, frame, mode }); export const toolbarToolClicked = (toolType: ToolType): ToolbarToolClicked => ({ type: TOOLBAR_TOOL_CLICKED, toolType }); export const fileNavigatorItemDoubleClicked = ( node: FSItem ): FileNavigatorItemClicked => ({ node, type: FILE_NAVIGATOR_ITEM_DOUBLE_CLICKED }); export const fileNavigatorItemBlurred = ( node: FSItem ): FileNavigatorItemClicked => ({ node, type: FILE_NAVIGATOR_ITEM_BLURRED }); export const sourceInspectorLayerClicked = ( node: InspectorNode, sourceEvent: React.MouseEvent<any> ): InspectorLayerEvent => ({ type: SOURCE_INSPECTOR_LAYER_CLICKED, node, sourceEvent }); export const sourceInspectorLayerArrowClicked = ( node: InspectorNode, sourceEvent: React.MouseEvent<any> ): InspectorLayerEvent => ({ type: SOURCE_INSPECTOR_LAYER_ARROW_CLICKED, node, sourceEvent }); export const sourceInspectorLayerLabelChanged = ( node: InspectorNode, label: string, sourceEvent: React.KeyboardEvent<any> ): InspectorLayerLabelChanged => ({ type: SOURCE_INSPECTOR_LAYER_LABEL_CHANGED, node, label, sourceEvent }); export const newVariantNameEntered = ( value: string ): NewVariantNameEntered => ({ value, type: NEW_VARIANT_NAME_ENTERED }); export const componentComponentVariantNameChanged = ( oldName: string, newName: string ): ComponentVariantNameChanged => ({ oldName, newName, type: COMPONENT_VARIANT_NAME_CHANGED }); export const componentComponentVariantNameClicked = ( name: string ): ComponentVariantNameClicked => ({ name, type: COMPONENT_VARIANT_NAME_CLICKED }); export const componentVariantNameDefaultToggleClick = ( name: string, value: boolean ): ComponentVariantNameDefaultToggleClick => ({ name, value, type: COMPONENT_VARIANT_NAME_DEFAULT_TOGGLE_CLICK }); export const sourceInspectorLayerDropped = ( source: InspectorNode, target: InspectorNode, offset: TreeMoveOffset ): SourceInspectorLayerDropped => ({ source, target, offset, type: SOURCE_INSPECTOR_LAYER_DROPPED }); export const rawCssTextChanged = (value: string): RawCSSTextChanged => ({ value, type: RAW_CSS_TEXT_CHANGED }); export const cssPropertyChanged = ( name: string, value: string ): CSSPropertyChanged => ({ name, value, type: CSS_PROPERTY_CHANGED }); export const cssPropertiesChanged = ( properties: KeyValue<string> ): CSSPropertiesChanged => ({ properties, type: CSS_PROPERTIES_CHANGED }); export const cssPropertyChangeCompleted = ( name: string, value: string ): CSSPropertyChanged => ({ name, value, type: CSS_PROPERTY_CHANGE_COMPLETED }); export const cssPropertiesChangeCompleted = ( properties: KeyValue<string> ): CSSPropertiesChanged => ({ properties, type: CSS_PROPERTIES_CHANGE_COMPLETED }); export const attributeChanged = ( name: string, value: string ): AttributeChanged => ({ name, value, type: ATTRIBUTE_CHANGED }); export const slotToggleClick = (): SlotToggleClick => ({ type: SLOT_TOGGLE_CLICK }); export const textValueChanged = (value: string): TextValueChanged => ({ value, type: TEXT_VALUE_CHANGED }); export const elementTypeChanged = (value: string): ElementTypeChanged => ({ value, type: ELEMENT_TYPE_CHANGED }); export const appLoaded = publicActionCreator(() => ({ type: APP_LOADED })); export const newFileEntered = (basename: string): NewFileEntered => ({ basename, type: NEW_FILE_ENTERED }); export const newDirectoryEntered = (basename: string): NewFileEntered => ({ basename, type: NEW_DIRECTORY_ENTERED }); export const projectLoaded = (uri: string): ProjectLoaded => ({ uri, type: PROJECT_LOADED }); export const projectDirectoryLoaded = publicActionCreator( (directory: Directory): ProjectDirectoryLoaded => ({ directory, type: PROJECT_DIRECTORY_LOADED }) ); export const shortcutKeyDown = publicActionCreator( (type: string): ShortcutKeyDown => ({ type }) ); export const syntheticNodesPasted = ( clips: PCNodeClip[] ): SyntheticVisibleNodesPasted => ({ clips, type: SYNTHETIC_NODES_PASTED }); export const documentRendered = ( documentId: string, info: ComputedDisplayInfo, nativeMap: SyntheticNativeNodeMap ): DocumentRendered => ({ nativeMap, documentId, info, type: DOCUMENT_RENDERED }); export const savedFile = (uri: string): SavedFile => ({ uri, type: SAVED_FILE }); export const savedAllFiles = (uri: string): SavedAllFiles => ({ type: SAVED_ALL_FILES }); export const canvasToolOverlayMousePanStart = ( documentId: string ): CanvasToolOverlayMousePanStart => ({ documentId, type: CANVAS_TOOL_OVERLAY_MOUSE_PAN_START }); export const canvasToolOverlayMousePanning = ( documentId: string, center: Point, deltaY: number, velocityY: number ): CanvasToolOverlayMousePanning => ({ documentId, center, deltaY, velocityY, type: CANVAS_TOOL_OVERLAY_MOUSE_PANNING }); export const canvasToolOverlayMouseLeave = ( sourceEvent: React.MouseEvent<any> ): CanvasToolOverlayMouseMoved => ({ type: CANVAS_TOOL_OVERLAY_MOUSE_LEAVE, sourceEvent }); export const canvasToolOverlayMousePanEnd = ( documentId: string ): CanvasToolOverlayMousePanEnd => ({ documentId, type: CANVAS_TOOL_OVERLAY_MOUSE_PAN_END }); export const canvasToolOverlayMouseDoubleClicked = ( documentId: string, sourceEvent: React.MouseEvent<any> ): CanvasToolOverlayClicked => ({ documentId, type: CANVAS_TOOL_OVERLAY_MOUSE_DOUBLE_CLICKED, sourceEvent }); export const canvasContainerMounted = ( element: HTMLDivElement, fileUri: string ): CanvasMounted => ({ element, fileUri, type: CANVAS_MOUNTED }); export const canvasMouseMoved = ( editorWindow: EditorWindow, sourceEvent: React.MouseEvent<any> ): CanvasMouseMoved => ({ editorWindow, sourceEvent, type: CANVAS_MOUSE_MOVED }); export const canvasDraggedOver = ( item: any, offset: Point ): CanvasDraggingOver => ({ item, offset, type: CANVAS_DRAGGED_OVER }); export const canvasMouseClicked = ( sourceEvent: React.MouseEvent<any> ): WrappedEvent<React.MouseEvent<any>> => ({ sourceEvent, type: CANVAS_MOUSE_CLICKED }); export const canvasMouseDoubleClicked = ( sourceEvent: React.MouseEvent<any> ): WrappedEvent<React.MouseEvent<any>> => ({ sourceEvent, type: CANVAS_MOUSE_DOUBLE_CLICKED }); export const canvasWheel = ( canvasWidth: number, c