@workday/canvas-kit-popup-stack 11.0.17 → 11.0.19
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/commonjs/lib/PopupStack.d.ts +4 -1
- package/dist/commonjs/lib/PopupStack.d.ts.map +1 -1
- package/dist/commonjs/lib/PopupStack.js +20 -5
- package/dist/es6/lib/PopupStack.d.ts +4 -1
- package/dist/es6/lib/PopupStack.d.ts.map +1 -1
- package/dist/es6/lib/PopupStack.js +20 -5
- package/lib/PopupStack.ts +23 -4
- package/package.json +2 -2
|
@@ -34,7 +34,10 @@ export interface PopupStackItem {
|
|
|
34
34
|
export declare function getValue(index: number, length: number): number;
|
|
35
35
|
interface Stack {
|
|
36
36
|
items: PopupStackItem[];
|
|
37
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Returns the container of a stack given an optional element.
|
|
39
|
+
*/
|
|
40
|
+
container?: (element?: HTMLElement) => HTMLElement;
|
|
38
41
|
zIndex: {
|
|
39
42
|
min: number;
|
|
40
43
|
max: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopupStack.d.ts","sourceRoot":"","sources":["../../../lib/PopupStack.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC;IACrB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AASD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO9D;AA2CD,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"PopupStack.d.ts","sourceRoot":"","sources":["../../../lib/PopupStack.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC;IACrB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AASD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO9D;AA2CD,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,WAAW,CAAC;IACnD,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,OAAO,QAAQ,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC,OAAO,UAAU,CAAC,CAAC;CACtC;AAuGD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU;IACrB;;;;;OAKG;uBACgB,WAAW;IAS9B;;;;;OAKG;cACO,cAAc,GAAG,IAAI;IAY/B;;;;;;OAMG;oBACa,WAAW,GAAG,IAAI;IAgBlC;;;;OAIG;uBACgB,WAAW,GAAG,OAAO;IAaxC;;;;OAIG;oDACiC,WAAW,EAAE;IAQjD;;;;;;;;;;;OAWG;wBACiB,WAAW,GAAG,IAAI;IA6BtC;;;;;;;;;;OAUG;sBACe,WAAW,eAAe,WAAW,GAAG,OAAO;IA2BjE;;;;;;OAMG;gCACyB,WAAW,GAAG,IAAI;IAoB9C;;;;OAIG;+BACwB,WAAW,GAAG,IAAI;IAY7C;;;;;;;;;;;;;;OAcG;mCAC4B,cAAc,GAAG,IAAI;CAqBrD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,UAAU,SAEzB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,YAAa,QAAQ,iBAAiB,CAAC,SAEhE,CAAC"}
|
|
@@ -123,12 +123,26 @@ const setToWindow = (path, value) => {
|
|
|
123
123
|
set(window, path, value);
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
|
+
/**
|
|
127
|
+
* TODO: Remove this after v12 and use `stack.container(el)` directly. This is temporary to make
|
|
128
|
+
* sure Popups can open in new windows while supporting older versions of Canvas Kit AND full screen
|
|
129
|
+
* mode.
|
|
130
|
+
*/
|
|
131
|
+
const getContainer = (stack, element) => {
|
|
132
|
+
var _a;
|
|
133
|
+
let stackContainer = (_a = stack.container) === null || _a === void 0 ? void 0 : _a.call(stack);
|
|
134
|
+
if (stackContainer === document.body) {
|
|
135
|
+
// Here's the transitory code
|
|
136
|
+
stackContainer = element === null || element === void 0 ? void 0 : element.ownerDocument.body;
|
|
137
|
+
}
|
|
138
|
+
return stackContainer || document.body;
|
|
139
|
+
};
|
|
126
140
|
// We need to make sure only one stack is ever in use on the page - ever. If a stack is already
|
|
127
141
|
// defined on the page, we need to use that one. Never, ever, ever change this variable name on
|
|
128
142
|
// window
|
|
129
143
|
const stack = getFromWindow('workday.__popupStack') || {
|
|
130
144
|
description: 'Global popup stack from @workday/canvas-kit/popup-stack',
|
|
131
|
-
container: ()
|
|
145
|
+
container: el => (el === null || el === void 0 ? void 0 : el.ownerDocument.body) || document.body,
|
|
132
146
|
items: [],
|
|
133
147
|
zIndex: { min: 30, max: 50, getValue: getValue },
|
|
134
148
|
_adapter: {},
|
|
@@ -182,14 +196,14 @@ exports.PopupStack = {
|
|
|
182
196
|
* method when the event triggers.
|
|
183
197
|
*/
|
|
184
198
|
add(item) {
|
|
185
|
-
var _a
|
|
199
|
+
var _a;
|
|
186
200
|
const stack = getTopStack();
|
|
187
201
|
if ((_a = stack._adapter) === null || _a === void 0 ? void 0 : _a.add) {
|
|
188
202
|
stack._adapter.add(item);
|
|
189
203
|
return;
|
|
190
204
|
}
|
|
191
205
|
stack.items.push(item);
|
|
192
|
-
(
|
|
206
|
+
getContainer(stack, item.owner).appendChild(item.element);
|
|
193
207
|
setZIndexOfElements(exports.PopupStack.getElements());
|
|
194
208
|
},
|
|
195
209
|
/**
|
|
@@ -200,7 +214,7 @@ exports.PopupStack = {
|
|
|
200
214
|
* stack.
|
|
201
215
|
*/
|
|
202
216
|
remove(element) {
|
|
203
|
-
var _a
|
|
217
|
+
var _a;
|
|
204
218
|
// Find the stack the popup belongs to.
|
|
205
219
|
const stack = stacks.find(stack => !!exports.PopupStack.getElements(stack).find(el => el === element));
|
|
206
220
|
if (stack) {
|
|
@@ -208,8 +222,9 @@ exports.PopupStack = {
|
|
|
208
222
|
stack._adapter.remove(element);
|
|
209
223
|
return;
|
|
210
224
|
}
|
|
225
|
+
const item = stack.items.find(item => item.element === element);
|
|
211
226
|
stack.items = stack.items.filter(item => item.element !== element);
|
|
212
|
-
(
|
|
227
|
+
getContainer(stack, item === null || item === void 0 ? void 0 : item.owner).removeChild(element);
|
|
213
228
|
setZIndexOfElements(exports.PopupStack.getElements(stack));
|
|
214
229
|
}
|
|
215
230
|
},
|
|
@@ -34,7 +34,10 @@ export interface PopupStackItem {
|
|
|
34
34
|
export declare function getValue(index: number, length: number): number;
|
|
35
35
|
interface Stack {
|
|
36
36
|
items: PopupStackItem[];
|
|
37
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Returns the container of a stack given an optional element.
|
|
39
|
+
*/
|
|
40
|
+
container?: (element?: HTMLElement) => HTMLElement;
|
|
38
41
|
zIndex: {
|
|
39
42
|
min: number;
|
|
40
43
|
max: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopupStack.d.ts","sourceRoot":"","sources":["../../../lib/PopupStack.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC;IACrB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AASD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO9D;AA2CD,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"PopupStack.d.ts","sourceRoot":"","sources":["../../../lib/PopupStack.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC;IACrB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AASD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO9D;AA2CD,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,WAAW,CAAC;IACnD,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,OAAO,QAAQ,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC,OAAO,UAAU,CAAC,CAAC;CACtC;AAuGD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU;IACrB;;;;;OAKG;uBACgB,WAAW;IAS9B;;;;;OAKG;cACO,cAAc,GAAG,IAAI;IAY/B;;;;;;OAMG;oBACa,WAAW,GAAG,IAAI;IAgBlC;;;;OAIG;uBACgB,WAAW,GAAG,OAAO;IAaxC;;;;OAIG;oDACiC,WAAW,EAAE;IAQjD;;;;;;;;;;;OAWG;wBACiB,WAAW,GAAG,IAAI;IA6BtC;;;;;;;;;;OAUG;sBACe,WAAW,eAAe,WAAW,GAAG,OAAO;IA2BjE;;;;;;OAMG;gCACyB,WAAW,GAAG,IAAI;IAoB9C;;;;OAIG;+BACwB,WAAW,GAAG,IAAI;IAY7C;;;;;;;;;;;;;;OAcG;mCAC4B,cAAc,GAAG,IAAI;CAqBrD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,UAAU,SAEzB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,YAAa,QAAQ,iBAAiB,CAAC,SAEhE,CAAC"}
|
|
@@ -116,12 +116,26 @@ const setToWindow = (path, value) => {
|
|
|
116
116
|
set(window, path, value);
|
|
117
117
|
}
|
|
118
118
|
};
|
|
119
|
+
/**
|
|
120
|
+
* TODO: Remove this after v12 and use `stack.container(el)` directly. This is temporary to make
|
|
121
|
+
* sure Popups can open in new windows while supporting older versions of Canvas Kit AND full screen
|
|
122
|
+
* mode.
|
|
123
|
+
*/
|
|
124
|
+
const getContainer = (stack, element) => {
|
|
125
|
+
var _a;
|
|
126
|
+
let stackContainer = (_a = stack.container) === null || _a === void 0 ? void 0 : _a.call(stack);
|
|
127
|
+
if (stackContainer === document.body) {
|
|
128
|
+
// Here's the transitory code
|
|
129
|
+
stackContainer = element === null || element === void 0 ? void 0 : element.ownerDocument.body;
|
|
130
|
+
}
|
|
131
|
+
return stackContainer || document.body;
|
|
132
|
+
};
|
|
119
133
|
// We need to make sure only one stack is ever in use on the page - ever. If a stack is already
|
|
120
134
|
// defined on the page, we need to use that one. Never, ever, ever change this variable name on
|
|
121
135
|
// window
|
|
122
136
|
const stack = getFromWindow('workday.__popupStack') || {
|
|
123
137
|
description: 'Global popup stack from @workday/canvas-kit/popup-stack',
|
|
124
|
-
container: ()
|
|
138
|
+
container: el => (el === null || el === void 0 ? void 0 : el.ownerDocument.body) || document.body,
|
|
125
139
|
items: [],
|
|
126
140
|
zIndex: { min: 30, max: 50, getValue: getValue },
|
|
127
141
|
_adapter: {},
|
|
@@ -175,14 +189,14 @@ export const PopupStack = {
|
|
|
175
189
|
* method when the event triggers.
|
|
176
190
|
*/
|
|
177
191
|
add(item) {
|
|
178
|
-
var _a
|
|
192
|
+
var _a;
|
|
179
193
|
const stack = getTopStack();
|
|
180
194
|
if ((_a = stack._adapter) === null || _a === void 0 ? void 0 : _a.add) {
|
|
181
195
|
stack._adapter.add(item);
|
|
182
196
|
return;
|
|
183
197
|
}
|
|
184
198
|
stack.items.push(item);
|
|
185
|
-
(
|
|
199
|
+
getContainer(stack, item.owner).appendChild(item.element);
|
|
186
200
|
setZIndexOfElements(PopupStack.getElements());
|
|
187
201
|
},
|
|
188
202
|
/**
|
|
@@ -193,7 +207,7 @@ export const PopupStack = {
|
|
|
193
207
|
* stack.
|
|
194
208
|
*/
|
|
195
209
|
remove(element) {
|
|
196
|
-
var _a
|
|
210
|
+
var _a;
|
|
197
211
|
// Find the stack the popup belongs to.
|
|
198
212
|
const stack = stacks.find(stack => !!PopupStack.getElements(stack).find(el => el === element));
|
|
199
213
|
if (stack) {
|
|
@@ -201,8 +215,9 @@ export const PopupStack = {
|
|
|
201
215
|
stack._adapter.remove(element);
|
|
202
216
|
return;
|
|
203
217
|
}
|
|
218
|
+
const item = stack.items.find(item => item.element === element);
|
|
204
219
|
stack.items = stack.items.filter(item => item.element !== element);
|
|
205
|
-
(
|
|
220
|
+
getContainer(stack, item === null || item === void 0 ? void 0 : item.owner).removeChild(element);
|
|
206
221
|
setZIndexOfElements(PopupStack.getElements(stack));
|
|
207
222
|
}
|
|
208
223
|
},
|
package/lib/PopupStack.ts
CHANGED
|
@@ -93,7 +93,10 @@ function getChildPopups(item: PopupStackItem, items: PopupStackItem[]): PopupSta
|
|
|
93
93
|
|
|
94
94
|
interface Stack {
|
|
95
95
|
items: PopupStackItem[];
|
|
96
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Returns the container of a stack given an optional element.
|
|
98
|
+
*/
|
|
99
|
+
container?: (element?: HTMLElement) => HTMLElement;
|
|
97
100
|
zIndex: {
|
|
98
101
|
min: number;
|
|
99
102
|
max: number;
|
|
@@ -167,12 +170,27 @@ const setToWindow = (path: string, value: any) => {
|
|
|
167
170
|
}
|
|
168
171
|
};
|
|
169
172
|
|
|
173
|
+
/**
|
|
174
|
+
* TODO: Remove this after v12 and use `stack.container(el)` directly. This is temporary to make
|
|
175
|
+
* sure Popups can open in new windows while supporting older versions of Canvas Kit AND full screen
|
|
176
|
+
* mode.
|
|
177
|
+
*/
|
|
178
|
+
const getContainer = (stack: Stack, element?: HTMLElement): HTMLElement => {
|
|
179
|
+
let stackContainer = stack.container?.();
|
|
180
|
+
if (stackContainer === document.body) {
|
|
181
|
+
// Here's the transitory code
|
|
182
|
+
stackContainer = element?.ownerDocument.body;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return stackContainer || document.body;
|
|
186
|
+
};
|
|
187
|
+
|
|
170
188
|
// We need to make sure only one stack is ever in use on the page - ever. If a stack is already
|
|
171
189
|
// defined on the page, we need to use that one. Never, ever, ever change this variable name on
|
|
172
190
|
// window
|
|
173
191
|
const stack: Stack = getFromWindow('workday.__popupStack') || {
|
|
174
192
|
description: 'Global popup stack from @workday/canvas-kit/popup-stack',
|
|
175
|
-
container:
|
|
193
|
+
container: el => el?.ownerDocument.body || document.body,
|
|
176
194
|
items: [],
|
|
177
195
|
zIndex: {min: 30, max: 50, getValue: getValue},
|
|
178
196
|
_adapter: {},
|
|
@@ -235,7 +253,7 @@ export const PopupStack = {
|
|
|
235
253
|
return;
|
|
236
254
|
}
|
|
237
255
|
stack.items.push(item);
|
|
238
|
-
(stack
|
|
256
|
+
getContainer(stack, item.owner).appendChild(item.element);
|
|
239
257
|
|
|
240
258
|
setZIndexOfElements(PopupStack.getElements());
|
|
241
259
|
},
|
|
@@ -255,8 +273,9 @@ export const PopupStack = {
|
|
|
255
273
|
stack._adapter.remove(element);
|
|
256
274
|
return;
|
|
257
275
|
}
|
|
276
|
+
const item = stack.items.find(item => item.element === element);
|
|
258
277
|
stack.items = stack.items.filter(item => item.element !== element);
|
|
259
|
-
(stack
|
|
278
|
+
getContainer(stack, item?.owner).removeChild(element);
|
|
260
279
|
|
|
261
280
|
setZIndexOfElements(PopupStack.getElements(stack));
|
|
262
281
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workday/canvas-kit-popup-stack",
|
|
3
|
-
"version": "11.0.
|
|
3
|
+
"version": "11.0.19",
|
|
4
4
|
"description": "Stack for managing popup UIs to coordinate global concerns like escape key handling and rendering order",
|
|
5
5
|
"author": "Workday, Inc. (https://www.workday.com)",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"screenfull": "^5.2.0"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "c2d95558a8716248923ecb281c94406c0071792c"
|
|
41
41
|
}
|