Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F122414259
BootstrapModalManager.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Jul 17, 18:16
Size
3 KB
Mime Type
text/x-c++
Expires
Sat, Jul 19, 18:16 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
27453430
Attached To
rOACCT Open Access Compliance Check Tool (OACCT)
BootstrapModalManager.js
View Options
"use strict"
;
var
_interopRequireDefault
=
require
(
"@babel/runtime/helpers/interopRequireDefault"
);
exports
.
__esModule
=
true
;
exports
.
default
=
void
0
;
exports
.
getSharedManager
=
getSharedManager
;
var
_addClass
=
_interopRequireDefault
(
require
(
"dom-helpers/addClass"
));
var
_css
=
_interopRequireDefault
(
require
(
"dom-helpers/css"
));
var
_querySelectorAll
=
_interopRequireDefault
(
require
(
"dom-helpers/querySelectorAll"
));
var
_removeClass
=
_interopRequireDefault
(
require
(
"dom-helpers/removeClass"
));
var
_ModalManager
=
_interopRequireDefault
(
require
(
"@restart/ui/ModalManager"
));
const
Selector
=
{
FIXED_CONTENT
:
'.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'
,
STICKY_CONTENT
:
'.sticky-top'
,
NAVBAR_TOGGLER
:
'.navbar-toggler'
};
class
BootstrapModalManager
extends
_ModalManager
.
default
{
adjustAndStore
(
prop
,
element
,
adjust
)
{
const
actual
=
element
.
style
[
prop
];
// TODO: DOMStringMap and CSSStyleDeclaration aren't strictly compatible
// @ts-ignore
element
.
dataset
[
prop
]
=
actual
;
(
0
,
_css
.
default
)(
element
,
{
[
prop
]
:
`
$
{
parseFloat
((
0
,
_css
.
default
)(
element
,
prop
))
+
adjust
}
px
`
});
}
restore
(
prop
,
element
)
{
const
value
=
element
.
dataset
[
prop
];
if
(
value
!==
undefined
)
{
delete
element
.
dataset
[
prop
];
(
0
,
_css
.
default
)(
element
,
{
[
prop
]
:
value
});
}
}
setContainerStyle
(
containerState
)
{
super
.
setContainerStyle
(
containerState
);
const
container
=
this
.
getElement
();
(
0
,
_addClass
.
default
)(
container
,
'modal-open'
);
if
(
!
containerState
.
scrollBarWidth
)
return
;
const
paddingProp
=
this
.
isRTL
?
'paddingLeft'
:
'paddingRight'
;
const
marginProp
=
this
.
isRTL
?
'marginLeft'
:
'marginRight'
;
(
0
,
_querySelectorAll
.
default
)(
container
,
Selector
.
FIXED_CONTENT
).
forEach
(
el
=>
this
.
adjustAndStore
(
paddingProp
,
el
,
containerState
.
scrollBarWidth
));
(
0
,
_querySelectorAll
.
default
)(
container
,
Selector
.
STICKY_CONTENT
).
forEach
(
el
=>
this
.
adjustAndStore
(
marginProp
,
el
,
-
containerState
.
scrollBarWidth
));
(
0
,
_querySelectorAll
.
default
)(
container
,
Selector
.
NAVBAR_TOGGLER
).
forEach
(
el
=>
this
.
adjustAndStore
(
marginProp
,
el
,
containerState
.
scrollBarWidth
));
}
removeContainerStyle
(
containerState
)
{
super
.
removeContainerStyle
(
containerState
);
const
container
=
this
.
getElement
();
(
0
,
_removeClass
.
default
)(
container
,
'modal-open'
);
const
paddingProp
=
this
.
isRTL
?
'paddingLeft'
:
'paddingRight'
;
const
marginProp
=
this
.
isRTL
?
'marginLeft'
:
'marginRight'
;
(
0
,
_querySelectorAll
.
default
)(
container
,
Selector
.
FIXED_CONTENT
).
forEach
(
el
=>
this
.
restore
(
paddingProp
,
el
));
(
0
,
_querySelectorAll
.
default
)(
container
,
Selector
.
STICKY_CONTENT
).
forEach
(
el
=>
this
.
restore
(
marginProp
,
el
));
(
0
,
_querySelectorAll
.
default
)(
container
,
Selector
.
NAVBAR_TOGGLER
).
forEach
(
el
=>
this
.
restore
(
marginProp
,
el
));
}
}
let
sharedManager
;
function
getSharedManager
(
options
)
{
if
(
!
sharedManager
)
sharedManager
=
new
BootstrapModalManager
(
options
);
return
sharedManager
;
}
var
_default
=
BootstrapModalManager
;
exports
.
default
=
_default
;
Event Timeline
Log In to Comment