@schukai/monster 4.129.8 → 4.129.9
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/package.json +1 -1
- package/source/components/form/context-base.mjs +3 -0
- package/source/components/form/context-error.mjs +4 -0
- package/source/components/layout/popper.mjs +1 -1
- package/source/components/layout/stylesheet/popper.mjs +1 -1
- package/source/components/style/floating-ui.css +1 -57
- package/source/components/style/floating-ui.pcss +7 -0
- package/source/components/stylesheet/floating-ui.mjs +7 -14
- package/test/cases/components/form/context-error.mjs +48 -0
- package/test/cases/components/form/context-help.mjs +20 -0
- package/test/cases/components/form/popper-button.mjs +56 -0
- package/test/cases/dom/util/init-options-from-attributes.mjs +14 -0
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":"Volker Schukai","dependencies":{"@floating-ui/dom":"^1.7.6"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"4.129.
|
|
1
|
+
{"author":"Volker Schukai","dependencies":{"@floating-ui/dom":"^1.7.6"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"4.129.9"}
|
|
@@ -50,6 +50,9 @@ class ContextBase extends Popper {
|
|
|
50
50
|
*/
|
|
51
51
|
get defaults() {
|
|
52
52
|
return Object.assign({}, super.defaults, {
|
|
53
|
+
popper: Object.assign({}, super.defaults.popper, {
|
|
54
|
+
contentOverflow: "visible",
|
|
55
|
+
}),
|
|
53
56
|
features: Object.assign({}, super.defaults.features, {
|
|
54
57
|
showIconWithoutContent: false,
|
|
55
58
|
}),
|
|
@@ -155,7 +155,7 @@ class Popper extends CustomElement {
|
|
|
155
155
|
* @property {Object} popper - Positioning options
|
|
156
156
|
* @property {string} popper.placement - Placement: top|bottom|left|right
|
|
157
157
|
* @property {Array} popper.middleware - Positioning middleware functions
|
|
158
|
-
* @property {string} popper.contentOverflow - Content clipping mode: both|horizontal
|
|
158
|
+
* @property {string} popper.contentOverflow - Content clipping mode: both|horizontal|visible
|
|
159
159
|
* @property {Object} features - Feature flags
|
|
160
160
|
* @property {boolean} features.preventOpenEventSent - Prevent open event
|
|
161
161
|
* @returns {Object} Default options merged with parent defaults
|
|
@@ -25,7 +25,7 @@ try {
|
|
|
25
25
|
PopperStyleSheet.insertRule(
|
|
26
26
|
`
|
|
27
27
|
@layer popper {
|
|
28
|
-
[data-monster-role=control]{box-sizing:border-box;outline:none;width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}:host{box-sizing:border-box;display:block}div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;max-height:var(--monster-popper-max-height,calc(100vh - 2rem));max-width:var(--monster-popper-max-width,calc(100vw - 2rem));padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper]>[part=content]{max-height:var(--monster-popper-content-max-height,calc(100vh - 4.2rem));max-width:100%;overflow:auto}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=horizontal]{clip-path:inset(calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0 calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0);overflow:visible}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}[data-monster-role=control]{display:flex;position:relative}
|
|
28
|
+
[data-monster-role=control]{box-sizing:border-box;outline:none;width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}:host{box-sizing:border-box;display:block}div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;max-height:var(--monster-popper-max-height,calc(100vh - 2rem));max-width:var(--monster-popper-max-width,calc(100vw - 2rem));padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper]>[part=content]{max-height:var(--monster-popper-content-max-height,calc(100vh - 4.2rem));max-width:100%;overflow:auto}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=horizontal]{clip-path:inset(calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0 calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0);overflow:visible}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=visible]{clip-path:none;max-height:none;max-width:none;overflow:visible}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}[data-monster-role=control]{display:flex;position:relative}
|
|
29
29
|
}`,
|
|
30
30
|
0,
|
|
31
31
|
);
|
|
@@ -1,58 +1,2 @@
|
|
|
1
1
|
/** generated from floating-ui.pcss **/
|
|
2
|
-
div[data-monster-role=
|
|
3
|
-
align-content: center;
|
|
4
|
-
background: var(--monster-bg-color-primary-1);
|
|
5
|
-
border-color: var(--monster-bg-color-primary-4);
|
|
6
|
-
border-radius: var(--monster-border-radius);
|
|
7
|
-
border-style: var(--monster-border-style);
|
|
8
|
-
border-width: var(--monster-border-width);
|
|
9
|
-
box-shadow: var(--monster-box-shadow-1);
|
|
10
|
-
box-sizing: border-box;
|
|
11
|
-
color: var(--monster-color-primary-1);
|
|
12
|
-
display: none;
|
|
13
|
-
justify-content: space-between;
|
|
14
|
-
left: 0;
|
|
15
|
-
max-height: var(--monster-popper-max-height, calc(100vh - 2rem));
|
|
16
|
-
max-width: var(--monster-popper-max-width, calc(100vw - 2rem));
|
|
17
|
-
padding: 1.1em;
|
|
18
|
-
position: absolute;
|
|
19
|
-
top: 0;
|
|
20
|
-
width: -moz-max-content;
|
|
21
|
-
width: max-content;
|
|
22
|
-
z-index: var(--monster-z-index-modal);
|
|
23
|
-
}
|
|
24
|
-
div[data-monster-role="popper"] > [part="content"] {
|
|
25
|
-
max-height: var(--monster-popper-content-max-height, calc(100vh - 4.2rem));
|
|
26
|
-
max-width: 100%;
|
|
27
|
-
overflow: auto;
|
|
28
|
-
}
|
|
29
|
-
div[data-monster-role="popper"]
|
|
30
|
-
> [part="content"][data-monster-overflow-mode="horizontal"] {
|
|
31
|
-
clip-path: inset(
|
|
32
|
-
calc(var(--monster-popper-content-block-overflow, 100vh) * -1) 0
|
|
33
|
-
calc(var(--monster-popper-content-block-overflow, 100vh) * -1) 0
|
|
34
|
-
);
|
|
35
|
-
overflow: visible;
|
|
36
|
-
}
|
|
37
|
-
div[data-monster-role="popper"] div[data-monster-role="arrow"] {
|
|
38
|
-
background: var(--monster-bg-color-primary-1);
|
|
39
|
-
height: calc(
|
|
40
|
-
max(
|
|
41
|
-
var(--monster-popper-witharrrow-distance),
|
|
42
|
-
-1 *
|
|
43
|
-
var(--monster-popper-witharrrow-distance)
|
|
44
|
-
) *
|
|
45
|
-
2
|
|
46
|
-
);
|
|
47
|
-
pointer-events: none;
|
|
48
|
-
position: absolute;
|
|
49
|
-
width: calc(
|
|
50
|
-
max(
|
|
51
|
-
var(--monster-popper-witharrrow-distance),
|
|
52
|
-
-1 *
|
|
53
|
-
var(--monster-popper-witharrrow-distance)
|
|
54
|
-
) *
|
|
55
|
-
2
|
|
56
|
-
);
|
|
57
|
-
z-index: -1;
|
|
58
|
-
}
|
|
2
|
+
div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;max-height:var(--monster-popper-max-height,calc(100vh - 2rem));max-width:var(--monster-popper-max-width,calc(100vw - 2rem));padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper]>[part=content]{max-height:var(--monster-popper-content-max-height,calc(100vh - 4.2rem));max-width:100%;overflow:auto}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=horizontal]{clip-path:inset(calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0 calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0);overflow:visible}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=visible]{clip-path:none;max-height:none;max-width:none;overflow:visible}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}
|
|
@@ -39,6 +39,13 @@ div[data-monster-role=popper] {
|
|
|
39
39
|
);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
& > [part=content][data-monster-overflow-mode=visible] {
|
|
43
|
+
overflow: visible;
|
|
44
|
+
clip-path: none;
|
|
45
|
+
max-width: none;
|
|
46
|
+
max-height: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
42
49
|
& div[data-monster-role=arrow] {
|
|
43
50
|
position: absolute;
|
|
44
51
|
width: calc(2 * max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance)));
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* For more information about purchasing a commercial license, please contact Volker Schukai.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
13
|
+
import {addAttributeToken} from "../../dom/attributes.mjs";
|
|
14
|
+
import {ATTRIBUTE_ERRORMESSAGE} from "../../dom/constants.mjs";
|
|
15
15
|
|
|
16
|
-
export {
|
|
16
|
+
export {FloatingUiStyleSheet}
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* @private
|
|
@@ -22,17 +22,10 @@ export { FloatingUiStyleSheet };
|
|
|
22
22
|
const FloatingUiStyleSheet = new CSSStyleSheet();
|
|
23
23
|
|
|
24
24
|
try {
|
|
25
|
-
|
|
26
|
-
`
|
|
25
|
+
FloatingUiStyleSheet.insertRule(`
|
|
27
26
|
@layer floatingui {
|
|
28
|
-
div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;max-height:var(--monster-popper-max-height,calc(100vh - 2rem));max-width:var(--monster-popper-max-width,calc(100vw - 2rem));padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper]>[part=content]{max-height:var(--monster-popper-content-max-height,calc(100vh - 4.2rem));max-width:100%;overflow:auto}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=horizontal]{clip-path:inset(calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0 calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0);overflow:visible}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}
|
|
29
|
-
}`,
|
|
30
|
-
0,
|
|
31
|
-
);
|
|
27
|
+
div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;max-height:var(--monster-popper-max-height,calc(100vh - 2rem));max-width:var(--monster-popper-max-width,calc(100vw - 2rem));padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper]>[part=content]{max-height:var(--monster-popper-content-max-height,calc(100vh - 4.2rem));max-width:100%;overflow:auto}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=horizontal]{clip-path:inset(calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0 calc(var(--monster-popper-content-block-overflow, 100vh)*-1) 0);overflow:visible}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=visible]{clip-path:none;max-height:none;max-width:none;overflow:visible}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}
|
|
28
|
+
}`, 0);
|
|
32
29
|
} catch (e) {
|
|
33
|
-
|
|
34
|
-
document.getRootNode().querySelector("html"),
|
|
35
|
-
ATTRIBUTE_ERRORMESSAGE,
|
|
36
|
-
e + "",
|
|
37
|
-
);
|
|
30
|
+
addAttributeToken(document.getRootNode().querySelector('html'), ATTRIBUTE_ERRORMESSAGE, e + "");
|
|
38
31
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as chai from "chai";
|
|
2
|
+
import { chaiDom } from "../../../util/chai-dom.mjs";
|
|
3
|
+
import { initJSDOM } from "../../../util/jsdom.mjs";
|
|
4
|
+
|
|
5
|
+
let expect = chai.expect;
|
|
6
|
+
chai.use(chaiDom);
|
|
7
|
+
|
|
8
|
+
let ContextError;
|
|
9
|
+
|
|
10
|
+
describe("ContextError", function () {
|
|
11
|
+
before(function (done) {
|
|
12
|
+
initJSDOM()
|
|
13
|
+
.then(() => {
|
|
14
|
+
return import("../../../../source/components/form/context-error.mjs");
|
|
15
|
+
})
|
|
16
|
+
.then((m) => {
|
|
17
|
+
ContextError = m["ContextError"];
|
|
18
|
+
done();
|
|
19
|
+
})
|
|
20
|
+
.catch((e) => done(e));
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
afterEach(() => {
|
|
24
|
+
let mocks = document.getElementById("mocks");
|
|
25
|
+
mocks.innerHTML = "";
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it("should default to visible content overflow", function (done) {
|
|
29
|
+
let mocks = document.getElementById("mocks");
|
|
30
|
+
const error = document.createElement("monster-context-error");
|
|
31
|
+
error.innerHTML = "<p>Error message</p>";
|
|
32
|
+
mocks.appendChild(error);
|
|
33
|
+
|
|
34
|
+
setTimeout(() => {
|
|
35
|
+
try {
|
|
36
|
+
expect(error).to.be.instanceof(ContextError);
|
|
37
|
+
const content = error.shadowRoot.querySelector('[part="content"]');
|
|
38
|
+
expect(error.getOption("popper.contentOverflow")).to.equal("visible");
|
|
39
|
+
expect(content.getAttribute("data-monster-overflow-mode")).to.equal(
|
|
40
|
+
"visible",
|
|
41
|
+
);
|
|
42
|
+
done();
|
|
43
|
+
} catch (e) {
|
|
44
|
+
done(e);
|
|
45
|
+
}
|
|
46
|
+
}, 0);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
@@ -68,4 +68,24 @@ describe("ContextHelp", function () {
|
|
|
68
68
|
}
|
|
69
69
|
}, 0);
|
|
70
70
|
});
|
|
71
|
+
|
|
72
|
+
it("should default to visible content overflow", function (done) {
|
|
73
|
+
let mocks = document.getElementById("mocks");
|
|
74
|
+
const help = document.createElement("monster-context-help");
|
|
75
|
+
help.innerHTML = "<p>Inline help</p>";
|
|
76
|
+
mocks.appendChild(help);
|
|
77
|
+
|
|
78
|
+
setTimeout(() => {
|
|
79
|
+
try {
|
|
80
|
+
const content = help.shadowRoot.querySelector('[part="content"]');
|
|
81
|
+
expect(help.getOption("popper.contentOverflow")).to.equal("visible");
|
|
82
|
+
expect(content.getAttribute("data-monster-overflow-mode")).to.equal(
|
|
83
|
+
"visible",
|
|
84
|
+
);
|
|
85
|
+
done();
|
|
86
|
+
} catch (e) {
|
|
87
|
+
done(e);
|
|
88
|
+
}
|
|
89
|
+
}, 0);
|
|
90
|
+
});
|
|
71
91
|
});
|
|
@@ -62,6 +62,37 @@ describe("PopperButton", function () {
|
|
|
62
62
|
}, 0);
|
|
63
63
|
});
|
|
64
64
|
|
|
65
|
+
it("should apply visible content overflow mode to the rendered content wrapper", function (done) {
|
|
66
|
+
let mocks = document.getElementById("mocks");
|
|
67
|
+
const button = document.createElement("monster-popper-button");
|
|
68
|
+
mocks.appendChild(button);
|
|
69
|
+
|
|
70
|
+
setTimeout(() => {
|
|
71
|
+
try {
|
|
72
|
+
const content = button.shadowRoot.querySelector('[part="content"]');
|
|
73
|
+
expect(content).to.exist;
|
|
74
|
+
|
|
75
|
+
button.setOption("popper.contentOverflow", "visible");
|
|
76
|
+
|
|
77
|
+
setTimeout(() => {
|
|
78
|
+
try {
|
|
79
|
+
expect(
|
|
80
|
+
button.getOption("popper.contentOverflow"),
|
|
81
|
+
).to.equal("visible");
|
|
82
|
+
expect(
|
|
83
|
+
content.getAttribute("data-monster-overflow-mode"),
|
|
84
|
+
).to.equal("visible");
|
|
85
|
+
done();
|
|
86
|
+
} catch (e) {
|
|
87
|
+
done(e);
|
|
88
|
+
}
|
|
89
|
+
}, 0);
|
|
90
|
+
} catch (e) {
|
|
91
|
+
done(e);
|
|
92
|
+
}
|
|
93
|
+
}, 0);
|
|
94
|
+
});
|
|
95
|
+
|
|
65
96
|
it("should apply content overflow mode from the HTML attribute", function (done) {
|
|
66
97
|
let mocks = document.getElementById("mocks");
|
|
67
98
|
mocks.innerHTML = `
|
|
@@ -87,6 +118,31 @@ describe("PopperButton", function () {
|
|
|
87
118
|
}, 0);
|
|
88
119
|
});
|
|
89
120
|
|
|
121
|
+
it("should apply visible content overflow mode from the HTML attribute", function (done) {
|
|
122
|
+
let mocks = document.getElementById("mocks");
|
|
123
|
+
mocks.innerHTML = `
|
|
124
|
+
<monster-popper-button
|
|
125
|
+
data-monster-option-popper-content-overflow="visible"
|
|
126
|
+
></monster-popper-button>
|
|
127
|
+
`;
|
|
128
|
+
|
|
129
|
+
setTimeout(() => {
|
|
130
|
+
try {
|
|
131
|
+
const button = mocks.querySelector("monster-popper-button");
|
|
132
|
+
const content = button.shadowRoot.querySelector('[part="content"]');
|
|
133
|
+
expect(button.getOption("popper.contentOverflow")).to.equal(
|
|
134
|
+
"visible",
|
|
135
|
+
);
|
|
136
|
+
expect(content.getAttribute("data-monster-overflow-mode")).to.equal(
|
|
137
|
+
"visible",
|
|
138
|
+
);
|
|
139
|
+
done();
|
|
140
|
+
} catch (e) {
|
|
141
|
+
done(e);
|
|
142
|
+
}
|
|
143
|
+
}, 0);
|
|
144
|
+
});
|
|
145
|
+
|
|
90
146
|
it("should use absolute positioning by default", function (done) {
|
|
91
147
|
let mocks = document.getElementById("mocks");
|
|
92
148
|
const button = document.createElement("monster-popper-button");
|
|
@@ -185,4 +185,18 @@ describe('initOptionsFromAttributes', () => {
|
|
|
185
185
|
expect(result.message.width.viewportRatio).to.equal(0.9);
|
|
186
186
|
});
|
|
187
187
|
|
|
188
|
+
it('should preserve visible for popper content overflow attributes', () => {
|
|
189
|
+
options = {
|
|
190
|
+
popper: {
|
|
191
|
+
contentOverflow: 'both',
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
element.setAttribute('data-monster-option-popper-content-overflow', 'visible');
|
|
196
|
+
|
|
197
|
+
const result = initOptionsFromAttributes(element, options);
|
|
198
|
+
|
|
199
|
+
expect(result.popper.contentOverflow).to.equal('visible');
|
|
200
|
+
});
|
|
201
|
+
|
|
188
202
|
});
|