@mingoo/amotify
Version:
UI FW for React
115 lines (114 loc) • 3.71 kB
TypeScript
/// <reference types="react" />
import './module';
declare global {
interface JsminExtension {
spreadSheet: {
readFromFile(file: fn.Input.Filer.CustomFile): Promise<JsminExtension.SpreadSheet.Method>;
readFromJson(v: JsminExtension.SpreadSheet.Json): Promise<JsminExtension.SpreadSheet.Method>;
};
}
namespace JsminExtension {
namespace SpreadSheet {
interface Instance {
fn: Method;
prototype: Method;
(v: any, a: string): any;
}
interface Method {
isValid(): boolean;
getWorkbook(): any;
updateFileName(fileName: string): void;
updateMerges(merges: Merge[][]): void;
updateStyles(styles: Style[][]): void;
toJson(): {
fileName: string;
sheets: {
sheetName: string;
rows: any[];
}[];
};
export(type?: 'xlsx' | 'csv'): void;
}
type Json = {
fileName: string;
sheets: SheetParams[];
};
type SheetParams = {
sheetName: string;
rows: RowParams[];
merges?: Merge[];
styles?: Style[];
};
type RowParams = (string | number)[];
type Merge = [string, string] | [null, null];
type Style = {
type: 'cell' | 'row' | 'column';
target: string | number | (string | number)[];
values: {
[key: string]: any;
};
};
}
}
interface JsminExtension {
formCollect(form: string): Promise<{
valid: boolean;
data: plainObject;
}>;
NoticeHttpStatus(params: {
status: number;
statusText: string;
label: ReactElement;
} & fn.SnackBar.AddParams): void;
copyToClipboard(data: any, notice?: boolean): Promise<{
ok: boolean;
body: any;
}>;
getCurrentLocation: {
(): Promise<JsminExtension.getCurrentLocationOutput>;
};
CDNReader: {
(url: string): void;
};
ImageLoader: {
(dataUrl: string, img?: HTMLImageElement): Promise<HTMLImageElement>;
};
isJSXElement(v: any): v is JSX.Element;
}
namespace JsminExtension {
type getCurrentLocationOutput = {
ok: false;
status: number;
body: {
reason: any;
};
} | {
ok: true;
status: 200;
body: {
lat: number;
lng: number;
};
};
}
type base64ToBlobTypeProps = 'image/png' | 'image/jpeg' | string;
interface String {
zen2hanNumber(): string;
}
}
export type Device = 'windows' | 'android' | 'iPhone' | 'iPad' | 'macOSX' | 'undefined';
export type Browser = 'chrome' | 'firefox' | 'safari' | 'opera' | 'ie' | 'edge' | 'undefined';
export type ReactElement = React.ReactNode | React.ReactNode[];
import { TagProps } from './property';
export type { TagProps };
import { config, global, atoms, mols, orgs, temps, fn } from './amotify';
export type { config, global, atoms, mols, orgs, temps, fn };
export interface amotify {
config: config.Methods;
global: global.Methods;
atoms: atoms.Methods;
mols: mols.Methods;
orgs: orgs.Methods;
temps: temps.Methods;
fn: fn.Methods;
}