@morghulis/core 1.0.26 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +1 -1
- package/dist/morghulis-core.es.js +12532 -12939
- package/dist/morghulis-core.es.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/app/admin/components/dialogs/AccountDialog.vue.d.ts +1 -1
- package/dist/types/app/admin/components/dialogs/forms/AccountForm.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/hooks.d.ts +1 -1
- package/dist/types/app/admin/contents/menu/AdminMenu.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/menu/MenuTreeNode.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/navigate/AdminNavigate.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/system/feedbacks/AccountRoleDialog.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/system/feedbacks/MenuAddDialog.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/system/feedbacks/MenuPathPopover.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/system/feedbacks/MenuRoleDialog.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/system/feedbacks/RoleAccountDialog.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/system/feedbacks/RoleMenuDialog.vue.d.ts +1 -1
- package/dist/types/app/admin/contents/system/feedbacks/hooks.d.ts +3 -3
- package/dist/types/app/admin/contents/system/widgets/MenuRolePlugin.vue.d.ts +1 -1
- package/dist/types/app/admin/hooks.d.ts +2 -2
- package/dist/types/components.d.ts +1 -0
- package/dist/types/data/cell/FieldTransfer.vue.d.ts +1 -1
- package/dist/types/data/cell/MCell.vue.d.ts +1 -1
- package/dist/types/data/cell/instances/hooks.d.ts +6 -6
- package/dist/types/data/cell/types.d.ts +1 -1
- package/dist/types/data/form/MForm.vue.d.ts +1 -1
- package/dist/types/data/form/hooks.d.ts +7 -7
- package/dist/types/data/form/types.d.ts +1 -1
- package/dist/types/data/form/widgets/MFormLabel.vue.d.ts +1 -1
- package/dist/types/data/plugin/MPluginButtons.vue.d.ts +1 -1
- package/dist/types/data/plugin/MPluginColumn.vue.d.ts +1 -1
- package/dist/types/data/plugin/types.d.ts +1 -1
- package/dist/types/data/table/MTable.vue.d.ts +1 -1
- package/dist/types/data/table/components/columns/ButtonsColumn.vue.d.ts +1 -1
- package/dist/types/data/table/components/columns/CustomColumn.vue.d.ts +1 -1
- package/dist/types/data/table/components/columns/FieldColumn.vue.d.ts +3 -3
- package/dist/types/data/table/components/columns/IndexColumn.vue.d.ts +1 -1
- package/dist/types/data/table/components/columns/cells/MTableCell.vue.d.ts +1 -1
- package/dist/types/data/table/components/columns/cells/MTableHeaderCell.vue.d.ts +1 -1
- package/dist/types/data/table/components/columns/cells/MTableIndexCell.vue.d.ts +1 -1
- package/dist/types/data/table/components/control/MTableControl.vue.d.ts +1 -1
- package/dist/types/data/table/components/control/MTableControlButtons.vue.d.ts +1 -1
- package/dist/types/data/table/components/feedback/CellDialog.vue.d.ts +1 -1
- package/dist/types/data/table/components/feedback/CellPopover.vue.d.ts +1 -1
- package/dist/types/data/table/components/feedback/IndexPopover.vue.d.ts +1 -1
- package/dist/types/data/table/components/feedback/LookupPopover.vue.d.ts +1 -1
- package/dist/types/data/table/components/feedback/UploadDialog.vue.d.ts +1 -1
- package/dist/types/data/table/components/finder/MTableFinder.vue.d.ts +2 -2
- package/dist/types/data/table/components/tools/MTableSelection.vue.d.ts +1 -1
- package/dist/types/data/table/hooks/selection.d.ts +2 -2
- package/dist/types/data/table/hooks/sortable.d.ts +1 -1
- package/dist/types/data/table/types.d.ts +1 -1
- package/dist/types/data/tree/MTree.vue.d.ts +1 -1
- package/dist/types/data/tree/components/control/MTreeControl.vue.d.ts +3 -3
- package/dist/types/data/tree/components/feedback/BatchDialog.vue.d.ts +1 -1
- package/dist/types/data/tree/components/feedback/NodePopover.vue.d.ts +3 -3
- package/dist/types/data/tree/components/feedback/TableDialog.vue.d.ts +1 -1
- package/dist/types/data/tree/components/feedback/widgets/BatchForm.vue.d.ts +1 -1
- package/dist/types/data/tree/components/feedback/widgets/NodeButtons.vue.d.ts +3 -3
- package/dist/types/data/tree/components/node/MTreeNode.vue.d.ts +1 -1
- package/dist/types/data/tree/components/node/MTreePlugin.vue.d.ts +1 -1
- package/dist/types/data/tree/components/tools/ToggleNodeTool.vue.d.ts +1 -1
- package/dist/types/data/tree/hooks/disclosure.d.ts +1 -1
- package/dist/types/data/tree/hooks/selection.d.ts +2 -2
- package/dist/types/data/tree/types.d.ts +1 -1
- package/dist/types/data/types.d.ts +1 -1
- package/dist/types/data/upload/components/impoter/UploadImporter.vue.d.ts +1 -1
- package/dist/types/data/upload/components/impoter/components/ImporterTemplate.vue.d.ts +1 -1
- package/dist/types/data/upload/components/table/UploadTable.vue.d.ts +1 -1
- package/dist/types/data/upload/components/table/components/cells/UploadTableCell.vue.d.ts +1 -1
- package/dist/types/data/upload/components/table/components/valid/UploadTableValidation.vue.d.ts +1 -1
- package/dist/types/data/upload/hooks.d.ts +13 -13
- package/dist/types/data/upload/types.d.ts +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/lib/core/channel/hooks.d.ts +11 -0
- package/dist/types/lib/core/channel/index.d.ts +8 -0
- package/dist/types/lib/core/channel/types.d.ts +52 -0
- package/dist/types/lib/core/channel/utils/container.d.ts +7 -0
- package/dist/types/lib/core/channel/utils/hub.d.ts +7 -0
- package/dist/types/lib/core/index.d.ts +2 -0
- package/dist/types/lib/core/network/hooks.d.ts +4 -0
- package/dist/types/lib/core/network/index.d.ts +9 -0
- package/dist/types/lib/core/network/types.d.ts +3 -0
- package/dist/types/lib/core/network/utils/http.d.ts +5 -0
- package/dist/types/lib/core/network/utils/socket.d.ts +6 -0
- package/dist/types/lib/data/dao/cogs/Model.d.ts +9 -0
- package/dist/types/lib/data/dao/cogs/Search.d.ts +12 -0
- package/dist/types/lib/data/dao/hooks.d.ts +8 -0
- package/dist/types/lib/data/dao/index.d.ts +14 -0
- package/dist/types/lib/data/dao/types.d.ts +39 -0
- package/dist/types/lib/data/hooks.d.ts +245 -0
- package/dist/types/lib/data/index.d.ts +6 -0
- package/dist/types/lib/data/meta/cogs/MetaField.d.ts +47 -0
- package/dist/types/lib/data/meta/cogs/MetaFormat.d.ts +26 -0
- package/dist/types/lib/data/meta/cogs/MetaRefer.d.ts +17 -0
- package/dist/types/lib/data/meta/cogs/MetaView.d.ts +36 -0
- package/dist/types/lib/data/meta/hooks.d.ts +23 -0
- package/dist/types/lib/data/meta/index.d.ts +16 -0
- package/dist/types/lib/data/meta/parser.d.ts +25 -0
- package/dist/types/lib/data/meta/types.d.ts +150 -0
- package/dist/types/lib/data/model/hooks.d.ts +44 -0
- package/dist/types/lib/data/model/index.d.ts +2 -0
- package/dist/types/lib/data/model/types.d.ts +7 -0
- package/dist/types/lib/data/query/cogs/Condition.d.ts +6 -0
- package/dist/types/lib/data/query/cogs/Lookup.d.ts +20 -0
- package/dist/types/lib/data/query/hooks.d.ts +63 -0
- package/dist/types/lib/data/query/index.d.ts +5 -0
- package/dist/types/lib/data/query/parser.d.ts +3 -0
- package/dist/types/lib/data/query/types.d.ts +18 -0
- package/dist/types/lib/data/types.d.ts +55 -0
- package/dist/types/lib/index.d.ts +8 -0
- package/dist/types/lib/install.d.ts +5 -0
- package/dist/types/lib/utils/aoa/hooks.d.ts +10 -0
- package/dist/types/lib/utils/aoa/index.d.ts +2 -0
- package/dist/types/lib/utils/aoa/types.d.ts +5 -0
- package/dist/types/lib/utils/functions.d.ts +1 -0
- package/dist/types/lib/utils/index.d.ts +5 -0
- package/dist/types/lib/utils/pagination/index.d.ts +6 -0
- package/dist/types/lib/utils/paster/hooks.d.ts +5 -0
- package/dist/types/lib/utils/paster/index.d.ts +1 -0
- package/dist/types/lib/utils/xlsx/hooks.d.ts +14 -0
- package/dist/types/lib/utils/xlsx/index.d.ts +2 -0
- package/dist/types/lib/utils/xlsx/types.d.ts +31 -0
- package/dist/types/meta/MetaPopover.vue.d.ts +1 -1
- package/dist/types/meta/feedbacks/FieldDialog.vue.d.ts +1 -1
- package/dist/types/meta/feedbacks/ListDialog.vue.d.ts +1 -1
- package/dist/types/meta/feedbacks/MetaDialog.vue.d.ts +1 -1
- package/dist/types/meta/feedbacks/ViewDialog.vue.d.ts +1 -1
- package/dist/types/meta/feedbacks/list/AddFieldDialog.vue.d.ts +1 -1
- package/dist/types/meta/feedbacks/list/CustomFieldDialog.vue.d.ts +1 -1
- package/dist/types/meta/feedbacks/list/FormatDialog.vue.d.ts +1 -1
- package/dist/types/meta/feedbacks/list/ReferDialog.vue.d.ts +1 -1
- package/dist/types/meta/forms/CustomForm.vue.d.ts +2 -2
- package/dist/types/meta/forms/FieldForm.vue.d.ts +2 -2
- package/dist/types/meta/forms/FormatForm.vue.d.ts +4 -4
- package/dist/types/meta/forms/ReferForm.vue.d.ts +3 -3
- package/dist/types/meta/forms/ViewForm.vue.d.ts +2 -2
- package/dist/types/meta/forms/field/FieldFormBtn.vue.d.ts +1 -1
- package/dist/types/meta/forms/formats/DateFormats.vue.d.ts +1 -1
- package/dist/types/meta/forms/formats/FileFormats.vue.d.ts +1 -1
- package/dist/types/meta/forms/formats/NumberFormats.vue.d.ts +1 -1
- package/dist/types/meta/forms/formats/SetFormats.vue.d.ts +1 -1
- package/dist/types/meta/forms/formats/TextFormats.vue.d.ts +1 -1
- package/dist/types/meta/labels/FieldLabel.vue.d.ts +1 -1
- package/dist/types/meta/labels/ViewLabel.vue.d.ts +1 -1
- package/dist/types/meta/panels/ListPanel.vue.d.ts +1 -1
- package/dist/types/meta/panels/ViewPanel.vue.d.ts +1 -1
- package/dist/types/meta/panels/list-custom/FieldWidgets.d.ts +1 -1
- package/dist/types/meta/tools/TreeRootSelection.vue.d.ts +1 -1
- package/dist/types/meta/tools/types.d.ts +1 -1
- package/dist/types/usages/form-codes/CodesForm.vue.d.ts +13 -13
- package/dist/types/usages/form-codes/hooks.d.ts +26 -26
- package/dist/types/usages/form-codes/types.d.ts +1 -1
- package/dist/types/usages/table-codes/CodesTable.vue.d.ts +1 -1
- package/dist/types/usages/table-codes/types.d.ts +1 -1
- package/dist/types/usages/table-data/DTable.vue.d.ts +1 -1
- package/dist/types/usages/table-data/hooks.d.ts +33 -33
- package/dist/types/usages/table-data/types.d.ts +1 -1
- package/dist/types/usages/table-plain/@hooks/data.d.ts +23 -23
- package/dist/types/usages/table-plain/@hooks/view.d.ts +19 -19
- package/dist/types/usages/table-plain/PTable.vue.d.ts +1 -1
- package/dist/types/usages/table-plain/hooks.d.ts +23 -23
- package/dist/types/usages/table-plain/types.d.ts +1 -1
- package/dist/types/usages/tree-data/DTree.vue.d.ts +4 -4
- package/dist/types/usages/tree-data/hooks.d.ts +26 -26
- package/dist/types/usages/tree-data/tree-table/DTreeTable.vue.d.ts +1 -1
- package/dist/types/usages/tree-data/types.d.ts +1 -1
- package/dist/types/widgets/depands/MCharts.vue.d.ts +1 -1
- package/dist/types/widgets/extensions/CtrlButton.vue.d.ts +1 -1
- package/dist/types/widgets/extensions/MOption.vue.d.ts +1 -1
- package/dist/types/widgets/feedbacks/dialog/MDialog.vue.d.ts +1 -1
- package/dist/types/widgets/feedbacks/functions.d.ts +1 -1
- package/dist/types/widgets/file/MFileView.vue.d.ts +1 -1
- package/dist/types/widgets/icon/types.d.ts +1 -1
- package/dist/types/widgets/wrap/MShrink.vue.d.ts +2 -2
- package/package.json +5 -3
- package/dist/types/data/upload/components/form/UploadForm.vue.d.ts +0 -8
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Database, DataItemId } from "../../types";
|
|
2
|
+
import type { IMetaRefer } from "../types";
|
|
3
|
+
export default class MetaRefer {
|
|
4
|
+
db: Database;
|
|
5
|
+
entity: string | null;
|
|
6
|
+
value: string;
|
|
7
|
+
label: string;
|
|
8
|
+
display: string;
|
|
9
|
+
multiple: boolean;
|
|
10
|
+
strict: boolean;
|
|
11
|
+
remote: boolean;
|
|
12
|
+
includes: object;
|
|
13
|
+
excludes: object;
|
|
14
|
+
root: DataItemId;
|
|
15
|
+
isTree: boolean;
|
|
16
|
+
constructor(refer?: IMetaRefer);
|
|
17
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import MetaField from "./MetaField";
|
|
2
|
+
import type { Database, DataItemId } from "../../types";
|
|
3
|
+
import type { IMetaView, MetaModes, MetaValidator } from "../types";
|
|
4
|
+
export default class MetaView {
|
|
5
|
+
$$validator?: MetaValidator;
|
|
6
|
+
$db?: Database;
|
|
7
|
+
$entity?: string;
|
|
8
|
+
$code?: string;
|
|
9
|
+
$modes: MetaModes;
|
|
10
|
+
$isTree?: boolean;
|
|
11
|
+
$meta_name?: string;
|
|
12
|
+
$fields: {
|
|
13
|
+
[key: string]: MetaField;
|
|
14
|
+
};
|
|
15
|
+
$source?: IMetaView;
|
|
16
|
+
lock?: boolean;
|
|
17
|
+
id?: DataItemId;
|
|
18
|
+
name?: string;
|
|
19
|
+
form_width?: number;
|
|
20
|
+
form_height?: number;
|
|
21
|
+
table_width?: number;
|
|
22
|
+
table_height?: number;
|
|
23
|
+
enable: boolean;
|
|
24
|
+
show_header: boolean;
|
|
25
|
+
allow_search: boolean;
|
|
26
|
+
allow_order: boolean;
|
|
27
|
+
allow_insert: boolean;
|
|
28
|
+
allow_edit: boolean;
|
|
29
|
+
allow_edit_on_form: boolean;
|
|
30
|
+
allow_edit_on_cell: boolean;
|
|
31
|
+
allow_edit_on_sort: boolean;
|
|
32
|
+
allow_remove: boolean;
|
|
33
|
+
allow_download: boolean;
|
|
34
|
+
allow_upload: boolean;
|
|
35
|
+
constructor(view?: IMetaView, admin?: boolean);
|
|
36
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
|
+
import MetaView from "./cogs/MetaView";
|
|
3
|
+
import type { MetaCell, MetaMode, MetaRow, MetaRowFrame } from "./types";
|
|
4
|
+
import type { DataItem } from "../types";
|
|
5
|
+
import MetaField from "./cogs/MetaField";
|
|
6
|
+
import Condition from "../query/cogs/Condition";
|
|
7
|
+
import type MetaRefer from "./cogs/MetaRefer";
|
|
8
|
+
export declare function useMetaView($config?: MetaView | Ref<MetaView>): {
|
|
9
|
+
setEnable: (enable: boolean) => void;
|
|
10
|
+
toBean: (item: DataItem) => Pick<DataItem, string>;
|
|
11
|
+
toAoa: (items: DataItem[]) => any[][];
|
|
12
|
+
parse: (array: DataItem[]) => MetaRowFrame;
|
|
13
|
+
fromMode: (mode: MetaMode) => MetaField;
|
|
14
|
+
parseRow: (row: DataItem, index: number) => MetaRow;
|
|
15
|
+
};
|
|
16
|
+
export declare function useMetaField($config: MetaField | Ref<MetaField>): {
|
|
17
|
+
getCondition: () => Condition;
|
|
18
|
+
parseCell: (row: DataItem) => MetaCell;
|
|
19
|
+
};
|
|
20
|
+
export declare function useMetaRefer($config: MetaRefer | Ref<MetaRefer>): {
|
|
21
|
+
getCondition: () => Condition;
|
|
22
|
+
condition: import("vue").ComputedRef<Condition>;
|
|
23
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import MetaField from "./cogs/MetaField";
|
|
2
|
+
import MetaView from "./cogs/MetaView";
|
|
3
|
+
import MetaRefer from "./cogs/MetaRefer";
|
|
4
|
+
import MetaFormat from "./cogs/MetaFormat";
|
|
5
|
+
/**
|
|
6
|
+
* cogs
|
|
7
|
+
*/
|
|
8
|
+
export { MetaField, MetaView, MetaRefer, MetaFormat, };
|
|
9
|
+
/**
|
|
10
|
+
* hooks
|
|
11
|
+
*/
|
|
12
|
+
export { useMetaView, useMetaField, useMetaRefer } from "./hooks";
|
|
13
|
+
/**
|
|
14
|
+
* types
|
|
15
|
+
*/
|
|
16
|
+
export * from './types';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import MetaField from "./cogs/MetaField";
|
|
2
|
+
import type { DataItem } from "../types";
|
|
3
|
+
import type { MetaCell } from "./types";
|
|
4
|
+
export default class MetaCellParser {
|
|
5
|
+
field: MetaField;
|
|
6
|
+
constructor(field: MetaField);
|
|
7
|
+
parse(row: DataItem): MetaCell;
|
|
8
|
+
private parseNull;
|
|
9
|
+
private parseLinkage;
|
|
10
|
+
private parseMultiple;
|
|
11
|
+
private parseBoolean;
|
|
12
|
+
private parseNumber;
|
|
13
|
+
private parseDateAndTime;
|
|
14
|
+
private parseDateTime;
|
|
15
|
+
private parseDate;
|
|
16
|
+
private parseTime;
|
|
17
|
+
private parseRange;
|
|
18
|
+
private parseTimeRange;
|
|
19
|
+
private parseDateRange;
|
|
20
|
+
private parseDates;
|
|
21
|
+
private parseSet;
|
|
22
|
+
private parseFile;
|
|
23
|
+
private parseColor;
|
|
24
|
+
private parseDefault;
|
|
25
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { Database, DataItem, DataItemId } from "../types";
|
|
2
|
+
export type ValarMeta = 'valar.Valar' | 'valar.Role' | 'valar.Account' | 'valar.Menu' | 'valar.MetaFieldTool' | 'valar.MetaFieldDomain' | 'valar.IndicatorSet' | 'valar.Indicator' | 'valar.Location' | 'valar.Meta' | 'valar.MetaView' | 'valar.MetaField' | 'valar.MetaViewDefault' | 'valar.Vmo' | 'valar.Voo' | 'valar.Vmm';
|
|
3
|
+
export type IMeta = {
|
|
4
|
+
db?: Database;
|
|
5
|
+
entity: string | ValarMeta;
|
|
6
|
+
code?: string;
|
|
7
|
+
};
|
|
8
|
+
export type Meta = {
|
|
9
|
+
db: Database;
|
|
10
|
+
entity: string | ValarMeta;
|
|
11
|
+
code: string;
|
|
12
|
+
};
|
|
13
|
+
export type MetaMode = {
|
|
14
|
+
prop: string;
|
|
15
|
+
domain: MetaFieldDomain;
|
|
16
|
+
label?: string;
|
|
17
|
+
set?: IMetaFormatSet;
|
|
18
|
+
multiple?: boolean;
|
|
19
|
+
not_null?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type MetaModes = {
|
|
22
|
+
[prop: string]: MetaMode;
|
|
23
|
+
};
|
|
24
|
+
export type IMetaView = {
|
|
25
|
+
$db?: Database;
|
|
26
|
+
$entity?: string;
|
|
27
|
+
$code?: string;
|
|
28
|
+
$isTree?: boolean;
|
|
29
|
+
$fields?: {
|
|
30
|
+
[key: string]: IMetaField;
|
|
31
|
+
};
|
|
32
|
+
$meta_name?: string;
|
|
33
|
+
$modes?: MetaModes;
|
|
34
|
+
$$validator?: MetaValidator;
|
|
35
|
+
id?: DataItemId;
|
|
36
|
+
name?: string;
|
|
37
|
+
lock?: boolean;
|
|
38
|
+
form_width?: number;
|
|
39
|
+
form_height?: number;
|
|
40
|
+
table_width?: number;
|
|
41
|
+
table_height?: number;
|
|
42
|
+
enable?: boolean;
|
|
43
|
+
show_header?: boolean;
|
|
44
|
+
allow_search?: boolean;
|
|
45
|
+
allow_order?: boolean;
|
|
46
|
+
allow_insert?: boolean;
|
|
47
|
+
allow_edit?: boolean;
|
|
48
|
+
allow_edit_on_form?: boolean;
|
|
49
|
+
allow_edit_on_cell?: boolean;
|
|
50
|
+
allow_edit_on_sort?: boolean;
|
|
51
|
+
allow_remove?: boolean;
|
|
52
|
+
allow_download?: boolean;
|
|
53
|
+
allow_upload?: boolean;
|
|
54
|
+
};
|
|
55
|
+
export type MetaValidator = (row: any) => MetaValidatMessage;
|
|
56
|
+
export type MetaValidatMessage = {
|
|
57
|
+
valid: boolean;
|
|
58
|
+
message?: string | null;
|
|
59
|
+
};
|
|
60
|
+
export type MetaRowFrame = {
|
|
61
|
+
[id: DataItemId]: MetaRow;
|
|
62
|
+
};
|
|
63
|
+
export type MetaRow = {
|
|
64
|
+
$index: number;
|
|
65
|
+
key: DataItemId;
|
|
66
|
+
cells: Record<string, MetaCell>;
|
|
67
|
+
item: DataItem;
|
|
68
|
+
payload?: any;
|
|
69
|
+
} & MetaValidatMessage;
|
|
70
|
+
export type MetaCell = {
|
|
71
|
+
value: any;
|
|
72
|
+
content: any;
|
|
73
|
+
valid: boolean;
|
|
74
|
+
message: string;
|
|
75
|
+
} & MetaValidatMessage;
|
|
76
|
+
export type IMetaField = {
|
|
77
|
+
$db?: Database;
|
|
78
|
+
$entity?: string;
|
|
79
|
+
$code?: string;
|
|
80
|
+
id?: string | number;
|
|
81
|
+
prop?: string;
|
|
82
|
+
label?: string;
|
|
83
|
+
name?: string;
|
|
84
|
+
domain?: MetaFieldDomain;
|
|
85
|
+
tool?: MetaFieldTool;
|
|
86
|
+
refer?: IMetaRefer;
|
|
87
|
+
format?: IMetaFormat;
|
|
88
|
+
disable?: boolean;
|
|
89
|
+
not_null?: boolean;
|
|
90
|
+
allow_edit?: boolean;
|
|
91
|
+
allow_order?: boolean;
|
|
92
|
+
allow_search?: boolean;
|
|
93
|
+
allow_download?: boolean;
|
|
94
|
+
allow_upload?: boolean;
|
|
95
|
+
allow_update?: boolean;
|
|
96
|
+
unit?: string | null;
|
|
97
|
+
column_width?: number;
|
|
98
|
+
align?: 'left' | 'center' | 'right';
|
|
99
|
+
fixed?: '' | 'left' | 'right';
|
|
100
|
+
header_color?: string | null;
|
|
101
|
+
cell_color?: string | null;
|
|
102
|
+
edit_on_table?: boolean;
|
|
103
|
+
hide_on_table?: boolean;
|
|
104
|
+
span?: number;
|
|
105
|
+
hide_on_form?: boolean;
|
|
106
|
+
hide_on_form_edit?: boolean;
|
|
107
|
+
hide_on_form_insert?: boolean;
|
|
108
|
+
hide_on_form_branch?: boolean;
|
|
109
|
+
hide_on_form_leaf?: boolean;
|
|
110
|
+
};
|
|
111
|
+
export type IMetaRefer = {
|
|
112
|
+
db?: Database;
|
|
113
|
+
entity?: string;
|
|
114
|
+
value?: string;
|
|
115
|
+
label?: string;
|
|
116
|
+
display?: string;
|
|
117
|
+
multiple?: boolean;
|
|
118
|
+
strict?: boolean;
|
|
119
|
+
remote?: boolean;
|
|
120
|
+
includes?: object;
|
|
121
|
+
excludes?: object;
|
|
122
|
+
root?: DataItemId;
|
|
123
|
+
isTree?: boolean;
|
|
124
|
+
};
|
|
125
|
+
export type IMetaFormatSet = {
|
|
126
|
+
[label: string]: string;
|
|
127
|
+
};
|
|
128
|
+
export type IMetaFormat = {
|
|
129
|
+
$maxlength?: number;
|
|
130
|
+
maxlength?: number;
|
|
131
|
+
type?: MetaFormatType;
|
|
132
|
+
min?: number | null;
|
|
133
|
+
max?: number | null;
|
|
134
|
+
step?: number | null;
|
|
135
|
+
precision?: number | null;
|
|
136
|
+
step_strictly?: boolean;
|
|
137
|
+
frequency?: MetaFormatFrequency;
|
|
138
|
+
maximum?: number;
|
|
139
|
+
accept?: string[];
|
|
140
|
+
width?: number | null;
|
|
141
|
+
height?: number | null;
|
|
142
|
+
file_name_field?: string | null;
|
|
143
|
+
locked?: boolean;
|
|
144
|
+
set?: IMetaFormatSet;
|
|
145
|
+
multiple?: boolean;
|
|
146
|
+
};
|
|
147
|
+
export type MetaFormatType = 'text' | 'textarea';
|
|
148
|
+
export type MetaFormatFrequency = 'year' | 'month' | 'week' | 'date' | 'datetime' | 'yearrange' | 'monthrange' | 'daterange' | 'datetimerange' | 'years' | 'months' | 'dates' | null;
|
|
149
|
+
export type MetaFieldDomain = 'ManyToManyField' | 'ManyToManyRel' | 'ManyToOneRel' | 'OneToOneField' | 'OneToOneRel' | 'ForeignKey' | 'CharField' | 'TextField' | 'BooleanField' | 'IntegerField' | 'FloatField' | 'BigIntegerField' | 'DecimalField' | 'SmallIntegerField' | 'DateField' | 'DateTimeField' | 'TimeField' | 'JSONField' | 'FileField' | 'UUIDField' | 'BigAutoField' | 'Custom';
|
|
150
|
+
export type MetaFieldTool = 'text' | 'textarea' | 'number' | 'switch' | 'boolean' | 'date' | 'timerange' | 'time' | 'daterange' | 'dates' | 'image' | 'file' | 'rich' | 'transfer' | 'auto' | 'select' | 'tree' | 'cascade' | 'set' | 'meta' | 'color' | 'icon' | 'none' | 'object';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Model, type Orders } from "../dao";
|
|
2
|
+
import { type Ref } from "vue";
|
|
3
|
+
import type { DataItem, DataItemId, TreeItem } from "../types";
|
|
4
|
+
import type { TableMapping, TreeMapping } from "./types";
|
|
5
|
+
export declare function useReadonlyTreeModel($config: Model | Ref<Model>): {
|
|
6
|
+
mapping: Ref<TreeMapping, TreeMapping>;
|
|
7
|
+
root: import("vue").ComputedRef<number>;
|
|
8
|
+
length: number;
|
|
9
|
+
options: import("vue").ComputedRef<TreeItem[]>;
|
|
10
|
+
};
|
|
11
|
+
export declare function useReadonlyTableModel($config: Model | Ref<Model>): {
|
|
12
|
+
mapping: Ref<TableMapping, TableMapping>;
|
|
13
|
+
total: import("vue").ComputedRef<number>;
|
|
14
|
+
length: import("vue").ComputedRef<number>;
|
|
15
|
+
options: Ref<{
|
|
16
|
+
[x: string]: any;
|
|
17
|
+
id?: DataItemId | undefined;
|
|
18
|
+
sort?: DataItemId | undefined;
|
|
19
|
+
saved?: boolean | undefined;
|
|
20
|
+
name?: string | undefined;
|
|
21
|
+
disabled?: boolean | undefined;
|
|
22
|
+
}[], DataItem[] | {
|
|
23
|
+
[x: string]: any;
|
|
24
|
+
id?: DataItemId | undefined;
|
|
25
|
+
sort?: DataItemId | undefined;
|
|
26
|
+
saved?: boolean | undefined;
|
|
27
|
+
name?: string | undefined;
|
|
28
|
+
disabled?: boolean | undefined;
|
|
29
|
+
}[]>;
|
|
30
|
+
};
|
|
31
|
+
export declare function useEditableTableModel($config: Model | Ref<Model>): {
|
|
32
|
+
mapping: Ref<TableMapping, TableMapping>;
|
|
33
|
+
total: import("vue").ComputedRef<number>;
|
|
34
|
+
length: import("vue").ComputedRef<number>;
|
|
35
|
+
options: import("vue").ComputedRef<DataItem[]>;
|
|
36
|
+
orders: Ref<Orders, Orders>;
|
|
37
|
+
manager: {
|
|
38
|
+
find_one: (key: DataItemId) => DataItem;
|
|
39
|
+
find_many: (keys: DataItemId[]) => DataItem[];
|
|
40
|
+
insert_one: (item: DataItem) => DataItem;
|
|
41
|
+
save_many: (items: DataItem[]) => number[];
|
|
42
|
+
delete_many: (keys?: DataItemId[]) => void;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ConditionType, LookupType } from "../types";
|
|
2
|
+
export default class Lookup {
|
|
3
|
+
type: ConditionType;
|
|
4
|
+
prop: string;
|
|
5
|
+
lookup: LookupType;
|
|
6
|
+
value: any;
|
|
7
|
+
affix: boolean;
|
|
8
|
+
constructor(type: ConditionType, prop: string, value: any, lookup?: LookupType, affix?: boolean);
|
|
9
|
+
static MAPPING: {
|
|
10
|
+
contains: string;
|
|
11
|
+
exact: string;
|
|
12
|
+
startswith: string;
|
|
13
|
+
endswith: string;
|
|
14
|
+
gt: string;
|
|
15
|
+
lt: string;
|
|
16
|
+
isnull: string;
|
|
17
|
+
in: string;
|
|
18
|
+
range: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
|
+
import type { ICondition, IFinder } from "./types";
|
|
3
|
+
import type { DataItem } from "../types";
|
|
4
|
+
import Condition from "./cogs/Condition";
|
|
5
|
+
import Lookup from "./cogs/Lookup";
|
|
6
|
+
export declare function useCondition($config?: ICondition | Ref<ICondition>): {
|
|
7
|
+
config: Ref<ICondition, ICondition>;
|
|
8
|
+
core: import("vue").ComputedRef<DataItem>;
|
|
9
|
+
finder: Ref<{
|
|
10
|
+
includes: {
|
|
11
|
+
[prop: string]: Lookup;
|
|
12
|
+
};
|
|
13
|
+
excludes: {
|
|
14
|
+
[prop: string]: Lookup;
|
|
15
|
+
};
|
|
16
|
+
}, IFinder | {
|
|
17
|
+
includes: {
|
|
18
|
+
[prop: string]: Lookup;
|
|
19
|
+
};
|
|
20
|
+
excludes: {
|
|
21
|
+
[prop: string]: Lookup;
|
|
22
|
+
};
|
|
23
|
+
}>;
|
|
24
|
+
finders: Ref<{
|
|
25
|
+
includes: {
|
|
26
|
+
[prop: string]: Lookup;
|
|
27
|
+
};
|
|
28
|
+
excludes: {
|
|
29
|
+
[prop: string]: Lookup;
|
|
30
|
+
};
|
|
31
|
+
}[], IFinder[] | {
|
|
32
|
+
includes: {
|
|
33
|
+
[prop: string]: Lookup;
|
|
34
|
+
};
|
|
35
|
+
excludes: {
|
|
36
|
+
[prop: string]: Lookup;
|
|
37
|
+
};
|
|
38
|
+
}[]>;
|
|
39
|
+
conditions: import("vue").ComputedRef<Condition[]>;
|
|
40
|
+
};
|
|
41
|
+
export declare function useFinder($config?: ICondition | Ref<ICondition>): {
|
|
42
|
+
core: import("vue").ComputedRef<DataItem>;
|
|
43
|
+
finder: Ref<{
|
|
44
|
+
includes: {
|
|
45
|
+
[prop: string]: Lookup;
|
|
46
|
+
};
|
|
47
|
+
excludes: {
|
|
48
|
+
[prop: string]: Lookup;
|
|
49
|
+
};
|
|
50
|
+
}, IFinder | {
|
|
51
|
+
includes: {
|
|
52
|
+
[prop: string]: Lookup;
|
|
53
|
+
};
|
|
54
|
+
excludes: {
|
|
55
|
+
[prop: string]: Lookup;
|
|
56
|
+
};
|
|
57
|
+
}>;
|
|
58
|
+
filterRow: (row: DataItem) => boolean;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* django orm 未集成的lookups
|
|
62
|
+
* 日期:'date', 'year', 'iso_year', 'month', 'day', 'week', 'week_day', 'iso_week_day', 'quarter', 'time', 'hour', 'minute', 'second',
|
|
63
|
+
*/
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DataItem } from "../types";
|
|
2
|
+
import type { MetaModes } from "../meta";
|
|
3
|
+
import type Lookup from "./cogs/Lookup";
|
|
4
|
+
export type ConditionType = 'includes' | 'excludes';
|
|
5
|
+
export type ICondition = {
|
|
6
|
+
includes?: DataItem;
|
|
7
|
+
excludes?: DataItem;
|
|
8
|
+
modes?: MetaModes;
|
|
9
|
+
};
|
|
10
|
+
export type LookupType = 'contains' | 'exact' | 'startswith' | 'endswith' | 'gt' | 'lt' | 'isnull' | 'in' | 'range';
|
|
11
|
+
export type IFinder = {
|
|
12
|
+
includes: {
|
|
13
|
+
[prop: string]: Lookup;
|
|
14
|
+
};
|
|
15
|
+
excludes: {
|
|
16
|
+
[prop: string]: Lookup;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type IMeta, type MetaValidator, MetaView } from "./meta";
|
|
2
|
+
import type { ChannelScope } from "../core";
|
|
3
|
+
import { Model } from "./dao";
|
|
4
|
+
export type Database = 'orm' | 'mon' | 'plain';
|
|
5
|
+
export type DataItemId = string | number;
|
|
6
|
+
export type DataItem = {
|
|
7
|
+
id?: DataItemId;
|
|
8
|
+
sort?: DataItemId;
|
|
9
|
+
saved?: boolean;
|
|
10
|
+
name?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
[prop: string]: any;
|
|
13
|
+
};
|
|
14
|
+
export type TreeItem = {
|
|
15
|
+
pid: number | string;
|
|
16
|
+
isLeaf: boolean;
|
|
17
|
+
icon?: IconNames;
|
|
18
|
+
children: TreeItem[];
|
|
19
|
+
} & DataItem;
|
|
20
|
+
export type PropItem = {
|
|
21
|
+
value: string;
|
|
22
|
+
label: string;
|
|
23
|
+
display?: string;
|
|
24
|
+
convert?: (item: any) => void;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
};
|
|
27
|
+
export type TreeNode = {
|
|
28
|
+
canFocus: boolean;
|
|
29
|
+
checked: boolean;
|
|
30
|
+
childNodes: TreeNode[];
|
|
31
|
+
data: TreeItem;
|
|
32
|
+
expanded: boolean;
|
|
33
|
+
id: string | number;
|
|
34
|
+
indeterminate: boolean;
|
|
35
|
+
isCurrent: boolean;
|
|
36
|
+
isLeaf: boolean;
|
|
37
|
+
level: number;
|
|
38
|
+
parent: TreeNode;
|
|
39
|
+
visible: boolean;
|
|
40
|
+
};
|
|
41
|
+
export type IData = IMeta & ChannelScope & IDataConfig;
|
|
42
|
+
export type IDataConfig = {
|
|
43
|
+
admin?: boolean;
|
|
44
|
+
validator?: MetaValidator;
|
|
45
|
+
convertor?: (item: any) => void;
|
|
46
|
+
includes?: DataItem;
|
|
47
|
+
excludes?: DataItem;
|
|
48
|
+
beforeInit?: BeforeInitFunction;
|
|
49
|
+
beforeLoad?: BeforeLoadFunction;
|
|
50
|
+
disabled?: boolean;
|
|
51
|
+
};
|
|
52
|
+
type BeforeInitFunction = (view: MetaView) => void;
|
|
53
|
+
type BeforeLoadFunction = (model: Model, view: MetaView) => Promise<boolean>;
|
|
54
|
+
export type IconNames = undefined | null | '' | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "a" | "ad" | "add" | "address-book" | "address-card" | "adjust" | "air-freshener" | "align-center" | "align-justify" | "align-left" | "align-right" | "allergies" | "ambulance" | "american-sign-language-interpreting" | "anchor" | "anchor-circle-check" | "anchor-circle-exclamation" | "anchor-circle-xmark" | "anchor-lock" | "angle-double-down" | "angle-double-left" | "angle-double-right" | "angle-double-up" | "angle-down" | "angle-left" | "angle-right" | "angle-up" | "angles-down" | "angles-left" | "angles-right" | "angles-up" | "angry" | "ankh" | "apple-alt" | "apple-whole" | "archive" | "archway" | "area-chart" | "arrow-alt-circle-down" | "arrow-alt-circle-left" | "arrow-alt-circle-right" | "arrow-alt-circle-up" | "arrow-circle-down" | "arrow-circle-left" | "arrow-circle-right" | "arrow-circle-up" | "arrow-down" | "arrow-down-1-9" | "arrow-down-9-1" | "arrow-down-a-z" | "arrow-down-long" | "arrow-down-short-wide" | "arrow-down-up-across-line" | "arrow-down-up-lock" | "arrow-down-wide-short" | "arrow-down-z-a" | "arrow-left" | "arrow-left-long" | "arrow-left-rotate" | "arrow-pointer" | "arrow-right" | "arrow-right-arrow-left" | "arrow-right-from-bracket" | "arrow-right-from-file" | "arrow-right-long" | "arrow-right-rotate" | "arrow-right-to-bracket" | "arrow-right-to-city" | "arrow-right-to-file" | "arrow-rotate-back" | "arrow-rotate-backward" | "arrow-rotate-forward" | "arrow-rotate-left" | "arrow-rotate-right" | "arrow-trend-down" | "arrow-trend-up" | "arrow-turn-down" | "arrow-turn-up" | "arrow-up" | "arrow-up-1-9" | "arrow-up-9-1" | "arrow-up-a-z" | "arrow-up-from-bracket" | "arrow-up-from-ground-water" | "arrow-up-from-water-pump" | "arrow-up-long" | "arrow-up-right-dots" | "arrow-up-right-from-square" | "arrow-up-short-wide" | "arrow-up-wide-short" | "arrow-up-z-a" | "arrows" | "arrows-alt" | "arrows-alt-h" | "arrows-alt-v" | "arrows-down-to-line" | "arrows-down-to-people" | "arrows-h" | "arrows-left-right" | "arrows-left-right-to-line" | "arrows-rotate" | "arrows-spin" | "arrows-split-up-and-left" | "arrows-to-circle" | "arrows-to-dot" | "arrows-to-eye" | "arrows-turn-right" | "arrows-turn-to-dots" | "arrows-up-down" | "arrows-up-down-left-right" | "arrows-up-to-line" | "arrows-v" | "asl-interpreting" | "assistive-listening-systems" | "asterisk" | "at" | "atlas" | "atom" | "audio-description" | "austral-sign" | "automobile" | "award" | "b" | "baby" | "baby-carriage" | "backspace" | "backward" | "backward-fast" | "backward-step" | "bacon" | "bacteria" | "bacterium" | "bag-shopping" | "bahai" | "baht-sign" | "balance-scale" | "balance-scale-left" | "balance-scale-right" | "ban" | "ban-smoking" | "band-aid" | "bandage" | "bangladeshi-taka-sign" | "bank" | "bar-chart" | "barcode" | "bars" | "bars-progress" | "bars-staggered" | "baseball" | "baseball-ball" | "baseball-bat-ball" | "basket-shopping" | "basketball" | "basketball-ball" | "bath" | "bathtub" | "battery" | "battery-0" | "battery-2" | "battery-3" | "battery-4" | "battery-5" | "battery-car" | "battery-empty" | "battery-full" | "battery-half" | "battery-quarter" | "battery-three-quarters" | "bed" | "bed-pulse" | "beer" | "beer-mug-empty" | "bell" | "bell-concierge" | "bell-slash" | "bezier-curve" | "bible" | "bicycle" | "biking" | "binoculars" | "biohazard" | "birthday-cake" | "bitcoin-sign" | "blackboard" | "blender" | "blender-phone" | "blind" | "blog" | "bold" | "bolt" | "bolt-lightning" | "bomb" | "bone" | "bong" | "book" | "book-atlas" | "book-bible" | "book-bookmark" | "book-dead" | "book-journal-whills" | "book-medical" | "book-open" | "book-open-reader" | "book-quran" | "book-reader" | "book-skull" | "book-tanakh" | "bookmark" | "border-all" | "border-none" | "border-style" | "border-top-left" | "bore-hole" | "bottle-droplet" | "bottle-water" | "bowl-food" | "bowl-rice" | "bowling-ball" | "box" | "box-archive" | "box-open" | "box-tissue" | "boxes" | "boxes-alt" | "boxes-packing" | "boxes-stacked" | "braille" | "brain" | "brazilian-real-sign" | "bread-slice" | "bridge" | "bridge-circle-check" | "bridge-circle-exclamation" | "bridge-circle-xmark" | "bridge-lock" | "bridge-water" | "briefcase" | "briefcase-clock" | "briefcase-medical" | "broadcast-tower" | "broom" | "broom-ball" | "brush" | "bucket" | "bug" | "bug-slash" | "bugs" | "building" | "building-circle-arrow-right" | "building-circle-check" | "building-circle-exclamation" | "building-circle-xmark" | "building-columns" | "building-flag" | "building-lock" | "building-ngo" | "building-shield" | "building-un" | "building-user" | "building-wheat" | "bullhorn" | "bullseye" | "burger" | "burn" | "burst" | "bus" | "bus-alt" | "bus-simple" | "business-time" | "c" | "cab" | "cable-car" | "cake" | "cake-candles" | "calculator" | "calendar" | "calendar-alt" | "calendar-check" | "calendar-day" | "calendar-days" | "calendar-minus" | "calendar-plus" | "calendar-times" | "calendar-week" | "calendar-xmark" | "camera" | "camera-alt" | "camera-retro" | "camera-rotate" | "campground" | "cancel" | "candy-cane" | "cannabis" | "capsules" | "car" | "car-alt" | "car-battery" | "car-burst" | "car-crash" | "car-on" | "car-rear" | "car-side" | "car-tunnel" | "caravan" | "caret-down" | "caret-left" | "caret-right" | "caret-square-down" | "caret-square-left" | "caret-square-right" | "caret-square-up" | "caret-up" | "carriage-baby" | "carrot" | "cart-arrow-down" | "cart-flatbed" | "cart-flatbed-suitcase" | "cart-plus" | "cart-shopping" | "cash-register" | "cat" | "cedi-sign" | "cent-sign" | "certificate" | "chain" | "chain-broken" | "chain-slash" | "chair" | "chalkboard" | "chalkboard-teacher" | "chalkboard-user" | "champagne-glasses" | "charging-station" | "chart-area" | "chart-bar" | "chart-column" | "chart-diagram" | "chart-gantt" | "chart-line" | "chart-pie" | "chart-simple" | "check" | "check-circle" | "check-double" | "check-square" | "check-to-slot" | "cheese" | "chess" | "chess-bishop" | "chess-board" | "chess-king" | "chess-knight" | "chess-pawn" | "chess-queen" | "chess-rook" | "chevron-circle-down" | "chevron-circle-left" | "chevron-circle-right" | "chevron-circle-up" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "child" | "child-combatant" | "child-dress" | "child-reaching" | "child-rifle" | "children" | "church" | "circle" | "circle-arrow-down" | "circle-arrow-left" | "circle-arrow-right" | "circle-arrow-up" | "circle-check" | "circle-chevron-down" | "circle-chevron-left" | "circle-chevron-right" | "circle-chevron-up" | "circle-dollar-to-slot" | "circle-dot" | "circle-down" | "circle-exclamation" | "circle-h" | "circle-half-stroke" | "circle-info" | "circle-left" | "circle-minus" | "circle-nodes" | "circle-notch" | "circle-pause" | "circle-play" | "circle-plus" | "circle-question" | "circle-radiation" | "circle-right" | "circle-stop" | "circle-up" | "circle-user" | "circle-xmark" | "city" | "clapperboard" | "clinic-medical" | "clipboard" | "clipboard-check" | "clipboard-list" | "clipboard-question" | "clipboard-user" | "clock" | "clock-four" | "clock-rotate-left" | "clone" | "close" | "closed-captioning" | "cloud" | "cloud-arrow-down" | "cloud-arrow-up" | "cloud-bolt" | "cloud-download" | "cloud-download-alt" | "cloud-meatball" | "cloud-moon" | "cloud-moon-rain" | "cloud-rain" | "cloud-showers-heavy" | "cloud-showers-water" | "cloud-sun" | "cloud-sun-rain" | "cloud-upload" | "cloud-upload-alt" | "clover" | "cny" | "cocktail" | "code" | "code-branch" | "code-commit" | "code-compare" | "code-fork" | "code-merge" | "code-pull-request" | "coffee" | "cog" | "cogs" | "coins" | "colon-sign" | "columns" | "comment" | "comment-alt" | "comment-dollar" | "comment-dots" | "comment-medical" | "comment-nodes" | "comment-slash" | "comment-sms" | "commenting" | "comments" | "comments-dollar" | "compact-disc" | "compass" | "compass-drafting" | "compress" | "compress-alt" | "compress-arrows-alt" | "computer" | "computer-mouse" | "concierge-bell" | "contact-book" | "contact-card" | "cookie" | "cookie-bite" | "copy" | "copyright" | "couch" | "cow" | "credit-card" | "credit-card-alt" | "crop" | "crop-alt" | "crop-simple" | "cross" | "crosshairs" | "crow" | "crown" | "crutch" | "cruzeiro-sign" | "cube" | "cubes" | "cubes-stacked" | "cut" | "cutlery" | "d" | "dashboard" | "database" | "deaf" | "deafness" | "dedent" | "delete-left" | "democrat" | "desktop" | "desktop-alt" | "dharmachakra" | "diagnoses" | "diagram-next" | "diagram-predecessor" | "diagram-project" | "diagram-successor" | "diamond" | "diamond-turn-right" | "dice" | "dice-d20" | "dice-d6" | "dice-five" | "dice-four" | "dice-one" | "dice-six" | "dice-three" | "dice-two" | "digging" | "digital-tachograph" | "directions" | "disease" | "display" | "divide" | "dizzy" | "dna" | "dog" | "dollar" | "dollar-sign" | "dolly" | "dolly-box" | "dolly-flatbed" | "donate" | "dong-sign" | "door-closed" | "door-open" | "dot-circle" | "dove" | "down-left-and-up-right-to-center" | "down-long" | "download" | "drafting-compass" | "dragon" | "draw-polygon" | "drivers-license" | "droplet" | "droplet-slash" | "drum" | "drum-steelpan" | "drumstick-bite" | "dumbbell" | "dumpster" | "dumpster-fire" | "dungeon" | "e" | "ear-deaf" | "ear-listen" | "earth" | "earth-africa" | "earth-america" | "earth-americas" | "earth-asia" | "earth-europe" | "earth-oceania" | "edit" | "egg" | "eject" | "elevator" | "ellipsis" | "ellipsis-h" | "ellipsis-v" | "ellipsis-vertical" | "envelope" | "envelope-circle-check" | "envelope-open" | "envelope-open-text" | "envelope-square" | "envelopes-bulk" | "equals" | "eraser" | "ethernet" | "eur" | "euro" | "euro-sign" | "exchange" | "exchange-alt" | "exclamation" | "exclamation-circle" | "exclamation-triangle" | "expand" | "expand-alt" | "expand-arrows-alt" | "explosion" | "external-link" | "external-link-alt" | "external-link-square" | "external-link-square-alt" | "eye" | "eye-dropper" | "eye-dropper-empty" | "eye-low-vision" | "eye-slash" | "eyedropper" | "f" | "face-angry" | "face-dizzy" | "face-flushed" | "face-frown" | "face-frown-open" | "face-grimace" | "face-grin" | "face-grin-beam" | "face-grin-beam-sweat" | "face-grin-hearts" | "face-grin-squint" | "face-grin-squint-tears" | "face-grin-stars" | "face-grin-tears" | "face-grin-tongue" | "face-grin-tongue-squint" | "face-grin-tongue-wink" | "face-grin-wide" | "face-grin-wink" | "face-kiss" | "face-kiss-beam" | "face-kiss-wink-heart" | "face-laugh" | "face-laugh-beam" | "face-laugh-squint" | "face-laugh-wink" | "face-meh" | "face-meh-blank" | "face-rolling-eyes" | "face-sad-cry" | "face-sad-tear" | "face-smile" | "face-smile-beam" | "face-smile-wink" | "face-surprise" | "face-tired" | "fan" | "faucet" | "faucet-drip" | "fax" | "feather" | "feather-alt" | "feather-pointed" | "feed" | "female" | "ferry" | "fighter-jet" | "file" | "file-alt" | "file-archive" | "file-arrow-down" | "file-arrow-up" | "file-audio" | "file-circle-check" | "file-circle-exclamation" | "file-circle-minus" | "file-circle-plus" | "file-circle-question" | "file-circle-xmark" | "file-clipboard" | "file-code" | "file-contract" | "file-csv" | "file-download" | "file-edit" | "file-excel" | "file-export" | "file-fragment" | "file-half-dashed" | "file-image" | "file-import" | "file-invoice" | "file-invoice-dollar" | "file-lines" | "file-medical" | "file-medical-alt" | "file-pdf" | "file-pen" | "file-powerpoint" | "file-prescription" | "file-shield" | "file-signature" | "file-text" | "file-upload" | "file-video" | "file-waveform" | "file-word" | "file-zipper" | "fill" | "fill-drip" | "film" | "filter" | "filter-circle-dollar" | "filter-circle-xmark" | "fingerprint" | "fire" | "fire-alt" | "fire-burner" | "fire-extinguisher" | "fire-flame-curved" | "fire-flame-simple" | "first-aid" | "fish" | "fish-fins" | "fist-raised" | "flag" | "flag-checkered" | "flag-usa" | "flask" | "flask-vial" | "floppy-disk" | "florin-sign" | "flushed" | "folder" | "folder-blank" | "folder-closed" | "folder-minus" | "folder-open" | "folder-plus" | "folder-tree" | "font" | "font-awesome" | "font-awesome-flag" | "font-awesome-logo-full" | "football" | "football-ball" | "forward" | "forward-fast" | "forward-step" | "franc-sign" | "frog" | "frown" | "frown-open" | "funnel-dollar" | "futbol" | "futbol-ball" | "g" | "gamepad" | "gas-pump" | "gauge" | "gauge-high" | "gauge-med" | "gauge-simple" | "gauge-simple-high" | "gauge-simple-med" | "gavel" | "gbp" | "gear" | "gears" | "gem" | "genderless" | "ghost" | "gift" | "gifts" | "glass-cheers" | "glass-martini" | "glass-martini-alt" | "glass-water" | "glass-water-droplet" | "glass-whiskey" | "glasses" | "globe" | "globe-africa" | "globe-americas" | "globe-asia" | "globe-europe" | "globe-oceania" | "golf-ball" | "golf-ball-tee" | "gopuram" | "graduation-cap" | "greater-than" | "greater-than-equal" | "grimace" | "grin" | "grin-alt" | "grin-beam" | "grin-beam-sweat" | "grin-hearts" | "grin-squint" | "grin-squint-tears" | "grin-stars" | "grin-tears" | "grin-tongue" | "grin-tongue-squint" | "grin-tongue-wink" | "grin-wink" | "grip" | "grip-horizontal" | "grip-lines" | "grip-lines-vertical" | "grip-vertical" | "group-arrows-rotate" | "guarani-sign" | "guitar" | "gun" | "h" | "h-square" | "hamburger" | "hammer" | "hamsa" | "hand" | "hand-back-fist" | "hand-dots" | "hand-fist" | "hand-holding" | "hand-holding-dollar" | "hand-holding-droplet" | "hand-holding-hand" | "hand-holding-heart" | "hand-holding-medical" | "hand-holding-usd" | "hand-holding-water" | "hand-lizard" | "hand-middle-finger" | "hand-paper" | "hand-peace" | "hand-point-down" | "hand-point-left" | "hand-point-right" | "hand-point-up" | "hand-pointer" | "hand-rock" | "hand-scissors" | "hand-sparkles" | "hand-spock" | "handcuffs" | "hands" | "hands-american-sign-language-interpreting" | "hands-asl-interpreting" | "hands-bound" | "hands-bubbles" | "hands-clapping" | "hands-helping" | "hands-holding" | "hands-holding-child" | "hands-holding-circle" | "hands-praying" | "hands-wash" | "handshake" | "handshake-alt" | "handshake-alt-slash" | "handshake-angle" | "handshake-simple" | "handshake-simple-slash" | "handshake-slash" | "hanukiah" | "hard-drive" | "hard-hat" | "hard-of-hearing" | "hashtag" | "hat-cowboy" | "hat-cowboy-side" | "hat-hard" | "hat-wizard" | "haykal" | "hdd" | "head-side-cough" | "head-side-cough-slash" | "head-side-mask" | "head-side-virus" | "header" | "heading" | "headphones" | "headphones-alt" | "headphones-simple" | "headset" | "heart" | "heart-broken" | "heart-circle-bolt" | "heart-circle-check" | "heart-circle-exclamation" | "heart-circle-minus" | "heart-circle-plus" | "heart-circle-xmark" | "heart-crack" | "heart-music-camera-bolt" | "heart-pulse" | "heartbeat" | "helicopter" | "helicopter-symbol" | "helmet-safety" | "helmet-un" | "hexagon-nodes" | "hexagon-nodes-bolt" | "highlighter" | "hiking" | "hill-avalanche" | "hill-rockslide" | "hippo" | "history" | "hockey-puck" | "holly-berry" | "home" | "home-alt" | "home-lg" | "home-lg-alt" | "home-user" | "horse" | "horse-head" | "hospital" | "hospital-alt" | "hospital-symbol" | "hospital-user" | "hospital-wide" | "hot-tub" | "hot-tub-person" | "hotdog" | "hotel" | "hourglass" | "hourglass-1" | "hourglass-2" | "hourglass-3" | "hourglass-empty" | "hourglass-end" | "hourglass-half" | "hourglass-start" | "house" | "house-chimney" | "house-chimney-crack" | "house-chimney-medical" | "house-chimney-user" | "house-chimney-window" | "house-circle-check" | "house-circle-exclamation" | "house-circle-xmark" | "house-crack" | "house-damage" | "house-fire" | "house-flag" | "house-flood-water" | "house-flood-water-circle-arrow-right" | "house-laptop" | "house-lock" | "house-medical" | "house-medical-circle-check" | "house-medical-circle-exclamation" | "house-medical-circle-xmark" | "house-medical-flag" | "house-signal" | "house-tsunami" | "house-user" | "hryvnia" | "hryvnia-sign" | "hurricane" | "i" | "i-cursor" | "ice-cream" | "icicles" | "icons" | "id-badge" | "id-card" | "id-card-alt" | "id-card-clip" | "igloo" | "ils" | "image" | "image-portrait" | "images" | "inbox" | "indent" | "indian-rupee" | "indian-rupee-sign" | "industry" | "infinity" | "info" | "info-circle" | "inr" | "institution" | "italic" | "j" | "jar" | "jar-wheat" | "jedi" | "jet-fighter" | "jet-fighter-up" | "joint" | "journal-whills" | "jpy" | "jug-detergent" | "k" | "kaaba" | "key" | "keyboard" | "khanda" | "kip-sign" | "kiss" | "kiss-beam" | "kiss-wink-heart" | "kit-medical" | "kitchen-set" | "kiwi-bird" | "krw" | "l" | "ladder-water" | "land-mine-on" | "landmark" | "landmark-alt" | "landmark-dome" | "landmark-flag" | "language" | "laptop" | "laptop-code" | "laptop-file" | "laptop-house" | "laptop-medical" | "lari-sign" | "laugh" | "laugh-beam" | "laugh-squint" | "laugh-wink" | "layer-group" | "leaf" | "left-long" | "left-right" | "legal" | "lemon" | "less-than" | "less-than-equal" | "level-down" | "level-down-alt" | "level-up" | "level-up-alt" | "life-ring" | "lightbulb" | "line-chart" | "lines-leaning" | "link" | "link-slash" | "lira-sign" | "list" | "list-1-2" | "list-alt" | "list-check" | "list-dots" | "list-numeric" | "list-ol" | "list-squares" | "list-ul" | "litecoin-sign" | "location" | "location-arrow" | "location-crosshairs" | "location-dot" | "location-pin" | "location-pin-lock" | "lock" | "lock-open" | "locust" | "long-arrow-alt-down" | "long-arrow-alt-left" | "long-arrow-alt-right" | "long-arrow-alt-up" | "long-arrow-down" | "long-arrow-left" | "long-arrow-right" | "long-arrow-up" | "low-vision" | "luggage-cart" | "lungs" | "lungs-virus" | "m" | "magic" | "magic-wand-sparkles" | "magnet" | "magnifying-glass" | "magnifying-glass-arrow-right" | "magnifying-glass-chart" | "magnifying-glass-dollar" | "magnifying-glass-location" | "magnifying-glass-minus" | "magnifying-glass-plus" | "mail-bulk" | "mail-forward" | "mail-reply" | "mail-reply-all" | "male" | "manat-sign" | "map" | "map-location" | "map-location-dot" | "map-marked" | "map-marked-alt" | "map-marker" | "map-marker-alt" | "map-pin" | "map-signs" | "marker" | "mars" | "mars-and-venus" | "mars-and-venus-burst" | "mars-double" | "mars-stroke" | "mars-stroke-h" | "mars-stroke-right" | "mars-stroke-up" | "mars-stroke-v" | "martini-glass" | "martini-glass-citrus" | "martini-glass-empty" | "mask" | "mask-face" | "mask-ventilator" | "masks-theater" | "mattress-pillow" | "maximize" | "medal" | "medkit" | "meh" | "meh-blank" | "meh-rolling-eyes" | "memory" | "menorah" | "mercury" | "message" | "meteor" | "microchip" | "microphone" | "microphone-alt" | "microphone-alt-slash" | "microphone-lines" | "microphone-lines-slash" | "microphone-slash" | "microscope" | "mill-sign" | "minimize" | "minus" | "minus-circle" | "minus-square" | "mitten" | "mobile" | "mobile-alt" | "mobile-android" | "mobile-android-alt" | "mobile-button" | "mobile-phone" | "mobile-retro" | "mobile-screen" | "mobile-screen-button" | "money-bill" | "money-bill-1" | "money-bill-1-wave" | "money-bill-alt" | "money-bill-transfer" | "money-bill-trend-up" | "money-bill-wave" | "money-bill-wave-alt" | "money-bill-wheat" | "money-bills" | "money-check" | "money-check-alt" | "money-check-dollar" | "monument" | "moon" | "mortar-board" | "mortar-pestle" | "mosque" | "mosquito" | "mosquito-net" | "motorcycle" | "mound" | "mountain" | "mountain-city" | "mountain-sun" | "mouse" | "mouse-pointer" | "mug-hot" | "mug-saucer" | "multiply" | "museum" | "music" | "n" | "naira-sign" | "navicon" | "network-wired" | "neuter" | "newspaper" | "not-equal" | "notdef" | "note-sticky" | "notes-medical" | "o" | "object-group" | "object-ungroup" | "oil-can" | "oil-well" | "om" | "otter" | "outdent" | "p" | "pager" | "paint-brush" | "paint-roller" | "paintbrush" | "palette" | "pallet" | "panorama" | "paper-plane" | "paperclip" | "parachute-box" | "paragraph" | "parking" | "passport" | "pastafarianism" | "paste" | "pause" | "pause-circle" | "paw" | "peace" | "pen" | "pen-alt" | "pen-clip" | "pen-fancy" | "pen-nib" | "pen-ruler" | "pen-square" | "pen-to-square" | "pencil" | "pencil-alt" | "pencil-ruler" | "pencil-square" | "people-arrows" | "people-arrows-left-right" | "people-carry" | "people-carry-box" | "people-group" | "people-line" | "people-pulling" | "people-robbery" | "people-roof" | "pepper-hot" | "percent" | "percentage" | "person" | "person-arrow-down-to-line" | "person-arrow-up-from-line" | "person-biking" | "person-booth" | "person-breastfeeding" | "person-burst" | "person-cane" | "person-chalkboard" | "person-circle-check" | "person-circle-exclamation" | "person-circle-minus" | "person-circle-plus" | "person-circle-question" | "person-circle-xmark" | "person-digging" | "person-dots-from-line" | "person-dress" | "person-dress-burst" | "person-drowning" | "person-falling" | "person-falling-burst" | "person-half-dress" | "person-harassing" | "person-hiking" | "person-military-pointing" | "person-military-rifle" | "person-military-to-person" | "person-praying" | "person-pregnant" | "person-rays" | "person-rifle" | "person-running" | "person-shelter" | "person-skating" | "person-skiing" | "person-skiing-nordic" | "person-snowboarding" | "person-swimming" | "person-through-window" | "person-walking" | "person-walking-arrow-loop-left" | "person-walking-arrow-right" | "person-walking-dashed-line-arrow-right" | "person-walking-luggage" | "person-walking-with-cane" | "peseta-sign" | "peso-sign" | "phone" | "phone-alt" | "phone-flip" | "phone-slash" | "phone-square" | "phone-square-alt" | "phone-volume" | "photo-film" | "photo-video" | "pie-chart" | "piggy-bank" | "pills" | "ping-pong-paddle-ball" | "pizza-slice" | "place-of-worship" | "plane" | "plane-arrival" | "plane-circle-check" | "plane-circle-exclamation" | "plane-circle-xmark" | "plane-departure" | "plane-lock" | "plane-slash" | "plane-up" | "plant-wilt" | "plate-wheat" | "play" | "play-circle" | "plug" | "plug-circle-bolt" | "plug-circle-check" | "plug-circle-exclamation" | "plug-circle-minus" | "plug-circle-plus" | "plug-circle-xmark" | "plus" | "plus-circle" | "plus-minus" | "plus-square" | "podcast" | "poll" | "poll-h" | "poo" | "poo-bolt" | "poo-storm" | "poop" | "portrait" | "pound-sign" | "power-off" | "pray" | "praying-hands" | "prescription" | "prescription-bottle" | "prescription-bottle-alt" | "prescription-bottle-medical" | "print" | "procedures" | "project-diagram" | "pump-medical" | "pump-soap" | "puzzle-piece" | "q" | "qrcode" | "question" | "question-circle" | "quidditch" | "quidditch-broom-ball" | "quote-left" | "quote-left-alt" | "quote-right" | "quote-right-alt" | "quran" | "r" | "radiation" | "radiation-alt" | "radio" | "rainbow" | "random" | "ranking-star" | "receipt" | "record-vinyl" | "rectangle-ad" | "rectangle-list" | "rectangle-times" | "rectangle-xmark" | "recycle" | "redo" | "redo-alt" | "refresh" | "registered" | "remove" | "remove-format" | "reorder" | "repeat" | "reply" | "reply-all" | "republican" | "restroom" | "retweet" | "ribbon" | "right-from-bracket" | "right-left" | "right-long" | "right-to-bracket" | "ring" | "rmb" | "road" | "road-barrier" | "road-bridge" | "road-circle-check" | "road-circle-exclamation" | "road-circle-xmark" | "road-lock" | "road-spikes" | "robot" | "rocket" | "rod-asclepius" | "rod-snake" | "rotate" | "rotate-back" | "rotate-backward" | "rotate-forward" | "rotate-left" | "rotate-right" | "rouble" | "route" | "rss" | "rss-square" | "rub" | "ruble" | "ruble-sign" | "rug" | "ruler" | "ruler-combined" | "ruler-horizontal" | "ruler-vertical" | "running" | "rupee" | "rupee-sign" | "rupiah-sign" | "s" | "sack-dollar" | "sack-xmark" | "sad-cry" | "sad-tear" | "sailboat" | "satellite" | "satellite-dish" | "save" | "scale-balanced" | "scale-unbalanced" | "scale-unbalanced-flip" | "school" | "school-circle-check" | "school-circle-exclamation" | "school-circle-xmark" | "school-flag" | "school-lock" | "scissors" | "screwdriver" | "screwdriver-wrench" | "scroll" | "scroll-torah" | "sd-card" | "search" | "search-dollar" | "search-location" | "search-minus" | "search-plus" | "section" | "seedling" | "server" | "shapes" | "share" | "share-alt" | "share-alt-square" | "share-from-square" | "share-nodes" | "share-square" | "sheet-plastic" | "shekel" | "shekel-sign" | "sheqel" | "sheqel-sign" | "shield" | "shield-alt" | "shield-blank" | "shield-cat" | "shield-dog" | "shield-halved" | "shield-heart" | "shield-virus" | "ship" | "shipping-fast" | "shirt" | "shoe-prints" | "shop" | "shop-lock" | "shop-slash" | "shopping-bag" | "shopping-basket" | "shopping-cart" | "shower" | "shrimp" | "shuffle" | "shuttle-space" | "shuttle-van" | "sign" | "sign-hanging" | "sign-in" | "sign-in-alt" | "sign-language" | "sign-out" | "sign-out-alt" | "signal" | "signal-5" | "signal-perfect" | "signature" | "signing" | "signs-post" | "sim-card" | "sink" | "sitemap" | "skating" | "skiing" | "skiing-nordic" | "skull" | "skull-crossbones" | "slash" | "sleigh" | "sliders" | "sliders-h" | "smile" | "smile-beam" | "smile-wink" | "smog" | "smoking" | "smoking-ban" | "sms" | "snowboarding" | "snowflake" | "snowman" | "snowplow" | "soap" | "soccer-ball" | "socks" | "solar-panel" | "sort" | "sort-alpha-asc" | "sort-alpha-desc" | "sort-alpha-down" | "sort-alpha-down-alt" | "sort-alpha-up" | "sort-alpha-up-alt" | "sort-amount-asc" | "sort-amount-desc" | "sort-amount-down" | "sort-amount-down-alt" | "sort-amount-up" | "sort-amount-up-alt" | "sort-asc" | "sort-desc" | "sort-down" | "sort-numeric-asc" | "sort-numeric-desc" | "sort-numeric-down" | "sort-numeric-down-alt" | "sort-numeric-up" | "sort-numeric-up-alt" | "sort-up" | "spa" | "space-shuttle" | "spaghetti-monster-flying" | "spell-check" | "spider" | "spinner" | "splotch" | "spoon" | "spray-can" | "spray-can-sparkles" | "sprout" | "square" | "square-arrow-up-right" | "square-binary" | "square-caret-down" | "square-caret-left" | "square-caret-right" | "square-caret-up" | "square-check" | "square-envelope" | "square-full" | "square-h" | "square-minus" | "square-nfi" | "square-parking" | "square-pen" | "square-person-confined" | "square-phone" | "square-phone-flip" | "square-plus" | "square-poll-horizontal" | "square-poll-vertical" | "square-root-alt" | "square-root-variable" | "square-rss" | "square-share-nodes" | "square-up-right" | "square-virus" | "square-xmark" | "staff-aesculapius" | "staff-snake" | "stairs" | "stamp" | "stapler" | "star" | "star-and-crescent" | "star-half" | "star-half-alt" | "star-half-stroke" | "star-of-david" | "star-of-life" | "step-backward" | "step-forward" | "sterling-sign" | "stethoscope" | "sticky-note" | "stop" | "stop-circle" | "stopwatch" | "stopwatch-20" | "store" | "store-alt" | "store-alt-slash" | "store-slash" | "stream" | "street-view" | "strikethrough" | "stroopwafel" | "subscript" | "subtract" | "subway" | "suitcase" | "suitcase-medical" | "suitcase-rolling" | "sun" | "sun-plant-wilt" | "superscript" | "surprise" | "swatchbook" | "swimmer" | "swimming-pool" | "synagogue" | "sync" | "sync-alt" | "syringe" | "t" | "t-shirt" | "table" | "table-cells" | "table-cells-column-lock" | "table-cells-large" | "table-cells-row-lock" | "table-cells-row-unlock" | "table-columns" | "table-list" | "table-tennis" | "table-tennis-paddle-ball" | "tablet" | "tablet-alt" | "tablet-android" | "tablet-button" | "tablet-screen-button" | "tablets" | "tachograph-digital" | "tachometer" | "tachometer-alt" | "tachometer-alt-average" | "tachometer-alt-fast" | "tachometer-average" | "tachometer-fast" | "tag" | "tags" | "tanakh" | "tape" | "tarp" | "tarp-droplet" | "tasks" | "tasks-alt" | "taxi" | "teeth" | "teeth-open" | "teletype" | "television" | "temperature-0" | "temperature-1" | "temperature-2" | "temperature-3" | "temperature-4" | "temperature-arrow-down" | "temperature-arrow-up" | "temperature-down" | "temperature-empty" | "temperature-full" | "temperature-half" | "temperature-high" | "temperature-low" | "temperature-quarter" | "temperature-three-quarters" | "temperature-up" | "tenge" | "tenge-sign" | "tent" | "tent-arrow-down-to-line" | "tent-arrow-left-right" | "tent-arrow-turn-left" | "tent-arrows-down" | "tents" | "terminal" | "text-height" | "text-slash" | "text-width" | "th" | "th-large" | "th-list" | "theater-masks" | "thermometer" | "thermometer-0" | "thermometer-1" | "thermometer-2" | "thermometer-3" | "thermometer-4" | "thermometer-empty" | "thermometer-full" | "thermometer-half" | "thermometer-quarter" | "thermometer-three-quarters" | "thumb-tack" | "thumb-tack-slash" | "thumbs-down" | "thumbs-up" | "thumbtack" | "thumbtack-slash" | "thunderstorm" | "ticket" | "ticket-alt" | "ticket-simple" | "timeline" | "times" | "times-circle" | "times-rectangle" | "times-square" | "tint" | "tint-slash" | "tired" | "toggle-off" | "toggle-on" | "toilet" | "toilet-paper" | "toilet-paper-slash" | "toilet-portable" | "toilets-portable" | "toolbox" | "tools" | "tooth" | "torah" | "torii-gate" | "tornado" | "tower-broadcast" | "tower-cell" | "tower-observation" | "tractor" | "trademark" | "traffic-light" | "trailer" | "train" | "train-subway" | "train-tram" | "tram" | "transgender" | "transgender-alt" | "trash" | "trash-alt" | "trash-arrow-up" | "trash-can" | "trash-can-arrow-up" | "trash-restore" | "trash-restore-alt" | "tree" | "tree-city" | "triangle-circle-square" | "triangle-exclamation" | "trophy" | "trowel" | "trowel-bricks" | "truck" | "truck-arrow-right" | "truck-droplet" | "truck-fast" | "truck-field" | "truck-field-un" | "truck-front" | "truck-loading" | "truck-medical" | "truck-monster" | "truck-moving" | "truck-pickup" | "truck-plane" | "truck-ramp-box" | "try" | "tshirt" | "tty" | "turkish-lira" | "turkish-lira-sign" | "turn-down" | "turn-up" | "tv" | "tv-alt" | "u" | "umbrella" | "umbrella-beach" | "underline" | "undo" | "undo-alt" | "universal-access" | "university" | "unlink" | "unlock" | "unlock-alt" | "unlock-keyhole" | "unsorted" | "up-down" | "up-down-left-right" | "up-long" | "up-right-and-down-left-from-center" | "up-right-from-square" | "upload" | "usd" | "user" | "user-alt" | "user-alt-slash" | "user-astronaut" | "user-check" | "user-circle" | "user-clock" | "user-cog" | "user-doctor" | "user-edit" | "user-friends" | "user-gear" | "user-graduate" | "user-group" | "user-injured" | "user-large" | "user-large-slash" | "user-lock" | "user-md" | "user-minus" | "user-ninja" | "user-nurse" | "user-pen" | "user-plus" | "user-secret" | "user-shield" | "user-slash" | "user-tag" | "user-tie" | "user-times" | "user-xmark" | "users" | "users-between-lines" | "users-cog" | "users-gear" | "users-line" | "users-rays" | "users-rectangle" | "users-slash" | "users-viewfinder" | "utensil-spoon" | "utensils" | "v" | "van-shuttle" | "vault" | "vcard" | "vector-square" | "venus" | "venus-double" | "venus-mars" | "vest" | "vest-patches" | "vial" | "vial-circle-check" | "vial-virus" | "vials" | "video" | "video-camera" | "video-slash" | "vihara" | "virus" | "virus-covid" | "virus-covid-slash" | "virus-slash" | "viruses" | "voicemail" | "volcano" | "volleyball" | "volleyball-ball" | "volume-control-phone" | "volume-down" | "volume-high" | "volume-low" | "volume-mute" | "volume-off" | "volume-times" | "volume-up" | "volume-xmark" | "vote-yea" | "vr-cardboard" | "w" | "walkie-talkie" | "walking" | "wallet" | "wand-magic" | "wand-magic-sparkles" | "wand-sparkles" | "warehouse" | "warning" | "water" | "water-ladder" | "wave-square" | "web-awesome" | "weight" | "weight-hanging" | "weight-scale" | "wheat-alt" | "wheat-awn" | "wheat-awn-circle-exclamation" | "wheelchair" | "wheelchair-alt" | "wheelchair-move" | "whiskey-glass" | "wifi" | "wifi-3" | "wifi-strong" | "wind" | "window-close" | "window-maximize" | "window-minimize" | "window-restore" | "wine-bottle" | "wine-glass" | "wine-glass-alt" | "wine-glass-empty" | "won" | "won-sign" | "worm" | "wrench" | "x" | "x-ray" | "xmark" | "xmark-circle" | "xmark-square" | "xmarks-lines" | "y" | "yen" | "yen-sign" | "yin-yang" | "z" | "zap";
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Aoa, Separator } from "./types";
|
|
2
|
+
import type { DataItem } from "../../data";
|
|
3
|
+
export declare function useAoa(separator?: Separator): {
|
|
4
|
+
fromText: (text: string) => Aoa;
|
|
5
|
+
toText: (aoa: Aoa) => string;
|
|
6
|
+
toPlain: (aoa: Aoa, withHeader?: boolean) => {
|
|
7
|
+
columns: any;
|
|
8
|
+
data: DataItem[];
|
|
9
|
+
};
|
|
10
|
+
};
|