@hpcc-js/phosphor 2.20.3 → 2.20.4

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.
@@ -1,200 +1,200 @@
1
- import { Widget } from "@hpcc-js/common";
2
- // import { Persist } from "@hpcc-js/other";
3
- import { ConflatableMessage, Message, MessageLoop, Widget as PWidget } from "@hpcc-js/phosphor-shim";
4
- import { select as d3Select } from "d3-selection";
5
-
6
- import "../src/WidgetAdapter.css";
7
-
8
- export namespace Msg {
9
-
10
- export class WAConflatableMessage extends ConflatableMessage {
11
- private _wa: WidgetAdapter;
12
-
13
- constructor(wa: WidgetAdapter, msg: string) {
14
- super(msg);
15
- this._wa = wa;
16
- }
17
-
18
- get wa(): WidgetAdapter {
19
- return this._wa;
20
- }
21
-
22
- conflate(other: WAConflatableMessage): boolean {
23
- this._wa = other.wa;
24
- return true;
25
- }
26
- }
27
-
28
- export class WAActivateRequest extends WAConflatableMessage {
29
-
30
- static type = "wa-activate-request";
31
-
32
- constructor(wa: WidgetAdapter) {
33
- super(wa, WAActivateRequest.type);
34
- }
35
- }
36
-
37
- export class WALayoutChanged extends WAConflatableMessage {
38
-
39
- static type = "wa-layout-changed";
40
-
41
- constructor(wa: WidgetAdapter) {
42
- super(wa, WALayoutChanged.type);
43
- }
44
- }
45
- }
46
-
47
- export interface IClosable {
48
- canClose(e: Widget, wa: WidgetAdapter): boolean;
49
- }
50
-
51
- export interface WidgetAdapterExt {
52
- overflowX?: string;
53
- overflowY?: string;
54
- }
55
-
56
- export class WidgetAdapter extends PWidget {
57
- protected _owner;
58
- protected _element;
59
- private _widget: Widget;
60
- get widget(): Widget { return this._widget; }
61
- private _widgetLayout: object;
62
- lparam: any = {};
63
- padding: number = 0;
64
- _width: number = 0;
65
- _height: number = 0;
66
- _ext: WidgetAdapterExt;
67
- private _closable: IClosable;
68
-
69
- constructor(owner?: Widget, widget?: Widget | object, lparam: object = {}, closable: boolean | IClosable = false, ext: WidgetAdapterExt = {}) {
70
- super();
71
- this._owner = owner;
72
- this._element = d3Select(this.node);
73
- // this.setFlag(Widget.Flag.DisallowLayout);
74
- this.addClass("phosphor_WidgetAdapter");
75
- // this.addClass(name.toLowerCase());
76
- this.title.label = "";
77
- this.title.closable = !!closable;
78
- this.title.caption = `Long description for: ${name}`;
79
- this._ext = ext;
80
-
81
- if (typeof closable === "boolean") {
82
- this._closable = {
83
- canClose(e: Widget, wa: WidgetAdapter): boolean { return closable; }
84
- };
85
- } else {
86
- this._closable = closable;
87
- }
88
-
89
- if (widget instanceof Widget) {
90
- this._widget = widget
91
- .target(this.node)
92
- ;
93
- } else {
94
- this._widgetLayout = widget;
95
- }
96
- this.lparam = lparam;
97
- }
98
-
99
- get inputNode(): HTMLInputElement {
100
- return this.node.getElementsByTagName("input")[0] as HTMLInputElement;
101
- }
102
-
103
- resizeAndRender() {
104
- if (this._widget) {
105
- d3Select(this.node)
106
- .style("padding", this.padding + "px")
107
- .style("width", this._width + "px")
108
- .style("height", this._height + "px")
109
- .style("overflow-x", this._ext.overflowX)
110
- .style("overflow-y", this._ext.overflowY)
111
- ;
112
- this._widget
113
- .resize({ width: this._width - this.padding * 2 - 2, height: this._height - this.padding * 2 - 2 })
114
- .lazyRender()
115
- ;
116
- if (this._owner) {
117
- MessageLoop.postMessage(this._owner, new Msg.WALayoutChanged(this));
118
- }
119
- }
120
- }
121
-
122
- protected onActivateRequest(msg: Message): void {
123
- super.onActivateRequest(msg);
124
- if (this._widget) {
125
- this.resizeAndRender();
126
- }
127
- if (this._owner) {
128
- MessageLoop.postMessage(this._owner, new Msg.WAActivateRequest(this));
129
- }
130
- }
131
-
132
- protected onResize(msg: PWidget.ResizeMessage): void {
133
- super.onResize(msg);
134
- if (this.node && this.node.offsetParent !== null && msg.width >= 0 && msg.height >= 0) {
135
- this._width = msg.width;
136
- this._height = msg.height;
137
- this.resizeAndRender();
138
- } else if (this._widgetLayout) {
139
- /*
140
- Persist.create(this._widgetLayout).then((widget: Widget) => {
141
- delete this._widgetLayout;
142
- this._widget = widget;
143
- this._widget
144
- .target(this.node)
145
- .resize({ width: msg.width - this.padding * 2 - 2, height: msg.height - this.padding * 2 - 2 })
146
- .lazyRender()
147
- ;
148
- if (this._widget["title"]) {
149
- this.title.label = this._widget["title"]();
150
- }
151
- });
152
- */
153
- }
154
- }
155
-
156
- protected onCloseRequest(msg: Message): void {
157
- if (this._closable.canClose(this._widget, this)) {
158
- this.dispose();
159
- }
160
- }
161
- }
162
-
163
- export class WidgetAdapterArray extends Array<WidgetAdapter> {
164
-
165
- private constructor(items?: WidgetAdapter[]) {
166
- super(...items);
167
- }
168
-
169
- static create<WidgetAdapter>(): WidgetAdapterArray {
170
- return Object.create(WidgetAdapterArray.prototype);
171
- }
172
-
173
- watchRendered(w: Widget, callback?: (w: Widget) => void) {
174
- if (!callback) return;
175
-
176
- const content = this.map(wa => {
177
- return {
178
- wa,
179
- w: wa.widget,
180
- rc: wa.widget.renderCount()
181
- };
182
- });
183
-
184
- const intervalHandle = setInterval(() => {
185
- if (complete()) {
186
- clearInterval(intervalHandle);
187
- callback(w);
188
- }
189
- }, 20);
190
-
191
- function complete(): boolean {
192
- for (const item of content) {
193
- if (item.wa.isVisible && item.rc >= item.w.renderCount()) {
194
- return false;
195
- }
196
- }
197
- return true;
198
- }
199
- }
200
- }
1
+ import { Widget } from "@hpcc-js/common";
2
+ // import { Persist } from "@hpcc-js/other";
3
+ import { ConflatableMessage, Message, MessageLoop, Widget as PWidget } from "@hpcc-js/phosphor-shim";
4
+ import { select as d3Select } from "d3-selection";
5
+
6
+ import "../src/WidgetAdapter.css";
7
+
8
+ export namespace Msg {
9
+
10
+ export class WAConflatableMessage extends ConflatableMessage {
11
+ private _wa: WidgetAdapter;
12
+
13
+ constructor(wa: WidgetAdapter, msg: string) {
14
+ super(msg);
15
+ this._wa = wa;
16
+ }
17
+
18
+ get wa(): WidgetAdapter {
19
+ return this._wa;
20
+ }
21
+
22
+ conflate(other: WAConflatableMessage): boolean {
23
+ this._wa = other.wa;
24
+ return true;
25
+ }
26
+ }
27
+
28
+ export class WAActivateRequest extends WAConflatableMessage {
29
+
30
+ static type = "wa-activate-request";
31
+
32
+ constructor(wa: WidgetAdapter) {
33
+ super(wa, WAActivateRequest.type);
34
+ }
35
+ }
36
+
37
+ export class WALayoutChanged extends WAConflatableMessage {
38
+
39
+ static type = "wa-layout-changed";
40
+
41
+ constructor(wa: WidgetAdapter) {
42
+ super(wa, WALayoutChanged.type);
43
+ }
44
+ }
45
+ }
46
+
47
+ export interface IClosable {
48
+ canClose(e: Widget, wa: WidgetAdapter): boolean;
49
+ }
50
+
51
+ export interface WidgetAdapterExt {
52
+ overflowX?: string;
53
+ overflowY?: string;
54
+ }
55
+
56
+ export class WidgetAdapter extends PWidget {
57
+ protected _owner;
58
+ protected _element;
59
+ private _widget: Widget;
60
+ get widget(): Widget { return this._widget; }
61
+ private _widgetLayout: object;
62
+ lparam: any = {};
63
+ padding: number = 0;
64
+ _width: number = 0;
65
+ _height: number = 0;
66
+ _ext: WidgetAdapterExt;
67
+ private _closable: IClosable;
68
+
69
+ constructor(owner?: Widget, widget?: Widget | object, lparam: object = {}, closable: boolean | IClosable = false, ext: WidgetAdapterExt = {}) {
70
+ super();
71
+ this._owner = owner;
72
+ this._element = d3Select(this.node);
73
+ // this.setFlag(Widget.Flag.DisallowLayout);
74
+ this.addClass("phosphor_WidgetAdapter");
75
+ // this.addClass(name.toLowerCase());
76
+ this.title.label = "";
77
+ this.title.closable = !!closable;
78
+ this.title.caption = `Long description for: ${name}`;
79
+ this._ext = ext;
80
+
81
+ if (typeof closable === "boolean") {
82
+ this._closable = {
83
+ canClose(e: Widget, wa: WidgetAdapter): boolean { return closable; }
84
+ };
85
+ } else {
86
+ this._closable = closable;
87
+ }
88
+
89
+ if (widget instanceof Widget) {
90
+ this._widget = widget
91
+ .target(this.node)
92
+ ;
93
+ } else {
94
+ this._widgetLayout = widget;
95
+ }
96
+ this.lparam = lparam;
97
+ }
98
+
99
+ get inputNode(): HTMLInputElement {
100
+ return this.node.getElementsByTagName("input")[0] as HTMLInputElement;
101
+ }
102
+
103
+ resizeAndRender() {
104
+ if (this._widget) {
105
+ d3Select(this.node)
106
+ .style("padding", this.padding + "px")
107
+ .style("width", this._width + "px")
108
+ .style("height", this._height + "px")
109
+ .style("overflow-x", this._ext.overflowX)
110
+ .style("overflow-y", this._ext.overflowY)
111
+ ;
112
+ this._widget
113
+ .resize({ width: this._width - this.padding * 2 - 2, height: this._height - this.padding * 2 - 2 })
114
+ .lazyRender()
115
+ ;
116
+ if (this._owner) {
117
+ MessageLoop.postMessage(this._owner, new Msg.WALayoutChanged(this));
118
+ }
119
+ }
120
+ }
121
+
122
+ protected onActivateRequest(msg: Message): void {
123
+ super.onActivateRequest(msg);
124
+ if (this._widget) {
125
+ this.resizeAndRender();
126
+ }
127
+ if (this._owner) {
128
+ MessageLoop.postMessage(this._owner, new Msg.WAActivateRequest(this));
129
+ }
130
+ }
131
+
132
+ protected onResize(msg: PWidget.ResizeMessage): void {
133
+ super.onResize(msg);
134
+ if (this.node && this.node.offsetParent !== null && msg.width >= 0 && msg.height >= 0) {
135
+ this._width = msg.width;
136
+ this._height = msg.height;
137
+ this.resizeAndRender();
138
+ } else if (this._widgetLayout) {
139
+ /*
140
+ Persist.create(this._widgetLayout).then((widget: Widget) => {
141
+ delete this._widgetLayout;
142
+ this._widget = widget;
143
+ this._widget
144
+ .target(this.node)
145
+ .resize({ width: msg.width - this.padding * 2 - 2, height: msg.height - this.padding * 2 - 2 })
146
+ .lazyRender()
147
+ ;
148
+ if (this._widget["title"]) {
149
+ this.title.label = this._widget["title"]();
150
+ }
151
+ });
152
+ */
153
+ }
154
+ }
155
+
156
+ protected onCloseRequest(msg: Message): void {
157
+ if (this._closable.canClose(this._widget, this)) {
158
+ this.dispose();
159
+ }
160
+ }
161
+ }
162
+
163
+ export class WidgetAdapterArray extends Array<WidgetAdapter> {
164
+
165
+ private constructor(items?: WidgetAdapter[]) {
166
+ super(...items);
167
+ }
168
+
169
+ static create<WidgetAdapter>(): WidgetAdapterArray {
170
+ return Object.create(WidgetAdapterArray.prototype);
171
+ }
172
+
173
+ watchRendered(w: Widget, callback?: (w: Widget) => void) {
174
+ if (!callback) return;
175
+
176
+ const content = this.map(wa => {
177
+ return {
178
+ wa,
179
+ w: wa.widget,
180
+ rc: wa.widget.renderCount()
181
+ };
182
+ });
183
+
184
+ const intervalHandle = setInterval(() => {
185
+ if (complete()) {
186
+ clearInterval(intervalHandle);
187
+ callback(w);
188
+ }
189
+ }, 20);
190
+
191
+ function complete(): boolean {
192
+ for (const item of content) {
193
+ if (item.wa.isVisible && item.rc >= item.w.renderCount()) {
194
+ return false;
195
+ }
196
+ }
197
+ return true;
198
+ }
199
+ }
200
+ }
@@ -1,3 +1,3 @@
1
- export const PKG_NAME = "@hpcc-js/phosphor";
2
- export const PKG_VERSION = "2.20.3";
3
- export const BUILD_VERSION = "2.108.6";
1
+ export const PKG_NAME = "@hpcc-js/phosphor";
2
+ export const PKG_VERSION = "2.20.3";
3
+ export const BUILD_VERSION = "2.108.6";
package/src/index.ts CHANGED
@@ -1,6 +1,6 @@
1
- export * from "./__package__";
2
- export { CommandPalette, CommandRegistry, ContextMenu } from "@hpcc-js/phosphor-shim";
3
- export * from "./DockPanel";
4
- export * from "./SplitPanel";
5
- export * from "./TabPanel";
6
- export * from "./WidgetAdapter";
1
+ export * from "./__package__";
2
+ export { CommandPalette, CommandRegistry, ContextMenu } from "@hpcc-js/phosphor-shim";
3
+ export * from "./DockPanel";
4
+ export * from "./SplitPanel";
5
+ export * from "./TabPanel";
6
+ export * from "./WidgetAdapter";