@aptre/flex-layout 0.1.0

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.
Files changed (115) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +527 -0
  3. package/declarations/Attribute.d.ts +1 -0
  4. package/declarations/AttributeDefinitions.d.ts +1 -0
  5. package/declarations/DockLocation.d.ts +12 -0
  6. package/declarations/DragDrop.d.ts +15 -0
  7. package/declarations/DropInfo.d.ts +12 -0
  8. package/declarations/I18nLabel.d.ts +14 -0
  9. package/declarations/Orientation.d.ts +7 -0
  10. package/declarations/PopupMenu.d.ts +1 -0
  11. package/declarations/Rect.d.ts +28 -0
  12. package/declarations/Types.d.ts +78 -0
  13. package/declarations/index.d.ts +22 -0
  14. package/declarations/model/Action.d.ts +5 -0
  15. package/declarations/model/Actions.d.ts +110 -0
  16. package/declarations/model/BorderNode.d.ts +34 -0
  17. package/declarations/model/BorderSet.d.ts +4 -0
  18. package/declarations/model/ICloseType.d.ts +5 -0
  19. package/declarations/model/IDraggable.d.ts +2 -0
  20. package/declarations/model/IDropTarget.d.ts +2 -0
  21. package/declarations/model/IJsonModel.d.ts +146 -0
  22. package/declarations/model/Model.d.ts +86 -0
  23. package/declarations/model/Node.d.ts +17 -0
  24. package/declarations/model/RowNode.d.ts +11 -0
  25. package/declarations/model/SplitterNode.d.ts +5 -0
  26. package/declarations/model/TabNode.d.ts +36 -0
  27. package/declarations/model/TabSetNode.d.ts +40 -0
  28. package/declarations/model/Utils.d.ts +1 -0
  29. package/declarations/view/BorderButton.d.ts +1 -0
  30. package/declarations/view/BorderTabSet.d.ts +1 -0
  31. package/declarations/view/ErrorBoundary.d.ts +1 -0
  32. package/declarations/view/FloatingWindow.d.ts +1 -0
  33. package/declarations/view/FloatingWindowTab.d.ts +1 -0
  34. package/declarations/view/Icons.d.ts +6 -0
  35. package/declarations/view/Layout.d.ts +158 -0
  36. package/declarations/view/Splitter.d.ts +1 -0
  37. package/declarations/view/Tab.d.ts +1 -0
  38. package/declarations/view/TabButton.d.ts +1 -0
  39. package/declarations/view/TabButtonStamp.d.ts +1 -0
  40. package/declarations/view/TabFloating.d.ts +1 -0
  41. package/declarations/view/TabOverflowHook.d.ts +1 -0
  42. package/declarations/view/TabSet.d.ts +1 -0
  43. package/declarations/view/Utils.d.ts +1 -0
  44. package/dist/index.js +5669 -0
  45. package/package.json +73 -0
  46. package/style/_base.scss +631 -0
  47. package/style/dark.css +560 -0
  48. package/style/dark.css.map +1 -0
  49. package/style/dark.scss +173 -0
  50. package/style/gray.css +543 -0
  51. package/style/gray.css.map +1 -0
  52. package/style/gray.scss +172 -0
  53. package/style/light.css +544 -0
  54. package/style/light.css.map +1 -0
  55. package/style/light.scss +156 -0
  56. package/style/underline.css +565 -0
  57. package/style/underline.css.map +1 -0
  58. package/style/underline.scss +178 -0
  59. package/tsconfig.json +18 -0
  60. package/typedoc/.nojekyll +1 -0
  61. package/typedoc/assets/highlight.css +106 -0
  62. package/typedoc/assets/main.js +58 -0
  63. package/typedoc/assets/search.js +1 -0
  64. package/typedoc/assets/style.css +1338 -0
  65. package/typedoc/classes/Action.html +134 -0
  66. package/typedoc/classes/Actions.html +499 -0
  67. package/typedoc/classes/BorderNode.html +374 -0
  68. package/typedoc/classes/BorderSet.html +112 -0
  69. package/typedoc/classes/DockLocation.html +163 -0
  70. package/typedoc/classes/DragDrop.html +242 -0
  71. package/typedoc/classes/DropInfo.html +155 -0
  72. package/typedoc/classes/Layout.html +600 -0
  73. package/typedoc/classes/Model.html +396 -0
  74. package/typedoc/classes/Node.html +221 -0
  75. package/typedoc/classes/Orientation.html +148 -0
  76. package/typedoc/classes/Rect.html +312 -0
  77. package/typedoc/classes/RowNode.html +275 -0
  78. package/typedoc/classes/SplitterNode.html +238 -0
  79. package/typedoc/classes/TabNode.html +389 -0
  80. package/typedoc/classes/TabSetNode.html +453 -0
  81. package/typedoc/enums/CLASSES.html +480 -0
  82. package/typedoc/enums/I18nLabel.html +160 -0
  83. package/typedoc/enums/ICloseType.html +115 -0
  84. package/typedoc/index.html +148 -0
  85. package/typedoc/interfaces/IBorderAttributes.html +166 -0
  86. package/typedoc/interfaces/ICustomDropDestination.html +149 -0
  87. package/typedoc/interfaces/IDraggable.html +95 -0
  88. package/typedoc/interfaces/IDropTarget.html +96 -0
  89. package/typedoc/interfaces/IFontValues.html +124 -0
  90. package/typedoc/interfaces/IGlobalAttributes.html +329 -0
  91. package/typedoc/interfaces/IIcons.html +134 -0
  92. package/typedoc/interfaces/IJsonBorderNode.html +188 -0
  93. package/typedoc/interfaces/IJsonModel.html +119 -0
  94. package/typedoc/interfaces/IJsonRowNode.html +141 -0
  95. package/typedoc/interfaces/IJsonTabNode.html +220 -0
  96. package/typedoc/interfaces/IJsonTabSetNode.html +273 -0
  97. package/typedoc/interfaces/ILayoutProps.html +365 -0
  98. package/typedoc/interfaces/ILayoutState.html +144 -0
  99. package/typedoc/interfaces/IRowAttributes.html +131 -0
  100. package/typedoc/interfaces/ITabAttributes.html +201 -0
  101. package/typedoc/interfaces/ITabRenderValues.html +124 -0
  102. package/typedoc/interfaces/ITabSetAttributes.html +241 -0
  103. package/typedoc/interfaces/ITabSetRenderValues.html +134 -0
  104. package/typedoc/interfaces/ITitleObject.html +114 -0
  105. package/typedoc/types/CustomDragCallback.html +108 -0
  106. package/typedoc/types/DragRectRenderCallback.html +104 -0
  107. package/typedoc/types/FloatingTabPlaceholderRenderCallback.html +114 -0
  108. package/typedoc/types/IBorderLocation.html +87 -0
  109. package/typedoc/types/IInsets.html +98 -0
  110. package/typedoc/types/ITabLocation.html +87 -0
  111. package/typedoc/types/IconFactory.html +100 -0
  112. package/typedoc/types/NodeMouseEvent.html +102 -0
  113. package/typedoc/types/ShowOverflowMenuCallback.html +122 -0
  114. package/typedoc/types/TabSetPlaceHolderCallback.html +100 -0
  115. package/typedoc/types/TitleFactory.html +100 -0
