1174 lines
50 KiB
HTML
1174 lines
50 KiB
HTML
<style>
|
|
html:not(.politictalk-direct-access-blocked),
|
|
html:not(.politictalk-direct-access-blocked) body,
|
|
html:not(.politictalk-direct-access-blocked) #react,
|
|
html:not(.politictalk-direct-access-blocked) #videoconference_page {
|
|
background-color: #101820 !important;
|
|
background-image: url('/images/politictalk/background_pt.png') !important;
|
|
background-position: center center !important;
|
|
background-repeat: no-repeat !important;
|
|
background-size: cover !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) {
|
|
--politictalk-toolbar-bottom-offset: 12px;
|
|
--politictalk-toolbar-mobile-scale: 0.96;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) body {
|
|
min-height: 100vh;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .conference,
|
|
html:not(.politictalk-direct-access-blocked) #largeVideoContainer,
|
|
html:not(.politictalk-direct-access-blocked) .large-video-container,
|
|
html:not(.politictalk-direct-access-blocked) .stage-view,
|
|
html:not(.politictalk-direct-access-blocked) .filmstrip,
|
|
html:not(.politictalk-direct-access-blocked) .filmstrip__videos,
|
|
html:not(.politictalk-direct-access-blocked) .filmstrip__videos-container,
|
|
html:not(.politictalk-direct-access-blocked) #filmstripRemoteVideosContainer,
|
|
html:not(.politictalk-direct-access-blocked) .remote-videos {
|
|
background-color: transparent !important;
|
|
background-image: none !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #largeVideo,
|
|
html:not(.politictalk-direct-access-blocked) .large-video-background {
|
|
background-color: transparent !important;
|
|
background-image: none !important;
|
|
}
|
|
|
|
.politictalk-room-logo {
|
|
align-items: center;
|
|
display: flex;
|
|
gap: 12px;
|
|
height: 64px;
|
|
justify-content: flex-start;
|
|
left: max(20px, env(safe-area-inset-left));
|
|
opacity: 0.96;
|
|
position: fixed;
|
|
text-decoration: none;
|
|
top: max(20px, env(safe-area-inset-top));
|
|
width: auto;
|
|
z-index: 20;
|
|
}
|
|
|
|
.politictalk-room-logo img {
|
|
display: block;
|
|
flex: 0 0 64px;
|
|
height: 64px;
|
|
object-fit: contain;
|
|
width: 64px;
|
|
}
|
|
|
|
.politictalk-room-logo__text {
|
|
color: #ffffff;
|
|
font-size: 24px;
|
|
font-weight: 700;
|
|
letter-spacing: 0;
|
|
line-height: 1;
|
|
text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
@media (prefers-color-scheme: light) {
|
|
html:not(.politictalk-direct-access-blocked),
|
|
html:not(.politictalk-direct-access-blocked) body,
|
|
html:not(.politictalk-direct-access-blocked) #react,
|
|
html:not(.politictalk-direct-access-blocked) #videoconference_page {
|
|
background-color: #f7f3fb !important;
|
|
background-image: url('/images/politictalk/pt_bg_light.png') !important;
|
|
}
|
|
|
|
.politictalk-room-logo__text {
|
|
color: #63477a;
|
|
text-shadow: 0 1px 4px rgba(255, 255, 255, 0.62);
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #sideToolbarContainer,
|
|
html:not(.politictalk-direct-access-blocked) .sideToolbarContainer,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel-container,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane-container,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane-content,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="participantsPane"] {
|
|
background-color: #b3a5e4 !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #sideToolbarContainer,
|
|
html:not(.politictalk-direct-access-blocked) #sideToolbarContainer *,
|
|
html:not(.politictalk-direct-access-blocked) .sideToolbarContainer,
|
|
html:not(.politictalk-direct-access-blocked) .sideToolbarContainer *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel-container,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel-container *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container *,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane *,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane *,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane-container,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane-container *,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane-content,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane-content *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="participantsPane"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="participantsPane"] * {
|
|
color: #63477a !important;
|
|
caret-color: #63477a !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #sideToolbarContainer svg,
|
|
html:not(.politictalk-direct-access-blocked) .sideToolbarContainer svg,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel svg,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel-container svg,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container svg,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane svg,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane svg,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] svg,
|
|
html:not(.politictalk-direct-access-blocked) [class*="participantsPane"] svg {
|
|
color: #63477a !important;
|
|
fill: currentColor !important;
|
|
stroke: currentColor !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #sideToolbarContainer input,
|
|
html:not(.politictalk-direct-access-blocked) #sideToolbarContainer textarea,
|
|
html:not(.politictalk-direct-access-blocked) .sideToolbarContainer input,
|
|
html:not(.politictalk-direct-access-blocked) .sideToolbarContainer textarea,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel input,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel textarea,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container input,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container textarea,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane input,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane input,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] input,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] textarea,
|
|
html:not(.politictalk-direct-access-blocked) [class*="participantsPane"] input {
|
|
background-color: rgba(255, 255, 255, 0.42) !important;
|
|
border-color: rgba(99, 71, 122, 0.42) !important;
|
|
color: #63477a !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #sideToolbarContainer input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) #sideToolbarContainer textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .sideToolbarContainer input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .sideToolbarContainer textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="participantsPane"] input::placeholder {
|
|
color: rgba(99, 71, 122, 0.72) !important;
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container input,
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container textarea,
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [contenteditable="true"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] input,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] textarea,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] [contenteditable="true"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] input,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] textarea,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] [contenteditable="true"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] input,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] textarea,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] [contenteditable="true"] {
|
|
background-color: rgba(48, 45, 55, 0.86) !important;
|
|
border-color: rgba(255, 255, 255, 0.62) !important;
|
|
color: #ffffff !important;
|
|
caret-color: #ffffff !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] textarea::placeholder {
|
|
color: rgba(255, 255, 255, 0.74) !important;
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [role="button"],
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [aria-haspopup],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-recipient"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatRecipient"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatRecipient"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="recipientDropdown"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="RecipientDropdown"] {
|
|
background-color: rgba(48, 45, 55, 0.9) !important;
|
|
border-color: rgba(255, 255, 255, 0.34) !important;
|
|
color: #ffffff !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [role="button"] svg,
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [aria-haspopup] svg,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-recipient"] svg,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatRecipient"] svg,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatRecipient"] svg,
|
|
html:not(.politictalk-direct-access-blocked) [class*="recipientDropdown"] svg,
|
|
html:not(.politictalk-direct-access-blocked) [class*="RecipientDropdown"] svg {
|
|
color: #ffffff !important;
|
|
fill: currentColor !important;
|
|
stroke: currentColor !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #sideToolbarContainer button,
|
|
html:not(.politictalk-direct-access-blocked) .sideToolbarContainer button,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel button,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container button,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane button,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane button,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] button,
|
|
html:not(.politictalk-direct-access-blocked) [class*="participantsPane"] button {
|
|
color: #63477a !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #polls-tab-panel button[aria-label="Create a poll"],
|
|
html:not(.politictalk-direct-access-blocked) #polls-tab-panel button[class*="button-primary"],
|
|
html:not(.politictalk-direct-access-blocked) [aria-labelledby="polls-tab"] button[aria-label="Create a poll"],
|
|
html:not(.politictalk-direct-access-blocked) [aria-labelledby="polls-tab"] button[class*="button-primary"] {
|
|
background: #ffffff !important;
|
|
background-color: #ffffff !important;
|
|
border-color: rgba(99, 71, 122, 0.22) !important;
|
|
box-shadow: none !important;
|
|
color: #63477a !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #polls-tab-panel button[aria-label="Create a poll"] *,
|
|
html:not(.politictalk-direct-access-blocked) #polls-tab-panel button[class*="button-primary"] *,
|
|
html:not(.politictalk-direct-access-blocked) [aria-labelledby="polls-tab"] button[aria-label="Create a poll"] *,
|
|
html:not(.politictalk-direct-access-blocked) [aria-labelledby="polls-tab"] button[class*="button-primary"] * {
|
|
color: #63477a !important;
|
|
fill: currentColor !important;
|
|
stroke: currentColor !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel-container *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-container *,
|
|
html:not(.politictalk-direct-access-blocked) .participants-pane *,
|
|
html:not(.politictalk-direct-access-blocked) .participants_pane *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="participantsPane"] * {
|
|
border-color: rgba(99, 71, 122, 0.34) !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .chatmessage,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .chatmessage *,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .usermessage,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .usermessage *,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .privatemessage,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .privatemessage *,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .messagecontent,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .messagecontent *,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .message-content,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation .message-content *,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation [class*="message-bubble"],
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation [class*="message-bubble"] *,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation [class*="messageBubble"],
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation [class*="messageBubble"] *,
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation [class*="MessageBubble"],
|
|
html:not(.politictalk-direct-access-blocked) #chatconversation [class*="MessageBubble"] *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .chatmessage,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .chatmessage *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .usermessage,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .usermessage *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .privatemessage,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .privatemessage *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .messagecontent,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .messagecontent *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .message-content,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel .message-content *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel [class*="message-bubble"],
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel [class*="message-bubble"] *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel [class*="messageBubble"],
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel [class*="messageBubble"] *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel [class*="MessageBubble"],
|
|
html:not(.politictalk-direct-access-blocked) .chat-panel [class*="MessageBubble"] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .chatmessage,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .chatmessage *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .usermessage,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .usermessage *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .privatemessage,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .privatemessage *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .messagecontent,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .messagecontent *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .message-content,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] .message-content *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] [class*="message-bubble"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] [class*="message-bubble"] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] [class*="messageBubble"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] [class*="messageBubble"] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] [class*="MessageBubble"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatPanel"] [class*="MessageBubble"] * {
|
|
color: #ffffff !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container input,
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container textarea,
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [contenteditable="true"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] input,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] textarea,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] [contenteditable="true"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] input,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] textarea,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] [contenteditable="true"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] input,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] textarea,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] [contenteditable="true"] {
|
|
background-color: rgba(48, 45, 55, 0.86) !important;
|
|
border-color: rgba(255, 255, 255, 0.62) !important;
|
|
color: #ffffff !important;
|
|
caret-color: #ffffff !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-input"] textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatInput"] textarea::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] input::placeholder,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatInput"] textarea::placeholder {
|
|
color: rgba(255, 255, 255, 0.74) !important;
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [role="button"],
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [aria-haspopup],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-recipient"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatRecipient"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatRecipient"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="recipientDropdown"],
|
|
html:not(.politictalk-direct-access-blocked) [class*="RecipientDropdown"] {
|
|
background-color: rgba(48, 45, 55, 0.9) !important;
|
|
border-color: rgba(255, 255, 255, 0.34) !important;
|
|
color: #ffffff !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [role="button"] *,
|
|
html:not(.politictalk-direct-access-blocked) .chat-input-container [aria-haspopup] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chat-recipient"] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="chatRecipient"] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="ChatRecipient"] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="recipientDropdown"] *,
|
|
html:not(.politictalk-direct-access-blocked) [class*="RecipientDropdown"] * {
|
|
color: #ffffff !important;
|
|
fill: currentColor !important;
|
|
stroke: currentColor !important;
|
|
}
|
|
|
|
}
|
|
|
|
html.politictalk-direct-access-blocked,
|
|
html.politictalk-direct-access-blocked body {
|
|
background: #202424 !important;
|
|
min-height: 100%;
|
|
}
|
|
|
|
html.politictalk-direct-access-blocked #react {
|
|
display: none !important;
|
|
}
|
|
|
|
html.politictalk-direct-access-blocked body > *:not(.politictalk-direct-access):not(.politictalk-room-logo) {
|
|
visibility: hidden !important;
|
|
}
|
|
|
|
.politictalk-direct-access {
|
|
align-items: center;
|
|
background: rgba(13, 15, 16, 0.48);
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
inset: 0;
|
|
justify-content: center;
|
|
padding: 24px;
|
|
position: fixed;
|
|
z-index: 2147482999;
|
|
}
|
|
|
|
.politictalk-direct-access__dialog {
|
|
background: #111111;
|
|
border: 1px solid rgba(255, 255, 255, 0.16);
|
|
border-radius: 8px;
|
|
box-shadow: 0 22px 64px rgba(0, 0, 0, 0.32);
|
|
box-sizing: border-box;
|
|
color: #f5f5f5;
|
|
max-width: 520px;
|
|
padding: 32px;
|
|
width: min(100%, 520px);
|
|
}
|
|
|
|
.politictalk-direct-access__title {
|
|
font-family: inherit;
|
|
font-size: 26px;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
margin: 0 0 16px;
|
|
}
|
|
|
|
.politictalk-direct-access__message {
|
|
color: rgba(255, 255, 255, 0.78);
|
|
font-size: 17px;
|
|
line-height: 1.5;
|
|
margin: 0;
|
|
}
|
|
|
|
.politictalk-direct-access__actions {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
margin-top: 28px;
|
|
}
|
|
|
|
.politictalk-direct-access__button {
|
|
background: #ffffff;
|
|
border: 0;
|
|
border-radius: 6px;
|
|
color: #151515;
|
|
cursor: pointer;
|
|
font-size: 16px;
|
|
font-weight: 700;
|
|
min-width: 96px;
|
|
padding: 13px 22px;
|
|
}
|
|
|
|
.politictalk-direct-access__button:focus {
|
|
outline: 3px solid rgba(255, 255, 255, 0.42);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
html.politictalk-host-user button[aria-label*="Leave meeting" i],
|
|
html.politictalk-host-user button[aria-label*="Leave conference" i],
|
|
html.politictalk-host-user [role="button"][aria-label*="Leave meeting" i],
|
|
html.politictalk-host-user [role="button"][aria-label*="Leave conference" i] {
|
|
display: none !important;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
html:not(.politictalk-direct-access-blocked),
|
|
html:not(.politictalk-direct-access-blocked) body,
|
|
html:not(.politictalk-direct-access-blocked) #react,
|
|
html:not(.politictalk-direct-access-blocked) #videoconference_page {
|
|
background-position: center center !important;
|
|
}
|
|
|
|
.politictalk-room-logo {
|
|
gap: 10px;
|
|
height: 48px;
|
|
left: max(14px, env(safe-area-inset-left));
|
|
top: max(18px, env(safe-area-inset-top));
|
|
max-width: calc(100vw - 28px);
|
|
}
|
|
|
|
.politictalk-room-logo img {
|
|
flex-basis: 48px;
|
|
height: 48px;
|
|
width: 48px;
|
|
}
|
|
|
|
.politictalk-room-logo__text {
|
|
display: block;
|
|
font-size: 21px;
|
|
max-width: calc(100vw - 86px);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.details-container {
|
|
top: calc(max(18px, env(safe-area-inset-top)) + 58px) !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #new-toolbox,
|
|
html:not(.politictalk-direct-access-blocked) .toolbox,
|
|
html:not(.politictalk-direct-access-blocked) .toolbox-content,
|
|
html:not(.politictalk-direct-access-blocked) .toolbox-content-wrapper {
|
|
opacity: 1 !important;
|
|
transition: none !important;
|
|
visibility: visible !important;
|
|
z-index: 1000 !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) #new-toolbox,
|
|
html:not(.politictalk-direct-access-blocked) .toolbox {
|
|
bottom: var(--politictalk-toolbar-bottom-offset, 12px) !important;
|
|
height: auto !important;
|
|
left: 0 !important;
|
|
overflow: visible !important;
|
|
pointer-events: none !important;
|
|
position: fixed !important;
|
|
right: 0 !important;
|
|
top: auto !important;
|
|
transform: none !important;
|
|
width: 100% !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .toolbox-content,
|
|
html:not(.politictalk-direct-access-blocked) .toolbox-content-wrapper {
|
|
max-width: calc(100vw - 24px) !important;
|
|
pointer-events: auto !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .toolbox-content-wrapper {
|
|
bottom: var(--politictalk-toolbar-bottom-offset, 12px) !important;
|
|
display: block !important;
|
|
left: 50% !important;
|
|
min-height: 0 !important;
|
|
overflow: visible !important;
|
|
position: fixed !important;
|
|
right: auto !important;
|
|
top: auto !important;
|
|
transform: translateX(-50%) scale(var(--politictalk-toolbar-mobile-scale, 0.96)) !important;
|
|
transform-origin: bottom center !important;
|
|
width: fit-content !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .toolbox-content {
|
|
border-radius: 8px !important;
|
|
box-sizing: border-box !important;
|
|
bottom: auto !important;
|
|
left: auto !important;
|
|
margin-left: auto !important;
|
|
margin-right: auto !important;
|
|
max-width: calc(100vw - 24px) !important;
|
|
overflow: visible !important;
|
|
position: relative !important;
|
|
right: auto !important;
|
|
top: auto !important;
|
|
transform: none !important;
|
|
width: max-content !important;
|
|
}
|
|
|
|
html:not(.politictalk-direct-access-blocked) .toolbox-content-mobile .toolbox-content-items {
|
|
padding: 6px !important;
|
|
border-radius: 3px !important;
|
|
}
|
|
|
|
.politictalk-direct-access {
|
|
align-items: flex-start;
|
|
padding: 150px 18px 18px;
|
|
}
|
|
|
|
.politictalk-direct-access__dialog {
|
|
padding: 24px;
|
|
}
|
|
|
|
.politictalk-direct-access__title {
|
|
font-size: 24px;
|
|
}
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
(function() {
|
|
var PARALLEL_GLOBE_URL = 'https://parallelglobe.io';
|
|
|
|
disablePoliticTalkPwaInstallPrompt();
|
|
|
|
var restoredMeetingToken = restoreMeetingTokenFromSession();
|
|
|
|
if (restoredMeetingToken) {
|
|
return;
|
|
}
|
|
|
|
rememberMeetingToken();
|
|
|
|
var directAccessBlocked = isDirectRoomAccess();
|
|
|
|
if (directAccessBlocked) {
|
|
document.documentElement.classList.add('politictalk-direct-access-blocked');
|
|
document.title = 'Access required - PoliticTalk';
|
|
}
|
|
|
|
function getRoomPath() {
|
|
return window.location.pathname.replace(/\/+$/, '');
|
|
}
|
|
|
|
function disablePoliticTalkPwaInstallPrompt() {
|
|
window.addEventListener('beforeinstallprompt', function(event) {
|
|
event.preventDefault();
|
|
});
|
|
|
|
rewritePoliticTalkManifestLinks();
|
|
|
|
if (document.readyState === 'loading') {
|
|
document.addEventListener('DOMContentLoaded', rewritePoliticTalkManifestLinks);
|
|
}
|
|
|
|
if ('serviceWorker' in window.navigator) {
|
|
window.navigator.serviceWorker.getRegistrations()
|
|
.then(function(registrations) {
|
|
registrations.forEach(function(registration) {
|
|
registration.unregister();
|
|
});
|
|
})
|
|
.catch(function() {
|
|
// The meeting does not depend on the PWA worker.
|
|
});
|
|
}
|
|
}
|
|
|
|
function rewritePoliticTalkManifestLinks() {
|
|
if (!document.head) {
|
|
return;
|
|
}
|
|
|
|
var links = document.querySelectorAll('link[rel~="manifest"]');
|
|
|
|
if (!links.length) {
|
|
var link = document.createElement('link');
|
|
link.rel = 'manifest';
|
|
link.href = '/manifest.json';
|
|
document.head.appendChild(link);
|
|
return;
|
|
}
|
|
|
|
links.forEach(function(link) {
|
|
link.href = '/manifest.json';
|
|
});
|
|
}
|
|
|
|
function updateMobileToolbarViewportOffset() {
|
|
if (!window.matchMedia || !window.matchMedia('(max-width: 640px)').matches) {
|
|
document.documentElement.style.removeProperty('--politictalk-toolbar-bottom-offset');
|
|
document.documentElement.style.removeProperty('--politictalk-toolbar-mobile-scale');
|
|
if (document.body) {
|
|
document.body.style.removeProperty('--politictalk-toolbar-bottom-offset');
|
|
document.body.style.removeProperty('--politictalk-toolbar-mobile-scale');
|
|
}
|
|
return;
|
|
}
|
|
|
|
var viewport = window.visualViewport;
|
|
var bottomGap = 0;
|
|
|
|
if (viewport) {
|
|
bottomGap = Math.max(0, window.innerHeight - viewport.height - viewport.offsetTop);
|
|
}
|
|
|
|
var baseOffset = Math.round(bottomGap + 12);
|
|
|
|
setMobileToolbarBottomOffset(baseOffset);
|
|
|
|
window.cancelAnimationFrame(window.politicTalkToolbarOffsetFrame);
|
|
window.politicTalkToolbarOffsetFrame = window.requestAnimationFrame(function() {
|
|
var toolbar = getVisiblePoliticTalkToolbar();
|
|
|
|
if (!toolbar) {
|
|
return;
|
|
}
|
|
|
|
var rect = toolbar.getBoundingClientRect();
|
|
var currentScale = getMobileToolbarScale();
|
|
var unscaledWidth = currentScale ? rect.width / currentScale : rect.width;
|
|
var availableWidth = (viewport ? viewport.width : window.innerWidth) - 28;
|
|
var nextScale = Math.min(0.96, Math.max(0.86, availableWidth / unscaledWidth));
|
|
var visibleBottom = viewport
|
|
? Math.min(window.innerHeight, viewport.offsetTop + viewport.height)
|
|
: window.innerHeight;
|
|
var overflow = Math.ceil(rect.bottom - (visibleBottom - 12));
|
|
|
|
setMobileToolbarScale(nextScale);
|
|
|
|
if (overflow > 0) {
|
|
setMobileToolbarBottomOffset(baseOffset + overflow);
|
|
}
|
|
});
|
|
}
|
|
|
|
function setMobileToolbarBottomOffset(offset) {
|
|
var value = Math.max(12, offset) + 'px';
|
|
|
|
document.documentElement.style.setProperty('--politictalk-toolbar-bottom-offset', value);
|
|
|
|
if (document.body) {
|
|
document.body.style.setProperty('--politictalk-toolbar-bottom-offset', value);
|
|
}
|
|
}
|
|
|
|
function getMobileToolbarScale() {
|
|
var value = window.getComputedStyle(document.documentElement)
|
|
.getPropertyValue('--politictalk-toolbar-mobile-scale');
|
|
var scale = Number.parseFloat(value);
|
|
|
|
return Number.isFinite(scale) && scale > 0 ? scale : 0.96;
|
|
}
|
|
|
|
function setMobileToolbarScale(scale) {
|
|
var value = String(Math.round(scale * 1000) / 1000);
|
|
|
|
document.documentElement.style.setProperty('--politictalk-toolbar-mobile-scale', value);
|
|
|
|
if (document.body) {
|
|
document.body.style.setProperty('--politictalk-toolbar-mobile-scale', value);
|
|
}
|
|
}
|
|
|
|
function getVisiblePoliticTalkToolbar() {
|
|
var toolbars = Array.prototype.slice.call(document.querySelectorAll(
|
|
'.toolbox-content, .toolbox-content-wrapper, #new-toolbox, .toolbox'
|
|
));
|
|
|
|
return toolbars
|
|
.map(function(toolbar) {
|
|
var rect = toolbar.getBoundingClientRect();
|
|
var style = window.getComputedStyle(toolbar);
|
|
|
|
return {
|
|
element: toolbar,
|
|
rect: rect,
|
|
area: Math.max(0, rect.width) * Math.max(0, rect.height),
|
|
visible: style.display !== 'none'
|
|
&& style.visibility !== 'hidden'
|
|
&& Number(style.opacity || 1) > 0
|
|
&& rect.width > 0
|
|
&& rect.height > 0
|
|
};
|
|
})
|
|
.filter(function(entry) {
|
|
return entry.visible;
|
|
})
|
|
.sort(function(first, second) {
|
|
return second.rect.bottom - first.rect.bottom || second.area - first.area;
|
|
})
|
|
.map(function(entry) {
|
|
return entry.element;
|
|
})[0] || null;
|
|
}
|
|
|
|
function mountMobileToolbarPositioning() {
|
|
updateMobileToolbarViewportOffset();
|
|
|
|
window.addEventListener('resize', updateMobileToolbarViewportOffset, { passive: true });
|
|
window.addEventListener('orientationchange', updateMobileToolbarViewportOffset, { passive: true });
|
|
|
|
if (window.visualViewport) {
|
|
window.visualViewport.addEventListener('resize', updateMobileToolbarViewportOffset, { passive: true });
|
|
window.visualViewport.addEventListener('scroll', updateMobileToolbarViewportOffset, { passive: true });
|
|
}
|
|
|
|
var attempts = 0;
|
|
var interval = window.setInterval(function() {
|
|
attempts += 1;
|
|
updateMobileToolbarViewportOffset();
|
|
|
|
if (attempts >= 40) {
|
|
window.clearInterval(interval);
|
|
}
|
|
}, 250);
|
|
}
|
|
|
|
function isIgnoredJitsiPath(path) {
|
|
return /^\/(?:static|images|libs|css|sounds|fonts|transcripts)\//.test(path);
|
|
}
|
|
|
|
function getMeetingTokenFromUrl() {
|
|
var params = new URLSearchParams(window.location.search);
|
|
|
|
return params.get('jwt') || params.get('token') || '';
|
|
}
|
|
|
|
function hasMeetingToken() {
|
|
return Boolean(getMeetingTokenFromUrl());
|
|
}
|
|
|
|
function getRoomSessionKey(name) {
|
|
var path = getRoomPath() || '/';
|
|
|
|
return 'politictalk:' + path + ':' + name;
|
|
}
|
|
|
|
function readRoomSessionValue(name) {
|
|
try {
|
|
return window.sessionStorage.getItem(getRoomSessionKey(name)) || '';
|
|
} catch (error) {
|
|
return '';
|
|
}
|
|
}
|
|
|
|
function writeRoomSessionValue(name, value) {
|
|
try {
|
|
window.sessionStorage.setItem(getRoomSessionKey(name), value);
|
|
} catch (error) {
|
|
// Ignore storage failures. The direct-access guard still works.
|
|
}
|
|
}
|
|
|
|
function removeRoomSessionValue(name) {
|
|
try {
|
|
window.sessionStorage.removeItem(getRoomSessionKey(name));
|
|
} catch (error) {
|
|
// Ignore storage failures.
|
|
}
|
|
}
|
|
|
|
function getStoredMeetingToken() {
|
|
return readRoomSessionValue('jwt');
|
|
}
|
|
|
|
function isJwtUsable(token) {
|
|
try {
|
|
var payload = JSON.parse(decodeBase64Url((token || '').split('.')[1] || ''));
|
|
var expiresAt = Number(payload.exp || 0);
|
|
|
|
return !expiresAt || expiresAt > Math.floor(Date.now() / 1000) + 10;
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function rememberMeetingToken() {
|
|
var token = getMeetingTokenFromUrl();
|
|
|
|
if (!token || !isJwtUsable(token)) {
|
|
return;
|
|
}
|
|
|
|
writeRoomSessionValue('jwt', token);
|
|
|
|
var payload = getPoliticTalkJwtPayloadFromToken(token);
|
|
var meetingTitle = getPoliticTalkMeetingTitleFromPayload(payload);
|
|
|
|
if (meetingTitle) {
|
|
writeRoomSessionValue('title', meetingTitle);
|
|
}
|
|
}
|
|
|
|
function restoreMeetingTokenFromSession() {
|
|
var path = getRoomPath();
|
|
|
|
if (!path || path === '/' || isIgnoredJitsiPath(path) || hasMeetingToken()) {
|
|
return false;
|
|
}
|
|
|
|
var token = getStoredMeetingToken();
|
|
|
|
if (!token || !isJwtUsable(token)) {
|
|
removeRoomSessionValue('jwt');
|
|
removeRoomSessionValue('title');
|
|
return false;
|
|
}
|
|
|
|
var params = new URLSearchParams(window.location.search);
|
|
params.set('jwt', token);
|
|
window.location.replace(path + '?' + params.toString() + window.location.hash);
|
|
|
|
return true;
|
|
}
|
|
|
|
function isDirectRoomAccess() {
|
|
var path = getRoomPath();
|
|
|
|
if (!path || path === '/') {
|
|
return false;
|
|
}
|
|
|
|
if (isIgnoredJitsiPath(path)) {
|
|
return false;
|
|
}
|
|
|
|
return !hasMeetingToken();
|
|
}
|
|
|
|
function decodeBase64Url(value) {
|
|
var base64 = value.replace(/-/g, '+').replace(/_/g, '/');
|
|
|
|
while (base64.length % 4) {
|
|
base64 += '=';
|
|
}
|
|
|
|
var binary = window.atob(base64);
|
|
var bytes = new Uint8Array(binary.length);
|
|
|
|
for (var index = 0; index < binary.length; index += 1) {
|
|
bytes[index] = binary.charCodeAt(index);
|
|
}
|
|
|
|
return new TextDecoder().decode(bytes);
|
|
}
|
|
|
|
function getMeetingToken() {
|
|
return getMeetingTokenFromUrl() || getStoredMeetingToken() || '';
|
|
}
|
|
|
|
function getPoliticTalkJwtPayloadFromToken(token) {
|
|
try {
|
|
if (!token) {
|
|
return null;
|
|
}
|
|
|
|
return JSON.parse(decodeBase64Url(token.split('.')[1] || ''));
|
|
} catch (error) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
function getPoliticTalkJwtPayload() {
|
|
return getPoliticTalkJwtPayloadFromToken(getMeetingToken());
|
|
}
|
|
|
|
function getPoliticTalkMeetingTitleFromPayload(payload) {
|
|
if (!payload) {
|
|
return '';
|
|
}
|
|
|
|
var context = payload.context || {};
|
|
var room = context.room || {};
|
|
var title = (context.politictalk && context.politictalk.title)
|
|
|| room.subject
|
|
|| room.name
|
|
|| '';
|
|
|
|
title = String(title);
|
|
return title.trim() ? title : '';
|
|
}
|
|
|
|
function getPoliticTalkMeetingTitle() {
|
|
return getPoliticTalkMeetingTitleFromPayload(getPoliticTalkJwtPayload())
|
|
|| readRoomSessionValue('title');
|
|
}
|
|
|
|
function isPoliticTalkHost() {
|
|
var payload = getPoliticTalkJwtPayload();
|
|
var user = payload && payload.context && payload.context.user;
|
|
|
|
return Boolean(user && user.moderator);
|
|
}
|
|
|
|
function applyPoliticTalkMeetingTitle() {
|
|
var meetingTitle = getPoliticTalkMeetingTitle();
|
|
|
|
if (!meetingTitle) {
|
|
return;
|
|
}
|
|
|
|
window.config = window.config || {};
|
|
window.config.subject = meetingTitle;
|
|
window.config.localSubject = meetingTitle;
|
|
document.title = meetingTitle + ' | PoliticTalk';
|
|
}
|
|
|
|
function mountPoliticTalkDocumentTitle() {
|
|
var meetingTitle = getPoliticTalkMeetingTitle();
|
|
var pageTitle = meetingTitle ? meetingTitle + ' | PoliticTalk' : 'PoliticTalk';
|
|
|
|
if (directAccessBlocked || !document.head) {
|
|
return;
|
|
}
|
|
|
|
document.title = pageTitle;
|
|
|
|
if (window.politicTalkTitleObserver) {
|
|
return;
|
|
}
|
|
|
|
window.politicTalkTitleObserver = new MutationObserver(function() {
|
|
if (document.title !== pageTitle) {
|
|
document.title = pageTitle;
|
|
}
|
|
});
|
|
window.politicTalkTitleObserver.observe(document.head, {
|
|
childList: true,
|
|
characterData: true,
|
|
subtree: true
|
|
});
|
|
|
|
window.clearInterval(window.politicTalkTitleInterval);
|
|
window.politicTalkTitleInterval = window.setInterval(function() {
|
|
if (document.title !== pageTitle) {
|
|
document.title = pageTitle;
|
|
}
|
|
}, 1000);
|
|
}
|
|
|
|
function redirectToParallelGlobe() {
|
|
try {
|
|
window.location.assign(PARALLEL_GLOBE_URL);
|
|
} catch (error) {
|
|
window.location.href = PARALLEL_GLOBE_URL;
|
|
}
|
|
|
|
window.setTimeout(function() {
|
|
window.location.href = PARALLEL_GLOBE_URL;
|
|
}, 250);
|
|
}
|
|
|
|
function preventHostLeaveButtonExecution() {
|
|
if (!isPoliticTalkHost()) {
|
|
return;
|
|
}
|
|
|
|
var buttons = window.config && window.config.buttonsWithNotifyClick;
|
|
|
|
if (!Array.isArray(buttons)) {
|
|
buttons = [];
|
|
}
|
|
|
|
buttons = buttons.filter(function(button) {
|
|
var key = typeof button === 'string' ? button : button && button.key;
|
|
|
|
return key !== 'hangup';
|
|
});
|
|
buttons.push('hangup');
|
|
|
|
window.config = window.config || {};
|
|
window.config.buttonsWithNotifyClick = buttons;
|
|
}
|
|
|
|
function isLeaveMeetingControl(element) {
|
|
var label = [
|
|
element.getAttribute('aria-label'),
|
|
element.getAttribute('title'),
|
|
element.textContent
|
|
].join(' ').replace(/\s+/g, ' ').trim().toLowerCase();
|
|
|
|
return label.indexOf('leave meeting') !== -1
|
|
|| label.indexOf('leave conference') !== -1;
|
|
}
|
|
|
|
function hideHostLeaveMeetingControls() {
|
|
if (!isPoliticTalkHost() || !document.body) {
|
|
return;
|
|
}
|
|
|
|
var controls = document.querySelectorAll('button, [role="button"]');
|
|
|
|
controls.forEach(function(control) {
|
|
if (!isLeaveMeetingControl(control)) {
|
|
return;
|
|
}
|
|
|
|
control.classList.add('politictalk-host-hidden-leave');
|
|
control.setAttribute('aria-hidden', 'true');
|
|
control.setAttribute('tabindex', '-1');
|
|
control.style.display = 'none';
|
|
});
|
|
}
|
|
|
|
function mountHostHangupPolicy() {
|
|
if (!isPoliticTalkHost() || !document.body) {
|
|
return;
|
|
}
|
|
|
|
document.documentElement.classList.add('politictalk-host-user');
|
|
preventHostLeaveButtonExecution();
|
|
hideHostLeaveMeetingControls();
|
|
|
|
if (window.politicTalkHostHangupObserver) {
|
|
return;
|
|
}
|
|
|
|
window.politicTalkHostHangupObserver = new MutationObserver(function() {
|
|
window.requestAnimationFrame(hideHostLeaveMeetingControls);
|
|
});
|
|
window.politicTalkHostHangupObserver.observe(document.body, {
|
|
attributes: true,
|
|
attributeFilter: [ 'aria-label', 'title', 'class' ],
|
|
childList: true,
|
|
characterData: true,
|
|
subtree: true
|
|
});
|
|
}
|
|
|
|
function mountPoliticTalkLogo() {
|
|
if (!document.body || document.getElementById('politictalk-room-logo')) {
|
|
return;
|
|
}
|
|
|
|
var link = document.createElement('a');
|
|
link.className = 'politictalk-room-logo';
|
|
link.href = 'https://parallelglobe.io/politictalk';
|
|
link.id = 'politictalk-room-logo';
|
|
link.rel = 'noopener noreferrer';
|
|
link.target = '_blank';
|
|
|
|
var image = document.createElement('img');
|
|
image.alt = 'Parallel Globe';
|
|
image.src = '/images/politictalk/pgLogo.svg';
|
|
|
|
var label = document.createElement('span');
|
|
label.className = 'politictalk-room-logo__text';
|
|
label.textContent = 'PoliticTalk';
|
|
|
|
link.appendChild(image);
|
|
link.appendChild(label);
|
|
document.body.appendChild(link);
|
|
}
|
|
|
|
function mountDirectAccessMessage() {
|
|
if (!directAccessBlocked || !document.body || document.getElementById('politictalk-direct-access')) {
|
|
return;
|
|
}
|
|
|
|
var wrapper = document.createElement('div');
|
|
wrapper.className = 'politictalk-direct-access';
|
|
wrapper.id = 'politictalk-direct-access';
|
|
|
|
var dialog = document.createElement('div');
|
|
dialog.className = 'politictalk-direct-access__dialog';
|
|
dialog.setAttribute('aria-labelledby', 'politictalk-direct-access-title');
|
|
dialog.setAttribute('aria-modal', 'true');
|
|
dialog.setAttribute('role', 'dialog');
|
|
|
|
var title = document.createElement('h1');
|
|
title.className = 'politictalk-direct-access__title';
|
|
title.id = 'politictalk-direct-access-title';
|
|
title.textContent = 'Parallel Globe account required';
|
|
|
|
var message = document.createElement('p');
|
|
message.className = 'politictalk-direct-access__message';
|
|
message.textContent = 'This PoliticTalk room cannot be opened directly. Please create an account or sign in at Parallel Globe to join PoliticTalk sessions.';
|
|
|
|
var actions = document.createElement('div');
|
|
actions.className = 'politictalk-direct-access__actions';
|
|
|
|
var button = document.createElement('button');
|
|
button.className = 'politictalk-direct-access__button';
|
|
button.textContent = 'OK';
|
|
button.type = 'button';
|
|
button.addEventListener('click', redirectToParallelGlobe);
|
|
|
|
actions.appendChild(button);
|
|
dialog.appendChild(title);
|
|
dialog.appendChild(message);
|
|
dialog.appendChild(actions);
|
|
wrapper.appendChild(dialog);
|
|
document.body.appendChild(wrapper);
|
|
button.focus();
|
|
}
|
|
|
|
applyPoliticTalkMeetingTitle();
|
|
preventHostLeaveButtonExecution();
|
|
|
|
if (document.readyState === 'loading') {
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
mountPoliticTalkDocumentTitle();
|
|
mountPoliticTalkLogo();
|
|
mountDirectAccessMessage();
|
|
mountHostHangupPolicy();
|
|
mountMobileToolbarPositioning();
|
|
});
|
|
} else {
|
|
mountPoliticTalkDocumentTitle();
|
|
mountPoliticTalkLogo();
|
|
mountDirectAccessMessage();
|
|
mountHostHangupPolicy();
|
|
mountMobileToolbarPositioning();
|
|
}
|
|
}());
|
|
</script>
|