From e79e012a2be0febb012fa94f9b228741e5bc5a2d Mon Sep 17 00:00:00 2001 From: Okamoto Keita Date: Sun, 8 Aug 2021 16:19:41 +0900 Subject: [PATCH 1/5] fix: Fix for frameset --- packages/popper/src/utils/getBoundaries.js | 3 ++- packages/popper/src/utils/getOffsetParent.js | 3 ++- packages/popper/src/utils/getParentNodeAndParentNodeIs.js | 6 ++++++ packages/popper/src/utils/getScroll.js | 3 ++- packages/popper/src/utils/isFixed.js | 3 ++- packages/popper/src/utils/setupEventListeners.js | 3 ++- 6 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 packages/popper/src/utils/getParentNodeAndParentNodeIs.js diff --git a/packages/popper/src/utils/getBoundaries.js b/packages/popper/src/utils/getBoundaries.js index 45cb54ab91..281d10f1f1 100644 --- a/packages/popper/src/utils/getBoundaries.js +++ b/packages/popper/src/utils/getBoundaries.js @@ -7,6 +7,7 @@ import getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRe import getWindowSizes from './getWindowSizes'; import isFixed from './isFixed'; import getFixedPositionOffsetParent from './getFixedPositionOffsetParent'; +import getParentNodeAndParentNodeIs from './getParentNodeAndParentNodeIs'; /** * Computed the boundaries limits and return them @@ -41,7 +42,7 @@ export default function getBoundaries( let boundariesNode; if (boundariesElement === 'scrollParent') { boundariesNode = getScrollParent(getParentNode(reference)); - if (boundariesNode.nodeName === 'BODY') { + if (boundariesNode.nodeName === 'BODY' || getParentNodeAndParentNodeIs(boundariesNode, parent => parent.nodeName === 'HTML')) { boundariesNode = popper.ownerDocument.documentElement; } } else if (boundariesElement === 'window') { diff --git a/packages/popper/src/utils/getOffsetParent.js b/packages/popper/src/utils/getOffsetParent.js index 875aacda63..90e76df6b1 100644 --- a/packages/popper/src/utils/getOffsetParent.js +++ b/packages/popper/src/utils/getOffsetParent.js @@ -1,5 +1,6 @@ import getStyleComputedProperty from './getStyleComputedProperty'; import isIE from './isIE'; +import getParentNodeAndParentNodeIs from './getParentNodeAndParentNodeIs'; /** * Returns the offset parent of the given element * @method @@ -23,7 +24,7 @@ export default function getOffsetParent(element) { const nodeName = offsetParent && offsetParent.nodeName; - if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { + if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML' || getParentNodeAndParentNodeIs(offsetParent, parent => parent.nodeName === 'HTML')) { return element ? element.ownerDocument.documentElement : document.documentElement; } diff --git a/packages/popper/src/utils/getParentNodeAndParentNodeIs.js b/packages/popper/src/utils/getParentNodeAndParentNodeIs.js new file mode 100644 index 0000000000..ea31121623 --- /dev/null +++ b/packages/popper/src/utils/getParentNodeAndParentNodeIs.js @@ -0,0 +1,6 @@ +import getParentNode from './getParentNode'; + +export default function getParentNodeAndParentNodeIs(element, condition) { + const parentNode = getParentNode(element) + return parentNode && condition(parentNode) +} diff --git a/packages/popper/src/utils/getScroll.js b/packages/popper/src/utils/getScroll.js index b94f06aec6..50b3f31f0b 100644 --- a/packages/popper/src/utils/getScroll.js +++ b/packages/popper/src/utils/getScroll.js @@ -1,3 +1,4 @@ +import getParentNodeAndParentNodeIs from './getParentNodeAndParentNodeIs'; /** * Gets the scroll value of the given element in the given side (top and left) * @method @@ -10,7 +11,7 @@ export default function getScroll(element, side = 'top') { const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; const nodeName = element.nodeName; - if (nodeName === 'BODY' || nodeName === 'HTML') { + if (nodeName === 'BODY' || nodeName === 'HTML' || getParentNodeAndParentNodeIs(element, parent => parent.nodeName === 'HTML')) { const html = element.ownerDocument.documentElement; const scrollingElement = element.ownerDocument.scrollingElement || html; return scrollingElement[upperSide]; diff --git a/packages/popper/src/utils/isFixed.js b/packages/popper/src/utils/isFixed.js index b4ad5af927..3e102d3adf 100644 --- a/packages/popper/src/utils/isFixed.js +++ b/packages/popper/src/utils/isFixed.js @@ -1,5 +1,6 @@ import getStyleComputedProperty from './getStyleComputedProperty'; import getParentNode from './getParentNode'; +import getParentNodeAndParentNodeIs from './getParentNodeAndParentNodeIs'; /** * Check if the given element is fixed or is inside a fixed parent @@ -11,7 +12,7 @@ import getParentNode from './getParentNode'; */ export default function isFixed(element) { const nodeName = element.nodeName; - if (nodeName === 'BODY' || nodeName === 'HTML') { + if (nodeName === 'BODY' || nodeName === 'HTML' || getParentNodeAndParentNodeIs(element, parent => parent.nodeName === 'HTML')) { return false; } if (getStyleComputedProperty(element, 'position') === 'fixed') { diff --git a/packages/popper/src/utils/setupEventListeners.js b/packages/popper/src/utils/setupEventListeners.js index 0b1255f9e3..47aee352f0 100644 --- a/packages/popper/src/utils/setupEventListeners.js +++ b/packages/popper/src/utils/setupEventListeners.js @@ -1,8 +1,9 @@ import getScrollParent from './getScrollParent'; import getWindow from './getWindow'; +import getParentNodeAndParentNodeIs from './getParentNodeAndParentNodeIs'; function attachToScrollParents(scrollParent, event, callback, scrollParents) { - const isBody = scrollParent.nodeName === 'BODY'; + const isBody = scrollParent.nodeName === 'BODY' || getParentNodeAndParentNodeIs(scrollParent, parent => parent.nodeName === 'HTML'); const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; target.addEventListener(event, callback, { passive: true }); From b73ab80c6b41c3ee6a6461e7be4d6e8beedcddd8 Mon Sep 17 00:00:00 2001 From: Okamoto Keita Date: Sun, 8 Aug 2021 16:36:15 +0900 Subject: [PATCH 2/5] chore: Change organization --- package.json | 7 +++++-- packages/popper/package.json | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ea4ae1299f..344cfb64b7 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "popperjs-monorepo", + "name": "@techtouch-inc/popperjs-monorepo", "version": "0.0.0", "license": "MIT", "private": true, @@ -42,5 +42,8 @@ "dependencies": {}, "workspaces": [ "packages/*" - ] + ], + "publishConfig": { + "registry": "https://npm.pkg.github.com/" + } } diff --git a/packages/popper/package.json b/packages/popper/package.json index aa985637b5..552526acb9 100644 --- a/packages/popper/package.json +++ b/packages/popper/package.json @@ -1,11 +1,11 @@ { - "name": "popper.js", - "version": "1.16.1", + "name": "@techtouch-inc/popper.js", + "version": "1.16.0", "description": "A kickass library to manage your poppers", "homepage": "https://popper.js.org", "repository": { "type": "git", - "url": "git+https://github.com/FezVrasta/popper.js.git" + "url": "git+https://github.com/techtouch-inc/popper.js.git" }, "author": "Federico Zivolo ", "contributors": [ @@ -52,5 +52,8 @@ }, "resolutions": { "micromatch": "^3.0.3" + }, + "publishConfig": { + "registry": "https://npm.pkg.github.com/" } } From 632785330b8fc9c3567055185952020c555a3f91 Mon Sep 17 00:00:00 2001 From: Okamoto Keita Date: Sun, 8 Aug 2021 19:42:32 +0900 Subject: [PATCH 3/5] chore: Bump up to v1.17.0 --- packages/popper/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/popper/package.json b/packages/popper/package.json index 552526acb9..c26d494adb 100644 --- a/packages/popper/package.json +++ b/packages/popper/package.json @@ -1,6 +1,6 @@ { "name": "@techtouch-inc/popper.js", - "version": "1.16.0", + "version": "1.17.0", "description": "A kickass library to manage your poppers", "homepage": "https://popper.js.org", "repository": { From 1aa8f5e341d51fbd071f9a5ccbc3bc369d2df410 Mon Sep 17 00:00:00 2001 From: Takahiro Matsuda Date: Mon, 6 Sep 2021 14:49:39 +0900 Subject: [PATCH 4/5] fix: use getWindow to get defaultView --- packages/popper/src/utils/getStyleComputedProperty.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/popper/src/utils/getStyleComputedProperty.js b/packages/popper/src/utils/getStyleComputedProperty.js index 014f32bb8e..cd456e4a56 100644 --- a/packages/popper/src/utils/getStyleComputedProperty.js +++ b/packages/popper/src/utils/getStyleComputedProperty.js @@ -1,3 +1,5 @@ +import getWindow from './getWindow'; + /** * Get CSS computed property of the given element * @method @@ -10,7 +12,7 @@ export default function getStyleComputedProperty(element, property) { return []; } // NOTE: 1 DOM access here - const window = element.ownerDocument.defaultView; + const window = getWindow(element); const css = window.getComputedStyle(element, null); return property ? css[property] : css; } From d87b8e6b4c58ab206bee19268b06eeb46ae2d0b0 Mon Sep 17 00:00:00 2001 From: Takahiro Matsuda Date: Mon, 6 Sep 2021 15:45:02 +0900 Subject: [PATCH 5/5] chore: Bump up to v1.17.1 --- packages/popper/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/popper/package.json b/packages/popper/package.json index c26d494adb..df997ba2c4 100644 --- a/packages/popper/package.json +++ b/packages/popper/package.json @@ -1,6 +1,6 @@ { "name": "@techtouch-inc/popper.js", - "version": "1.17.0", + "version": "1.17.1", "description": "A kickass library to manage your poppers", "homepage": "https://popper.js.org", "repository": {