@@ -0,0 +1,158 @@
1
+ import * as React from "react";
2
+ import { DockLocation } from "../DockLocation";
3
+ import { I18nLabel } from "../I18nLabel";
4
+ import { Action } from "../model/Action";
5
+ import { BorderNode } from "../model/BorderNode";
6
+ import { Model } from "../model/Model";
7
+ import { Node } from "../model/Node";
8
+ import { TabNode } from "../model/TabNode";
9
+ import { TabSetNode } from "../model/TabSetNode";
10
+ import { Rect } from "../Rect";
11
+ import { IJsonTabNode } from "../model/IJsonModel";
12
+ export type CustomDragCallback = (dragging: TabNode | IJsonTabNode, over: TabNode, x: number, y: number, location: DockLocation) => void;
13
+ export type DragRectRenderCallback = (content: React.ReactElement | undefined, node?: Node, json?: IJsonTabNode) => React.ReactElement | undefined;
14
+ export type FloatingTabPlaceholderRenderCallback = (dockPopout: () => void, showPopout: () => void) => React.ReactElement | undefined;
15
+ export type NodeMouseEvent = (node: TabNode | TabSetNode | BorderNode, event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
16
+ export type ShowOverflowMenuCallback = (node: TabSetNode | BorderNode, mouseEvent: React.MouseEvent<HTMLElement, MouseEvent>, items: {
17
+ index: number;
18
+ node: TabNode;
19
+ }[], onSelect: (item: {
20
+ index: number;
21
+ node: TabNode;
22
+ }) => void) => void;
23
+ export type TabSetPlaceHolderCallback = (node: TabSetNode) => React.ReactNode;
24
+ export type IconFactory = (node: TabNode) => React.ReactNode;
25
+ export type TitleFactory = (node: TabNode) => ITitleObject | React.ReactNode;
26
+ export interface ILayoutProps {
27
+ model: Model;
28
+ factory: (node: TabNode) => React.ReactNode;
29
+ font?: IFontValues;
30
+ fontFamily?: string;
31
+ iconFactory?: IconFactory;
32
+ titleFactory?: TitleFactory;
33
+ icons?: IIcons;
34
+ onAction?: (action: Action) => Action | undefined;
35
+ onRenderTab?: (node: TabNode, renderValues: ITabRenderValues) => void;
36
+ onRenderTabSet?: (tabSetNode: TabSetNode | BorderNode, renderValues: ITabSetRenderValues) => void;
37
+ onModelChange?: (model: Model, action: Action) => void;
38
+ onExternalDrag?: (event: React.DragEvent<HTMLDivElement>) => undefined | {
39
+ dragText: string;
40
+ json: any;
41
+ onDrop?: (node?: Node, event?: Event) => void;
42
+ };
43
+ classNameMapper?: (defaultClassName: string) => string;
44
+ i18nMapper?: (id: I18nLabel, param?: string) => string | undefined;
45
+ supportsPopout?: boolean | undefined;
46
+ popoutURL?: string | undefined;
47
+ realtimeResize?: boolean | undefined;
48
+ onTabDrag?: (dragging: TabNode | IJsonTabNode, over: TabNode, x: number, y: number, location: DockLocation, refresh: () => void) => undefined | {
49
+ x: number;
50
+ y: number;
51
+ width: number;
52
+ height: number;
53
+ callback: CustomDragCallback;
54
+ invalidated?: () => void;
55
+ cursor?: string | undefined;
56
+ };
57
+ onRenderDragRect?: DragRectRenderCallback;
58
+ onRenderFloatingTabPlaceholder?: FloatingTabPlaceholderRenderCallback;
59
+ onContextMenu?: NodeMouseEvent;
60
+ onAuxMouseClick?: NodeMouseEvent;
61
+ onShowOverflowMenu?: ShowOverflowMenuCallback;
62
+ onTabSetPlaceHolder?: TabSetPlaceHolderCallback;
63
+ }
64
+ export interface IFontValues {
65
+ size?: string;
66
+ family?: string;
67
+ style?: string;
68
+ weight?: string;
69
+ }
70
+ export interface ITabSetRenderValues {
71
+ headerContent?: React.ReactNode;
72
+ centerContent?: React.ReactNode;
73
+ stickyButtons: React.ReactNode[];
74
+ buttons: React.ReactNode[];
75
+ headerButtons: React.ReactNode[];
76
+ overflowPosition: number | undefined;
77
+ }
78
+ export interface ITabRenderValues {
79
+ leading: React.ReactNode;
80
+ content: React.ReactNode;
81
+ name: string;
82
+ buttons: React.ReactNode[];
83
+ }
84
+ export interface ITitleObject {
85
+ titleContent: React.ReactNode;
86
+ name: string;
87
+ }
88
+ export interface ILayoutState {
89
+ rect: Rect;
90
+ calculatedHeaderBarSize: number;
91
+ calculatedTabBarSize: number;
92
+ calculatedBorderBarSize: number;
93
+ editingTab?: TabNode;
94
+ showHiddenBorder: DockLocation;
95
+ portal?: React.ReactPortal;
96
+ showEdges?: boolean;
97
+ }
98
+ export interface IIcons {
99
+ close?: (React.ReactNode | ((tabNode: TabNode) => React.ReactNode));
100
+ closeTabset?: (React.ReactNode | ((tabSetNode: TabSetNode) => React.ReactNode));
101
+ popout?: (React.ReactNode | ((tabNode: TabNode) => React.ReactNode));
102
+ maximize?: (React.ReactNode | ((tabSetNode: TabSetNode) => React.ReactNode));
103
+ restore?: (React.ReactNode | ((tabSetNode: TabSetNode) => React.ReactNode));
104
+ more?: (React.ReactNode | ((tabSetNode: (TabSetNode | BorderNode), hiddenTabs: {
105
+ node: TabNode;
106
+ index: number;
107
+ }[]) => React.ReactNode));
108
+ }
109
+ export interface ICustomDropDestination {
110
+ rect: Rect;
111
+ callback: CustomDragCallback;
112
+ invalidated: (() => void) | undefined;
113
+ dragging: TabNode | IJsonTabNode;
114
+ over: TabNode;
115
+ x: number;
116
+ y: number;
117
+ location: DockLocation;
118
+ cursor: string | undefined;
119
+ }
120
+ /**
121
+ * A React component that hosts a multi-tabbed layout
122
+ */
123
+ export declare class Layout extends React.Component<ILayoutProps, ILayoutState> {
124
+ constructor(props: ILayoutProps);
125
+ /**
126
+ * Adds a new tab to the given tabset
127
+ * @param tabsetId the id of the tabset where the new tab will be added
128
+ * @param json the json for the new tab node
129
+ */
130
+ addTabToTabSet(tabsetId: string, json: IJsonTabNode): void;
131
+ /**
132
+ * Adds a new tab to the active tabset (if there is one)
133
+ * @param json the json for the new tab node
134
+ */
135
+ addTabToActiveTabSet(json: IJsonTabNode): void;
136
+ /**
137
+ * Adds a new tab by dragging a labeled panel to the drop location, dragging starts immediatelly
138
+ * @param dragText the text to show on the drag panel
139
+ * @param json the json for the new tab node
140
+ * @param onDrop a callback to call when the drag is complete (node and event will be undefined if the drag was cancelled)
141
+ */
142
+ addTabWithDragAndDrop(dragText: string | undefined, json: IJsonTabNode, onDrop?: (node?: Node, event?: Event) => void): void;
143
+ /**
144
+ * Move a tab/tabset using drag and drop
145
+ * @param node the tab or tabset to drag
146
+ * @param dragText the text to show on the drag panel
147
+ */
148
+ moveTabWithDragAndDrop(node: (TabNode | TabSetNode), dragText?: string): void;
149
+ /**
150
+ * Adds a new tab by dragging a labeled panel to the drop location, dragging starts when you
151
+ * mouse down on the panel
152
+ *
153
+ * @param dragText the text to show on the drag panel
154
+ * @param json the json for the new tab node
155
+ * @param onDrop a callback to call when the drag is complete (node and event will be undefined if the drag was cancelled)
156
+ */
157
+ addTabWithDragAndDropIndirect(dragText: string | undefined, json: IJsonTabNode, onDrop?: (node?: Node, event?: Event) => void): void;
158
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};