@magnit-ceapp/taskboard-manager
Version:
An app to manage kanban-style task boards built as a custom html element
165 lines (153 loc) • 5.24 kB
text/typescript
import { DataRecord } from 'record-setter';
import { RoutePageElement } from '@magnit-ce/path-router';
import { TaskListElement } from '@magnit-ce/task-list';
declare class CustomImageRecord extends DataRecord {
boardId: string;
isSingleBoard: boolean;
name: string;
description: string;
image?: Blob;
}
declare enum TaskBoardBackgroundDisplay {
Stretch = "stretch",
Center = "center",
Tile = "tile"
}
declare class TaskBoardRecord extends DataRecord {
name: string;
color: string;
order: number;
backgroundImageId: string;
backgroundDisplay: TaskBoardBackgroundDisplay;
backgroundOffsetX: number;
backgroundOffsetY: number;
useCustomBackgroundColor: boolean;
backgroundColor: string;
useCustomFontColor: boolean;
fontColor: string;
taskSettingsId: string;
}
declare enum TaskColorDisplay {
Hidden = "hidden",
Element = "element",
Borders = "border",
TopBorder = "top-border",
RightBorder = "right-border",
BottomBorder = "bottom-border",
LeftBorder = "left-border",
Background = "background"
}
type TaskBorderRadiusUnit = 'px' | '%';
type TaskSettingsParentRecordCategory = 'list' | 'board';
declare class TaskSettingsRecord extends DataRecord {
parentRecordType: TaskSettingsParentRecordCategory;
centerCheckbox: boolean;
colorDisplay: TaskColorDisplay;
useCustomBackgroundColor: boolean;
customBackgroundColor: string;
useCustomFontSize: boolean;
customFontSize: number;
useCustomFontColor: boolean;
customFontColor: string;
useCustomWidth: boolean;
customWidth: number;
useCustomBorderWidth_top: boolean;
borderWidth_top: number;
useCustomBorderWidth_right: boolean;
borderWidth_right: number;
useCustomBorderWidth_bottom: boolean;
borderWidth_bottom: number;
useCustomBorderWidth_left: boolean;
borderWidth_left: number;
useCustomBorderRadius: boolean;
borderRadiusValue: number;
borderRadiusUnit: TaskBorderRadiusUnit;
useCustomBorderColor: boolean;
customBorderColor: string;
centerRemoveButton: boolean;
}
type ExportedImage = Partial<CustomImageRecord> & {
image_base64?: string;
};
declare enum TaskListColorDisplay {
Element = "element",
BorderColor = "border-color",
FontColor = "font-color"
}
declare class TaskListRecord extends DataRecord {
boardId: string;
taskSettingsId: string;
category: string;
order: number;
color: string;
name: string;
description: string;
colorDisplay: TaskListColorDisplay;
useCustomBackgroundColor: boolean;
backgroundColor: string;
useCustomFontColor: boolean;
fontColor: string;
useCustomWidth: boolean;
width: number;
isCollapsed: boolean;
}
declare class TaskRecord extends DataRecord {
boardId: string;
listId: string;
order: number;
color: string;
description: string;
isFinished: boolean;
}
type ExportedList = Partial<TaskListRecord> & {
taskSettings?: Partial<TaskSettingsRecord>;
tasks?: Partial<TaskRecord>[];
};
declare const ListExport_base: new () => ExportedList;
declare class ListExport extends ListExport_base {
constructor(list?: ExportedList, taskSettings?: TaskSettingsRecord, tasks?: Partial<TaskRecord>[]);
}
type ExportedBoard = Partial<TaskBoardRecord> & {
lists?: ExportedList[];
backgroundImage?: ExportedImage;
taskSettings?: Partial<TaskSettingsRecord>;
};
declare const BoardExport_base: new () => ExportedBoard;
declare class BoardExport extends BoardExport_base {
constructor(board?: TaskBoardRecord, taskSettings?: TaskSettingsRecord, backgroundImage?: CustomImageRecord, lists?: ListExport[]);
}
type ColorScheme = 'inherit' | 'browser' | 'light' | 'dark';
declare class TaskboardManagerElement extends HTMLElement {
#private;
componentParts: Map<string, HTMLElement>;
getElement<T extends HTMLElement | RoutePageElement = HTMLElement>(id: string): T;
findElement<T extends HTMLElement | RoutePageElement = HTMLElement>(id: string): T;
constructor();
/**
* Initializes the app.
* Not necessary if the `autolaunch` attribute was not set to `false`.
*/
init(): Promise<void>;
setColorScheme(scheme: ColorScheme): void;
undo(): Promise<void>;
redo(): Promise<void>;
refreshBoards(): Promise<void>;
refreshCurrentBoard(): void;
refreshBoardCollections(): Promise<void>;
openBoard(id: string): Promise<void>;
refreshBoard(): Promise<void>;
closeBoard(): Promise<void>;
addBoard(): Promise<TaskBoardRecord>;
editBoard(boardId: string): void;
openBoardSettings(id: string): Promise<void>;
exportBoard(id: string): Promise<void>;
importBoard(boardData: BoardExport, errorMessage?: string): Promise<void>;
removeBoard(boardId: string, confirm?: boolean): Promise<void>;
duplicateBoard(id: string): Promise<void>;
closeBoardSettings(): Promise<unknown>;
clearData(): Promise<void>;
addTask(list: TaskListElement, order: number): void;
static observedAttributes: string[];
attributeChangedCallback(attributeName: string, _oldValue: string, newValue: string): void;
}
export { TaskboardManagerElement };